From fe4202364ecf5b54075098b9ea8ba4a6cd22b60d Mon Sep 17 00:00:00 2001 From: Jenkins Date: Wed, 31 Jan 2024 07:39:18 +0000 Subject: [PATCH] Update documentation --- 404.html | 12 +-- ...1fef0f066ab4a650a4cb6c43871dc2643b1612.png | Bin 0 -> 28914 bytes ...08806f15e198caa1f8c834fafb05e763eaf7bc.png | Bin 0 -> 32185 bytes about/architect/index.html | 12 +-- about/index.html | 12 +-- about/roadmap/index.html | 12 +-- about/team/index.html | 12 +-- about/waku-network/index.html | 12 +-- assets/css/styles.2915a385.css | 1 + assets/css/styles.d2c4be0b.css | 1 - assets/js/17896441.4a03675f.js | 1 + assets/js/17896441.64634230.js | 1 - assets/js/4c51782d.191c7351.js | 1 + assets/js/4c51782d.aa1fabfb.js | 1 - assets/js/5086c83f.79513685.js | 1 + assets/js/5086c83f.7c55b8a2.js | 1 - ...e778e.9c720bab.js => 546e778e.bc0edb56.js} | 2 +- assets/js/881.757d2b2f.js | 73 ------------------ assets/js/881.c140a9a4.js | 73 ++++++++++++++++++ ...ICENSE.txt => 881.c140a9a4.js.LICENSE.txt} | 0 assets/js/935f2afb.ee1cc9b2.js | 1 - assets/js/935f2afb.fa75d838.js | 1 + assets/js/bc55d770.a3c1d235.js | 1 + assets/js/bfcde7ef.39e8d4e4.js | 1 + ...e6630.9e069d6f.js => e7ce6630.d6ddfb48.js} | 2 +- assets/js/main.22fac347.js | 6 -- assets/js/main.a12edac1.js | 14 ++++ ...CENSE.txt => main.a12edac1.js.LICENSE.txt} | 0 assets/js/runtime~main.27e42e38.js | 1 + assets/js/runtime~main.ed0bab85.js | 1 - community/index.html | 12 +-- events/aaron.png | Bin 0 -> 792088 bytes events/eth-denver.png | Bin 0 -> 641214 bytes events/eth-denver/index.html | 26 +++++++ events/guru.png | Bin 0 -> 840125 bytes events/index.html | 25 ++++++ events/pedro.png | Bin 0 -> 260923 bytes icons/email.svg | 3 + icons/linkedin.svg | 5 +- index.html | 12 +-- join-us/index.html | 12 +-- privacy-policy/index.html | 12 +-- search-index.json | 2 +- sitemap.xml | 2 +- subscribe/index.html | 12 +-- terms/index.html | 12 +-- 46 files changed, 228 insertions(+), 163 deletions(-) create mode 100644 _og/3c1fef0f066ab4a650a4cb6c43871dc2643b1612.png create mode 100644 _og/af08806f15e198caa1f8c834fafb05e763eaf7bc.png create mode 100644 assets/css/styles.2915a385.css delete mode 100644 assets/css/styles.d2c4be0b.css create mode 100644 assets/js/17896441.4a03675f.js delete mode 100644 assets/js/17896441.64634230.js create mode 100644 assets/js/4c51782d.191c7351.js delete mode 100644 assets/js/4c51782d.aa1fabfb.js create mode 100644 assets/js/5086c83f.79513685.js delete mode 100644 assets/js/5086c83f.7c55b8a2.js rename assets/js/{546e778e.9c720bab.js => 546e778e.bc0edb56.js} (97%) delete mode 100644 assets/js/881.757d2b2f.js create mode 100644 assets/js/881.c140a9a4.js rename assets/js/{881.757d2b2f.js.LICENSE.txt => 881.c140a9a4.js.LICENSE.txt} (100%) delete mode 100644 assets/js/935f2afb.ee1cc9b2.js create mode 100644 assets/js/935f2afb.fa75d838.js create mode 100644 assets/js/bc55d770.a3c1d235.js create mode 100644 assets/js/bfcde7ef.39e8d4e4.js rename assets/js/{e7ce6630.9e069d6f.js => e7ce6630.d6ddfb48.js} (50%) delete mode 100644 assets/js/main.22fac347.js create mode 100644 assets/js/main.a12edac1.js rename assets/js/{main.22fac347.js.LICENSE.txt => main.a12edac1.js.LICENSE.txt} (100%) create mode 100644 assets/js/runtime~main.27e42e38.js delete mode 100644 assets/js/runtime~main.ed0bab85.js create mode 100644 events/aaron.png create mode 100644 events/eth-denver.png create mode 100644 events/eth-denver/index.html create mode 100644 events/guru.png create mode 100644 events/index.html create mode 100644 events/pedro.png create mode 100644 icons/email.svg diff --git a/404.html b/404.html index 4b828a27..5e3c2b09 100644 --- a/404.html +++ b/404.html @@ -4,9 +4,9 @@ Page Not Found | Waku - - - + + +
@@ -14,8 +14,8 @@ .lsd-dropdown--error ) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not( .lsd-dropdown--error - ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}
Skip to main content

Page Not Found

We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}
Skip to main content

Page Not Found

We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + \ No newline at end of file diff --git a/_og/3c1fef0f066ab4a650a4cb6c43871dc2643b1612.png b/_og/3c1fef0f066ab4a650a4cb6c43871dc2643b1612.png new file mode 100644 index 0000000000000000000000000000000000000000..aba971090d1e82851169fe11db3d82c670a8cdb8 GIT binary patch literal 28914 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 RcNq%(arDgZgx{>M{|}yJ+b;kB literal 0 HcmV?d00001 diff --git a/_og/af08806f15e198caa1f8c834fafb05e763eaf7bc.png b/_og/af08806f15e198caa1f8c834fafb05e763eaf7bc.png new file mode 100644 index 0000000000000000000000000000000000000000..ba0d1333110eb6b723aacae93c360e0a04f925a3 GIT binary patch literal 32185 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 M+PTbsn*RR30MM^P$N&HU literal 0 HcmV?d00001 diff --git a/about/architect/index.html b/about/architect/index.html index bc7a63d3..07119019 100644 --- a/about/architect/index.html +++ b/about/architect/index.html @@ -4,9 +4,9 @@ Description and architecture | Waku - - - + + +
@@ -14,8 +14,8 @@ .lsd-dropdown--error ) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not( .lsd-dropdown--error - ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

Description and architecture

Waku is a family of protocols that enable private, censorship-resistant communications over an open-source, decentralised network. By communications, we mean the exchange of data or messages between two or more entities, whether they are users, devices, or nodes.

Waku was built as open-source public goods infrastructure to serve as the communications layer of the decentralised web. As such, its development focuses on the following:

  • Generalised: Waku's focus on generalised and ephemeral messaging facilitates communication between users, subsystems, or nodes according to developers' needs.

  • Peer-to-peer: The Waku network has a decentralised peer-to-peer topology, preventing censorship and providing surveillance resistance. It is composed of adaptive nodes and is designed to scale to millions of users.

  • Runs anywhere: Waku was designed to run in resource-restricted environments like phones and browsers, enabling users operating lower-spec hardware or with limited bandwidth to participate as peers.

  • Privacy first: Waku empowers developers to build apps that cannot harvest users' metadata, removing the need for them to trust that their data is not used maliciously or without their consent.

  • Modular: Waku's modularity enables developers to make tradeoffs according to their users' privacy expectations and performance demands, by implementing only those protocols that are relevant to their applications. For example, while one app might value privacy above all else, another may be willing to make compromises to deliver a more frictionless UX.

  • Platform agnostic: Waku can run on any platform or in any environment, making it a suitable messaging solution for decentralised applications regardless of the network on which they're deployed.


Network architecture

The Waku team has developed three clients to run in different environments along with a range of SDKs in Rust, React Native, Kotlin, and Swift:

  • nwaku: Waku's reference implementation written in Nim.

  • go-waku: An implementation for native integration with Golang applications.

  • js-waku: Waku's JavaScript implementation for browser environments.

Waku is best thought of as a cohesive whole in terms of its capabilities. However, under the hood are three distinct network interaction domains: gossip, discovery, and request/response.

Waku protocols

Waku consists of multiple protocols, including but not limited to the following:

Waku Relay: Waku Relay is the backbone of the Waku network. It specifies a pub/sub approach to P2P messaging with a focus on privacy, censorship resistance, and security, and is currently implemented as a minor extension of the libp2p GossipSub protocol.

Waku Filter: A lighter-weight version of the relay protocol for resource-restricted devices, Waku Filter enables light nodes to only receive the messages they want from full nodes.

Waku Store: Enables devices that cannot participate in the Waku Relay network to retrieve messages they missed while being offline.

Waku Light Push: A request/response protocol that enables nodes with short connection windows or limited bandwidth to publish messages to the Waku network.


architect


Dive into the docs

- - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

Description and architecture

Waku is a family of protocols that enable private, censorship-resistant communications over an open-source, decentralised network. By communications, we mean the exchange of data or messages between two or more entities, whether they are users, devices, or nodes.

Waku was built as open-source public goods infrastructure to serve as the communications layer of the decentralised web. As such, its development focuses on the following:

  • Generalised: Waku's focus on generalised and ephemeral messaging facilitates communication between users, subsystems, or nodes according to developers' needs.

  • Peer-to-peer: The Waku network has a decentralised peer-to-peer topology, preventing censorship and providing surveillance resistance. It is composed of adaptive nodes and is designed to scale to millions of users.

  • Runs anywhere: Waku was designed to run in resource-restricted environments like phones and browsers, enabling users operating lower-spec hardware or with limited bandwidth to participate as peers.

  • Privacy first: Waku empowers developers to build apps that cannot harvest users' metadata, removing the need for them to trust that their data is not used maliciously or without their consent.

  • Modular: Waku's modularity enables developers to make tradeoffs according to their users' privacy expectations and performance demands, by implementing only those protocols that are relevant to their applications. For example, while one app might value privacy above all else, another may be willing to make compromises to deliver a more frictionless UX.

  • Platform agnostic: Waku can run on any platform or in any environment, making it a suitable messaging solution for decentralised applications regardless of the network on which they're deployed.


Network architecture

The Waku team has developed three clients to run in different environments along with a range of SDKs in Rust, React Native, Kotlin, and Swift:

  • nwaku: Waku's reference implementation written in Nim.

  • go-waku: An implementation for native integration with Golang applications.

  • js-waku: Waku's JavaScript implementation for browser environments.

Waku is best thought of as a cohesive whole in terms of its capabilities. However, under the hood are three distinct network interaction domains: gossip, discovery, and request/response.

Waku protocols

Waku consists of multiple protocols, including but not limited to the following:

Waku Relay: Waku Relay is the backbone of the Waku network. It specifies a pub/sub approach to P2P messaging with a focus on privacy, censorship resistance, and security, and is currently implemented as a minor extension of the libp2p GossipSub protocol.

Waku Filter: A lighter-weight version of the relay protocol for resource-restricted devices, Waku Filter enables light nodes to only receive the messages they want from full nodes.

Waku Store: Enables devices that cannot participate in the Waku Relay network to retrieve messages they missed while being offline.

Waku Light Push: A request/response protocol that enables nodes with short connection windows or limited bandwidth to publish messages to the Waku network.


architect


Dive into the docs

+ + \ No newline at end of file diff --git a/about/index.html b/about/index.html index c1910b3d..4aad627f 100644 --- a/about/index.html +++ b/about/index.html @@ -4,9 +4,9 @@ About | Waku - - - + + +
@@ -14,8 +14,8 @@ .lsd-dropdown--error ) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not( .lsd-dropdown--error - ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

About

Waku is a suite of generalised messaging protocols aiming to be the communication standard for the decentralised web. It enables private and secure human-to-human, machine-to-machine, and human-to-machine communication without reliance on centralised intermediaries. Messaging through Waku is possible from one-to-one to many-to-many.

Waku serves as the communications layer of the Logos tech stack. Alongside the trustless agreement layer, Nomos, and the storage layer, Codex, it is one of the Logos Collective's foundational projects.


Motive

Today's internet is increasingly controlled by a small number of tech giants. Google, Amazon, Meta, and a few others dictate what we see and with whom we can communicate. Their influence is almost limitless, and their actions shape global public opinion and even geopolitics.

To anyone that understands the internet's present architecture, this outcome should be expected. The centralised entities through which we communicate have privileged access to reams of data that we, as internet users, produce daily, presenting an opportunity for the kind of surveillance that was once confined to the pages of science-fiction literature. Thinking that the most powerful commercial and political institutions would not leverage this would be naive.

Yet, it doesn't have to be this way. Advances in cryptography, peer-to-peer networking, and decentralised technologies provide an alternate path forward.


(Slowly) moving toward a decentralised web

The early Ethereum community realised this. Initially, the plan was to rebuild the web's architecture along decentralised lines by developing the so-called Holy Trinity of the Decentralised Web: computation, storage, and communication. Ethereum itself would handle computation, Swarm was the reimagined web's storage layer, and Whisper would take care of messaging.


history


Whisper was a promising start but scalability shortcomings quickly became apparent. Meanwhile, the development of Swarm and Whisper was seemingly relegated to a backseat while Ethereum took centre stage. Yet, without adequate communication and storage layers, the decentralised web's potential for disrupting human coordination remained severely encumbered.

Status, the decentralised messaging application, was built to leverage Whisper but because of Whisper’s development delays, the team decided to build their own communication protocol. Consequently, the R&D group Vac was put together in 2018 to research solutions to Whisper's scaling woes.


The birth of Waku

In 2020, Waku v1 was released. As a fork of the Whisper codebase, this initial version introduced various Vac-proposed optimizations, resulting in a better performing messaging protocol. Yet, it was clear that further changes were needed for Waku to be able to handle the volume of messages an application like Status would produce.

The following year, work on a complete protocol rewrite began. Waku v2, as the version under development today is known, introduced a relay protocol that implements pub/sub over libp2p. Additionally, further capabilities were included to make Waku more useful, including historic message retrieval for mostly-offline devices, adaptive nodes to make participation more accessible to users with limited or intermittent connections and lower-spec hardware, and various bandwidth preservation techniques.

Waku was first announced as a core Logos project in June 2023.

- - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

About

Waku is a suite of generalised messaging protocols aiming to be the communication standard for the decentralised web. It enables private and secure human-to-human, machine-to-machine, and human-to-machine communication without reliance on centralised intermediaries. Messaging through Waku is possible from one-to-one to many-to-many.

Waku serves as the communications layer of the Logos tech stack. Alongside the trustless agreement layer, Nomos, and the storage layer, Codex, it is one of the Logos Collective's foundational projects.


Motive

Today's internet is increasingly controlled by a small number of tech giants. Google, Amazon, Meta, and a few others dictate what we see and with whom we can communicate. Their influence is almost limitless, and their actions shape global public opinion and even geopolitics.

To anyone that understands the internet's present architecture, this outcome should be expected. The centralised entities through which we communicate have privileged access to reams of data that we, as internet users, produce daily, presenting an opportunity for the kind of surveillance that was once confined to the pages of science-fiction literature. Thinking that the most powerful commercial and political institutions would not leverage this would be naive.

Yet, it doesn't have to be this way. Advances in cryptography, peer-to-peer networking, and decentralised technologies provide an alternate path forward.


(Slowly) moving toward a decentralised web

The early Ethereum community realised this. Initially, the plan was to rebuild the web's architecture along decentralised lines by developing the so-called Holy Trinity of the Decentralised Web: computation, storage, and communication. Ethereum itself would handle computation, Swarm was the reimagined web's storage layer, and Whisper would take care of messaging.


history


Whisper was a promising start but scalability shortcomings quickly became apparent. Meanwhile, the development of Swarm and Whisper was seemingly relegated to a backseat while Ethereum took centre stage. Yet, without adequate communication and storage layers, the decentralised web's potential for disrupting human coordination remained severely encumbered.

Status, the decentralised messaging application, was built to leverage Whisper but because of Whisper’s development delays, the team decided to build their own communication protocol. Consequently, the R&D group Vac was put together in 2018 to research solutions to Whisper's scaling woes.


The birth of Waku

In 2020, Waku v1 was released. As a fork of the Whisper codebase, this initial version introduced various Vac-proposed optimizations, resulting in a better performing messaging protocol. Yet, it was clear that further changes were needed for Waku to be able to handle the volume of messages an application like Status would produce.

The following year, work on a complete protocol rewrite began. Waku v2, as the version under development today is known, introduced a relay protocol that implements pub/sub over libp2p. Additionally, further capabilities were included to make Waku more useful, including historic message retrieval for mostly-offline devices, adaptive nodes to make participation more accessible to users with limited or intermittent connections and lower-spec hardware, and various bandwidth preservation techniques.

Waku was first announced as a core Logos project in June 2023.

+ + \ No newline at end of file diff --git a/about/roadmap/index.html b/about/roadmap/index.html index adb5fa43..3d11f11a 100644 --- a/about/roadmap/index.html +++ b/about/roadmap/index.html @@ -4,9 +4,9 @@ Development roadmap | Waku - - - + + +
@@ -14,8 +14,8 @@ .lsd-dropdown--error ) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not( .lsd-dropdown--error - ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

Development roadmap

Waku v1 is in production and was quickly adopted by the Status Mobile application. Yet, this initial version was unable to handle the scale required to support popular applications, prompting the v2 rewrite. Waku v2 has seen encouraging initial adoption beyond Status by projects such as Railgun's private transaction system and The Graph's indexer communication network Graphcast.

Given Waku v1's scaling difficulties, the team behind Waku is primarily focused on ensuring v2 scales securely. By the end of Q3 2023, we aim to support one million users.

Meanwhile, the team is also working on ensuring production readiness alongside network and development sustainability. Though work on these areas is already underway, our efforts will intensify as we progress toward our million-user-milestone. Finally, Waku aims to promote itself among developers looking to add decentralised communications to their applications.


Secure scalability

Alongside Vac researchers, Waku is producing and implementing various RFCs to define the protocols and application guidelines required to serve more than one million simultaneous users. We then aim to study Waku's capacity through network simulations before designing and implementing scalability risk-mitigation strategies.

Production readiness

We will consider Waku v2 production ready when it's performant, stable, and bug-free while satisfying user requirements. This process will involve collaboration with Status teams to test the protocols, as well as further simulations to assess future updates' expected performances. Ensuring that Waku has adequate protection against spam and DoS attacks is critically important to this milestone.

Network sustainability

Many of Waku's core value propositions (privacy and resistance to censorship, for example) are reliant on its decentralisation. While our most passionate users may well operate network infrastructure altruistically, incentivization mechanisms will ensure a wider node distribution, and strengthen Waku's disruptive properties.

This process will involve defining a viable incentivization structure via RFC and studying its efficacy to tweak parameters through test net simulations, before implementation on the main net.

Development sustainability

We believe Waku will only realise its true potential if its community and users believe in its longevity. As such, Waku's development must remain funded. Again, arriving at a suitable funding mechanism will involve several RFCs to define how much of the network's extractable value can be diverted toward R&D efforts.

Growth

After achieving the above milestones, we will be in a position to aggressively market Waku to potential contributors and developers within the web3 sector and beyond. As a piece of public goods infrastructure, we encourage the wider community to help improve the protocols by contributing to our R&D efforts.

Promotion is an ongoing process that is already underway, involving conference attendance and sponsorship, hosting developer workshops, producing promotional material, and appearing on industry-focused podcasts.

Contribute to Waku

- - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

Development roadmap

Waku v1 is in production and was quickly adopted by the Status Mobile application. Yet, this initial version was unable to handle the scale required to support popular applications, prompting the v2 rewrite. Waku v2 has seen encouraging initial adoption beyond Status by projects such as Railgun's private transaction system and The Graph's indexer communication network Graphcast.

Given Waku v1's scaling difficulties, the team behind Waku is primarily focused on ensuring v2 scales securely. By the end of Q3 2023, we aim to support one million users.

Meanwhile, the team is also working on ensuring production readiness alongside network and development sustainability. Though work on these areas is already underway, our efforts will intensify as we progress toward our million-user-milestone. Finally, Waku aims to promote itself among developers looking to add decentralised communications to their applications.


Secure scalability

Alongside Vac researchers, Waku is producing and implementing various RFCs to define the protocols and application guidelines required to serve more than one million simultaneous users. We then aim to study Waku's capacity through network simulations before designing and implementing scalability risk-mitigation strategies.

Production readiness

We will consider Waku v2 production ready when it's performant, stable, and bug-free while satisfying user requirements. This process will involve collaboration with Status teams to test the protocols, as well as further simulations to assess future updates' expected performances. Ensuring that Waku has adequate protection against spam and DoS attacks is critically important to this milestone.

Network sustainability

Many of Waku's core value propositions (privacy and resistance to censorship, for example) are reliant on its decentralisation. While our most passionate users may well operate network infrastructure altruistically, incentivization mechanisms will ensure a wider node distribution, and strengthen Waku's disruptive properties.

This process will involve defining a viable incentivization structure via RFC and studying its efficacy to tweak parameters through test net simulations, before implementation on the main net.

Development sustainability

We believe Waku will only realise its true potential if its community and users believe in its longevity. As such, Waku's development must remain funded. Again, arriving at a suitable funding mechanism will involve several RFCs to define how much of the network's extractable value can be diverted toward R&D efforts.

Growth

After achieving the above milestones, we will be in a position to aggressively market Waku to potential contributors and developers within the web3 sector and beyond. As a piece of public goods infrastructure, we encourage the wider community to help improve the protocols by contributing to our R&D efforts.

Promotion is an ongoing process that is already underway, involving conference attendance and sponsorship, hosting developer workshops, producing promotional material, and appearing on industry-focused podcasts.

Contribute to Waku

+ + \ No newline at end of file diff --git a/about/team/index.html b/about/team/index.html index 72ea1d5a..5e7b25e9 100644 --- a/about/team/index.html +++ b/about/team/index.html @@ -4,9 +4,9 @@ Core contributors | Waku - - - + + +
@@ -14,8 +14,8 @@ .lsd-dropdown--error ) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not( .lsd-dropdown--error - ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

Core contributors

Leading Waku's R&D efforts is Franck Royer. Franck draws on more than five years of experience within the blockchain and crypto ecosystem, and over 13 years as a software engineer and team lead with a primary focus on backend development for mission-critical applications.

The core contributors building Waku are split into three subgroups:

  • Waku Research

  • Waku Development

  • Waku Eco Dev

Waku Research

Our research efforts are led by a former telecoms engineer with almost a decade of experience, and supported by a post-doctoral research engineer who specialises in communications networks.

Waku Development

Waku's development arm is broken down by client implementation.

  • nwaku: The team building nwaku, our implementation in Nim, consists of three software engineers with more than two decades of combined experience in backend development, open-source development, artificial intelligence, and finance.

  • js-waku: Our JavaScript implementation is developed by a senior and intermediate software engineer, one with extensive experience in the web3 sector and another who previously worked with renowned tech companies, such as Microsoft and Ubisoft.

  • go-waku: Building Waku's Golang implementation are two senior software engineers with over 25 years of combined experience, including significant experience in web3.

Waku Eco Dev

Ensuring that Waku attracts developers and users is the Waku Outreach team. It comprises a developer relations engineer and a technical writer. Both members are steeped in web3, having previously worked with Wallet Connect and Unstoppable Domains, and regularly presenting on the crypto conference circuit.

Waku is looking to expand the above structure and currently has openings for core contributors. As an open-source public goods project, Waku also welcomes community contributions. Please check out our Github repo here.

Work with us

- - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

Core contributors

Leading Waku's R&D efforts is Franck Royer. Franck draws on more than five years of experience within the blockchain and crypto ecosystem, and over 13 years as a software engineer and team lead with a primary focus on backend development for mission-critical applications.

The core contributors building Waku are split into three subgroups:

  • Waku Research

  • Waku Development

  • Waku Eco Dev

Waku Research

Our research efforts are led by a former telecoms engineer with almost a decade of experience, and supported by a post-doctoral research engineer who specialises in communications networks.

Waku Development

Waku's development arm is broken down by client implementation.

  • nwaku: The team building nwaku, our implementation in Nim, consists of three software engineers with more than two decades of combined experience in backend development, open-source development, artificial intelligence, and finance.

  • js-waku: Our JavaScript implementation is developed by a senior and intermediate software engineer, one with extensive experience in the web3 sector and another who previously worked with renowned tech companies, such as Microsoft and Ubisoft.

  • go-waku: Building Waku's Golang implementation are two senior software engineers with over 25 years of combined experience, including significant experience in web3.

Waku Eco Dev

Ensuring that Waku attracts developers and users is the Waku Outreach team. It comprises a developer relations engineer and a technical writer. Both members are steeped in web3, having previously worked with Wallet Connect and Unstoppable Domains, and regularly presenting on the crypto conference circuit.

Waku is looking to expand the above structure and currently has openings for core contributors. As an open-source public goods project, Waku also welcomes community contributions. Please check out our Github repo here.

Work with us

+ + \ No newline at end of file diff --git a/about/waku-network/index.html b/about/waku-network/index.html index 234a6637..a0a8e839 100644 --- a/about/waku-network/index.html +++ b/about/waku-network/index.html @@ -4,9 +4,9 @@ The Waku Network | Waku - - - + + +
@@ -14,8 +14,8 @@ .lsd-dropdown--error ) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not( .lsd-dropdown--error - ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

The Waku Network

The Waku Network Gen 0 is the first iteration of a public network for peer-to-peer messaging built on the Waku protocol stack. Its goal is to offer a permissionless, auto-scalable, DoS protected shared messaging layer for the decentralized web.

Motive

The Waku Network is a solution to achieve scalability and reasonable Denial of Service (DoS) protection, even when sharing a decentralised message routing layer with other applications. The Waku Network is actively addressing the challenge of scaling a shared routing layer, where each user participates in relaying traffic for all applications. As the adoption of Waku continues to grow, the bandwidth consumption skyrockets. Users with limited bandwidth capabilities are becoming increasingly marginalised and unable to participate fully in the Waku Relay network.

The Waku Network also aims to mitigate the risk of users being susceptible to spam or DoS attacks that may occur when the network is fully accessible to all users and applications.

Waku’s mission is to enable anyone across the globe to opt out of using applications built on centralised communication components, that’s why Waku protocols are designed to work on even resource-restricted devices. Without finding a way to limit bandwidth consumption, the protocol would be at risk of not enabling this mission.

Sharding and rate limiting

There are two main technological advances that the Waku Network Gen 0 introduces which enable the public network:

  1. Sharding;

Instead of having one relay network, the Waku Network is split into several GossipSub topics so that the application user is not required to relay all of the applications’ traffic but rather just the subset of traffic on the same shard. Auto-sharding will automatically allocate messages for an application and does not require a centralised allocator.

  1. Rate limiting.

Rate limiting prevents attackers from flooding the network beyond the maximum expected bandwidth usage. The RLN DoS protection caps publishers to 1 message per second with a 20-second grace period before additional messages are restricted. In the future, a dimensioning mechanism will give publishers a maximum allocation of messages per day, limiting the maximum rate of these messages within the overall network.

- - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

The Waku Network

The Waku Network Gen 0 is the first iteration of a public network for peer-to-peer messaging built on the Waku protocol stack. Its goal is to offer a permissionless, auto-scalable, DoS protected shared messaging layer for the decentralized web.

Motive

The Waku Network is a solution to achieve scalability and reasonable Denial of Service (DoS) protection, even when sharing a decentralised message routing layer with other applications. The Waku Network is actively addressing the challenge of scaling a shared routing layer, where each user participates in relaying traffic for all applications. As the adoption of Waku continues to grow, the bandwidth consumption skyrockets. Users with limited bandwidth capabilities are becoming increasingly marginalised and unable to participate fully in the Waku Relay network.

The Waku Network also aims to mitigate the risk of users being susceptible to spam or DoS attacks that may occur when the network is fully accessible to all users and applications.

Waku’s mission is to enable anyone across the globe to opt out of using applications built on centralised communication components, that’s why Waku protocols are designed to work on even resource-restricted devices. Without finding a way to limit bandwidth consumption, the protocol would be at risk of not enabling this mission.

Sharding and rate limiting

There are two main technological advances that the Waku Network Gen 0 introduces which enable the public network:

  1. Sharding;

Instead of having one relay network, the Waku Network is split into several GossipSub topics so that the application user is not required to relay all of the applications’ traffic but rather just the subset of traffic on the same shard. Auto-sharding will automatically allocate messages for an application and does not require a centralised allocator.

  1. Rate limiting.

Rate limiting prevents attackers from flooding the network beyond the maximum expected bandwidth usage. The RLN DoS protection caps publishers to 1 message per second with a 20-second grace period before additional messages are restricted. In the future, a dimensioning mechanism will give publishers a maximum allocation of messages per day, limiting the maximum rate of these messages within the overall network.

+ + \ No newline at end of file diff --git a/assets/css/styles.2915a385.css b/assets/css/styles.2915a385.css new file mode 100644 index 00000000..b76fd772 --- /dev/null +++ b/assets/css/styles.2915a385.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}[data-theme=dark],html[data-theme=dark]{--ifm-color-scheme:dark}:root,[data-theme=light]{--ifm-color-scheme:light}.menu,.navbar-sidebar,body,html{overflow-x:hidden}code,pre code{--lsd-typography-generic-font-family:monospace}.button,.dropdown__link,.footer__item,.text--truncate{white-space:nowrap}.toggleButton_dl49,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.dropdown__menu,.menu__list,.root_N57j ul li{list-style:none}:root{--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-radius:0.4rem;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-weight-light:300;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-color:var(--ifm-font-color-base);--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-color:var(--ifm-color-white);--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-sidebar-width:83vw;--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}body{background-color:rgb(var(--lsd-surface-primary));height:auto!important}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.blog-archive-page .main-wrapper main>section,.margin-top--none,.margin-vert--none{margin-top:0!important}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit;color:rgb(var(--lsd-text-primary))}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);overflow:auto;padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}.sub1,h1{font-size:var(--ifm-h1-font-size)}.sub2,h2{font-size:var(--ifm-h2-font-size)}.sub3,h3{font-size:var(--ifm-h3-font-size)}.sub4,h4{font-size:var(--ifm-h4-font-size)}.sub5,h5{font-size:var(--ifm-h5-font-size)}.sub6,h6,small{font-size:var(--ifm-h6-font-size)}.container_lyt7,.container_lyt7>svg,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading));letter-spacing:-1.5px}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary,[data-theme=dark] .root_JWD1>div>div{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.alert__heading,.mdx-hero-title--uppercase,.text--uppercase,table td strong,table th{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.admonitionHeading_JPfy,.events .theme-doc-breadcrumbs .breadcrumbs__link{text-transform:capitalize}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer,.mdx-timeline-item__description{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.breadcrumbs__item,.close:hover,.table-of-contents__link--active code{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.admonitionIcon_BGV6,.root_JWD1>span svg{vertical-align:middle}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navWrapper_ybYI,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%);display:none}.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item-collapsible>a[aria-expanded=false]>svg{transform:rotate(90deg)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_hrrU article>:first-child,.docItemContainer_hrrU header+*,.footer__item{margin-top:0}.admonitionContent_iozl>:last-child,.footer__items{margin-bottom:0}.main-wrapper>main,.table-of-contents,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;top:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.icon_S7Kx,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.blog-wrapper>.container>.row>aside>nav>ul li,.navbar__items--center .navbar__brand,a[class^=sidebarLogo_]{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.cursor-pointer,.pills__item,.tabs__item{cursor:pointer}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;visibility:hidden;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility;visibility:hidden}.footer,.row{position:relative}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);position:relative;text-align:left;top:-.5rem}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.footer>div,.grid{grid-template-columns:repeat(24,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.blog-wrapper>.container>.row>aside>nav>div:first-child,.blog-wrapper>.container>.row>aside>nav>ul li a{border-left:1px solid #0000;font-size:var(--lsd-subtitle2-fontSize)!important;font-weight:var(--lsd-subtitle2-fontWeight)!important;line-height:var(--lsd-subtitle2-lineHeight)!important}.content_knG7 a,.dropdown__link:hover,.footer__item a{text-decoration:underline}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar__left-items>.navbar__item:first-of-type,.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--content-padding:16px;--container-max-width:1440px;--pagination-nav-margin-top:96px;--ifm-navbar-link-color:rgb(var(--lsd-text-primary));--ifm-navbar-background-color:rgb(var(--lsd-surface-primary));--ifm-dropdown-link-color:rgb(var(--lsd-text-primary));--ifm-dropdown-hover-background-color:rgb(var(--lsd-surface-secondary));--ifm-background-color:rgb(var(--lsd-surface-primary));--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-primary:rgb(var(--lsd-theme-primary));--ifm-color-secondary:rgb(var(--lsd-theme-secondary));--prism-background-color:rgb(var(--lsd-theme-primary));--ifm-color-gray-0:rgb(var(--lsd-surface-primary));--ifm-color-gray-100:#f8f8fa;--ifm-color-gray-200:#f7f7f8;--ifm-color-gray-300:#eeeef0;--ifm-color-gray-400:#c0c0c2;--ifm-color-gray-500:#828285;--ifm-color-gray-600:#474747;--ifm-color-gray-700:#373738;--ifm-color-gray-800:#1a1a1a;--ifm-color-gray-900:#151515;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-font-color-base-inverse:var(--ifm-color-black);--docusaurus-highlighted-code-line-bg:#ffffff26;--ifm-card-background-color:var(--ifm-color-gray-100)!important;--ifm-alert-foreground-color:var(--ifm-color-gray-700);--ifm-button-background-color:rgb(var(--lsd-surface-primary));--ifm-global-border-width:1px;--ifm-global-radius:0.6rem;--ifm-hover-overlay:#0000000d;--ifm-font-family-base:var(--lsd-typography-generic-font-family);--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--lgs-font-family-secondary:Georgia,"Times New Roman",serif;--ifm-font-size-base:100%;--ifm-line-height-base:1.625;--ifm-font-size-secondary:100%;--ifm-line-height-secondary:1.5;--ifm-font-weight-light:400;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:400;--ifm-font-weight-bold:600;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-h1-font-size:var(--lsd-h1-fontSize);--ifm-h2-font-size:var(--lsd-h2-fontSize);--ifm-h3-font-size:var(--lsd-h3-fontSize);--ifm-h4-font-size:var(--lsd-h4-fontSize);--ifm-h5-font-size:var(--lsd-h5-fontSize);--ifm-h6-font-size:var(--lsd-h6-fontSize);--ifm-global-spacing:24px;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:0.75rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:24px;--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-code-background:rgb(var(--lsd-text-primary))!important;--ifm-pre-padding:1.125rem;--ifm-link-decoration:none;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-border-left-width:3px;--ifm-blockquote-shadow:none;--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-button-padding-vertical:0.4rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-border-radius:var(--ifm-global-radius);--ifm-card-horizontal-spacing:var(--ifm-spacing-horizontal);--ifm-card-vertical-spacing:var(--ifm-spacing-vertical);--ifm-footer-link-horizontal-spacing:0;--ifm-footer-padding-horizontal:var(--content-padding);--ifm-footer-padding-vertical:24px;--ifm-footer-background-color:#0000;--ifm-menu-link-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-color:rgb(var(--lsd-text-primary),0.6);--ifm-menu-color-background-active:#0000;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-height:64px;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-padding-horizontal:var(--content-padding);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)/3);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:100vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pills-spacing:0.125rem;--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--ifm-alert-background-color:#0000;--ifm-color-secondary-contrast-background:#0000;--ifm-color-success-contrast-background:#0000;--ifm-color-info-contrast-background:#0000;--ifm-color-warning-contrast-background:#0000;--ifm-color-danger-contrast-background:#0000;--ifm-alert-border-radius:none;--note:#d4d5d8;--tip:#6ace4b;--caution:#ddaa39;--danger:#e46967;--info:#68b1d0;--ifm-color-secondary-dark:var(--note);--ifm-color-secondary-light:var(--note);--ifm-color-success-dark:var(--tip);--ifm-color-success-light:var(--tip);--ifm-color-info-dark:var(--info);--ifm-color-info-light:var(--info);--ifm-color-warning-dark:var(--caution);--ifm-color-warning-light:var(--caution);--ifm-color-danger-dark:var(--danger);--ifm-color-danger-light:var(--danger);--ifm-footer-link-color:rgb(var(--lsd-text-primary));--ifm-color-content-secondary:rgb(var(--lsd-text-primary));--ifm-hero-background-color:#f8f8fa;--ifm-hero-text-color:var(--ifm-color-black);--desktop-footer-gap:200px;--mobile-footer-gap:144px;--doc-grid-gap:16px;--ifm-table-background:#0000!important;--ifm-table-stripe-background:#0000!important;--ifm-pre-border-radius:0!important;--ifm-code-font-size:100%!important;background-color:#0000!important;--doc-sidebar-width:16.66vw!important;--doc-sidebar-max-width:320px;--ifm-navbar-item-padding-vertical:8px;--ifm-navbar-item-padding-horizontal:12px;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--card-height:188px;--mobile-width:253px;--mobile-height:176px}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}.theme-admonition,table{overflow:auto}main{min-height:calc(100vh - var(--ifm-navbar-height) - var(--content-padding))}svg *{fill:rgb(var(--lsd-text-primary))}.grid{display:grid;gap:16px}.table-of-contents__link--active,.table-of-contents__link:hover{color:rgb(var(--lsd-text-primary))!important}h1{font-size:var(--lsd-h1-fontSize);font-weight:var(--lsd-h1-fontWeight);line-height:var(--lsd-h1-lineHeight)}h1,h2,h3,h4{font-family:var(--lsd-typography-generic-font-family)}h2{font-size:var(--lsd-h2-fontSize);font-weight:var(--lsd-h2-fontWeight);line-height:var(--lsd-h2-lineHeight)}h3{font-size:var(--lsd-h3-fontSize);font-weight:var(--lsd-h3-fontWeight);line-height:var(--lsd-h3-lineHeight)}h4{font-size:var(--lsd-h4-fontSize);font-weight:var(--lsd-h4-fontWeight);line-height:var(--lsd-h4-lineHeight)}code{background:#ffffff26;border-radius:0;color:rgb(var(--lsd-text-primary));background:rgba(var(--lsd-theme-primary),.1)}pre code{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-body1-fontSize)!important;font-weight:var(--lsd-body1-fontWeight)!important;line-height:var(--lsd-body1-lineHeight)!important}.theme-doc-footer-edit-meta-row div[class*=lastUpdated_] b,table td strong,table th{font-weight:400!important}.alert,.card,.theme-code-block{box-shadow:none!important}.menu__list-item-collapsible>a,.navbar{box-shadow:none}.sans{font-family:var(--lgs-font-family-secondary);line-height:var(--ifm-line-height-secondary)}.blog-wrapper--index [itemprop=blogPost] .markdown,.external-link,.footer__bottom,.footer__copyright,.menu__list-item .menu__link,.theme-doc-footer-edit-meta-row div[class*=lastUpdated_],table{font-size:var(--lsd-body2-fontSize)!important;font-weight:var(--lsd-body2-fontWeight)!important;line-height:var(--lsd-body2-lineHeight)!important;font-family:var(--lsd-typography-generic-font-family)!important}.markdown a,.markdown a:hover,article a,article a:hover{text-decoration:underline;text-decoration-color:inherit;text-decoration-color:rgba(var(--lsd-text-primary),.6);text-underline-offset:.3rem}.card{padding:var(--ifm-spacing-vertical) var(--ifm-spacing-horizontal);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.table-of-contents__left-border{border:none!important}.menu__link{align-items:center;display:flex;justify-content:space-between}.menu__link span{color:rgba(var(--lsd-text-primary),.6)}.theme-edit-this-page{align-items:center;display:flex;gap:12px}.menuExternalLink_NmtK,.navbar__inner,.navbar__item{align-items:center}.dropdown__link:hover{color:rgb(var(--lsd-text-secondary))}.blog-wrapper>.container>.row>aside>nav>ul li a:hover,.breadcrumbs__item--active,.footerLogoLink_BH7S:hover,.hash-link:focus,.theme-code-block:hover .buttonGroup_Qu4e button,:hover>.hash-link{opacity:1}.breadcrumbs__item:not(:last-child):after{background:none;content:"/";opacity:1}.breadcrumbs__link{background:#0000!important;padding:0}.navbar{height:var(--ifm-navbar-height)}.menu__link--active,.menu__list-item-collapsible--active>:not(a[href="#"]){box-shadow:inset 1px 0 0 rgb(var(--lsd-border-primary))}.navbar__logo,a[class^=sidebarLogo_] img{height:40px}.header-github-link:hover,.mdx-event-card__info>span:first-of-type,.mdx-event-info__label{opacity:.6}.header-github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath 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'/%3E%3C/svg%3E") no-repeat;content:"";display:flex;height:16px;width:16px}html[data-theme=dark] .header-github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' 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'/%3E%3C/svg%3E") no-repeat}.dropdown__link--active{color:rgb(var(--lsd-text-secondary))!important;background-color:#0000}.row{margin:0}.theme-doc-version-banner *,.theme-doc-version-banner:hover *{color:#fff;text-decoration-color:#fff!important}.blog-wrapper main>section article ul li .lsd-tag>span,.blog-wrapper main>section article ul li .lsd-tag>span>span,.menu__link--active span,.theme-doc-version-badge{color:rgb(var(--lsd-text-primary))}.navbar__left-items>a:not(:last-child){margin-right:1.25rem}.navbar__left-items>a:not(:last-child)[href^="/"]{margin-right:1.75rem}.menu__link--sublist-caret:after{background:none;content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQgOS41My45NC45NEw4IDcuNDE3bDMuMDYgMy4wNTMuOTQtLjk0LTQtNC00IDRaIiBmaWxsPSIjZmZmIi8+PC9zdmc+);filter:unset;height:unset;min-width:unset;width:unset}.menu__list-item--collapsed>.menu__link--sublist-caret:after{transform:rotate(0)!important}.menu__link--active{border-radius:0}.dropdown__menu,.pagination-nav__link{border:1px solid rgb(var(--lsd-border-primary))}.table-of-contents a{padding-left:16px}.table-of-contents__link--active{border-left:1px solid rgb(var(--lsd-border-primary));padding-left:16px}.navbar__item{display:inline-flex;padding:0}.mdx-accordion-item,.navbar__link--active{border-bottom:1px solid rgb(var(--lsd-border-primary))}.dropdown__menu{background:rgb(var(--lsd-surface-primary));border-radius:0;margin-right:-1px;margin-top:6px;padding:0;transition-duration:0ms}.dropdown__link{background-color:#0000;border-radius:0;margin:0;padding:5px 11px;text-decoration:none}.dropdown__link *{text-decoration:inherit!important}.dropdown__link:hover{background-color:#0000}.margin-left-8,.mdx-jpd__external-link-icon{margin-left:8px}.pagination-nav{margin-top:var(--pagination-nav-margin-top)!important}.pagination-nav__link{align-items:center;border-radius:0;display:flex;gap:18px;padding:10px 14px}.theme-doc-version-badge,table td,table th,table thead>tr{border:1px solid rgb(var(--lsd-border-primary))}.pagination-nav__link--next{grid-column:2/3;text-align:right;justify-content:flex-end}.events .pagination-nav,.events aside,.footer__item a svg,.menu__caret,.pagination-nav__label:after,.pagination-nav__label:before,.theme-doc-footer-edit-meta-row div[class*=lastUpdated_] small{display:none}.theme-back-to-top-button{display:none!important}.footer__link-item,.tag_NdBD{display:inline-block}.lsd-collapse__content{padding:24px}.theme-doc-version-badge{background:#0000;margin-bottom:16px;padding:4px 8px}.navbar__right-items{align-items:center;display:flex}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:table;table-layout:fixed;width:100%}table th{text-align:left}table td{color:var(--ifm-table-cell-color)}.theme-doc-footer{margin-bottom:96px}.theme-doc-footer-edit-meta-row div[class*=lastUpdated_]{font-style:normal;opacity:.7}.navbar-sidebar__item{padding-block:0;padding-inline:var(--content-padding)}.navbar-sidebar__back{align-items:center;display:flex;gap:16px;margin:24px 0!important;padding:0;width:100%!important}.theme-doc-sidebar-menu .menu__link{padding-left:var(--content-padding);padding-right:0}.menu__list-item-collapsible>a[aria-expanded=true]>svg{transform:rotate(180deg)}main[itemtype*=Blog]{margin-left:0}.mdx-ghc-subheader-text,main[itemtype*=Blog] .theme-doc-breadcrumbs{margin-bottom:40px}main[itemtype*=Blog] .blog-divider{background:rgb(var(--lsd-theme-primary));margin-block:40px}.events .theme-doc-markdown>h1{margin-bottom:16px!important}.events .theme-doc-breadcrumbs{display:block}.events .theme-doc-breadcrumbs .breadcrumbs__item--active{border:1px solid rgb(var(--lsd-border-primary));box-sizing:border-box}.events .theme-doc-breadcrumbs .breadcrumbs__item--active>span{padding:4px 8px}.container{padding-inline:var(--content-padding)}.main-wrapper>.container{margin-bottom:80px!important;margin-top:0!important}.main-wrapper>main,.main-wrapper>main>.row,.main-wrapper>main>.row>.col{--ifm-spacing-horizontal:var(--content-padding);flex-basis:100%!important;flex:unset;margin:0;max-width:unset;width:100%!important}.footer{margin-bottom:18px;width:100%!important}.footer>div{display:grid;gap:1rem;margin:unset;max-width:unset;padding:16px 0}.footer__bottom{grid-column:1/12;grid-row:1/1;text-align:unset}#__docusaurus-base-url-issue-banner-container,.blog-archive-page .main-wrapper header .container p,.blog-wrapper main>section article ul li a:after,.blog-wrapper main>section article ul li a:before,.docItemContainer_hrrU .tocMobile_imaF:not(:first-of-type),.docSidebarContainer_b6E3,.footer__bottom>div:first-of-type,.groups_p1lF .divider_eGUz:last-child,.mdx-accordion-item>input,.modal_kLVz .closeButton_Rr0e,.sidebarLogo_Ydl9,.theme-doc-breadcrumbs,.themedImage_kfRS,.wrapper_SWrM .fullscreenButton_Bocn,[data-hidden-doc-sidebar=true] .theme-doc-sidebar-container,[data-theme=dark] .lightToggleIcon_K4TL,[data-theme=light] .darkToggleIcon_lKkA,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.footer__title{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-label1-fontSize)!important;font-weight:var(--lsd-label1-fontWeight)!important;font-weight:var(--ifm-font-weight-normal);line-height:var(--lsd-label1-lineHeight)!important;margin-bottom:4px}.blog-wrapper main>section article ul li .lsd-tag>span,.blog-wrapper main>section article ul li .lsd-tag>span>span,.footer__item,.footer__item a{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-label1-fontSize)!important;font-weight:var(--lsd-label1-fontWeight)!important;line-height:var(--lsd-label1-lineHeight)!important}.footer>div:first-child>.footer__links{display:grid;gap:12px;grid-column:13/25;grid-row:1/1;margin-bottom:0}.footer>div:nth-child(2)>.footer__links{display:grid;gap:2rem 1rem;grid-column:13/25;grid-row:1/1;grid-template-columns:repeat(2,1fr);margin-bottom:0}.footer__col{grid-template-columns:span 1}.blog-wrapper main>section article ul li a,.codeBlockStandalone_BRZX,.codeBlockStandalone_MEMb,.col.footer__col,.modal_kLVz>div>div:first-child,.noResults_mD2O,.root_N57j ul,.root_ONDG.empty_a7qb{padding:0}.footer__items{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}.footer__item{display:inline-flex}.footer__item:not(:last-child):after{content:"•";display:inline-block;margin-left:8px;text-decoration:none}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin:0!important}.navbar__inner{flex-direction:row}.hero--primary{--ifm-hero-background-color:rgb(var(--lsd-surface-primary));--ifm-hero-text-color:rgb(var(--lsd-text-primary))}.docusaurus-mermaid-container{margin-block:40px}.overflow-hidden{overflow:hidden}.hidden-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hidden-scrollbar::-webkit-scrollbar{display:none;width:0}[class^=mdx-]{--lsd-h1-fontWeight:100;--lsd-h2-fontWeight:300;--lsd-h3-fontWeight:300;--lsd-h4-fontWeight:300;--lsd-h5-fontWeight:300;--lsd-h6-fontWeight:300;--lsd-subtitle1-fontWeight:300}.hidden,.mdx-hero-video .mdx-hero-video__placeholder{opacity:0;visibility:hidden}.blog-wrapper h1[itemprop=headline]{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h1-fontSize)!important;font-weight:var(--lsd-h1-fontWeight)!important;line-height:var(--lsd-h1-lineHeight)!important}.blog-wrapper>.container{display:flex;margin:0;max-width:unset;padding-inline:0;width:100%}.blog-wrapper>.container>.row,.form_lk4c .inputs_dj3Q>*,.mdx-roadmap,.mdx-scroll-buttons,.root_lcb5>*{width:100%}.blog-wrapper main>header h1{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h3-fontSize)!important;font-weight:var(--lsd-h3-fontWeight)!important;line-height:var(--lsd-h3-lineHeight)!important;margin-bottom:.5rem}.blog-wrapper>.container>.row>aside{max-width:unset}.blog-wrapper>.container>.row>aside>nav{padding-top:16px;top:var(--ifm-navbar-height)}.blog-wrapper>.container>.row>aside>nav>div:first-child{font-family:var(--lsd-typography-generic-font-family)!important;margin-bottom:0!important;padding:4px 0 4px 15px}.blog-wrapper>.container>.row>aside>nav>ul li a{box-sizing:border-box;display:block;font-family:var(--lsd-typography-generic-font-family)!important;opacity:.6;padding:4px 0 4px 2rem}.blog-wrapper--index>.container>.row>aside>nav>div:first-child,.blog-wrapper>.container>.row>aside>nav>ul li a[class*=sidebarItemLinkActive_]{border-color:rgb(var(--lsd-border-primary))}.blog-wrapper--index h2[itemprop=headline]{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h4-fontSize)!important;font-weight:var(--lsd-h4-fontWeight)!important;line-height:var(--lsd-h4-lineHeight)!important}.blog-wrapper .breadcrumbs__item,.blog-wrapper--index h2[itemprop=headline]>a,.breadcrumbs__item,.breadcrumbs__link{text-decoration:none}.blog-wrapper>.container>.row>main{margin-top:16px;max-width:unset}.blog-archive-page .main-wrapper header .container h1,.blog-wrapper article header h2,.blog-wrapper main>section article h2{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h3-fontSize)!important;font-weight:var(--lsd-h3-fontWeight)!important;line-height:var(--lsd-h3-lineHeight)!important}.blog-wrapper article footer{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-top:24px!important}.blog-wrapper main article{border-bottom:1px solid rgb(var(--lsd-border-primary));margin-bottom:34px!important;padding-bottom:34px}.blog-wrapper main article:last-of-type{border-bottom:none!important}.blog-archive-page .main-wrapper{padding:2rem var(--content-padding)}.blog-archive-page .main-wrapper header{border-bottom:1px solid var(--ifm-hero-text-color);margin:0;padding:0 0 1rem}.blog-archive-page .main-wrapper header .container{margin:0;padding:0!important}.blog-archive-page .main-wrapper main>section .container{margin:0;max-width:unset;padding:0}.blog-archive-page .main-wrapper main>section .container>.row{margin-top:64px}.blog-archive-page .main-wrapper main>section .container>.row>.col{margin:0!important;max-width:unset;padding:0}.blog-archive-page .main-wrapper main>section .container>.row>.col h3{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h5-fontSize)!important;font-weight:var(--lsd-h5-fontWeight)!important;line-height:var(--lsd-h5-lineHeight)!important}.blog-archive-page .main-wrapper main>section .container>.row>.col a{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-body1-fontSize)!important;font-weight:var(--lsd-body1-fontWeight)!important;line-height:var(--lsd-body1-lineHeight)!important}.blog-archive-page .main-wrapper main>section .container>.row>.col ul{margin:1rem 0 0;padding:0 0 0 1.5rem}.blog-wrapper main>section article{border-bottom:none;padding:0}.blog-wrapper main>section article ul,.mdx-app-card__name{margin-top:1rem}.nav_cMpg,.root_QACb{margin:0 auto;max-width:var(--container-max-width)}.blog-wrapper main>section article ul li{margin:0 .5rem 0 0!important;padding:0!important}.blog-wrapper main>section article ul li .lsd-tag{height:28px;padding:3px 11px}.community-container article{margin:16px auto 0;max-width:796px}div:has(.community-container)>.container{margin-bottom:0!important;padding-bottom:0!important}.mdx-event-info__content{white-space:pre-wrap}.breadcrumbs__item--active{border:none!important}.breadcrumbs__item--active>span{padding:unset!important}.mdx-event-cta-section__form .lsd-typography--body2{margin-left:16px}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}[data-theme=dark] .themedImage--dark_OvIx,[data-theme=light] .themedImage--light_BL8e,html:not([data-theme]) .themedComponent--light_NU7w,html:not([data-theme]) .themedImage--light_BL8e{display:initial}.icon_S7Kx.s_AZDZ svg{width:10px}.icon_S7Kx.m_thRi svg{width:20px}.icon_S7Kx.l_WHPt svg{width:40px}[data-theme=dark] .icon_S7Kx.fill_hNhN,[data-theme=dark] .icon_S7Kx.fill_hNhN *{fill:var(--ifm-color-white)}[data-theme=dark] .icon_S7Kx.stroke_N8dm svg,[data-theme=dark] .icon_S7Kx.stroke_N8dm svg *{stroke:var(--ifm-color-white)}[data-theme=light] .icon_S7Kx.fill_hNhN,[data-theme=light] .icon_S7Kx.fill_hNhN *{fill:var(--ifm-color-black)}[data-theme=light] .icon_S7Kx.stroke_N8dm svg,[data-theme=light] .icon_S7Kx.stroke_N8dm svg *{stroke:var(--ifm-color-black)}.backdrop_Ifvc{background:rgb(var(--lsd-surface-primary));z-index:201}.backdrop_Ifvc,.navWrapper_ybYI{height:100%;left:0;opacity:0;position:fixed;top:0;visibility:hidden;width:100%}.navWrapper_ybYI{background:#0000;z-index:203}.navWrapper_ybYI>*{pointer-events:auto}.nav_cMpg{align-items:center;background:rgb(var(--lsd-surface-primary));display:flex;flex-direction:row;height:var(--ifm-navbar-height);justify-content:space-between;padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.visible_ynAX{opacity:1!important;visibility:visible!important}.codeBlockContent_ugSV,.wrapper_SWrM{position:relative}.wrapper_SWrM:not(.active_qZD5) .fullscreenButton_Bocn{background:rgb(var(--lsd-surface-primary));bottom:8px;position:absolute;right:8px;transition:.3s}.root_QACb{padding:0;width:100%}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.iconExternalLink_nPIU{margin-left:.3rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.firstRow_ar1q{border-top:1px solid rgb(var(--lsd-text-primary));margin-bottom:96px!important}.firstRow_ar1q,.secondRow__ww3{display:flex;flex-direction:row}.secondRow__ww3{border-top:1px solid rgb(var(--lsd-border-primary))}.backToTop_wDfN{bottom:16px;left:16px;position:absolute;width:-moz-fit-content;width:fit-content}.l-modal,.l-modal__backdrop{position:fixed;top:0;left:0}.toggle_K23S{border:1px solid rgb(var(--lsd-border-primary));box-sizing:border-box;height:32px;width:32px}.toggle_K23S svg{height:14px;width:14px}.toggleButton_dl49{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.dropdownNavbarItem_o23I,.l-modal__content{border:1px solid rgb(var(--lsd-border-primary))}.toggleButton_dl49:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_AAS_{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.l-modal{height:100vh;opacity:0;transition:.3s;visibility:hidden;width:100%;z-index:9999}.l-modal__container{display:grid;gap:1rem;grid-template-columns:repeat(24,1fr);margin:0 auto;max-width:1376px;overflow:auto}.l-modal--open{opacity:1;visibility:visible}.l-modal__content{background:rgb(var(--lsd-surface-primary));grid-column:8/19;height:-moz-fit-content;height:fit-content;margin:64px 0;max-height:80vh;padding:7px;z-index:9998}.groups_p1lF,.root_ONDG{max-height:60vh;overflow-y:auto}.l-modal__backdrop{background-color:rgba(var(--lsd-surface-primary),.6);height:100%;width:100%;z-index:9997}.modal_kLVz .header_QwCa{align-items:center;display:flex;flex-direction:row;gap:.5rem}.root_EFVO{padding:32px;text-align:center}.root_ONDG{padding:24px}.title_uwS_{font-size:.75rem!important}.item_RHYF{align-items:center;display:flex;flex-direction:row;margin-top:1rem}.item_RHYF .itemTitle_jtAv{flex-grow:1;overflow:hidden;padding-left:1rem;text-overflow:ellipsis;white-space:nowrap}.linkContent__x3v,.root_JWD1{align-items:center;display:flex}.item_RHYF .itemTitle_jtAv mark,.root_JWD1 mark{background:none;color:inherit}.root_xZfc{box-sizing:border-box;padding:8px 8px 0;position:relative;width:100%}.collapse_LWBd button,.textField_af43{width:100%!important}.textField_af43 button svg{height:auto;max-height:100%!important;width:14px}.root_N57j>div:first-child{color:#828285;padding:0 24px}.root_N57j>div:first-child,.root_N57j>div:first-child *{font-size:.75rem}.root_N57j ul li{margin-top:1rem}.root_JWD1{padding:0 24px}.root_JWD1>div{margin-left:1rem}.mdx-cta-button:hover,.mdx-cta-button:hover *,.root_Ooa0{text-decoration:none!important}.root_Ooa0.level1_fpUf{display:block;padding-left:32px}.icon_sZn2{height:auto;width:16px}.icon_sZn2.fill_fkan,.icon_sZn2.fill_fkan *{fill:currentColor}.icon_sZn2.stroke_j3wH,.icon_sZn2.stroke_j3wH *{stroke:currentColor}[data-theme=light] .icon_sZn2{color:#000}[data-theme=dark] .icon_sZn2{color:#fff}.mdx-feature-list__title,.root_ltHz{padding:24px 0}.groups_p1lF{display:flex;flex-direction:column;gap:16px}[data-theme=dark] .divider_eGUz>div{opacity:.1}[data-theme=dark] .topBar_Dtew button{background-color:var(--ifm-button-color)}.linkContent__x3v{gap:6px;text-decoration:none}.linkContent__x3v:hover{text-decoration:underline;text-decoration-color:rgba(var(--lsd-text-primary),.6);text-underline-offset:.3rem}.externalLinkIcon_Qfue{width:8px}.externalLinkIcon_Qfue svg,.root_TTsz.fullWidth_HBtH{height:auto;width:100%}.dropdownNavbarItem_o23I{box-sizing:border-box;height:28px;padding:6px 12px}.navbarHideable_OoEf{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_zoxl{transform:translate3d(0,calc(-100% - 2px),0)}.rightSection_CLeF{align-items:center;display:flex;justify-content:flex-end;white-space:nowrap}.iconButtonGroup_ktNv button:not(:last-child){border-right:1px solid!important;margin-right:-1px!important}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.breadcrumbsContainer_RLvU{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:24px}.codeBlockContainer_Ckt0{background:var(--prism-background-color);border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw)}.codeBlockContainer_Ckt0,.codeBlockContainer_EB2s{color:var(--prism-color);margin-bottom:var(--ifm-leading)}.codeBlockContainer_EB2s{background:#0000;border-radius:0}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_TWhw,.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V,.codeBlockTitle_sjMo+.codeBlockContent_ugSV .codeBlock_TWhw{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_LDrR,.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.buttonGroup_Qu4e button,.buttonGroup__atx button{color:var(--prism-color);line-height:0;transition:opacity var(--ifm-transition-fast) ease-in-out}.codeBlockLinesWithNumbering_bsRF,.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup_Qu4e,.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;background:var(--prism-background-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;opacity:0;padding:.4rem}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_YovB{opacity:1!important}.copyButtonIcons_an20{align-items:center;display:flex;justify-content:center;position:relative}.copyButtonIcon_ZL7v,.copyButtonSuccessIcon_P2h8{fill:currentColor;height:14px;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:14px}.copyButtonSuccessIcon_P2h8{color:#00d600;opacity:0}.copyButtonCopied_YovB .copyButtonIcon_ZL7v,.mdx-hero-video--loading .mdx-hero-video__video{opacity:0}.copyButtonCopied_YovB .copyButtonSuccessIcon_P2h8{opacity:1;transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.codeBlockTitle_sjMo{background:var(--prism-background-color);border-bottom:1px solid var(--ifm-color-primary);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.buttonGroup_Qu4e button{align-items:center;background:var(--prism-background-color);border:1px solid rgb(var(--lsd-border-primary));box-sizing:border-box;display:flex;height:28px;justify-content:center;opacity:0;width:28px}.buttonGroup_Qu4e button:focus-visible,.buttonGroup_Qu4e button:hover{opacity:1!important}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_ntHH{border:1px solid var(--ifm-alert-border-color);display:flex;gap:18px;margin-bottom:24px;padding:18px}.admonitionHeading_JPfy{font-size:1.25rem!important;font-weight:400;line-height:1.5rem!important;margin-bottom:.3rem}.admonitionHeading_JPfy code{text-transform:none}.admonitionIcon_BGV6{display:inline-block}.admonitionIcon_BGV6 svg{display:inline-block;height:16px;width:16px}.admonitionIcon_BGV6 svg *{stroke:none!important;fill:var(--ifm-alert-border-color)}.admonitionContent_iozl{display:block;margin-top:12px}.root_UH70,.tagWithCount_gIvh{align-items:center;display:flex}.tag_dtsN{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.mdx-cta-section,.mdx-cta-section--list .mdx-cta-section__list>:not(:first-child),.mdx-feature-list__feature,.mdx-showcase-card{border-top:1px solid rgb(var(--lsd-border-primary))}.tag_dtsN:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_SGIC{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_gIvh{border-left:0;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_gIvh:after,.tagWithCount_gIvh:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_gIvh:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.mdx-asset-card:not(.mdx-asset-card--downloadable) .mdx-asset-card__inner,.mdx-erc--with-preview .mdx-erc__preview-image{border-bottom:1px solid rgb(var(--lsd-border-primary))}.tagWithCount_gIvh:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_gIvh span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.root_UH70{flex-direction:row}.tags_LT8x{display:inline;margin:0 0 0 1rem!important;padding:0!important}.tag_NdBD:not(:first-child){margin-left:.5rem}.tag_NdBD a{margin:0!important;padding:0!important}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.tocCollapsibleButton_dxRj{align-items:center;border:1px solid rgb(var(--lsd-border-primary));display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButtonExpanded_TSyC:after,.tocCollapsibleExpanded_zTjk{transform:none}.tocCollapsible_ROek{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_Qsjj>ul{border-left:none;border:1px solid rgb(var(--lsd-border-primary))!important;border-top:none!important;font-size:15px;padding:.2rem 0}.tocCollapsibleContent_Qsjj ul li{margin:.4rem .8rem}.tocCollapsibleContent_Qsjj a{display:block;-webkit-text-decoration:var(--ifm-link-text-decoration);text-decoration:var(--ifm-link-text-decoration)}.badge_AsjZ{background:#0000}.docItemGrid_SzoZ{display:grid;gap:16px;grid-template-columns:repeat(14,1fr)}.gap1_XuuQ{grid-column:span 1}.toc_pP_5{grid-column:span 4}.tocMobile_imaF{margin-bottom:2rem;margin-top:-.5rem}.tocMobile_imaF>div{display:block!important;margin:0}.docItemContainer_hrrU h1{margin-bottom:40px!important}.docItemContainer_hrrU h2,.docItemContainer_hrrU h3{margin-top:32px!important}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.root_jG9K{align-items:center;display:flex;flex-direction:column;padding:1rem!important;width:100%}.root_jG9K>div{max-width:796px!important;width:100%}.root_jG9K>div>div{align-items:flex-start;display:flex;flex-direction:column;gap:1rem;padding:0!important}.root_jG9K a{margin-top:2.5rem}.mdxPageWrapper_j9I6{justify-content:center}.mdx-accordion-item__header{align-items:center;display:flex;flex-direction:row;gap:0 16px;justify-content:space-between;min-height:88px;padding:16px 0}.mdx-accordion-item__header,.mdx-accordion-item__header *{cursor:pointer}.mdx-accordion-item__content-wrapper{height:auto;overflow:hidden}.mdx-accordion-item__content{height:0}.mdx-accordion-item--open .mdx-accordion-item__content{height:auto;padding-bottom:1.875rem;padding-top:6px}.mdx-app-card{align-items:flex-start;display:flex;flex-direction:column;padding:1.5rem 0}.mdx-app-card__logo{height:40px;width:auto}.mdx-app-card__description{margin-top:1.5rem}.mdx-app-card__link{margin-top:1.5rem;width:100%}.mdx-app-card__link button{padding:10px 16px;width:100%}.mdx-app-card__link button>span{align-items:center;display:block;display:flex;flex-direction:row;justify-content:space-between;width:100%}.root_TTsz{display:inline-block;font-size:0!important;position:relative}.root_TTsz.fullHeight_ls1u{height:100%;width:auto}.root_TTsz .content_feMR{height:100%;left:0;position:absolute;top:0;width:100%}.root_TTsz:not(.keep_Y9Ea) .root_TTsz{height:auto;width:auto}.root_TTsz:not(.keep_Y9Ea) .content_feMR{height:100%;left:unset;position:relative;top:unset;width:100%}.mdx-asset-card{align-items:flex-start;border:1px solid rgb(var(--lsd-border-primary));border-bottom:none;display:flex;flex-direction:column;min-height:144px;text-decoration:none!important;width:216px}.mdx-asset-card__inner{padding:16px 16px 32px;width:100%}.mdx-asset-card__title,.mdx-event-profile-list__container h2,.mdx-event-profile__role,.mdx-ghc__challenge-labels,.mdx-ghc__issue-title{margin-bottom:16px}.mdx-asset-card__image img{height:100%;object-fit:contain;object-position:center center;width:100%}.mdx-asset-card__downloadables{align-items:flex-start;display:flex;flex-direction:row;justify-content:stretch;width:100%}.mdx-asset-card__downloadables>*{flex-grow:1;font-size:12px;text-decoration:none!important;text-underline-offset:unset!important}.mdx-asset-card__downloadables>* button{justify-content:space-between;text-decoration:none;width:100%}.mdx-asset-card__downloadables>:first-child button{border-left:none}.mdx-asset-card__downloadables>:last-child button,.mdx-asset-card__downloadables>:not(:last-child) button{border-right:none}.mdx-box{padding-bottom:var(--mdx-box-bottom);padding-top:var(--mdx-box-top)}.mdx-cta-button,.mdx-section-header--with-description .mdx-section-header__extra{margin-top:2rem}.mdx-cta-button button,.mdx-cta-button button span{font-size:inherit;font-weight:inherit;line-height:inherit}.mdx-cta-button .lsd-button--large{padding:9px 39px}.mdx-cta-button .lsd-button--small{padding:5px 11px}.mdx-cta-section{display:grid;padding:24px 0 0}.mdx-cta-section .mdx-cta-section__link,.mdx-jpd__job-link{display:block;width:-moz-fit-content;width:fit-content}.mdx-cta-section--title-only .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h5-fontSize);font-weight:var(--lsd-h5-fontWeight);font-weight:300;line-height:var(--lsd-h5-lineHeight);max-width:886px}.mdx-cta-section--title-button .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-display4-fontSize);font-weight:var(--lsd-display4-fontWeight);font-weight:300;line-height:var(--lsd-display4-lineHeight);max-width:886px}.mdx-cta-section--full-width .mdx-cta-section__container{display:grid;gap:0 1rem;grid-template-columns:repeat(2,1fr)}.mdx-cta-section--full-width .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h5-fontSize);font-weight:var(--lsd-h5-fontWeight);line-height:var(--lsd-h5-lineHeight)}.mdx-cta-section--full-width .mdx-cta-section__description,.mdx-ns__description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h3-fontSize);font-weight:var(--lsd-h3-fontWeight);line-height:var(--lsd-h3-lineHeight)}.mdx-cta-section--full-width .mdx-cta-section__link{grid-area:2/2/3/3}.mdx-cta-section--simple .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h5-fontSize);font-weight:var(--lsd-h5-fontWeight);line-height:var(--lsd-h5-lineHeight)}.mdx-cta-section--simple .mdx-cta-section__description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h2-fontSize);font-weight:var(--lsd-h2-fontWeight);line-height:var(--lsd-h2-lineHeight);margin-top:2rem}.mdx-cta-section--list{display:grid;gap:0 1rem;grid-template-columns:1fr 1fr}.mdx-cta-section--list .mdx-cta-section__container{grid-column:1/2}.mdx-cta-section--list .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h5-fontSize);font-weight:var(--lsd-h5-fontWeight);line-height:var(--lsd-h5-lineHeight)}.mdx-cta-section--list .mdx-cta-section__description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h1-fontSize);font-weight:var(--lsd-h1-fontWeight);line-height:var(--lsd-h1-lineHeight);margin-top:2rem}.mdx-cta-section--list .mdx-cta-section__list{display:flex;flex-direction:column;gap:1.5rem 0;grid-column:2/3}.mdx-cta-section--list .mdx-cta-section__list>a{display:block;text-decoration:none}.mdx-erc,.mdx-ghc__issue-title-link,.mdx-ghc__view-on-github-link,.mdx-hero-action button:hover,.mdx-hero-action button:hover *,.mdx-hero-action:hover,.mdx-hero-action:hover *{text-decoration:none!important}.mdx-cta-section--list .mdx-cta-section__list .mdx-cta-section__list-item>.mdx-cta-section__item-title{background-color:rgb(var(--lsd-surface-secondary));border-radius:1rem;color:rgb(var(--lsd-text-secondary));display:inline-block;margin-top:1.5rem;padding:3px 11px}.mdx-cta-section--list .mdx-cta-section__list .mdx-cta-section__list-item>.mdx-cta-section__item-description{margin-top:1rem}.mdx-doc-metadata{display:flex;flex-direction:row;line-height:0;margin-bottom:2.5rem}.mdx-doc-metadata>span:not(:last-child):after{content:"•";display:inline-block;margin-inline:.75rem}.markdown h1+.mdx-doc-metadata,.markdown header+.mdx-doc-metadata{margin-top:calc(var(--ifm-h1-vertical-rhythm-bottom)*-1*var(--ifm-leading) + 1rem)}.mdx-erc{align-items:flex-start;border:1px solid rgb(var(--lsd-border-primary));display:flex;flex-direction:row;min-height:144px}.mdx-erc__icon{padding:16px 16px 16px 8px}.mdx-erc__inner{flex-grow:1;padding:16px}.mdx-erc:hover .mdx-erc__title{text-decoration:underline!important}.mdx-erc__logo,.mdx-erc__logo svg{height:32px!important;width:32px!important}.mdx-erc__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:32px;max-height:calc(var(--lsd-body1-lineHeight)*2);overflow:hidden}.mdx-erc__description{margin-top:8px}.mdx-erc--with-preview{display:flex;flex-direction:column}.mdx-erc--with-preview .mdx-erc__preview-image{height:100%;object-fit:cover;width:100%}.mdx-erc--with-preview .mdx-erc__icon{display:none}.mdx-erc--with-preview .mdx-erc__inner{display:grid;gap:0 16px;grid-template-columns:32px auto;grid-template-rows:auto auto;padding:16px}.mdx-erc--with-preview .mdx-erc__logo{align-self:center;grid-column:1;grid-row:1/span 2}.mdx-erc--with-preview .mdx-erc__title{-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:0;max-height:calc(var(--lsd-body1-lineHeight)*1)}.mdx-erc--with-preview .mdx-erc__description{margin-top:4px}.mdx-feature-list{border-top:1px solid rgb(var(--lsd-surface-secondary));position:relative}.mdx-feature-list__feature-index{align-items:center;background:rgb(var(--lsd-surface-secondary));border-radius:100%;color:rgb(var(--lsd-text-secondary))!important;display:inline-flex;height:1.875rem;justify-content:center;padding:.5rem;width:1.875rem}.mdx-feature-list__list{display:grid;grid-template-columns:repeat(2,1fr)}.mdx-event-profile__info,.mdx-feature-list__feature-inner{display:flex;flex-direction:column}.mdx-feature-list__feature-title{margin-top:1rem}.mdx-feature-list__header{align-items:center;display:flex;flex-direction:row;gap:2rem}.mdx-feature-list--cta-bottom .mdx-feature-list__extra{margin-top:3.5rem;padding:0 1rem}.mdx-event-cta-section__container,.mdx-ghc__container{border-top:1px solid rgb(var(--lsd-border-primary));padding-top:24px}.mdx-ghc__issue-title-link:hover,.mdx-ghc__view-on-github-link:hover{text-decoration:underline!important}.mdx-ghc__header,.mdx-jpd__header{margin-bottom:40px;margin-top:16px}.mdx-ghc__challenge-label{border:1px solid rgb(var(--lsd-border-primary));border-radius:20px;margin-right:8px;padding:4px 8px}.mdx-ghc__view-on-github-link{display:block;margin-bottom:56px;margin-top:40px;width:-moz-fit-content;width:fit-content}.mdx-ghc__participant-photo{border:1px solid rgb(var(--lsd-border-secondary));border-radius:100%;margin-left:-4px;width:24px}.mdx-ghc__participant-photo-container{align-items:center;direction:rtl;display:flex;justify-content:flex-end;padding-left:4px}.mdx-ghc__comment-count{margin-left:4px}.mdx-ghc__issue-content-grid{align-items:center;display:grid;grid-template-columns:82px 135px 82px 1fr;margin-top:24px;row-gap:12px}.mdx-scroll-buttons>div{display:flex;flex-direction:row;justify-content:flex-end;width:100%}.mdx-hero{--hero-max-height:1080px;display:flex;flex-direction:column;height:calc(100vh - var(--ifm-navbar-height) - 8px);max-height:var(--hero-max-height);position:relative}.mdx-hero-action--large button{padding:10px 64px}.mdx-hero-actions{align-items:center;display:flex;flex-direction:row;gap:0 1rem;margin-top:2rem;position:relative;z-index:98}.mdx-hero-description{margin-top:18px;max-width:1260px;position:relative;text-shadow:1px 1px 6px rgba(var(--lsd-surface-primary),1);z-index:-2}.mdx-hero-info{border-bottom:1px solid rgb(var(--lsd-surface-secondary));display:flex;flex-direction:column;justify-content:end;padding:32px 0;transition:margin-bottom .05s ease-in-out}.mdx-profile-card,.mdx-profile-card__avatar{border:1px solid rgb(var(--lsd-border-primary))}.mdx-timeline-item,.mdx-timeline-item__border{border-bottom:1px solid rgb(var(--lsd-border-primary))}.mdx-hero-model{--mdx-hero-model-wrapper-scale:1;position:absolute;transform:translateX(calc(-50vw - var(--container-max-width)*-1/2 + (var(--content-padding))*4*-1/2));width:100vw;z-index:0}.mdx-hero-model .mdx-hero-model--inner{left:0;position:relative;top:0;width:100%;z-index:0}.mdx-hero-model .mdx-hero-model--inner canvas{pointer-events:unset!important}.mdx-hero-model--top{top:300px}.mdx-hero-model--bottom{top:calc(var(--logos-hero-info-height) - 10px)}.mdx-hero-model--bottom .mdx-hero-model--shade{bottom:10vh;height:40vh}.mdx-hero-model--ascii{filter:grayscale(100%);opacity:.65}.mdx-hero-model--ascii table,.mdx-hero-model--ascii table *{border:none!important;color:rgb(var(--lsd-text-primary));font-family:monospace}.mdx-hero-model--shade{background:linear-gradient(0deg,rgb(var(--lsd-surface-primary)) 37%,rgb(var(--lsd-surface-primary)) 0,rgba(var(--lsd-surface-primary),0) 100%);bottom:0;height:30vh;left:0;position:absolute;width:100%}.mdx-hero-title{font-size:70px!important;line-height:100%!important}.mdx-hero-video{--hero-video-height:120%;--hero-video-min-height:100vh;--hero-video-offset-y:-150px;--hero-video-scale:1.70951586;--hero-video-height-mobile:120%;--hero-video-min-height-mobile:100vh;--hero-video-offset-y-mobile:-50px;--hero-video-scale-mobile:1.70951586;display:grid;flex-grow:1;grid-template-columns:1fr;grid-template-rows:1fr;pointer-events:none;position:relative}.mdx-hero-video>*{align-items:center;display:flex;flex-direction:column;grid-column:1/1;grid-row:1/1;height:var(--hero-video-height);justify-content:center;left:0;min-height:var(--hero-video-min-height);position:absolute;top:0;transform:translateY(var(--hero-video-offset-y));width:100%}.mdx-hero-video img{object-fit:contain}.mdx-hero-video img,.mdx-hero-video video{height:100%;max-width:calc(var(--container-max-width)*var(--hero-video-scale));object-position:top;transform-origin:top center;width:auto}.mdx-hero-video--loading .mdx-hero-video__placeholder{opacity:1;visibility:visible}.mdx-jpd__single-job-department-container{border-top:1px solid rgb(var(--lsd-border-primary));padding-top:8px}.mdx-jpd__department-title{font-size:12px!important;line-height:16px!important}.mdx-jpd__job-title-container{align-items:center;display:flex;padding-bottom:8px}.mdx-jpd__job-list{list-style-type:none;margin:0;padding:8px 0 24px}.mdx-jpd__job-list-item{padding:14px 0}.mdx-jpd__job-link,.mdx-jpd__job-link:hover{text-decoration:none!important}.mdx-event-card__title:hover,.mdx-jpd__job-link:hover .mdx-jpd__job-title,.mdx-social-card:hover{text-decoration:underline!important}.mdx-logo-carousel .mdx-section-header__title{flex-basis:100%}.mdx-logo-carousel .mdx-section-header__extra{margin-left:auto}.mdx-logo-carousel .mdx-logo-carousel__inner{margin-top:100px}.mdx-logo-carousel .mdx-logo-carousel__item{flex-shrink:0}.mdx-logo-carousel .mdx-logo-carousel__logo{height:56px;width:auto}.mdx-ns__inner form{margin-top:40px;width:100%}.mdx-ns__inner .mdx-ns__inputs{align-items:center;display:flex;flex-direction:row;gap:16px;width:100%}.mdx-ns__inner .mdx-ns__toast .lsd-toast__close-button,.mdx-roadmap__timeline .mdx-grid-item:last-child .mdx-timeline-item__border,.mdx-timeline-item__item:last-child .mdx-timeline-item__border,.toast_C8x1 .lsd-toast__close-button{display:none}.mdx-ns__inner .mdx-ns__inputs>*{flex-grow:1}.mdx-ns__inner .mdx-ns__submit-button{margin-top:40px}.mdx-ns__inner .mdx-ns__toast{margin-bottom:24px;margin-top:-16px;width:100%}.mdx-profile-card{align-items:flex-start;display:flex;flex-direction:column;height:var(--card-height);justify-content:space-between;padding:1rem}.mdx-profile-card__profile{display:flex;flex-direction:column;gap:20px}.mdx-profile-card__avatar{border-radius:50%}.mdx-profile-card__avatar,.mdx-profile-card__avatar svg,.mdx-social-card__logo,.mdx-social-card__logo svg{height:40px!important;width:40px!important}.mdx-profile-card__avatar svg rect{fill:unset!important}.mdx-profile-card__buttons{display:flex;flex-direction:row;gap:8px;width:100%}.mdx-profile-card__link{height:-moz-fit-content;height:fit-content;max-width:calc(50% - 4px);position:relative;text-decoration:none}.mdx-event-card,.mdx-event-profile,.mdx-social-card{text-decoration:none!important}.mdx-timeline-item{display:flex;flex:0 0 auto;flex-direction:column;gap:1rem;justify-content:space-between;min-height:306px;padding-bottom:23px;scroll-snap-align:start!important;width:236px}.mdx-timeline-item__header{align-items:flex-start;display:flex;flex-direction:column;gap:1rem}.mdx-timeline-item__period-container{position:relative;width:100%}.mdx-timeline-item__border{height:50%;left:0;position:absolute;top:0;width:calc(100% + 1rem);z-index:-1}.mdx-timeline-item--border-dashed .mdx-timeline-item__border{border-bottom-style:dashed}.mdx-timeline-item__period{border-radius:10rem;display:inline-block;padding:3px 12px}.mdx-timeline-item__period--filled{background-color:rgb(var(--lsd-surface-secondary));border:1px solid rgb(var(--lsd-border-secondary));color:rgb(var(--lsd-text-secondary))!important}.mdx-timeline-item__period--transparent{background-color:rgb(var(--lsd-surface-primary));border:1px solid rgb(var(--lsd-border-primary));color:rgb(var(--lsd-text-primary))!important}.mdx-roadmap__timeline{margin-top:6.25rem}.mdx-roadmap__timeline-item{height:100%}.scrollToBottom_NE5w{--offset-y:-2rem;background:rgb(var(--lsd-surface-primary))!important;opacity:1;position:absolute;top:min(100*var(--vh) - var(--ifm-navbar-height),var(--maxTop) - var(--ifm-navbar-height));transform:translateY(-2rem);transform:translateY(calc(-100% + var(--offset-y)));transition:.2s ease-in-out;z-index:100}.scrollToBottom_NE5w.hide_q_kn{opacity:0;transform:translateY(calc(-100% + var(--offset-y) - .625rem))}.mdx-section-header{border-top:1px solid rgb(var(--lsd-border-primary));display:flex;flex-direction:row;gap:1rem;padding-top:24px;width:100%}.mdx-section-header>*{flex-basis:50%}.mdx-section-header__title{display:flex;flex-direction:row;gap:2rem}.mdx-showcase-card__inner{display:flex;flex-direction:column;gap:1.5rem;padding-top:1.5rem}.mdx-showcase-card__logo{height:auto;width:58px}.mdx-showcase-card__index{align-items:center;background-color:rgb(var(--lsd-surface-secondary));border-radius:50%;color:rgb(var(--lsd-text-secondary))!important;display:flex;flex-direction:row;height:30px;justify-content:center;width:30px}.mdx-showcase-card__description{margin-top:-.125rem;padding-top:.5rem}.mdx-showcase-card--large .mdx-showcase-card__logo{width:58px}.mdx-showcase-card--small .mdx-showcase-card__logo{width:34px}.mdx-showcase-card--border-solid .mdx-showcase-card__description{border-top:1px solid rgb(var(--lsd-border-primary));padding-top:1rem}.mdx-social-card{align-items:flex-start;border:1px solid rgb(var(--lsd-border-primary));display:flex;flex-direction:column;justify-content:space-between;min-height:144px;padding:1rem}.mdx-event-banner__thumbnail,.mdx-event-card__thumbnail{aspect-ratio:5/1;border:1px solid rgba(var(--lsd-border-primary),.2)}.mdx-social-card__row{display:flex;justify-content:space-between;width:100%}.mdx-event-card{display:flex;flex-direction:column;gap:24px}.mdx-event-card__row,.mdx-event-profile__row{display:flex;gap:8px;justify-content:space-between;width:100%}.mdx-event-card__info{border-top:1px solid rgba(var(--lsd-border-primary),.2);display:flex;flex-direction:column;gap:16px;padding:16px 16px 16px 0;width:100%}.mdx-event-card-list__button{display:block;margin:0 auto}.mdx-event-banner__thumbnail{margin-bottom:32px}.mdx-event-info__container{align-self:stretch;background:rgba(var(--lsd-theme-primary),.05);border-top:1px solid rgba(var(--lsd-border-primary));box-sizing:border-box;display:flex;flex:1 0 0;flex-direction:column;gap:16px;height:100%;padding:16px}.mdx-event-about__container{display:grid;gap:16px;grid-template-columns:repeat(12,1fr)}.mdx-event-about__container h2{grid-column:1/2;margin-top:0!important}.mdx-event-about__container span{grid-column:5/13}.mdx-event-profile{display:flex;flex-direction:column;gap:16px}.mdx-event-profile__image{aspect-ratio:1/1}.mdx-event-profile__title{margin-bottom:8px}.mdx-event-profile__social{align-items:center;display:flex;gap:8px}.mdx-event-cta__container h2{margin-bottom:32px;margin-top:0!important}.mdx-event-cta__button{height:70px!important;width:100%!important}.mdx-event-cta__button>span{align-items:center;display:flex;height:100%;justify-content:space-between}.mdx-event-cta-section__container h2{margin-bottom:16px;margin-top:0!important}.mdx-event-cta-section__container h3{margin-top:24px!important}.mdx-event-cta-section__cta{height:40px!important;width:160px!important}.mdx-event-cta-section__description{margin-bottom:32px!important;white-space:pre-wrap}.mdx-event-cta-section__form{display:flex;flex-direction:column;gap:40px}.mdx-event-cta-section__input-fields{display:flex;gap:16px}.mdx-event-header__container{display:flex;flex-direction:column;gap:24px}.mdx-event-header__container h1{margin-bottom:0!important}.container_YAWF,.form_lk4c .inputs_dj3Q,.form_lk4c .submit_J_94,.header_Gr5N,.root_lcb5,.toHome_tEiU{align-items:center;display:flex;flex-direction:column;justify-content:center}.container_YAWF{display:flex!important;min-height:calc(100vh - var(--ifm-navbar-height))}.root_lcb5{max-width:448px;width:90%}.header_Gr5N{gap:4px;padding-bottom:56px}.header_Gr5N p{font-size:16px;font-style:normal;font-weight:400;line-height:24px}.toast_C8x1{margin-bottom:32px;margin-top:-24px;width:100%!important}.form_lk4c .inputs_dj3Q{gap:24px;width:100%}.form_lk4c .submit_J_94{padding:48px 0;width:100%}.form_lk4c .submit_J_94 button{font-size:14px;font-style:normal;font-weight:400;line-height:20px;padding:6px 24px}.toHome_tEiU{padding:48px 0}@media (min-width:0px){.mdx-box{--mdx-box-top:var(--mdx-box-top-xs);--mdx-box-bottom:var(--mdx-box-bottom-xs)}}@media (min-width:576px){.mdx-box{--mdx-box-top:var(--mdx-box-top-sm);--mdx-box-bottom:var(--mdx-box-bottom-sm)}}@media (min-width:768px){.blog-archive-page .main-wrapper main>section .container>.row{display:grid;gap:64px 24px;grid-template-columns:repeat(24,1fr)}.blog-archive-page .main-wrapper main>section .container>.row>.col{grid-column:span 12;margin:0!important;max-width:unset;padding:0 8.3333333333% 0 0}.mdx-box{--mdx-box-top:var(--mdx-box-top-md);--mdx-box-bottom:var(--mdx-box-bottom-md)}.mdx-scroll-buttons__button--with-label{gap:12px;min-width:83px;padding:5px 11px 5px 9px!important;width:auto!important}.mdx-scroll-buttons__button--with-label:first-of-type,.mdx-scroll-buttons__button--with-label:last-of-type{justify-content:flex-start}.mdx-scroll-buttons--spaced>div{gap:0 1rem;justify-content:space-between}.mdx-scroll-buttons--spaced>div>button:not(:last-child){border-right:1px solid rgb(var(--lsd-border-primary))!important}}@media (min-width:997px){.main-wrapper .container{padding-bottom:calc(var(--desktop-footer-gap) - var(--ifm-footer-padding-vertical))!important}.main-wrapper>div{display:grid;gap:1rem;grid-template-columns:repeat(16,42px)}.main-wrapper>div aside{border:none;grid-column:1/5;padding-left:var(--content-padding);width:auto}.main-wrapper>div main{grid-column:6/17;max-width:none}.navbar__inner{display:flex;flex-direction:row;justify-content:flex-start}.navbar__left{flex-basis:8.3333333333%;flex:0 1 auto}.navbar__left-items{flex:1 0;margin:auto}nav.menu{padding-top:16px}.navbar .lsd-icon-button--medium{height:28px!important;width:28px!important}.blog-wrapper>.container>.row{display:grid;gap:16px;grid-template-columns:repeat(24,1fr)}.blog-wrapper>.container>.row>aside{grid-column:1/5}.blog-wrapper>.container>.row>main{grid-column:6/20}.blog-wrapper:not(.blog-wrapper--index)>.container>.row>div:last-child{grid-column:21/25;max-width:unset}.wrapper_SWrM:not(.active_qZD5) .fullscreenButton_Bocn{background:rgb(var(--lsd-surface-primary));bottom:8px;display:flex;opacity:0;position:absolute;right:8px;transition:.3s;visibility:hidden}.wrapper_SWrM:not(.active_qZD5):hover .fullscreenButton_Bocn{opacity:1;visibility:visible}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemGrid_SzoZ{display:grid;gap:var(--doc-grid-gap);grid-template-columns:repeat(11,1fr)}.docItemCol_F52z{grid-column:span 11}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_NjKY{flex-grow:1;padding-top:16px}@supports (scrollbar-gutter:stable){.menu_NjKY{scrollbar-gutter:stable}}.menuWithAnnouncementBar_U5pk{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_UEyd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height)}.sidebarWithHideableNavbar__00c{padding-top:0!important}.sidebarHidden_F1ZE{opacity:0;visibility:hidden}.sidebarLogo_Ydl9{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_Ydl9 img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;background-color:var(--docusaurus-collapse-button-bg);display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_BlDH{transform:rotate(0)}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.mdx-box{--mdx-box-top:var(--mdx-box-top-lg);--mdx-box-bottom:var(--mdx-box-bottom-lg)}.mdx-feature-list--bottom-aligned .mdx-feature-list__feature{min-height:332px}.mdx-feature-list--bottom-aligned .mdx-feature-list__feature-description{display:flex;flex:1 0;flex-direction:column;justify-content:flex-end}.mdx-feature-list--top-aligned .mdx-feature-list__feature-description{margin-top:136px}.mdx-feature-list__feature{padding:1rem;position:relative}.mdx-feature-list__feature-inner{height:100%;padding:.5rem}.mdx-feature-list__feature-border{background:rgb(var(--lsd-border-primary));height:calc(100% - 2rem);position:absolute;right:0;top:1rem;width:1px}.mdx-feature-list__feature:nth-child(odd){padding-left:0}.mdx-feature-list__feature:nth-child(2n){padding-right:0}.mdx-feature-list__feature:nth-child(2n) .mdx-feature-list__feature-border{display:none}}@media (min-width:997px)and (max-width:1199px){.events .main-wrapper>div aside{grid-column:1/1}.events .main-wrapper>div main{grid-column:1/17}}@media (min-width:1200px){.main-wrapper>div,.navbar__inner{display:grid;grid-template-columns:repeat(24,1fr);grid-template-columns:repeat(24,1fr)}.main-wrapper>div{gap:1rem}.main-wrapper>div aside{border:none;grid-column:1/5;width:auto}.main-wrapper>div main{grid-column:6/25;max-width:none}.theme-doc-toc-desktop{top:calc(var(--ifm-navbar-height))!important}.navbar__inner{gap:16px;padding:0}.navbar__left{align-items:center;display:flex;flex-direction:row;grid-column:1/6}.navbar__left-items{grid-column:6/20}.navbar__right-items{flex-direction:row;gap:16px;grid-column:20/25;justify-content:flex-end}.blog-archive-page .main-wrapper main>section .container>.row{display:grid;gap:64px 24px;grid-template-columns:repeat(24,1fr)}.blog-archive-page .main-wrapper main>section .container>.row>.col{grid-column:span 8;margin:0!important;max-width:unset;padding:0 12.5% 0 0}.docItemGrid_SzoZ{display:grid;gap:var(--doc-grid-gap);grid-template-columns:repeat(19,1fr)}.docItemCol_F52z{grid-column:span 14}.tocMobile_imaF{display:none}.mdx-box{--mdx-box-top:var(--mdx-box-top-xl);--mdx-box-bottom:var(--mdx-box-bottom-xl)}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:1440px)and (min-width:992px){.mdx-hero-model{transform:translateX(calc((var(--content-padding) + 0)*-3));width:calc(100vw + var(--content-padding))}}@media (max-width:1199px){:root{--container-max-width:912px}.main-wrapper main>.container{padding-bottom:calc(var(--desktop-footer-gap) - var(--ifm-footer-padding-vertical) - var(--doc-grid-gap))!important}.header-github-link:before{margin-right:16px}.toc_pP_5{display:none}}@media (max-width:997px);@media (max-width:996px){.navbar-sidebar__close,.navbar__toggle{border:1px solid rgb(var(--lsd-border-primary))}.mdx-cta-section__title,.mdx-section-header__title,.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__link>div{font-size:var(--lsd-subtitle2-fontSize)!important;font-weight:var(--lsd-subtitle2-fontWeight)!important;line-height:var(--lsd-subtitle2-lineHeight)!important}.blog-wrapper h1[itemprop=headline],.mdx-cta-button .lsd-button--large,.mdx-cta-section__description,.mdx-cta-section__title,.mdx-hero-description,.mdx-section-header__description,.mdx-section-header__title,.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__link>div{font-family:var(--lsd-typography-generic-font-family)!important}.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0;padding-bottom:0!important;--ifm-footer-padding-horizontal:var(--content-padding)}.desktop,.footer__link-separator,.navbar__item,.navbar__left-items{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item,.main-wrapper>div,.mdx-cta-section--full-width .mdx-cta-section__container,.tocMobile_imaF{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid,.root_xZfc{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.mdx-section-header,.pills--block,.tabs--block{flex-direction:column}:root{--ifm-background-color:rgb(var(--lsd-surface-primary))}.navbar__color-mode-toggle{display:none!important}.main-wrapper main>.container{padding-bottom:calc(var(--mobile-footer-gap) - var(--ifm-footer-padding-vertical) - var(--doc-grid-gap))!important}.grid{grid-template-columns:repeat(2,1fr)}.footer-grid,.l-modal__container,.mdx-feature-list__list,.mdx-profile-card{grid-template-columns:1fr}.navbar{display:flex;height:56px}.navbar__toggle{align-items:center;box-sizing:border-box;display:flex;height:32px;justify-content:center;margin:0;width:32px}.navbar__toggle svg{height:14px;width:14px}.theme-admonition{display:block!important}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu{padding-inline:0}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__list{display:flex;flex-direction:column;gap:8px;padding:var(--content-padding)}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__link{border-left:none;padding-left:0}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__link>div{text-decoration:none}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer{margin-top:3rem;padding:0!important}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer>div{display:flex!important;flex-direction:column!important;gap:32px!important}.colorModeToggle_GSaI,.dropdownNavbarItem_o23I,.l-modal__backdrop,.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer>button,.tableOfContents_bqdL{display:none}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer .container.container-fluid{margin-bottom:16px!important;padding-inline:var(--content-padding)}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer .container.container-fluid>.footer__links{gap:0!important}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer>div[class*=secondRow]{margin:var(--content-padding)}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer .footer__links{gap:16px!important}.navbar-sidebar__brand{height:60px;padding-block:0}.navbar-sidebar__brand>button{height:32px;width:32px}.navbar-sidebar__brand>button:first-of-type{margin-left:auto;margin-right:0!important}.navbar-sidebar__brand>button:not(:last-of-type){border-right:none}.navbar-sidebar__close{align-items:center;display:flex;justify-content:center;margin-left:unset}.blog-divider{margin-block:32px!important}.blog-wrapper main{padding-inline:var(--content-padding)}.blog-wrapper article footer{align-items:flex-start;flex-direction:column}.blog-wrapper article footer .read-more-link{margin-top:24px}.blog-wrapper article footer .read-more-link,.blog-wrapper article footer .read-more-link button{flex-basis:100%;width:100%}.blog-wrapper h1[itemprop=headline]{font-size:var(--lsd-h2-fontSize)!important;font-weight:var(--lsd-h2-fontWeight)!important;line-height:var(--lsd-h2-lineHeight)!important}.wrapper_SWrM>div{overflow:visible!important}.nav_cMpg{height:56px}.backToTop_wDfN{bottom:16px;left:16px;margin-top:76px!important;position:relative}.l-modal{overflow:hidden;width:100vw}.l-modal__container{display:grid;height:100vh;max-width:unset;min-height:-webkit-fill-available;width:100%}.docItemGrid_SzoZ,.mdx-showcase{grid-template-columns:repeat(2,1fr)}.root_ONDG,.root_ltHz{height:100%;overflow:auto}.l-modal__content{border:none;grid-column:1/2;grid-row:1/2;height:100%;margin:0;max-height:100vh;overflow:hidden}.modal_kLVz .header_QwCa{padding:12px 16px}.modal_kLVz .closeButton_Rr0e{display:block;height:2rem;width:2rem}.root_EFVO{padding:40px 24px}.root_ONDG{max-height:100%;padding:24px 24px 64px}.groups_p1lF{max-height:unset;overflow:auto}.root_ltHz{padding:24px 0 64px}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}.docItemGrid_SzoZ{display:grid;padding-left:0}.docItemCol_F52z{grid-column:span 2}.mdx-cta-button .lsd-button--large{font-size:var(--lsd-label2-fontSize)!important;font-weight:var(--lsd-label2-fontWeight)!important;line-height:var(--lsd-label2-lineHeight)!important;padding:5px 11px}.mdx-cta-section{padding:16px 0 0}.mdx-cta-section--title-button .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h4-fontSize);font-weight:var(--lsd-h4-fontWeight);line-height:var(--lsd-h4-lineHeight)}.mdx-feature-list .mdx-feature-list__title,.mdx-feature-list__feature .mdx-feature-list__feature-index{font-size:var(--lsd-subtitle2-fontSize);font-weight:var(--lsd-subtitle2-fontWeight);line-height:var(--lsd-subtitle2-lineHeight);font-family:var(--lsd-typography-generic-font-family)}.mdx-cta-section--full-width .mdx-cta-section__description,.mdx-cta-section--simple .mdx-cta-section__description{margin-top:1.5rem}.mdx-cta-section--list{display:block}.mdx-cta-section--list .mdx-cta-section__list,.mdx-roadmap__timeline{margin-top:4rem}.mdx-cta-section--list .mdx-cta-section__list>*{border-top:1px solid rgb(var(--lsd-border-primary))}.mdx-cta-section--list .mdx-cta-section__list .mdx-cta-section__list-item>.mdx-cta-section__item-title{font-size:.875rem!important;line-height:1.25rem!important}.mdx-cta-section--list .mdx-cta-section__list .mdx-cta-section__list-item>.mdx-cta-section__item-description{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h4-fontSize)!important;font-weight:var(--lsd-h4-fontWeight)!important;line-height:var(--lsd-h4-lineHeight)!important}.mdx-cta-section__description{font-size:var(--lsd-h4-fontSize)!important;font-weight:var(--lsd-h4-fontWeight)!important;line-height:var(--lsd-h4-lineHeight)!important}.mdx-feature-list .mdx-feature-list__title{padding:1rem 0}.mdx-feature-list--cta-bottom .mdx-feature-list__extra{margin-top:2rem;padding:0}.mdx-feature-list__feature{border:none;border-top:1px solid rgb(var(--lsd-border-primary));padding:1.5rem 0}.mdx-feature-list__feature .mdx-feature-list__feature-index{height:1.625rem;width:1.625rem}.mdx-feature-list__feature .mdx-feature-list__feature-title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h4-fontSize);font-weight:var(--lsd-h4-fontWeight);line-height:var(--lsd-h4-lineHeight);margin-top:1rem}.mdx-feature-list__feature .mdx-feature-list__feature-description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-body1-fontSize);font-weight:var(--lsd-body1-fontWeight);line-height:var(--lsd-body1-lineHeight);margin-top:3rem}.mdx-feature-list__feature:nth-child(odd) .mdx-feature-list__feature-inner{border:none}.mdx-hero-action{text-decoration:none!important}.mdx-hero-action button{padding:6px 12px!important}.mdx-hero-actions{align-items:center;display:flex;flex-direction:row;justify-content:stretch;margin-top:1.5rem;width:100%;z-index:0}.mdx-hero-actions>*{flex-basis:50%}.mdx-hero-actions>a,.mdx-hero-actions>a>button{display:block;width:100%}.mdx-hero-description{font-size:var(--lsd-subtitle1-fontSize)!important;font-weight:var(--lsd-subtitle1-fontWeight)!important;line-height:var(--lsd-subtitle1-lineHeight)!important;margin-top:12px}.mdx-hero-info{padding:24px 0}.mdx-hero-model--top{top:calc(var(--logos-hero-info-height)/ 1 - 10px)}.mdx-hero-model{transform:translate(-12px);width:calc(100vw - 20px)}.mdx-hero-model--shade{bottom:0;height:90vh!important}.mdx-hero-title{font-size:28px!important}.mdx-hero-video>*{height:var(--hero-video-height-mobile);min-height:var(--hero-video-min-height-mobile);transform:translateY(var(--hero-video-offset-y-mobile))}.mdx-hero-video img,.mdx-hero-video video{max-width:calc((100vw - 32px)*var(--hero-video-scale-mobile))}.mdx-logo-carousel .mdx-logo-carousel__inner{margin-top:64px}.mdx-timeline-item{width:204px}.scrollToBottom_NE5w{--offset-y:-1rem}.mdx-section-header__description{font-size:var(--lsd-h4-fontSize)!important;font-weight:var(--lsd-h4-fontWeight)!important;line-height:var(--lsd-h4-lineHeight)!important}.mdx-showcase{gap:1.5rem 1rem}.mdx-showcase-card__name{font-size:1.375rem!important;line-height:1.75rem!important}.mdx-showcase-card__description{margin-top:1rem}.mdx-showcase-card__logo{height:auto;width:34px}}@media (max-width:767px){.blog-archive-page .main-wrapper main>section .container>.row{margin-top:0}.blog-archive-page .main-wrapper main>section .container>.row .col{margin-top:40px!important}.mdx-scroll-buttons>div{justify-content:flex-end}.mdx-scroll-buttons>div>button:not(:last-child){border-right:none!important}.mdx-scroll-buttons .mdx-scroll-buttons__label{display:none}.mdx-ns__description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h4-fontSize);font-weight:var(--lsd-h4-fontWeight);line-height:var(--lsd-h4-lineHeight)}.mdx-ns__inner form{margin-top:40px}.mdx-ns__inner .mdx-ns__inputs{flex-direction:column;gap:24px}.mdx-ns__inner .mdx-ns__inputs>*{width:100%}.mdx-ns__inner .mdx-ns__submit-button{margin-top:24px}.mdx-profile-card{flex:0 0 var(--mobile-width);height:var(--mobile-height);scroll-snap-align:start!important;width:var(--mobile-width)}.mdx-profile-card__profile{gap:16px}.mdx-profile-card__name{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h5-fontSize)!important;font-weight:var(--lsd-h5-fontWeight)!important;line-height:var(--lsd-h5-lineHeight)!important}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (max-width:575px){.footer__links,.mdx-event-profile-list__container .mdx-grid>.mdx-grid__content{gap:24px!important}:root{--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-button-size-multiplier:1.25;--ifm-button-padding-horizontal:calc(var(--ifm-button-size-multiplier)*var(--ifm-spacing-horizontal));--ifm-button-padding-vertical:calc(var(--ifm-button-size-multiplier)*var(--ifm-spacing-vertical));--ifm-alert-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-alert-padding-vertical:calc(var(--ifm-spacing-vertical)*2)}.markdown>h2{--ifm-h2-font-size:1.75rem}.markdown h4{--ifm-h4-font-size:1.25rem!important}.footer>div{display:flex!important;flex-direction:column;gap:72px!important}.footer__links{display:flex!important;flex-direction:column!important}.col.footer__col{margin-bottom:0!important}.navbar__left{display:flex}.events-cta-sections .mdx-grid__content{gap:64px!important}.footer{--ifm-footer-padding-horizontal:0}.firstRow_ar1q{padding-inline:var(--content-padding)!important}.secondRow__ww3{margin-inline:var(--content-padding)!important}.mdx-event-card-list__container{margin-bottom:48px}.mdx-event-about__container,.mdx-event-cta-section__input-fields{display:flex;flex-direction:column;gap:32px}.mdx-event-about__container span,.mdx-event-header__container p{font-size:14px!important;line-height:20px!important}.mdx-event-cta-section__input-fields>div{width:100%!important}.mdx-event-cta-section__container .mdx-event-cta-section__input-fields{margin-bottom:16px}.mdx-event-cta-section__container .mdx-event-cta-section__cta{margin-top:8px}.mdx-event-cta-section__container .mdx-event-cta-section__form{margin-bottom:-24px}.mdx-event-header__container h1{font-size:24px!important;line-height:32px!important}}@media (max-width:574px){.mdx-ghc__issue-content-grid{grid-template-columns:82px 1fr}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_LDrR,.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/css/styles.d2c4be0b.css b/assets/css/styles.d2c4be0b.css deleted file mode 100644 index 18e2b026..00000000 --- a/assets/css/styles.d2c4be0b.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}[data-theme=dark],html[data-theme=dark]{--ifm-color-scheme:dark}:root,[data-theme=light]{--ifm-color-scheme:light}.menu,.navbar-sidebar,body,html{overflow-x:hidden}code,pre code{--lsd-typography-generic-font-family:monospace}.button,.dropdown__link,.footer__item,.text--truncate{white-space:nowrap}.toggleButton_dl49,html{-webkit-tap-highlight-color:transparent}*,.buttonGroup_Qu4e button,.dropdownNavbarItem_o23I,.root_xZfc,.toggle_K23S{box-sizing:border-box}.clean-list,.containsTaskList_mC6p,.dropdown__menu,.menu__list,.root_N57j ul li{list-style:none}:root{--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-radius:0.4rem;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-weight-light:300;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-color:var(--ifm-font-color-base);--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-color:var(--ifm-color-white);--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-sidebar-width:83vw;--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}body{background-color:rgb(var(--lsd-surface-primary));height:auto!important}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.blog-archive-page .main-wrapper main>section,.margin-top--none,.margin-vert--none{margin-top:0!important}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit;color:rgb(var(--lsd-text-primary))}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);overflow:auto;padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}.sub1,h1{font-size:var(--ifm-h1-font-size)}.sub2,h2{font-size:var(--ifm-h2-font-size)}.sub3,h3{font-size:var(--ifm-h3-font-size)}.sub4,h4{font-size:var(--ifm-h4-font-size)}.sub5,h5{font-size:var(--ifm-h5-font-size)}.sub6,h6,small{font-size:var(--ifm-h6-font-size)}.container_lyt7,.container_lyt7>svg,img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading));letter-spacing:-1.5px}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary,[data-theme=dark] .root_JWD1>div>div{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.mdx-profile-card__label,.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.alert__heading,.mdx-hero-title--uppercase,.text--uppercase,table td strong,table th{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer,.mdx-timeline-item__description{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.breadcrumbs__item,.close:hover,.table-of-contents__link--active code{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.admonitionIcon_BGV6,.root_JWD1>span svg{vertical-align:middle}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navWrapper_ybYI,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%);display:none}.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after,.menu__list-item-collapsible>a[aria-expanded=false]>svg{transform:rotate(90deg)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_hrrU article>:first-child,.docItemContainer_hrrU header+*,.footer__item{margin-top:0}.admonitionContent_iozl>:last-child,.footer__items{margin-bottom:0}.main-wrapper>main,.table-of-contents,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;top:0;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.icon_S7Kx,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.blog-wrapper>.container>.row>aside>nav>ul li,.navbar__items--center .navbar__brand,a[class^=sidebarLogo_]{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.cursor-pointer,.pills__item,.tabs__item{cursor:pointer}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);position:fixed;transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;visibility:hidden;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;position:fixed;right:0;transition-property:opacity,visibility;visibility:hidden}.footer,.row{position:relative}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);position:relative;text-align:left;top:-.5rem}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.blog-wrapper>.container>.row>aside>nav>div:first-child,.blog-wrapper>.container>.row>aside>nav>ul li a{border-left:1px solid #0000;font-size:var(--lsd-subtitle2-fontSize)!important;font-weight:var(--lsd-subtitle2-fontWeight)!important;line-height:var(--lsd-subtitle2-lineHeight)!important}.content_knG7 a,.dropdown__link:hover,.footer__item a{text-decoration:underline}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar__left-items>.navbar__item:first-of-type,.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footer>div,.grid{display:grid;grid-template-columns:repeat(24,1fr)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}:root{--docusaurus-progress-bar-color:var(--ifm-color-primary);--content-padding:16px;--container-max-width:1440px;--pagination-nav-margin-top:96px;--ifm-navbar-link-color:rgb(var(--lsd-text-primary));--ifm-navbar-background-color:rgb(var(--lsd-surface-primary));--ifm-dropdown-link-color:rgb(var(--lsd-text-primary));--ifm-dropdown-hover-background-color:rgb(var(--lsd-surface-secondary));--ifm-background-color:rgb(var(--lsd-surface-primary));--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-primary:rgb(var(--lsd-theme-primary));--ifm-color-secondary:rgb(var(--lsd-theme-secondary));--prism-background-color:rgb(var(--lsd-theme-primary));--ifm-color-gray-0:rgb(var(--lsd-surface-primary));--ifm-color-gray-100:#f8f8fa;--ifm-color-gray-200:#f7f7f8;--ifm-color-gray-300:#eeeef0;--ifm-color-gray-400:#c0c0c2;--ifm-color-gray-500:#828285;--ifm-color-gray-600:#474747;--ifm-color-gray-700:#373738;--ifm-color-gray-800:#1a1a1a;--ifm-color-gray-900:#151515;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-font-color-base-inverse:var(--ifm-color-black);--docusaurus-highlighted-code-line-bg:#ffffff26;--ifm-card-background-color:var(--ifm-color-gray-100)!important;--ifm-alert-foreground-color:var(--ifm-color-gray-700);--ifm-button-background-color:rgb(var(--lsd-surface-primary));--ifm-global-border-width:1px;--ifm-global-radius:0.6rem;--ifm-hover-overlay:#0000000d;--ifm-font-family-base:var(--lsd-typography-generic-font-family);--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--lgs-font-family-secondary:Georgia,"Times New Roman",serif;--ifm-font-size-base:100%;--ifm-line-height-base:1.625;--ifm-font-size-secondary:100%;--ifm-line-height-secondary:1.5;--ifm-font-weight-light:400;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:400;--ifm-font-weight-bold:600;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-h1-font-size:var(--lsd-h1-fontSize);--ifm-h2-font-size:var(--lsd-h2-fontSize);--ifm-h3-font-size:var(--lsd-h3-fontSize);--ifm-h4-font-size:var(--lsd-h4-fontSize);--ifm-h5-font-size:var(--lsd-h5-fontSize);--ifm-h6-font-size:var(--lsd-h6-fontSize);--ifm-global-spacing:24px;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:0.75rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:24px;--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-code-background:rgb(var(--lsd-text-primary))!important;--ifm-pre-padding:1.125rem;--ifm-link-decoration:none;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-border-left-width:3px;--ifm-blockquote-shadow:none;--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-button-padding-vertical:0.4rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-border-radius:var(--ifm-global-radius);--ifm-card-horizontal-spacing:var(--ifm-spacing-horizontal);--ifm-card-vertical-spacing:var(--ifm-spacing-vertical);--ifm-footer-link-horizontal-spacing:0;--ifm-footer-padding-horizontal:var(--content-padding);--ifm-footer-padding-vertical:24px;--ifm-footer-background-color:#0000;--ifm-menu-link-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-color:rgb(var(--lsd-text-primary),0.6);--ifm-menu-color-background-active:#0000;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-height:64px;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-padding-horizontal:var(--content-padding);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)/3);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:100vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pills-spacing:0.125rem;--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--ifm-alert-background-color:#0000;--ifm-color-secondary-contrast-background:#0000;--ifm-color-success-contrast-background:#0000;--ifm-color-info-contrast-background:#0000;--ifm-color-warning-contrast-background:#0000;--ifm-color-danger-contrast-background:#0000;--ifm-alert-border-radius:none;--note:#d4d5d8;--tip:#6ace4b;--caution:#ddaa39;--danger:#e46967;--info:#68b1d0;--ifm-color-secondary-dark:var(--note);--ifm-color-secondary-light:var(--note);--ifm-color-success-dark:var(--tip);--ifm-color-success-light:var(--tip);--ifm-color-info-dark:var(--info);--ifm-color-info-light:var(--info);--ifm-color-warning-dark:var(--caution);--ifm-color-warning-light:var(--caution);--ifm-color-danger-dark:var(--danger);--ifm-color-danger-light:var(--danger);--ifm-footer-link-color:rgb(var(--lsd-text-primary));--ifm-color-content-secondary:rgb(var(--lsd-text-primary));--ifm-hero-background-color:#f8f8fa;--ifm-hero-text-color:var(--ifm-color-black);--desktop-footer-gap:200px;--mobile-footer-gap:144px;--doc-grid-gap:16px;--ifm-table-background:#0000!important;--ifm-table-stripe-background:#0000!important;--ifm-pre-border-radius:0!important;--ifm-code-font-size:100%!important;background-color:#0000!important;--doc-sidebar-width:16.66vw!important;--doc-sidebar-max-width:320px;--ifm-navbar-item-padding-vertical:8px;--ifm-navbar-item-padding-horizontal:12px;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--card-height:188px;--mobile-width:253px;--mobile-height:176px}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}.theme-admonition,table{overflow:auto}main{min-height:calc(100vh - var(--ifm-navbar-height) - var(--content-padding))}svg *{fill:rgb(var(--lsd-text-primary))}.grid{gap:16px}.table-of-contents__link--active,.table-of-contents__link:hover{color:rgb(var(--lsd-text-primary))!important}h1{font-size:var(--lsd-h1-fontSize);font-weight:var(--lsd-h1-fontWeight);line-height:var(--lsd-h1-lineHeight)}h1,h2,h3,h4{font-family:var(--lsd-typography-generic-font-family)}h2{font-size:var(--lsd-h2-fontSize);font-weight:var(--lsd-h2-fontWeight);line-height:var(--lsd-h2-lineHeight)}h3{font-size:var(--lsd-h3-fontSize);font-weight:var(--lsd-h3-fontWeight);line-height:var(--lsd-h3-lineHeight)}h4{font-size:var(--lsd-h4-fontSize);font-weight:var(--lsd-h4-fontWeight);line-height:var(--lsd-h4-lineHeight)}code{background:#ffffff26;border-radius:0;color:rgb(var(--lsd-text-primary));background:rgba(var(--lsd-theme-primary),.1)}pre code{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-body1-fontSize)!important;font-weight:var(--lsd-body1-fontWeight)!important;line-height:var(--lsd-body1-lineHeight)!important}.theme-doc-footer-edit-meta-row div[class*=lastUpdated_] b,table td strong,table th{font-weight:400!important}.alert,.card,.theme-code-block{box-shadow:none!important}.menu__list-item-collapsible>a,.navbar{box-shadow:none}.sans{font-family:var(--lgs-font-family-secondary);line-height:var(--ifm-line-height-secondary)}.blog-wrapper--index [itemprop=blogPost] .markdown,.external-link,.footer__bottom,.footer__copyright,.menu__list-item .menu__link,.theme-doc-footer-edit-meta-row div[class*=lastUpdated_],table{font-size:var(--lsd-body2-fontSize)!important;font-weight:var(--lsd-body2-fontWeight)!important;line-height:var(--lsd-body2-lineHeight)!important;font-family:var(--lsd-typography-generic-font-family)!important}.markdown a,.markdown a:hover,article a,article a:hover{text-decoration:underline;text-decoration-color:inherit;text-decoration-color:rgba(var(--lsd-text-primary),.6);text-underline-offset:.3rem}.card{padding:var(--ifm-spacing-vertical) var(--ifm-spacing-horizontal);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.table-of-contents__left-border{border:none!important}.menu__link{align-items:center;display:flex;justify-content:space-between}.menu__link span{color:rgba(var(--lsd-text-primary),.6)}.theme-edit-this-page{align-items:center;display:flex;gap:12px}.menuExternalLink_NmtK,.navbar__inner,.navbar__item{align-items:center}.dropdown__link:hover{color:rgb(var(--lsd-text-secondary))}.blog-wrapper>.container>.row>aside>nav>ul li a:hover,.breadcrumbs__item--active,.footerLogoLink_BH7S:hover,.hash-link:focus,.theme-code-block:hover .buttonGroup_Qu4e button,:hover>.hash-link{opacity:1}.breadcrumbs__item:not(:last-child):after{background:none;content:"/";opacity:1}.breadcrumbs__link{background:#0000!important;padding:0}.navbar{height:var(--ifm-navbar-height)}.menu__link--active,.menu__list-item-collapsible--active>:not(a[href="#"]){box-shadow:inset 1px 0 0 rgb(var(--lsd-border-primary))}.navbar__logo,a[class^=sidebarLogo_] img{height:40px}.header-github-link:hover{opacity:.6}.header-github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath 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'/%3E%3C/svg%3E") no-repeat;content:"";display:flex;height:16px;width:16px}html[data-theme=dark] .header-github-link:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' 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'/%3E%3C/svg%3E") no-repeat}.dropdown__link--active{color:rgb(var(--lsd-text-secondary))!important;background-color:#0000}.row{margin:0}.theme-doc-version-banner *,.theme-doc-version-banner:hover *{color:#fff;text-decoration-color:#fff!important}.blog-wrapper main>section article ul li .lsd-tag>span,.blog-wrapper main>section article ul li .lsd-tag>span>span,.menu__link--active span,.theme-doc-version-badge{color:rgb(var(--lsd-text-primary))}.navbar__left-items>a:not(:last-child){margin-right:1.25rem}.navbar__left-items>a:not(:last-child)[href^="/"]{margin-right:1.75rem}.menu__link--sublist-caret:after{background:none;content:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQgOS41My45NC45NEw4IDcuNDE3bDMuMDYgMy4wNTMuOTQtLjk0LTQtNC00IDRaIiBmaWxsPSIjZmZmIi8+PC9zdmc+);filter:unset;height:unset;min-width:unset;width:unset}.menu__list-item--collapsed>.menu__link--sublist-caret:after{transform:rotate(0)!important}.menu__link--active{border-radius:0}.dropdown__menu,.pagination-nav__link{border:1px solid rgb(var(--lsd-border-primary))}.table-of-contents a{padding-left:16px}.table-of-contents__link--active{border-left:1px solid rgb(var(--lsd-border-primary));padding-left:16px}.navbar__item{display:inline-flex;padding:0}.mdx-accordion-item,.navbar__link--active{border-bottom:1px solid rgb(var(--lsd-border-primary))}.dropdown__menu{background:rgb(var(--lsd-surface-primary));border-radius:0;margin-right:-1px;margin-top:6px;padding:0;transition-duration:0ms}.dropdown__link{background-color:#0000;border-radius:0;margin:0;padding:5px 11px;text-decoration:none}.dropdown__link *{text-decoration:inherit!important}.dropdown__link:hover{background-color:#0000}.margin-left-8,.mdx-jpd__external-link-icon{margin-left:8px}.pagination-nav{margin-top:var(--pagination-nav-margin-top)!important}.pagination-nav__link{align-items:center;border-radius:0;display:flex;gap:18px;padding:10px 14px}.theme-doc-version-badge,table td,table th,table thead>tr{border:1px solid rgb(var(--lsd-border-primary))}.pagination-nav__link--next{grid-column:2/3;text-align:right;justify-content:flex-end}.footer__item a svg,.menu__caret,.pagination-nav__label:after,.pagination-nav__label:before,.theme-doc-footer-edit-meta-row div[class*=lastUpdated_] small{display:none}.theme-back-to-top-button{display:none!important}.footer__link-item,.tag_NdBD{display:inline-block}.lsd-collapse__content{padding:24px}.theme-doc-version-badge{background:#0000;margin-bottom:16px;padding:4px 8px}.navbar__right-items{align-items:center;display:flex}table{border-collapse:collapse;margin-bottom:var(--ifm-spacing-vertical);display:table;table-layout:fixed;width:100%}table th{text-align:left}table td{color:var(--ifm-table-cell-color)}.theme-doc-footer{margin-bottom:96px}.theme-doc-footer-edit-meta-row div[class*=lastUpdated_]{font-style:normal;opacity:.7}.navbar-sidebar__item{padding-block:0;padding-inline:var(--content-padding)}.navbar-sidebar__back{align-items:center;display:flex;gap:16px;margin:24px 0!important;padding:0;width:100%!important}.theme-doc-sidebar-menu .menu__link{padding-left:var(--content-padding);padding-right:0}.menu__list-item-collapsible>a[aria-expanded=true]>svg{transform:rotate(180deg)}main[itemtype*=Blog]{margin-left:0}.mdx-ghc-subheader-text,main[itemtype*=Blog] .theme-doc-breadcrumbs{margin-bottom:40px}main[itemtype*=Blog] .blog-divider{background:rgb(var(--lsd-theme-primary));margin-block:40px}.container{padding-inline:var(--content-padding)}.main-wrapper>.container{margin-bottom:80px!important;margin-top:0!important}.main-wrapper>main,.main-wrapper>main>.row,.main-wrapper>main>.row>.col{--ifm-spacing-horizontal:var(--content-padding);flex-basis:100%!important;flex:unset;margin:0;max-width:unset;width:100%!important}.footer{margin-bottom:18px;width:100%!important}.footer>div{gap:1rem;margin:unset;max-width:unset;padding:16px 0}.footer__bottom{grid-column:1/12;grid-row:1/1;text-align:unset}#__docusaurus-base-url-issue-banner-container,.blog-archive-page .main-wrapper header .container p,.blog-wrapper main>section article ul li a:after,.blog-wrapper main>section article ul li a:before,.docItemContainer_hrrU .tocMobile_imaF:not(:first-of-type),.docSidebarContainer_b6E3,.footer__bottom>div:first-of-type,.groups_p1lF .divider_eGUz:last-child,.mdx-accordion-item>input,.modal_kLVz .closeButton_Rr0e,.sidebarLogo_Ydl9,.theme-doc-breadcrumbs,.themedImage_ToTc,.wrapper_SWrM .fullscreenButton_Bocn,[data-hidden-doc-sidebar=true] .theme-doc-sidebar-container,[data-theme=dark] .lightToggleIcon_K4TL,[data-theme=light] .darkToggleIcon_lKkA,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.footer__title{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-label1-fontSize)!important;font-weight:var(--lsd-label1-fontWeight)!important;font-weight:var(--ifm-font-weight-normal);line-height:var(--lsd-label1-lineHeight)!important;margin-bottom:4px}.blog-wrapper main>section article ul li .lsd-tag>span,.blog-wrapper main>section article ul li .lsd-tag>span>span,.footer__item,.footer__item a{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-label1-fontSize)!important;font-weight:var(--lsd-label1-fontWeight)!important;line-height:var(--lsd-label1-lineHeight)!important}.footer>div:first-child>.footer__links{display:grid;gap:12px;grid-column:13/25;grid-row:1/1;margin-bottom:0}.footer>div:nth-child(2)>.footer__links{display:grid;gap:2rem 1rem;grid-column:13/25;grid-row:1/1;grid-template-columns:repeat(2,1fr);margin-bottom:0}.footer__col{grid-template-columns:span 1}.blog-wrapper main>section article ul li a,.codeBlockStandalone_BRZX,.codeBlockStandalone_MEMb,.col.footer__col,.modal_kLVz>div>div:first-child,.noResults_mD2O,.root_N57j ul,.root_ONDG.empty_a7qb{padding:0}.footer__items{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}.footer__item{display:inline-flex}.footer__item:not(:last-child):after{content:"•";display:inline-block;margin-left:8px;text-decoration:none}.footer__logo{max-width:var(--ifm-footer-logo-max-width);margin:0!important}.navbar__inner{flex-direction:row}.hero--primary{--ifm-hero-background-color:rgb(var(--lsd-surface-primary));--ifm-hero-text-color:rgb(var(--lsd-text-primary))}.docusaurus-mermaid-container{margin-block:40px}.overflow-hidden{overflow:hidden}.hidden-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hidden-scrollbar::-webkit-scrollbar{display:none;width:0}[class^=mdx-]{--lsd-h1-fontWeight:100;--lsd-h2-fontWeight:300;--lsd-h3-fontWeight:300;--lsd-h4-fontWeight:300;--lsd-h5-fontWeight:300;--lsd-h6-fontWeight:300;--lsd-subtitle1-fontWeight:300}.hidden,.mdx-hero-video .mdx-hero-video__placeholder{opacity:0;visibility:hidden}.blog-wrapper h1[itemprop=headline]{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h1-fontSize)!important;font-weight:var(--lsd-h1-fontWeight)!important;line-height:var(--lsd-h1-lineHeight)!important}.blog-wrapper>.container{display:flex;margin:0;max-width:unset;padding-inline:0;width:100%}.blog-wrapper>.container>.row,.form_lk4c .inputs_dj3Q>*,.mdx-roadmap,.mdx-scroll-buttons,.root_lcb5>*{width:100%}.blog-wrapper main>header h1{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h3-fontSize)!important;font-weight:var(--lsd-h3-fontWeight)!important;line-height:var(--lsd-h3-lineHeight)!important;margin-bottom:.5rem}.blog-wrapper>.container>.row>aside{max-width:unset}.blog-wrapper>.container>.row>aside>nav{padding-top:16px;top:var(--ifm-navbar-height)}.blog-wrapper>.container>.row>aside>nav>div:first-child{font-family:var(--lsd-typography-generic-font-family)!important;margin-bottom:0!important;padding:4px 0 4px 15px}.blog-wrapper>.container>.row>aside>nav>ul li a{box-sizing:border-box;display:block;font-family:var(--lsd-typography-generic-font-family)!important;opacity:.6;padding:4px 0 4px 2rem}.blog-wrapper--index>.container>.row>aside>nav>div:first-child,.blog-wrapper>.container>.row>aside>nav>ul li a[class*=sidebarItemLinkActive_]{border-color:rgb(var(--lsd-border-primary))}.blog-wrapper--index h2[itemprop=headline]{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h4-fontSize)!important;font-weight:var(--lsd-h4-fontWeight)!important;line-height:var(--lsd-h4-lineHeight)!important}.blog-wrapper .breadcrumbs__item,.blog-wrapper--index h2[itemprop=headline]>a{text-decoration:none}.blog-wrapper>.container>.row>main{margin-top:16px;max-width:unset}.blog-archive-page .main-wrapper header .container h1,.blog-wrapper article header h2,.blog-wrapper main>section article h2{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h3-fontSize)!important;font-weight:var(--lsd-h3-fontWeight)!important;line-height:var(--lsd-h3-lineHeight)!important}.blog-wrapper article footer{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-top:24px!important}.blog-wrapper main article{border-bottom:1px solid rgb(var(--lsd-border-primary));margin-bottom:34px!important;padding-bottom:34px}.blog-wrapper main article:last-of-type{border-bottom:none!important}.blog-archive-page .main-wrapper{padding:2rem var(--content-padding)}.blog-archive-page .main-wrapper header{border-bottom:1px solid var(--ifm-hero-text-color);margin:0;padding:0 0 1rem}.blog-archive-page .main-wrapper header .container{margin:0;padding:0!important}.blog-archive-page .main-wrapper main>section .container{margin:0;max-width:unset;padding:0}.blog-archive-page .main-wrapper main>section .container>.row{margin-top:64px}.blog-archive-page .main-wrapper main>section .container>.row>.col{margin:0!important;max-width:unset;padding:0}.blog-archive-page .main-wrapper main>section .container>.row>.col h3{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h5-fontSize)!important;font-weight:var(--lsd-h5-fontWeight)!important;line-height:var(--lsd-h5-lineHeight)!important}.blog-archive-page .main-wrapper main>section .container>.row>.col a{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-body1-fontSize)!important;font-weight:var(--lsd-body1-fontWeight)!important;line-height:var(--lsd-body1-lineHeight)!important}.blog-archive-page .main-wrapper main>section .container>.row>.col ul{margin:1rem 0 0;padding:0 0 0 1.5rem}.blog-wrapper main>section article{border-bottom:none;padding:0}.blog-wrapper main>section article ul,.mdx-app-card__name{margin-top:1rem}.nav_cMpg,.root_QACb{margin:0 auto;max-width:var(--container-max-width)}.blog-wrapper main>section article ul li{margin:0 .5rem 0 0!important;padding:0!important}.blog-wrapper main>section article ul li .lsd-tag{height:28px;padding:3px 11px}.community-container article{margin:16px auto 0;max-width:796px}div:has(.community-container)>.container{margin-bottom:0!important;padding-bottom:0!important}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA,html:not([data-theme]) .themedComponent--light_NU7w{display:initial}.icon_S7Kx.s_AZDZ svg{width:10px}.icon_S7Kx.m_thRi svg{width:20px}.icon_S7Kx.l_WHPt svg{width:40px}[data-theme=dark] .icon_S7Kx.fill_hNhN,[data-theme=dark] .icon_S7Kx.fill_hNhN *{fill:var(--ifm-color-white)}[data-theme=dark] .icon_S7Kx.stroke_N8dm svg,[data-theme=dark] .icon_S7Kx.stroke_N8dm svg *{stroke:var(--ifm-color-white)}[data-theme=light] .icon_S7Kx.fill_hNhN,[data-theme=light] .icon_S7Kx.fill_hNhN *{fill:var(--ifm-color-black)}[data-theme=light] .icon_S7Kx.stroke_N8dm svg,[data-theme=light] .icon_S7Kx.stroke_N8dm svg *{stroke:var(--ifm-color-black)}.backdrop_Ifvc{background:rgb(var(--lsd-surface-primary));z-index:201}.backdrop_Ifvc,.navWrapper_ybYI{height:100%;left:0;opacity:0;position:fixed;top:0;visibility:hidden;width:100%}.navWrapper_ybYI{background:#0000;z-index:203}.navWrapper_ybYI>*{pointer-events:auto}.nav_cMpg{align-items:center;background:rgb(var(--lsd-surface-primary));display:flex;flex-direction:row;height:var(--ifm-navbar-height);justify-content:space-between;padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.visible_ynAX{opacity:1!important;visibility:visible!important}.codeBlockContent_ugSV,.wrapper_SWrM{position:relative}.wrapper_SWrM:not(.active_qZD5) .fullscreenButton_Bocn{background:rgb(var(--lsd-surface-primary));bottom:8px;position:absolute;right:8px;transition:.3s}.root_QACb{padding:0;width:100%}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.iconExternalLink_nPIU{margin-left:.3rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.firstRow_ar1q{border-top:1px solid rgb(var(--lsd-text-primary));margin-bottom:96px!important}.firstRow_ar1q,.secondRow__ww3{display:flex;flex-direction:row}.secondRow__ww3{border-top:1px solid rgb(var(--lsd-border-primary))}.backToTop_wDfN{bottom:16px;left:16px;position:absolute;width:-moz-fit-content;width:fit-content}.l-modal,.l-modal__backdrop{position:fixed;top:0;left:0}.toggle_K23S{border:1px solid rgb(var(--lsd-border-primary));height:32px;width:32px}.toggle_K23S svg{height:14px;width:14px}.toggleButton_dl49{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.dropdownNavbarItem_o23I,.l-modal__content{border:1px solid rgb(var(--lsd-border-primary))}.toggleButton_dl49:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_AAS_{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}.l-modal{height:100vh;opacity:0;transition:.3s;visibility:hidden;width:100%;z-index:9999}.l-modal__container{display:grid;gap:1rem;grid-template-columns:repeat(24,1fr);margin:0 auto;max-width:1376px;overflow:auto}.l-modal--open{opacity:1;visibility:visible}.l-modal__content{background:rgb(var(--lsd-surface-primary));grid-column:8/19;height:-moz-fit-content;height:fit-content;margin:64px 0;max-height:80vh;padding:7px;z-index:9998}.groups_p1lF,.root_ONDG{max-height:60vh;overflow-y:auto}.l-modal__backdrop{background-color:rgba(var(--lsd-surface-primary),.6);height:100%;width:100%;z-index:9997}.modal_kLVz .header_QwCa{align-items:center;display:flex;flex-direction:row;gap:.5rem}.root_EFVO{padding:32px;text-align:center}.root_ONDG{padding:24px}.title_uwS_{font-size:.75rem!important}.item_RHYF{align-items:center;display:flex;flex-direction:row;margin-top:1rem}.item_RHYF .itemTitle_jtAv{flex-grow:1;overflow:hidden;padding-left:1rem;text-overflow:ellipsis;white-space:nowrap}.linkContent__x3v,.root_JWD1{align-items:center;display:flex}.item_RHYF .itemTitle_jtAv mark,.root_JWD1 mark{background:none;color:inherit}.root_xZfc{padding:8px 8px 0;position:relative;width:100%}.collapse_LWBd button,.textField_af43{width:100%!important}.textField_af43 button svg{height:auto;max-height:100%!important;width:14px}.root_N57j>div:first-child{color:#828285;padding:0 24px}.root_N57j>div:first-child,.root_N57j>div:first-child *{font-size:.75rem}.root_N57j ul li{margin-top:1rem}.root_JWD1{padding:0 24px}.root_JWD1>div{margin-left:1rem}.mdx-cta-button:hover,.mdx-cta-button:hover *,.root_Ooa0{text-decoration:none!important}.root_Ooa0.level1_fpUf{display:block;padding-left:32px}.icon_sZn2{height:auto;width:16px}.icon_sZn2.fill_fkan,.icon_sZn2.fill_fkan *{fill:currentColor}.icon_sZn2.stroke_j3wH,.icon_sZn2.stroke_j3wH *{stroke:currentColor}[data-theme=light] .icon_sZn2{color:#000}[data-theme=dark] .icon_sZn2{color:#fff}.mdx-feature-list__title,.root_ltHz{padding:24px 0}.groups_p1lF{display:flex;flex-direction:column;gap:16px}[data-theme=dark] .divider_eGUz>div{opacity:.1}[data-theme=dark] .topBar_Dtew button{background-color:var(--ifm-button-color)}.linkContent__x3v{gap:6px;text-decoration:none}.linkContent__x3v:hover{text-decoration:underline;text-decoration-color:rgba(var(--lsd-text-primary),.6);text-underline-offset:.3rem}.externalLinkIcon_Qfue{width:8px}.externalLinkIcon_Qfue svg,.root_TTsz.fullWidth_HBtH{height:auto;width:100%}.dropdownNavbarItem_o23I{height:28px;padding:6px 12px}.navbarHideable_OoEf{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_zoxl{transform:translate3d(0,calc(-100% - 2px),0)}.rightSection_CLeF{align-items:center;display:flex;justify-content:flex-end;white-space:nowrap}.iconButtonGroup_ktNv button:not(:last-child){border-right:1px solid!important;margin-right:-1px!important}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.breadcrumbsContainer_RLvU{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:24px}.codeBlockContainer_Ckt0{background:var(--prism-background-color);border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw)}.codeBlockContainer_Ckt0,.codeBlockContainer_EB2s{color:var(--prism-color);margin-bottom:var(--ifm-leading)}.codeBlockContainer_EB2s{background:#0000;border-radius:0}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_TWhw,.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V,.codeBlockTitle_sjMo+.codeBlockContent_ugSV .codeBlock_TWhw{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_LDrR,.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.buttonGroup_Qu4e button,.buttonGroup__atx button{color:var(--prism-color);line-height:0;transition:opacity var(--ifm-transition-fast) ease-in-out}.codeBlockLinesWithNumbering_bsRF,.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup_Qu4e,.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;background:var(--prism-background-color);border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;opacity:0;padding:.4rem}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_YovB{opacity:1!important}.copyButtonIcons_an20{align-items:center;display:flex;justify-content:center;position:relative}.copyButtonIcon_ZL7v,.copyButtonSuccessIcon_P2h8{fill:currentColor;height:14px;opacity:inherit;transition:all var(--ifm-transition-fast) ease;width:14px}.copyButtonSuccessIcon_P2h8{color:#00d600;opacity:0}.copyButtonCopied_YovB .copyButtonIcon_ZL7v,.mdx-hero-video--loading .mdx-hero-video__video{opacity:0}.copyButtonCopied_YovB .copyButtonSuccessIcon_P2h8{opacity:1;transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.codeBlockTitle_sjMo{background:var(--prism-background-color);border-bottom:1px solid var(--ifm-color-primary);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.buttonGroup_Qu4e button{align-items:center;background:var(--prism-background-color);border:1px solid rgb(var(--lsd-border-primary));display:flex;height:28px;justify-content:center;opacity:0;width:28px}.buttonGroup_Qu4e button:focus-visible,.buttonGroup_Qu4e button:hover{opacity:1!important}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_ntHH{border:1px solid var(--ifm-alert-border-color);display:flex;gap:18px;margin-bottom:24px;padding:18px}.admonitionHeading_JPfy{font-size:1.25rem!important;font-weight:400;line-height:1.5rem!important;margin-bottom:.3rem;text-transform:capitalize}.admonitionHeading_JPfy code{text-transform:none}.admonitionIcon_BGV6{display:inline-block}.admonitionIcon_BGV6 svg{display:inline-block;height:16px;width:16px}.admonitionIcon_BGV6 svg *{stroke:none!important;fill:var(--ifm-alert-border-color)}.admonitionContent_iozl{display:block;margin-top:12px}.root_UH70,.tagWithCount_gIvh{align-items:center;display:flex}.tag_dtsN{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.mdx-cta-section,.mdx-cta-section--list .mdx-cta-section__list>div:not(:first-child),.mdx-feature-list__feature,.mdx-showcase-card{border-top:1px solid rgb(var(--lsd-border-primary))}.tag_dtsN:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_SGIC{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_gIvh{border-left:0;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_gIvh:after,.tagWithCount_gIvh:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_gIvh:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.mdx-asset-card:not(.mdx-asset-card--downloadable) .mdx-asset-card__inner,.mdx-erc--with-preview .mdx-erc__preview-image{border-bottom:1px solid rgb(var(--lsd-border-primary))}.tagWithCount_gIvh:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_gIvh span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.root_UH70{flex-direction:row}.tags_LT8x{display:inline;margin:0 0 0 1rem!important;padding:0!important}.tag_NdBD:not(:first-child){margin-left:.5rem}.tag_NdBD a{margin:0!important;padding:0!important}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.tocCollapsibleButton_dxRj{align-items:center;border:1px solid rgb(var(--lsd-border-primary));display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButtonExpanded_TSyC:after,.tocCollapsibleExpanded_zTjk{transform:none}.tocCollapsible_ROek{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_Qsjj>ul{border-left:none;border:1px solid rgb(var(--lsd-border-primary))!important;border-top:none!important;font-size:15px;padding:.2rem 0}.tocCollapsibleContent_Qsjj ul li{margin:.4rem .8rem}.tocCollapsibleContent_Qsjj a{display:block;-webkit-text-decoration:var(--ifm-link-text-decoration);text-decoration:var(--ifm-link-text-decoration)}.badge_AsjZ{background:#0000}.docItemGrid_SzoZ{display:grid;gap:16px;grid-template-columns:repeat(14,1fr)}.gap1_XuuQ{grid-column:span 1}.toc_pP_5{grid-column:span 4}.tocMobile_imaF{margin-bottom:2rem;margin-top:-.5rem}.tocMobile_imaF>div{display:block!important;margin:0}.docItemContainer_hrrU h1{margin-bottom:40px!important}.docItemContainer_hrrU h2,.docItemContainer_hrrU h3{margin-top:32px!important}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.root_jG9K{align-items:center;display:flex;flex-direction:column;padding:1rem!important;width:100%}.root_jG9K>div{max-width:796px!important;width:100%}.root_jG9K>div>div{align-items:flex-start;display:flex;flex-direction:column;gap:1rem;padding:0!important}.root_jG9K a{margin-top:2.5rem}.mdxPageWrapper_j9I6{justify-content:center}.mdx-accordion-item__header{align-items:center;display:flex;flex-direction:row;gap:0 16px;justify-content:space-between;min-height:88px;padding:16px 0}.mdx-asset-card,.mdx-erc{min-height:144px;text-decoration:none!important}.mdx-accordion-item__header,.mdx-accordion-item__header *{cursor:pointer}.mdx-accordion-item__content-wrapper{height:auto;overflow:hidden}.mdx-accordion-item__content{height:0}.mdx-accordion-item--open .mdx-accordion-item__content{height:auto;padding-bottom:1.875rem;padding-top:6px}.mdx-app-card{align-items:flex-start;display:flex;flex-direction:column;padding:1.5rem 0}.mdx-app-card__logo{height:40px;width:auto}.mdx-app-card__description{margin-top:1.5rem}.mdx-app-card__link{margin-top:1.5rem;width:100%}.mdx-app-card__link button{padding:10px 16px;width:100%}.mdx-app-card__link button>span{align-items:center;display:block;display:flex;flex-direction:row;justify-content:space-between;width:100%}.root_TTsz{display:inline-block;font-size:0!important;position:relative}.root_TTsz.fullHeight_ls1u{height:100%;width:auto}.root_TTsz .content_feMR{height:100%;left:0;position:absolute;top:0;width:100%}.root_TTsz:not(.keep_Y9Ea) .root_TTsz{height:auto;width:auto}.root_TTsz:not(.keep_Y9Ea) .content_feMR{height:100%;left:unset;position:relative;top:unset;width:100%}.mdx-asset-card{align-items:flex-start;border:1px solid rgb(var(--lsd-border-primary));border-bottom:none;display:flex;flex-direction:column;width:216px}.mdx-asset-card__inner{padding:16px 16px 32px;width:100%}.mdx-asset-card__title,.mdx-ghc__challenge-labels,.mdx-ghc__issue-title{margin-bottom:16px}.mdx-asset-card__image img{height:100%;object-fit:contain;object-position:center center;width:100%}.mdx-asset-card__downloadables{align-items:flex-start;display:flex;flex-direction:row;justify-content:stretch;width:100%}.mdx-asset-card__downloadables>*{flex-grow:1;font-size:12px;text-decoration:none!important;text-underline-offset:unset!important}.mdx-asset-card__downloadables>* button{justify-content:space-between;text-decoration:none;width:100%}.mdx-asset-card__downloadables>:first-child button{border-left:none}.mdx-asset-card__downloadables>:last-child button,.mdx-asset-card__downloadables>:not(:last-child) button{border-right:none}.mdx-box{padding-bottom:var(--mdx-box-bottom);padding-top:var(--mdx-box-top)}.mdx-cta-button,.mdx-section-header--with-description .mdx-section-header__extra{margin-top:2rem}.mdx-cta-button button,.mdx-cta-button button span{font-size:inherit;font-weight:inherit;line-height:inherit}.mdx-cta-button .lsd-button--large{padding:9px 39px}.mdx-cta-button .lsd-button--small{padding:5px 11px}.mdx-cta-section{display:grid;padding:24px 0 0}.mdx-cta-section .mdx-cta-section__link,.mdx-jpd__job-link{display:block;width:-moz-fit-content;width:fit-content}.mdx-cta-section--title-only .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h5-fontSize);font-weight:var(--lsd-h5-fontWeight);font-weight:300;line-height:var(--lsd-h5-lineHeight);max-width:886px}.mdx-cta-section--title-button .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-display4-fontSize);font-weight:var(--lsd-display4-fontWeight);font-weight:300;line-height:var(--lsd-display4-lineHeight);max-width:886px}.mdx-cta-section--full-width .mdx-cta-section__container{display:grid;gap:0 1rem;grid-template-columns:repeat(2,1fr)}.mdx-cta-section--full-width .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h5-fontSize);font-weight:var(--lsd-h5-fontWeight);line-height:var(--lsd-h5-lineHeight)}.mdx-cta-section--full-width .mdx-cta-section__description,.mdx-ns__description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h3-fontSize);font-weight:var(--lsd-h3-fontWeight);line-height:var(--lsd-h3-lineHeight)}.mdx-cta-section--full-width .mdx-cta-section__link{grid-area:2/2/3/3}.mdx-cta-section--simple .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h5-fontSize);font-weight:var(--lsd-h5-fontWeight);line-height:var(--lsd-h5-lineHeight)}.mdx-cta-section--simple .mdx-cta-section__description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h2-fontSize);font-weight:var(--lsd-h2-fontWeight);line-height:var(--lsd-h2-lineHeight);margin-top:2rem}.mdx-cta-section--list{display:grid;gap:0 1rem;grid-template-columns:1fr 1fr}.mdx-cta-section--list .mdx-cta-section__container{grid-column:1/2}.mdx-cta-section--list .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h5-fontSize);font-weight:var(--lsd-h5-fontWeight);line-height:var(--lsd-h5-lineHeight)}.mdx-cta-section--list .mdx-cta-section__description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h1-fontSize);font-weight:var(--lsd-h1-fontWeight);line-height:var(--lsd-h1-lineHeight);margin-top:2rem}.mdx-cta-section--list .mdx-cta-section__list{display:flex;flex-direction:column;gap:1.5rem 0;grid-column:2/3}.mdx-cta-section--list .mdx-cta-section__list>div>div{background-color:rgb(var(--lsd-surface-secondary));border-radius:1rem;color:rgb(var(--lsd-text-secondary));display:inline-block;margin-top:1.5rem;padding:3px 11px}.mdx-cta-section--list .mdx-cta-section__list>div>p{margin-top:1rem}.mdx-doc-metadata{display:flex;flex-direction:row;line-height:0;margin-bottom:2.5rem}.mdx-doc-metadata>span:not(:last-child):after{content:"•";display:inline-block;margin-inline:.75rem}.markdown h1+.mdx-doc-metadata,.markdown header+.mdx-doc-metadata{margin-top:calc(var(--ifm-h1-vertical-rhythm-bottom)*-1*var(--ifm-leading) + 1rem)}.mdx-erc{align-items:flex-start;border:1px solid rgb(var(--lsd-border-primary));display:flex;flex-direction:row}.mdx-erc__icon{padding:16px 16px 16px 8px}.mdx-erc__inner{flex-grow:1;padding:16px}.mdx-erc:hover .mdx-erc__title{text-decoration:underline!important}.mdx-erc__logo,.mdx-erc__logo svg{height:32px!important;width:32px!important}.mdx-erc__title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:32px;max-height:calc(var(--lsd-body1-lineHeight)*2);overflow:hidden}.mdx-erc__description{margin-top:8px}.mdx-erc--with-preview{display:flex;flex-direction:column}.mdx-erc--with-preview .mdx-erc__preview-image{height:100%;object-fit:cover;width:100%}.mdx-erc--with-preview .mdx-erc__icon{display:none}.mdx-erc--with-preview .mdx-erc__inner{display:grid;gap:0 16px;grid-template-columns:32px auto;grid-template-rows:auto auto;padding:16px}.mdx-erc--with-preview .mdx-erc__logo{align-self:center;grid-column:1;grid-row:1/span 2}.mdx-erc--with-preview .mdx-erc__title{-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:0;max-height:calc(var(--lsd-body1-lineHeight)*1)}.mdx-erc--with-preview .mdx-erc__description{margin-top:4px}.mdx-feature-list{border-top:1px solid rgb(var(--lsd-surface-secondary));position:relative}.mdx-feature-list__feature-index{align-items:center;background:rgb(var(--lsd-surface-secondary));border-radius:100%;color:rgb(var(--lsd-text-secondary))!important;display:inline-flex;height:1.875rem;justify-content:center;padding:.5rem;width:1.875rem}.mdx-feature-list__list{display:grid;grid-template-columns:repeat(2,1fr)}.mdx-feature-list__feature-inner{display:flex;flex-direction:column}.mdx-feature-list__feature-title{margin-top:1rem}.mdx-feature-list__header{align-items:center;display:flex;flex-direction:row;gap:2rem}.mdx-feature-list--cta-bottom .mdx-feature-list__extra{margin-top:3.5rem;padding:0 1rem}.mdx-ghc__container{border-top:1px solid rgb(var(--lsd-border-primary));padding-top:24px}.mdx-ghc__issue-title-link,.mdx-hero-action button:hover,.mdx-hero-action button:hover *,.mdx-hero-action:hover,.mdx-hero-action:hover *{text-decoration:none!important}.mdx-ghc__issue-title-link:hover,.mdx-ghc__view-on-github-link:hover{text-decoration:underline!important}.mdx-ghc__header,.mdx-jpd__header{margin-bottom:40px;margin-top:16px}.mdx-ghc__challenge-label{border:1px solid rgb(var(--lsd-border-primary));border-radius:20px;margin-right:8px;padding:4px 8px}.mdx-ghc__view-on-github-link{display:block;margin-bottom:56px;margin-top:40px;text-decoration:none!important;width:-moz-fit-content;width:fit-content}.mdx-ghc__participant-photo{border:1px solid rgb(var(--lsd-border-secondary));border-radius:100%;margin-left:-4px;width:24px}.mdx-ghc__participant-photo-container{align-items:center;direction:rtl;display:flex;justify-content:flex-end;padding-left:4px}.mdx-ghc__comment-count{margin-left:4px}.mdx-ghc__issue-content-grid{align-items:center;display:grid;grid-template-columns:82px 135px 82px 1fr;margin-top:24px;row-gap:12px}.mdx-scroll-buttons>div{display:flex;flex-direction:row;justify-content:flex-end;width:100%}.mdx-hero{--hero-max-height:1080px;display:flex;flex-direction:column;height:calc(100vh - var(--ifm-navbar-height) - 8px);max-height:var(--hero-max-height);position:relative}.mdx-hero-action--large button{padding:10px 64px}.mdx-hero-actions{align-items:center;display:flex;flex-direction:row;gap:0 1rem;margin-top:2rem;position:relative;z-index:98}.mdx-hero-description{margin-top:18px;max-width:1260px;position:relative;text-shadow:1px 1px 6px rgba(var(--lsd-surface-primary),1);z-index:-2}.mdx-hero-info{border-bottom:1px solid rgb(var(--lsd-surface-secondary));display:flex;flex-direction:column;justify-content:end;padding:32px 0;transition:margin-bottom .05s ease-in-out}.mdx-profile-card,.mdx-profile-card__avatar{border:1px solid rgb(var(--lsd-border-primary))}.mdx-timeline-item,.mdx-timeline-item__border{border-bottom:1px solid rgb(var(--lsd-border-primary))}.mdx-hero-model{--mdx-hero-model-wrapper-scale:1;position:absolute;transform:translateX(calc(-50vw - var(--container-max-width)*-1/2 + (var(--content-padding))*4*-1/2));width:100vw;z-index:0}.mdx-hero-model .mdx-hero-model--inner{left:0;position:relative;top:0;width:100%;z-index:0}.mdx-hero-model .mdx-hero-model--inner canvas{pointer-events:unset!important}.mdx-hero-model--top{top:300px}.mdx-hero-model--bottom{top:calc(var(--logos-hero-info-height) - 10px)}.mdx-hero-model--bottom .mdx-hero-model--shade{bottom:10vh;height:40vh}.mdx-hero-model--ascii{filter:grayscale(100%);opacity:.65}.mdx-hero-model--ascii table,.mdx-hero-model--ascii table *{border:none!important;color:rgb(var(--lsd-text-primary));font-family:monospace}.mdx-hero-model--shade{background:linear-gradient(0deg,rgb(var(--lsd-surface-primary)) 37%,rgb(var(--lsd-surface-primary)) 0,rgba(var(--lsd-surface-primary),0) 100%);bottom:0;height:30vh;left:0;position:absolute;width:100%}.mdx-hero-title{font-size:70px!important;line-height:100%!important}.mdx-hero-video{--hero-video-height:120%;--hero-video-min-height:100vh;--hero-video-offset-y:-150px;--hero-video-scale:1.70951586;--hero-video-height-mobile:120%;--hero-video-min-height-mobile:100vh;--hero-video-offset-y-mobile:-50px;--hero-video-scale-mobile:1.70951586;display:grid;flex-grow:1;grid-template-columns:1fr;grid-template-rows:1fr;pointer-events:none;position:relative}.mdx-hero-video>*{align-items:center;display:flex;flex-direction:column;grid-column:1/1;grid-row:1/1;height:var(--hero-video-height);justify-content:center;left:0;min-height:var(--hero-video-min-height);position:absolute;top:0;transform:translateY(var(--hero-video-offset-y));width:100%}.mdx-hero-video img{object-fit:contain}.mdx-hero-video img,.mdx-hero-video video{height:100%;max-width:calc(var(--container-max-width)*var(--hero-video-scale));object-position:top;transform-origin:top center;width:auto}.mdx-hero-video--loading .mdx-hero-video__placeholder{opacity:1;visibility:visible}.mdx-jpd__single-job-department-container{border-top:1px solid rgb(var(--lsd-border-primary));padding-top:8px}.mdx-jpd__department-title{font-size:12px!important;line-height:16px!important}.mdx-jpd__job-title-container{align-items:center;display:flex;padding-bottom:8px}.mdx-jpd__job-list{list-style-type:none;margin:0;padding:8px 0 24px}.mdx-jpd__job-list-item{padding:14px 0}.mdx-jpd__job-link,.mdx-jpd__job-link:hover{text-decoration:none!important}.mdx-jpd__job-link:hover .mdx-jpd__job-title,.mdx-social-card:hover{text-decoration:underline!important}.mdx-logo-carousel .mdx-section-header__title{flex-basis:100%}.mdx-logo-carousel .mdx-section-header__extra{margin-left:auto}.mdx-logo-carousel .mdx-logo-carousel__inner{margin-top:100px}.mdx-logo-carousel .mdx-logo-carousel__item{flex-shrink:0}.mdx-logo-carousel .mdx-logo-carousel__logo{height:56px;width:auto}.mdx-ns__inner form{margin-top:40px;width:100%}.mdx-ns__inner .mdx-ns__inputs{align-items:center;display:flex;flex-direction:row;gap:16px;width:100%}.mdx-ns__inner .mdx-ns__toast .lsd-toast__close-button,.mdx-roadmap__timeline .mdx-grid-item:last-child .mdx-timeline-item__border,.mdx-timeline-item__item:last-child .mdx-timeline-item__border,.toast_C8x1 .lsd-toast__close-button{display:none}.mdx-ns__inner .mdx-ns__inputs>*{flex-grow:1}.mdx-ns__inner .mdx-ns__submit-button{margin-top:40px}.mdx-ns__inner .mdx-ns__toast{margin-bottom:24px;margin-top:-16px;width:100%}.mdx-profile-card{align-items:flex-start;display:flex;flex-direction:column;height:var(--card-height);justify-content:space-between;padding:1rem}.mdx-profile-card__profile{display:flex;flex-direction:column;gap:20px}.mdx-profile-card__avatar{border-radius:50%}.mdx-profile-card__avatar,.mdx-profile-card__avatar svg,.mdx-social-card__logo,.mdx-social-card__logo svg{height:40px!important;width:40px!important}.mdx-profile-card__avatar svg rect{fill:unset!important}.mdx-profile-card__buttons{display:flex;flex-direction:row;gap:8px;width:100%}.mdx-profile-card__link{height:-moz-fit-content;height:fit-content;max-width:calc(50% - 4px);position:relative;text-decoration:none}.mdx-profile-card__button{height:28px!important;max-width:100%!important;padding:4px 12px 4px 10px!important}.mdx-profile-card__button>span{align-items:center;display:flex;gap:12px}.mdx-profile-card__button svg{height:14px;width:14px}.mdx-profile-card__link__label{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.mdx-timeline-item{display:flex;flex:0 0 auto;flex-direction:column;gap:1rem;justify-content:space-between;min-height:306px;padding-bottom:23px;scroll-snap-align:start!important;width:236px}.mdx-timeline-item__header{align-items:flex-start;display:flex;flex-direction:column;gap:1rem}.mdx-timeline-item__period-container{position:relative;width:100%}.mdx-timeline-item__border{height:50%;left:0;position:absolute;top:0;width:calc(100% + 1rem);z-index:-1}.mdx-timeline-item--border-dashed .mdx-timeline-item__border{border-bottom-style:dashed}.mdx-timeline-item__period{border-radius:10rem;display:inline-block;padding:3px 12px}.mdx-timeline-item__period--filled{background-color:rgb(var(--lsd-surface-secondary));border:1px solid rgb(var(--lsd-border-secondary));color:rgb(var(--lsd-text-secondary))!important}.mdx-timeline-item__period--transparent{background-color:rgb(var(--lsd-surface-primary));border:1px solid rgb(var(--lsd-border-primary));color:rgb(var(--lsd-text-primary))!important}.mdx-roadmap__timeline{margin-top:6.25rem}.mdx-roadmap__timeline-item{height:100%}.scrollToBottom_NE5w{--offset-y:-2rem;background:rgb(var(--lsd-surface-primary))!important;opacity:1;position:absolute;top:min(100*var(--vh) - var(--ifm-navbar-height),var(--maxTop) - var(--ifm-navbar-height));transform:translateY(-2rem);transform:translateY(calc(-100% + var(--offset-y)));transition:.2s ease-in-out;z-index:100}.scrollToBottom_NE5w.hide_q_kn{opacity:0;transform:translateY(calc(-100% + var(--offset-y) - .625rem))}.mdx-section-header{border-top:1px solid rgb(var(--lsd-border-primary));display:flex;flex-direction:row;gap:1rem;padding-top:24px;width:100%}.mdx-section-header>*{flex-basis:50%}.mdx-section-header__title{display:flex;flex-direction:row;gap:2rem}.mdx-showcase-card__inner{display:flex;flex-direction:column;gap:1.5rem;padding-top:1.5rem}.mdx-showcase-card__logo{height:auto;width:58px}.mdx-showcase-card__index{align-items:center;background-color:rgb(var(--lsd-surface-secondary));border-radius:50%;color:rgb(var(--lsd-text-secondary))!important;display:flex;flex-direction:row;height:30px;justify-content:center;width:30px}.mdx-showcase-card__description{margin-top:-.125rem;padding-top:.5rem}.mdx-showcase-card--large .mdx-showcase-card__logo{width:58px}.mdx-showcase-card--small .mdx-showcase-card__logo{width:34px}.mdx-showcase-card--border-solid .mdx-showcase-card__description{border-top:1px solid rgb(var(--lsd-border-primary));padding-top:1rem}.mdx-social-card{align-items:flex-start;border:1px solid rgb(var(--lsd-border-primary));display:flex;flex-direction:column;justify-content:space-between;min-height:144px;padding:1rem;text-decoration:none!important}.mdx-social-card__row{display:flex;justify-content:space-between;width:100%}.container_YAWF,.form_lk4c .inputs_dj3Q,.form_lk4c .submit_J_94,.header_Gr5N,.root_lcb5,.toHome_tEiU{align-items:center;display:flex;flex-direction:column;justify-content:center}.container_YAWF{display:flex!important;min-height:calc(100vh - var(--ifm-navbar-height))}.root_lcb5{max-width:448px;width:90%}.header_Gr5N{gap:4px;padding-bottom:56px}.header_Gr5N p{font-size:16px;font-style:normal;font-weight:400;line-height:24px}.toast_C8x1{margin-bottom:32px;margin-top:-24px;width:100%!important}.form_lk4c .inputs_dj3Q{gap:24px;width:100%}.form_lk4c .submit_J_94{padding:48px 0;width:100%}.form_lk4c .submit_J_94 button{font-size:14px;font-style:normal;font-weight:400;line-height:20px;padding:6px 24px}.toHome_tEiU{padding:48px 0}@media (min-width:0px){.mdx-box{--mdx-box-top:var(--mdx-box-top-xs);--mdx-box-bottom:var(--mdx-box-bottom-xs)}}@media (min-width:576px){.mdx-box{--mdx-box-top:var(--mdx-box-top-sm);--mdx-box-bottom:var(--mdx-box-bottom-sm)}}@media (min-width:768px){.blog-archive-page .main-wrapper main>section .container>.row{display:grid;gap:64px 24px;grid-template-columns:repeat(24,1fr)}.blog-archive-page .main-wrapper main>section .container>.row>.col{grid-column:span 12;margin:0!important;max-width:unset;padding:0 8.3333333333% 0 0}.mdx-box{--mdx-box-top:var(--mdx-box-top-md);--mdx-box-bottom:var(--mdx-box-bottom-md)}.mdx-scroll-buttons__button--with-label{gap:12px;min-width:83px;padding:5px 11px 5px 9px!important;width:auto!important}.mdx-scroll-buttons__button--with-label:first-of-type,.mdx-scroll-buttons__button--with-label:last-of-type{justify-content:flex-start}.mdx-scroll-buttons--spaced>div{gap:0 1rem;justify-content:space-between}.mdx-scroll-buttons--spaced>div>button:not(:last-child){border-right:1px solid rgb(var(--lsd-border-primary))!important}}@media (min-width:997px){.main-wrapper .container{padding-bottom:calc(var(--desktop-footer-gap) - var(--ifm-footer-padding-vertical))!important}.main-wrapper>div{display:grid;gap:1rem;grid-template-columns:repeat(16,42px)}.main-wrapper>div aside{border:none;grid-column:1/5;padding-left:var(--content-padding);width:auto}.main-wrapper>div main{grid-column:6/17;max-width:none}.navbar__inner{display:flex;flex-direction:row;justify-content:flex-start}.navbar__left{flex-basis:8.3333333333%;flex-grow:0}.navbar__left-items{flex:1 0;margin:auto}nav.menu{padding-top:16px}.navbar .lsd-icon-button--medium{height:28px!important;width:28px!important}.blog-wrapper>.container>.row{display:grid;gap:16px;grid-template-columns:repeat(24,1fr)}.blog-wrapper>.container>.row>aside{grid-column:1/5}.blog-wrapper>.container>.row>main{grid-column:6/20}.blog-wrapper:not(.blog-wrapper--index)>.container>.row>div:last-child{grid-column:21/25;max-width:unset}.wrapper_SWrM:not(.active_qZD5) .fullscreenButton_Bocn{background:rgb(var(--lsd-surface-primary));bottom:8px;display:flex;opacity:0;position:absolute;right:8px;transition:.3s;visibility:hidden}.wrapper_SWrM:not(.active_qZD5):hover .fullscreenButton_Bocn{opacity:1;visibility:visible}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemGrid_SzoZ{display:grid;gap:var(--doc-grid-gap);grid-template-columns:repeat(11,1fr)}.docItemCol_F52z{grid-column:span 11}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_NjKY{flex-grow:1;padding-top:16px}@supports (scrollbar-gutter:stable){.menu_NjKY{scrollbar-gutter:stable}}.menuWithAnnouncementBar_U5pk{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_UEyd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height)}.sidebarWithHideableNavbar__00c{padding-top:0!important}.sidebarHidden_F1ZE{opacity:0;visibility:hidden}.sidebarLogo_Ydl9{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_Ydl9 img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;background-color:var(--docusaurus-collapse-button-bg);display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.expandButtonIcon_BlDH{transform:rotate(0)}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.mdx-box{--mdx-box-top:var(--mdx-box-top-lg);--mdx-box-bottom:var(--mdx-box-bottom-lg)}.mdx-feature-list--bottom-aligned .mdx-feature-list__feature{min-height:332px}.mdx-feature-list--bottom-aligned .mdx-feature-list__feature-description{display:flex;flex:1 0;flex-direction:column;justify-content:flex-end}.mdx-feature-list--top-aligned .mdx-feature-list__feature-description{margin-top:136px}.mdx-feature-list__feature{padding:1rem;position:relative}.mdx-feature-list__feature-inner{height:100%;padding:.5rem}.mdx-feature-list__feature-border{background:rgb(var(--lsd-border-primary));height:calc(100% - 2rem);position:absolute;right:0;top:1rem;width:1px}.mdx-feature-list__feature:nth-child(odd){padding-left:0}.mdx-feature-list__feature:nth-child(2n){padding-right:0}.mdx-feature-list__feature:nth-child(2n) .mdx-feature-list__feature-border{display:none}}@media (min-width:1200px){.main-wrapper>div,.navbar__inner{display:grid;grid-template-columns:repeat(24,1fr);grid-template-columns:repeat(24,1fr)}.main-wrapper>div{gap:1rem}.main-wrapper>div aside{border:none;grid-column:1/5;width:auto}.main-wrapper>div main{grid-column:6/25;max-width:none}.theme-doc-toc-desktop{top:calc(var(--ifm-navbar-height))!important}.navbar__inner{gap:16px;padding:0}.navbar__left{align-items:center;display:flex;flex-direction:row;grid-column:1/6}.navbar__left-items{grid-column:6/20}.navbar__right-items{flex-direction:row;gap:16px;grid-column:20/25;justify-content:flex-end}.blog-archive-page .main-wrapper main>section .container>.row{display:grid;gap:64px 24px;grid-template-columns:repeat(24,1fr)}.blog-archive-page .main-wrapper main>section .container>.row>.col{grid-column:span 8;margin:0!important;max-width:unset;padding:0 12.5% 0 0}.docItemGrid_SzoZ{display:grid;gap:var(--doc-grid-gap);grid-template-columns:repeat(19,1fr)}.docItemCol_F52z{grid-column:span 14}.tocMobile_imaF{display:none}.mdx-box{--mdx-box-top:var(--mdx-box-top-xl);--mdx-box-bottom:var(--mdx-box-bottom-xl)}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:1440px)and (min-width:992px){.mdx-hero-model{transform:translateX(calc((var(--content-padding) + 0)*-3));width:calc(100vw + var(--content-padding))}}@media (max-width:1199px){:root{--container-max-width:912px}.main-wrapper main>.container{padding-bottom:calc(var(--desktop-footer-gap) - var(--ifm-footer-padding-vertical) - var(--doc-grid-gap))!important}.header-github-link:before{margin-right:16px}.toc_pP_5{display:none}}@media (max-width:997px);@media (max-width:996px){.navbar-sidebar__close,.navbar__toggle{border:1px solid rgb(var(--lsd-border-primary))}.mdx-cta-section__title,.mdx-section-header__title,.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__link>div{font-size:var(--lsd-subtitle2-fontSize)!important;font-weight:var(--lsd-subtitle2-fontWeight)!important;line-height:var(--lsd-subtitle2-lineHeight)!important}.blog-wrapper h1[itemprop=headline],.mdx-cta-button .lsd-button--large,.mdx-cta-section--list .mdx-cta-section__list>div>p,.mdx-cta-section__description,.mdx-cta-section__title,.mdx-hero-description,.mdx-section-header__description,.mdx-section-header__title{font-family:var(--lsd-typography-generic-font-family)!important}.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0;padding-bottom:0!important;--ifm-footer-padding-horizontal:var(--content-padding)}.desktop,.footer__link-separator,.navbar__item,.navbar__left-items{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item,.main-wrapper>div,.mdx-cta-section--full-width .mdx-cta-section__container,.tocMobile_imaF{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid,.root_xZfc{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.mdx-section-header,.pills--block,.tabs--block{flex-direction:column}:root{--ifm-background-color:rgb(var(--lsd-surface-primary))}.navbar__color-mode-toggle{display:none!important}.main-wrapper main>.container{padding-bottom:calc(var(--mobile-footer-gap) - var(--ifm-footer-padding-vertical) - var(--doc-grid-gap))!important}.grid{grid-template-columns:repeat(2,1fr)}.footer-grid,.l-modal__container,.mdx-feature-list__list,.mdx-profile-card{grid-template-columns:1fr}.navbar{display:flex;height:56px}.navbar__toggle{align-items:center;box-sizing:border-box;display:flex;height:32px;justify-content:center;margin:0;width:32px}.navbar__toggle svg{height:14px;width:14px}.theme-admonition{display:block!important}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu{padding-inline:0}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__list{display:flex;flex-direction:column;gap:8px;padding:var(--content-padding)}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__link{border-left:none;padding-left:0}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .menu__link>div{font-family:var(--lsd-typography-generic-font-family)!important;text-decoration:none}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer{margin-top:3rem;padding:0!important}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer>div{display:flex!important;flex-direction:column!important;gap:32px!important}.colorModeToggle_GSaI,.dropdownNavbarItem_o23I,.l-modal__backdrop,.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer>button,.tableOfContents_bqdL{display:none}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer .container.container-fluid{margin-bottom:16px!important;padding-inline:var(--content-padding)}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer .container.container-fluid>.footer__links{gap:0!important}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer>div[class*=secondRow]{margin:var(--content-padding)}.navbar-sidebar:not(.navbar-sidebar--show-secondary) .footer .footer__links{gap:16px!important}.navbar-sidebar__brand{height:60px;padding-block:0}.navbar-sidebar__brand>button{height:32px;width:32px}.navbar-sidebar__brand>button:first-of-type{margin-left:auto;margin-right:0!important}.navbar-sidebar__brand>button:not(:last-of-type){border-right:none}.navbar-sidebar__close{align-items:center;display:flex;justify-content:center;margin-left:unset}.blog-divider{margin-block:32px!important}.blog-wrapper main{padding-inline:var(--content-padding)}.blog-wrapper article footer{align-items:flex-start;flex-direction:column}.blog-wrapper article footer .read-more-link{margin-top:24px}.blog-wrapper article footer .read-more-link,.blog-wrapper article footer .read-more-link button{flex-basis:100%;width:100%}.blog-wrapper h1[itemprop=headline]{font-size:var(--lsd-h2-fontSize)!important;font-weight:var(--lsd-h2-fontWeight)!important;line-height:var(--lsd-h2-lineHeight)!important}.wrapper_SWrM>div{overflow:visible!important}.nav_cMpg{height:56px}.backToTop_wDfN{bottom:16px;left:16px;margin-top:76px!important;position:relative}.l-modal{overflow:hidden;width:100vw}.l-modal__container{display:grid;height:100vh;max-width:unset;min-height:-webkit-fill-available;width:100%}.docItemGrid_SzoZ,.mdx-showcase{grid-template-columns:repeat(2,1fr)}.root_ONDG,.root_ltHz{height:100%;overflow:auto}.l-modal__content{border:none;grid-column:1/2;grid-row:1/2;height:100%;margin:0;max-height:100vh;overflow:hidden}.modal_kLVz .header_QwCa{padding:12px 16px}.modal_kLVz .closeButton_Rr0e{display:block;height:2rem;width:2rem}.root_EFVO{padding:40px 24px}.root_ONDG{max-height:100%;padding:24px 24px 64px}.groups_p1lF{max-height:unset;overflow:auto}.root_ltHz{padding:24px 0 64px}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}.docItemGrid_SzoZ{display:grid;padding-left:0}.docItemCol_F52z{grid-column:span 2}.mdx-cta-button .lsd-button--large{font-size:var(--lsd-label2-fontSize)!important;font-weight:var(--lsd-label2-fontWeight)!important;line-height:var(--lsd-label2-lineHeight)!important;padding:5px 11px}.mdx-cta-section{padding:16px 0 0}.mdx-cta-section--title-button .mdx-cta-section__title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h4-fontSize);font-weight:var(--lsd-h4-fontWeight);line-height:var(--lsd-h4-lineHeight)}.mdx-feature-list .mdx-feature-list__title,.mdx-feature-list__feature .mdx-feature-list__feature-index{font-size:var(--lsd-subtitle2-fontSize);font-weight:var(--lsd-subtitle2-fontWeight);line-height:var(--lsd-subtitle2-lineHeight);font-family:var(--lsd-typography-generic-font-family)}.mdx-cta-section--full-width .mdx-cta-section__description,.mdx-cta-section--simple .mdx-cta-section__description{margin-top:1.5rem}.mdx-cta-section--list{display:block}.mdx-cta-section--list .mdx-cta-section__list,.mdx-roadmap__timeline{margin-top:4rem}.mdx-cta-section--list .mdx-cta-section__list>div{border-top:1px solid rgb(var(--lsd-border-primary))}.mdx-cta-section--list .mdx-cta-section__list>div>div{font-size:.875rem!important;line-height:1.25rem!important}.mdx-cta-section--list .mdx-cta-section__list>div>p{font-size:var(--lsd-h4-fontSize)!important;font-weight:var(--lsd-h4-fontWeight)!important;line-height:var(--lsd-h4-lineHeight)!important}.mdx-cta-section__description{font-size:var(--lsd-h4-fontSize)!important;font-weight:var(--lsd-h4-fontWeight)!important;line-height:var(--lsd-h4-lineHeight)!important}.mdx-feature-list .mdx-feature-list__title{padding:1rem 0}.mdx-feature-list--cta-bottom .mdx-feature-list__extra{margin-top:2rem;padding:0}.mdx-feature-list__feature{border:none;border-top:1px solid rgb(var(--lsd-border-primary));padding:1.5rem 0}.mdx-feature-list__feature .mdx-feature-list__feature-index{height:1.625rem;width:1.625rem}.mdx-feature-list__feature .mdx-feature-list__feature-title{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h4-fontSize);font-weight:var(--lsd-h4-fontWeight);line-height:var(--lsd-h4-lineHeight);margin-top:1rem}.mdx-feature-list__feature .mdx-feature-list__feature-description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-body1-fontSize);font-weight:var(--lsd-body1-fontWeight);line-height:var(--lsd-body1-lineHeight);margin-top:3rem}.mdx-feature-list__feature:nth-child(odd) .mdx-feature-list__feature-inner{border:none}.mdx-hero-action{text-decoration:none!important}.mdx-hero-action button{padding:6px 12px!important}.mdx-hero-actions{align-items:center;display:flex;flex-direction:row;justify-content:stretch;margin-top:1.5rem;width:100%;z-index:0}.mdx-hero-actions>*{flex-basis:50%}.mdx-hero-actions>a,.mdx-hero-actions>a>button{display:block;width:100%}.mdx-hero-description{font-size:var(--lsd-subtitle1-fontSize)!important;font-weight:var(--lsd-subtitle1-fontWeight)!important;line-height:var(--lsd-subtitle1-lineHeight)!important;margin-top:12px}.mdx-hero-info{padding:24px 0}.mdx-hero-model--top{top:calc(var(--logos-hero-info-height)/ 1 - 10px)}.mdx-hero-model{transform:translate(-12px);width:calc(100vw - 20px)}.mdx-hero-model--shade{bottom:0;height:90vh!important}.mdx-hero-title{font-size:28px!important}.mdx-hero-video>*{height:var(--hero-video-height-mobile);min-height:var(--hero-video-min-height-mobile);transform:translateY(var(--hero-video-offset-y-mobile))}.mdx-hero-video img,.mdx-hero-video video{max-width:calc((100vw - 32px)*var(--hero-video-scale-mobile))}.mdx-logo-carousel .mdx-logo-carousel__inner{margin-top:64px}.mdx-timeline-item{width:204px}.scrollToBottom_NE5w{--offset-y:-1rem}.mdx-section-header__description{font-size:var(--lsd-h4-fontSize)!important;font-weight:var(--lsd-h4-fontWeight)!important;line-height:var(--lsd-h4-lineHeight)!important}.mdx-showcase{gap:1.5rem 1rem}.mdx-showcase-card__name{font-size:1.375rem!important;line-height:1.75rem!important}.mdx-showcase-card__description{margin-top:1rem}.mdx-showcase-card__logo{height:auto;width:34px}}@media (max-width:767px){.blog-archive-page .main-wrapper main>section .container>.row{margin-top:0}.blog-archive-page .main-wrapper main>section .container>.row .col{margin-top:40px!important}.mdx-scroll-buttons>div{justify-content:flex-end}.mdx-scroll-buttons>div>button:not(:last-child){border-right:none!important}.mdx-scroll-buttons .mdx-scroll-buttons__label{display:none}.mdx-ns__description{font-family:var(--lsd-typography-generic-font-family);font-size:var(--lsd-h4-fontSize);font-weight:var(--lsd-h4-fontWeight);line-height:var(--lsd-h4-lineHeight)}.mdx-ns__inner form{margin-top:40px}.mdx-ns__inner .mdx-ns__inputs{flex-direction:column;gap:24px}.mdx-ns__inner .mdx-ns__inputs>*{width:100%}.mdx-ns__inner .mdx-ns__submit-button{margin-top:24px}.mdx-profile-card{flex:0 0 var(--mobile-width);height:var(--mobile-height);scroll-snap-align:start!important;width:var(--mobile-width)}.mdx-profile-card__profile{gap:16px}.mdx-profile-card__name{font-family:var(--lsd-typography-generic-font-family)!important;font-size:var(--lsd-h5-fontSize)!important;font-weight:var(--lsd-h5-fontWeight)!important;line-height:var(--lsd-h5-lineHeight)!important}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media (max-width:575px){:root{--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-button-size-multiplier:1.25;--ifm-button-padding-horizontal:calc(var(--ifm-button-size-multiplier)*var(--ifm-spacing-horizontal));--ifm-button-padding-vertical:calc(var(--ifm-button-size-multiplier)*var(--ifm-spacing-vertical));--ifm-alert-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-alert-padding-vertical:calc(var(--ifm-spacing-vertical)*2)}.markdown>h2{--ifm-h2-font-size:1.75rem}.markdown h4{--ifm-h4-font-size:1.25rem!important}.footer>div{display:flex!important;flex-direction:column;gap:72px!important}.footer__links{display:flex!important;flex-direction:column!important;gap:24px!important}.col.footer__col{margin-bottom:0!important}.navbar__left{display:flex}.footer{--ifm-footer-padding-horizontal:0}.firstRow_ar1q{padding-inline:var(--content-padding)!important}.secondRow__ww3{margin-inline:var(--content-padding)!important}}@media (max-width:574px){.mdx-ghc__issue-content-grid{grid-template-columns:82px 1fr}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_LDrR,.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/17896441.4a03675f.js b/assets/js/17896441.4a03675f.js new file mode 100644 index 00000000..0d1d7441 --- /dev/null +++ b/assets/js/17896441.4a03675f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[918],{78072:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BreadcrumbsBase=void 0;const l=a(97582),n=a(31665),o=l.__importDefault(a(39960)),r=a(80143),d=a(82818),s=a(53458),i=a(95999),u=l.__importDefault(a(86010)),c=l.__importDefault(a(67294)),m=l.__importDefault(a(37921));function f(e){let{children:t,href:a,isLast:l}=e;const r="breadcrumbs__link";return l?c.default.createElement(n.Typography,{variant:"body3",component:"span",className:r,itemProp:"name"},t):a?c.default.createElement(o.default,{className:r,href:a,itemProp:"item"},c.default.createElement(n.Typography,{variant:"body3",component:"span",itemProp:"name"},t)):c.default.createElement(n.Typography,{variant:"body3",component:"span",className:r},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:n}=e;return c.default.createElement("li",{...n&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.default)("breadcrumbs__item",{"breadcrumbs__item--active":a})},t,c.default.createElement("meta",{itemProp:"position",content:String(l+1)}))}t.BreadcrumbsBase=e=>{let{homePage:t,homePageLink:a,breadcrumbs:l}=e;if(!l)return null;const r=["events"];return c.default.createElement("nav",{className:(0,u.default)(d.ThemeClassNames.docs.docBreadcrumbs,m.default.breadcrumbsContainer),"aria-label":(0,i.translate)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},c.default.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},!!t&&c.default.createElement(o.default,{to:a,className:(0,u.default)("breadcrumbs__item")},c.default.createElement(n.Typography,{variant:"body3",component:"span"},t)),l.map(((e,t)=>{const a=t===l.length-1,n=r.includes(e.label);return c.default.createElement(p,{key:t,active:a,index:t,addMicrodata:!!e.href},n?c.default.createElement(o.default,{to:`/${e.label}`},c.default.createElement(f,{href:e.href,isLast:a},e.label)):c.default.createElement(f,{href:e.href,isLast:a},e.label))}))))},t.default=function(){const e=(0,s.useSidebarBreadcrumbs)(),a=(0,s.useHomePageRoute)(),l=(0,r.useActivePlugin)();if(!e)return null;const n=l?.pluginData.path;return c.default.createElement(t.BreadcrumbsBase,{homePage:a&&(0,i.translate)({id:"theme.docs.breadcrumbs.homePageLabel",message:"Home"}),breadcrumbs:e,homePageLink:n})}},28599:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=a(82818),d=a(53458),s=l.__importDefault(a(82681)),i=l.__importDefault(a(4204));t.default=function(e){let{children:t}=e;const a=function(){const{metadata:e,frontMatter:t,contentTitle:a}=(0,d.useDoc)();return t.hide_title||void 0!==a?null:e.title}();return n.default.createElement("div",{className:(0,o.default)(r.ThemeClassNames.docs.docMarkdown,"markdown")},a&&n.default.createElement("header",null,n.default.createElement(i.default,{as:"h1"},a)),n.default.createElement(s.default,null,t))}},27507:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useDocTOC=void 0;const l=a(97582),n=a(82818),o=a(53458),r=l.__importDefault(a(78072)),d=l.__importDefault(a(28599)),s=l.__importDefault(a(47211)),i=l.__importDefault(a(42768)),u=l.__importDefault(a(55938)),c=l.__importDefault(a(90114)),m=l.__importDefault(a(38963)),f=l.__importDefault(a(23120)),p=l.__importDefault(a(86010)),_=l.__importDefault(a(67294)),b=a(89164),g=a(75846),v=l.__importDefault(a(22221));function h(){const{frontMatter:e,toc:t}=(0,o.useDoc)(),a=(0,n.useWindowSize)(),l=(0,b.useMedia)("(min-width: 1200px)"),r=e.hide_table_of_contents,d=!r&&t.length>0;return{hidden:r,mobile:d?_.default.createElement("div",{className:v.default.tocMobile},_.default.createElement(c.default,null)):void 0,desktop:d&&(l||"ssr"===a)?_.default.createElement(u.default,null):void 0}}t.useDocTOC=h,t.default=function(e){let{children:t}=e;const a=h();return _.default.createElement("div",{className:(0,p.default)("row",v.default.docItemGrid)},_.default.createElement("div",{className:(0,p.default)(v.default.docItemCol)},_.default.createElement(f.default,null),_.default.createElement("div",{className:v.default.docItemContainer},_.default.createElement("article",null,_.default.createElement(r.default,null),_.default.createElement(m.default,null),_.default.createElement(g.MDXEnhancementContext.Provider,{value:{items:[{component:"heading",position:"after",render:e=>"h1"===e.as&&a.mobile}]}},_.default.createElement(d.default,null,t)),_.default.createElement(s.default,null)),_.default.createElement(i.default,null))),_.default.createElement("div",{className:v.default.gap1}),a.desktop&&_.default.createElement("div",{className:(0,p.default)(v.default.toc)},a.desktop))}},18652:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=l.__importDefault(a(67294)),o=a(82818),r=a(53458),d=l.__importDefault(a(21602)),s=l.__importDefault(a(27507));t.default=function(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,a=e.content;return n.default.createElement(r.DocProvider,{content:e.content},n.default.createElement(o.HtmlClassNameProvider,{className:t},n.default.createElement(d.default,null),n.default.createElement(s.default,null,n.default.createElement(a,null))))}},38963:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=l.__importDefault(a(95999)),d=a(82818),s=a(53458),i=l.__importDefault(a(22420)),u=a(31665);t.default=function(e){let{className:t}=e;const a=(0,s.useDocsVersion)();return a.badge?n.default.createElement("span",{className:(0,o.default)(t,d.ThemeClassNames.docs.docVersionBadge,"badge badge--secondary",i.default.badge)},n.default.createElement(u.Typography,{variant:"body3"},n.default.createElement(r.default,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}"))):null}},36262:(e,t,a)=>{const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(95999)),r=a(82818),d=a(78870),s=a(31665);t.Z=function(e){let{editUrl:t}=e;return n.default.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:r.ThemeClassNames.common.editThisPage},n.default.createElement(d.IconEdit,null),n.default.createElement(s.Typography,{variant:"body2"},n.default.createElement(o.default,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page")))}},28162:(e,t,a)=>{const l=a(97582),n=a(31665),o=l.__importDefault(a(39960)),r=a(78870),d=l.__importDefault(a(86010)),s=l.__importDefault(a(67294));t.Z=function(e){const{permalink:t,title:a,subLabel:l,isNext:i}=e;return s.default.createElement(o.default,{className:(0,d.default)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},i?null:s.default.createElement(r.IconArrowLeft,null),s.default.createElement(n.Typography,{variant:"body2",className:"pagination-nav__label"},a),i?s.default.createElement(r.IconArrowRight,null):null)}},4594:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=a(31665),o=l.__importDefault(a(95999)),r=l.__importDefault(a(86010)),d=l.__importDefault(a(67294)),s=l.__importDefault(a(47834));t.default=function(e){let{collapsed:t,...a}=e;return d.default.createElement("button",{type:"button",...a,className:(0,r.default)("clean-btn",s.default.tocCollapsibleButton,!t&&s.default.tocCollapsibleButtonExpanded,a.className)},d.default.createElement("div",null),d.default.createElement(n.Typography,{variant:"body2"},d.default.createElement(o.default,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page")),t?d.default.createElement(n.ChevronDownIcon,null):d.default.createElement(n.ChevronUpIcon,null))}},34925:(e,t,a)=>{const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=a(82818),d=l.__importDefault(a(38011)),s=l.__importDefault(a(4594)),i=l.__importDefault(a(2530));t.Z=function(e){let{toc:t,className:a,minHeadingLevel:l,maxHeadingLevel:u}=e;const{collapsed:c,toggleCollapsed:m}=(0,r.useCollapsible)({initialState:!0});return n.default.createElement("div",{className:(0,o.default)(i.default.tocCollapsible,!c&&i.default.tocCollapsibleExpanded,a)},n.default.createElement(s.default,{collapsed:c,onClick:m}),n.default.createElement(r.Collapsible,{lazy:!0,className:i.default.tocCollapsibleContent,collapsed:c},n.default.createElement(d.default,{toc:t,minHeadingLevel:l,maxHeadingLevel:u})))}},64410:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=l.__importDefault(a(39960)),d=l.__importDefault(a(65507)),s=a(31665);t.default=function(e){let{permalink:t,label:a,count:l}=e;return n.default.createElement(r.default,{href:t,className:(0,o.default)(l?d.default.tagWithCount:d.default.tagRegular)},n.default.createElement(s.Tag,{disabled:!1,size:"small"},a,l&&n.default.createElement("span",null,l)))}},51383:(e,t,a)=>{const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=l.__importDefault(a(95999)),d=l.__importDefault(a(64410)),s=l.__importDefault(a(53867)),i=a(31665);t.Z=function(e){let{tags:t}=e;return n.default.createElement("div",{className:s.default.root},n.default.createElement(i.Typography,{variant:"body2",component:"div"},n.default.createElement(r.default,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),n.default.createElement("ul",{className:(0,o.default)(s.default.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:a}=e;return n.default.createElement("li",{key:a,className:s.default.tag},n.default.createElement(d.default,{label:t,permalink:a}))}))))}},47211:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});var l=a(67294),n=a(86010),o=a(35281),r=a(65130),d=a(95999);function s(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a}=e;return l.createElement(d.default,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:l.createElement("b",null,l.createElement("time",{dateTime:new Date(1e3*t).toISOString()},a))}}," on {date}")}function i(e){let{lastUpdatedBy:t}=e;return l.createElement(d.default,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:l.createElement("b",null,t)}}," by {user}")}function u(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a,lastUpdatedBy:n}=e;return l.createElement("span",{className:o.k.common.lastUpdated},l.createElement(d.default,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&a?l.createElement(s,{lastUpdatedAt:t,formattedLastUpdatedAt:a}):"",byUser:n?l.createElement(i,{lastUpdatedBy:n}):""}},"Last updated{atDate}{byUser}"),!1)}var c=a(36262),m=a(51383);const f={lastUpdated:"lastUpdated_vwxv"};function p(e){return l.createElement("div",{className:(0,n.default)(o.k.docs.docFooterTagsRow,"row margin-bottom--sm")},l.createElement("div",{className:"col"},l.createElement(m.Z,e)))}function _(e){let{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:r,formattedLastUpdatedAt:d}=e;return l.createElement("div",{className:(0,n.default)(o.k.docs.docFooterEditMetaRow,"row")},l.createElement("div",{className:"col"},t&&l.createElement(c.Z,{editUrl:t})),l.createElement("div",{className:(0,n.default)("col",f.lastUpdated)},(a||r)&&l.createElement(u,{lastUpdatedAt:a,formattedLastUpdatedAt:d,lastUpdatedBy:r})))}function b(){const{metadata:e}=(0,r.k)(),{editUrl:t,lastUpdatedAt:a,formattedLastUpdatedAt:d,lastUpdatedBy:s,tags:i}=e,u=i.length>0,c=!!(t||a||s);return u||c?l.createElement("footer",{className:(0,n.default)(o.k.docs.docFooter,"docusaurus-mt-lg")},u&&l.createElement(p,{tags:i}),c&&l.createElement(_,{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:s,formattedLastUpdatedAt:d})):null}},21602:(e,t,a)=>{a.r(t),a.d(t,{default:()=>r});var l=a(67294),n=a(10833),o=a(65130);function r(){const{metadata:e,frontMatter:t,assets:a}=(0,o.k)();return l.createElement(n.d,{title:e.title,description:e.description,keywords:t.keywords,image:a.image??t.image})}},42768:(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var l=a(67294),n=a(65130),o=a(87462),r=a(95999),d=a(28162);function s(e){const{previous:t,next:a}=e;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.translate)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&l.createElement(d.Z,(0,o.Z)({},t,{subLabel:l.createElement(r.default,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&l.createElement(d.Z,(0,o.Z)({},a,{subLabel:l.createElement(r.default,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function i(){const{metadata:e}=(0,n.k)();return l.createElement(s,{previous:e.previous,next:e.next})}},55938:(e,t,a)=>{a.r(t),a.d(t,{default:()=>d});var l=a(67294),n=a(35281),o=a(65130),r=a(39407);function d(){const{toc:e,frontMatter:t}=(0,o.k)();return l.createElement(r.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:n.k.docs.docTocDesktop})}},90114:(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var l=a(67294),n=a(86010),o=a(35281),r=a(65130),d=a(34925);const s={tocMobile:"tocMobile_ITEo"};function i(){const{toc:e,frontMatter:t}=(0,r.k)();return l.createElement(d.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,n.default)(o.k.docs.docTocMobile,s.tocMobile)})}},23120:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});var l=a(67294),n=a(86010),o=a(52263),r=a(39960),d=a(95999),s=a(80143),i=a(35281),u=a(60373),c=a(74477);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return l.createElement(d.default,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:l.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return l.createElement(d.default,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:l.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function f(e){const t=m[e.versionMetadata.banner];return l.createElement(t,e)}function p(e){let{versionLabel:t,to:a,onClick:n}=e;return l.createElement(d.default,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:l.createElement("b",null,l.createElement(r.default,{to:a,onClick:n},l.createElement(d.default,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function _(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:r}}=(0,o.default)(),{pluginId:d}=(0,s.useActivePlugin)({failfast:!0}),{savePreferredVersionName:c}=(0,u.J)(d),{latestDocSuggestion:m,latestVersionSuggestion:_}=(0,s.useDocVersionSuggestions)(d),b=m??(g=_).docs.find((e=>e.id===g.mainDocId));var g;return l.createElement("div",{className:(0,n.default)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},l.createElement("div",null,l.createElement(f,{siteTitle:r,versionMetadata:a})),l.createElement("div",{className:"margin-top--md"},l.createElement(p,{versionLabel:_.label,to:b.path,onClick:()=>c(_.name)})))}function b(e){let{className:t}=e;const a=(0,c.E)();return a.banner?l.createElement(_,{className:t,versionMetadata:a}):null}},22221:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={docItemContainer:"docItemContainer_hrrU",docItemGrid:"docItemGrid_SzoZ",gap1:"gap1_XuuQ",toc:"toc_pP_5",tocMobile:"tocMobile_imaF",docItemCol:"docItemCol_F52z"}},22420:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={badge:"badge_AsjZ"}},37921:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={breadcrumbsContainer:"breadcrumbsContainer_RLvU"}},47834:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={tocCollapsibleButton:"tocCollapsibleButton_dxRj",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_TSyC"}},2530:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={tocCollapsible:"tocCollapsible_ROek",tocCollapsibleContent:"tocCollapsibleContent_Qsjj",tocCollapsibleExpanded:"tocCollapsibleExpanded_zTjk"}},65507:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={tag:"tag_dtsN",tagRegular:"tagRegular_SGIC",tagWithCount:"tagWithCount_gIvh"}},53867:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={root:"root_UH70",tags:"tags_LT8x",tag:"tag_NdBD"}}}]); \ No newline at end of file diff --git a/assets/js/17896441.64634230.js b/assets/js/17896441.64634230.js deleted file mode 100644 index c05f73ce..00000000 --- a/assets/js/17896441.64634230.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[918],{78072:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BreadcrumbsBase=void 0;const l=a(97582),n=a(31665),o=l.__importDefault(a(39960)),r=a(80143),d=a(82818),s=a(53458),i=a(95999),u=l.__importDefault(a(86010)),c=l.__importDefault(a(67294)),m=l.__importDefault(a(37921));function f(e){let{children:t,href:a,isLast:l}=e;const r="breadcrumbs__link";return l?c.default.createElement(n.Typography,{variant:"body3",component:"span",className:r,itemProp:"name"},t):a?c.default.createElement(o.default,{className:r,href:a,itemProp:"item"},c.default.createElement(n.Typography,{variant:"body3",component:"span",itemProp:"name"},t)):c.default.createElement(n.Typography,{variant:"body3",component:"span",className:r},t)}function p(e){let{children:t,active:a,index:l,addMicrodata:n}=e;return c.default.createElement("li",{...n&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.default)("breadcrumbs__item",{"breadcrumbs__item--active":a})},t,c.default.createElement("meta",{itemProp:"position",content:String(l+1)}))}t.BreadcrumbsBase=e=>{let{homePage:t,homePageLink:a,breadcrumbs:l}=e;return l?c.default.createElement("nav",{className:(0,u.default)(d.ThemeClassNames.docs.docBreadcrumbs,m.default.breadcrumbsContainer),"aria-label":(0,i.translate)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},c.default.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},!!t&&c.default.createElement(o.default,{to:a,className:(0,u.default)("breadcrumbs__item")},c.default.createElement(n.Typography,{variant:"body3",component:"span"},t)),l.map(((e,t)=>{const a=t===l.length-1;return c.default.createElement(p,{key:t,active:a,index:t,addMicrodata:!!e.href},c.default.createElement(f,{href:e.href,isLast:a},e.label))})))):null},t.default=function(){const e=(0,s.useSidebarBreadcrumbs)(),a=(0,s.useHomePageRoute)(),l=(0,r.useActivePlugin)();if(!e)return null;const n=l?.pluginData.path;return c.default.createElement(t.BreadcrumbsBase,{homePage:a&&(0,i.translate)({id:"theme.docs.breadcrumbs.homePageLabel",message:"Home"}),breadcrumbs:e,homePageLink:n})}},28599:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=a(82818),d=a(53458),s=l.__importDefault(a(82681)),i=l.__importDefault(a(4204));t.default=function(e){let{children:t}=e;const a=function(){const{metadata:e,frontMatter:t,contentTitle:a}=(0,d.useDoc)();return t.hide_title||void 0!==a?null:e.title}();return n.default.createElement("div",{className:(0,o.default)(r.ThemeClassNames.docs.docMarkdown,"markdown")},a&&n.default.createElement("header",null,n.default.createElement(i.default,{as:"h1"},a)),n.default.createElement(s.default,null,t))}},27507:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useDocTOC=void 0;const l=a(97582),n=a(82818),o=a(53458),r=l.__importDefault(a(78072)),d=l.__importDefault(a(28599)),s=l.__importDefault(a(47211)),i=l.__importDefault(a(42768)),u=l.__importDefault(a(55938)),c=l.__importDefault(a(90114)),m=l.__importDefault(a(38963)),f=l.__importDefault(a(23120)),p=l.__importDefault(a(86010)),_=l.__importDefault(a(67294)),b=a(89164),g=a(75846),v=l.__importDefault(a(22221));function h(){const{frontMatter:e,toc:t}=(0,o.useDoc)(),a=(0,n.useWindowSize)(),l=(0,b.useMedia)("(min-width: 1200px)"),r=e.hide_table_of_contents,d=!r&&t.length>0;return{hidden:r,mobile:d?_.default.createElement("div",{className:v.default.tocMobile},_.default.createElement(c.default,null)):void 0,desktop:d&&(l||"ssr"===a)?_.default.createElement(u.default,null):void 0}}t.useDocTOC=h,t.default=function(e){let{children:t}=e;const a=h();return _.default.createElement("div",{className:(0,p.default)("row",v.default.docItemGrid)},_.default.createElement("div",{className:(0,p.default)(v.default.docItemCol)},_.default.createElement(f.default,null),_.default.createElement("div",{className:v.default.docItemContainer},_.default.createElement("article",null,_.default.createElement(r.default,null),_.default.createElement(m.default,null),_.default.createElement(g.MDXEnhancementContext.Provider,{value:{items:[{component:"heading",position:"after",render:e=>"h1"===e.as&&a.mobile}]}},_.default.createElement(d.default,null,t)),_.default.createElement(s.default,null)),_.default.createElement(i.default,null))),_.default.createElement("div",{className:v.default.gap1}),a.desktop&&_.default.createElement("div",{className:(0,p.default)(v.default.toc)},a.desktop))}},18652:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=l.__importDefault(a(67294)),o=a(82818),r=a(53458),d=l.__importDefault(a(21602)),s=l.__importDefault(a(27507));t.default=function(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,a=e.content;return n.default.createElement(r.DocProvider,{content:e.content},n.default.createElement(o.HtmlClassNameProvider,{className:t},n.default.createElement(d.default,null),n.default.createElement(s.default,null,n.default.createElement(a,null))))}},38963:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=l.__importDefault(a(95999)),d=a(82818),s=a(53458),i=l.__importDefault(a(22420)),u=a(31665);t.default=function(e){let{className:t}=e;const a=(0,s.useDocsVersion)();return a.badge?n.default.createElement("span",{className:(0,o.default)(t,d.ThemeClassNames.docs.docVersionBadge,"badge badge--secondary",i.default.badge)},n.default.createElement(u.Typography,{variant:"body3"},n.default.createElement(r.default,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}"))):null}},36262:(e,t,a)=>{const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(95999)),r=a(82818),d=a(78870),s=a(31665);t.Z=function(e){let{editUrl:t}=e;return n.default.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:r.ThemeClassNames.common.editThisPage},n.default.createElement(d.IconEdit,null),n.default.createElement(s.Typography,{variant:"body2"},n.default.createElement(o.default,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page")))}},28162:(e,t,a)=>{const l=a(97582),n=a(31665),o=l.__importDefault(a(39960)),r=a(78870),d=l.__importDefault(a(86010)),s=l.__importDefault(a(67294));t.Z=function(e){const{permalink:t,title:a,subLabel:l,isNext:i}=e;return s.default.createElement(o.default,{className:(0,d.default)("pagination-nav__link",i?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},i?null:s.default.createElement(r.IconArrowLeft,null),s.default.createElement(n.Typography,{variant:"body2",className:"pagination-nav__label"},a),i?s.default.createElement(r.IconArrowRight,null):null)}},4594:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=a(31665),o=l.__importDefault(a(95999)),r=l.__importDefault(a(86010)),d=l.__importDefault(a(67294)),s=l.__importDefault(a(47834));t.default=function(e){let{collapsed:t,...a}=e;return d.default.createElement("button",{type:"button",...a,className:(0,r.default)("clean-btn",s.default.tocCollapsibleButton,!t&&s.default.tocCollapsibleButtonExpanded,a.className)},d.default.createElement("div",null),d.default.createElement(n.Typography,{variant:"body2"},d.default.createElement(o.default,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page")),t?d.default.createElement(n.ChevronDownIcon,null):d.default.createElement(n.ChevronUpIcon,null))}},34925:(e,t,a)=>{const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=a(82818),d=l.__importDefault(a(38011)),s=l.__importDefault(a(4594)),i=l.__importDefault(a(2530));t.Z=function(e){let{toc:t,className:a,minHeadingLevel:l,maxHeadingLevel:u}=e;const{collapsed:c,toggleCollapsed:m}=(0,r.useCollapsible)({initialState:!0});return n.default.createElement("div",{className:(0,o.default)(i.default.tocCollapsible,!c&&i.default.tocCollapsibleExpanded,a)},n.default.createElement(s.default,{collapsed:c,onClick:m}),n.default.createElement(r.Collapsible,{lazy:!0,className:i.default.tocCollapsibleContent,collapsed:c},n.default.createElement(d.default,{toc:t,minHeadingLevel:l,maxHeadingLevel:u})))}},64410:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=l.__importDefault(a(39960)),d=l.__importDefault(a(65507)),s=a(31665);t.default=function(e){let{permalink:t,label:a,count:l}=e;return n.default.createElement(r.default,{href:t,className:(0,o.default)(l?d.default.tagWithCount:d.default.tagRegular)},n.default.createElement(s.Tag,{disabled:!1,size:"small"},a,l&&n.default.createElement("span",null,l)))}},51383:(e,t,a)=>{const l=a(97582),n=l.__importDefault(a(67294)),o=l.__importDefault(a(86010)),r=l.__importDefault(a(95999)),d=l.__importDefault(a(64410)),s=l.__importDefault(a(53867)),i=a(31665);t.Z=function(e){let{tags:t}=e;return n.default.createElement("div",{className:s.default.root},n.default.createElement(i.Typography,{variant:"body2",component:"div"},n.default.createElement(r.default,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),n.default.createElement("ul",{className:(0,o.default)(s.default.tags,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:a}=e;return n.default.createElement("li",{key:a,className:s.default.tag},n.default.createElement(d.default,{label:t,permalink:a}))}))))}},47211:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});var l=a(67294),n=a(86010),o=a(35281),r=a(65130),d=a(95999);function s(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a}=e;return l.createElement(d.default,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:l.createElement("b",null,l.createElement("time",{dateTime:new Date(1e3*t).toISOString()},a))}}," on {date}")}function i(e){let{lastUpdatedBy:t}=e;return l.createElement(d.default,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:l.createElement("b",null,t)}}," by {user}")}function u(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:a,lastUpdatedBy:n}=e;return l.createElement("span",{className:o.k.common.lastUpdated},l.createElement(d.default,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&a?l.createElement(s,{lastUpdatedAt:t,formattedLastUpdatedAt:a}):"",byUser:n?l.createElement(i,{lastUpdatedBy:n}):""}},"Last updated{atDate}{byUser}"),!1)}var c=a(36262),m=a(51383);const f={lastUpdated:"lastUpdated_vwxv"};function p(e){return l.createElement("div",{className:(0,n.default)(o.k.docs.docFooterTagsRow,"row margin-bottom--sm")},l.createElement("div",{className:"col"},l.createElement(m.Z,e)))}function _(e){let{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:r,formattedLastUpdatedAt:d}=e;return l.createElement("div",{className:(0,n.default)(o.k.docs.docFooterEditMetaRow,"row")},l.createElement("div",{className:"col"},t&&l.createElement(c.Z,{editUrl:t})),l.createElement("div",{className:(0,n.default)("col",f.lastUpdated)},(a||r)&&l.createElement(u,{lastUpdatedAt:a,formattedLastUpdatedAt:d,lastUpdatedBy:r})))}function b(){const{metadata:e}=(0,r.k)(),{editUrl:t,lastUpdatedAt:a,formattedLastUpdatedAt:d,lastUpdatedBy:s,tags:i}=e,u=i.length>0,c=!!(t||a||s);return u||c?l.createElement("footer",{className:(0,n.default)(o.k.docs.docFooter,"docusaurus-mt-lg")},u&&l.createElement(p,{tags:i}),c&&l.createElement(_,{editUrl:t,lastUpdatedAt:a,lastUpdatedBy:s,formattedLastUpdatedAt:d})):null}},21602:(e,t,a)=>{a.r(t),a.d(t,{default:()=>r});var l=a(67294),n=a(10833),o=a(65130);function r(){const{metadata:e,frontMatter:t,assets:a}=(0,o.k)();return l.createElement(n.d,{title:e.title,description:e.description,keywords:t.keywords,image:a.image??t.image})}},42768:(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var l=a(67294),n=a(65130),o=a(87462),r=a(95999),d=a(28162);function s(e){const{previous:t,next:a}=e;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.translate)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"})},t&&l.createElement(d.Z,(0,o.Z)({},t,{subLabel:l.createElement(r.default,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&l.createElement(d.Z,(0,o.Z)({},a,{subLabel:l.createElement(r.default,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}function i(){const{metadata:e}=(0,n.k)();return l.createElement(s,{previous:e.previous,next:e.next})}},55938:(e,t,a)=>{a.r(t),a.d(t,{default:()=>d});var l=a(67294),n=a(35281),o=a(65130),r=a(39407);function d(){const{toc:e,frontMatter:t}=(0,o.k)();return l.createElement(r.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:n.k.docs.docTocDesktop})}},90114:(e,t,a)=>{a.r(t),a.d(t,{default:()=>i});var l=a(67294),n=a(86010),o=a(35281),r=a(65130),d=a(34925);const s={tocMobile:"tocMobile_ITEo"};function i(){const{toc:e,frontMatter:t}=(0,r.k)();return l.createElement(d.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,n.default)(o.k.docs.docTocMobile,s.tocMobile)})}},23120:(e,t,a)=>{a.r(t),a.d(t,{default:()=>b});var l=a(67294),n=a(86010),o=a(52263),r=a(39960),d=a(95999),s=a(80143),i=a(35281),u=a(60373),c=a(74477);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return l.createElement(d.default,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:l.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return l.createElement(d.default,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:l.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function f(e){const t=m[e.versionMetadata.banner];return l.createElement(t,e)}function p(e){let{versionLabel:t,to:a,onClick:n}=e;return l.createElement(d.default,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:l.createElement("b",null,l.createElement(r.default,{to:a,onClick:n},l.createElement(d.default,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function _(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:r}}=(0,o.default)(),{pluginId:d}=(0,s.useActivePlugin)({failfast:!0}),{savePreferredVersionName:c}=(0,u.J)(d),{latestDocSuggestion:m,latestVersionSuggestion:_}=(0,s.useDocVersionSuggestions)(d),b=m??(g=_).docs.find((e=>e.id===g.mainDocId));var g;return l.createElement("div",{className:(0,n.default)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},l.createElement("div",null,l.createElement(f,{siteTitle:r,versionMetadata:a})),l.createElement("div",{className:"margin-top--md"},l.createElement(p,{versionLabel:_.label,to:b.path,onClick:()=>c(_.name)})))}function b(e){let{className:t}=e;const a=(0,c.E)();return a.banner?l.createElement(_,{className:t,versionMetadata:a}):null}},22221:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={docItemContainer:"docItemContainer_hrrU",docItemGrid:"docItemGrid_SzoZ",gap1:"gap1_XuuQ",toc:"toc_pP_5",tocMobile:"tocMobile_imaF",docItemCol:"docItemCol_F52z"}},22420:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={badge:"badge_AsjZ"}},37921:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={breadcrumbsContainer:"breadcrumbsContainer_RLvU"}},47834:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={tocCollapsibleButton:"tocCollapsibleButton_dxRj",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_TSyC"}},2530:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={tocCollapsible:"tocCollapsible_ROek",tocCollapsibleContent:"tocCollapsibleContent_Qsjj",tocCollapsibleExpanded:"tocCollapsibleExpanded_zTjk"}},65507:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={tag:"tag_dtsN",tagRegular:"tagRegular_SGIC",tagWithCount:"tagWithCount_gIvh"}},53867:(e,t,a)=>{a.r(t),a.d(t,{default:()=>l});const l={root:"root_UH70",tags:"tags_LT8x",tag:"tag_NdBD"}}}]); \ No newline at end of file diff --git a/assets/js/4c51782d.191c7351.js b/assets/js/4c51782d.191c7351.js new file mode 100644 index 00000000..4a859b9d --- /dev/null +++ b/assets/js/4c51782d.191c7351.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[767],{53958:(e,n,i)=>{var t=i(83639);i.o(t,"Box")&&i.d(n,{Box:function(){return t.Box}}),i.o(t,"CallToActionButton")&&i.d(n,{CallToActionButton:function(){return t.CallToActionButton}}),i.o(t,"CallToActionSection")&&i.d(n,{CallToActionSection:function(){return t.CallToActionSection}}),i.o(t,"EventAbout")&&i.d(n,{EventAbout:function(){return t.EventAbout}}),i.o(t,"EventBanner")&&i.d(n,{EventBanner:function(){return t.EventBanner}}),i.o(t,"EventCTASection")&&i.d(n,{EventCTASection:function(){return t.EventCTASection}}),i.o(t,"EventCardList")&&i.d(n,{EventCardList:function(){return t.EventCardList}}),i.o(t,"EventHeader")&&i.d(n,{EventHeader:function(){return t.EventHeader}}),i.o(t,"EventInfo")&&i.d(n,{EventInfo:function(){return t.EventInfo}}),i.o(t,"EventProfileList")&&i.d(n,{EventProfileList:function(){return t.EventProfileList}}),i.o(t,"FeatureList")&&i.d(n,{FeatureList:function(){return t.FeatureList}}),i.o(t,"Grid")&&i.d(n,{Grid:function(){return t.Grid}}),i.o(t,"Hero")&&i.d(n,{Hero:function(){return t.Hero}}),i.o(t,"HeroAction")&&i.d(n,{HeroAction:function(){return t.HeroAction}}),i.o(t,"HeroActions")&&i.d(n,{HeroActions:function(){return t.HeroActions}}),i.o(t,"HeroDescription")&&i.d(n,{HeroDescription:function(){return t.HeroDescription}}),i.o(t,"HeroInfo")&&i.d(n,{HeroInfo:function(){return t.HeroInfo}}),i.o(t,"HeroTitle")&&i.d(n,{HeroTitle:function(){return t.HeroTitle}}),i.o(t,"HeroVideo")&&i.d(n,{HeroVideo:function(){return t.HeroVideo}}),i.o(t,"JobsPerDepartment")&&i.d(n,{JobsPerDepartment:function(){return t.JobsPerDepartment}}),i.o(t,"NewsletterSubscription")&&i.d(n,{NewsletterSubscription:function(){return t.NewsletterSubscription}}),i.o(t,"Roadmap")&&i.d(n,{Roadmap:function(){return t.Roadmap}}),i.o(t,"ShowcaseCard")&&i.d(n,{ShowcaseCard:function(){return t.ShowcaseCard}}),i.o(t,"SocialCard")&&i.d(n,{SocialCard:function(){return t.SocialCard}})},90584:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>b,frontMatter:()=>s,metadata:()=>u,toc:()=>_});var t=i(87462),o=(i(67294),i(3905));const d=JSON.parse('{"departments":[{"id":87842,"name":"App","parent_id":43806,"child_ids":[87847,87852,87850,87848,45530,87849],"jobs":[]},{"id":54504,"name":"Brand Design Studio","parent_id":null,"child_ids":[],"jobs":[]},{"id":45532,"name":"Business Development","parent_id":null,"child_ids":[],"jobs":[]},{"id":87841,"name":"Codex","parent_id":43806,"child_ids":[],"jobs":[]},{"id":84549,"name":"Communications","parent_id":null,"child_ids":[],"jobs":[]},{"id":45531,"name":"Design","parent_id":null,"child_ids":[],"jobs":[]},{"id":87847,"name":"Desktop","parent_id":87842,"child_ids":[],"jobs":[]},{"id":87852,"name":"Documentation","parent_id":87842,"child_ids":[],"jobs":[]},{"id":45547,"name":"Engineering ","parent_id":null,"child_ids":[],"jobs":[]},{"id":49925,"name":"Finance","parent_id":87845,"child_ids":[],"jobs":[]},{"id":87854,"name":"Infrastructure","parent_id":43806,"child_ids":[],"jobs":[]},{"id":87853,"name":"Insights","parent_id":87845,"child_ids":[],"jobs":[]},{"id":87850,"name":"Keycard","parent_id":87842,"child_ids":[],"jobs":[]},{"id":145838,"name":"Leadership","parent_id":null,"child_ids":[],"jobs":[]},{"id":74156,"name":"Legal","parent_id":87845,"child_ids":[],"jobs":[]},{"id":91698,"name":"Logos","parent_id":null,"child_ids":[],"jobs":[]},{"id":43807,"name":"Marketing","parent_id":null,"child_ids":[],"jobs":[]},{"id":87848,"name":"Mobile","parent_id":87842,"child_ids":[],"jobs":[]},{"id":87843,"name":"Nimbus","parent_id":43806,"child_ids":[],"jobs":[]},{"id":144866,"name":"Nomos","parent_id":43806,"child_ids":[],"jobs":[]},{"id":45548,"name":"People Operations","parent_id":87845,"child_ids":[],"jobs":[]},{"id":45530,"name":"Product Design","parent_id":87842,"child_ids":[],"jobs":[]},{"id":90941,"name":"Program Management","parent_id":null,"child_ids":[],"jobs":[]},{"id":43806,"name":"Research & Development","parent_id":null,"child_ids":[87842,87841,87854,87843,144866,87846,87981,87847,87852,87850,87848,45530,87849],"jobs":[]},{"id":87851,"name":"Security","parent_id":87845,"child_ids":[],"jobs":[]},{"id":87845,"name":"Services","parent_id":null,"child_ids":[49925,87853,74156,45548,87851],"jobs":[]},{"id":91697,"name":"Status App ","parent_id":null,"child_ids":[],"jobs":[]},{"id":54783,"name":"Technical Writing ","parent_id":null,"child_ids":[],"jobs":[]},{"id":87846,"name":"Vac","parent_id":43806,"child_ids":[],"jobs":[]},{"id":87981,"name":"Waku","parent_id":43806,"child_ids":[],"jobs":[{"absolute_url":"https://boards.greenhouse.io/waku/jobs/5607301","data_compliance":[{"type":"gdpr","requires_consent":false,"requires_processing_consent":false,"requires_retention_consent":false,"retention_period":null}],"internal_job_id":2756104,"location":{"name":"Remote (Worldwide)"},"metadata":null,"id":5607301,"updated_at":"2024-01-26T04:38:24-05:00","requisition_id":"BACK-1397","title":"Software Engineer (Waku Chat SDK)"}]},{"id":87849,"name":"Web","parent_id":87842,"child_ids":[],"jobs":[]},{"id":0,"name":"No Department","parent_id":null,"child_ids":[],"jobs":[]}]}');var r=i.t(d,2),a=i(53958);const s={title:"Join Us",hide_title:!0,pagination_prev:null,pagination_next:null,displayed_sidebar:null,hide_table_of_contents:!0},l=void 0,u={unversionedId:"join-us",id:"join-us",title:"Join Us",description:"",source:"@site/root-pages/join-us.mdx",sourceDirName:".",slug:"/join-us",permalink:"/join-us",draft:!1,tags:[],version:"current",frontMatter:{title:"Join Us",hide_title:!0,pagination_prev:null,pagination_next:null,displayed_sidebar:null,hide_table_of_contents:!0}},c={},_=[],p={toc:_},m="wrapper";function b(e){let{components:n,...i}=e;return(0,o.kt)(m,(0,t.Z)({},p,i,{components:n,mdxType:"MDXLayout"}),(0,o.kt)(a.JobsPerDepartment,{jobData:r,mdxType:"JobsPerDepartment"}))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4c51782d.aa1fabfb.js b/assets/js/4c51782d.aa1fabfb.js deleted file mode 100644 index 3468d848..00000000 --- a/assets/js/4c51782d.aa1fabfb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[767],{53958:(e,i,n)=>{var t=n(83639);n.o(t,"Box")&&n.d(i,{Box:function(){return t.Box}}),n.o(t,"CallToActionButton")&&n.d(i,{CallToActionButton:function(){return t.CallToActionButton}}),n.o(t,"CallToActionSection")&&n.d(i,{CallToActionSection:function(){return t.CallToActionSection}}),n.o(t,"FeatureList")&&n.d(i,{FeatureList:function(){return t.FeatureList}}),n.o(t,"Grid")&&n.d(i,{Grid:function(){return t.Grid}}),n.o(t,"Hero")&&n.d(i,{Hero:function(){return t.Hero}}),n.o(t,"HeroAction")&&n.d(i,{HeroAction:function(){return t.HeroAction}}),n.o(t,"HeroActions")&&n.d(i,{HeroActions:function(){return t.HeroActions}}),n.o(t,"HeroDescription")&&n.d(i,{HeroDescription:function(){return t.HeroDescription}}),n.o(t,"HeroInfo")&&n.d(i,{HeroInfo:function(){return t.HeroInfo}}),n.o(t,"HeroTitle")&&n.d(i,{HeroTitle:function(){return t.HeroTitle}}),n.o(t,"HeroVideo")&&n.d(i,{HeroVideo:function(){return t.HeroVideo}}),n.o(t,"JobsPerDepartment")&&n.d(i,{JobsPerDepartment:function(){return t.JobsPerDepartment}}),n.o(t,"NewsletterSubscription")&&n.d(i,{NewsletterSubscription:function(){return t.NewsletterSubscription}}),n.o(t,"Roadmap")&&n.d(i,{Roadmap:function(){return t.Roadmap}}),n.o(t,"ShowcaseCard")&&n.d(i,{ShowcaseCard:function(){return t.ShowcaseCard}}),n.o(t,"SocialCard")&&n.d(i,{SocialCard:function(){return t.SocialCard}})},90584:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>u,contentTitle:()=>l,default:()=>b,frontMatter:()=>s,metadata:()=>c,toc:()=>_});var t=n(87462),o=(n(67294),n(3905));const d=JSON.parse('{"departments":[{"id":87842,"name":"App","parent_id":43806,"child_ids":[87847,87852,87850,87848,45530,87849],"jobs":[]},{"id":54504,"name":"Brand Design Studio","parent_id":null,"child_ids":[],"jobs":[]},{"id":45532,"name":"Business Development","parent_id":null,"child_ids":[],"jobs":[]},{"id":87841,"name":"Codex","parent_id":43806,"child_ids":[],"jobs":[]},{"id":84549,"name":"Communications","parent_id":null,"child_ids":[],"jobs":[]},{"id":45531,"name":"Design","parent_id":null,"child_ids":[],"jobs":[]},{"id":87847,"name":"Desktop","parent_id":87842,"child_ids":[],"jobs":[]},{"id":87852,"name":"Documentation","parent_id":87842,"child_ids":[],"jobs":[]},{"id":45547,"name":"Engineering ","parent_id":null,"child_ids":[],"jobs":[]},{"id":49925,"name":"Finance","parent_id":87845,"child_ids":[],"jobs":[]},{"id":87854,"name":"Infrastructure","parent_id":43806,"child_ids":[],"jobs":[]},{"id":87853,"name":"Insights","parent_id":87845,"child_ids":[],"jobs":[]},{"id":87850,"name":"Keycard","parent_id":87842,"child_ids":[],"jobs":[]},{"id":145838,"name":"Leadership","parent_id":null,"child_ids":[],"jobs":[]},{"id":74156,"name":"Legal","parent_id":87845,"child_ids":[],"jobs":[]},{"id":91698,"name":"Logos","parent_id":null,"child_ids":[],"jobs":[]},{"id":43807,"name":"Marketing","parent_id":null,"child_ids":[],"jobs":[]},{"id":87848,"name":"Mobile","parent_id":87842,"child_ids":[],"jobs":[]},{"id":87843,"name":"Nimbus","parent_id":43806,"child_ids":[],"jobs":[]},{"id":144866,"name":"Nomos","parent_id":43806,"child_ids":[],"jobs":[]},{"id":45548,"name":"People Operations","parent_id":87845,"child_ids":[],"jobs":[]},{"id":45530,"name":"Product Design","parent_id":87842,"child_ids":[],"jobs":[]},{"id":90941,"name":"Program Management","parent_id":null,"child_ids":[],"jobs":[]},{"id":43806,"name":"Research & Development","parent_id":null,"child_ids":[87842,87841,87854,87843,144866,87846,87981,87847,87852,87850,87848,45530,87849],"jobs":[]},{"id":87851,"name":"Security","parent_id":87845,"child_ids":[],"jobs":[]},{"id":87845,"name":"Services","parent_id":null,"child_ids":[49925,87853,74156,45548,87851],"jobs":[]},{"id":91697,"name":"Status App ","parent_id":null,"child_ids":[],"jobs":[]},{"id":54783,"name":"Technical Writing ","parent_id":null,"child_ids":[],"jobs":[]},{"id":87846,"name":"Vac","parent_id":43806,"child_ids":[],"jobs":[]},{"id":87981,"name":"Waku","parent_id":43806,"child_ids":[],"jobs":[{"absolute_url":"https://boards.greenhouse.io/waku/jobs/5607301","data_compliance":[{"type":"gdpr","requires_consent":false,"requires_processing_consent":false,"requires_retention_consent":false,"retention_period":null}],"internal_job_id":2756104,"location":{"name":"Remote (Worldwide)"},"metadata":null,"id":5607301,"updated_at":"2024-01-26T04:38:24-05:00","requisition_id":"BACK-1397","title":"Software Engineer (Waku Chat SDK)"}]},{"id":87849,"name":"Web","parent_id":87842,"child_ids":[],"jobs":[]},{"id":0,"name":"No Department","parent_id":null,"child_ids":[],"jobs":[]}]}');var r=n.t(d,2),a=n(53958);const s={title:"Join Us",hide_title:!0,pagination_prev:null,pagination_next:null,displayed_sidebar:null,hide_table_of_contents:!0},l=void 0,c={unversionedId:"join-us",id:"join-us",title:"Join Us",description:"",source:"@site/root-pages/join-us.mdx",sourceDirName:".",slug:"/join-us",permalink:"/join-us",draft:!1,tags:[],version:"current",frontMatter:{title:"Join Us",hide_title:!0,pagination_prev:null,pagination_next:null,displayed_sidebar:null,hide_table_of_contents:!0}},u={},_=[],p={toc:_},m="wrapper";function b(e){let{components:i,...n}=e;return(0,o.kt)(m,(0,t.Z)({},p,n,{components:i,mdxType:"MDXLayout"}),(0,o.kt)(a.JobsPerDepartment,{jobData:r,mdxType:"JobsPerDepartment"}))}b.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5086c83f.79513685.js b/assets/js/5086c83f.79513685.js new file mode 100644 index 00000000..c52452a6 --- /dev/null +++ b/assets/js/5086c83f.79513685.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[843],{53958:(o,t,e)=>{var n=e(83639);e.o(n,"Box")&&e.d(t,{Box:function(){return n.Box}}),e.o(n,"CallToActionButton")&&e.d(t,{CallToActionButton:function(){return n.CallToActionButton}}),e.o(n,"CallToActionSection")&&e.d(t,{CallToActionSection:function(){return n.CallToActionSection}}),e.o(n,"EventAbout")&&e.d(t,{EventAbout:function(){return n.EventAbout}}),e.o(n,"EventBanner")&&e.d(t,{EventBanner:function(){return n.EventBanner}}),e.o(n,"EventCTASection")&&e.d(t,{EventCTASection:function(){return n.EventCTASection}}),e.o(n,"EventCardList")&&e.d(t,{EventCardList:function(){return n.EventCardList}}),e.o(n,"EventHeader")&&e.d(t,{EventHeader:function(){return n.EventHeader}}),e.o(n,"EventInfo")&&e.d(t,{EventInfo:function(){return n.EventInfo}}),e.o(n,"EventProfileList")&&e.d(t,{EventProfileList:function(){return n.EventProfileList}}),e.o(n,"FeatureList")&&e.d(t,{FeatureList:function(){return n.FeatureList}}),e.o(n,"Grid")&&e.d(t,{Grid:function(){return n.Grid}}),e.o(n,"Hero")&&e.d(t,{Hero:function(){return n.Hero}}),e.o(n,"HeroAction")&&e.d(t,{HeroAction:function(){return n.HeroAction}}),e.o(n,"HeroActions")&&e.d(t,{HeroActions:function(){return n.HeroActions}}),e.o(n,"HeroDescription")&&e.d(t,{HeroDescription:function(){return n.HeroDescription}}),e.o(n,"HeroInfo")&&e.d(t,{HeroInfo:function(){return n.HeroInfo}}),e.o(n,"HeroTitle")&&e.d(t,{HeroTitle:function(){return n.HeroTitle}}),e.o(n,"HeroVideo")&&e.d(t,{HeroVideo:function(){return n.HeroVideo}}),e.o(n,"JobsPerDepartment")&&e.d(t,{JobsPerDepartment:function(){return n.JobsPerDepartment}}),e.o(n,"NewsletterSubscription")&&e.d(t,{NewsletterSubscription:function(){return n.NewsletterSubscription}}),e.o(n,"Roadmap")&&e.d(t,{Roadmap:function(){return n.Roadmap}}),e.o(n,"ShowcaseCard")&&e.d(t,{ShowcaseCard:function(){return n.ShowcaseCard}}),e.o(n,"SocialCard")&&e.d(t,{SocialCard:function(){return n.SocialCard}})},23737:(o,t,e)=>{e.r(t),e.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>c,metadata:()=>u,toc:()=>d});var n=e(87462),r=(e(67294),e(3905)),i=e(53958);const c={title:"Join the community",pagination_prev:null,pagination_next:null,displayed_sidebar:null,sidebar_class_name:"hidden"},a="Join the community",u={unversionedId:"community",id:"community",title:"Join the community",description:"Welcome to the Waku Community!",source:"@site/root-pages/community.mdx",sourceDirName:".",slug:"/community",permalink:"/community",draft:!1,tags:[],version:"current",frontMatter:{title:"Join the community",pagination_prev:null,pagination_next:null,displayed_sidebar:null,sidebar_class_name:"hidden"}},s={},d=[],l={toc:d},m="wrapper";function p(o){let{components:t,...e}=o;return(0,r.kt)(m,(0,n.Z)({},l,e,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"join-the-community"},"Join the community"),(0,r.kt)(i.Box,{top:24,bottom:24,mdxType:"Box"},"Welcome to the Waku Community!",(0,r.kt)("p",null," Whether you are interested in building with Waku, contributing to the network, expanding your knowledge, or staying abreast of our progress, we have something for everyone.")),(0,r.kt)(i.Box,{top:56,bottom:56,mdxType:"Box"},(0,r.kt)(i.Grid,{xs:{cols:1,gap:"1rem"},md:{cols:2},mdxType:"Grid"},(0,r.kt)(i.Grid.Item,{xs:1},(0,r.kt)(i.SocialCard,{href:"https://twitter.com/waku_org",logoSrc:"/icons/x-black.svg",logoSrcDark:"/icons/x-white.svg",description:"Follow us on X",mdxType:"SocialCard"})),(0,r.kt)(i.Grid.Item,{xs:1},(0,r.kt)(i.SocialCard,{href:"https://discord.waku.org",logoSrc:"/icons/discord-black.svg",logoSrcDark:"/icons/discord-white.svg",description:"Join the community on Discord",mdxType:"SocialCard"})),(0,r.kt)(i.Grid.Item,{xs:1},(0,r.kt)(i.SocialCard,{href:"https://t.me/waku_org",logoSrc:"/icons/telegram-black.svg",logoSrcDark:"/icons/telegram-white.svg",description:"Jump in the conversation on Telegram",mdxType:"SocialCard"})),(0,r.kt)(i.Grid.Item,{xs:1},(0,r.kt)(i.SocialCard,{href:"https://forum.vac.dev/",logoSrcDark:"/vac.svg",description:"Share your thoughts on the latest research on the Vac research forum",mdxType:"SocialCard"})),(0,r.kt)(i.Grid.Item,{xs:1},(0,r.kt)(i.SocialCard,{href:"https://github.com/waku-org/bounties/issues",logoSrc:"/icons/github-black.svg",logoSrcDark:"/icons/github-white.svg",description:"Work on an open bounty",mdxType:"SocialCard"})))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5086c83f.7c55b8a2.js b/assets/js/5086c83f.7c55b8a2.js deleted file mode 100644 index 336786cc..00000000 --- a/assets/js/5086c83f.7c55b8a2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[843],{53958:(o,t,e)=>{var r=e(83639);e.o(r,"Box")&&e.d(t,{Box:function(){return r.Box}}),e.o(r,"CallToActionButton")&&e.d(t,{CallToActionButton:function(){return r.CallToActionButton}}),e.o(r,"CallToActionSection")&&e.d(t,{CallToActionSection:function(){return r.CallToActionSection}}),e.o(r,"FeatureList")&&e.d(t,{FeatureList:function(){return r.FeatureList}}),e.o(r,"Grid")&&e.d(t,{Grid:function(){return r.Grid}}),e.o(r,"Hero")&&e.d(t,{Hero:function(){return r.Hero}}),e.o(r,"HeroAction")&&e.d(t,{HeroAction:function(){return r.HeroAction}}),e.o(r,"HeroActions")&&e.d(t,{HeroActions:function(){return r.HeroActions}}),e.o(r,"HeroDescription")&&e.d(t,{HeroDescription:function(){return r.HeroDescription}}),e.o(r,"HeroInfo")&&e.d(t,{HeroInfo:function(){return r.HeroInfo}}),e.o(r,"HeroTitle")&&e.d(t,{HeroTitle:function(){return r.HeroTitle}}),e.o(r,"HeroVideo")&&e.d(t,{HeroVideo:function(){return r.HeroVideo}}),e.o(r,"JobsPerDepartment")&&e.d(t,{JobsPerDepartment:function(){return r.JobsPerDepartment}}),e.o(r,"NewsletterSubscription")&&e.d(t,{NewsletterSubscription:function(){return r.NewsletterSubscription}}),e.o(r,"Roadmap")&&e.d(t,{Roadmap:function(){return r.Roadmap}}),e.o(r,"ShowcaseCard")&&e.d(t,{ShowcaseCard:function(){return r.ShowcaseCard}}),e.o(r,"SocialCard")&&e.d(t,{SocialCard:function(){return r.SocialCard}})},23737:(o,t,e)=>{e.r(t),e.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var r=e(87462),n=(e(67294),e(3905)),i=e(53958);const a={title:"Join the community",pagination_prev:null,pagination_next:null,displayed_sidebar:null,sidebar_class_name:"hidden"},c="Join the community",s={unversionedId:"community",id:"community",title:"Join the community",description:"Welcome to the Waku Community!",source:"@site/root-pages/community.mdx",sourceDirName:".",slug:"/community",permalink:"/community",draft:!1,tags:[],version:"current",frontMatter:{title:"Join the community",pagination_prev:null,pagination_next:null,displayed_sidebar:null,sidebar_class_name:"hidden"}},u={},d=[],l={toc:d},m="wrapper";function p(o){let{components:t,...e}=o;return(0,n.kt)(m,(0,r.Z)({},l,e,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("h1",{id:"join-the-community"},"Join the community"),(0,n.kt)(i.Box,{top:24,bottom:24,mdxType:"Box"},"Welcome to the Waku Community!",(0,n.kt)("p",null," Whether you are interested in building with Waku, contributing to the network, expanding your knowledge, or staying abreast of our progress, we have something for everyone.")),(0,n.kt)(i.Box,{top:56,bottom:56,mdxType:"Box"},(0,n.kt)(i.Grid,{xs:{cols:1,gap:"1rem"},md:{cols:2},mdxType:"Grid"},(0,n.kt)(i.Grid.Item,{xs:1},(0,n.kt)(i.SocialCard,{href:"https://twitter.com/waku_org",logoSrc:"/icons/x-black.svg",logoSrcDark:"/icons/x-white.svg",description:"Follow us on X",mdxType:"SocialCard"})),(0,n.kt)(i.Grid.Item,{xs:1},(0,n.kt)(i.SocialCard,{href:"https://discord.waku.org",logoSrc:"/icons/discord-black.svg",logoSrcDark:"/icons/discord-white.svg",description:"Join the community on Discord",mdxType:"SocialCard"})),(0,n.kt)(i.Grid.Item,{xs:1},(0,n.kt)(i.SocialCard,{href:"https://t.me/waku_org",logoSrc:"/icons/telegram-black.svg",logoSrcDark:"/icons/telegram-white.svg",description:"Jump in the conversation on Telegram",mdxType:"SocialCard"})),(0,n.kt)(i.Grid.Item,{xs:1},(0,n.kt)(i.SocialCard,{href:"https://forum.vac.dev/",logoSrcDark:"/vac.svg",description:"Share your thoughts on the latest research on the Vac research forum",mdxType:"SocialCard"})),(0,n.kt)(i.Grid.Item,{xs:1},(0,n.kt)(i.SocialCard,{href:"https://github.com/waku-org/bounties/issues",logoSrc:"/icons/github-black.svg",logoSrcDark:"/icons/github-white.svg",description:"Work on an open bounty",mdxType:"SocialCard"})))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/546e778e.9c720bab.js b/assets/js/546e778e.bc0edb56.js similarity index 97% rename from assets/js/546e778e.9c720bab.js rename to assets/js/546e778e.bc0edb56.js index f28e081e..ca327f2d 100644 --- a/assets/js/546e778e.9c720bab.js +++ b/assets/js/546e778e.bc0edb56.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[759],{39617:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useNewsletterApi=void 0;const r=a(67294);t.useNewsletterApi=()=>{const[e,t]=(0,r.useState)(!1),[a,l]=(0,r.useState)({error:!1,message:""});return{busy:e,error:a.error,message:a.message,subscribe:async(e,a,r)=>{t(!0);try{const t=await fetch("https://odoo.logos.co/website_mass_mailing/subscribe2",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"call",params:{name:r,value:a,list_id:e,subscription_type:"email"}})}),s=await t.json();l({error:!1,message:s.result.message})}catch(s){l({error:!0,message:"Something went wrong!"})}t(!1)}}}},20361:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubscriptionPage=void 0;const r=a(97582),l=a(31665),s=r.__importDefault(a(39960)),u=r.__importDefault(a(50941)),o=r.__importDefault(a(67294)),n=a(39617),i=a(54400),m=r.__importDefault(a(9584));t.SubscriptionPage=e=>{let{}=e;const t=(0,i.useThemeOptions)(),a=(0,n.useNewsletterApi)(),r=!a.message||a.error;return o.default.createElement("div",{className:m.default.container},o.default.createElement("div",{className:m.default.root},o.default.createElement("div",{className:m.default.header},o.default.createElement(u.default,{sources:{dark:"/theme/image/horizontal_lockup_small_white.svg",light:"/theme/image/horizontal_lockup_small_black.svg"},height:88}),o.default.createElement(l.Typography,{component:"p"},"Subscribe to our newsletter")),a.message&&o.default.createElement(l.Toast,{size:"medium",title:a.message,icon:a.error?l.ErrorIcon:l.CheckIcon,className:m.default.toast}),a.error&&a.message&&o.default.createElement("div",null),r&&o.default.createElement("form",{className:m.default.form,onSubmit:e=>{e.preventDefault();const r=e.target,l=r.elements.namedItem("name").value,s=r.elements.namedItem("email").value;a.subscribe(t.newsletterSubscription.mailingListId,s,l)}},o.default.createElement("div",{className:m.default.inputs},o.default.createElement(l.TextField,{inputProps:{name:"name",type:"text",required:!1},size:"medium",variant:"underlined",placeholder:"First name or pseudonym"}),o.default.createElement(l.TextField,{inputProps:{name:"email",type:"email",required:!0},size:"medium",variant:"underlined",placeholder:"Email address (required)"})),o.default.createElement("div",{className:m.default.submit},o.default.createElement(l.Button,{variant:"filled",disabled:a.busy},"Subscribe"))),!r&&o.default.createElement("div",{className:m.default.toHome},o.default.createElement(s.default,{href:"/"},o.default.createElement(l.Button,{variant:"filled"},"To home page")))))},t.default=t.SubscriptionPage},69686:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;a(97582).__exportStar(a(20361),t);var r=a(20361);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.SubscriptionPage}})},83869:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(69686),l=a(35742),s=a(59351),u=a(67294);const o=()=>u.createElement(s.default,{title:"Subscribe to our newsletter"},u.createElement(l.Z,null,u.createElement("meta",{name:"og:image_title",content:"Subscribe to our newsletter"})),u.createElement(r.SubscriptionPage,null))},9584:(e,t,a)=>{a.r(t),a.d(t,{default:()=>r});const r={toHome:"toHome_tEiU",form:"form_lk4c",submit:"submit_J_94",inputs:"inputs_dj3Q",header:"header_Gr5N",root:"root_lcb5",container:"container_YAWF",toast:"toast_C8x1"}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[759],{39617:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useNewsletterApi=void 0;const r=a(67294);t.useNewsletterApi=()=>{const[e,t]=(0,r.useState)(!1),[a,l]=(0,r.useState)({error:!1,message:""});return{busy:e,error:a.error,message:a.message,subscribe:async(e,a,r)=>{t(!0);try{const t=await fetch("https://odoo.logos.co/website_mass_mailing/subscribe2",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"call",params:{name:r,value:a,list_id:e,subscription_type:"email"}})}),s=await t.json();l({error:!1,message:s.result.message})}catch(s){l({error:!0,message:"Something went wrong!"})}t(!1)}}}},20361:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SubscriptionPage=void 0;const r=a(97582),l=a(31665),s=r.__importDefault(a(39960)),u=r.__importDefault(a(16019)),o=r.__importDefault(a(67294)),n=a(39617),i=a(54400),m=r.__importDefault(a(9584));t.SubscriptionPage=e=>{let{}=e;const t=(0,i.useThemeOptions)(),a=(0,n.useNewsletterApi)(),r=!a.message||a.error;return o.default.createElement("div",{className:m.default.container},o.default.createElement("div",{className:m.default.root},o.default.createElement("div",{className:m.default.header},o.default.createElement(u.default,{sources:{dark:"/theme/image/horizontal_lockup_small_white.svg",light:"/theme/image/horizontal_lockup_small_black.svg"},height:88}),o.default.createElement(l.Typography,{component:"p"},"Subscribe to our newsletter")),a.message&&o.default.createElement(l.Toast,{size:"medium",title:a.message,icon:a.error?l.ErrorIcon:l.CheckIcon,className:m.default.toast}),a.error&&a.message&&o.default.createElement("div",null),r&&o.default.createElement("form",{className:m.default.form,onSubmit:e=>{e.preventDefault();const r=e.target,l=r.elements.namedItem("name").value,s=r.elements.namedItem("email").value;a.subscribe(t.newsletterSubscription.mailingListId,s,l)}},o.default.createElement("div",{className:m.default.inputs},o.default.createElement(l.TextField,{inputProps:{name:"name",type:"text",required:!1},size:"medium",variant:"underlined",placeholder:"First name or pseudonym"}),o.default.createElement(l.TextField,{inputProps:{name:"email",type:"email",required:!0},size:"medium",variant:"underlined",placeholder:"Email address (required)"})),o.default.createElement("div",{className:m.default.submit},o.default.createElement(l.Button,{variant:"filled",disabled:a.busy},"Subscribe"))),!r&&o.default.createElement("div",{className:m.default.toHome},o.default.createElement(s.default,{href:"/"},o.default.createElement(l.Button,{variant:"filled"},"To home page")))))},t.default=t.SubscriptionPage},69686:(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;a(97582).__exportStar(a(20361),t);var r=a(20361);Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.SubscriptionPage}})},83869:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(69686),l=a(35742),s=a(59351),u=a(67294);const o=()=>u.createElement(s.default,{title:"Subscribe to our newsletter"},u.createElement(l.Z,null,u.createElement("meta",{name:"og:image_title",content:"Subscribe to our newsletter"})),u.createElement(r.SubscriptionPage,null))},9584:(e,t,a)=>{a.r(t),a.d(t,{default:()=>r});const r={toHome:"toHome_tEiU",form:"form_lk4c",submit:"submit_J_94",inputs:"inputs_dj3Q",header:"header_Gr5N",root:"root_lcb5",container:"container_YAWF",toast:"toast_C8x1"}}}]); \ No newline at end of file diff --git a/assets/js/881.757d2b2f.js b/assets/js/881.757d2b2f.js deleted file mode 100644 index 6534299f..00000000 --- a/assets/js/881.757d2b2f.js +++ /dev/null @@ -1,73 +0,0 @@ -/*! For license information please see 881.757d2b2f.js.LICENSE.txt */ -(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[881],{16829:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>A});var r=n(87462),i=n(67294),s=n(45042),a=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,o=(0,s.Z)((function(e){return a.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),l=n(79626),c=n(70444),h=n(48137),u=n(27278),d=o,p=function(e){return"theme"!==e},f=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?d:p},m=function(e,t,n){var r;if(t){var i=t.shouldForwardProp;r=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return"function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r},g=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,c.hC)(t,n,r),(0,u.L)((function(){return(0,c.My)(t,n,r)})),null},A=function e(t,n){var s,a,o=t.__emotion_real===t,u=o&&t.__emotion_base||t;void 0!==n&&(s=n.label,a=n.target);var d=m(t,n,o),p=d||f(u),A=!p("as");return function(){var v=arguments,y=o&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==s&&y.push("label:"+s+";"),null==v[0]||void 0===v[0].raw)y.push.apply(y,v);else{0,y.push(v[0][0]);for(var x=v.length,b=1;b{"use strict";n.d(t,{Zo:()=>h,kt:()=>f});var r=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},h=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,s=e.originalType,l=e.parentName,h=o(e,["components","mdxType","originalType","parentName"]),u=c(n),p=i,f=u["".concat(l,".").concat(p)]||u[p]||d[p]||s;return n?r.createElement(f,a(a({ref:t},h),{},{components:n})):r.createElement(f,a({ref:t},h))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=n.length,a=new Array(s);a[0]=p;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[u]="string"==typeof e?e:i,a[1]=o;for(var c=2;c{"use strict";n.r(t),n.d(t,{AdaptiveDpr:()=>Xm,AdaptiveEvents:()=>Ym,ArcballControls:()=>zo,Backdrop:()=>Df,BakeShadows:()=>zm,Billboard:()=>Oi,Bounds:()=>df,Box:()=>Gp,CameraShake:()=>Af,Center:()=>lf,Circle:()=>zp,Clone:()=>ro,Cloud:()=>Jf,ComputedAttribute:()=>$a,Cone:()=>Qp,ContactShadows:()=>If,CubeCamera:()=>ao,CubicBezierLine:()=>us,CurveModifier:()=>Mp,CycleRaycast:()=>v,Cylinder:()=>Vp,Detailed:()=>km,DeviceOrientationControls:()=>ho,Dodecahedron:()=>ef,Edges:()=>Ga,Effects:()=>Da,Environment:()=>_f,EnvironmentCube:()=>Mf,EnvironmentMap:()=>Sf,EnvironmentPortal:()=>wf,Extrude:()=>tf,FirstPersonControls:()=>hl,Float:()=>vf,FlyControls:()=>go,GizmoHelper:()=>bl,GizmoViewcube:()=>Fl,GizmoViewport:()=>Nl,GradientTexture:()=>La,Html:()=>A,Icosahedron:()=>Zp,Image:()=>ka,Instance:()=>Rm,Instances:()=>Pm,IsObject:()=>Ua,Lathe:()=>nf,Lightformer:()=>kf,Line:()=>ls,Loader:()=>S,MapControls:()=>wo,Merged:()=>Dm,MeshDistortMaterial:()=>Tp,MeshReflectorMaterial:()=>Lp,MeshWobbleMaterial:()=>Bp,Octahedron:()=>$p,OrbitControls:()=>Mo,OrthographicCamera:()=>io,PerspectiveCamera:()=>so,Plane:()=>jp,Point:()=>mm,PointMaterial:()=>Up,PointMaterialImpl:()=>Fp,PointerLockControls:()=>sl,Points:()=>Am,PointsBuffer:()=>gm,Polyhedron:()=>Jp,PositionalAudio:()=>ds,Preload:()=>Gm,PresentationControls:()=>gi,QuadraticBezierLine:()=>hs,Reflector:()=>Ff,Ring:()=>Kp,RoundedBox:()=>sf,Sampler:()=>Za,ScreenQuad:()=>of,Scroll:()=>P,ScrollControls:()=>I,Segment:()=>Nm,Segments:()=>Um,Select:()=>Fi,Shadow:()=>Lf,Sky:()=>Wf,Sphere:()=>Hp,SpotLight:()=>Nf,Stage:()=>Rf,Stars:()=>qf,Stats:()=>_u,Tetrahedron:()=>qp,Text:()=>fa,Torus:()=>Xp,TorusKnot:()=>Yp,TrackballControls:()=>Bo,Trail:()=>Ya,TransformControls:()=>qo,Tube:()=>Wp,calcPosFromAngles:()=>jf,isWebGL2Available:()=>Pa,meshBounds:()=>Wm,shaderMaterial:()=>Fa,softShadows:()=>Np,useAnimations:()=>fp,useAspect:()=>Mu,useBVH:()=>dp,useBounds:()=>pf,useBoxProjectedEnv:()=>xp,useCamera:()=>ul,useContextBridge:()=>pp,useCubeTexture:()=>kl,useCursor:()=>y,useDepthBuffer:()=>wu,useDetectGPU:()=>Nu,useFBO:()=>Su,useFBX:()=>Vc,useGLTF:()=>Yh,useGizmoContext:()=>pl,useHelper:()=>ku,useIntersect:()=>mp,useKTX2:()=>yu,useMatcapTexture:()=>em,useNormalTexture:()=>rm,useProgress:()=>E,useScroll:()=>T,useSelect:()=>Ui,useTexture:()=>Oa,useTrail:()=>Xa});var r=n(87462),i=n(67294),s=n(73935),a=n(99477),o=n(64232);const l=new a.Vector3,c=new a.Vector3,h=new a.Vector3;function u(e,t,n){const r=l.setFromMatrixPosition(e.matrixWorld);r.project(t);const i=n.width/2,s=n.height/2;return[r.x*i+i,-r.y*s+s]}const d=e=>Math.abs(e)<1e-10?0:e;function p(e,t,n=""){let r="matrix3d(";for(let i=0;16!==i;i++)r+=d(t[i]*e.elements[i])+(15!==i?",":")");return n+r}const f=(m=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>p(e,m));var m;const g=(e,t)=>p(e,(e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1])(t),"translate(-50%,-50%)"),A=i.forwardRef((({children:e,eps:t=.001,style:n,className:p,prepend:m,center:A,fullscreen:v,portal:y,distanceFactor:x,sprite:b=!1,transform:E=!1,occlude:_,onOcclude:S,zIndexRange:w=[16777271,0],calculatePosition:M=u,as:C="div",wrapperClass:T,pointerEvents:I="auto",...B},R)=>{var P;const D=(0,o.useThree)((({gl:e})=>e)),L=(0,o.useThree)((({camera:e})=>e)),F=(0,o.useThree)((({scene:e})=>e)),U=(0,o.useThree)((({size:e})=>e)),O=(0,o.useThree)((({raycaster:e})=>e)),[N]=i.useState((()=>document.createElement(C))),k=i.useRef(null),G=i.useRef(0),z=i.useRef([0,0]),Q=i.useRef(null),V=i.useRef(null),H=null!==(P=null==y?void 0:y.current)&&void 0!==P?P:D.domElement.parentNode;i.useEffect((()=>{if(k.current){if(F.updateMatrixWorld(),E)N.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=M(k.current,L,U);N.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return H&&(m?H.prepend(N):H.appendChild(N)),()=>{H&&H.removeChild(N),s.unmountComponentAtNode(N)}}}),[H,E]),i.useLayoutEffect((()=>{T&&(N.className=T)}),[T]);const j=i.useMemo((()=>E?{position:"absolute",top:0,left:0,width:U.width,height:U.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:A?"translate3d(-50%,-50%,0)":"none",...v&&{top:-U.height/2,left:-U.width/2,width:U.width,height:U.height},...n}),[n,A,v,U,E]),W=i.useMemo((()=>({position:"absolute",pointerEvents:I})),[I]);i.useLayoutEffect((()=>{E?s.render(i.createElement("div",{ref:Q,style:j},i.createElement("div",{ref:V,style:W},i.createElement("div",{ref:R,className:p,style:n,children:e}))),N):s.render(i.createElement("div",{ref:R,style:j,className:p,children:e}),N)}));const X=i.useRef(!0);return(0,o.useFrame)((()=>{if(k.current){L.updateMatrixWorld(),k.current.updateWorldMatrix(!0,!1);const e=E?z.current:M(k.current,L,U);if(E||Math.abs(G.current-L.zoom)>t||Math.abs(z.current[0]-e[0])>t||Math.abs(z.current[1]-e[1])>t){const t=function(e,t){const n=l.setFromMatrixPosition(e.matrixWorld),r=c.setFromMatrixPosition(t.matrixWorld),i=n.sub(r),s=t.getWorldDirection(h);return i.angleTo(s)>Math.PI/2}(k.current,L);let n=!1;"boolean"==typeof _?!0===_&&(n=[F]):Array.isArray(_)&&(n=_.map((e=>e.current)));const r=X.current;if(n){const e=function(e,t,n,r){const i=l.setFromMatrixPosition(e.matrixWorld),s=i.clone();s.project(t),n.setFromCamera(s,t);const a=n.intersectObjects(r,!0);if(a.length){const e=a[0].distance;return i.distanceTo(n.ray.origin)e.raycaster)),c=(0,o.useThree)((e=>e.get)),h=(0,o.useThree)((e=>e.gl));return i.useEffect((()=>{var i;let o,u=[];const d=l.filter,p=null!==(i=null==t?void 0:t.current)&&void 0!==i?i:h.domElement.parentNode,f=()=>p&&e&&e(u,Math.round(a.current)%u.length);l.filter=(e,t)=>{let n=[...e];n.length===u.length&&u.every((e=>n.map((e=>e.object.uuid)).includes(e.object.uuid)))||(a.current=0,u=n,f()),d&&(n=d(n,t));for(let r=0;r{var t,n;a.current=e(a.current),null==(t=c().events.handlers)||t.onPointerCancel(void 0),null==(n=c().events.handlers)||n.onPointerMove(o),f()},g=e=>{(e.keyCode||e.which===s)&&(n&&e.preventDefault(),u.length>1&&m((e=>e+1)))},A=e=>{n&&e.preventDefault();let t=0;e||(e=window.event),e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),u.length>1&&m((e=>Math.abs(e-t)))},v=e=>o=e;return document.addEventListener("pointermove",v,{passive:!0}),r&&document.addEventListener("wheel",A),void 0!==s&&document.addEventListener("keydown",g),()=>{l.filter=d,void 0!==s&&document.removeEventListener("keydown",g),r&&document.removeEventListener("wheel",A),document.removeEventListener("pointermove",v)}}),[h,c,l,n,r,s]),null}function y(e,t="pointer",n="auto"){i.useEffect((()=>{if(e)return document.body.style.cursor=t,()=>{document.body.style.cursor=n}}),[e])}var x=n(14671);let b=0;const E=(0,x.Z)((e=>(a.DefaultLoadingManager.onStart=(t,n,r)=>{e({active:!0,item:t,loaded:n,total:r,progress:(n-b)/(r-b)*100})},a.DefaultLoadingManager.onLoad=()=>{e({active:!1})},a.DefaultLoadingManager.onError=t=>e((e=>({errors:[...e.errors,t]}))),a.DefaultLoadingManager.onProgress=(t,n,r)=>{n===r&&(b=r),e({active:!0,item:t,loaded:n,total:r,progress:(n-b)/(r-b)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0}))),_=e=>`Loading ${e.toFixed(2)}%`;function S({containerStyles:e,innerStyles:t,barStyles:n,dataStyles:r,dataInterpolation:s=_,initialState:a=(e=>e)}){const{active:o,progress:l}=E(),c=i.useRef(0),h=i.useRef(0),u=i.useRef(null),[d,p]=i.useState(a(o));i.useEffect((()=>{let e;return o!==d&&(e=setTimeout((()=>p(o)),300)),()=>clearTimeout(e)}),[d,o]);const f=i.useCallback((()=>{u.current&&(c.current+=(l-c.current)/2,(c.current>.95*l||100===l)&&(c.current=l),u.current.innerText=s(c.current),c.current(f(),()=>cancelAnimationFrame(h.current))),[f]),d?i.createElement("div",{style:{...w.container,opacity:o?1:0,...e}},i.createElement("div",null,i.createElement("div",{style:{...w.inner,...t}},i.createElement("div",{style:{...w.bar,transform:`scaleX(${l/100})`,...n}}),i.createElement("span",{ref:u,style:{...w.data,...r}})))):null}const w={container:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity 300ms ease",zIndex:1e3},inner:{width:100,height:3,background:"#272727",textAlign:"center"},bar:{height:3,width:"100%",background:"white",transition:"transform 200ms",transformOrigin:"left center"},data:{display:"inline-block",position:"relative",fontVariantNumeric:"tabular-nums",marginTop:"0.8em",color:"#f0f0f0",fontSize:"0.6em",fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, Roboto, Ubuntu, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',whiteSpace:"nowrap"}};const M=function(e){return function(t){e.forEach((function(e){"function"==typeof e?e(t):null!=e&&(e.current=t)}))}},C=i.createContext(null);function T(){return i.useContext(C)}function I({eps:e=1e-5,enabled:t=!0,infinite:n,horizontal:r,pages:s=1,distance:l=1,damping:c=4,style:h={},children:u}){const{gl:d,size:p,invalidate:f,events:m,raycaster:g}=(0,o.useThree)(),[A]=i.useState((()=>document.createElement("div"))),[v]=i.useState((()=>document.createElement("div"))),[y]=i.useState((()=>document.createElement("div"))),x=d.domElement.parentNode,b=i.useRef(0),E=i.useMemo((()=>{const t={el:A,eps:e,fill:v,fixed:y,horizontal:r,damping:c,offset:0,delta:0,scroll:b,pages:s,range(e,t,n=0){const r=e-n,i=r+t+2*n;return this.offseti?1:(this.offset-r)/(i-r)},curve(e,t,n=0){return Math.sin(this.range(e,t,n)*Math.PI)},visible(e,t,n=0){const r=e-n,i=r+t+2*n;return this.offset>=r&&this.offset<=i}};return t}),[e,c,r,s]);i.useEffect((()=>{A.style.position="absolute",A.style.width="100%",A.style.height="100%",A.style[r?"overflowX":"overflowY"]="auto",A.style[r?"overflowY":"overflowX"]="hidden",A.style.top="0px",A.style.left="0px";for(const n in h)A.style[n]=h[n];y.style.position="sticky",y.style.top="0px",y.style.left="0px",y.style.width="100%",y.style.height="100%",y.style.overflow="hidden",A.appendChild(y),v.style.height=r?"100%":s*l*100+"%",v.style.width=r?s*l*100+"%":"100%",v.style.pointerEvents="none",A.appendChild(v),x.appendChild(A),A[r?"scrollLeft":"scrollTop"]=1;const e=m.connected||d.domElement;requestAnimationFrame((()=>null==m.connect?void 0:m.connect(A)));const t=g.computeOffsets;return g.computeOffsets=({clientX:e,clientY:t})=>({offsetX:e-x.offsetLeft,offsetY:t-x.offsetTop}),()=>{x.removeChild(A),g.computeOffsets=t,null==m.connect||m.connect(e)}}),[s,l,r,A,v,y,x]),i.useEffect((()=>{const e=p[r?"width":"height"],i=A[r?"scrollWidth":"scrollHeight"],s=i-e;let a=0,o=!0,l=!0;const c=()=>{if(t&&!l&&(f(),a=A[r?"scrollLeft":"scrollTop"],b.current=a/s,n)){if(!o)if(a>=s){const e=1-E.offset;A[r?"scrollLeft":"scrollTop"]=1,b.current=E.offset=-e,o=!0}else if(a<=0){const e=1+E.offset;A[r?"scrollLeft":"scrollTop"]=i,b.current=E.offset=e,o=!0}o&&setTimeout((()=>o=!1),40)}};A.addEventListener("scroll",c,{passive:!0}),requestAnimationFrame((()=>l=!1));const h=e=>A.scrollLeft+=e.deltaY/2;return r&&A.addEventListener("wheel",h,{passive:!0}),()=>{A.removeEventListener("scroll",c),r&&A.removeEventListener("wheel",h)}}),[A,p,n,E,f,r,t]);let _=0;return(0,o.useFrame)(((t,n)=>{E.offset=a.MathUtils.damp(_=E.offset,b.current,c,n),E.delta=a.MathUtils.damp(E.delta,Math.abs(_-E.offset),c,n),E.delta>e&&f()})),i.createElement(C.Provider,{value:E},u)}const B=i.forwardRef((({children:e},t)=>{const n=i.useRef(null),r=T(),{width:s,height:a}=(0,o.useThree)((e=>e.viewport));return(0,o.useFrame)((()=>{n.current.position.x=r.horizontal?-s*(r.pages-1)*r.offset:0,n.current.position.y=r.horizontal?0:a*(r.pages-1)*r.offset})),i.createElement("group",{ref:M([t,n])},e)})),R=i.forwardRef((({children:e,style:t,...n},a)=>{const l=T(),c=i.useRef(null),{width:h,height:u}=(0,o.useThree)((e=>e.size)),d=i.useContext(o.context);return(0,o.useFrame)((()=>{l.delta>l.eps&&(c.current.style.transform=`translate3d(${l.horizontal?-h*(l.pages-1)*l.offset:0}px,${l.horizontal?0:u*(l.pages-1)*-l.offset}px,0)`)})),s.render(i.createElement("div",(0,r.Z)({ref:M([a,c]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},n),i.createElement(C.Provider,{value:l},i.createElement(o.context.Provider,{value:d},e))),l.fixed),null})),P=i.forwardRef((({html:e,...t},n)=>{const s=e?R:B;return i.createElement(s,(0,r.Z)({ref:n},t))}));var D=Object.defineProperty,L={};((e,t)=>{for(var n in t)D(e,n,{get:t[n],enumerable:!0})})(L,{assign:()=>pe,colors:()=>he,createStringInterpolator:()=>ae,skipAnimation:()=>ue,to:()=>oe,willAdvance:()=>de});var F=J(),U=e=>X(e,F),O=J();U.write=e=>X(e,O);var N=J();U.onStart=e=>X(e,N);var k=J();U.onFrame=e=>X(e,k);var G=J();U.onFinish=e=>X(e,G);var z=[];U.setTimeout=(e,t)=>{const n=U.now()+t,r=()=>{const e=z.findIndex((e=>e.cancel==r));~e&&z.splice(e,1),j-=~e?1:0},i={time:n,handler:e,cancel:r};return z.splice(Q(n),0,i),j+=1,Y(),i};var Q=e=>~(~z.findIndex((t=>t.time>e))||~z.length);U.cancel=e=>{N.delete(e),k.delete(e),G.delete(e),F.delete(e),O.delete(e)},U.sync=e=>{W=!0,U.batchedUpdates(e),W=!1},U.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...e){t=e,U.onStart(n)}return r.handler=e,r.cancel=()=>{N.delete(n),t=null},r};var V="undefined"!=typeof window?window.requestAnimationFrame:()=>{};U.use=e=>V=e,U.now="undefined"!=typeof performance?()=>performance.now():Date.now,U.batchedUpdates=e=>e(),U.catch=console.error,U.frameLoop="always",U.advance=()=>{"demand"!==U.frameLoop?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):K()};var H=-1,j=0,W=!1;function X(e,t){W?(t.delete(e),e(0)):(t.add(e),Y())}function Y(){H<0&&(H=0,"demand"!==U.frameLoop&&V(q))}function q(){~H&&(V(q),U.batchedUpdates(K))}function K(){const e=H;H=U.now();const t=Q(H);t&&(Z(z.splice(0,t),(e=>e.handler())),j-=t),j?(N.flush(),F.flush(e?Math.min(64,H-e):16.667),k.flush(),O.flush(),G.flush()):H=-1}function J(){let e=new Set,t=e;return{add(n){j+=t!=e||e.has(n)?0:1,e.add(n)},delete:n=>(j-=t==e&&e.has(n)?1:0,e.delete(n)),flush(n){t.size&&(e=new Set,j-=t.size,Z(t,(t=>t(n)&&e.add(t))),j+=e.size,t=e)}}}function Z(e,t){e.forEach((e=>{try{t(e)}catch(za){U.catch(za)}}))}function $(){}var ee={arr:Array.isArray,obj:e=>!!e&&"Object"===e.constructor.name,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,und:e=>void 0===e};function te(e,t){if(ee.arr(e)){if(!ee.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function re(e,t,n){if(ee.arr(e))for(let r=0;ree.und(e)?[]:ee.arr(e)?e:[e];function se(e,t){if(e.size){const n=Array.from(e);e.clear(),ne(n,t)}}var ae,oe,le=(e,...t)=>se(e,(e=>e(...t))),ce=()=>"undefined"==typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),he=null,ue=!1,de=$,pe=e=>{e.to&&(oe=e.to),e.now&&(U.now=e.now),void 0!==e.colors&&(he=e.colors),null!=e.skipAnimation&&(ue=e.skipAnimation),e.createStringInterpolator&&(ae=e.createStringInterpolator),e.requestAnimationFrame&&U.use(e.requestAnimationFrame),e.batchedUpdates&&(U.batchedUpdates=e.batchedUpdates),e.willAdvance&&(de=e.willAdvance),e.frameLoop&&(U.frameLoop=e.frameLoop)},fe=new Set,me=[],ge=[],Ae=0,ve={get idle(){return!fe.size&&!me.length},start(e){Ae>e.priority?(fe.add(e),U.onStart(ye)):(xe(e),U(Ee))},advance:Ee,sort(e){if(Ae)U.onFrame((()=>ve.sort(e)));else{const t=me.indexOf(e);~t&&(me.splice(t,1),be(e))}},clear(){me=[],fe.clear()}};function ye(){fe.forEach(xe),fe.clear(),U(Ee)}function xe(e){me.includes(e)||be(e)}function be(e){me.splice(function(e,t){const n=e.findIndex(t);return n<0?e.length:n}(me,(t=>t.priority>e.priority)),0,e)}function Ee(e){const t=ge;for(let n=0;n0}var _e="[-+]?\\d*\\.?\\d+",Se=_e+"%";function we(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var Me=new RegExp("rgb"+we(_e,_e,_e)),Ce=new RegExp("rgba"+we(_e,_e,_e,_e)),Te=new RegExp("hsl"+we(_e,Se,Se)),Ie=new RegExp("hsla"+we(_e,Se,Se,_e)),Be=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,Re=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,Pe=/^#([0-9a-fA-F]{6})$/,De=/^#([0-9a-fA-F]{8})$/;function Le(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Fe(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,s=Le(i,r,e+1/3),a=Le(i,r,e),o=Le(i,r,e-1/3);return Math.round(255*s)<<24|Math.round(255*a)<<16|Math.round(255*o)<<8}function Ue(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Oe(e){return(parseFloat(e)%360+360)%360/360}function Ne(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(255*t)}function ke(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Ge(e){let t=function(e){let t;return"number"==typeof e?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=Pe.exec(e))?parseInt(t[1]+"ff",16)>>>0:he&&void 0!==he[e]?he[e]:(t=Me.exec(e))?(Ue(t[1])<<24|Ue(t[2])<<16|Ue(t[3])<<8|255)>>>0:(t=Ce.exec(e))?(Ue(t[1])<<24|Ue(t[2])<<16|Ue(t[3])<<8|Ne(t[4]))>>>0:(t=Be.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=De.exec(e))?parseInt(t[1],16)>>>0:(t=Re.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=Te.exec(e))?(255|Fe(Oe(t[1]),ke(t[2]),ke(t[3])))>>>0:(t=Ie.exec(e))?(Fe(Oe(t[1]),ke(t[2]),ke(t[3]))|Ne(t[4]))>>>0:null}(e);if(null===t)return e;t=t||0;return`rgba(${(4278190080&t)>>>24}, ${(16711680&t)>>>16}, ${(65280&t)>>>8}, ${(255&t)/255})`}var ze=(e,t,n)=>{if(ee.fun(e))return e;if(ee.arr(e))return ze({range:e,output:t,extrapolate:n});if(ee.str(e.output[0]))return ae(e);const r=e,i=r.output,s=r.range||[0,1],a=r.extrapolateLeft||r.extrapolate||"extend",o=r.extrapolateRight||r.extrapolate||"extend",l=r.easing||(e=>e);return e=>{const t=function(e,t){for(var n=1;n=e);++n);return n-1}(e,s);return function(e,t,n,r,i,s,a,o,l){let c=l?l(e):e;if(cn){if("identity"===o)return c;"clamp"===o&&(c=n)}if(r===i)return r;if(t===n)return e<=t?r:i;t===-1/0?c=-c:n===1/0?c-=t:c=(c-t)/(n-t);c=s(c),r===-1/0?c=-c:i===1/0?c+=r:c=c*(i-r)+r;return c}(e,s[t],s[t+1],i[t],i[t+1],l,a,o,r.map)}};var Qe=1.70158,Ve=1.525*Qe,He=Qe+1,je=2*Math.PI/3,We=2*Math.PI/4.5,Xe=e=>{const t=7.5625,n=2.75;return e<1/n?t*e*e:e<2/n?t*(e-=1.5/n)*e+.75:e<2.5/n?t*(e-=2.25/n)*e+.9375:t*(e-=2.625/n)*e+.984375},Ye={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>1-(1-e)*(1-e),easeInOutQuad:e=>e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2,easeInCubic:e=>e*e*e,easeOutCubic:e=>1-Math.pow(1-e,3),easeInOutCubic:e=>e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1-Math.pow(1-e,4),easeInOutQuart:e=>e<.5?8*e*e*e*e:1-Math.pow(-2*e+2,4)/2,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1-Math.pow(1-e,5),easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1-Math.pow(-2*e+2,5)/2,easeInSine:e=>1-Math.cos(e*Math.PI/2),easeOutSine:e=>Math.sin(e*Math.PI/2),easeInOutSine:e=>-(Math.cos(Math.PI*e)-1)/2,easeInExpo:e=>0===e?0:Math.pow(2,10*e-10),easeOutExpo:e=>1===e?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>0===e?0:1===e?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2,easeInCirc:e=>1-Math.sqrt(1-Math.pow(e,2)),easeOutCirc:e=>Math.sqrt(1-Math.pow(e-1,2)),easeInOutCirc:e=>e<.5?(1-Math.sqrt(1-Math.pow(2*e,2)))/2:(Math.sqrt(1-Math.pow(-2*e+2,2))+1)/2,easeInBack:e=>He*e*e*e-Qe*e*e,easeOutBack:e=>1+He*Math.pow(e-1,3)+Qe*Math.pow(e-1,2),easeInOutBack:e=>e<.5?Math.pow(2*e,2)*(7.189819*e-Ve)/2:(Math.pow(2*e-2,2)*((Ve+1)*(2*e-2)+Ve)+2)/2,easeInElastic:e=>0===e?0:1===e?1:-Math.pow(2,10*e-10)*Math.sin((10*e-10.75)*je),easeOutElastic:e=>0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin((10*e-.75)*je)+1,easeInOutElastic:e=>0===e?0:1===e?1:e<.5?-Math.pow(2,20*e-10)*Math.sin((20*e-11.125)*We)/2:Math.pow(2,-20*e+10)*Math.sin((20*e-11.125)*We)/2+1,easeInBounce:e=>1-Xe(1-e),easeOutBounce:Xe,easeInOutBounce:e=>e<.5?(1-Xe(1-2*e))/2:(1+Xe(2*e-1))/2,steps:(e,t="end")=>n=>{const r=(n="end"===t?Math.min(n,.999):Math.max(n,.001))*e;return((e,t,n)=>Math.min(Math.max(n,e),t))(0,1,("end"===t?Math.floor(r):Math.ceil(r))/e)}},qe=Symbol.for("FluidValue.get"),Ke=Symbol.for("FluidValue.observers"),Je=e=>Boolean(e&&e[qe]),Ze=e=>e&&e[qe]?e[qe]():e,$e=e=>e[Ke]||null;function et(e,t){const n=e[Ke];n&&n.forEach((e=>{!function(e,t){e.eventObserved?e.eventObserved(t):e(t)}(e,t)}))}var tt=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");nt(this,e)}},nt=(e,t)=>at(e,qe,t);function rt(e,t){if(e[qe]){let n=e[Ke];n||at(e,Ke,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function it(e,t){const n=e[Ke];if(n&&n.has(t)){const r=n.size-1;r?n.delete(t):e[Ke]=null,e.observerRemoved&&e.observerRemoved(r,t)}}var st,at=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),ot=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,lt=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,ct=new RegExp(`(${ot.source})(%|[a-z]+)`,"i"),ht=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,ut=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,dt=e=>{const[t,n]=pt(e);if(!t||ce())return e;const r=window.getComputedStyle(document.documentElement).getPropertyValue(t);if(r)return r.trim();if(n&&n.startsWith("--")){const t=window.getComputedStyle(document.documentElement).getPropertyValue(n);return t||e}return n&&ut.test(n)?dt(n):n||e},pt=e=>{const t=ut.exec(e);if(!t)return[,];const[,n,r]=t;return[n,r]},ft=(e,t,n,r,i)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(r)}, ${i})`,mt=e=>{st||(st=he?new RegExp(`(${Object.keys(he).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map((e=>Ze(e).replace(ut,dt).replace(lt,Ge).replace(st,Ge))),n=t.map((e=>e.match(ot).map(Number))),r=n[0].map(((e,t)=>n.map((e=>{if(!(t in e))throw Error('The arity of each "output" value must be equal');return e[t]})))),i=r.map((t=>ze({...e,output:t})));return e=>{const n=!ct.test(t[0])&&t.find((e=>ct.test(e)))?.replace(ot,"");let r=0;return t[0].replace(ot,(()=>`${i[r++](e)}${n||""}`)).replace(ht,ft)}},gt="react-spring: ",At=e=>{const t=e;let n=!1;if("function"!=typeof t)throw new TypeError(`${gt}once requires a function parameter`);return(...e)=>{n||(t(...e),n=!0)}},vt=At(console.warn);var yt=At(console.warn);function xt(e){return ee.str(e)&&("#"==e[0]||/\d/.test(e)||!ce()&&ut.test(e)||e in(he||{}))}var bt=ce()?i.useEffect:i.useLayoutEffect,Et=()=>{const e=(0,i.useRef)(!1);return bt((()=>(e.current=!0,()=>{e.current=!1})),[]),e};function _t(){const e=(0,i.useState)()[1],t=Et();return()=>{t.current&&e(Math.random())}}var St=e=>(0,i.useEffect)(e,wt),wt=[];function Mt(e){const t=(0,i.useRef)();return(0,i.useEffect)((()=>{t.current=e})),t.current}var Ct=Symbol.for("Animated:node"),Tt=e=>e&&e[Ct],It=(e,t)=>{return n=e,r=Ct,i=t,Object.defineProperty(n,r,{value:i,writable:!0,configurable:!0});var n,r,i},Bt=e=>e&&e[Ct]&&e[Ct].getPayload(),Rt=class{constructor(){It(this,this)}getPayload(){return this.payload||[]}},Pt=class extends Rt{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,ee.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Pt(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return ee.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value!==e&&(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,ee.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Dt=class extends Pt{constructor(e){super(0),this._string=null,this._toString=ze({output:[e,e]})}static create(e){return new Dt(e)}getValue(){const e=this._string;return null==e?this._string=this._toString(this._value):e}setValue(e){if(ee.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else{if(!super.setValue(e))return!1;this._string=null}return!0}reset(e){e&&(this._toString=ze({output:[this.getValue(),e]})),this._value=0,super.reset()}},Lt={dependencies:null},Ft=class extends Rt{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return re(this.source,((n,r)=>{var i;(i=n)&&i[Ct]===i?t[r]=n.getValue(e):Je(n)?t[r]=Ze(n):e||(t[r]=n)})),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&ne(this.payload,(e=>e.reset()))}_makePayload(e){if(e){const t=new Set;return re(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Lt.dependencies&&Je(e)&&Lt.dependencies.add(e);const t=Bt(e);t&&ne(t,(e=>this.add(e)))}},Ut=class extends Ft{constructor(e){super(e)}static create(e){return new Ut(e)}getValue(){return this.source.map((e=>e.getValue()))}setValue(e){const t=this.getPayload();return e.length==t.length?t.map(((t,n)=>t.setValue(e[n]))).some(Boolean):(super.setValue(e.map(Ot)),!0)}};function Ot(e){return(xt(e)?Dt:Pt).create(e)}function Nt(e){const t=Tt(e);return t?t.constructor:ee.arr(e)?Ut:xt(e)?Dt:Pt}var kt=(e,t)=>{const n=!ee.fun(e)||e.prototype&&e.prototype.isReactComponent;return(0,i.forwardRef)(((r,s)=>{const a=(0,i.useRef)(null),o=n&&(0,i.useCallback)((e=>{a.current=function(e,t){e&&(ee.fun(e)?e(t):e.current=t);return t}(s,e)}),[s]),[l,c]=function(e,t){const n=new Set;Lt.dependencies=n,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)});return e=new Ft(e),Lt.dependencies=null,[e,n]}(r,t),h=_t(),u=()=>{const e=a.current;if(n&&!e)return;!1===(!!e&&t.applyAnimatedValues(e,l.getValue(!0)))&&h()},d=new Gt(u,c),p=(0,i.useRef)();bt((()=>(p.current=d,ne(c,(e=>rt(e,d))),()=>{p.current&&(ne(p.current.deps,(e=>it(e,p.current))),U.cancel(p.current.update))}))),(0,i.useEffect)(u,[]),St((()=>()=>{const e=p.current;ne(e.deps,(t=>it(t,e)))}));const f=t.getComponentProps(l.getValue());return i.createElement(e,{...f,ref:o})}))},Gt=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){"change"==e.type&&U.write(this.update)}};var zt=Symbol.for("AnimatedComponent"),Qt=e=>ee.str(e)?e:e&&ee.str(e.displayName)?e.displayName:ee.fun(e)&&e.name||null;function Vt(e,...t){return ee.fun(e)?e(...t):e}var Ht=(e,t)=>!0===e||!!(t&&e&&(ee.fun(e)?e(t):ie(e).includes(t))),jt=(e,t)=>ee.obj(e)?t&&e[t]:e,Wt=(e,t)=>!0===e.default?e[t]:e.default?e.default[t]:void 0,Xt=e=>e,Yt=(e,t=Xt)=>{let n=qt;e.default&&!0!==e.default&&(e=e.default,n=Object.keys(e));const r={};for(const i of n){const n=t(e[i],i);ee.und(n)||(r[i]=n)}return r},qt=["config","onProps","onStart","onChange","onPause","onResume","onRest"],Kt={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function Jt(e){const t=function(e){const t={};let n=0;if(re(e,((e,r)=>{Kt[r]||(t[r]=e,n++)})),n)return t}(e);if(t){const n={to:t};return re(e,((e,r)=>r in t||(n[r]=e))),n}return{...e}}function Zt(e){return e=Ze(e),ee.arr(e)?e.map(Zt):xt(e)?L.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function $t(e){for(const t in e)return!0;return!1}function en(e){return ee.fun(e)||ee.arr(e)&&ee.obj(e[0])}function tn(e,t){e.ref?.delete(e),t?.delete(e)}function nn(e,t){t&&e.ref!==t&&(e.ref?.delete(e),t.add(e),e.ref=t)}var rn={tension:170,friction:26,mass:1,damping:1,easing:Ye.linear,clamp:!1},sn=class{constructor(){this.velocity=0,Object.assign(this,rn)}};function an(e,t){if(ee.und(t.decay)){const n=!ee.und(t.tension)||!ee.und(t.friction);!n&&ee.und(t.frequency)&&ee.und(t.damping)&&ee.und(t.mass)||(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}else e.duration=void 0}var on=[],ln=class{constructor(){this.changed=!1,this.values=on,this.toValues=null,this.fromValues=on,this.config=new sn,this.immediate=!1}};function cn(e,{key:t,props:n,defaultProps:r,state:i,actions:s}){return new Promise(((a,o)=>{let l,c,h=Ht(n.cancel??r?.cancel,t);if(h)p();else{ee.und(n.pause)||(i.paused=Ht(n.pause,t));let e=r?.pause;!0!==e&&(e=i.paused||Ht(e,t)),l=Vt(n.delay||0,t),e?(i.resumeQueue.add(d),s.pause()):(s.resume(),d())}function u(){i.resumeQueue.add(d),i.timeouts.delete(c),c.cancel(),l=c.time-U.now()}function d(){l>0&&!L.skipAnimation?(i.delayed=!0,c=U.setTimeout(p,l),i.pauseQueue.add(u),i.timeouts.add(c)):p()}function p(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(u),i.timeouts.delete(c),e<=(i.cancelId||0)&&(h=!0);try{s.start({...n,callId:e,cancel:h},a)}catch(t){o(t)}}}))}var hn=(e,t)=>1==t.length?t[0]:t.some((e=>e.cancelled))?pn(e.get()):t.every((e=>e.noop))?un(e.get()):dn(e.get(),t.every((e=>e.finished))),un=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),dn=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),pn=e=>({value:e,cancelled:!0,finished:!1});function fn(e,t,n,r){const{callId:i,parentId:s,onRest:a}=t,{asyncTo:o,promise:l}=n;return s||e!==o||t.reset?n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const c=Yt(t,((e,t)=>"onRest"===t?void 0:e));let h,u;const d=new Promise(((e,t)=>(h=e,u=t))),p=e=>{const t=i<=(n.cancelId||0)&&pn(r)||i!==n.asyncId&&dn(r,!1);if(t)throw e.result=t,u(e),e},f=(e,t)=>{const s=new gn,a=new An;return(async()=>{if(L.skipAnimation)throw mn(n),a.result=dn(r,!1),u(a),a;p(s);const o=ee.obj(e)?{...e}:{...t,to:e};o.parentId=i,re(c,((e,t)=>{ee.und(o[t])&&(o[t]=e)}));const l=await r.start(o);return p(s),n.paused&&await new Promise((e=>{n.resumeQueue.add(e)})),l})()};let m;if(L.skipAnimation)return mn(n),dn(r,!1);try{let t;t=ee.arr(e)?(async e=>{for(const t of e)await f(t)})(e):Promise.resolve(e(f,r.stop.bind(r))),await Promise.all([t.then(h),d]),m=dn(r.get(),!0,!1)}catch(g){if(g instanceof gn)m=g.result;else{if(!(g instanceof An))throw g;m=g.result}}finally{i==n.asyncId&&(n.asyncId=s,n.asyncTo=s?o:void 0,n.promise=s?l:void 0)}return ee.fun(a)&&U.batchedUpdates((()=>{a(m,r,r.item)})),m})():l}function mn(e,t){se(e.timeouts,(e=>e.cancel())),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var gn=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},An=class extends Error{constructor(){super("SkipAnimationSignal")}},vn=e=>e instanceof xn,yn=1,xn=class extends tt{constructor(){super(...arguments),this.id=yn++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Tt(this);return e&&e.getValue()}to(...e){return L.to(this,e)}interpolate(...e){return vt(`${gt}The "interpolate" function is deprecated in v9 (use "to" instead)`),L.to(this,e)}toJSON(){return this.get()}observerAdded(e){1==e&&this._attach()}observerRemoved(e){0==e&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){et(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||ve.sort(this),et(this,{type:"priority",parent:this,priority:e})}},bn=Symbol.for("SpringPhase"),En=e=>(1&e[bn])>0,_n=e=>(2&e[bn])>0,Sn=e=>(4&e[bn])>0,wn=(e,t)=>t?e[bn]|=3:e[bn]&=-3,Mn=(e,t)=>t?e[bn]|=4:e[bn]&=-5,Cn=class extends xn{constructor(e,t){if(super(),this.animation=new ln,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!ee.und(e)||!ee.und(t)){const n=ee.obj(e)?{...e}:{...t,from:e};ee.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(_n(this)||this._state.asyncTo)||Sn(this)}get goal(){return Ze(this.animation.to)}get velocity(){const e=Tt(this);return e instanceof Pt?e.lastVelocity||0:e.getPayload().map((e=>e.lastVelocity||0))}get hasAnimated(){return En(this)}get isAnimating(){return _n(this)}get isPaused(){return Sn(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const r=this.animation;let{toValues:i}=r;const{config:s}=r,a=Bt(r.to);!a&&Je(r.to)&&(i=ie(Ze(r.to))),r.values.forEach(((o,l)=>{if(o.done)return;const c=o.constructor==Dt?1:a?a[l].lastPosition:i[l];let h=r.immediate,u=c;if(!h){if(u=o.lastPosition,s.tension<=0)return void(o.done=!0);let t=o.elapsedTime+=e;const n=r.fromValues[l],i=null!=o.v0?o.v0:o.v0=ee.arr(s.velocity)?s.velocity[l]:s.velocity;let a;const d=s.precision||(n==c?.005:Math.min(1,.001*Math.abs(c-n)));if(ee.und(s.duration))if(s.decay){const e=!0===s.decay?.998:s.decay,r=Math.exp(-(1-e)*t);u=n+i/(1-e)*(1-r),h=Math.abs(o.lastPosition-u)<=d,a=i*r}else{a=null==o.lastVelocity?i:o.lastVelocity;const t=s.restVelocity||d/10,r=s.clamp?0:s.bounce,l=!ee.und(r),p=n==c?o.v0>0:nt,f||(h=Math.abs(c-u)<=d,!h));++e){l&&(m=u==c||u>c==p,m&&(a=-a*r,u=c));a+=(1e-6*-s.tension*(u-c)+.001*-s.friction*a)/s.mass*g,u+=a*g}}else{let r=1;s.duration>0&&(this._memoizedDuration!==s.duration&&(this._memoizedDuration=s.duration,o.durationProgress>0&&(o.elapsedTime=s.duration*o.durationProgress,t=o.elapsedTime+=e)),r=(s.progress||0)+t/this._memoizedDuration,r=r>1?1:r<0?0:r,o.durationProgress=r),u=n+s.easing(r)*(c-n),a=(u-o.lastPosition)/e,h=1==r}o.lastVelocity=a,Number.isNaN(u)&&(console.warn("Got NaN while animating:",this),h=!0)}a&&!a[l].done&&(h=!1),h?o.done=!0:t=!1,o.setValue(u,s.round)&&(n=!0)}));const o=Tt(this),l=o.getValue();if(t){const e=Ze(r.to);l===e&&!n||s.decay?n&&s.decay&&this._onChange(l):(o.setValue(e),this._onChange(e)),this._stop()}else n&&this._onChange(l)}set(e){return U.batchedUpdates((()=>{this._stop(),this._focus(e),this._set(e)})),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(_n(this)){const{to:e,config:t}=this.animation;U.batchedUpdates((()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()}))}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return ee.und(e)?(n=this.queue||[],this.queue=[]):n=[ee.obj(e)?e:{...t,to:e}],Promise.all(n.map((e=>this._update(e)))).then((e=>hn(this,e)))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),mn(this._state,e&&this._lastCallId),U.batchedUpdates((()=>this._stop(t,e))),this}reset(){this._update({reset:!0})}eventObserved(e){"change"==e.type?this._start():"priority"==e.type&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:n,from:r}=e;n=ee.obj(n)?n[t]:n,(null==n||en(n))&&(n=void 0),r=ee.obj(r)?r[t]:r,null==r&&(r=void 0);const i={to:n,from:r};return En(this)||(e.reverse&&([n,r]=[r,n]),r=Ze(r),ee.und(r)?Tt(this)||this._set(n):this._set(r)),i}_update({...e},t){const{key:n,defaultProps:r}=this;e.default&&Object.assign(r,Yt(e,((e,t)=>/^on/.test(t)?jt(e,n):e))),Ln(this,e,"onProps"),Fn(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const s=this._state;return cn(++this._lastCallId,{key:n,props:e,defaultProps:r,state:s,actions:{pause:()=>{Sn(this)||(Mn(this,!0),le(s.pauseQueue),Fn(this,"onPause",dn(this,Tn(this,this.animation.to)),this))},resume:()=>{Sn(this)&&(Mn(this,!1),_n(this)&&this._resume(),le(s.resumeQueue),Fn(this,"onResume",dn(this,Tn(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then((n=>{if(e.loop&&n.finished&&(!t||!n.noop)){const t=In(e);if(t)return this._update(t,!0)}return n}))}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(pn(this));const r=!ee.und(e.to),i=!ee.und(e.from);if(r||i){if(!(t.callId>this._lastToId))return n(pn(this));this._lastToId=t.callId}const{key:s,defaultProps:a,animation:o}=this,{to:l,from:c}=o;let{to:h=l,from:u=c}=e;!i||r||t.default&&!ee.und(h)||(h=u),t.reverse&&([h,u]=[u,h]);const d=!te(u,c);d&&(o.from=u),u=Ze(u);const p=!te(h,l);p&&this._focus(h);const f=en(t.to),{config:m}=o,{decay:g,velocity:A}=m;(r||i)&&(m.velocity=0),t.config&&!f&&function(e,t,n){n&&(an(n={...n},t),t={...n,...t}),an(e,t),Object.assign(e,t);for(const a in rn)null==e[a]&&(e[a]=rn[a]);let{frequency:r,damping:i}=e;const{mass:s}=e;ee.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*s,e.friction=4*Math.PI*i*s/r)}(m,Vt(t.config,s),t.config!==a.config?Vt(a.config,s):void 0);let v=Tt(this);if(!v||ee.und(h))return n(dn(this,!0));const y=ee.und(t.reset)?i&&!t.default:!ee.und(u)&&Ht(t.reset,s),x=y?u:this.get(),b=Zt(h),E=ee.num(b)||ee.arr(b)||xt(b),_=!f&&(!E||Ht(a.immediate||t.immediate,s));if(p){const e=Nt(h);if(e!==v.constructor){if(!_)throw Error(`Cannot animate between ${v.constructor.name} and ${e.name}, as the "to" prop suggests`);v=this._set(b)}}const S=v.constructor;let w=Je(h),M=!1;if(!w){const e=y||!En(this)&&d;(p||e)&&(M=te(Zt(x),b),w=!M),(te(o.immediate,_)||_)&&te(m.decay,g)&&te(m.velocity,A)||(w=!0)}if(M&&_n(this)&&(o.changed&&!y?w=!0:w||this._stop(l)),!f&&((w||Je(l))&&(o.values=v.getPayload(),o.toValues=Je(h)?null:S==Dt?[1]:ie(b)),o.immediate!=_&&(o.immediate=_,_||y||this._set(l)),w)){const{onRest:e}=o;ne(Dn,(e=>Ln(this,t,e)));const r=dn(this,Tn(this,l));le(this._pendingCalls,r),this._pendingCalls.add(n),o.changed&&U.batchedUpdates((()=>{o.changed=!y,e?.(r,this),y?Vt(a.onRest,r):o.onStart?.(r,this)}))}y&&this._set(x),f?n(fn(t.to,t,this._state,this)):w?this._start():_n(this)&&!p?this._pendingCalls.add(n):n(un(x))}_focus(e){const t=this.animation;e!==t.to&&($e(this)&&this._detach(),t.to=e,$e(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;Je(t)&&(rt(t,this),vn(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;Je(e)&&it(e,this)}_set(e,t=!0){const n=Ze(e);if(!ee.und(n)){const e=Tt(this);if(!e||!te(n,e.getValue())){const r=Nt(n);e&&e.constructor==r?e.setValue(n):It(this,r.create(n)),e&&U.batchedUpdates((()=>{this._onChange(n,t)}))}}return Tt(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Fn(this,"onStart",dn(this,Tn(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Vt(this.animation.onChange,e,this)),Vt(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Tt(this).reset(Ze(e.to)),e.immediate||(e.fromValues=e.values.map((e=>e.lastPosition))),_n(this)||(wn(this,!0),Sn(this)||this._resume())}_resume(){L.skipAnimation?this.finish():ve.start(this)}_stop(e,t){if(_n(this)){wn(this,!1);const n=this.animation;ne(n.values,(e=>{e.done=!0})),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),et(this,{type:"idle",parent:this});const r=t?pn(this.get()):dn(this.get(),Tn(this,e??n.to));le(this._pendingCalls,r),n.changed&&(n.changed=!1,Fn(this,"onRest",r,this))}}};function Tn(e,t){const n=Zt(t);return te(Zt(e.get()),n)}function In(e,t=e.loop,n=e.to){const r=Vt(t);if(r){const i=!0!==r&&Jt(r),s=(i||e).reverse,a=!i||i.reset;return Bn({...e,loop:t,default:!1,pause:void 0,to:!s||en(n)?n:void 0,from:a?e.from:void 0,reset:a,...i})}}function Bn(e){const{to:t,from:n}=e=Jt(e),r=new Set;return ee.obj(t)&&Pn(t,r),ee.obj(n)&&Pn(n,r),e.keys=r.size?Array.from(r):null,e}function Rn(e){const t=Bn(e);return ee.und(t.default)&&(t.default=Yt(t)),t}function Pn(e,t){re(e,((e,n)=>null!=e&&t.add(n)))}var Dn=["onStart","onRest","onChange","onPause","onResume"];function Ln(e,t,n){e.animation[n]=t[n]!==Wt(t,n)?jt(t[n],e.key):void 0}function Fn(e,t,...n){e.animation[t]?.(...n),e.defaultProps[t]?.(...n)}var Un=["onStart","onChange","onRest"],On=1,Nn=class{constructor(e,t){this.id=On++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every((e=>e.idle&&!e.isDelayed&&!e.isPaused))}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each(((t,n)=>e[n]=t.get())),e}set(e){for(const t in e){const n=e[t];ee.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(Bn(e)),this}start(e){let{queue:t}=this;return e?t=ie(e).map(Bn):this.queue=[],this._flush?this._flush(this,t):(jn(this,t),kn(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;ne(ie(t),(t=>n[t].stop(!!e)))}else mn(this._state,this._lastAsyncId),this.each((t=>t.stop(!!e)));return this}pause(e){if(ee.und(e))this.start({pause:!0});else{const t=this.springs;ne(ie(e),(e=>t[e].pause()))}return this}resume(e){if(ee.und(e))this.start({pause:!1});else{const t=this.springs;ne(ie(e),(e=>t[e].resume()))}return this}each(e){re(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,r=this._active.size>0,i=this._changed.size>0;(r&&!this._started||i&&!this._started)&&(this._started=!0,se(e,(([e,t])=>{t.value=this.get(),e(t,this,this._item)})));const s=!r&&this._started,a=i||s&&n.size?this.get():null;i&&t.size&&se(t,(([e,t])=>{t.value=a,e(t,this,this._item)})),s&&(this._started=!1,se(n,(([e,t])=>{t.value=a,e(t,this,this._item)})))}eventObserved(e){if("change"==e.type)this._changed.add(e.parent),e.idle||this._active.add(e.parent);else{if("idle"!=e.type)return;this._active.delete(e.parent)}U.onFrame(this._onFrame)}};function kn(e,t){return Promise.all(t.map((t=>Gn(e,t)))).then((t=>hn(e,t)))}async function Gn(e,t,n){const{keys:r,to:i,from:s,loop:a,onRest:o,onResolve:l}=t,c=ee.obj(t.default)&&t.default;a&&(t.loop=!1),!1===i&&(t.to=null),!1===s&&(t.from=null);const h=ee.arr(i)||ee.fun(i)?i:void 0;h?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):ne(Un,(n=>{const r=t[n];if(ee.fun(r)){const i=e._events[n];t[n]=({finished:e,cancelled:t})=>{const n=i.get(r);n?(e||(n.finished=!1),t&&(n.cancelled=!0)):i.set(r,{value:null,finished:e||!1,cancelled:t||!1})},c&&(c[n]=t[n])}}));const u=e._state;t.pause===!u.paused?(u.paused=t.pause,le(t.pause?u.pauseQueue:u.resumeQueue)):u.paused&&(t.pause=!0);const d=(r||Object.keys(e.springs)).map((n=>e.springs[n].start(t))),p=!0===t.cancel||!0===Wt(t,"cancel");(h||p&&u.asyncId)&&d.push(cn(++e._lastAsyncId,{props:t,state:u,actions:{pause:$,resume:$,start(t,n){p?(mn(u,e._lastAsyncId),n(pn(e))):(t.onRest=o,n(fn(h,t,u,e)))}}})),u.paused&&await new Promise((e=>{u.resumeQueue.add(e)}));const f=hn(e,await Promise.all(d));if(a&&f.finished&&(!n||!f.noop)){const n=In(t,a,i);if(n)return jn(e,[n]),Gn(e,n,!0)}return l&&U.batchedUpdates((()=>l(f,e,e.item))),f}function zn(e,t){const n={...e.springs};return t&&ne(ie(t),(e=>{ee.und(e.keys)&&(e=Bn(e)),ee.obj(e.to)||(e={...e,to:void 0}),Hn(n,e,(e=>Vn(e)))})),Qn(e,n),n}function Qn(e,t){re(t,((t,n)=>{e.springs[n]||(e.springs[n]=t,rt(t,e))}))}function Vn(e,t){const n=new Cn;return n.key=e,t&&rt(n,t),n}function Hn(e,t,n){t.keys&&ne(t.keys,(r=>{(e[r]||(e[r]=n(r)))._prepareNode(t)}))}function jn(e,t){ne(t,(t=>{Hn(e.springs,t,(t=>Vn(t,e)))}))}var Wn=({children:e,...t})=>{const n=(0,i.useContext)(Xn),r=t.pause||!!n.pause,s=t.immediate||!!n.immediate;t=function(e,t){const[n]=(0,i.useState)((()=>({inputs:t,result:e()}))),r=(0,i.useRef)(),s=r.current;let a=s;if(a){const n=Boolean(t&&a.inputs&&function(e,t){if(e.length!==t.length)return!1;for(let n=0;n{r.current=a,s==n&&(n.inputs=n.result=void 0)}),[a]),a.result}((()=>({pause:r,immediate:s})),[r,s]);const{Provider:a}=Xn;return i.createElement(a,{value:t},e)},Xn=function(e,t){return Object.assign(e,i.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}(Wn,{});Wn.Provider=Xn.Provider,Wn.Consumer=Xn.Consumer;var Yn=()=>{const e=[],t=function(t){yt(`${gt}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`);const r=[];return ne(e,((e,i)=>{if(ee.und(t))r.push(e.start());else{const s=n(t,e,i);s&&r.push(e.start(s))}})),r};t.current=e,t.add=function(t){e.includes(t)||e.push(t)},t.delete=function(t){const n=e.indexOf(t);~n&&e.splice(n,1)},t.pause=function(){return ne(e,(e=>e.pause(...arguments))),this},t.resume=function(){return ne(e,(e=>e.resume(...arguments))),this},t.set=function(t){ne(e,((e,n)=>{const r=ee.fun(t)?t(n,e):t;r&&e.set(r)}))},t.start=function(t){const n=[];return ne(e,((e,r)=>{if(ee.und(t))n.push(e.start());else{const i=this._getProps(t,e,r);i&&n.push(e.start(i))}})),n},t.stop=function(){return ne(e,(e=>e.stop(...arguments))),this},t.update=function(t){return ne(e,((e,n)=>e.update(this._getProps(t,e,n)))),this};const n=function(e,t,n){return ee.fun(e)?e(n,t):e};return t._getProps=n,t};function qn(e,t,n){const r=ee.fun(t)&&t;r&&!n&&(n=[]);const s=(0,i.useMemo)((()=>r||3==arguments.length?Yn():void 0),[]),a=(0,i.useRef)(0),o=_t(),l=(0,i.useMemo)((()=>({ctrls:[],queue:[],flush(e,t){const n=zn(e,t);return a.current>0&&!l.queue.length&&!Object.keys(n).some((t=>!e.springs[t]))?kn(e,t):new Promise((r=>{Qn(e,n),l.queue.push((()=>{r(kn(e,t))})),o()}))}})),[]),c=(0,i.useRef)([...l.ctrls]),h=[],u=Mt(e)||0;function d(e,n){for(let i=e;i{ne(c.current.slice(e,u),(e=>{tn(e,s),e.stop(!0)})),c.current.length=e,d(u,e)}),[e]),(0,i.useMemo)((()=>{d(0,Math.min(u,e))}),n);const p=c.current.map(((e,t)=>zn(e,h[t]))),f=(0,i.useContext)(Wn),m=Mt(f),g=f!==m&&$t(f);bt((()=>{a.current++,l.ctrls=c.current;const{queue:e}=l;e.length&&(l.queue=[],ne(e,(e=>e()))),ne(c.current,((e,t)=>{s?.add(e),g&&e.start({default:f});const n=h[t];n&&(nn(e,n.ref),e.ref?e.queue.push(n):e.start(n))}))})),St((()=>()=>{ne(l.ctrls,(e=>e.stop(!0)))}));const A=p.map((e=>({...e})));return s?[A,s]:A}function Kn(e,t){const n=ee.fun(e),[[r],i]=qn(1,n?e:[e],n?t||[]:t);return n||2==arguments.length?[r,i]:r}var Jn=class extends xn{constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=ze(...t);const n=this._get(),r=Nt(n);It(this,r.create(n))}advance(e){const t=this._get();te(t,this.get())||(Tt(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&$n(this._active)&&er(this)}_get(){const e=ee.arr(this.source)?this.source.map(Ze):ie(Ze(this.source));return this.calc(...e)}_start(){this.idle&&!$n(this._active)&&(this.idle=!1,ne(Bt(this),(e=>{e.done=!1})),L.skipAnimation?(U.batchedUpdates((()=>this.advance())),er(this)):ve.start(this))}_attach(){let e=1;ne(ie(this.source),(t=>{Je(t)&&rt(t,this),vn(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))})),this.priority=e,this._start()}_detach(){ne(ie(this.source),(e=>{Je(e)&&it(e,this)})),this._active.clear(),er(this)}eventObserved(e){"change"==e.type?e.idle?this.advance():(this._active.add(e.parent),this._start()):"idle"==e.type?this._active.delete(e.parent):"priority"==e.type&&(this.priority=ie(this.source).reduce(((e,t)=>Math.max(e,(vn(t)?t.priority:0)+1)),0))}};function Zn(e){return!1!==e.idle}function $n(e){return!e.size||Array.from(e).every(Zn)}function er(e){e.idle||(e.idle=!0,ne(Bt(e),(e=>{e.done=!0})),et(e,{type:"idle",parent:e}))}L.assign({createStringInterpolator:mt,to:(e,t)=>new Jn(e,t)});ve.advance;var tr=["primitive"].concat(Object.keys(a).filter((e=>/^[A-Z]/.test(e))).map((e=>e[0].toLowerCase()+e.slice(1))));L.assign({createStringInterpolator:mt,colors:{transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},frameLoop:"demand"}),(0,o.addEffect)((()=>{U.advance()}));var nr=((e,{applyAnimatedValues:t=(()=>!1),createAnimatedStyle:n=(e=>new Ft(e)),getComponentProps:r=(e=>e)}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:r},s=e=>{const t=Qt(e)||"Anonymous";return(e=ee.str(e)?s[e]||(s[e]=kt(e,i)):e[zt]||(e[zt]=kt(e,i))).displayName=`Animated(${t})`,e};return re(e,((t,n)=>{ee.arr(e)&&(n=Qt(t)),s[n]=s(t)})),{animated:s}})(tr,{applyAnimatedValues:o.applyProps}),rr=nr.animated;const ir={toVector:(e,t)=>(void 0===e&&(e=t),Array.isArray(e)?e:[e,e]),add:(e,t)=>[e[0]+t[0],e[1]+t[1]],sub:(e,t)=>[e[0]-t[0],e[1]-t[1]],addTo(e,t){e[0]+=t[0],e[1]+=t[1]},subTo(e,t){e[0]-=t[0],e[1]-=t[1]}};function sr(e,t,n){return 0===t||Math.abs(t)===1/0?Math.pow(e,5*n):e*t*n/(t+n*e)}function ar(e,t,n,r=.15){return 0===r?function(e,t,n){return Math.max(t,Math.min(e,n))}(e,t,n):en?+sr(e-n,n-t,r)+n:e}function or(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function lr(e,t,n){return(t=or(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function cr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function hr(e){for(var t=1;t{var n,r;return t.target===e.currentTarget||(null===(n=e.currentTarget)||void 0===n||null===(r=n.contains)||void 0===r?void 0:r.call(n,t.target))}))}(e).map((e=>e.identifier))}function Er(e,t){const[n,r]=Array.from(e.touches).filter((e=>t.includes(e.identifier)));return xr(n,r)}function _r(e){const t=yr(e);return Ar(e)?t.identifier:t.pointerId}function Sr(e){const t=yr(e);return[t.clientX,t.clientY]}function wr(e){let{deltaX:t,deltaY:n,deltaMode:r}=e;return 1===r?(t*=40,n*=40):2===r&&(t*=800,n*=800),[t,n]}function Mr(e,...t){return"function"==typeof e?e(...t):e}function Cr(){}function Tr(...e){return 0===e.length?Cr:1===e.length?e[0]:function(){let t;for(const n of e)t=n.apply(this,arguments)||t;return t}}function Ir(e,t){return Object.assign({},t,e||{})}class Br{constructor(e,t,n){this.ctrl=e,this.args=t,this.key=n,this.state||(this.state={},this.computeValues([0,0]),this.computeInitial(),this.init&&this.init(),this.reset())}get state(){return this.ctrl.state[this.key]}set state(e){this.ctrl.state[this.key]=e}get shared(){return this.ctrl.state.shared}get eventStore(){return this.ctrl.gestureEventStores[this.key]}get timeoutStore(){return this.ctrl.gestureTimeoutStores[this.key]}get config(){return this.ctrl.config[this.key]}get sharedConfig(){return this.ctrl.config.shared}get handler(){return this.ctrl.handlers[this.key]}reset(){const{state:e,shared:t,ingKey:n,args:r}=this;t[n]=e._active=e.active=e._blocked=e._force=!1,e._step=[!1,!1],e.intentional=!1,e._movement=[0,0],e._distance=[0,0],e._direction=[0,0],e._delta=[0,0],e._bounds=[[-1/0,1/0],[-1/0,1/0]],e.args=r,e.axis=void 0,e.memo=void 0,e.elapsedTime=e.timeDelta=0,e.direction=[0,0],e.distance=[0,0],e.overflow=[0,0],e._movementBound=[!1,!1],e.velocity=[0,0],e.movement=[0,0],e.delta=[0,0],e.timeStamp=0}start(e){const t=this.state,n=this.config;t._active||(this.reset(),this.computeInitial(),t._active=!0,t.target=e.target,t.currentTarget=e.currentTarget,t.lastOffset=n.from?Mr(n.from,t):t.offset,t.offset=t.lastOffset,t.startTime=t.timeStamp=e.timeStamp)}computeValues(e){const t=this.state;t._values=e,t.values=this.config.transform(e)}computeInitial(){const e=this.state;e._initial=e._values,e.initial=e.values}compute(e){const{state:t,config:n,shared:r}=this;t.args=this.args;let i=0;if(e&&(t.event=e,n.preventDefault&&e.cancelable&&t.event.preventDefault(),t.type=e.type,r.touches=this.ctrl.pointerIds.size||this.ctrl.touchIds.size,r.locked=!!document.pointerLockElement,Object.assign(r,function(e){const t={};if("buttons"in e&&(t.buttons=e.buttons),"shiftKey"in e){const{shiftKey:n,altKey:r,metaKey:i,ctrlKey:s}=e;Object.assign(t,{shiftKey:n,altKey:r,metaKey:i,ctrlKey:s})}return t}(e)),r.down=r.pressed=r.buttons%2==1||r.touches>0,i=e.timeStamp-t.timeStamp,t.timeStamp=e.timeStamp,t.elapsedTime=t.timeStamp-t.startTime),t._active){const e=t._delta.map(Math.abs);ir.addTo(t._distance,e)}this.axisIntent&&this.axisIntent(e);const[s,a]=t._movement,[o,l]=n.threshold,{_step:c,values:h}=t;if(n.hasCustomTransform?(!1===c[0]&&(c[0]=Math.abs(s)>=o&&h[0]),!1===c[1]&&(c[1]=Math.abs(a)>=l&&h[1])):(!1===c[0]&&(c[0]=Math.abs(s)>=o&&Math.sign(s)*o),!1===c[1]&&(c[1]=Math.abs(a)>=l&&Math.sign(a)*l)),t.intentional=!1!==c[0]||!1!==c[1],!t.intentional)return;const u=[0,0];if(n.hasCustomTransform){const[e,t]=h;u[0]=!1!==c[0]?e-c[0]:0,u[1]=!1!==c[1]?t-c[1]:0}else u[0]=!1!==c[0]?s-c[0]:0,u[1]=!1!==c[1]?a-c[1]:0;this.restrictToAxis&&!t._blocked&&this.restrictToAxis(u);const d=t.offset,p=t._active&&!t._blocked||t.active;p&&(t.first=t._active&&!t.active,t.last=!t._active&&t.active,t.active=r[this.ingKey]=t._active,e&&(t.first&&("bounds"in n&&(t._bounds=Mr(n.bounds,t)),this.setup&&this.setup()),t.movement=u,this.computeOffset()));const[f,m]=t.offset,[[g,A],[v,y]]=t._bounds;t.overflow=[fA?1:0,my?1:0],t._movementBound[0]=!!t.overflow[0]&&(!1===t._movementBound[0]?t._movement[0]:t._movementBound[0]),t._movementBound[1]=!!t.overflow[1]&&(!1===t._movementBound[1]?t._movement[1]:t._movementBound[1]);const x=t._active&&n.rubberband||[0,0];if(t.offset=function(e,[t,n],[r,i]){const[[s,a],[o,l]]=e;return[ar(t,s,a,r),ar(n,o,l,i)]}(t._bounds,t.offset,x),t.delta=ir.sub(t.offset,d),this.computeMovement(),p&&(!t.last||i>32)){t.delta=ir.sub(t.offset,d);const e=t.delta.map(Math.abs);ir.addTo(t.distance,e),t.direction=t.delta.map(Math.sign),t._direction=t._delta.map(Math.sign),!t.first&&i>0&&(t.velocity=[e[0]/i,e[1]/i],t.timeDelta=i)}}emit(){const e=this.state,t=this.shared,n=this.config;if(e._active||this.clean(),(e._blocked||!e.intentional)&&!e._force&&!n.triggerAllEvents)return;const r=this.handler(hr(hr(hr({},t),e),{},{[this.aliasKey]:e.values}));void 0!==r&&(e.memo=r)}clean(){this.eventStore.clean(),this.timeoutStore.clean()}}class Rr extends Br{constructor(...e){super(...e),lr(this,"aliasKey","xy")}reset(){super.reset(),this.state.axis=void 0}init(){this.state.offset=[0,0],this.state.lastOffset=[0,0]}computeOffset(){this.state.offset=ir.add(this.state.lastOffset,this.state.movement)}computeMovement(){this.state.movement=ir.sub(this.state.offset,this.state.lastOffset)}axisIntent(e){const t=this.state,n=this.config;if(!t.axis&&e){const r="object"==typeof n.axisThreshold?n.axisThreshold[vr(e)]:n.axisThreshold;t.axis=function([e,t],n){const r=Math.abs(e),i=Math.abs(t);return r>i&&r>n?"x":i>r&&i>n?"y":void 0}(t._movement,r)}t._blocked=(n.lockDirection||!!n.axis)&&!t.axis||!!n.axis&&n.axis!==t.axis}restrictToAxis(e){if(this.config.axis||this.config.lockDirection)switch(this.state.axis){case"x":e[1]=0;break;case"y":e[0]=0}}}const Pr=e=>e,Dr={enabled:(e=!0)=>e,eventOptions:(e,t,n)=>hr(hr({},n.shared.eventOptions),e),preventDefault:(e=!1)=>e,triggerAllEvents:(e=!1)=>e,rubberband(e=0){switch(e){case!0:return[.15,.15];case!1:return[0,0];default:return ir.toVector(e)}},from:e=>"function"==typeof e?e:null!=e?ir.toVector(e):void 0,transform(e,t,n){const r=e||n.shared.transform;return this.hasCustomTransform=!!r,r||Pr},threshold:e=>ir.toVector(e,0)};const Lr=hr(hr({},Dr),{},{axis(e,t,{axis:n}){if(this.lockDirection="lock"===n,!this.lockDirection)return n},axisThreshold:(e=0)=>e,bounds(e={}){if("function"==typeof e)return t=>Lr.bounds(e(t));if("current"in e)return()=>e.current;if("function"==typeof HTMLElement&&e instanceof HTMLElement)return e;const{left:t=-1/0,right:n=1/0,top:r=-1/0,bottom:i=1/0}=e;return[[t,n],[r,i]]}}),Fr={ArrowRight:(e,t=1)=>[e*t,0],ArrowLeft:(e,t=1)=>[-1*e*t,0],ArrowUp:(e,t=1)=>[0,-1*e*t],ArrowDown:(e,t=1)=>[0,e*t]};const Ur="undefined"!=typeof window&&window.document&&window.document.createElement;function Or(){return Ur&&"ontouchstart"in window}const Nr={isBrowser:Ur,gesture:function(){try{return"constructor"in GestureEvent}catch(za){return!1}}(),touch:Or(),touchscreen:Or()||Ur&&window.navigator.maxTouchPoints>1,pointer:Ur&&"onpointerdown"in window,pointerLock:Ur&&"exitPointerLock"in window.document},kr={mouse:0,touch:0,pen:8},Gr=hr(hr({},Lr),{},{device(e,t,{pointer:{touch:n=!1,lock:r=!1,mouse:i=!1}={}}){return this.pointerLock=r&&Nr.pointerLock,Nr.touch&&n?"touch":this.pointerLock?"mouse":Nr.pointer&&!i?"pointer":Nr.touch?"touch":"mouse"},preventScrollAxis(e,t,{preventScroll:n}){if(this.preventScrollDelay="number"==typeof n?n:n||void 0===n&&e?250:void 0,Nr.touchscreen&&!1!==n)return e||(void 0!==n?"y":void 0)},pointerCapture(e,t,{pointer:{capture:n=!0,buttons:r=1,keys:i=!0}={}}){return this.pointerButtons=r,this.keys=i,!this.pointerLock&&"pointer"===this.device&&n},threshold(e,t,{filterTaps:n=!1,tapsThreshold:r=3,axis:i}){const s=ir.toVector(e,n?r:i?1:0);return this.filterTaps=n,this.tapsThreshold=r,s},swipe({velocity:e=.5,distance:t=50,duration:n=250}={}){return{velocity:this.transform(ir.toVector(e)),distance:this.transform(ir.toVector(t)),duration:n}},delay(e=0){switch(e){case!0:return 180;case!1:return 0;default:return e}},axisThreshold:e=>e?hr(hr({},kr),e):kr,keyboardDisplacement:(e=10)=>e});function zr(e){const[t,n]=e.overflow,[r,i]=e._delta,[s,a]=e._direction;(t<0&&r>0&&s<0||t>0&&r<0&&s>0)&&(e._movement[0]=e._movementBound[0]),(n<0&&i>0&&a<0||n>0&&i<0&&a>0)&&(e._movement[1]=e._movementBound[1])}const Qr=hr(hr({},Dr),{},{device(e,t,{shared:n,pointer:{touch:r=!1}={}}){if(n.target&&!Nr.touch&&Nr.gesture)return"gesture";if(Nr.touch&&r)return"touch";if(Nr.touchscreen){if(Nr.pointer)return"pointer";if(Nr.touch)return"touch"}},bounds(e,t,{scaleBounds:n={},angleBounds:r={}}){const i=e=>{const t=Ir(Mr(n,e),{min:-1/0,max:1/0});return[t.min,t.max]},s=e=>{const t=Ir(Mr(r,e),{min:-1/0,max:1/0});return[t.min,t.max]};return"function"!=typeof n&&"function"!=typeof r?[i(),s()]:e=>[i(e),s(e)]},threshold(e,t,n){this.lockDirection="lock"===n.axis;return ir.toVector(e,this.lockDirection?[.1,3]:0)},modifierKey:e=>void 0===e?"ctrlKey":e,pinchOnWheel:(e=!0)=>e});const Vr=hr(hr({},Lr),{},{mouseOnly:(e=!0)=>e});const Hr=Lr;const jr=Lr;const Wr=hr(hr({},Lr),{},{mouseOnly:(e=!0)=>e}),Xr=new Map,Yr=new Map;function qr(e){Xr.set(e.key,e.engine),Yr.set(e.key,e.resolver)}const Kr={key:"drag",engine:class extends Rr{constructor(...e){super(...e),lr(this,"ingKey","dragging")}reset(){super.reset();const e=this.state;e._pointerId=void 0,e._pointerActive=!1,e._keyboardActive=!1,e._preventScroll=!1,e._delayed=!1,e.swipe=[0,0],e.tap=!1,e.canceled=!1,e.cancel=this.cancel.bind(this)}setup(){const e=this.state;if(e._bounds instanceof HTMLElement){const t=e._bounds.getBoundingClientRect(),n=e.currentTarget.getBoundingClientRect(),r={left:t.left-n.left+e.offset[0],right:t.right-n.right+e.offset[0],top:t.top-n.top+e.offset[1],bottom:t.bottom-n.bottom+e.offset[1]};e._bounds=Lr.bounds(r)}}cancel(){const e=this.state;e.canceled||(e.canceled=!0,e._active=!1,setTimeout((()=>{this.compute(),this.emit()}),0))}setActive(){this.state._active=this.state._pointerActive||this.state._keyboardActive}clean(){this.pointerClean(),this.state._pointerActive=!1,this.state._keyboardActive=!1,super.clean()}pointerDown(e){const t=this.config,n=this.state;if(null!=e.buttons&&(Array.isArray(t.pointerButtons)?!t.pointerButtons.includes(e.buttons):-1!==t.pointerButtons&&t.pointerButtons!==e.buttons))return;const r=this.ctrl.setEventIds(e);t.pointerCapture&&e.target.setPointerCapture(e.pointerId),r&&r.size>1&&n._pointerActive||(this.start(e),this.setupPointer(e),n._pointerId=_r(e),n._pointerActive=!0,this.computeValues(Sr(e)),this.computeInitial(),t.preventScrollAxis&&"mouse"!==vr(e)?(n._active=!1,this.setupScrollPrevention(e)):t.delay>0?(this.setupDelayTrigger(e),t.triggerAllEvents&&(this.compute(e),this.emit())):this.startPointerDrag(e))}startPointerDrag(e){const t=this.state;t._active=!0,t._preventScroll=!0,t._delayed=!1,this.compute(e),this.emit()}pointerMove(e){const t=this.state,n=this.config;if(!t._pointerActive)return;const r=_r(e);if(void 0!==t._pointerId&&r!==t._pointerId)return;const i=Sr(e);return document.pointerLockElement===e.target?t._delta=[e.movementX,e.movementY]:(t._delta=ir.sub(i,t._values),this.computeValues(i)),ir.addTo(t._movement,t._delta),this.compute(e),t._delayed&&t.intentional?(this.timeoutStore.remove("dragDelay"),t.active=!1,void this.startPointerDrag(e)):n.preventScrollAxis&&!t._preventScroll?t.axis?t.axis===n.preventScrollAxis||"xy"===n.preventScrollAxis?(t._active=!1,void this.clean()):(this.timeoutStore.remove("startPointerDrag"),void this.startPointerDrag(e)):void 0:void this.emit()}pointerUp(e){this.ctrl.setEventIds(e);try{this.config.pointerCapture&&e.target.hasPointerCapture(e.pointerId)&&e.target.releasePointerCapture(e.pointerId)}catch(a){0}const t=this.state,n=this.config;if(!t._active||!t._pointerActive)return;const r=_r(e);if(void 0!==t._pointerId&&r!==t._pointerId)return;this.state._pointerActive=!1,this.setActive(),this.compute(e);const[i,s]=t._distance;if(t.tap=i<=n.tapsThreshold&&s<=n.tapsThreshold,t.tap&&n.filterTaps)t._force=!0;else{const[e,r]=t._delta,[i,s]=t._movement,[a,o]=n.swipe.velocity,[l,c]=n.swipe.distance,h=n.swipe.duration;if(t.elapsedTimea&&Math.abs(i)>l&&(t.swipe[0]=Math.sign(e)),h>o&&Math.abs(s)>c&&(t.swipe[1]=Math.sign(r))}}this.emit()}pointerClick(e){!this.state.tap&&e.detail>0&&(e.preventDefault(),e.stopPropagation())}setupPointer(e){const t=this.config,n=t.device;t.pointerLock&&e.currentTarget.requestPointerLock(),t.pointerCapture||(this.eventStore.add(this.sharedConfig.window,n,"change",this.pointerMove.bind(this)),this.eventStore.add(this.sharedConfig.window,n,"end",this.pointerUp.bind(this)),this.eventStore.add(this.sharedConfig.window,n,"cancel",this.pointerUp.bind(this)))}pointerClean(){this.config.pointerLock&&document.pointerLockElement===this.state.currentTarget&&document.exitPointerLock()}preventScroll(e){this.state._preventScroll&&e.cancelable&&e.preventDefault()}setupScrollPrevention(e){this.state._preventScroll=!1,function(e){"persist"in e&&"function"==typeof e.persist&&e.persist()}(e);const t=this.eventStore.add(this.sharedConfig.window,"touch","change",this.preventScroll.bind(this),{passive:!1});this.eventStore.add(this.sharedConfig.window,"touch","end",t),this.eventStore.add(this.sharedConfig.window,"touch","cancel",t),this.timeoutStore.add("startPointerDrag",this.startPointerDrag.bind(this),this.config.preventScrollDelay,e)}setupDelayTrigger(e){this.state._delayed=!0,this.timeoutStore.add("dragDelay",(()=>{this.state._step=[0,0],this.startPointerDrag(e)}),this.config.delay)}keyDown(e){const t=Fr[e.key];if(t){const n=this.state,r=e.shiftKey?10:e.altKey?.1:1;this.start(e),n._delta=t(this.config.keyboardDisplacement,r),n._keyboardActive=!0,ir.addTo(n._movement,n._delta),this.compute(e),this.emit()}}keyUp(e){e.key in Fr&&(this.state._keyboardActive=!1,this.setActive(),this.compute(e),this.emit())}bind(e){const t=this.config.device;e(t,"start",this.pointerDown.bind(this)),this.config.pointerCapture&&(e(t,"change",this.pointerMove.bind(this)),e(t,"end",this.pointerUp.bind(this)),e(t,"cancel",this.pointerUp.bind(this)),e("lostPointerCapture","",this.pointerUp.bind(this))),this.config.keys&&(e("key","down",this.keyDown.bind(this)),e("key","up",this.keyUp.bind(this))),this.config.filterTaps&&e("click","",this.pointerClick.bind(this),{capture:!0,passive:!1})}},resolver:Gr},Jr={key:"hover",engine:class extends Rr{constructor(...e){super(...e),lr(this,"ingKey","hovering")}enter(e){this.config.mouseOnly&&"mouse"!==e.pointerType||(this.start(e),this.computeValues(Sr(e)),this.compute(e),this.emit())}leave(e){if(this.config.mouseOnly&&"mouse"!==e.pointerType)return;const t=this.state;if(!t._active)return;t._active=!1;const n=Sr(e);t._movement=t._delta=ir.sub(n,t._values),this.computeValues(n),this.compute(e),t.delta=t.movement,this.emit()}bind(e){e("pointer","enter",this.enter.bind(this)),e("pointer","leave",this.leave.bind(this))}},resolver:Wr},Zr={key:"move",engine:class extends Rr{constructor(...e){super(...e),lr(this,"ingKey","moving")}move(e){this.config.mouseOnly&&"mouse"!==e.pointerType||(this.state._active?this.moveChange(e):this.moveStart(e),this.timeoutStore.add("moveEnd",this.moveEnd.bind(this)))}moveStart(e){this.start(e),this.computeValues(Sr(e)),this.compute(e),this.computeInitial(),this.emit()}moveChange(e){if(!this.state._active)return;const t=Sr(e),n=this.state;n._delta=ir.sub(t,n._values),ir.addTo(n._movement,n._delta),this.computeValues(t),this.compute(e),this.emit()}moveEnd(e){this.state._active&&(this.state._active=!1,this.compute(e),this.emit())}bind(e){e("pointer","change",this.move.bind(this)),e("pointer","leave",this.moveEnd.bind(this))}},resolver:Vr},$r={key:"pinch",engine:class extends Br{constructor(...e){super(...e),lr(this,"ingKey","pinching"),lr(this,"aliasKey","da")}init(){this.state.offset=[1,0],this.state.lastOffset=[1,0],this.state._pointerEvents=new Map}reset(){super.reset();const e=this.state;e._touchIds=[],e.canceled=!1,e.cancel=this.cancel.bind(this),e.turns=0}computeOffset(){const{type:e,movement:t,lastOffset:n}=this.state;this.state.offset="wheel"===e?ir.add(t,n):[(1+t[0])*n[0],t[1]+n[1]]}computeMovement(){const{offset:e,lastOffset:t}=this.state;this.state.movement=[e[0]/t[0],e[1]-t[1]]}axisIntent(){const e=this.state,[t,n]=e._movement;if(!e.axis){const r=30*Math.abs(t)-Math.abs(n);r<0?e.axis="angle":r>0&&(e.axis="scale")}}restrictToAxis(e){this.config.lockDirection&&("scale"===this.state.axis?e[1]=0:"angle"===this.state.axis&&(e[0]=0))}cancel(){const e=this.state;e.canceled||setTimeout((()=>{e.canceled=!0,e._active=!1,this.compute(),this.emit()}),0)}touchStart(e){this.ctrl.setEventIds(e);const t=this.state,n=this.ctrl.touchIds;if(t._active&&t._touchIds.every((e=>n.has(e))))return;if(n.size<2)return;this.start(e),t._touchIds=Array.from(n).slice(0,2);const r=Er(e,t._touchIds);r&&this.pinchStart(e,r)}pointerStart(e){if(null!=e.buttons&&e.buttons%2!=1)return;this.ctrl.setEventIds(e),e.target.setPointerCapture(e.pointerId);const t=this.state,n=t._pointerEvents,r=this.ctrl.pointerIds;if(t._active&&Array.from(n.keys()).every((e=>r.has(e))))return;if(n.size<2&&n.set(e.pointerId,e),t._pointerEvents.size<2)return;this.start(e);const i=xr(...Array.from(n.values()));i&&this.pinchStart(e,i)}pinchStart(e,t){this.state.origin=t.origin,this.computeValues([t.distance,t.angle]),this.computeInitial(),this.compute(e),this.emit()}touchMove(e){if(!this.state._active)return;const t=Er(e,this.state._touchIds);t&&this.pinchMove(e,t)}pointerMove(e){const t=this.state._pointerEvents;if(t.has(e.pointerId)&&t.set(e.pointerId,e),!this.state._active)return;const n=xr(...Array.from(t.values()));n&&this.pinchMove(e,n)}pinchMove(e,t){const n=this.state,r=n._values[1],i=t.angle-r;let s=0;Math.abs(i)>270&&(s+=Math.sign(i)),this.computeValues([t.distance,t.angle-360*s]),n.origin=t.origin,n.turns=s,n._movement=[n._values[0]/n._initial[0]-1,n._values[1]-n._initial[1]],this.compute(e),this.emit()}touchEnd(e){this.ctrl.setEventIds(e),this.state._active&&this.state._touchIds.some((e=>!this.ctrl.touchIds.has(e)))&&(this.state._active=!1,this.compute(e),this.emit())}pointerEnd(e){const t=this.state;this.ctrl.setEventIds(e);try{e.target.releasePointerCapture(e.pointerId)}catch(n){}t._pointerEvents.has(e.pointerId)&&t._pointerEvents.delete(e.pointerId),t._active&&t._pointerEvents.size<2&&(t._active=!1,this.compute(e),this.emit())}gestureStart(e){e.cancelable&&e.preventDefault();const t=this.state;t._active||(this.start(e),this.computeValues([e.scale,e.rotation]),t.origin=[e.clientX,e.clientY],this.compute(e),this.emit())}gestureMove(e){if(e.cancelable&&e.preventDefault(),!this.state._active)return;const t=this.state;this.computeValues([e.scale,e.rotation]),t.origin=[e.clientX,e.clientY];const n=t._movement;t._movement=[e.scale-1,e.rotation],t._delta=ir.sub(t._movement,n),this.compute(e),this.emit()}gestureEnd(e){this.state._active&&(this.state._active=!1,this.compute(e),this.emit())}wheel(e){const t=this.config.modifierKey;t&&!(Array.isArray(t)?t.find((t=>e[t])):e[t])||(this.state._active?this.wheelChange(e):this.wheelStart(e),this.timeoutStore.add("wheelEnd",this.wheelEnd.bind(this)))}wheelStart(e){this.start(e),this.wheelChange(e)}wheelChange(e){"uv"in e||e.cancelable&&e.preventDefault();const t=this.state;t._delta=[-wr(e)[1]/100*t.offset[0],0],ir.addTo(t._movement,t._delta),zr(t),this.state.origin=[e.clientX,e.clientY],this.compute(e),this.emit()}wheelEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){const t=this.config.device;t&&(e(t,"start",this[t+"Start"].bind(this)),e(t,"change",this[t+"Move"].bind(this)),e(t,"end",this[t+"End"].bind(this)),e(t,"cancel",this[t+"End"].bind(this)),e("lostPointerCapture","",this[t+"End"].bind(this))),this.config.pinchOnWheel&&e("wheel","",this.wheel.bind(this),{passive:!1})}},resolver:Qr},ei={key:"scroll",engine:class extends Rr{constructor(...e){super(...e),lr(this,"ingKey","scrolling")}scroll(e){this.state._active||this.start(e),this.scrollChange(e),this.timeoutStore.add("scrollEnd",this.scrollEnd.bind(this))}scrollChange(e){e.cancelable&&e.preventDefault();const t=this.state,n=function(e){var t,n;const{scrollX:r,scrollY:i,scrollLeft:s,scrollTop:a}=e.currentTarget;return[null!==(t=null!=r?r:s)&&void 0!==t?t:0,null!==(n=null!=i?i:a)&&void 0!==n?n:0]}(e);t._delta=ir.sub(n,t._values),ir.addTo(t._movement,t._delta),this.computeValues(n),this.compute(e),this.emit()}scrollEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){e("scroll","",this.scroll.bind(this))}},resolver:Hr},ti={key:"wheel",engine:class extends Rr{constructor(...e){super(...e),lr(this,"ingKey","wheeling")}wheel(e){this.state._active||this.start(e),this.wheelChange(e),this.timeoutStore.add("wheelEnd",this.wheelEnd.bind(this))}wheelChange(e){const t=this.state;t._delta=wr(e),ir.addTo(t._movement,t._delta),zr(t),this.compute(e),this.emit()}wheelEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){e("wheel","",this.wheel.bind(this))}},resolver:jr};function ni(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},s=Object.keys(e);for(r=0;r=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}const ri={target(e){if(e)return()=>"current"in e?e.current:e},enabled:(e=!0)=>e,window:(e=(Nr.isBrowser?window:void 0))=>e,eventOptions:({passive:e=!0,capture:t=!1}={})=>({passive:e,capture:t}),transform:e=>e},ii=["target","eventOptions","window","enabled","transform"];function si(e={},t){const n={};for(const[r,i]of Object.entries(t))switch(typeof i){case"function":n[r]=i.call(n,e[r],r,e);break;case"object":n[r]=si(e[r],i);break;case"boolean":i&&(n[r]=e[r])}return n}class ai{constructor(e,t){lr(this,"_listeners",new Set),this._ctrl=e,this._gestureKey=t}add(e,t,n,r,i){const s=this._listeners,a=function(e,t=""){const n=ur[e];return e+(n&&n[t]||t)}(t,n),o=hr(hr({},this._gestureKey?this._ctrl.config[this._gestureKey].eventOptions:{}),i);e.addEventListener(a,r,o);const l=()=>{e.removeEventListener(a,r,o),s.delete(l)};return s.add(l),l}clean(){this._listeners.forEach((e=>e())),this._listeners.clear()}}class oi{constructor(){lr(this,"_timeouts",new Map)}add(e,t,n=140,...r){this.remove(e),this._timeouts.set(e,window.setTimeout(t,n,...r))}remove(e){const t=this._timeouts.get(e);t&&window.clearTimeout(t)}clean(){this._timeouts.forEach((e=>{window.clearTimeout(e)})),this._timeouts.clear()}}class li{constructor(e){lr(this,"gestures",new Set),lr(this,"_targetEventStore",new ai(this)),lr(this,"gestureEventStores",{}),lr(this,"gestureTimeoutStores",{}),lr(this,"handlers",{}),lr(this,"config",{}),lr(this,"pointerIds",new Set),lr(this,"touchIds",new Set),lr(this,"state",{shared:{shiftKey:!1,metaKey:!1,ctrlKey:!1,altKey:!1}}),function(e,t){t.drag&&ci(e,"drag");t.wheel&&ci(e,"wheel");t.scroll&&ci(e,"scroll");t.move&&ci(e,"move");t.pinch&&ci(e,"pinch");t.hover&&ci(e,"hover")}(this,e)}setEventIds(e){return Ar(e)?(this.touchIds=new Set(br(e)),this.touchIds):"pointerId"in e?("pointerup"===e.type||"pointercancel"===e.type?this.pointerIds.delete(e.pointerId):"pointerdown"===e.type&&this.pointerIds.add(e.pointerId),this.pointerIds):void 0}applyHandlers(e,t){this.handlers=e,this.nativeHandlers=t}applyConfig(e,t){this.config=function(e,t,n={}){const r=e,{target:i,eventOptions:s,window:a,enabled:o,transform:l}=r,c=ni(r,ii);if(n.shared=si({target:i,eventOptions:s,window:a,enabled:o,transform:l},ri),t){const e=Yr.get(t);n[t]=si(hr({shared:n.shared},c),e)}else for(const h in c){const e=Yr.get(h);e&&(n[h]=si(hr({shared:n.shared},c[h]),e))}return n}(e,t,this.config)}clean(){this._targetEventStore.clean();for(const e of this.gestures)this.gestureEventStores[e].clean(),this.gestureTimeoutStores[e].clean()}effect(){return this.config.shared.target&&this.bind(),()=>this._targetEventStore.clean()}bind(...e){const t=this.config.shared,n={};let r;if(!t.target||(r=t.target(),r)){if(t.enabled){for(const t of this.gestures){const i=this.config[t],s=hi(n,i.eventOptions,!!r);if(i.enabled){new(Xr.get(t))(this,e,t).bind(s)}}const i=hi(n,t.eventOptions,!!r);for(const t in this.nativeHandlers)i(t,"",(n=>this.nativeHandlers[t](hr(hr({},this.state.shared),{},{event:n,args:e}))),void 0,!0)}for(const e in n)n[e]=Tr(...n[e]);if(!r)return n;for(const e in n){const{device:t,capture:i,passive:s}=gr(e);this._targetEventStore.add(r,t,"",n[e],{capture:i,passive:s})}}}}function ci(e,t){e.gestures.add(t),e.gestureEventStores[t]=new ai(e,t),e.gestureTimeoutStores[t]=new oi}const hi=(e,t,n)=>(r,i,s,a={},o=!1)=>{var l,c;const h=null!==(l=a.capture)&&void 0!==l?l:t.capture,u=null!==(c=a.passive)&&void 0!==c?c:t.passive;let d=o?r:fr(r,i,h);n&&u&&(d+="Passive"),e[d]=e[d]||[],e[d].push(s)},ui=/^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;function di(e,t,n,r,i,s){if(!e.has(n))return;if(!Xr.has(r))return void 0;const a=n+"Start",o=n+"End";i[r]=e=>{let r;return e.first&&a in t&&t[a](e),n in t&&(r=t[n](e)),e.last&&o in t&&t[o](e),r},s[r]=s[r]||{}}function pi(e,t){const[n,r,i]=function(e){const t={},n={},r=new Set;for(let i in e)ui.test(i)?(r.add(RegExp.lastMatch),n[i]=e[i]):t[i]=e[i];return[n,t,r]}(e),s={};return di(i,n,"onDrag","drag",s,t),di(i,n,"onWheel","wheel",s,t),di(i,n,"onScroll","scroll",s,t),di(i,n,"onPinch","pinch",s,t),di(i,n,"onMove","move",s,t),di(i,n,"onHover","hover",s,t),{handlers:s,config:t,nativeHandlers:r}}function fi(e,t={},n,r){const s=i.useMemo((()=>new li(e)),[]);if(s.applyHandlers(e,r),s.applyConfig(t,n),i.useEffect(s.effect.bind(s)),i.useEffect((()=>s.clean.bind(s)),[]),void 0===t.target)return s.bind.bind(s)}function mi(e,t){const n=([Kr,$r,ei,ti,Zr,Jr].forEach(qr),function(e,t){const{handlers:n,nativeHandlers:r,config:i}=pi(e,t||{});return fi(n,i,void 0,r)});return n(e,t||{})}function gi({snap:e,global:t,cursor:n=!0,children:s,speed:l=1,rotation:c=[0,0,0],zoom:h=1,polar:u=[0,Math.PI/2],azimuth:d=[-1/0,1/0],config:p={mass:1,tension:170,friction:26}}){const{size:f,gl:m}=(0,o.useThree)(),g=i.useMemo((()=>[c[0]+u[0],c[0]+u[1]]),[c[0],u[0],u[1]]),A=i.useMemo((()=>[c[1]+d[0],c[1]+d[1]]),[c[1],d[0],d[1]]),v=i.useMemo((()=>[a.MathUtils.clamp(c[0],...g),a.MathUtils.clamp(c[1],...A),c[2]]),[c[0],c[1],c[2],g,A]),[y,x]=Kn((()=>({scale:1,rotation:v,config:p})));i.useEffect((()=>{x.start({scale:1,rotation:v,config:p})}),[v]),i.useEffect((()=>{t&&n&&(m.domElement.style.cursor="grab")}),[t,n,m.domElement]);const b=mi({onHover:({last:e})=>{n&&!t&&(m.domElement.style.cursor=e?"auto":"grab")},onDrag:({down:t,delta:[r,i],memo:[s,o]=y.rotation.animation.to||v})=>{n&&(m.domElement.style.cursor=t?"grabbing":"grab"),r=a.MathUtils.clamp(o+r/f.width*Math.PI*l,...A),i=a.MathUtils.clamp(s+i/f.height*Math.PI*l,...g);const c=e&&!t&&"boolean"!=typeof e?e:p;return x.start({scale:t&&i>g[1]/2?h:1,rotation:e&&!t?v:[i,r,0],config:e=>"scale"===e?{...c,friction:3*c.friction}:c}),[i,r]}},{target:t?m.domElement:void 0});return i.createElement(rr.group,(0,r.Z)({},null==b?void 0:b(),y),s)}const Ai=new a.Frustum,vi=new a.Vector3,yi=new a.Vector3,xi=new a.Vector3,bi=new a.Vector3,Ei=new a.Vector3,_i=new a.Vector3,Si=new a.Vector3,wi=new a.Vector3,Mi=new a.Vector3,Ci=new a.Vector3,Ti=new a.Vector3,Ii=new a.Vector3,Bi=new a.Vector3,Ri=new a.Vector3;class Pi{constructor(e,t,n){this.camera=e,this.scene=t,this.startPoint=new a.Vector3,this.endPoint=new a.Vector3,this.collection=[],this.deep=n||Number.MAX_VALUE}select(e,t){return this.startPoint=e||this.startPoint,this.endPoint=t||this.endPoint,this.collection=[],this.updateFrustum(this.startPoint,this.endPoint),this.searchChildInFrustum(Ai,this.scene),this.collection}updateFrustum(e,t){if(e=e||this.startPoint,t=t||this.endPoint,e.x===t.x&&(t.x+=Number.EPSILON),e.y===t.y&&(t.y+=Number.EPSILON),this.camera.updateProjectionMatrix(),this.camera.updateMatrixWorld(),this.camera.isPerspectiveCamera)yi.copy(e),yi.x=Math.min(e.x,t.x),yi.y=Math.max(e.y,t.y),t.x=Math.max(e.x,t.x),t.y=Math.min(e.y,t.y),xi.setFromMatrixPosition(this.camera.matrixWorld),bi.copy(yi),Ei.set(t.x,yi.y,0),_i.copy(t),Si.set(yi.x,t.y,0),bi.unproject(this.camera),Ei.unproject(this.camera),_i.unproject(this.camera),Si.unproject(this.camera),Ii.copy(bi).sub(xi),Bi.copy(Ei).sub(xi),Ri.copy(_i).sub(xi),Ii.normalize(),Bi.normalize(),Ri.normalize(),Ii.multiplyScalar(this.deep),Bi.multiplyScalar(this.deep),Ri.multiplyScalar(this.deep),Ii.add(xi),Bi.add(xi),Ri.add(xi),(n=Ai.planes)[0].setFromCoplanarPoints(xi,bi,Ei),n[1].setFromCoplanarPoints(xi,Ei,_i),n[2].setFromCoplanarPoints(_i,Si,xi),n[3].setFromCoplanarPoints(Si,bi,xi),n[4].setFromCoplanarPoints(Ei,_i,Si),n[5].setFromCoplanarPoints(Ri,Bi,Ii),n[5].normal.multiplyScalar(-1);else if(this.camera.isOrthographicCamera){const r=Math.min(e.x,t.x),i=Math.max(e.y,t.y),s=Math.max(e.x,t.x),a=Math.min(e.y,t.y);var n;bi.set(r,i,-1),Ei.set(s,i,-1),_i.set(s,a,-1),Si.set(r,a,-1),wi.set(r,i,1),Mi.set(s,i,1),Ci.set(s,a,1),Ti.set(r,a,1),bi.unproject(this.camera),Ei.unproject(this.camera),_i.unproject(this.camera),Si.unproject(this.camera),wi.unproject(this.camera),Mi.unproject(this.camera),Ci.unproject(this.camera),Ti.unproject(this.camera),(n=Ai.planes)[0].setFromCoplanarPoints(bi,wi,Mi),n[1].setFromCoplanarPoints(Ei,Mi,Ci),n[2].setFromCoplanarPoints(Ci,Ti,Si),n[3].setFromCoplanarPoints(Ti,wi,bi),n[4].setFromCoplanarPoints(Ei,_i,Si),n[5].setFromCoplanarPoints(Ci,Mi,wi),n[5].normal.multiplyScalar(-1)}else console.error("THREE.SelectionBox: Unsupported camera type.")}searchChildInFrustum(e,t){if((t.isMesh||t.isLine||t.isPoints)&&void 0!==t.material&&(null===t.geometry.boundingSphere&&t.geometry.computeBoundingSphere(),vi.copy(t.geometry.boundingSphere.center),vi.applyMatrix4(t.matrixWorld),e.containsPoint(vi)&&this.collection.push(t)),t.children.length>0)for(let n=0;ne),...u}){const{camera:d,raycaster:p,gl:f,controls:m,size:g,get:A}=(0,o.useThree)(),[v,y]=i.useState(!1),[x,b]=i.useReducer(((e,{object:t,shift:n})=>void 0===t?[]:Array.isArray(t)?t:n?e.includes(t)?e.filter((e=>e!==t)):[t,...e]:e[0]===t?[]:[t]),[]);i.useEffect((()=>{null==s||s(x)}),[x]);const E=i.useCallback((e=>{e.stopPropagation(),b({object:h([e.object])[0],shift:t&&e.shiftKey})}),[]),_=i.useCallback((e=>!v&&b({})),[v]),S=i.useRef(null);return i.useEffect((()=>{if(!e||!t)return;const n=new Pi(d,S.current),r=document.createElement("div");r.style.pointerEvents="none",r.style.border=l,r.style.backgroundColor=c,r.style.position="fixed";const i=new a.Vector2,s=new a.Vector2,o=new a.Vector2,u=p.enabled,v=null==m?void 0:m.enabled;let y=!1;function x(e,t){var n;const{offsetX:r,offsetY:i}=null!==(n=null==p.computeOffsets?void 0:p.computeOffsets(e,A()))&&void 0!==n?n:e,{width:s,height:a}=g;t.set(r/s*2-1,-i/a*2+1)}function E(e){e.shiftKey&&(!function(e){var t;m&&(m.enabled=!1),p.enabled=!1,y=!0,null==(t=f.domElement.parentElement)||t.appendChild(r),r.style.left=`${e.clientX}px`,r.style.top=`${e.clientY}px`,r.style.width="0px",r.style.height="0px",i.x=e.clientX,i.y=e.clientY}(e),x(e,n.startPoint))}let _=[];function w(e){if(y){!function(e){o.x=Math.max(i.x,e.clientX),o.y=Math.max(i.y,e.clientY),s.x=Math.min(i.x,e.clientX),s.y=Math.min(i.y,e.clientY),r.style.left=`${s.x}px`,r.style.top=`${s.y}px`,r.style.width=o.x-s.x+"px",r.style.height=o.y-s.y+"px"}(e),x(e,n.endPoint);const t=n.select().sort((e=>e.uuid)).filter((e=>e.isMesh));(0,Di.Z)(t,_)||(_=t,b({object:h(t)}))}}function M(e){var t;y&&y&&(m&&(m.enabled=v),p.enabled=u,y=!1,null==(t=r.parentElement)||t.removeChild(r))}return document.addEventListener("pointerdown",E,{passive:!0}),document.addEventListener("pointermove",w,{passive:!0,capture:!0}),document.addEventListener("pointerup",M,{passive:!0}),()=>{document.removeEventListener("pointerdown",E),document.removeEventListener("pointermove",w),document.removeEventListener("pointerup",M)}}),[g,p,d,m,f]),i.createElement("group",(0,r.Z)({ref:S,onClick:E,onPointerOver:()=>y(!0),onPointerOut:()=>y(!1),onPointerMissed:_},u),i.createElement(Li.Provider,{value:x},n))}function Ui(){return i.useContext(Li)}const Oi=i.forwardRef((function({follow:e=!0,lockX:t=!1,lockY:n=!1,lockZ:s=!1,...a},l){const c=i.useRef();return(0,o.useFrame)((({camera:r})=>{if(!e||!c.current)return;const i=c.current.rotation.clone();c.current.quaternion.copy(r.quaternion),t&&(c.current.rotation.x=i.x),n&&(c.current.rotation.y=i.y),s&&(c.current.rotation.z=i.z)})),i.createElement("group",(0,r.Z)({ref:M([c,l])},a))})),Ni=new a.Box3,ki=new a.Vector3;class Gi extends a.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new a.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new a.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(e){const t=this.attributes.instanceStart,n=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),n.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const n=new a.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new a.InterleavedBufferAttribute(n,3,0)),this.setAttribute("instanceEnd",new a.InterleavedBufferAttribute(n,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const n=new a.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceColorStart",new a.InterleavedBufferAttribute(n,3,0)),this.setAttribute("instanceColorEnd",new a.InterleavedBufferAttribute(n,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new a.WireframeGeometry(e.geometry)),this}fromLineSegments(e){const t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new a.Box3);const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;void 0!==e&&void 0!==t&&(this.boundingBox.setFromBufferAttribute(e),Ni.setFromBufferAttribute(t),this.boundingBox.union(Ni))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new a.Sphere),null===this.boundingBox&&this.computeBoundingBox();const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){const n=this.boundingSphere.center;this.boundingBox.getCenter(n);let r=0;for(let i=0,s=e.count;i\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tuniform float linewidth;\n\t\t\t\tuniform vec2 resolution;\n\n\t\t\t\tattribute vec3 instanceStart;\n\t\t\t\tattribute vec3 instanceEnd;\n\n\t\t\t\tattribute vec3 instanceColorStart;\n\t\t\t\tattribute vec3 instanceColorEnd;\n\n\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\tvarying vec4 worldPos;\n\t\t\t\t\tvarying vec3 worldStart;\n\t\t\t\t\tvarying vec3 worldEnd;\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#else\n\n\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\tuniform float dashScale;\n\t\t\t\t\tattribute float instanceDistanceStart;\n\t\t\t\t\tattribute float instanceDistanceEnd;\n\t\t\t\t\tvarying float vLineDistance;\n\n\t\t\t\t#endif\n\n\t\t\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t\t\t// conservative estimate of the near plane\n\t\t\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#ifdef USE_COLOR\n\n\t\t\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\t\t\tvUv = uv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t\t\t// camera space\n\t\t\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\tworldStart = start.xyz;\n\t\t\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tvUv = uv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\t\t\tif ( perspective ) {\n\n\t\t\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// clip space\n\t\t\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t\t\t// ndc space\n\t\t\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t\t\t// direction\n\t\t\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t\t\t// account for clip-space aspect ratio\n\t\t\t\t\tdir.x *= aspect;\n\t\t\t\t\tdir = normalize( dir );\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\t// get the offset direction as perpendicular to the view vector\n\t\t\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\t\t\tvec3 offset;\n\t\t\t\t\t\tif ( position.y < 0.5 ) {\n\n\t\t\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// sign flip\n\t\t\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t// endcaps\n\t\t\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// adjust for linewidth\n\t\t\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t\t\t// set the world position\n\t\t\t\t\t\tworldPos = ( position.y < 0.5 ) ? start : end;\n\t\t\t\t\t\tworldPos.xyz += offset;\n\n\t\t\t\t\t\t// project the worldpos\n\t\t\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t\t\t// segments overlap neatly\n\t\t\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\t\t\tdir.x /= aspect;\n\t\t\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t\t\t// sign flip\n\t\t\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t\t\t// endcaps\n\t\t\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\t\t\toffset += - dir;\n\n\t\t\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\t\t\toffset += dir;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// adjust for linewidth\n\t\t\t\t\t\toffset *= linewidth;\n\n\t\t\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t\t\t// select end\n\t\t\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t\t\t// back to clip space\n\t\t\t\t\t\toffset *= clip.w;\n\n\t\t\t\t\t\tclip.xy += offset;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tgl_Position = clip;\n\n\t\t\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:`\n\t\t\t\tuniform vec3 diffuse;\n\t\t\t\tuniform float opacity;\n\t\t\t\tuniform float linewidth;\n\n\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\tuniform float dashOffset;\n\t\t\t\t\tuniform float dashSize;\n\t\t\t\t\tuniform float gapSize;\n\n\t\t\t\t#endif\n\n\t\t\t\tvarying float vLineDistance;\n\n\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\tvarying vec4 worldPos;\n\t\t\t\t\tvarying vec3 worldStart;\n\t\t\t\t\tvarying vec3 worldEnd;\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#else\n\n\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#endif\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\t\t\tfloat mua;\n\t\t\t\t\tfloat mub;\n\n\t\t\t\t\tvec3 p13 = p1 - p3;\n\t\t\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\t\t\tmua = numer / denom;\n\t\t\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\t\t\treturn vec2( mua, mub );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfloat alpha = opacity;\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\t\t\tfloat len = length( delta );\n\t\t\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include <${parseInt(a.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,clipping:!0}),this.isLineMaterial=!0,Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(e){!0===e?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashed:{enumerable:!0,get:function(){return Boolean("USE_DASH"in this.defines)},set(e){Boolean(e)!==Boolean("USE_DASH"in this.defines)&&(this.needsUpdate=!0),!0===e?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},alphaToCoverage:{enumerable:!0,get:function(){return Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)},set:function(e){Boolean(e)!==Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)&&(this.needsUpdate=!0),!0===e?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}}const Qi=new a.Vector3,Vi=new a.Vector3,Hi=new a.Vector4,ji=new a.Vector4,Wi=new a.Vector4,Xi=new a.Vector3,Yi=new a.Matrix4,qi=new a.Line3,Ki=new a.Vector3,Ji=new a.Box3,Zi=new a.Sphere,$i=new a.Vector4;let es,ts,ns,rs;function is(e,t,n){return $i.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),$i.multiplyScalar(1/$i.w),$i.x=rs/n.width,$i.y=rs/n.height,$i.applyMatrix4(e.projectionMatrixInverse),$i.multiplyScalar(1/$i.w),Math.abs(Math.max($i.x,$i.y))}class ss extends a.Mesh{constructor(e=new Gi,t=new zi({color:16777215*Math.random()})){super(e,t),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,t=e.attributes.instanceStart,n=e.attributes.instanceEnd,r=new Float32Array(2*t.count);for(let s=0,a=0,o=t.count;sh&&ji.z>h)continue;if(Hi.z>h){const e=Hi.z-ji.z,t=(Hi.z-h)/e;Hi.lerp(ji,t)}else if(ji.z>h){const e=ji.z-Hi.z,t=(ji.z-h)/e;ji.lerp(Hi,t)}Hi.applyMatrix4(r),ji.applyMatrix4(r),Hi.multiplyScalar(1/Hi.w),ji.multiplyScalar(1/ji.w),Hi.x*=i.x/2,Hi.y*=i.y/2,ji.x*=i.x/2,ji.y*=i.y/2,qi.start.copy(Hi),qi.start.z=0,qi.end.copy(ji),qi.end.z=0;const t=qi.closestPointToPointParameter(Xi,!0);qi.at(t,Ki);const o=a.MathUtils.lerp(Hi.z,ji.z,t),d=o>=-1&&o<=1,p=Xi.distanceTo(Ki)<.5*rs;if(d&&p){qi.start.fromBufferAttribute(l,u),qi.end.fromBufferAttribute(c,u),qi.start.applyMatrix4(s),qi.end.applyMatrix4(s);const t=new a.Vector3,r=new a.Vector3;es.distanceSqToSegment(qi.start,qi.end,r,t),n.push({point:r,pointOnLine:t,distance:es.origin.distanceTo(r),object:e,face:null,faceIndex:u,uv:null,uv2:null})}}}(this,r,t))}}}class as extends Gi{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(e){const t=e.length-3,n=new Float32Array(2*t);for(let r=0;rnew os)),[u]=i.useState((()=>new zi)),[d]=i.useState((()=>new a.Vector2(512,512))),p=i.useMemo((()=>{const t=new as,r=e.map((e=>e instanceof a.Vector3?e.toArray():e));if(t.setPositions(r.flat()),n){const e=n.map((e=>e instanceof a.Color?e.toArray():e));t.setColors(e.flat())}return t}),[e,n]);return i.useLayoutEffect((()=>{h.computeLineDistances()}),[e,h]),i.useLayoutEffect((()=>{o?u.defines.USE_DASH="":delete u.defines.USE_DASH,u.needsUpdate=!0}),[o,u]),i.useEffect((()=>()=>p.dispose()),[p]),i.createElement("primitive",(0,r.Z)({object:h,ref:c},l),i.createElement("primitive",{object:p,attach:"geometry"}),i.createElement("primitive",(0,r.Z)({object:u,attach:"material",color:t,vertexColors:Boolean(n),resolution:d,linewidth:s,dashed:o},l)))})),cs=new a.Vector3,hs=i.forwardRef((function({start:e=[0,0,0],end:t=[0,0,0],mid:n,segments:s=20,...o},l){const c=i.useRef(null),[h]=i.useState((()=>new a.QuadraticBezierCurve3(void 0,void 0,void 0))),u=i.useCallback(((e,t,n,r=20)=>(e instanceof a.Vector3?h.v0.copy(e):h.v0.set(...e),t instanceof a.Vector3?h.v2.copy(t):h.v2.set(...t),n instanceof a.Vector3?h.v1.copy(n):h.v1.copy(h.v0.clone().add(h.v2.clone().sub(h.v0)).add(cs.set(0,h.v0.y-h.v2.y,0))),h.getPoints(r))),[]);i.useLayoutEffect((()=>{c.current.setPoints=(e,t,n)=>{const r=u(e,t,n);c.current.geometry&&c.current.geometry.setPositions(r.map((e=>e.toArray())).flat())}}),[]);const d=i.useMemo((()=>u(e,t,n,s)),[e,t,n,s]);return i.createElement(ls,(0,r.Z)({ref:M([c,l]),points:d},o))})),us=i.forwardRef((function({start:e,end:t,midA:n,midB:s,segments:o=20,...l},c){const h=i.useMemo((()=>{const r=e instanceof a.Vector3?e:new a.Vector3(...e),i=t instanceof a.Vector3?t:new a.Vector3(...t),l=n instanceof a.Vector3?n:new a.Vector3(...n),c=s instanceof a.Vector3?s:new a.Vector3(...s);return new a.CubicBezierCurve3(r,l,c,i).getPoints(o)}),[e,t,n,s,o]);return i.createElement(ls,(0,r.Z)({ref:c,points:h},l))})),ds=i.forwardRef((({url:e,distance:t=1,loop:n=!0,autoplay:s,...l},c)=>{const h=i.useRef(),u=(0,o.useThree)((({camera:e})=>e)),[d]=i.useState((()=>new a.AudioListener)),p=(0,o.useLoader)(a.AudioLoader,e);return i.useEffect((()=>{const e=h.current;e&&(e.setBuffer(p),e.setRefDistance(t),e.setLoop(n),s&&!e.isPlaying&&e.play())}),[p,u,t,n]),i.useEffect((()=>{const e=h.current;return u.add(d),()=>{u.remove(d),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),i.createElement("positionalAudio",(0,r.Z)({ref:M([h,c]),args:[d]},l))}));function ps(){var e,t=0,n=[],r=0,i=0;var s=d((function(e){i||o(1,e)})),a=d((function(e){i||o(-1,e)}));function o(n,r){i++;var s=0;try{r===m&&p();var a=n>0&&u(r);a?a.call(r,d((function(e){s++,o(1,e)})),d((function(e){s++,o(-1,e)}))):(t=n,e=r,l())}catch(za){t||s||o(-1,za)}}function l(){r||(setTimeout(c,0),r=1)}function c(){var e=n;r=0,n=[],e.forEach(h)}function h(e){e()}function u(e){var t=e&&(f(e)||"object"==typeof e)&&e.then;return f(t)&&t}function d(e){var t=0;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];t++||e.apply(this,n)}}function p(){throw new TypeError("Chaining cycle detected")}var f=function(e){return"function"==typeof e},m={then:function(r,i){var s=ps();return n.push((function(){var n=t>0?r:i;if(f(n))try{var a=n(e);a===s&&p();var o=u(a);o?o.call(a,s.resolve,s.reject):s.resolve(a)}catch(l){s.reject(l)}else s[t>0?"resolve":"reject"](e)})),t&&l(),s},resolve:s,reject:a};return m}function fs(){var e,t,n=new Promise((function(n,r){e=n,t=r}));return{then:n.then.bind(n),resolve:e,reject:t}}ps.all=fs.all=function(e){var t=0,n=[],r=ms();return 0===e.length?r.resolve([]):e.forEach((function(i,s){var a=ms();a.resolve(i),a.then((function(i){t++,n[s]=i,t===e.length&&r.resolve(n)}),r.reject)})),r};var ms="function"==typeof Promise?fs:ps;function gs(){var e=Object.create(null);function t(r,i){var s=r.id,a=r.name,o=r.dependencies;void 0===o&&(o=[]);var l=r.init;void 0===l&&(l=function(){});var c=r.getTransferables;if(void 0===c&&(c=null),!e[s])try{o=o.map((function(n){return n&&n.isWorkerModule&&(t(n,(function(e){if(e instanceof Error)throw e})),n=e[n.id].value),n})),l=n("<"+a+">.init",l),c&&(c=n("<"+a+">.getTransferables",c));var h=null;"function"==typeof l?h=l.apply(void 0,o):console.error("worker module init function failed to rehydrate"),e[s]={id:s,value:h,getTransferables:c},i(h)}catch(u){u&&u.noLog||console.error(u),i(u)}}function n(e,t){var n=void 0;self.troikaDefine=function(e){return n=e};var r=URL.createObjectURL(new Blob(["/** "+e.replace(/\*/g,"")+" **/\n\ntroikaDefine(\n"+t+"\n)"],{type:"application/javascript"}));try{importScripts(r)}catch(i){console.error(i)}return URL.revokeObjectURL(r),delete self.troikaDefine,n}self.addEventListener("message",(function(n){var r=n.data,i=r.messageId,s=r.action,a=r.data;try{"registerModule"===s&&t(a,(function(e){e instanceof Error?postMessage({messageId:i,success:!1,error:e.message}):postMessage({messageId:i,success:!0,result:{isCallable:"function"==typeof e}})})),"callModule"===s&&function(t,n){var r,i=t.id,s=t.args;e[i]&&"function"==typeof e[i].value||n(new Error("Worker module "+i+": not found or its 'init' did not return a function"));try{var a=(r=e[i]).value.apply(r,s);a&&"function"==typeof a.then?a.then(o,(function(e){return n(e instanceof Error?e:new Error(""+e))})):o(a)}catch(l){n(l)}function o(t){try{var r=e[i].getTransferables&&e[i].getTransferables(t);r&&Array.isArray(r)&&r.length||(r=void 0),n(t,r)}catch(l){console.error(l),n(l)}}}(a,(function(e,t){e instanceof Error?postMessage({messageId:i,success:!1,error:e.message}):postMessage({messageId:i,success:!0,result:e},t||void 0)}))}catch(o){postMessage({messageId:i,success:!1,error:o.stack})}}))}var As=function(){var e=!1;if("undefined"!=typeof window&&void 0!==window.document)try{new Worker(URL.createObjectURL(new Blob([""],{type:"application/javascript"}))).terminate(),e=!0}catch(t){console.log("Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: ["+t.message+"]")}return As=function(){return e},e},vs=0,ys=0,xs=!1,bs=Object.create(null),Es=Object.create(null),_s=Object.create(null);function Ss(e){if(!(e&&"function"==typeof e.init||xs))throw new Error("requires `options.init` function");var t=e.dependencies,n=e.init,r=e.getTransferables,i=e.workerId;if(!As())return function(e){var t=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return t._getInitResult().then((function(t){if("function"==typeof t)return t.apply(void 0,e);throw new Error("Worker module function was called but `init` did not return a callable function")}))};return t._getInitResult=function(){var n=e.dependencies,r=e.init;n=Array.isArray(n)?n.map((function(e){return e&&e._getInitResult?e._getInitResult():e})):[];var i=ms.all(n).then((function(e){return r.apply(null,e)}));return t._getInitResult=function(){return i},i},t}(e);null==i&&(i="#default");var s="workerModule"+ ++vs,a=e.name||s,o=null;function l(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(!o){o=Ms(i,"registerModule",l.workerModuleData);var n=function(){o=null,Es[i].delete(n)};(Es[i]||(Es[i]=new Set)).add(n)}return o.then((function(t){if(t.isCallable)return Ms(i,"callModule",{id:s,args:e});throw new Error("Worker module function was called but `init` did not return a callable function")}))}return t=t&&t.map((function(e){return"function"!=typeof e||e.workerModuleData||(xs=!0,e=Ss({workerId:i,name:"<"+a+"> function dependency: "+e.name,init:"function(){return (\n"+ws(e)+"\n)}"}),xs=!1),e&&e.workerModuleData&&(e=e.workerModuleData),e})),l.workerModuleData={isWorkerModule:!0,id:s,name:a,dependencies:t,init:ws(n),getTransferables:r&&ws(r)},l}function ws(e){var t=e.toString();return!/^function/.test(t)&&/^\w+\s*\(/.test(t)&&(t="function "+t),t}function Ms(e,t,n){var r=ms(),i=++ys;return _s[i]=function(e){e.success?r.resolve(e.result):r.reject(new Error("Error in worker "+t+" call: "+e.error))},function(e){var t=bs[e];if(!t){var n=ws(gs);(t=bs[e]=new Worker(URL.createObjectURL(new Blob(["/** Worker Module Bootstrap: "+e.replace(/\*/g,"")+" **/\n\n;("+n+")()"],{type:"application/javascript"})))).onmessage=function(e){var t=e.data,n=t.messageId,r=_s[n];if(!r)throw new Error("WorkerModule response with empty or unknown messageId");delete _s[n],r(t)}}return t}(e).postMessage({messageId:i,action:t,data:n}),r}var Cs=Ss({name:"Thenable",dependencies:[ms],init:function(e){return e}});function Ts(){var e=function(e){function t(e,t,n,r,i,s,a,o){var l=1-a;o.x=l*l*e+2*l*a*n+a*a*i,o.y=l*l*t+2*l*a*r+a*a*s}function n(e,t,n,r,i,s,a,o,l,c){var h=1-l;c.x=h*h*h*e+3*h*h*l*n+3*h*l*l*i+l*l*l*a,c.y=h*h*h*t+3*h*h*l*r+3*h*l*l*s+l*l*l*o}function r(e,t){for(var n,r,i,s,a,o=/([MLQCZ])([^MLQCZ]*)/g;n=o.exec(e);){var l=n[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map((function(e){return parseFloat(e)}));switch(n[1]){case"M":s=r=l[0],a=i=l[1];break;case"L":l[0]===s&&l[1]===a||t("L",s,a,s=l[0],a=l[1]);break;case"Q":t("Q",s,a,s=l[2],a=l[3],l[0],l[1]);break;case"C":t("C",s,a,s=l[4],a=l[5],l[0],l[1],l[2],l[3]);break;case"Z":s===r&&a===i||t("L",s,a,r,i)}}}function i(e,i,s){void 0===s&&(s=16);var a={x:0,y:0};r(e,(function(e,r,o,l,c,h,u,d,p){switch(e){case"L":i(r,o,l,c);break;case"Q":for(var f=r,m=o,g=1;g0;)r[i]=arguments[i+2];var s=l[t]||(l[t]=n.getUniformLocation(c,t));n["uniform"+e].apply(n,[s].concat(r))},setAttribute:function(e,t,r,s,a){var l=o[e];l||(l=o[e]={buf:n.createBuffer(),loc:n.getAttribLocation(c,e),data:null}),n.bindBuffer(n.ARRAY_BUFFER,l.buf),n.vertexAttribPointer(l.loc,t,n.FLOAT,!1,0,0),n.enableVertexAttribArray(l.loc),i?n.vertexAttribDivisor(l.loc,s):d("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(l.loc,s),a!==l.data&&(n.bufferData(n.ARRAY_BUFFER,a,r),l.data=a)}})}}}a[e].transaction(s)}function m(e,t){h++;try{n.activeTexture(n.TEXTURE0+h);var r=c[e];r||(r=c[e]=n.createTexture(),n.bindTexture(n.TEXTURE_2D,r),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,n.NEAREST)),n.bindTexture(n.TEXTURE_2D,r),t(r,h)}finally{h--}}function g(e,t,r){var i=n.createFramebuffer();u.push(i),n.bindFramebuffer(n.FRAMEBUFFER,i),n.activeTexture(n.TEXTURE0+t),n.bindTexture(n.TEXTURE_2D,e),n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,e,0);try{r(i)}finally{n.deleteFramebuffer(i),n.bindFramebuffer(n.FRAMEBUFFER,u[--u.length-1]||null)}}function A(){s={},a={},c={},h=-1,u.length=0}n.canvas.addEventListener("webglcontextlost",(function(e){A(),e.preventDefault()}),!1),o.set(n,r={gl:n,isWebGL2:i,getExtension:d,withProgram:f,withTexture:m,withTextureFramebuffer:g,handleContextLoss:A})}t(r)}function h(e,t,n,r,i,o,l,h){void 0===l&&(l=15),void 0===h&&(h=null),c(e,(function(e){var c=e.gl,u=e.withProgram;(0,e.withTexture)("copy",(function(e,d){c.texImage2D(c.TEXTURE_2D,0,c.RGBA,i,o,0,c.RGBA,c.UNSIGNED_BYTE,t),u("copy",s,a,(function(e){var t=e.setUniform;(0,e.setAttribute)("aUV",2,c.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),t("1i","image",d),c.bindFramebuffer(c.FRAMEBUFFER,h||null),c.disable(c.BLEND),c.colorMask(8&l,4&l,2&l,1&l),c.viewport(n,r,i,o),c.scissor(n,r,i,o),c.drawArrays(c.TRIANGLES,0,3)}))}))}))}var u=Object.freeze({__proto__:null,withWebGLContext:c,renderImageData:h,resizeWebGLCanvasWithoutClearing:function(e,t,n){var r=e.width,i=e.height;c(e,(function(s){var a=s.gl,o=new Uint8Array(r*i*4);a.readPixels(0,0,r,i,a.RGBA,a.UNSIGNED_BYTE,o),e.width=t,e.height=n,h(a,o,0,0,r,i)}))}});function d(e,t,n,r,s,a){void 0===a&&(a=1);var o=new Uint8Array(e*t),l=r[2]-r[0],c=r[3]-r[1],h=[];i(n,(function(e,t,n,r){h.push({x1:e,y1:t,x2:n,y2:r,minX:Math.min(e,n),minY:Math.min(t,r),maxX:Math.max(e,n),maxY:Math.max(t,r)})})),h.sort((function(e,t){return e.maxX-t.maxX}));for(var u=0;us.minX&&t-rs.minY){var a=m(e,t,s.x1,s.y1,s.x2,s.y2);at!=i.y2>t&&e<(i.x2-i.x1)*(t-i.y1)/(i.y2-i.y1)+i.x1&&(n+=i.y1p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",canonical:"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"};function m(e,t){var n,r=0,i=new Map,s=t&&new Map;return e.split(",").forEach((function e(a){if(-1!==a.indexOf("+"))for(var o=+a;o--;)e(n);else{n=a;var l=a.split(">"),c=l[0],h=l[1];c=String.fromCodePoint(r+=parseInt(c,36)),h=String.fromCodePoint(r+=parseInt(h,36)),i.set(c,h),t&&s.set(h,c)}})),{map:i,reverseMap:s}}function g(){if(!u){var e=m(f.pairs,!0),t=e.map,n=e.reverseMap;u=t,d=n,p=m(f.canonical,!1).map}}function A(e){return g(),u.get(e)||null}function v(e){return g(),d.get(e)||null}function y(e){return g(),p.get(e)||null}var x=n.L,b=n.R,E=n.EN,_=n.ES,S=n.ET,w=n.AN,M=n.CS,C=n.B,T=n.S,I=n.ON,B=n.BN,R=n.NSM,P=n.AL,D=n.LRO,L=n.RLO,F=n.LRE,U=n.RLE,O=n.PDF,N=n.LRI,k=n.RLI,G=n.FSI,z=n.PDI;var Q,V="14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1";function H(e){return function(){if(!Q){var e=m(V,!0),t=e.map;e.reverseMap.forEach((function(e,n){t.set(n,e)})),Q=t}}(),Q.get(e)||null}function j(e,t,n,r){var i=e.length;n=Math.max(0,null==n?0:+n),r=Math.min(i-1,null==r?i-1:+r);var s=[];return t.paragraphs.forEach((function(i){var a=Math.max(n,i.start),o=Math.min(r,i.end);if(a=a&&h(e[u])&l;u--)c[u]=i.level;for(var d=i.level,p=1/0,f=0;fd&&(d=m),m=p;g--)for(var A=0;A=g){for(var v=A;A+1=g;)A++;A>v&&s.push([v+a,A+a])}}})),s}function W(e,t,n,r){for(var i=j(e,t,n,r),s=[],a=0;a0)Y--;else if(K>0){for(q=0;!W[W.length-1]._isolate;)W.pop();var ne=W[W.length-1]._isolInitIndex;null!=ne&&(p.set(ne,J),p.set(J,ne)),W.pop(),K--}X=W[W.length-1],d[J]=X._level,X._override&&u(J,X._override)}else Z&O?(0===Y&&(q>0?q--:!X._isolate&&W.length>1&&(W.pop(),X=W[W.length-1])),d[J]=X._level):Z&C&&(d[J]=m.level);else d[J]=X._level,X._override&&Z!==B&&u(J,X._override)}for(var re=[],ie=null,se=m.start;se<=m.end;se++){var ae=n[se];if(!(ae&o)){var oe=d[se],le=ae&i,ce=ae===z;ie&&oe===ie._level?(ie._end=se,ie._endsWithIsolInit=le):re.push(ie={_start:se,_end:se,_level:oe,_startsWithPDI:ce,_endsWithIsolInit:le})}}for(var he=[],ue=0;ue=0;Ee--)if(!(n[Ee]&o)){be=d[Ee];break}var _e=ge[ge.length-1],Se=d[_e],we=m.level;if(!(n[_e]&i))for(var Me=_e+1;Me<=m.end;Me++)if(!(n[Me]&o)){we=d[Me];break}he.push({_seqIndices:ge,_sosType:Math.max(be,xe)%2?b:x,_eosType:Math.max(we,Se)%2?b:x})}}for(var Ce=0;Ce=0;Ue--)if(!(n[Ie[Ue]]&o)){Fe=n[Ie[Ue]];break}u(Le,Fe&(i|z)?I:Fe)}}if(c.get(E))for(var Oe=0;Oe=-1;ke--){var Ge=-1===ke?Be:n[Ie[ke]];if(Ge&s){Ge===P&&u(Ne,w);break}}}if(c.get(P))for(var ze=0;ze=0&&(je=n[Ie[Xe]])&o;Xe--);for(var Ye=Ve+1;Ye=0&&n[Ie[Je]]&(S|o);Je--)u(Ie[Je],E);for(qe++;qe=0&&n[Ie[et]]&o;et--)u(Ie[et],I);for(var tt=Ze+1;tt=0;pt--){var ft=ct[pt].char;if(ft===dt||ft===v(y(ut))||A(y(ft))===ut){lt.push([ct[pt].seqIndex,ht]),ct.length=pt;break}}}lt.sort((function(e,t){return e[0]-t[0]}));for(var mt=0;mt=0;St--){var wt=Ie[St];if(n[wt]&ot){var Mt=n[wt]&at?b:x;xt=Mt!==Pe?Mt:Pe;break}}}if(xt){if(n[Ie[At]]=n[Ie[vt]]=xt,xt!==Pe)for(var Ct=At+1;Ct=0;Dt--){if(!(n[Ie[Dt]]&o)){Pt=n[Ie[Dt]]&at?b:x;break}Bt=Dt}for(var Lt=Re,Ft=It+1;Ft=0&&h(e[Gt])&l;Gt--)d[Gt]=m.level}}return{levels:d,paragraphs:f};function zt(t,r){for(var s=t;s/gm,(function(e,t){let n=a.ShaderChunk[t];return n?Rs(n):e}))}const Ps=[];for(let qm=0;qm<256;qm++)Ps[qm]=(qm<16?"0":"")+qm.toString(16);const Ds=Object.assign||function(){let e=arguments[0];for(let t=1,n=arguments.length;t/gm,"\n//!BEGIN_POST_CHUNK $1\n$&\n//!END_POST_CHUNK\n")));if(d){let n=d({vertexShader:e,fragmentShader:t});e=n.vertexShader,t=n.fragmentShader}if(u){let e=[];t=t.replace(/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,(t=>(e.push(t),""))),h=`${u}\n${e.join("\n")}\n${h}`}if(p){const e=`\nuniform float ${p};\n`;i=e+i,l=e+l}o&&(i=`${i}\nvoid troikaVertexTransform${r}(inout vec3 position, inout vec3 normal, inout vec2 uv) {\n ${o}\n}\n`,s=`\ntroika_position_${r} = vec3(position);\ntroika_normal_${r} = vec3(normal);\ntroika_uv_${r} = vec2(uv);\ntroikaVertexTransform${r}(troika_position_${r}, troika_normal_${r}, troika_uv_${r});\n${s}\n`,e=(e=`vec3 troika_position_${r};\nvec3 troika_normal_${r};\nvec2 troika_uv_${r};\n${e}\n`).replace(/\b(position|normal|uv)\b/g,((e,t,n,i)=>/\battribute\s+vec[23]\s+$/.test(i.substr(0,n))?t:`troika_${t}_${r}`)));return e=ks(e,r,i,s,a),t=ks(t,r,l,c,h),{vertexShader:e,fragmentShader:t}}(r,t,n);a=Us[s]=e}r.vertexShader=a.vertexShader,r.fragmentShader=a.fragmentShader,Ds(r.uniforms,this.uniforms),t.timeUniform&&(r.uniforms[t.timeUniform]={get value(){return Date.now()-Ls}}),this[i]&&this[i](r)},o=function(){return l(t.chained?e:e.clone())},l=function(r){const i=Object.create(r,c);return Object.defineProperty(i,"baseMaterial",{value:e}),Object.defineProperty(i,"id",{value:Os++}),i.uuid=function(){const e=4294967295*Math.random()|0,t=4294967295*Math.random()|0,n=4294967295*Math.random()|0,r=4294967295*Math.random()|0;return(Ps[255&e]+Ps[e>>8&255]+Ps[e>>16&255]+Ps[e>>24&255]+"-"+Ps[255&t]+Ps[t>>8&255]+"-"+Ps[t>>16&15|64]+Ps[t>>24&255]+"-"+Ps[63&n|128]+Ps[n>>8&255]+"-"+Ps[n>>16&255]+Ps[n>>24&255]+Ps[255&r]+Ps[r>>8&255]+Ps[r>>16&255]+Ps[r>>24&255]).toUpperCase()}(),i.uniforms=Ds({},r.uniforms,t.uniforms),i.defines=Ds({},r.defines,t.defines),i.defines[`TROIKA_DERIVED_MATERIAL_${n}`]="",i.extensions=Ds({},r.extensions,t.extensions),i._listeners=void 0,i},c={constructor:{value:o},isDerivedMaterial:{value:!0},customProgramCacheKey:{writable:!0,configurable:!0,value:function(){return e.customProgramCacheKey()+"|"+n}},onBeforeCompile:{get:()=>s,set(e){this[i]=e}},copy:{writable:!0,configurable:!0,value:function(t){return e.copy.call(this,t),e.isShaderMaterial||e.isDerivedMaterial||(Ds(this.extensions,t.extensions),Ds(this.defines,t.defines),Ds(this.uniforms,a.UniformsUtils.clone(t.uniforms))),this}},clone:{writable:!0,configurable:!0,value:function(){const t=new e.constructor;return l(t).copy(this)}},getDepthMaterial:{writable:!0,configurable:!0,value:function(){let n=this._depthMaterial;return n||(n=this._depthMaterial=Ns(e.isDerivedMaterial?e.getDepthMaterial():new a.MeshDepthMaterial({depthPacking:a.RGBADepthPacking}),t),n.defines.IS_DEPTH_MATERIAL="",n.uniforms=this.uniforms),n}},getDistanceMaterial:{writable:!0,configurable:!0,value:function(){let n=this._distanceMaterial;return n||(n=this._distanceMaterial=Ns(e.isDerivedMaterial?e.getDistanceMaterial():new a.MeshDistanceMaterial,t),n.defines.IS_DISTANCE_MATERIAL="",n.uniforms=this.uniforms),n}},dispose:{writable:!0,configurable:!0,value(){const{_depthMaterial:t,_distanceMaterial:n}=this;t&&t.dispose(),n&&n.dispose(),e.dispose.call(this)}}};return r[n]=o,new o}function ks(e,t,n,r,i){return(r||i||n)&&(e=e.replace(Bs,`\n${n}\nvoid troikaOrigMain${t}() {`),e+=`\nvoid main() {\n ${r}\n troikaOrigMain${t}();\n ${i}\n}`),e}function Gs(e,t){return"uniforms"===e?void 0:"function"==typeof t?t.toString():t}let zs=0;const Qs=new Map;a.DoubleSide;const Vs=()=>(self.performance||Date).now(),Hs=Ts();let js;const Ws=function(){const e=[];let t=0;function n(){const r=Vs();for(;e.length&&Vs()-r<5;)e.shift()();t=e.length?setTimeout(n,0):0}return(...r)=>{const i=ms();return e.push((()=>{const e=Vs();try{Hs.webgl.generateIntoCanvas(...r),i.resolve({timing:Vs()-e})}catch(t){i.reject(t)}})),t||(t=setTimeout(n,0)),i}}(),Xs=function(){const e={};let t=0;return function(n,r,i,s,a,o,l,c,h,u){const d="TroikaTextSDFGenerator_JS_"+t++%4;let p=e[d];return p||(p=e[d]={workerModule:Ss({name:d,workerId:d,dependencies:[Ts,Vs],init(e,t){const n=e().javascript.generate;return function(...e){const r=t();return{textureData:n(...e),timing:t()-r}}},getTransferables:e=>[e.textureData.buffer]}),requests:0,idleTimer:null}),p.requests++,clearTimeout(p.idleTimer),p.workerModule(n,r,i,s,a,o).then((({textureData:e,timing:t})=>{const i=Vs(),s=new Uint8Array(4*e.length);for(let n=0;n{!function(e){Es[e]&&Es[e].forEach((function(e){e()})),bs[e]&&(bs[e].terminate(),delete bs[e])}(d)}),2e3)),{timing:t}}))}}();const Ys=Hs.webglUtils.resizeWebGLCanvasWithoutClearing;const qs=Ss({name:"Typr Font Parser",dependencies:[function(){return"undefined"==typeof window&&(self.window=self),function(e){var t={parse:function(e){var n=t._bin,r=new Uint8Array(e);if("ttcf"==n.readASCII(r,0,4)){var i=4;n.readUshort(r,i),i+=2,n.readUshort(r,i),i+=2;var s=n.readUint(r,i);i+=4;for(var a=[],o=0;o>>n&1)&&t++;return t},t._lctf.readClassDef=function(e,n){var r=t._bin,i=[],s=r.readUshort(e,n);if(n+=2,1==s){var a=r.readUshort(e,n);n+=2;var o=r.readUshort(e,n);n+=2;for(var l=0;l0&&(s.featureParams=i+a);var o=r.readUshort(e,n);n+=2,s.tab=[];for(var l=0;l255?-1:t.CFF.glyphByUnicode(e,t.CFF.tableSE[n])},t.CFF.readEncoding=function(e,n,r){t._bin;var i=[".notdef"],s=e[n];if(n++,0!=s)throw"error: unknown encoding format: "+s;var a=e[n];n++;for(var o=0;o>4,m=15&p;if(15!=f&&d.push(f),15!=m&&d.push(m),15==m)break}for(var g="",A=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],v=0;v=a.xMax||a.yMin>=a.yMax)return null;if(a.noc>0){a.endPts=[];for(var o=0;o=1&&o.fmt<=2){c=s.readUshort(e,r),r+=2;var u=s.readUshort(e,r);r+=2,h=t._lctf.numOfOnes(c);var d=t._lctf.numOfOnes(u);if(1==o.fmt){o.pairsets=[];var p=s.readUshort(e,r);r+=2;for(var f=0;f=1&&o.fmt<=2){if(1==o.fmt)o.delta=s.readShort(e,r),r+=2;else if(2==o.fmt){var c=s.readUshort(e,r);r+=2,o.newg=s.readUshorts(e,r,c),r+=2*o.newg.length}}else if(4==n){o.vals=[],c=s.readUshort(e,r),r+=2;for(var h=0;h>>8;if(0!=(u&=15))throw"unknown kern table format: "+u;n=t.kern.readFormat0(e,n,l)}return l},t.kern.parseV1=function(e,n,r,i){var s=t._bin;s.readFixed(e,n),n+=4;var a=s.readUint(e,n);n+=4;for(var o={glyph1:[],rval:[]},l=0;l>>8;if(0!=(h&=15))throw"unknown kern table format: "+h;n=t.kern.readFormat0(e,n,o)}return o},t.kern.readFormat0=function(e,n,r){var i=t._bin,s=-1,a=i.readUshort(e,n);n+=2,i.readUshort(e,n),n+=2,i.readUshort(e,n),n+=2,i.readUshort(e,n),n+=2;for(var o=0;o=i.map.length?0:i.map[t];if(4==i.format){for(var s=-1,a=0;at?0:65535&(0!=i.idRangeOffset[s]?i.glyphIdArray[t-i.startCount[s]+(i.idRangeOffset[s]>>1)-(i.idRangeOffset.length-s)]:t+i.idDelta[s])}if(12==i.format){if(t>i.groups[i.groups.length-1][1])return 0;for(a=0;a-1?t.U._simpleGlyph(i,r):t.U._compoGlyph(i,n,r))},t.U._simpleGlyph=function(e,n){for(var r=0;rs)){for(var p=!0,f=0,m=0;ms)){for(p=!0,m=0;m>1,a.length=0,l=!0;else if("o3"==w||"o23"==w)a.length%2!=0&&!l&&(c=a.shift()+i.nominalWidthX),o+=a.length>>1,a.length=0,l=!0;else if("o4"==w)a.length>1&&!l&&(c=a.shift()+i.nominalWidthX,l=!0),h&&t.U.P.closePath(s),p+=a.pop(),t.U.P.moveTo(s,d,p),h=!0;else if("o5"==w)for(;a.length>0;)d+=a.shift(),p+=a.shift(),t.U.P.lineTo(s,d,p);else if("o6"==w||"o7"==w)for(var M=a.length,C="o6"==w,T=0;TMath.abs(b-p)?d=x+a.shift():p=b+a.shift(),t.U.P.curveTo(s,f,m,g,A,E,_),t.U.P.curveTo(s,v,y,x,b,d,p));else if("o14"==w){if(a.length>0&&!l&&(c=a.shift()+r.nominalWidthX,l=!0),4==a.length){var R=a.shift(),P=a.shift(),D=a.shift(),L=a.shift(),F=t.CFF.glyphBySE(r,D),U=t.CFF.glyphBySE(r,L);t.U._drawCFF(r.CharStrings[F],n,r,i,s),n.x=R,n.y=P,t.U._drawCFF(r.CharStrings[U],n,r,i,s)}h&&(t.U.P.closePath(s),h=!1)}else if("o19"==w||"o20"==w)a.length%2!=0&&!l&&(c=a.shift()+i.nominalWidthX),o+=a.length>>1,a.length=0,l=!0,u+=o+7>>3;else if("o21"==w)a.length>2&&!l&&(c=a.shift()+i.nominalWidthX,l=!0),p+=a.pop(),d+=a.pop(),h&&t.U.P.closePath(s),t.U.P.moveTo(s,d,p),h=!0;else if("o22"==w)a.length>1&&!l&&(c=a.shift()+i.nominalWidthX,l=!0),d+=a.pop(),h&&t.U.P.closePath(s),t.U.P.moveTo(s,d,p),h=!0;else if("o25"==w){for(;a.length>6;)d+=a.shift(),p+=a.shift(),t.U.P.lineTo(s,d,p);f=d+a.shift(),m=p+a.shift(),g=f+a.shift(),A=m+a.shift(),d=g+a.shift(),p=A+a.shift(),t.U.P.curveTo(s,f,m,g,A,d,p)}else if("o26"==w)for(a.length%2&&(d+=a.shift());a.length>0;)f=d,m=p+a.shift(),d=g=f+a.shift(),p=(A=m+a.shift())+a.shift(),t.U.P.curveTo(s,f,m,g,A,d,p);else if("o27"==w)for(a.length%2&&(p+=a.shift());a.length>0;)m=p,g=(f=d+a.shift())+a.shift(),A=m+a.shift(),d=g+a.shift(),p=A,t.U.P.curveTo(s,f,m,g,A,d,p);else if("o10"==w||"o29"==w){var O="o10"==w?i:r;if(0==a.length)console.debug("error: empty stack");else{var N=a.pop(),k=O.Subrs[N+O.Bias];n.x=d,n.y=p,n.nStems=o,n.haveWidth=l,n.width=c,n.open=h,t.U._drawCFF(k,n,r,i,s),d=n.x,p=n.y,o=n.nStems,l=n.haveWidth,c=n.width,h=n.open}}else if("o30"==w||"o31"==w){var G=a.length,z=(B=0,"o31"==w);for(B+=G-(M=-3&G);B>>1|(21845&p)<<1;f=(61680&(f=(52428&f)>>>2|(13107&f)<<2))>>>4|(3855&f)<<4,d[p]=((65280&f)>>>8|(255&f)<<8)>>>1}var m=function(e,t,r){for(var i=e.length,s=0,a=new n(t);s>>c]=h}else for(o=new n(i),s=0;s>>15-e[s]);return o},g=new t(288);for(p=0;p<144;++p)g[p]=8;for(p=144;p<256;++p)g[p]=9;for(p=256;p<280;++p)g[p]=7;for(p=280;p<288;++p)g[p]=8;var A=new t(32);for(p=0;p<32;++p)A[p]=5;var v=m(g,9,1),y=m(A,5,1),x=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},b=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},E=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},_=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],S=function(e,t,n){var r=new Error(t||_[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,S),!n)throw r;return r},w=function(e,o,l){var h=e.length;if(!h||l&&!l.l&&h<5)return o||new t(0);var d=!o||l,p=!l||l.i;l||(l={}),o||(o=new t(3*h));var f,g=function(e){var n=o.length;if(e>n){var r=new t(Math.max(2*n,e));r.set(o),o=r}},A=l.f||0,_=l.p||0,w=l.b||0,M=l.l,C=l.d,T=l.m,I=l.n,B=8*h;do{if(!M){l.f=A=b(e,_,1);var R=b(e,_+1,3);if(_+=3,!R){var P=e[(V=((f=_)/8|0)+(7&f&&1)+4)-4]|e[V-3]<<8,D=V+P;if(D>h){p&&S(0);break}d&&g(w+P),o.set(e.subarray(V,D),w),l.b=w+=P,l.p=_=8*D;continue}if(1==R)M=v,C=y,T=9,I=5;else if(2==R){var L=b(e,_,31)+257,F=b(e,_+10,15)+4,U=L+b(e,_+5,31)+1;_+=14;for(var O=new t(U),N=new t(19),k=0;k>>4)<16)O[k++]=V;else{var j=0,W=0;for(16==V?(W=3+b(e,_,3),_+=2,j=O[k-1]):17==V?(W=3+b(e,_,7),_+=3):18==V&&(W=11+b(e,_,127),_+=7);W--;)O[k++]=j}}var X=O.subarray(0,L),Y=O.subarray(L);T=x(X),I=x(Y),M=m(X,T,1),C=m(Y,I,1)}else S(1);if(_>B){p&&S(0);break}}d&&g(w+131072);for(var q=(1<>>4;if((_+=15&j)>B){p&&S(0);break}if(j||S(2),Z<256)o[w++]=Z;else{if(256==Z){J=_,M=null;break}var $=Z-254;if(Z>264){var ee=i[k=Z-257];$=b(e,_,(1<>>4;if(te||S(3),_+=15&te,Y=u[ne],ne>3&&(ee=s[ne],Y+=E(e,_)&(1<B){p&&S(0);break}d&&g(w+131072);for(var re=w+$;we.length)&&(s=e.length);var a=new(e instanceof n?n:e instanceof r?r:t)(s-i);return a.set(e.subarray(i,s)),a}(o,0,w)},M=new t(0),C="undefined"!=typeof TextDecoder&&new TextDecoder;try{C.decode(M,{stream:!0})}catch(e){}return e.convert_streams=function(e){var t=new DataView(e),n=0;function r(){var e=t.getUint16(n);return n+=2,e}function i(){var e=t.getUint32(n);return n+=4,e}function s(e){A.setUint16(v,e),v+=2}function a(e){A.setUint32(v,e),v+=4}for(var o={signature:i(),flavor:i(),length:i(),numTables:r(),reserved:r(),totalSfntSize:i(),majorVersion:r(),minorVersion:r(),metaOffset:i(),metaLength:i(),metaOrigLength:i(),privOffset:i(),privLength:i()},l=0;Math.pow(2,l)<=o.numTables;)l++;l--;for(var c=16*Math.pow(2,l),h=16*o.numTables-c,u=12,d=[],p=0;p{let[i,s]=r.split("+");i=parseInt(i,36),s=s?parseInt(s,36):0,h.set(n+=i,e[t]);for(let a=s;a--;)h.set(++n,e[t])}))}}return h.get(e)||c}const d=1,p=2,f=3,m=4,g=[null,"isol","init","fina","medi"];function A(e){const t=new Uint8Array(e.length);let n=c,r=d,h=-1;for(let g=0;g65535&&g++)}return t}function v(t){const r=Object.create(null),i={unitsPerEm:t.head.unitsPerEm,ascender:t.hhea.ascender,descender:t.hhea.descender,forEachGlyph(s,a,o,l){let c=0;const h=1/i.unitsPerEm*a,u=function(t,n){const r=[];for(let s=0;s65535&&s++,r.push(e.U.codeToGlyph(t,i))}const i=t.GSUB;if(i){const{lookupList:t,featureList:s}=i;let a;const o=/^(rlig|liga|mset|isol|init|fina|medi|half|pres|blws)$/,l=[];s.forEach((i=>{if(o.test(i.tag))for(let s=0;s{if(-1!==i){let s=r[i];if(!s){const{cmds:a,crds:o}=e.U.glyphToPath(t,i);let l,c,h,u,d="",p=0;for(let e=0,t=a.length;e1?",":"")+o[p++]}if(o.length){l=c=1/0,h=u=-1/0;for(let e=0,t=o.length;eh&&(h=t),n>u&&(u=n)}}else l=h=c=u=0;s=r[i]={index:i,advanceWidth:t.hmtx.aWidth[i],xMin:l,yMin:c,xMax:h,yMax:u,path:d,pathCommandCount:a.length}}-1!==p&&(c+=e.U.getPairAdjustment(t,p,i)*h),l.call(null,s,c,d),s.advanceWidth&&(c+=s.advanceWidth*h),o&&(c+=o*a),p=i}d+=s.codePointAt(d)>65535?2:1})),c}};return i}return function(n){const r=new Uint8Array(n,0,4),i=e._bin.readASCII(r,0,4);if("wOFF"===i)n=t(n);else if("wOF2"===i)throw new Error("woff2 fonts not supported");return v(e.parse(n)[0])}}],init:(e,t,n)=>n(e(),t())}),Ks={defaultFontURL:"https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxM.woff",sdfGlyphSize:64,sdfMargin:1/16,sdfExponent:9,textureWidth:2048},Js=new a.Color;let Zs=!1;function $s(){return(self.performance||Date).now()}const ea=Object.create(null);function ta(e,t){Zs=!0,e=ra({},e);const n=$s();if(e.font=function(e){ia||(ia="undefined"==typeof document?{}:document.createElement("a"));return ia.href=e,ia.href}(e.font||Ks.defaultFontURL),e.text=""+e.text,e.sdfGlyphSize=e.sdfGlyphSize||Ks.sdfGlyphSize,null!=e.colorRanges){let t={};for(let n in e.colorRanges)if(e.colorRanges.hasOwnProperty(n)){let r=e.colorRanges[n];"number"!=typeof r&&(r=Js.set(r).getHex()),t[n]=r}e.colorRanges=t}Object.freeze(e);const{textureWidth:r,sdfExponent:i}=Ks,{sdfGlyphSize:s}=e,o=r/s*4;let l=ea[s];if(!l){const e=document.createElement("canvas");e.width=r,e.height=256*s/o,l=ea[s]={glyphCount:0,sdfGlyphSize:s,sdfCanvas:e,sdfTexture:new a.Texture(e,void 0,void 0,void 0,a.LinearFilter,a.LinearFilter),contextLost:!1,glyphsByFont:new Map},l.sdfTexture.generateMipmaps=!1,function(e){const t=e.sdfCanvas;t.addEventListener("webglcontextlost",(t=>{console.log("Context Lost",t),t.preventDefault(),e.contextLost=!0})),t.addEventListener("webglcontextrestored",(t=>{console.log("Context Restored",t),e.contextLost=!1;const n=[];e.glyphsByFont.forEach((t=>{t.forEach((t=>{n.push(na(t,e,!0))}))})),ms.all(n).then((()=>{sa(e),e.sdfTexture.needsUpdate=!0}))}))}(l)}const{sdfTexture:c,sdfCanvas:h}=l;let u=l.glyphsByFont.get(e.font);u||l.glyphsByFont.set(e.font,u=new Map),oa(e).then((a=>{const{glyphIds:d,glyphPositions:p,fontSize:f,unitsPerEm:m,timings:g}=a,A=[],v=new Float32Array(4*d.length),y=f/m;let x=0,b=0;const E=$s();d.forEach(((e,t)=>{let n=u.get(e);if(!n){const{path:t,pathBounds:r}=a.glyphData[e],i=Math.max(r[2]-r[0],r[3]-r[1])/s*(Ks.sdfMargin*s+.5),o=l.glyphCount++,c=[r[0]-i,r[1]-i,r[2]+i,r[3]+i];u.set(e,n={path:t,atlasIndex:o,sdfViewBox:c}),A.push(n)}const{sdfViewBox:r}=n,i=p[b++],o=p[b++];v[x++]=i+r[0]*y,v[x++]=o+r[1]*y,v[x++]=i+r[2]*y,v[x++]=o+r[3]*y,d[t]=n.atlasIndex})),g.quads=(g.quads||0)+($s()-E);const _=$s();g.sdf={};const S=h.height,w=Math.ceil(l.glyphCount/o),M=Math.pow(2,Math.ceil(Math.log2(w*s)));M>S&&(console.info(`Increasing SDF texture size ${S}->${M}`),Ys(h,r,M),c.dispose()),ms.all(A.map((t=>na(t,l,e.gpuAccelerateSDF).then((({timing:e})=>{g.sdf[t.atlasIndex]=e}))))).then((()=>{A.length&&!l.contextLost&&(sa(l),c.needsUpdate=!0),g.sdfTotal=$s()-_,g.total=$s()-n,t(Object.freeze({parameters:e,sdfTexture:c,sdfGlyphSize:s,sdfExponent:i,glyphBounds:v,glyphAtlasIndices:d,glyphColors:a.glyphColors,caretPositions:a.caretPositions,caretHeight:a.caretHeight,chunkedBounds:a.chunkedBounds,ascender:a.ascender,descender:a.descender,lineHeight:a.lineHeight,topBaseline:a.topBaseline,blockBounds:a.blockBounds,visibleBounds:a.visibleBounds,timings:a.timings,get totalBounds(){return console.log("totalBounds deprecated, use blockBounds instead"),a.blockBounds},get totalBlockSize(){console.log("totalBlockSize deprecated, use blockBounds instead");const[e,t,n,r]=a.blockBounds;return[n-e,r-t]}}))}))})),ms.all([]).then((()=>{var e;l.contextLost||(e=h)._warm||(Hs.webgl.isSupported(e),e._warm=!0)}))}function na({path:e,atlasIndex:t,sdfViewBox:n},{sdfGlyphSize:r,sdfCanvas:i,contextLost:s},a){if(s)return Promise.resolve({timing:-1});const{textureWidth:o,sdfExponent:l}=Ks,c=Math.max(n[2]-n[0],n[3]-n[1]),h=Math.floor(t/4);return function(e,t,n,r,i,s,a,o,l,c,h=!0){return h?Ws(e,t,n,r,i,s,a,o,l,c).then(null,(h=>(js||(console.warn("WebGL SDF generation failed, falling back to JS",h),js=!0),Xs(e,t,n,r,i,s,a,o,l,c)))):Xs(e,t,n,r,i,s,a,o,l,c)}(r,r,e,n,c,l,i,h%(o/r)*r,Math.floor(h/(o/r))*r,t%4,a)}function ra(e,t){for(let n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}let ia;function sa(e){if("function"!=typeof createImageBitmap){console.info("Safari<15: applying SDF canvas workaround");const{sdfCanvas:t,sdfTexture:n}=e,{width:r,height:i}=t,s=e.sdfCanvas.getContext("webgl");let a=n.image.data;a&&a.length===r*i*4||(a=new Uint8Array(r*i*4),n.image={width:r,height:i,data:a},n.flipY=!1,n.isDataTexture=!0),s.readPixels(0,0,r,i,s.RGBA,s.UNSIGNED_BYTE,a)}}const aa=Ss({name:"Typesetter",dependencies:[Ks,qs,function(e,t,n){const{defaultFontURL:r}=n,i=Object.create(null),s=1/0,a=/[\u00AD\u034F\u061C\u115F-\u1160\u17B4-\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8]/,o=/[\s\-\u007C\u00AD\u2010\u2012-\u2014\u2027\u2056\u2E17\u2E40]/;function l(t,n){t||(t=r);let s=i[t];s?s.pending?s.pending.push(n):n(s):(i[t]={pending:[n]},function(t,n){!function i(){const s=e=>{console.error(`Failure loading font ${t}${t===r?"":"; trying fallback"}`,e),t!==r&&(t=r,i())};try{const r=new XMLHttpRequest;r.open("get",t,!0),r.responseType="arraybuffer",r.onload=function(){if(r.status>=400)s(new Error(r.statusText));else if(r.status>0)try{const t=e(r.response);n(t)}catch(za){s(za)}},r.onerror=s,r.send()}catch(a){s(a)}}()}(t,(e=>{let n=i[t].pending;i[t]=e,n.forEach((t=>t(e)))})))}function c({text:e="",font:n=r,sdfGlyphSize:i=64,fontSize:c=1,letterSpacing:f=0,lineHeight:m="normal",maxWidth:g=s,direction:A,textAlign:v="left",textIndent:y=0,whiteSpace:x="normal",overflowWrap:b="normal",anchorX:E=0,anchorY:_=0,includeCaretPositions:S=!1,chunkedBoundsSize:w=8192,colorRanges:M=null},C,T=!1){const I=d(),B={fontLoad:0,typesetting:0};e.indexOf("\r")>-1&&(console.info("Typesetter: got text with \\r chars; normalizing to \\n"),e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n")),c=+c,f=+f,g=+g,m=m||"normal",y=+y,l(n,(n=>{const r=isFinite(g);let i=null,l=null,R=null,P=null,D=null,L=null,F=null,U=0,O=0,N="nowrap"!==x;const{ascender:k,descender:G,unitsPerEm:z}=n;B.fontLoad=d()-I;const Q=d(),V=c/z;"normal"===m&&(m=(k-G)/z);const H=((m*=c)-(k-G)*V)/2,j=-(k*V+H),W=Math.min(m,(k-G)*V),X=(k+G)/2*V-W/2;let Y=y,q=new p;const K=[q];n.forEachGlyph(e,c,f,((t,n,i)=>{const s=e.charAt(i),l=t.advanceWidth*V,h=q.count;let u;if("isEmpty"in t||(t.isWhitespace=!!s&&/\s/.test(s),t.canBreakAfter=!!s&&o.test(s),t.isEmpty=t.xMin===t.xMax||t.yMin===t.yMax||a.test(s)),t.isWhitespace||t.isEmpty||O++,N&&r&&!t.isWhitespace&&n+l+Y>g&&h){if(q.glyphAt(h-1).glyphObj.canBreakAfter)u=new p,Y=-n;else for(let e=h;e--;){if(0===e&&"break-word"===b){u=new p,Y=-n;break}if(q.glyphAt(e).glyphObj.canBreakAfter){u=q.splitAt(e+1);const t=u.glyphAt(0).x;Y-=t;for(let e=u.count;e--;)u.glyphAt(e).x-=t;break}}u&&(q.isSoftWrapped=!0,q=u,K.push(q),U=g)}let d=q.glyphAt(q.count);d.glyphObj=t,d.x=n+Y,d.width=l,d.charIndex=i,"\n"===s&&(q=new p,K.push(q),Y=-(n+l+f*c)+y)})),K.forEach((e=>{for(let t=e.count;t--;){let{glyphObj:n,x:r,width:i}=e.glyphAt(t);if(!n.isWhitespace)return e.width=r+i,void(e.width>U&&(U=e.width))}}));let J=0,Z=0;if(E&&("number"==typeof E?J=-E:"string"==typeof E&&(J=-U*("left"===E?0:"center"===E?.5:"right"===E?1:h(E)))),_)if("number"==typeof _)Z=-_;else if("string"==typeof _){let e=K.length*m;Z="top"===_?0:"top-baseline"===_?-j:"middle"===_?e/2:"bottom"===_?e:"bottom-baseline"===_?e-H+G*V:h(_)*e}if(!T){const r=t.getEmbeddingLevels(e,A);i=new Uint16Array(O),l=new Float32Array(2*O),R={},L=[s,s,-s,-s],F=[];let a=j;S&&(D=new Float32Array(3*e.length)),M&&(P=new Uint8Array(3*O));let o,c,h=0,d=-1,p=-1;if(K.forEach(((f,g)=>{let{count:A,width:y}=f;if(A>0){let m=0;for(let e=A;e--&&f.glyphAt(e).glyphObj.isWhitespace;)m++;let g=0,x=0;if("center"===v)g=(U-y)/2;else if("right"===v)g=U-y;else if("justify"===v&&f.isSoftWrapped){let e=0;for(let t=A-m;t--;)f.glyphAt(t).glyphObj.isWhitespace&&e++;x=(U-y)/e}if(x||g){let e=0;for(let t=0;t=t){let t=e,s=e;for(;sn)break;sE=e;for(let v=0;v1&&u(D,d,r),d=e}if(M){const{charIndex:e}=m;for(;e>p;)p++,M.hasOwnProperty(p)&&(c=M[p])}if(!E.isWhitespace&&!E.isEmpty){const e=h++;R[g]||(R[g]={path:E.path,pathBounds:[E.xMin,E.yMin,E.xMax,E.yMax]});const t=m.x+J,n=a+Z;l[2*e]=t,l[2*e+1]=n;const r=t+E.xMin*V,u=n+E.yMin*V,d=t+E.xMax*V,p=n+E.yMax*V;rL[2]&&(L[2]=d),p>L[3]&&(L[3]=p),e%w==0&&(o={start:e,end:e,rect:[s,s,-s,-s]},F.push(o)),o.end++;const f=o.rect;if(rf[2]&&(f[2]=d),p>f[3]&&(f[3]=p),i[e]=g,M){const t=3*e;P[t]=c>>16&255,P[t+1]=c>>8&255,P[t+2]=255&c}}}}a-=m})),D){const t=e.length-d;t>1&&u(D,d,t)}}B.typesetting=d()-Q,C({glyphIds:i,glyphPositions:l,glyphData:R,caretPositions:D,caretHeight:W,glyphColors:P,chunkedBounds:F,fontSize:c,unitsPerEm:z,ascender:k*V,descender:G*V,lineHeight:m,topBaseline:j,blockBounds:[J,Z-K.length*m,J+U,Z],visibleBounds:L,timings:B})}))}function h(e){let t=e.match(/^([\d.]+)%$/),n=t?parseFloat(t[1]):NaN;return isNaN(n)?0:n/100}function u(e,t,n){const r=e[3*t],i=e[3*t+1],s=e[3*t+2],a=(i-r)/n;for(let o=0;o(Object.defineProperty(e,t,{get(){return this.data[this.index*f.length+n]},set(e){this.data[this.index*f.length+n]=e}}),e)),{data:null,index:0}),{typeset:c,measure:function(e,t){c(e,(e=>{const[n,r,i,s]=e.blockBounds;t({width:i-n,height:s-r})}),{metricsOnly:!0})},loadFont:l}},Is],init(e,t,n,r){const{defaultFontURL:i}=e;return n(t,r(),{defaultFontURL:i})}}),oa=Ss({name:"Typesetter",dependencies:[aa,Cs],init:(e,t)=>function(n){const r=new t;return e.typeset(n,r.resolve),r},getTransferables(e){const t=[e.glyphPositions.buffer,e.glyphIds.buffer];return e.caretPositions&&t.push(e.caretPositions.buffer),e.glyphColors&&t.push(e.glyphColors.buffer),t}});const la=(()=>{const e={};const t="aTroikaGlyphIndex";class n extends a.InstancedBufferGeometry{constructor(){super(),this.detail=1,this.curveRadius=0,this.groups=[{start:0,count:1/0,materialIndex:0},{start:0,count:1/0,materialIndex:1}],this.boundingSphere=new a.Sphere,this.boundingBox=new a.Box3}computeBoundingSphere(){}computeBoundingBox(){}setSide(e){const t=this.getIndex().count;this.setDrawRange(e===a.BackSide?t/2:0,e===a.DoubleSide?t:t/2)}set detail(t){if(t!==this._detail){this._detail=t,("number"!=typeof t||t<1)&&(t=1);let n=function(t){let n=e[t];if(!n){const r=new a.PlaneBufferGeometry(1,1,t,t),i=r.clone(),s=r.attributes,o=i.attributes,l=new a.BufferGeometry,c=s.uv.count;for(let e=0;e{l.setAttribute(e,new a.Float32BufferAttribute([...s[e].array,...o[e].array],s[e].itemSize))})),l.setIndex([...r.index.array,...i.index.array.map((e=>e+c))]),l.translate(.5,.5,0),n=e[t]=l}return n}(t);["position","normal","uv"].forEach((e=>{this.attributes[e]=n.attributes[e].clone()})),this.setIndex(n.getIndex().clone())}}get detail(){return this._detail}set curveRadius(e){e!==this._curveRadius&&(this._curveRadius=e,this._updateBounds())}get curveRadius(){return this._curveRadius}updateGlyphs(e,n,s,a,o){r(this,"aTroikaGlyphBounds",e,4),r(this,t,n,1),r(this,"aTroikaGlyphColor",o,3),this._blockBounds=s,this._chunkedBounds=a,i(this,n.length),this._updateBounds()}_updateBounds(){const e=this._blockBounds;if(e){const{curveRadius:t,boundingBox:n}=this;if(t){const{PI:r,floor:i,min:s,max:a,sin:o,cos:l}=Math,c=r/2,h=2*r,u=Math.abs(t),d=e[0]/u,p=e[2]/u,f=i((d+c)/h)!==i((p+c)/h)?-u:s(o(d)*u,o(p)*u),m=i((d-c)/h)!==i((p-c)/h)?u:a(o(d)*u,o(p)*u),g=i((d+r)/h)!==i((p+r)/h)?2*u:a(u-l(d)*u,u-l(p)*u);n.min.set(f,e[1],t<0?-g:0),n.max.set(m,e[3],t<0?0:g)}else n.min.set(e[0],e[1],0),n.max.set(e[2],e[3],0);n.getBoundingSphere(this.boundingSphere)}}applyClipRect(e){let n=this.getAttribute(t).count,r=this._chunkedBounds;if(r)for(let t=r.length;t--;){n=r[t].end;let i=r[t].rect;if(i[1]e.y&&i[0]e.x)break}i(this,n)}}function r(e,t,n,r){const i=e.getAttribute(t);n?i&&i.array.length===n.length?(i.array.set(n),i.needsUpdate=!0):(e.setAttribute(t,new a.InstancedBufferAttribute(n,r)),delete e._maxInstanceCount,e.dispose()):i&&e.deleteAttribute(t)}function i(e,t){e[e.hasOwnProperty("instanceCount")?"instanceCount":"maxInstancedCount"]=t}return n.prototype.setAttribute||(n.prototype.setAttribute=function(e,t){return this.attributes[e]=t,this}),n})();const ca=(()=>{const e=new a.MeshBasicMaterial({color:16777215,side:a.DoubleSide,transparent:!0}),t=8421504,n=new a.Matrix4,r=new a.Vector3,i=new a.Vector3,s=[],o=new a.Vector3,l="+x+y";function c(e){return Array.isArray(e)?e[0]:e}let h=()=>{const t=new a.Mesh(new a.PlaneBufferGeometry(1,1),e);return h=()=>t,t},u=()=>{const t=new a.Mesh(new a.PlaneBufferGeometry(1,1,32,1),e);return u=()=>t,t};const d={type:"syncstart"},p={type:"synccomplete"},f=["font","fontSize","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],m=f.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail");class g extends a.Mesh{constructor(){super(new la,null),this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.fontSize=.1,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=t,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=l,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(e){this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(e):(this._isSyncing=!0,this.dispatchEvent(d),ta({text:this.text,font:this.font,fontSize:this.fontSize||.1,letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF},(t=>{this._isSyncing=!1,this._textRenderInfo=t,this.geometry.updateGlyphs(t.glyphBounds,t.glyphAtlasIndices,t.blockBounds,t.chunkedBounds,t.glyphColors);const n=this._queuedSyncs;n&&(this._queuedSyncs=null,this._needsSync=!0,this.sync((()=>{n.forEach((e=>e&&e()))}))),this.dispatchEvent(p),e&&e()}))))}onBeforeRender(e,t,n,r,i,s){this.sync(),i.isTroikaTextMaterial&&this._prepareForRender(i),i._hadOwnSide=i.hasOwnProperty("side"),this.geometry.setSide(i._actualSide=i.side),i.side=a.FrontSide}onAfterRender(e,t,n,r,i,s){i._hadOwnSide?i.side=i._actualSide:delete i.side}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}get material(){let t=this._derivedMaterial;const n=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=e.clone());if(t&&t.baseMaterial===n||(t=this._derivedMaterial=function(e){const t=Ns(e,{chained:!0,extensions:{derivatives:!0},uniforms:{uTroikaSDFTexture:{value:null},uTroikaSDFTextureSize:{value:new a.Vector2},uTroikaSDFGlyphSize:{value:0},uTroikaSDFExponent:{value:0},uTroikaTotalBounds:{value:new a.Vector4(0,0,0,0)},uTroikaClipRect:{value:new a.Vector4(0,0,0,0)},uTroikaDistanceOffset:{value:0},uTroikaOutlineOpacity:{value:0},uTroikaFillOpacity:{value:1},uTroikaPositionOffset:{value:new a.Vector2},uTroikaCurveRadius:{value:0},uTroikaBlurRadius:{value:0},uTroikaStrokeWidth:{value:0},uTroikaStrokeColor:{value:new a.Color},uTroikaStrokeOpacity:{value:1},uTroikaOrient:{value:new a.Matrix3},uTroikaUseGlyphColors:{value:!0},uTroikaSDFDebug:{value:!1}},vertexDefs:"\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform vec4 uTroikaTotalBounds;\nuniform vec4 uTroikaClipRect;\nuniform mat3 uTroikaOrient;\nuniform bool uTroikaUseGlyphColors;\nuniform float uTroikaDistanceOffset;\nuniform float uTroikaBlurRadius;\nuniform vec2 uTroikaPositionOffset;\nuniform float uTroikaCurveRadius;\nattribute vec4 aTroikaGlyphBounds;\nattribute float aTroikaGlyphIndex;\nattribute vec3 aTroikaGlyphColor;\nvarying vec2 vTroikaGlyphUV;\nvarying vec4 vTroikaTextureUVBounds;\nvarying float vTroikaTextureChannel;\nvarying vec3 vTroikaGlyphColor;\nvarying vec2 vTroikaGlyphDimensions;\n",vertexTransform:"\nvec4 bounds = aTroikaGlyphBounds;\nbounds.xz += uTroikaPositionOffset.x;\nbounds.yw -= uTroikaPositionOffset.y;\n\nvec4 outlineBounds = vec4(\n bounds.xy - uTroikaDistanceOffset - uTroikaBlurRadius,\n bounds.zw + uTroikaDistanceOffset + uTroikaBlurRadius\n);\nvec4 clippedBounds = vec4(\n clamp(outlineBounds.xy, uTroikaClipRect.xy, uTroikaClipRect.zw),\n clamp(outlineBounds.zw, uTroikaClipRect.xy, uTroikaClipRect.zw)\n);\n\nvec2 clippedXY = (mix(clippedBounds.xy, clippedBounds.zw, position.xy) - bounds.xy) / (bounds.zw - bounds.xy);\n\nposition.xy = mix(bounds.xy, bounds.zw, clippedXY);\n\nuv = (position.xy - uTroikaTotalBounds.xy) / (uTroikaTotalBounds.zw - uTroikaTotalBounds.xy);\n\nfloat rad = uTroikaCurveRadius;\nif (rad != 0.0) {\n float angle = position.x / rad;\n position.xz = vec2(sin(angle) * rad, rad - cos(angle) * rad);\n normal.xz = vec2(sin(angle), cos(angle));\n}\n \nposition = uTroikaOrient * position;\nnormal = uTroikaOrient * normal;\n\nvTroikaGlyphUV = clippedXY.xy;\nvTroikaGlyphDimensions = vec2(bounds[2] - bounds[0], bounds[3] - bounds[1]);\n\n\nfloat txCols = uTroikaSDFTextureSize.x / uTroikaSDFGlyphSize;\nvec2 txUvPerSquare = uTroikaSDFGlyphSize / uTroikaSDFTextureSize;\nvec2 txStartUV = txUvPerSquare * vec2(\n mod(floor(aTroikaGlyphIndex / 4.0), txCols),\n floor(floor(aTroikaGlyphIndex / 4.0) / txCols)\n);\nvTroikaTextureUVBounds = vec4(txStartUV, vec2(txStartUV) + txUvPerSquare);\nvTroikaTextureChannel = mod(aTroikaGlyphIndex, 4.0);\n",fragmentDefs:"\nuniform sampler2D uTroikaSDFTexture;\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform float uTroikaSDFExponent;\nuniform float uTroikaDistanceOffset;\nuniform float uTroikaFillOpacity;\nuniform float uTroikaOutlineOpacity;\nuniform float uTroikaBlurRadius;\nuniform vec3 uTroikaStrokeColor;\nuniform float uTroikaStrokeWidth;\nuniform float uTroikaStrokeOpacity;\nuniform bool uTroikaSDFDebug;\nvarying vec2 vTroikaGlyphUV;\nvarying vec4 vTroikaTextureUVBounds;\nvarying float vTroikaTextureChannel;\nvarying vec2 vTroikaGlyphDimensions;\n\nfloat troikaSdfValueToSignedDistance(float alpha) {\n // Inverse of exponential encoding in webgl-sdf-generator\n \n float maxDimension = max(vTroikaGlyphDimensions.x, vTroikaGlyphDimensions.y);\n float absDist = (1.0 - pow(2.0 * (alpha > 0.5 ? 1.0 - alpha : alpha), 1.0 / uTroikaSDFExponent)) * maxDimension;\n float signedDist = absDist * (alpha > 0.5 ? -1.0 : 1.0);\n return signedDist;\n}\n\nfloat troikaGlyphUvToSdfValue(vec2 glyphUV) {\n vec2 textureUV = mix(vTroikaTextureUVBounds.xy, vTroikaTextureUVBounds.zw, glyphUV);\n vec4 rgba = texture2D(uTroikaSDFTexture, textureUV);\n float ch = floor(vTroikaTextureChannel + 0.5); //NOTE: can't use round() in WebGL1\n return ch == 0.0 ? rgba.r : ch == 1.0 ? rgba.g : ch == 2.0 ? rgba.b : rgba.a;\n}\n\nfloat troikaGlyphUvToDistance(vec2 uv) {\n return troikaSdfValueToSignedDistance(troikaGlyphUvToSdfValue(uv));\n}\n\nfloat troikaGetAADist() {\n \n #if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300\n return length(fwidth(vTroikaGlyphUV * vTroikaGlyphDimensions)) * 0.5;\n #else\n return vTroikaGlyphDimensions.x / 64.0;\n #endif\n}\n\nfloat troikaGetFragDistValue() {\n vec2 clampedGlyphUV = clamp(vTroikaGlyphUV, 0.5 / uTroikaSDFGlyphSize, 1.0 - 0.5 / uTroikaSDFGlyphSize);\n float distance = troikaGlyphUvToDistance(clampedGlyphUV);\n \n // Extrapolate distance when outside bounds:\n distance += clampedGlyphUV == vTroikaGlyphUV ? 0.0 : \n length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions);\n\n \n\n return distance;\n}\n\nfloat troikaGetEdgeAlpha(float distance, float distanceOffset, float aaDist) {\n #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL)\n float alpha = step(-distanceOffset, -distance);\n #else\n\n float alpha = smoothstep(\n distanceOffset + aaDist,\n distanceOffset - aaDist,\n distance\n );\n #endif\n\n return alpha;\n}\n",fragmentColorTransform:"\nfloat aaDist = troikaGetAADist();\nfloat fragDistance = troikaGetFragDistValue();\nfloat edgeAlpha = uTroikaSDFDebug ?\n troikaGlyphUvToSdfValue(vTroikaGlyphUV) :\n troikaGetEdgeAlpha(fragDistance, uTroikaDistanceOffset, max(aaDist, uTroikaBlurRadius));\n\n#if !defined(IS_DEPTH_MATERIAL) && !defined(IS_DISTANCE_MATERIAL)\nvec4 fillRGBA = gl_FragColor;\nfillRGBA.a *= uTroikaFillOpacity;\nvec4 strokeRGBA = uTroikaStrokeWidth == 0.0 ? fillRGBA : vec4(uTroikaStrokeColor, uTroikaStrokeOpacity);\nif (fillRGBA.a == 0.0) fillRGBA.rgb = strokeRGBA.rgb;\ngl_FragColor = mix(fillRGBA, strokeRGBA, smoothstep(\n -uTroikaStrokeWidth - aaDist,\n -uTroikaStrokeWidth + aaDist,\n fragDistance\n));\ngl_FragColor.a *= edgeAlpha;\n#endif\n\nif (edgeAlpha == 0.0) {\n discard;\n}\n",customRewriter({vertexShader:e,fragmentShader:t}){let n=/\buniform\s+vec3\s+diffuse\b/;return n.test(t)&&(t=t.replace(n,"varying vec3 vTroikaGlyphColor").replace(/\bdiffuse\b/g,"vTroikaGlyphColor"),n.test(e)||(e=e.replace(Bs,"uniform vec3 diffuse;\n$&\nvTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse;\n"))),{vertexShader:e,fragmentShader:t}}});return t.transparent=!0,Object.defineProperties(t,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),t}(n),n.addEventListener("dispose",(function e(){n.removeEventListener("dispose",e),t.dispose()}))),this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY){let e=t._outlineMtl;return e||(e=t._outlineMtl=Object.create(t,{id:{value:t.id+.1}}),e.isTextOutlineMaterial=!0,e.depthWrite=!1,e.map=null,t.addEventListener("dispose",(function n(){t.removeEventListener("dispose",n),e.dispose()}))),[e,t]}return t}set material(e){e&&e.isTroikaTextMaterial?(this._derivedMaterial=e,this._baseMaterial=e.baseMaterial):this._baseMaterial=e}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(e){this.geometry.detail=e}get curveRadius(){return this.geometry.curveRadius}set curveRadius(e){this.geometry.curveRadius=e}get customDepthMaterial(){return c(this.material).getDepthMaterial()}get customDistanceMaterial(){return c(this.material).getDistanceMaterial()}_prepareForRender(e){const s=e.isTextOutlineMaterial,c=e.uniforms,h=this.textRenderInfo;if(h){const{sdfTexture:e,blockBounds:n}=h;c.uTroikaSDFTexture.value=e,c.uTroikaSDFTextureSize.value.set(e.image.width,e.image.height),c.uTroikaSDFGlyphSize.value=h.sdfGlyphSize,c.uTroikaSDFExponent.value=h.sdfExponent,c.uTroikaTotalBounds.value.fromArray(n),c.uTroikaUseGlyphColors.value=!s&&!!h.glyphColors;let r,i,a,o=0,l=0,u=0,d=0,p=0;if(s){let{outlineWidth:e,outlineOffsetX:t,outlineOffsetY:n,outlineBlur:i,outlineOpacity:s}=this;o=this._parsePercent(e)||0,l=Math.max(0,this._parsePercent(i)||0),r=s,d=this._parsePercent(t)||0,p=this._parsePercent(n)||0}else u=Math.max(0,this._parsePercent(this.strokeWidth)||0),u&&(a=this.strokeColor,c.uTroikaStrokeColor.value.set(null==a?t:a),i=this.strokeOpacity,null==i&&(i=1)),r=this.fillOpacity;c.uTroikaDistanceOffset.value=o,c.uTroikaPositionOffset.value.set(d,p),c.uTroikaBlurRadius.value=l,c.uTroikaStrokeWidth.value=u,c.uTroikaStrokeOpacity.value=i,c.uTroikaFillOpacity.value=null==r?1:r,c.uTroikaCurveRadius.value=this.curveRadius||0;let f=this.clipRect;if(f&&Array.isArray(f)&&4===f.length)c.uTroikaClipRect.value.fromArray(f);else{const e=100*(this.fontSize||.1);c.uTroikaClipRect.value.set(n[0]-e,n[1]-e,n[2]+e,n[3]+e)}this.geometry.applyClipRect(c.uTroikaClipRect.value)}c.uTroikaSDFDebug.value=!!this.debugSDF,e.polygonOffset=!!this.depthOffset,e.polygonOffsetFactor=e.polygonOffsetUnits=this.depthOffset||0;const u=s?this.outlineColor||0:this.color;if(null==u)delete e.color;else{const t=e.hasOwnProperty("color")?e.color:e.color=new a.Color;u===t._input&&"object"!=typeof u||t.set(t._input=u)}let d=this.orientation||l;if(d!==e._orientation){let t=c.uTroikaOrient.value;d=d.replace(/[^-+xyz]/g,"");let s=d!==l&&d.match(/^([-+])([xyz])([-+])([xyz])$/);if(s){let[,e,a,l,c]=s;r.set(0,0,0)[a]="-"===e?1:-1,i.set(0,0,0)[c]="-"===l?-1:1,n.lookAt(o,r.cross(i),i),t.setFromMatrix4(n)}else t.identity();e._orientation=d}}_parsePercent(e){if("string"==typeof e){let t=e.match(/^(-?[\d.]+)%$/),n=t?parseFloat(t[1]):NaN;e=(isNaN(n)?0:n/100)*this.fontSize}return e}localPositionToTextCoords(e,t=new a.Vector2){t.copy(e);const n=this.curveRadius;return n&&(t.x=Math.atan2(e.x,Math.abs(n)-Math.abs(e.z))*Math.abs(n)),t}worldPositionToTextCoords(e,t=new a.Vector2){return r.copy(e),this.localPositionToTextCoords(this.worldToLocal(r),t)}raycast(e,t){const{textRenderInfo:n,curveRadius:r}=this;if(n){const i=n.blockBounds,a=r?u():h(),o=a.geometry,{position:l,uv:c}=o.attributes;for(let e=0;e{this[t]=e[t]})),this}clone(){return(new this.constructor).copy(this)}}f.forEach((e=>{const t="_private_"+e;Object.defineProperty(g.prototype,e,{get(){return this[t]},set(e){e!==this[t]&&(this[t]=e,this._needsSync=!0)}})}));let A=!1;return Object.defineProperty(g.prototype,"anchor",{get(){return this._deprecated_anchor},set(e){this._deprecated_anchor=e,A||(console.warn("TextMesh: `anchor` has been deprecated; use `anchorX` and `anchorY` instead."),A=!0),Array.isArray(e)?(this.anchorX=100*(+e[0]||0)+"%",this.anchorY=100*(+e[1]||0)+"%"):this.anchorX=this.anchorY=0}}),g})();new WeakMap;new WeakMap;function ha(e,t,n=((e,t)=>e===t)){if(e===t)return!0;if(!e||!t)return!1;const r=e.length;if(t.length!==r)return!1;for(let i=0;ii.response=e)).then((()=>{r.lifespan&&r.lifespan>0&&setTimeout((()=>{const e=ua.indexOf(i);-1!==e&&ua.splice(e,1)}),r.lifespan)})).catch((e=>i.error=e))};if(ua.push(i),!n)throw i.promise}const pa=(e,t,n)=>da(e,t,!1,n),fa=i.forwardRef((({anchorX:e="center",anchorY:t="middle",font:n,children:s,characters:a,onSync:l,...c},h)=>{const u=(0,o.useThree)((({invalidate:e})=>e)),[d]=i.useState((()=>new ca)),[p,f]=i.useMemo((()=>{const e=[];let t="";return i.Children.forEach(s,(n=>{"string"==typeof n||"number"==typeof n?t+=n:e.push(n)})),[e,t]}),[s]);return pa((()=>new Promise((e=>function({font:e,characters:t,sdfGlyphSize:n},r){ta({font:e,sdfGlyphSize:n,text:Array.isArray(t)?t.join("\n"):""+t},r)}({font:n,characters:a},e)))),["troika-text",n,a]),i.useLayoutEffect((()=>{d.sync((()=>{u(),l&&l(d)}))})),i.useEffect((()=>()=>d.dispose()),[d]),i.createElement("primitive",(0,r.Z)({object:d,ref:h,font:n,text:f,anchorX:e,anchorY:t},c),p)})),ma={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tgl_FragColor = opacity * texel;","}"].join("\n")};var ga=Object.defineProperty,Aa=(e,t,n)=>(((e,t,n)=>{t in e?ga(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);class va{constructor(){Aa(this,"enabled",!0),Aa(this,"needsSwap",!0),Aa(this,"clear",!1),Aa(this,"renderToScreen",!1)}setSize(e,t){}render(e,t,n,r,i){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}class ya{constructor(e){Aa(this,"camera",new a.OrthographicCamera(-1,1,1,-1,0,1)),Aa(this,"geometry",new a.PlaneGeometry(2,2)),Aa(this,"mesh"),this.mesh=new a.Mesh(this.geometry,e)}get material(){return this.mesh.material}set material(e){this.mesh.material=e}dispose(){this.mesh.geometry.dispose()}render(e){e.render(this.mesh,this.camera)}}var xa=Object.defineProperty,ba=(e,t,n)=>(((e,t,n)=>{t in e?xa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);class Ea extends va{constructor(e,t="tDiffuse"){super(),ba(this,"textureID"),ba(this,"uniforms"),ba(this,"material"),ba(this,"fsQuad"),this.textureID=t,e instanceof a.ShaderMaterial?(this.uniforms=e.uniforms,this.material=e):(this.uniforms=a.UniformsUtils.clone(e.uniforms),this.material=new a.ShaderMaterial({defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new ya(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}}var _a=Object.defineProperty,Sa=(e,t,n)=>(((e,t,n)=>{t in e?_a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);class wa extends va{constructor(e,t){super(),Sa(this,"scene"),Sa(this,"camera"),Sa(this,"inverse"),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const r=e.getContext(),i=e.state;let s,a;i.buffers.color.setMask(!1),i.buffers.depth.setMask(!1),i.buffers.color.setLocked(!0),i.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),i.buffers.stencil.setTest(!0),i.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),i.buffers.stencil.setFunc(r.ALWAYS,s,4294967295),i.buffers.stencil.setClear(a),i.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),i.buffers.color.setLocked(!1),i.buffers.depth.setLocked(!1),i.buffers.stencil.setLocked(!1),i.buffers.stencil.setFunc(r.EQUAL,1,4294967295),i.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),i.buffers.stencil.setLocked(!0)}}class Ma extends va{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}var Ca=Object.defineProperty,Ta=(e,t,n)=>(((e,t,n)=>{t in e?Ca(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);var Ia=Object.defineProperty,Ba=(e,t,n)=>(((e,t,n)=>{t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);const Ra={uniforms:{tDiffuse:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 tex = texture2D( tDiffuse, vUv );","\tgl_FragColor = LinearTosRGB( tex );","}"].join("\n")};(0,o.extend)({EffectComposer:class{constructor(e,t){if(Ta(this,"renderer"),Ta(this,"_pixelRatio"),Ta(this,"_width"),Ta(this,"_height"),Ta(this,"renderTarget1"),Ta(this,"renderTarget2"),Ta(this,"writeBuffer"),Ta(this,"readBuffer"),Ta(this,"renderToScreen"),Ta(this,"passes",[]),Ta(this,"copyPass"),Ta(this,"clock"),this.renderer=e,void 0===t){const n={minFilter:a.LinearFilter,magFilter:a.LinearFilter,format:a.RGBAFormat},r=e.getSize(new a.Vector2);this._pixelRatio=e.getPixelRatio(),this._width=r.width,this._height=r.height,(t=new a.WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio,n)).texture.name="EffectComposer.rt1"}else this._pixelRatio=1,this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,void 0===ma&&console.error("THREE.EffectComposer relies on CopyShader"),void 0===Ea&&console.error("THREE.EffectComposer relies on ShaderPass"),this.copyPass=new Ea(ma),this.copyPass.material.blending=a.NoBlending,this.clock=new a.Clock}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(za){return!1}},Da=i.forwardRef((({children:e,multisamping:t=8,renderIndex:n=1,disableGamma:s=!1,disableRenderPass:l=!1,...c},h)=>{const u=i.useRef(),d=(0,o.useThree)((({scene:e})=>e)),p=(0,o.useThree)((({camera:e})=>e)),f=(0,o.useThree)((({gl:e})=>e)),m=(0,o.useThree)((({size:e})=>e)),[g]=i.useState((()=>{if(Pa()&&t>0){const e=new a.WebGLRenderTarget(m.width,m.height,{format:a.RGBAFormat,encoding:a.sRGBEncoding});return e.samples=8,e}}));return i.useEffect((()=>{var e,t;null==(e=u.current)||e.setSize(m.width,m.height),null==(t=u.current)||t.setPixelRatio(f.getPixelRatio())}),[f,m]),(0,o.useFrame)((()=>{var e;return null==(e=u.current)?void 0:e.render()}),n),i.createElement("effectComposer",(0,r.Z)({ref:M([h,u]),args:[f,g]},c),!l&&i.createElement("renderPass",{attachArray:"passes",args:[d,p]}),!s&&i.createElement("shaderPass",{attachArray:"passes",args:[Ra]}),e)}));function La({stops:e,colors:t,size:n=1024,...s}){const l=(0,o.useThree)((e=>e.gl)),c=i.useMemo((()=>{const r=document.createElement("canvas"),i=r.getContext("2d");r.width=16,r.height=n;const s=i.createLinearGradient(0,0,0,n);let o=e.length;for(;o--;)s.addColorStop(e[o],t[o]);i.fillStyle=s,i.fillRect(0,0,16,n);const l=new a.Texture(r);return l.needsUpdate=!0,l}),[e]);return i.useEffect((()=>()=>{c.dispose()}),[c]),i.createElement("primitive",(0,r.Z)({object:c,attach:"map",encoding:l.outputEncoding},s))}function Fa(e,t,n,r){return class extends a.ShaderMaterial{constructor(){const i=Object.entries(e);super({uniforms:i.reduce(((e,[t,n])=>({...e,...a.UniformsUtils.clone({[t]:{value:n}})})),{}),vertexShader:t,fragmentShader:n}),i.forEach((([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t}))),r&&r(this)}}}const Ua=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function Oa(e){const t=(0,o.useThree)((e=>e.gl)),n=(0,o.useLoader)(a.TextureLoader,Ua(e)?Object.values(e):e);if((0,i.useEffect)((()=>{(Array.isArray(n)?n:[n]).forEach(t.initTexture)}),[t,n]),Ua(e)){const t=Object.keys(e),r={};return t.forEach((e=>Object.assign(r,{[e]:n[t.indexOf(e)]}))),r}return n}Oa.preload=e=>o.useLoader.preload(a.TextureLoader,e),Oa.clear=e=>o.useLoader.clear(a.TextureLoader,e);const Na=Fa({color:new a.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);\n \n #include \n #include \n }\n"),ka=i.forwardRef((({children:e,color:t,segments:n=1,scale:s=1,zoom:a=1,grayscale:l=0,url:c,toneMapped:h,...u},d)=>{(0,o.extend)({ImageMaterial:Na});const p=Oa(c),f=Array.isArray(s)?[s[0],s[1]]:[s,s],m=[p.image.width,p.image.height];return i.createElement("mesh",(0,r.Z)({ref:d,scale:s},u),i.createElement("planeGeometry",{args:[1,1,n,n]}),i.createElement("imageMaterial",{color:t,map:p,zoom:a,grayscale:l,scale:f,imageBounds:m,toneMapped:h}),e)}));function Ga({userData:e,children:t,geometry:n,threshold:s=15,color:o="black",...l}){const c=i.useRef(null);return i.useLayoutEffect((()=>{const e=c.current.parent;if(e){const t=n||e.geometry;t===c.current.userData.currentGeom&&s===c.current.userData.currentThreshold||(c.current.userData.currentGeom=t,c.current.userData.currentThreshold=s,c.current.geometry=new a.EdgesGeometry(t,s))}})),i.createElement("lineSegments",(0,r.Z)({ref:c,raycast:()=>null},l),t||i.createElement("lineBasicMaterial",{color:o}))}function za(e,t){const n=new a.Matrix4,r=new a.Ray,i=new a.Sphere,s=new a.Vector3,o=this.geometry;if(i.copy(o.boundingSphere),i.applyMatrix4(this.matrixWorld),!1===e.ray.intersectSphere(i,s))return;n.copy(this.matrixWorld).invert(),r.copy(e.ray).applyMatrix4(n);const l=new a.Vector3,c=new a.Vector3,h=new a.Vector3,u=this instanceof a.LineSegments?2:1,d=o.index,p=o.attributes;if(null!==d){const n=d.array,i=p.position.array,a=p.width.array;for(let o=0,d=n.length-1;og)continue;s.applyMatrix4(this.matrixWorld);const A=e.ray.origin.distanceTo(s);Ae.far||(t.push({distance:A,point:h.clone().applyMatrix4(this.matrixWorld),index:o,face:null,faceIndex:null,object:this}),o=d)}}}function Qa(e,t,n,r,i){let s;if(e=e.subarray||e.slice?e:e.buffer,n=n.subarray||n.slice?n:n.buffer,e=t?e.subarray?e.subarray(t,i&&t+i):e.slice(t,i&&t+i):e,n.set)n.set(e,r);else for(s=0;s0&&(n=this.copyV3(r),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]))}n=this.compareV3(e-1,0)?this.copyV3(1):this.copyV3(e-1),this.next.push(n[0],n[1],n[2]),this.next.push(n[0],n[1],n[2]),this._attributes&&this._attributes.position.count===this.positions.length?(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0):this._attributes={position:new a.BufferAttribute(new Float32Array(this.positions),3),previous:new a.BufferAttribute(new Float32Array(this.previous),3),next:new a.BufferAttribute(new Float32Array(this.next),3),side:new a.BufferAttribute(new Float32Array(this.side),1),width:new a.BufferAttribute(new Float32Array(this.width),1),uv:new a.BufferAttribute(new Float32Array(this.uvs),2),index:new a.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new a.BufferAttribute(new Float32Array(this.counters),1)},this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()}advance({x:e,y:t,z:n}){const r=this._attributes.position.array,i=this._attributes.previous.array,s=this._attributes.next.array,a=r.length;Qa(r,0,i,0,a),Qa(r,6,r,0,a-6),r[a-6]=e,r[a-5]=t,r[a-4]=n,r[a-3]=e,r[a-2]=t,r[a-1]=n,Qa(r,6,s,0,a-6),s[a-6]=e,s[a-5]=t,s[a-4]=n,s[a-3]=e,s[a-2]=t,s[a-1]=n,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0}}a.ShaderChunk.meshline_vert=["","#include ","",a.ShaderChunk.logdepthbuf_pars_vertex,a.ShaderChunk.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;","\t vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",a.ShaderChunk.logdepthbuf_vertex,a.ShaderChunk.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",a.ShaderChunk.fog_vertex,"}"].join("\n"),a.ShaderChunk.meshline_frag=["",a.ShaderChunk.fog_pars_fragment,a.ShaderChunk.logdepthbuf_pars_fragment,"","uniform sampler2D map;","uniform sampler2D alphaMap;","uniform float useMap;","uniform float useAlphaMap;","uniform float useDash;","uniform float dashArray;","uniform float dashOffset;","uniform float dashRatio;","uniform float visibility;","uniform float alphaTest;","uniform vec2 repeat;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","void main() {","",a.ShaderChunk.logdepthbuf_fragment,""," vec4 c = vColor;"," if( useMap == 1. ) c *= texture2D( map, vUV * repeat );"," if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;"," if( c.a < alphaTest ) discard;"," if( useDash == 1. ){"," c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));"," }"," gl_FragColor = c;"," gl_FragColor.a *= step(vCounters, visibility);","",a.ShaderChunk.fog_fragment,"}"].join("\n");class Ha extends a.ShaderMaterial{constructor(e){super({uniforms:Object.assign({},a.UniformsLib.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new a.Color(16777215)},opacity:{value:1},resolution:{value:new a.Vector2(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new a.Vector2(1,1)}}),vertexShader:a.ShaderChunk.meshline_vert,fragmentShader:a.ShaderChunk.meshline_frag}),this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get(){return this.uniforms.lineWidth.value},set(e){this.uniforms.lineWidth.value=e}},map:{enumerable:!0,get(){return this.uniforms.map.value},set(e){this.uniforms.map.value=e}},useMap:{enumerable:!0,get(){return this.uniforms.useMap.value},set(e){this.uniforms.useMap.value=e}},alphaMap:{enumerable:!0,get(){return this.uniforms.alphaMap.value},set(e){this.uniforms.alphaMap.value=e}},useAlphaMap:{enumerable:!0,get(){return this.uniforms.useAlphaMap.value},set(e){this.uniforms.useAlphaMap.value=e}},color:{enumerable:!0,get(){return this.uniforms.color.value},set(e){this.uniforms.color.value=e}},opacity:{enumerable:!0,get(){return this.uniforms.opacity.value},set(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get(){return this.uniforms.resolution.value},set(e){this.uniforms.resolution.value.copy(e)}},sizeAttenuation:{enumerable:!0,get(){return this.uniforms.sizeAttenuation.value},set(e){this.uniforms.sizeAttenuation.value=e}},dashArray:{enumerable:!0,get(){return this.uniforms.dashArray.value},set(e){this.uniforms.dashArray.value=e,this.useDash=0!==e?1:0}},dashOffset:{enumerable:!0,get(){return this.uniforms.dashOffset.value},set(e){this.uniforms.dashOffset.value=e}},dashRatio:{enumerable:!0,get(){return this.uniforms.dashRatio.value},set(e){this.uniforms.dashRatio.value=e}},useDash:{enumerable:!0,get(){return this.uniforms.useDash.value},set(e){this.uniforms.useDash.value=e}},visibility:{enumerable:!0,get(){return this.uniforms.visibility.value},set(e){this.uniforms.visibility.value=e}},alphaTest:{enumerable:!0,get(){return this.uniforms.alphaTest.value},set(e){this.uniforms.alphaTest.value=e}},repeat:{enumerable:!0,get(){return this.uniforms.repeat.value},set(e){this.uniforms.repeat.value.copy(e)}}}),this.setValues(e)}copy(e){return super.copy(e),this.lineWidth=e.lineWidth,this.map=e.map,this.useMap=e.useMap,this.alphaMap=e.alphaMap,this.useAlphaMap=e.useAlphaMap,this.color.copy(e.color),this.opacity=e.opacity,this.resolution.copy(e.resolution),this.sizeAttenuation=e.sizeAttenuation,this.dashArray.copy(e.dashArray),this.dashOffset.copy(e.dashOffset),this.dashRatio.copy(e.dashRatio),this.useDash=e.useDash,this.visibility=e.visibility,this.alphaTest=e.alphaTest,this.repeat.copy(e.repeat),this}}const ja={width:.2,length:1,decay:1,local:!1,stride:0,interval:1},Wa=(e,t=1)=>(e.set(e.subarray(t)),e.fill(-1/0,-t),e);function Xa(e,t){const{length:n,local:r,decay:s,interval:l,stride:c}={...ja,...t},h=i.useRef(),[u]=i.useState((()=>new a.Vector3));i.useLayoutEffect((()=>{e&&(h.current=Float32Array.from({length:10*n*3},((t,n)=>e.position.getComponent(n%3))))}),[n,e]);const d=i.useRef(new a.Vector3),p=i.useRef(0);return(0,o.useFrame)((()=>{if(e&&h.current){if(0===p.current){let t;r?t=e.position:(e.getWorldPosition(u),t=u);const n=1*s;for(let e=0;e{const{children:n}=e,{width:r,length:s,decay:l,local:c,stride:h,interval:u}={...ja,...e},{color:d="hotpink",attenuation:p,target:f}=e,m=(0,o.useThree)((e=>e.size)),g=i.useRef(null),[A,v]=i.useState(null),y=Xa(A,{length:s,decay:l,local:c,stride:h,interval:u});i.useEffect((()=>{const e=(null==f?void 0:f.current)||g.current.children.find((e=>e instanceof a.Object3D));e&&v(e)}),[y,f]);const x=i.useMemo((()=>new Va),[]),b=i.useMemo((()=>{var e;const t=new Ha({lineWidth:.1*r,color:d,sizeAttenuation:1,resolution:new a.Vector2(m.width,m.height)});let i;if(n)if(Array.isArray(n))i=n.find((e=>{const t=e;return"string"==typeof t.type&&"meshLineMaterial"===t.type}));else{const e=n;"string"==typeof e.type&&"meshLineMaterial"===e.type&&(i=e)}return"object"==typeof(null==(e=i)?void 0:e.props)&&t.setValues(i.props),t}),[r,d,m,n]);return i.useEffect((()=>{b.uniforms.resolution.value.set(m.width,m.height)}),[m]),(0,o.useFrame)((()=>{y.current&&x.setPoints(y.current,p)})),i.createElement("group",null,i.createElement("mesh",{ref:t,geometry:x,material:b}),i.createElement("group",{ref:g},n))})),qa=new a.Triangle,Ka=new a.Vector3;class Ja{constructor(e){let t=e.geometry;t.index&&(console.warn("THREE.MeshSurfaceSampler: Converting geometry to non-indexed BufferGeometry."),t=t.toNonIndexed()),this.geometry=t,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.colorAttribute=this.geometry.getAttribute("color"),this.weightAttribute=null,this.distribution=null}setWeightAttribute(e){return this.weightAttribute=e?this.geometry.getAttribute(e):null,this}build(){const e=this.positionAttribute,t=this.weightAttribute,n=new Float32Array(e.count/3);for(let i=0;ie){i=s;break}e1&&(i=1-i,s=1-s),qa.a.fromBufferAttribute(this.positionAttribute,3*e),qa.b.fromBufferAttribute(this.positionAttribute,3*e+1),qa.c.fromBufferAttribute(this.positionAttribute,3*e+2),t.set(0,0,0).addScaledVector(qa.a,i).addScaledVector(qa.b,s).addScaledVector(qa.c,1-(i+s)),void 0!==n&&qa.getNormal(n),void 0!==r&&void 0!==this.colorAttribute&&(qa.a.fromBufferAttribute(this.colorAttribute,3*e),qa.b.fromBufferAttribute(this.colorAttribute,3*e+1),qa.c.fromBufferAttribute(this.colorAttribute,3*e+2),Ka.set(0,0,0).addScaledVector(qa.a,i).addScaledVector(qa.b,s).addScaledVector(qa.c,1-(i+s)),r.r=Ka.x,r.g=Ka.y,r.b=Ka.z),this}}const Za=({children:e,weight:t,transform:n,instances:s,mesh:o,...l})=>{const c=i.useRef(null),h=i.useRef(null),u=i.useRef(null);return i.useEffect((()=>{var e,t;h.current=null!==(e=null==s?void 0:s.current)&&void 0!==e?e:c.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),u.current=null!==(t=null==o?void 0:o.current)&&void 0!==t?t:c.current.children.find((e=>"Mesh"===e.type))}),[e,null==o?void 0:o.current,null==s?void 0:s.current]),i.useEffect((()=>{if(void 0===u.current)return;if(void 0===h.current)return;const e=new Ja(u.current);t&&e.setWeightAttribute(t),e.build();const r=new a.Vector3,i=new a.Vector3,s=new a.Color,o=new a.Object3D;u.current.updateMatrixWorld(!0);for(let t=0;t{const[s]=i.useState((()=>new a.BufferAttribute(new Float32Array(0),1))),o=i.useRef(null);return i.useLayoutEffect((()=>{if(o.current){var t;const n=null!==(t=o.current.parent)&&void 0!==t?t:o.current.__r3f.parent,r=e(n);o.current.copy(r)}}),[e]),i.createElement("primitive",(0,r.Z)({ref:o,object:s,attachObject:["attributes",t]},n))};var eo=n(25030),to=n.n(eo);function no(e,{keys:t=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData"],deep:n,inject:r,castShadow:s,receiveShadow:a}){let o=to()(e,t);return n&&(o.geometry&&"materialsOnly"!==n&&(o.geometry=o.geometry.clone()),o.material&&"geometriesOnly"!==n&&(o.material=o.material.clone())),r&&(o="function"==typeof r?{...o,children:r(e)}:i.isValidElement(r)?{...o,children:r}:{...o,...r}),"Mesh"===e.type&&(s&&(o.castShadow=!0),a&&(o.receiveShadow=!0)),o}const ro=i.forwardRef((({object:e,children:t,deep:n,castShadow:s,receiveShadow:a,inject:o,keys:l,...c},h)=>{const u={keys:l,deep:n,inject:o,castShadow:s,receiveShadow:a};if(Array.isArray(e))return i.createElement("group",(0,r.Z)({},c,{ref:h}),e.map((e=>i.createElement(ro,(0,r.Z)({key:e.uuid,object:e},u)))),t);const{children:d,...p}=no(e,u),f=e.type[0].toLowerCase()+e.type.slice(1);return i.createElement(f,(0,r.Z)({},p,c,{ref:h}),(null==e?void 0:e.children).map((e=>{let t={},n=e.type[0].toLowerCase()+e.type.slice(1);return"group"===n||"object3D"===n?(n=ro,t={object:e,...u}):t=no(e,u),i.createElement(n,(0,r.Z)({key:e.uuid},t))})),t,d)})),io=i.forwardRef((({makeDefault:e,...t},n)=>{const s=(0,o.useThree)((({set:e})=>e)),a=(0,o.useThree)((({camera:e})=>e)),l=(0,o.useThree)((({size:e})=>e)),c=i.useRef();return i.useLayoutEffect((()=>{c.current&&!t.manual&&c.current.updateProjectionMatrix()}),[l,t]),i.useLayoutEffect((()=>{if(e&&c.current){const e=a;return s((()=>({camera:c.current}))),()=>s((()=>({camera:e})))}}),[a,c,e,s]),i.createElement("orthographicCamera",(0,r.Z)({left:l.width/-2,right:l.width/2,top:l.height/2,bottom:l.height/-2,ref:M([c,n])},t))})),so=i.forwardRef((({makeDefault:e,...t},n)=>{const s=(0,o.useThree)((({set:e})=>e)),a=(0,o.useThree)((({camera:e})=>e)),l=(0,o.useThree)((({size:e})=>e)),c=i.useRef();return i.useLayoutEffect((()=>{const{current:e}=c;e&&!t.manual&&(e.aspect=l.width/l.height,e.updateProjectionMatrix())}),[l,t]),i.useLayoutEffect((()=>{if(e&&c.current){const e=a;return s((()=>({camera:c.current}))),()=>s((()=>({camera:e})))}}),[a,c,e,s]),i.createElement("perspectiveCamera",(0,r.Z)({ref:M([c,n])},t))}));function ao({children:e,fog:t,frames:n=1/0,resolution:r=256,near:s=1,far:l=1e3,...c}){const h=i.useRef(),[u,d]=i.useState(),p=(0,o.useThree)((({scene:e})=>e)),f=(0,o.useThree)((({gl:e})=>e)),m=i.useMemo((()=>{const e=new a.WebGLCubeRenderTarget(r);return e.texture.type=a.HalfFloatType,e}),[r]);let g=0;return(0,o.useFrame)((()=>{if(u&&h.current&&(n===1/0||ge.visible=!1));const e=p.fog;p.fog=t||e,u.update(f,p),p.fog=e,h.current.traverse((e=>e.visible=!0)),g++}})),i.createElement("group",c,i.createElement("cubeCamera",{ref:d,args:[s,l,m]}),i.createElement("group",{ref:h},e(m.texture)))}var oo=Object.defineProperty,lo=(e,t,n)=>(((e,t,n)=>{t in e?oo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);class co extends a.EventDispatcher{constructor(e){super(),lo(this,"object"),lo(this,"changeEvent",{type:"change"}),lo(this,"EPS",1e-6),lo(this,"enabled",!0),lo(this,"deviceOrientation",{alpha:0,beta:0,gamma:0}),lo(this,"screenOrientation",0),lo(this,"alphaOffset",0),lo(this,"onDeviceOrientationChangeEvent",(e=>{this.deviceOrientation=e})),lo(this,"onScreenOrientationChangeEvent",(()=>{this.screenOrientation=window.orientation||0})),lo(this,"zee",new a.Vector3(0,0,1)),lo(this,"euler",new a.Euler),lo(this,"q0",new a.Quaternion),lo(this,"q1",new a.Quaternion(-Math.sqrt(.5),0,0,Math.sqrt(.5))),lo(this,"setObjectQuaternion",((e,t,n,r,i)=>{this.euler.set(n,t,-r,"YXZ"),e.setFromEuler(this.euler),e.multiply(this.q1),e.multiply(this.q0.setFromAxisAngle(this.zee,-i))})),lo(this,"connect",(()=>{this.onScreenOrientationChangeEvent(),void 0!==window.DeviceOrientationEvent&&"function"==typeof window.DeviceOrientationEvent.requestPermission?window.DeviceOrientationEvent.requestPermission().then((e=>{"granted"==e&&(window.addEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.addEventListener("deviceorientation",this.onDeviceOrientationChangeEvent))})).catch((e=>{console.error("THREE.DeviceOrientationControls: Unable to use DeviceOrientation API:",e)})):(window.addEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.addEventListener("deviceorientation",this.onDeviceOrientationChangeEvent)),this.enabled=!0})),lo(this,"disconnect",(()=>{window.removeEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.removeEventListener("deviceorientation",this.onDeviceOrientationChangeEvent),this.enabled=!1})),lo(this,"lastQuaternion",new a.Quaternion),lo(this,"update",(()=>{if(!1===this.enabled)return;const e=this.deviceOrientation;if(e){const t=e.alpha?a.MathUtils.degToRad(e.alpha)+this.alphaOffset:0,n=e.beta?a.MathUtils.degToRad(e.beta):0,r=e.gamma?a.MathUtils.degToRad(e.gamma):0,i=this.screenOrientation?a.MathUtils.degToRad(this.screenOrientation):0;this.setObjectQuaternion(this.object.quaternion,t,n,r,i),8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS&&(this.lastQuaternion.copy(this.object.quaternion),this.dispatchEvent(this.changeEvent))}})),lo(this,"dispose",(()=>this.disconnect())),this.object=e,this.object.rotation.reorder("YXZ"),this.connect()}}const ho=i.forwardRef(((e,t)=>{const{camera:n,onChange:s,...a}=e,l=(0,o.useThree)((e=>e.camera)),c=(0,o.useThree)((e=>e.invalidate)),h=n||l,[u]=i.useState((()=>new co(h)));return i.useEffect((()=>{const e=e=>{c(),s&&s(e)};return null==u||null==u.addEventListener||u.addEventListener("change",e),()=>null==u||null==u.removeEventListener?void 0:u.removeEventListener("change",e)}),[s,u,c]),(0,o.useFrame)((()=>null==u?void 0:u.update())),i.useEffect((()=>{const e=u;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[u]),u?i.createElement("primitive",(0,r.Z)({ref:t,dispose:void 0,object:u},a)):null}));var uo=Object.defineProperty,po=(e,t,n)=>(((e,t,n)=>{t in e?uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);function fo(e){e.preventDefault()}class mo extends a.EventDispatcher{constructor(e,t){super(),po(this,"object"),po(this,"domElement",null),po(this,"movementSpeed",1),po(this,"rollSpeed",.005),po(this,"dragToLook",!1),po(this,"autoForward",!1),po(this,"changeEvent",{type:"change"}),po(this,"EPS",1e-6),po(this,"tmpQuaternion",new a.Quaternion),po(this,"mouseStatus",0),po(this,"movementSpeedMultiplier",1),po(this,"moveState",{up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0}),po(this,"moveVector",new a.Vector3(0,0,0)),po(this,"rotationVector",new a.Vector3(0,0,0)),po(this,"keydown",(e=>{if(!e.altKey){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this.moveState.forward=1;break;case"KeyS":this.moveState.back=1;break;case"KeyA":this.moveState.left=1;break;case"KeyD":this.moveState.right=1;break;case"KeyR":this.moveState.up=1;break;case"KeyF":this.moveState.down=1;break;case"ArrowUp":this.moveState.pitchUp=1;break;case"ArrowDown":this.moveState.pitchDown=1;break;case"ArrowLeft":this.moveState.yawLeft=1;break;case"ArrowRight":this.moveState.yawRight=1;break;case"KeyQ":this.moveState.rollLeft=1;break;case"KeyE":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}})),po(this,"keyup",(e=>{switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this.moveState.forward=0;break;case"KeyS":this.moveState.back=0;break;case"KeyA":this.moveState.left=0;break;case"KeyD":this.moveState.right=0;break;case"KeyR":this.moveState.up=0;break;case"KeyF":this.moveState.down=0;break;case"ArrowUp":this.moveState.pitchUp=0;break;case"ArrowDown":this.moveState.pitchDown=0;break;case"ArrowLeft":this.moveState.yawLeft=0;break;case"ArrowRight":this.moveState.yawRight=0;break;case"KeyQ":this.moveState.rollLeft=0;break;case"KeyE":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()})),po(this,"pointerdown",(e=>{if(this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}})),po(this,"pointermove",(e=>{if(!this.dragToLook||this.mouseStatus>0){const t=this.getContainerDimensions(),n=t.size[0]/2,r=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-n)/n,this.moveState.pitchDown=(e.pageY-t.offset[1]-r)/r,this.updateRotationVector()}})),po(this,"pointerup",(e=>{if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()})),po(this,"lastQuaternion",new a.Quaternion),po(this,"lastPosition",new a.Vector3),po(this,"update",(e=>{const t=e*this.movementSpeed,n=e*this.rollSpeed;this.object.translateX(this.moveVector.x*t),this.object.translateY(this.moveVector.y*t),this.object.translateZ(this.moveVector.z*t),this.tmpQuaternion.set(this.rotationVector.x*n,this.rotationVector.y*n,this.rotationVector.z*n,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS)&&(this.dispatchEvent(this.changeEvent),this.lastQuaternion.copy(this.object.quaternion),this.lastPosition.copy(this.object.position))})),po(this,"updateMovementVector",(()=>{const e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back})),po(this,"updateRotationVector",(()=>{this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft})),po(this,"getContainerDimensions",(()=>this.domElement==document||this.domElement instanceof Document?{size:[window.innerWidth,window.innerHeight],offset:[0,0]}:{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]})),po(this,"connect",(e=>{this.domElement=e,!e||e instanceof Document||e.setAttribute("tabindex",-1),this.domElement.addEventListener("contextmenu",fo),this.domElement.addEventListener("pointermove",this.pointermove),this.domElement.addEventListener("pointerdown",this.pointerdown),this.domElement.addEventListener("pointerup",this.pointerup),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup)})),po(this,"dispose",(()=>{this.domElement.removeEventListener("contextmenu",fo),this.domElement.removeEventListener("pointermove",this.pointermove),this.domElement.removeEventListener("pointerdown",this.pointerdown),this.domElement.removeEventListener("pointerup",this.pointerup),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup)})),this.object=e,void 0!==t&&this.connect(t),this.updateMovementVector(),this.updateRotationVector()}}const go=i.forwardRef(((e,t)=>{const{onChange:n,...s}=e,a=(0,o.useThree)((({invalidate:e})=>e)),l=(0,o.useThree)((({camera:e})=>e)),c=(0,o.useThree)((({gl:e})=>e)),[h]=i.useState((()=>new mo(l,c.domElement)));return i.useEffect((()=>{const e=e=>{a(),n&&n(e)};return null==h||null==h.addEventListener||h.addEventListener("change",e),()=>null==h||null==h.removeEventListener?void 0:h.removeEventListener("change",e)}),[n,h,a]),(0,o.useFrame)(((e,t)=>null==h?void 0:h.update(t))),h?i.createElement("primitive",(0,r.Z)({ref:t,dispose:void 0,object:h},s)):null}));var Ao=Object.defineProperty,vo=(e,t,n)=>(((e,t,n)=>{t in e?Ao(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);const yo=new a.Ray,xo=new a.Plane,bo=Math.cos(Math.PI/180*70),Eo=(e,t)=>(e%t+t)%t;class _o extends a.EventDispatcher{constructor(e,t){super(),vo(this,"object"),vo(this,"domElement"),vo(this,"enabled",!0),vo(this,"target",new a.Vector3),vo(this,"minDistance",0),vo(this,"maxDistance",1/0),vo(this,"minZoom",0),vo(this,"maxZoom",1/0),vo(this,"minPolarAngle",0),vo(this,"maxPolarAngle",Math.PI),vo(this,"minAzimuthAngle",-1/0),vo(this,"maxAzimuthAngle",1/0),vo(this,"enableDamping",!1),vo(this,"dampingFactor",.05),vo(this,"enableZoom",!0),vo(this,"zoomSpeed",1),vo(this,"enableRotate",!0),vo(this,"rotateSpeed",1),vo(this,"enablePan",!0),vo(this,"panSpeed",1),vo(this,"screenSpacePanning",!0),vo(this,"keyPanSpeed",7),vo(this,"zoomToCursor",!1),vo(this,"autoRotate",!1),vo(this,"autoRotateSpeed",2),vo(this,"reverseOrbit",!1),vo(this,"reverseHorizontalOrbit",!1),vo(this,"reverseVerticalOrbit",!1),vo(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),vo(this,"mouseButtons",{LEFT:a.MOUSE.ROTATE,MIDDLE:a.MOUSE.DOLLY,RIGHT:a.MOUSE.PAN}),vo(this,"touches",{ONE:a.TOUCH.ROTATE,TWO:a.TOUCH.DOLLY_PAN}),vo(this,"target0"),vo(this,"position0"),vo(this,"zoom0"),vo(this,"_domElementKeyEvents",null),vo(this,"getPolarAngle"),vo(this,"getAzimuthalAngle"),vo(this,"setPolarAngle"),vo(this,"setAzimuthalAngle"),vo(this,"getDistance"),vo(this,"listenToKeyEvents"),vo(this,"stopListenToKeyEvents"),vo(this,"saveState"),vo(this,"reset"),vo(this,"update"),vo(this,"connect"),vo(this,"dispose"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>h.phi,this.getAzimuthalAngle=()=>h.theta,this.setPolarAngle=e=>{let t=Eo(e,2*Math.PI),r=h.phi;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-r);2*Math.PI-i{let t=Eo(e,2*Math.PI),r=h.theta;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-r);2*Math.PI-in.object.position.distanceTo(n.target),this.listenToKeyEvents=e=>{e.addEventListener("keydown",J),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",J),this._domElementKeyEvents=null},this.saveState=()=>{n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=()=>{n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(r),n.update(),l=o.NONE},this.update=(()=>{const t=new a.Vector3,i=new a.Vector3(0,1,0),s=(new a.Quaternion).setFromUnitVectors(e.up,i),f=s.clone().invert(),m=new a.Vector3,g=new a.Quaternion,A=2*Math.PI;return function(){const v=n.object.position;s.setFromUnitVectors(e.up,i),f.copy(s).invert(),t.copy(v).sub(n.target),t.applyQuaternion(s),h.setFromVector3(t),n.autoRotate&&l===o.NONE&&I(2*Math.PI/60/60*n.autoRotateSpeed),n.enableDamping?(h.theta+=u.theta*n.dampingFactor,h.phi+=u.phi*n.dampingFactor):(h.theta+=u.theta,h.phi+=u.phi);let y=n.minAzimuthAngle,x=n.maxAzimuthAngle;isFinite(y)&&isFinite(x)&&(y<-Math.PI?y+=A:y>Math.PI&&(y-=A),x<-Math.PI?x+=A:x>Math.PI&&(x-=A),h.theta=y<=x?Math.max(y,Math.min(x,h.theta)):h.theta>(y+x)/2?Math.max(y,h.theta):Math.min(x,h.theta)),h.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,h.phi)),h.makeSafe(),!0===n.enableDamping?n.target.addScaledVector(p,n.dampingFactor):n.target.add(p),n.zoomToCursor&&w||n.object.isOrthographicCamera?h.radius=O(h.radius):h.radius=O(h.radius*d),t.setFromSpherical(h),t.applyQuaternion(f),v.copy(n.target).add(t),n.object.lookAt(n.target),!0===n.enableDamping?(u.theta*=1-n.dampingFactor,u.phi*=1-n.dampingFactor,p.multiplyScalar(1-n.dampingFactor)):(u.set(0,0,0),p.set(0,0,0));let b=!1;if(n.zoomToCursor&&w){let r=null;if(n.object instanceof a.PerspectiveCamera&&n.object.isPerspectiveCamera){const e=t.length();r=O(e*d);const i=e-r;n.object.position.addScaledVector(_,i),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const e=new a.Vector3(S.x,S.y,0);e.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/d)),n.object.updateProjectionMatrix(),b=!0;const i=new a.Vector3(S.x,S.y,0);i.unproject(n.object),n.object.position.sub(i).add(e),n.object.updateMatrixWorld(),r=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;null!==r&&(n.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(r).add(n.object.position):(yo.origin.copy(n.object.position),yo.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(yo.direction))c||8*(1-g.dot(n.object.quaternion))>c)&&(n.dispatchEvent(r),m.copy(n.object.position),g.copy(n.object.quaternion),b=!1,!0)}})(),this.connect=e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),n.domElement=e,n.domElement.style.touchAction="none",n.domElement.addEventListener("contextmenu",Z),n.domElement.addEventListener("pointerdown",W),n.domElement.addEventListener("pointercancel",q),n.domElement.addEventListener("wheel",K)},this.dispose=()=>{var e,t,r,i,s,a;null==(e=n.domElement)||e.removeEventListener("contextmenu",Z),null==(t=n.domElement)||t.removeEventListener("pointerdown",W),null==(r=n.domElement)||r.removeEventListener("pointercancel",q),null==(i=n.domElement)||i.removeEventListener("wheel",K),null==(s=n.domElement)||s.ownerDocument.removeEventListener("pointermove",X),null==(a=n.domElement)||a.ownerDocument.removeEventListener("pointerup",Y),null!==n._domElementKeyEvents&&n._domElementKeyEvents.removeEventListener("keydown",J)};const n=this,r={type:"change"},i={type:"start"},s={type:"end"},o={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let l=o.NONE;const c=1e-6,h=new a.Spherical,u=new a.Spherical;let d=1;const p=new a.Vector3,f=new a.Vector2,m=new a.Vector2,g=new a.Vector2,A=new a.Vector2,v=new a.Vector2,y=new a.Vector2,x=new a.Vector2,b=new a.Vector2,E=new a.Vector2,_=new a.Vector3,S=new a.Vector2;let w=!1;const M=[],C={};function T(){return Math.pow(.95,n.zoomSpeed)}function I(e){n.reverseOrbit||n.reverseHorizontalOrbit?u.theta+=e:u.theta-=e}function B(e){n.reverseOrbit||n.reverseVerticalOrbit?u.phi+=e:u.phi-=e}const R=(()=>{const e=new a.Vector3;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),p.add(e)}})(),P=(()=>{const e=new a.Vector3;return function(t,r){!0===n.screenSpacePanning?e.setFromMatrixColumn(r,1):(e.setFromMatrixColumn(r,0),e.crossVectors(n.object.up,e)),e.multiplyScalar(t),p.add(e)}})(),D=(()=>{const e=new a.Vector3;return function(t,r){const i=n.domElement;if(i&&n.object instanceof a.PerspectiveCamera&&n.object.isPerspectiveCamera){const s=n.object.position;e.copy(s).sub(n.target);let a=e.length();a*=Math.tan(n.object.fov/2*Math.PI/180),R(2*t*a/i.clientHeight,n.object.matrix),P(2*r*a/i.clientHeight,n.object.matrix)}else i&&n.object instanceof a.OrthographicCamera&&n.object.isOrthographicCamera?(R(t*(n.object.right-n.object.left)/n.object.zoom/i.clientWidth,n.object.matrix),P(r*(n.object.top-n.object.bottom)/n.object.zoom/i.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}})();function L(e){n.object instanceof a.PerspectiveCamera&&n.object.isPerspectiveCamera||n.object instanceof a.OrthographicCamera&&n.object.isOrthographicCamera?d/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function F(e){n.object instanceof a.PerspectiveCamera&&n.object.isPerspectiveCamera||n.object instanceof a.OrthographicCamera&&n.object.isOrthographicCamera?d*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function U(e){if(!n.zoomToCursor||!n.domElement)return;w=!0;const t=n.domElement.getBoundingClientRect(),r=e.clientX-t.left,i=e.clientY-t.top,s=t.width,a=t.height;S.x=r/s*2-1,S.y=-i/a*2+1,_.set(S.x,S.y,1).unproject(n.object).sub(n.object.position).normalize()}function O(e){return Math.max(n.minDistance,Math.min(n.maxDistance,e))}function N(e){f.set(e.clientX,e.clientY)}function k(e){A.set(e.clientX,e.clientY)}function G(){if(1==M.length)f.set(M[0].pageX,M[0].pageY);else{const e=.5*(M[0].pageX+M[1].pageX),t=.5*(M[0].pageY+M[1].pageY);f.set(e,t)}}function z(){if(1==M.length)A.set(M[0].pageX,M[0].pageY);else{const e=.5*(M[0].pageX+M[1].pageX),t=.5*(M[0].pageY+M[1].pageY);A.set(e,t)}}function Q(){const e=M[0].pageX-M[1].pageX,t=M[0].pageY-M[1].pageY,n=Math.sqrt(e*e+t*t);x.set(0,n)}function V(e){if(1==M.length)m.set(e.pageX,e.pageY);else{const t=te(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);m.set(n,r)}g.subVectors(m,f).multiplyScalar(n.rotateSpeed);const t=n.domElement;t&&(I(2*Math.PI*g.x/t.clientHeight),B(2*Math.PI*g.y/t.clientHeight)),f.copy(m)}function H(e){if(1==M.length)v.set(e.pageX,e.pageY);else{const t=te(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);v.set(n,r)}y.subVectors(v,A).multiplyScalar(n.panSpeed),D(y.x,y.y),A.copy(v)}function j(e){const t=te(e),r=e.pageX-t.x,i=e.pageY-t.y,s=Math.sqrt(r*r+i*i);b.set(0,s),E.set(0,Math.pow(b.y/x.y,n.zoomSpeed)),L(E.y),x.copy(b)}function W(e){var t,r;!1!==n.enabled&&(0===M.length&&(null==(t=n.domElement)||t.ownerDocument.addEventListener("pointermove",X),null==(r=n.domElement)||r.ownerDocument.addEventListener("pointerup",Y)),function(e){M.push(e)}(e),"touch"===e.pointerType?function(e){switch(ee(e),M.length){case 1:switch(n.touches.ONE){case a.TOUCH.ROTATE:if(!1===n.enableRotate)return;G(),l=o.TOUCH_ROTATE;break;case a.TOUCH.PAN:if(!1===n.enablePan)return;z(),l=o.TOUCH_PAN;break;default:l=o.NONE}break;case 2:switch(n.touches.TWO){case a.TOUCH.DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;n.enableZoom&&Q(),n.enablePan&&z(),l=o.TOUCH_DOLLY_PAN;break;case a.TOUCH.DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;n.enableZoom&&Q(),n.enableRotate&&G(),l=o.TOUCH_DOLLY_ROTATE;break;default:l=o.NONE}break;default:l=o.NONE}l!==o.NONE&&n.dispatchEvent(i)}(e):function(e){let t;switch(e.button){case 0:t=n.mouseButtons.LEFT;break;case 1:t=n.mouseButtons.MIDDLE;break;case 2:t=n.mouseButtons.RIGHT;break;default:t=-1}switch(t){case a.MOUSE.DOLLY:if(!1===n.enableZoom)return;!function(e){U(e),x.set(e.clientX,e.clientY)}(e),l=o.DOLLY;break;case a.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enablePan)return;k(e),l=o.PAN}else{if(!1===n.enableRotate)return;N(e),l=o.ROTATE}break;case a.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enableRotate)return;N(e),l=o.ROTATE}else{if(!1===n.enablePan)return;k(e),l=o.PAN}break;default:l=o.NONE}l!==o.NONE&&n.dispatchEvent(i)}(e))}function X(e){!1!==n.enabled&&("touch"===e.pointerType?function(e){switch(ee(e),l){case o.TOUCH_ROTATE:if(!1===n.enableRotate)return;V(e),n.update();break;case o.TOUCH_PAN:if(!1===n.enablePan)return;H(e),n.update();break;case o.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;!function(e){n.enableZoom&&j(e),n.enablePan&&H(e)}(e),n.update();break;case o.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;!function(e){n.enableZoom&&j(e),n.enableRotate&&V(e)}(e),n.update();break;default:l=o.NONE}}(e):function(e){if(!1===n.enabled)return;switch(l){case o.ROTATE:if(!1===n.enableRotate)return;!function(e){m.set(e.clientX,e.clientY),g.subVectors(m,f).multiplyScalar(n.rotateSpeed);const t=n.domElement;t&&(I(2*Math.PI*g.x/t.clientHeight),B(2*Math.PI*g.y/t.clientHeight)),f.copy(m),n.update()}(e);break;case o.DOLLY:if(!1===n.enableZoom)return;!function(e){b.set(e.clientX,e.clientY),E.subVectors(b,x),E.y>0?L(T()):E.y<0&&F(T()),x.copy(b),n.update()}(e);break;case o.PAN:if(!1===n.enablePan)return;!function(e){v.set(e.clientX,e.clientY),y.subVectors(v,A).multiplyScalar(n.panSpeed),D(y.x,y.y),A.copy(v),n.update()}(e)}}(e))}function Y(e){var t,r,i;$(e),0===M.length&&(null==(t=n.domElement)||t.releasePointerCapture(e.pointerId),null==(r=n.domElement)||r.ownerDocument.removeEventListener("pointermove",X),null==(i=n.domElement)||i.ownerDocument.removeEventListener("pointerup",Y)),n.dispatchEvent(s),l=o.NONE}function q(e){$(e)}function K(e){!1===n.enabled||!1===n.enableZoom||l!==o.NONE&&l!==o.ROTATE||(e.preventDefault(),n.dispatchEvent(i),function(e){U(e),e.deltaY<0?F(T()):e.deltaY>0&&L(T()),n.update()}(e),n.dispatchEvent(s))}function J(e){!1!==n.enabled&&!1!==n.enablePan&&function(e){let t=!1;switch(e.code){case n.keys.UP:D(0,n.keyPanSpeed),t=!0;break;case n.keys.BOTTOM:D(0,-n.keyPanSpeed),t=!0;break;case n.keys.LEFT:D(n.keyPanSpeed,0),t=!0;break;case n.keys.RIGHT:D(-n.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),n.update())}(e)}function Z(e){!1!==n.enabled&&e.preventDefault()}function $(e){delete C[e.pointerId];for(let t=0;t{const{camera:n,onChange:s,onStart:a,onEnd:l,...c}=e,h=(0,o.useThree)((({invalidate:e})=>e)),u=(0,o.useThree)((({camera:e})=>e)),d=(0,o.useThree)((({gl:e})=>e.domElement)),p=n||u,f=i.useMemo((()=>new So(p)),[p]);return i.useEffect((()=>{f.connect(d);const e=e=>{h(),s&&s(e)};return f.addEventListener("change",e),a&&f.addEventListener("start",a),l&&f.addEventListener("end",l),()=>{f.dispose(),f.removeEventListener("change",e),a&&f.removeEventListener("start",a),l&&f.removeEventListener("end",l)}}),[s,a,l,f,h,d]),(0,o.useFrame)((()=>f.update())),i.createElement("primitive",(0,r.Z)({ref:t,dispose:void 0,object:f,enableDamping:!0},c))})),Mo=i.forwardRef((({makeDefault:e,camera:t,regress:n,domElement:s,enableDamping:a=!0,onChange:l,onStart:c,onEnd:h,...u},d)=>{const p=(0,o.useThree)((e=>e.invalidate)),f=(0,o.useThree)((e=>e.camera)),m=(0,o.useThree)((e=>e.gl)),g=(0,o.useThree)((e=>e.events)),A=(0,o.useThree)((e=>e.set)),v=(0,o.useThree)((e=>e.get)),y=(0,o.useThree)((e=>e.performance)),x=t||f,b=s||g.connected||m.domElement,E=i.useMemo((()=>new _o(x)),[x]);return(0,o.useFrame)((()=>{E.enabled&&E.update()})),i.useEffect((()=>(E.connect(b),()=>{E.dispose()})),[b,n,E,p]),i.useEffect((()=>{const e=e=>{p(),n&&y.regress(),l&&l(e)};return E.addEventListener("change",e),c&&E.addEventListener("start",c),h&&E.addEventListener("end",h),()=>{c&&E.removeEventListener("start",c),h&&E.removeEventListener("end",h),E.removeEventListener("change",e)}}),[l,c,h]),i.useEffect((()=>{if(e){const e=v().controls;return A({controls:E}),()=>A({controls:e})}}),[e,E]),i.createElement("primitive",(0,r.Z)({ref:d,object:E,enableDamping:a},u))}));var Co=Object.defineProperty,To=(e,t,n)=>(((e,t,n)=>{t in e?Co(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);class Io extends a.EventDispatcher{constructor(e,t){super(),To(this,"enabled",!0),To(this,"screen",{left:0,top:0,width:0,height:0}),To(this,"rotateSpeed",1),To(this,"zoomSpeed",1.2),To(this,"panSpeed",.3),To(this,"noRotate",!1),To(this,"noZoom",!1),To(this,"noPan",!1),To(this,"staticMoving",!1),To(this,"dynamicDampingFactor",.2),To(this,"minDistance",0),To(this,"maxDistance",1/0),To(this,"keys",["KeyA","KeyS","KeyD"]),To(this,"mouseButtons",{LEFT:a.MOUSE.ROTATE,MIDDLE:a.MOUSE.DOLLY,RIGHT:a.MOUSE.PAN}),To(this,"object"),To(this,"domElement"),To(this,"cursorZoom",!1),To(this,"target",new a.Vector3),To(this,"mousePosition",new a.Vector2),To(this,"STATE",{NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4}),To(this,"EPS",1e-6),To(this,"lastZoom",1),To(this,"lastPosition",new a.Vector3),To(this,"cursorVector",new a.Vector3),To(this,"targetVector",new a.Vector3),To(this,"_state",this.STATE.NONE),To(this,"_keyState",this.STATE.NONE),To(this,"_eye",new a.Vector3),To(this,"_movePrev",new a.Vector2),To(this,"_moveCurr",new a.Vector2),To(this,"_lastAxis",new a.Vector3),To(this,"_lastAngle",0),To(this,"_zoomStart",new a.Vector2),To(this,"_zoomEnd",new a.Vector2),To(this,"_touchZoomDistanceStart",0),To(this,"_touchZoomDistanceEnd",0),To(this,"_panStart",new a.Vector2),To(this,"_panEnd",new a.Vector2),To(this,"target0"),To(this,"position0"),To(this,"up0"),To(this,"zoom0"),To(this,"changeEvent",{type:"change"}),To(this,"startEvent",{type:"start"}),To(this,"endEvent",{type:"end"}),To(this,"onScreenVector",new a.Vector2),To(this,"getMouseOnScreen",((e,t)=>(this.onScreenVector.set((e-this.screen.left)/this.screen.width,(t-this.screen.top)/this.screen.height),this.onScreenVector))),To(this,"onCircleVector",new a.Vector2),To(this,"getMouseOnCircle",((e,t)=>(this.onCircleVector.set((e-.5*this.screen.width-this.screen.left)/(.5*this.screen.width),(this.screen.height+2*(this.screen.top-t))/this.screen.width),this.onCircleVector))),To(this,"axis",new a.Vector3),To(this,"quaternion",new a.Quaternion),To(this,"eyeDirection",new a.Vector3),To(this,"objectUpDirection",new a.Vector3),To(this,"objectSidewaysDirection",new a.Vector3),To(this,"moveDirection",new a.Vector3),To(this,"angle",0),To(this,"rotateCamera",(()=>{this.moveDirection.set(this._moveCurr.x-this._movePrev.x,this._moveCurr.y-this._movePrev.y,0),this.angle=this.moveDirection.length(),this.angle?(this._eye.copy(this.object.position).sub(this.target),this.eyeDirection.copy(this._eye).normalize(),this.objectUpDirection.copy(this.object.up).normalize(),this.objectSidewaysDirection.crossVectors(this.objectUpDirection,this.eyeDirection).normalize(),this.objectUpDirection.setLength(this._moveCurr.y-this._movePrev.y),this.objectSidewaysDirection.setLength(this._moveCurr.x-this._movePrev.x),this.moveDirection.copy(this.objectUpDirection.add(this.objectSidewaysDirection)),this.axis.crossVectors(this.moveDirection,this._eye).normalize(),this.angle*=this.rotateSpeed,this.quaternion.setFromAxisAngle(this.axis,this.angle),this._eye.applyQuaternion(this.quaternion),this.object.up.applyQuaternion(this.quaternion),this._lastAxis.copy(this.axis),this._lastAngle=this.angle):!this.staticMoving&&this._lastAngle&&(this._lastAngle*=Math.sqrt(1-this.dynamicDampingFactor),this._eye.copy(this.object.position).sub(this.target),this.quaternion.setFromAxisAngle(this._lastAxis,this._lastAngle),this._eye.applyQuaternion(this.quaternion),this.object.up.applyQuaternion(this.quaternion)),this._movePrev.copy(this._moveCurr)})),To(this,"zoomCamera",(()=>{let e;if(this._state===this.STATE.TOUCH_ZOOM_PAN)e=this._touchZoomDistanceStart/this._touchZoomDistanceEnd,this._touchZoomDistanceStart=this._touchZoomDistanceEnd,this.object.isPerspectiveCamera?this._eye.multiplyScalar(e):this.object.isOrthographicCamera?(this.object.zoom/=e,this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type");else{if(e=1+(this._zoomEnd.y-this._zoomStart.y)*this.zoomSpeed,Math.abs(e-1)>this.EPS&&e>0&&(this.object.isPerspectiveCamera?(e>1&&this._eye.length()>=this.maxDistance-this.EPS&&(e=1),this._eye.multiplyScalar(e)):this.object.isOrthographicCamera?(e>1&&this.object.zoom{if(this.domElement&&(this.mouseChange.copy(this._panEnd).sub(this._panStart),this.mouseChange.lengthSq()>this.EPS)){if(this.object.isOrthographicCamera){const e=this.object,t=(e.right-e.left)/this.object.zoom,n=(e.top-e.bottom)/this.object.zoom;this.mouseChange.x*=t,this.mouseChange.y*=n}else this.mouseChange.multiplyScalar(this._eye.length()*this.panSpeed);this.pan.copy(this._eye).cross(this.object.up).setLength(this.mouseChange.x),this.pan.add(this.objectUp.copy(this.object.up).setLength(this.mouseChange.y)),this.object.position.add(this.pan),this.target.add(this.pan),this.staticMoving?this._panStart.copy(this._panEnd):this._panStart.add(this.mouseChange.subVectors(this._panEnd,this._panStart).multiplyScalar(this.dynamicDampingFactor))}})),To(this,"checkDistances",(()=>{this.noZoom&&this.noPan||(this._eye.lengthSq()>this.maxDistance*this.maxDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.maxDistance)),this._zoomStart.copy(this._zoomEnd)),this._eye.lengthSq(){if(!this.domElement)return;const e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height})),To(this,"update",(()=>{this._eye.subVectors(this.object.position,this.target),this.noRotate||this.rotateCamera(),this.noZoom||this.zoomCamera(),this.noPan||this.panCamera(),this.object.position.addVectors(this.target,this._eye),this.object.isPerspectiveCamera?(this.checkDistances(),this.object.lookAt(this.target),this.lastPosition.distanceToSquared(this.object.position)>this.EPS&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position))):this.object.isOrthographicCamera?(this.object.lookAt(this.target),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||this.lastZoom!==this.object.zoom)&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastZoom=this.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type")})),To(this,"reset",(()=>{this._state=this.STATE.NONE,this._keyState=this.STATE.NONE,this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.up.copy(this.up0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this._eye.subVectors(this.object.position,this.target),this.object.lookAt(this.target),this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastZoom=this.object.zoom})),To(this,"keydown",(e=>{!1!==this.enabled&&(window.removeEventListener("keydown",this.keydown),this._keyState===this.STATE.NONE&&(e.code!==this.keys[this.STATE.ROTATE]||this.noRotate?e.code!==this.keys[this.STATE.ZOOM]||this.noZoom?e.code!==this.keys[this.STATE.PAN]||this.noPan||(this._keyState=this.STATE.PAN):this._keyState=this.STATE.ZOOM:this._keyState=this.STATE.ROTATE))})),To(this,"onPointerDown",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseDown(e)}})),To(this,"onPointerMove",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseMove(e)}})),To(this,"onPointerUp",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseUp()}})),To(this,"keyup",(()=>{!1!==this.enabled&&(this._keyState=this.STATE.NONE,window.addEventListener("keydown",this.keydown))})),To(this,"onMouseDown",(e=>{if(!this.domElement)return;if(this._state===this.STATE.NONE)switch(e.button){case this.mouseButtons.LEFT:this._state=this.STATE.ROTATE;break;case this.mouseButtons.MIDDLE:this._state=this.STATE.ZOOM;break;case this.mouseButtons.RIGHT:this._state=this.STATE.PAN;break;default:this._state=this.STATE.NONE}const t=this._keyState!==this.STATE.NONE?this._keyState:this._state;t!==this.STATE.ROTATE||this.noRotate?t!==this.STATE.ZOOM||this.noZoom?t!==this.STATE.PAN||this.noPan||(this._panStart.copy(this.getMouseOnScreen(e.pageX,e.pageY)),this._panEnd.copy(this._panStart)):(this._zoomStart.copy(this.getMouseOnScreen(e.pageX,e.pageY)),this._zoomEnd.copy(this._zoomStart)):(this._moveCurr.copy(this.getMouseOnCircle(e.pageX,e.pageY)),this._movePrev.copy(this._moveCurr)),this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),this.dispatchEvent(this.startEvent)})),To(this,"onMouseMove",(e=>{if(!1===this.enabled)return;const t=this._keyState!==this.STATE.NONE?this._keyState:this._state;t!==this.STATE.ROTATE||this.noRotate?t!==this.STATE.ZOOM||this.noZoom?t!==this.STATE.PAN||this.noPan||this._panEnd.copy(this.getMouseOnScreen(e.pageX,e.pageY)):this._zoomEnd.copy(this.getMouseOnScreen(e.pageX,e.pageY)):(this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this.getMouseOnCircle(e.pageX,e.pageY)))})),To(this,"onMouseUp",(()=>{this.domElement&&!1!==this.enabled&&(this._state=this.STATE.NONE,this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),this.dispatchEvent(this.endEvent))})),To(this,"mousewheel",(e=>{if(!1!==this.enabled&&!0!==this.noZoom){switch(e.preventDefault(),e.deltaMode){case 2:this._zoomStart.y-=.025*e.deltaY;break;case 1:this._zoomStart.y-=.01*e.deltaY;break;default:this._zoomStart.y-=25e-5*e.deltaY}this.mousePosition.x=e.offsetX/this.screen.width*2-1,this.mousePosition.y=-e.offsetY/this.screen.height*2+1,this.dispatchEvent(this.startEvent),this.dispatchEvent(this.endEvent)}})),To(this,"touchstart",(e=>{if(!1!==this.enabled){if(e.preventDefault(),1===e.touches.length)this._state=this.STATE.TOUCH_ROTATE,this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY)),this._movePrev.copy(this._moveCurr);else{this._state=this.STATE.TOUCH_ZOOM_PAN;const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;this._touchZoomDistanceEnd=this._touchZoomDistanceStart=Math.sqrt(t*t+n*n);const r=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;this._panStart.copy(this.getMouseOnScreen(r,i)),this._panEnd.copy(this._panStart)}this.dispatchEvent(this.startEvent)}})),To(this,"touchmove",(e=>{if(!1!==this.enabled)if(e.preventDefault(),1===e.touches.length)this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY));else{const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;this._touchZoomDistanceEnd=Math.sqrt(t*t+n*n);const r=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;this._panEnd.copy(this.getMouseOnScreen(r,i))}})),To(this,"touchend",(e=>{if(!1!==this.enabled){switch(e.touches.length){case 0:this._state=this.STATE.NONE;break;case 1:this._state=this.STATE.TOUCH_ROTATE,this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY)),this._movePrev.copy(this._moveCurr)}this.dispatchEvent(this.endEvent)}})),To(this,"contextmenu",(e=>{!1!==this.enabled&&e.preventDefault()})),To(this,"connect",(e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.addEventListener("contextmenu",this.contextmenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("wheel",this.mousewheel),this.domElement.addEventListener("touchstart",this.touchstart),this.domElement.addEventListener("touchend",this.touchend),this.domElement.addEventListener("touchmove",this.touchmove),this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup),this.handleResize()})),To(this,"dispose",(()=>{this.domElement&&(this.domElement.removeEventListener("contextmenu",this.contextmenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("wheel",this.mousewheel),this.domElement.removeEventListener("touchstart",this.touchstart),this.domElement.removeEventListener("touchend",this.touchend),this.domElement.removeEventListener("touchmove",this.touchmove),this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup))})),this.object=e,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,void 0!==t&&this.connect(t),this.update()}}const Bo=i.forwardRef((({makeDefault:e,camera:t,domElement:n,regress:s,onChange:a,onStart:l,onEnd:c,...h},u)=>{const{invalidate:d,camera:p,gl:f,events:m,set:g,get:A,performance:v,viewport:y}=(0,o.useThree)(),x=t||p,b=n||m.connected||f.domElement,E=i.useMemo((()=>new Io(x)),[x]);return(0,o.useFrame)((()=>{E.enabled&&E.update()})),i.useEffect((()=>(E.connect(b),()=>{E.dispose()})),[b,s,E,d]),i.useEffect((()=>{const e=e=>{d(),s&&v.regress(),a&&a(e)};return E.addEventListener("change",e),l&&E.addEventListener("start",l),c&&E.addEventListener("end",c),()=>{l&&E.removeEventListener("start",l),c&&E.removeEventListener("end",c),E.removeEventListener("change",e)}}),[a,l,c]),i.useEffect((()=>{E.handleResize()}),[y]),i.useEffect((()=>{if(e){const e=A().controls;return g({controls:E}),()=>g({controls:e})}}),[e,E]),i.createElement("primitive",(0,r.Z)({ref:u,object:E},h))}));var Ro=Object.defineProperty,Po=(e,t,n)=>(((e,t,n)=>{t in e?Ro(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);const Do={IDLE:Symbol(),ROTATE:Symbol(),PAN:Symbol(),SCALE:Symbol(),FOV:Symbol(),FOCUS:Symbol(),ZROTATE:Symbol(),TOUCH_MULTI:Symbol(),ANIMATION_FOCUS:Symbol(),ANIMATION_ROTATE:Symbol()},Lo={NONE:Symbol(),ONE_FINGER:Symbol(),ONE_FINGER_SWITCHED:Symbol(),TWO_FINGER:Symbol(),MULT_FINGER:Symbol(),CURSOR:Symbol()},Fo={x:0,y:0},Uo={camera:new a.Matrix4,gizmos:new a.Matrix4},Oo={type:"change"},No={type:"start"},ko={type:"end"};class Go extends a.EventDispatcher{constructor(e,t=null,n=null){super(),Po(this,"camera"),Po(this,"domElement"),Po(this,"scene"),Po(this,"mouseActions"),Po(this,"_mouseOp"),Po(this,"_v2_1"),Po(this,"_v3_1"),Po(this,"_v3_2"),Po(this,"_m4_1"),Po(this,"_m4_2"),Po(this,"_quat"),Po(this,"_translationMatrix"),Po(this,"_rotationMatrix"),Po(this,"_scaleMatrix"),Po(this,"_rotationAxis"),Po(this,"_cameraMatrixState"),Po(this,"_cameraProjectionState"),Po(this,"_fovState"),Po(this,"_upState"),Po(this,"_zoomState"),Po(this,"_nearPos"),Po(this,"_farPos"),Po(this,"_gizmoMatrixState"),Po(this,"_up0"),Po(this,"_zoom0"),Po(this,"_fov0"),Po(this,"_initialNear"),Po(this,"_nearPos0"),Po(this,"_initialFar"),Po(this,"_farPos0"),Po(this,"_cameraMatrixState0"),Po(this,"_gizmoMatrixState0"),Po(this,"_button"),Po(this,"_touchStart"),Po(this,"_touchCurrent"),Po(this,"_input"),Po(this,"_switchSensibility"),Po(this,"_startFingerDistance"),Po(this,"_currentFingerDistance"),Po(this,"_startFingerRotation"),Po(this,"_currentFingerRotation"),Po(this,"_devPxRatio"),Po(this,"_downValid"),Po(this,"_nclicks"),Po(this,"_downEvents"),Po(this,"_clickStart"),Po(this,"_maxDownTime"),Po(this,"_maxInterval"),Po(this,"_posThreshold"),Po(this,"_movementThreshold"),Po(this,"_currentCursorPosition"),Po(this,"_startCursorPosition"),Po(this,"_grid"),Po(this,"_gridPosition"),Po(this,"_gizmos"),Po(this,"_curvePts"),Po(this,"_timeStart"),Po(this,"_animationId"),Po(this,"focusAnimationTime"),Po(this,"_timePrev"),Po(this,"_timeCurrent"),Po(this,"_anglePrev"),Po(this,"_angleCurrent"),Po(this,"_cursorPosPrev"),Po(this,"_cursorPosCurr"),Po(this,"_wPrev"),Po(this,"_wCurr"),Po(this,"adjustNearFar"),Po(this,"scaleFactor"),Po(this,"dampingFactor"),Po(this,"wMax"),Po(this,"enableAnimations"),Po(this,"enableGrid"),Po(this,"cursorZoom"),Po(this,"minFov"),Po(this,"maxFov"),Po(this,"enabled"),Po(this,"enablePan"),Po(this,"enableRotate"),Po(this,"enableZoom"),Po(this,"minDistance"),Po(this,"maxDistance"),Po(this,"minZoom"),Po(this,"maxZoom"),Po(this,"target"),Po(this,"_currentTarget"),Po(this,"_tbRadius"),Po(this,"_state"),Po(this,"onWindowResize",(()=>{const e=(this._gizmos.scale.x+this._gizmos.scale.y+this._gizmos.scale.z)/3;if(this.camera){const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e)}const t=this._tbRadius/e,n=new a.EllipseCurve(0,0,t,t).getPoints(this._curvePts),r=(new a.BufferGeometry).setFromPoints(n);for(const i in this._gizmos.children){this._gizmos.children[i].geometry=r}this.dispatchEvent(Oo)})),Po(this,"onContextMenu",(e=>{if(this.enabled)for(let t=0;t{this._touchStart.splice(0,this._touchStart.length),this._touchCurrent.splice(0,this._touchCurrent.length),this._input=Lo.NONE})),Po(this,"onPointerDown",(e=>{if(0==e.button&&e.isPrimary?(this._downValid=!0,this._downEvents.push(e)):this._downValid=!1,"touch"==e.pointerType&&this._input!=Lo.CURSOR)switch(this._touchStart.push(e),this._touchCurrent.push(e),this._input){case Lo.NONE:this._input=Lo.ONE_FINGER,this.onSinglePanStart(e,"ROTATE"),window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp);break;case Lo.ONE_FINGER:case Lo.ONE_FINGER_SWITCHED:this._input=Lo.TWO_FINGER,this.onRotateStart(),this.onPinchStart(),this.onDoublePanStart();break;case Lo.TWO_FINGER:this._input=Lo.MULT_FINGER,this.onTriplePanStart()}else if("touch"!=e.pointerType&&this._input==Lo.NONE){let t=null;e.ctrlKey||e.metaKey?t="CTRL":e.shiftKey&&(t="SHIFT"),this._mouseOp=this.getOpFromAction(e.button,t),this._mouseOp&&(window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp),this._input=Lo.CURSOR,this._button=e.button,this.onSinglePanStart(e,this._mouseOp))}})),Po(this,"onPointerMove",(e=>{if("touch"==e.pointerType&&this._input!=Lo.CURSOR)switch(this._input){case Lo.ONE_FINGER:this.updateTouchEvent(e),this.onSinglePanMove(e,Do.ROTATE);break;case Lo.ONE_FINGER_SWITCHED:if(this.calculatePointersDistance(this._touchCurrent[0],e)*this._devPxRatio>=this._switchSensibility){this._input=Lo.ONE_FINGER,this.updateTouchEvent(e),this.onSinglePanStart(e,"ROTATE");break}break;case Lo.TWO_FINGER:this.updateTouchEvent(e),this.onRotateMove(),this.onPinchMove(),this.onDoublePanMove();break;case Lo.MULT_FINGER:this.updateTouchEvent(e),this.onTriplePanMove()}else if("touch"!=e.pointerType&&this._input==Lo.CURSOR){let t=null;e.ctrlKey||e.metaKey?t="CTRL":e.shiftKey&&(t="SHIFT");const n=this.getOpStateFromAction(this._button,t);n&&this.onSinglePanMove(e,n)}if(this._downValid){this.calculatePointersDistance(this._downEvents[this._downEvents.length-1],e)*this._devPxRatio>this._movementThreshold&&(this._downValid=!1)}})),Po(this,"onPointerUp",(e=>{if("touch"==e.pointerType&&this._input!=Lo.CURSOR){const t=this._touchCurrent.length;for(let n=0;n{var t,n;if(this.enabled&&this.enableZoom&&this.domElement){let r=null;e.ctrlKey||e.metaKey?r="CTRL":e.shiftKey&&(r="SHIFT");const i=this.getOpFromAction("WHEEL",r);if(i){e.preventDefault(),this.dispatchEvent(No);const r=125;let s=e.deltaY/r,o=1;switch(s>0?o=1/this.scaleFactor:s<0&&(o=this.scaleFactor),i){case"ZOOM":if(this.updateTbState(Do.SCALE,!0),s>0?o=1/Math.pow(this.scaleFactor,s):s<0&&(o=Math.pow(this.scaleFactor,-s)),this.cursorZoom&&this.enablePan){let r;this.camera instanceof a.OrthographicCamera&&(r=null==(t=this.unprojectOnTbPlane(this.camera,e.clientX,e.clientY,this.domElement))?void 0:t.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._gizmos.position)),this.camera instanceof a.PerspectiveCamera&&(r=null==(n=this.unprojectOnTbPlane(this.camera,e.clientX,e.clientY,this.domElement))?void 0:n.applyQuaternion(this.camera.quaternion).add(this._gizmos.position)),void 0!==r&&this.applyTransformMatrix(this.applyScale(o,r))}else this.applyTransformMatrix(this.applyScale(o,this._gizmos.position));this._grid&&(this.disposeGrid(),this.drawGrid()),this.updateTbState(Do.IDLE,!1),this.dispatchEvent(Oo),this.dispatchEvent(ko);break;case"FOV":if(this.camera instanceof a.PerspectiveCamera){this.updateTbState(Do.FOV,!0),0!=e.deltaX&&(s=e.deltaX/r,o=1,s>0?o=1/Math.pow(this.scaleFactor,s):s<0&&(o=Math.pow(this.scaleFactor,-s))),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const t=this._v3_1.distanceTo(this._gizmos.position);let n=t/o;n=a.MathUtils.clamp(n,this.minDistance,this.maxDistance);const i=t*Math.tan(a.MathUtils.DEG2RAD*this.camera.fov*.5);let l=a.MathUtils.RAD2DEG*(2*Math.atan(i/n));l>this.maxFov?l=this.maxFov:l{if(this.enabled&&this.domElement)switch(this.dispatchEvent(No),this.setCenter(e.clientX,e.clientY),t){case"PAN":if(!this.enablePan)return;if(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(Oo)),this.camera){this.updateTbState(Do.PAN,!0);const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&(this.drawGrid(),this.dispatchEvent(Oo))}break;case"ROTATE":if(!this.enableRotate)return;if(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1),this.camera){this.updateTbState(Do.ROTATE,!0);const e=this.unprojectOnTbSurface(this.camera,Fo.x,Fo.y,this.domElement,this._tbRadius);void 0!==e&&this._startCursorPosition.copy(e),this.activateGizmos(!0),this.enableAnimations&&(this._timePrev=this._timeCurrent=performance.now(),this._angleCurrent=this._anglePrev=0,this._cursorPosPrev.copy(this._startCursorPosition),this._cursorPosCurr.copy(this._cursorPosPrev),this._wCurr=0,this._wPrev=this._wCurr)}this.dispatchEvent(Oo);break;case"FOV":if(!this.enableZoom)return;this.camera instanceof a.PerspectiveCamera&&(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(Oo)),this.updateTbState(Do.FOV,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition));break;case"ZOOM":if(!this.enableZoom)return;-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(Oo)),this.updateTbState(Do.SCALE,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition)}})),Po(this,"onSinglePanMove",((e,t)=>{if(this.enabled&&this.domElement){const n=t!=this._state;switch(this.setCenter(e.clientX,e.clientY),t){case Do.PAN:if(this.enablePan&&this.camera)if(n){this.dispatchEvent(ko),this.dispatchEvent(No),this.updateTbState(t,!0);const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&this.drawGrid(),this.activateGizmos(!1)}else{const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement);void 0!==e&&this._currentCursorPosition.copy(e),this.applyTransformMatrix(this.pan(this._startCursorPosition,this._currentCursorPosition))}break;case Do.ROTATE:if(this.enableRotate&&this.camera)if(n){this.dispatchEvent(ko),this.dispatchEvent(No),this.updateTbState(t,!0);const e=this.unprojectOnTbSurface(this.camera,Fo.x,Fo.y,this.domElement,this._tbRadius);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!0)}else{const e=this.unprojectOnTbSurface(this.camera,Fo.x,Fo.y,this.domElement,this._tbRadius);void 0!==e&&this._currentCursorPosition.copy(e);const t=this._startCursorPosition.distanceTo(this._currentCursorPosition),n=this._startCursorPosition.angleTo(this._currentCursorPosition),r=Math.max(t/this._tbRadius,n);this.applyTransformMatrix(this.rotate(this.calculateRotationAxis(this._startCursorPosition,this._currentCursorPosition),r)),this.enableAnimations&&(this._timePrev=this._timeCurrent,this._timeCurrent=performance.now(),this._anglePrev=this._angleCurrent,this._angleCurrent=r,this._cursorPosPrev.copy(this._cursorPosCurr),this._cursorPosCurr.copy(this._currentCursorPosition),this._wPrev=this._wCurr,this._wCurr=this.calculateAngularSpeed(this._anglePrev,this._angleCurrent,this._timePrev,this._timeCurrent))}break;case Do.SCALE:if(this.enableZoom)if(n)this.dispatchEvent(ko),this.dispatchEvent(No),this.updateTbState(t,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1);else{const e=8;this._currentCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y);const t=this._currentCursorPosition.y-this._startCursorPosition.y;let n=1;t<0?n=1/Math.pow(this.scaleFactor,-t*e):t>0&&(n=Math.pow(this.scaleFactor,t*e)),this.applyTransformMatrix(this.applyScale(n,this._gizmos.position))}break;case Do.FOV:if(this.enableZoom&&this.camera instanceof a.PerspectiveCamera)if(n)this.dispatchEvent(ko),this.dispatchEvent(No),this.updateTbState(t,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1);else{const e=8;this._currentCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y);const t=this._currentCursorPosition.y-this._startCursorPosition.y;let n=1;t<0?n=1/Math.pow(this.scaleFactor,-t*e):t>0&&(n=Math.pow(this.scaleFactor,t*e)),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const r=this._v3_1.distanceTo(this._gizmos.position);let i=r/n;i=a.MathUtils.clamp(i,this.minDistance,this.maxDistance);const s=r*Math.tan(a.MathUtils.DEG2RAD*this._fovState*.5);let o=a.MathUtils.RAD2DEG*(2*Math.atan(s/i));o=a.MathUtils.clamp(o,this.minFov,this.maxFov);const l=s/Math.tan(a.MathUtils.DEG2RAD*(o/2));n=r/l,this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),this.setFov(o),this.applyTransformMatrix(this.applyScale(n,this._v3_2,!1));const c=this._gizmos.position.clone().sub(this.camera.position).normalize().multiplyScalar(l/r);this._m4_1.makeTranslation(c.x,c.y,c.z)}}this.dispatchEvent(Oo)}})),Po(this,"onSinglePanEnd",(()=>{if(this._state==Do.ROTATE){if(!this.enableRotate)return;if(this.enableAnimations){if(performance.now()-this._timeCurrent<120){const e=Math.abs((this._wPrev+this._wCurr)/2),t=this;this._animationId=window.requestAnimationFrame((function(n){t.updateTbState(Do.ANIMATION_ROTATE,!0);const r=t.calculateRotationAxis(t._cursorPosPrev,t._cursorPosCurr);t.onRotationAnim(n,r,Math.min(e,t.wMax))}))}else this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(Oo)}else this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(Oo)}else this._state!=Do.PAN&&this._state!=Do.IDLE||(this.updateTbState(Do.IDLE,!1),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1),this.dispatchEvent(Oo));this.dispatchEvent(ko)})),Po(this,"onDoubleTap",(e=>{if(this.enabled&&this.enablePan&&this.scene&&this.camera&&this.domElement){this.dispatchEvent(No),this.setCenter(e.clientX,e.clientY);const t=this.unprojectOnObj(this.getCursorNDC(Fo.x,Fo.y,this.domElement),this.camera);if(t&&this.enableAnimations){const e=this;-1!=this._animationId&&window.cancelAnimationFrame(this._animationId),this._timeStart=-1,this._animationId=window.requestAnimationFrame((function(n){e.updateTbState(Do.ANIMATION_FOCUS,!0),e.onFocusAnim(n,t,e._cameraMatrixState,e._gizmoMatrixState)}))}else t&&!this.enableAnimations&&(this.updateTbState(Do.FOCUS,!0),this.focus(t,this.scaleFactor),this.updateTbState(Do.IDLE,!1),this.dispatchEvent(Oo))}this.dispatchEvent(ko)})),Po(this,"onDoublePanStart",(()=>{if(this.enabled&&this.enablePan&&this.camera&&this.domElement){this.dispatchEvent(No),this.updateTbState(Do.PAN,!0),this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2);const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement,!0);void 0!==e&&this._startCursorPosition.copy(e),this._currentCursorPosition.copy(this._startCursorPosition),this.activateGizmos(!1)}})),Po(this,"onDoublePanMove",(()=>{if(this.enabled&&this.enablePan&&this.camera&&this.domElement){this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2),this._state!=Do.PAN&&(this.updateTbState(Do.PAN,!0),this._startCursorPosition.copy(this._currentCursorPosition));const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement,!0);void 0!==e&&this._currentCursorPosition.copy(e),this.applyTransformMatrix(this.pan(this._startCursorPosition,this._currentCursorPosition,!0)),this.dispatchEvent(Oo)}})),Po(this,"onDoublePanEnd",(()=>{this.updateTbState(Do.IDLE,!1),this.dispatchEvent(ko)})),Po(this,"onRotateStart",(()=>{var e;this.enabled&&this.enableRotate&&(this.dispatchEvent(No),this.updateTbState(Do.ZROTATE,!0),this._startFingerRotation=this.getAngle(this._touchCurrent[1],this._touchCurrent[0])+this.getAngle(this._touchStart[1],this._touchStart[0]),this._currentFingerRotation=this._startFingerRotation,null==(e=this.camera)||e.getWorldDirection(this._rotationAxis),this.enablePan||this.enableZoom||this.activateGizmos(!0))})),Po(this,"onRotateMove",(()=>{var e;if(this.enabled&&this.enableRotate&&this.camera&&this.domElement){let t;this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2),this._state!=Do.ZROTATE&&(this.updateTbState(Do.ZROTATE,!0),this._startFingerRotation=this._currentFingerRotation),this._currentFingerRotation=this.getAngle(this._touchCurrent[1],this._touchCurrent[0])+this.getAngle(this._touchStart[1],this._touchStart[0]),this.enablePan?this.camera&&(this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),t=null==(e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement))?void 0:e.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._v3_2)):t=(new a.Vector3).setFromMatrixPosition(this._gizmoMatrixState);const n=a.MathUtils.DEG2RAD*(this._startFingerRotation-this._currentFingerRotation);void 0!==t&&this.applyTransformMatrix(this.zRotate(t,n)),this.dispatchEvent(Oo)}})),Po(this,"onRotateEnd",(()=>{this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(ko)})),Po(this,"onPinchStart",(()=>{this.enabled&&this.enableZoom&&(this.dispatchEvent(No),this.updateTbState(Do.SCALE,!0),this._startFingerDistance=this.calculatePointersDistance(this._touchCurrent[0],this._touchCurrent[1]),this._currentFingerDistance=this._startFingerDistance,this.activateGizmos(!1))})),Po(this,"onPinchMove",(()=>{var e,t;if(this.enabled&&this.enableZoom&&this.domElement){this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2);const n=12;this._state!=Do.SCALE&&(this._startFingerDistance=this._currentFingerDistance,this.updateTbState(Do.SCALE,!0)),this._currentFingerDistance=Math.max(this.calculatePointersDistance(this._touchCurrent[0],this._touchCurrent[1]),n*this._devPxRatio);const r=this._currentFingerDistance/this._startFingerDistance;let i;this.enablePan?this.camera instanceof a.OrthographicCamera?i=null==(e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement))?void 0:e.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._gizmos.position):this.camera instanceof a.PerspectiveCamera&&(i=null==(t=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement))?void 0:t.applyQuaternion(this.camera.quaternion).add(this._gizmos.position)):i=this._gizmos.position,void 0!==i&&this.applyTransformMatrix(this.applyScale(r,i)),this.dispatchEvent(Oo)}})),Po(this,"onPinchEnd",(()=>{this.updateTbState(Do.IDLE,!1),this.dispatchEvent(ko)})),Po(this,"onTriplePanStart",(()=>{if(this.enabled&&this.enableZoom&&this.domElement){this.dispatchEvent(No),this.updateTbState(Do.SCALE,!0);let e=0,t=0;const n=this._touchCurrent.length;for(let r=0;r{if(this.enabled&&this.enableZoom&&this.camera&&this.domElement){let e=0,t=0;const n=this._touchCurrent.length;for(let a=0;a0&&(s=Math.pow(this.scaleFactor,i*r)),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const o=this._v3_1.distanceTo(this._gizmos.position);let l=o/s;l=a.MathUtils.clamp(l,this.minDistance,this.maxDistance);const c=o*Math.tan(a.MathUtils.DEG2RAD*this._fovState*.5);let h=a.MathUtils.RAD2DEG*(2*Math.atan(c/l));h=a.MathUtils.clamp(h,this.minFov,this.maxFov);const u=c/Math.tan(a.MathUtils.DEG2RAD*(h/2));s=o/u,this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),this.setFov(h),this.applyTransformMatrix(this.applyScale(s,this._v3_2,!1));const d=this._gizmos.position.clone().sub(this.camera.position).normalize().multiplyScalar(u/o);this._m4_1.makeTranslation(d.x,d.y,d.z),this.dispatchEvent(Oo)}})),Po(this,"onTriplePanEnd",(()=>{this.updateTbState(Do.IDLE,!1),this.dispatchEvent(ko)})),Po(this,"setCenter",((e,t)=>{Fo.x=e,Fo.y=t})),Po(this,"initializeMouseActions",(()=>{this.setMouseAction("PAN",0,"CTRL"),this.setMouseAction("PAN",2),this.setMouseAction("ROTATE",0),this.setMouseAction("ZOOM","WHEEL"),this.setMouseAction("ZOOM",1),this.setMouseAction("FOV","WHEEL","SHIFT"),this.setMouseAction("FOV",1,"SHIFT")})),Po(this,"setMouseAction",((e,t,n=null)=>{let r;if(!["PAN","ROTATE","ZOOM","FOV"].includes(e)||![0,1,2,"WHEEL"].includes(t)||!["CTRL","SHIFT",null].includes(n))return!1;if("WHEEL"==t&&"ZOOM"!=e&&"FOV"!=e)return!1;switch(e){case"PAN":r=Do.PAN;break;case"ROTATE":r=Do.ROTATE;break;case"ZOOM":r=Do.SCALE;break;case"FOV":r=Do.FOV}const i={operation:e,mouse:t,key:n,state:r};for(let s=0;s{let n;for(let r=0;r{let n;for(let r=0;r180*Math.atan2(t.clientY-e.clientY,t.clientX-e.clientX)/Math.PI)),Po(this,"updateTouchEvent",(e=>{for(let t=0;t{const i=(r-n)/1e3;return 0==i?0:(t-e)/i})),Po(this,"calculatePointersDistance",((e,t)=>Math.sqrt(Math.pow(t.clientX-e.clientX,2)+Math.pow(t.clientY-e.clientY,2)))),Po(this,"calculateRotationAxis",((e,t)=>(this._rotationMatrix.extractRotation(this._cameraMatrixState),this._quat.setFromRotationMatrix(this._rotationMatrix),this._rotationAxis.crossVectors(e,t).applyQuaternion(this._quat),this._rotationAxis.normalize().clone()))),Po(this,"calculateTbRadius",(e=>{const t=e.position.distanceTo(this._gizmos.position);if(e instanceof a.PerspectiveCamera){const n=a.MathUtils.DEG2RAD*e.fov*.5,r=Math.atan(e.aspect*Math.tan(n));return Math.tan(Math.min(n,r))*t*.67}if(e instanceof a.OrthographicCamera)return.67*Math.min(e.top,e.right)})),Po(this,"focus",((e,t,n=1)=>{if(this.camera){const r=e.clone();r.sub(this._gizmos.position).multiplyScalar(n),this._translationMatrix.makeTranslation(r.x,r.y,r.z);const i=this._gizmoMatrixState.clone();this._gizmoMatrixState.premultiply(this._translationMatrix),this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale);const s=this._cameraMatrixState.clone();this._cameraMatrixState.premultiply(this._translationMatrix),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.enableZoom&&this.applyTransformMatrix(this.applyScale(t,this._gizmos.position)),this._gizmoMatrixState.copy(i),this._cameraMatrixState.copy(s)}})),Po(this,"drawGrid",(()=>{if(this.scene){const e=8947848,t=3;let n,r,i,s;if(this.camera instanceof a.OrthographicCamera){const e=this.camera.right-this.camera.left,a=this.camera.bottom-this.camera.top;i=Math.max(e,a),s=i/20,n=i/this.camera.zoom*t,r=n/s*this.camera.zoom}else if(this.camera instanceof a.PerspectiveCamera){const e=this.camera.position.distanceTo(this._gizmos.position),o=a.MathUtils.DEG2RAD*this.camera.fov*.5,l=Math.atan(this.camera.aspect*Math.tan(o));i=Math.tan(Math.max(o,l))*e*2,s=i/20,n=i*t,r=n/s}null==this._grid&&this.camera&&(this._grid=new a.GridHelper(n,r,e,e),this._grid.position.copy(this._gizmos.position),this._gridPosition.copy(this._grid.position),this._grid.quaternion.copy(this.camera.quaternion),this._grid.rotateX(.5*Math.PI),this.scene.add(this._grid))}})),Po(this,"connect",(e=>{e===document&&console.error('THREE.ArcballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.style.touchAction="none",this.domElement.addEventListener("contextmenu",this.onContextMenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointercancel",this.onPointerCancel),this.domElement.addEventListener("wheel",this.onWheel)})),Po(this,"dispose",(()=>{var e,t,n,r,i;-1!=this._animationId&&window.cancelAnimationFrame(this._animationId),null==(e=this.domElement)||e.removeEventListener("pointerdown",this.onPointerDown),null==(t=this.domElement)||t.removeEventListener("pointercancel",this.onPointerCancel),null==(n=this.domElement)||n.removeEventListener("wheel",this.onWheel),null==(r=this.domElement)||r.removeEventListener("contextmenu",this.onContextMenu),window.removeEventListener("pointermove",this.onPointerMove),window.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("resize",this.onWindowResize),null==(i=this.scene)||i.remove(this._gizmos),this.disposeGrid()})),Po(this,"disposeGrid",(()=>{this._grid&&this.scene&&(this.scene.remove(this._grid),this._grid=null)})),Po(this,"easeOutCubic",(e=>1-Math.pow(1-e,3))),Po(this,"activateGizmos",(e=>{for(const t of this._gizmos.children)t.material.setValues({opacity:e?1:.6})})),Po(this,"getCursorNDC",((e,t,n)=>{const r=n.getBoundingClientRect();return this._v2_1.setX((e-r.left)/r.width*2-1),this._v2_1.setY((r.bottom-t)/r.height*2-1),this._v2_1.clone()})),Po(this,"getCursorPosition",((e,t,n)=>(this._v2_1.copy(this.getCursorNDC(e,t,n)),this.camera instanceof a.OrthographicCamera&&(this._v2_1.x*=.5*(this.camera.right-this.camera.left),this._v2_1.y*=.5*(this.camera.top-this.camera.bottom)),this._v2_1.clone()))),Po(this,"setCamera",(e=>{if(e){e.lookAt(this.target),e.updateMatrix(),e instanceof a.PerspectiveCamera&&(this._fov0=e.fov,this._fovState=e.fov),this._cameraMatrixState0.copy(e.matrix),this._cameraMatrixState.copy(this._cameraMatrixState0),this._cameraProjectionState.copy(e.projectionMatrix),this._zoom0=e.zoom,this._zoomState=this._zoom0,this._initialNear=e.near,this._nearPos0=e.position.distanceTo(this.target)-e.near,this._nearPos=this._initialNear,this._initialFar=e.far,this._farPos0=e.position.distanceTo(this.target)-e.far,this._farPos=this._initialFar,this._up0.copy(e.up),this._upState.copy(e.up),this.camera=e,this.camera.updateProjectionMatrix();const t=this.calculateTbRadius(e);void 0!==t&&(this._tbRadius=t),this.makeGizmos(this.target,this._tbRadius)}})),Po(this,"makeGizmos",((e,t)=>{const n=new a.EllipseCurve(0,0,t,t).getPoints(this._curvePts),r=(new a.BufferGeometry).setFromPoints(n),i=new a.LineBasicMaterial({color:16744576,fog:!1,transparent:!0,opacity:.6}),s=new a.LineBasicMaterial({color:8454016,fog:!1,transparent:!0,opacity:.6}),o=new a.LineBasicMaterial({color:8421631,fog:!1,transparent:!0,opacity:.6}),l=new a.Line(r,i),c=new a.Line(r,s),h=new a.Line(r,o),u=.5*Math.PI;if(l.rotation.x=u,c.rotation.y=u,this._gizmoMatrixState0.identity().setPosition(e),this._gizmoMatrixState.copy(this._gizmoMatrixState0),this.camera&&1!=this.camera.zoom){const t=1/this.camera.zoom;this._scaleMatrix.makeScale(t,t,t),this._translationMatrix.makeTranslation(-e.x,-e.y,-e.z),this._gizmoMatrixState.premultiply(this._translationMatrix).premultiply(this._scaleMatrix),this._translationMatrix.makeTranslation(e.x,e.y,e.z),this._gizmoMatrixState.premultiply(this._translationMatrix)}this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.clear(),this._gizmos.add(l),this._gizmos.add(c),this._gizmos.add(h)})),Po(this,"onFocusAnim",((e,t,n,r)=>{if(-1==this._timeStart&&(this._timeStart=e),this._state==Do.ANIMATION_FOCUS){const i=(e-this._timeStart)/this.focusAnimationTime;if(this._gizmoMatrixState.copy(r),i>=1)this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.focus(t,this.scaleFactor),this._timeStart=-1,this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(Oo);else{const e=this.easeOutCubic(i),s=1-e+this.scaleFactor*e;this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.focus(t,s,e),this.dispatchEvent(Oo);const a=this;this._animationId=window.requestAnimationFrame((function(e){a.onFocusAnim(e,t,n,r.clone())}))}}else this._animationId=-1,this._timeStart=-1})),Po(this,"onRotationAnim",((e,t,n)=>{if(-1==this._timeStart&&(this._anglePrev=0,this._angleCurrent=0,this._timeStart=e),this._state==Do.ANIMATION_ROTATE){const r=(e-this._timeStart)/1e3;if(n+-this.dampingFactor*r>0){this._angleCurrent=.5*-this.dampingFactor*Math.pow(r,2)+n*r+0,this.applyTransformMatrix(this.rotate(t,this._angleCurrent)),this.dispatchEvent(Oo);const e=this;this._animationId=window.requestAnimationFrame((function(r){e.onRotationAnim(r,t,n)}))}else this._animationId=-1,this._timeStart=-1,this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(Oo)}else this._animationId=-1,this._timeStart=-1,this._state!=Do.ROTATE&&(this.activateGizmos(!1),this.dispatchEvent(Oo))})),Po(this,"pan",((e,t,n=!1)=>{if(this.camera){const r=e.clone().sub(t);if(this.camera instanceof a.OrthographicCamera&&r.multiplyScalar(1/this.camera.zoom),this.camera instanceof a.PerspectiveCamera&&n){this._v3_1.setFromMatrixPosition(this._cameraMatrixState0),this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0);const e=this._v3_1.distanceTo(this._v3_2)/this.camera.position.distanceTo(this._gizmos.position);r.multiplyScalar(1/e)}this._v3_1.set(r.x,r.y,0).applyQuaternion(this.camera.quaternion),this._m4_1.makeTranslation(this._v3_1.x,this._v3_1.y,this._v3_1.z),this.setTransformationMatrices(this._m4_1,this._m4_1)}return Uo})),Po(this,"reset",(()=>{if(this.camera){this.camera.zoom=this._zoom0,this.camera instanceof a.PerspectiveCamera&&(this.camera.fov=this._fov0),this.camera.near=this._nearPos,this.camera.far=this._farPos,this._cameraMatrixState.copy(this._cameraMatrixState0),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.up.copy(this._up0),this.camera.updateMatrix(),this.camera.updateProjectionMatrix(),this._gizmoMatrixState.copy(this._gizmoMatrixState0),this._gizmoMatrixState0.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.updateMatrix();const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e),this.makeGizmos(this._gizmos.position,this._tbRadius),this.camera.lookAt(this._gizmos.position),this.updateTbState(Do.IDLE,!1),this.dispatchEvent(Oo)}})),Po(this,"rotate",((e,t)=>{const n=this._gizmos.position;return this._translationMatrix.makeTranslation(-n.x,-n.y,-n.z),this._rotationMatrix.makeRotationAxis(e,-t),this._m4_1.makeTranslation(n.x,n.y,n.z),this._m4_1.multiply(this._rotationMatrix),this._m4_1.multiply(this._translationMatrix),this.setTransformationMatrices(this._m4_1),Uo})),Po(this,"copyState",(()=>{if(this.camera){const e=JSON.stringify(this.camera instanceof a.OrthographicCamera?{arcballState:{cameraFar:this.camera.far,cameraMatrix:this.camera.matrix,cameraNear:this.camera.near,cameraUp:this.camera.up,cameraZoom:this.camera.zoom,gizmoMatrix:this._gizmos.matrix}}:{arcballState:{cameraFar:this.camera.far,cameraFov:this.camera.fov,cameraMatrix:this.camera.matrix,cameraNear:this.camera.near,cameraUp:this.camera.up,cameraZoom:this.camera.zoom,gizmoMatrix:this._gizmos.matrix}});navigator.clipboard.writeText(e)}})),Po(this,"pasteState",(()=>{const e=this;navigator.clipboard.readText().then((function(t){e.setStateFromJSON(t)}))})),Po(this,"saveState",(()=>{this.camera&&(this._cameraMatrixState0.copy(this.camera.matrix),this._gizmoMatrixState0.copy(this._gizmos.matrix),this._nearPos=this.camera.near,this._farPos=this.camera.far,this._zoom0=this.camera.zoom,this._up0.copy(this.camera.up),this.camera instanceof a.PerspectiveCamera&&(this._fov0=this.camera.fov))})),Po(this,"applyScale",((e,t,n=!0)=>{if(!this.camera)return;const r=t.clone();let i=1/e;if(this.camera instanceof a.OrthographicCamera){this.camera.zoom=this._zoomState,this.camera.zoom*=e,this.camera.zoom>this.maxZoom?(this.camera.zoom=this.maxZoom,i=this._zoomState/this.maxZoom):this.camera.zoomthis.maxDistance&&(i=this.maxDistance/e,t=e-e*i);let a=r.clone().sub(this._v3_1).normalize().multiplyScalar(t);if(this._m4_1.makeTranslation(a.x,a.y,a.z),n){const n=this._v3_2;e=n.distanceTo(r),t=e-e*i,a=r.clone().sub(this._v3_2).normalize().multiplyScalar(t),this._translationMatrix.makeTranslation(n.x,n.y,n.z),this._scaleMatrix.makeScale(i,i,i),this._m4_2.makeTranslation(a.x,a.y,a.z).multiply(this._translationMatrix),this._m4_2.multiply(this._scaleMatrix),this._translationMatrix.makeTranslation(-n.x,-n.y,-n.z),this._m4_2.multiply(this._translationMatrix),this.setTransformationMatrices(this._m4_1,this._m4_2)}else this.setTransformationMatrices(this._m4_1);return Uo}})),Po(this,"setFov",(e=>{this.camera instanceof a.PerspectiveCamera&&(this.camera.fov=a.MathUtils.clamp(e,this.minFov,this.maxFov),this.camera.updateProjectionMatrix())})),Po(this,"setTarget",((e,t,n)=>{if(this.camera){this.target.set(e,t,n),this._gizmos.position.set(e,t,n);const r=this.calculateTbRadius(this.camera);void 0!==r&&(this._tbRadius=r),this.makeGizmos(this.target,this._tbRadius),this.camera.lookAt(this.target)}})),Po(this,"zRotate",((e,t)=>(this._rotationMatrix.makeRotationAxis(this._rotationAxis,t),this._translationMatrix.makeTranslation(-e.x,-e.y,-e.z),this._m4_1.makeTranslation(e.x,e.y,e.z),this._m4_1.multiply(this._rotationMatrix),this._m4_1.multiply(this._translationMatrix),this._v3_1.setFromMatrixPosition(this._gizmoMatrixState).sub(e),this._v3_2.copy(this._v3_1).applyAxisAngle(this._rotationAxis,t),this._v3_2.sub(this._v3_1),this._m4_2.makeTranslation(this._v3_2.x,this._v3_2.y,this._v3_2.z),this.setTransformationMatrices(this._m4_1,this._m4_2),Uo))),Po(this,"unprojectOnObj",((e,t)=>{if(!this.scene)return null;const n=new a.Raycaster;n.near=t.near,n.far=t.far,n.setFromCamera(e,t);const r=n.intersectObjects(this.scene.children,!0);for(let i=0;i{if(e instanceof a.OrthographicCamera){this._v2_1.copy(this.getCursorPosition(t,n,r)),this._v3_1.set(this._v2_1.x,this._v2_1.y,0);const e=Math.pow(this._v2_1.x,2),i=Math.pow(this._v2_1.y,2),s=Math.pow(this._tbRadius,2);return e+i<=.5*s?this._v3_1.setZ(Math.sqrt(s-(e+i))):this._v3_1.setZ(.5*s/Math.sqrt(e+i)),this._v3_1}if(e instanceof a.PerspectiveCamera){this._v2_1.copy(this.getCursorNDC(t,n,r)),this._v3_1.set(this._v2_1.x,this._v2_1.y,-1),this._v3_1.applyMatrix4(e.projectionMatrixInverse);const s=this._v3_1.clone().normalize(),o=e.position.distanceTo(this._gizmos.position),l=Math.pow(i,2),c=this._v3_1.z,h=Math.sqrt(Math.pow(this._v3_1.x,2)+Math.pow(this._v3_1.y,2));if(0==h)return s.set(this._v3_1.x,this._v3_1.y,i),s;const u=c/h,d=o;let p=Math.pow(u,2)+1,f=2*u*d,m=Math.pow(d,2)-l,g=Math.pow(f,2)-4*p*m;if(g>=0){this._v2_1.setX((-f-Math.sqrt(g))/(2*p)),this._v2_1.setY(u*this._v2_1.x+d);if(a.MathUtils.RAD2DEG*this._v2_1.angle()>=45){const e=Math.sqrt(Math.pow(this._v2_1.x,2)+Math.pow(o-this._v2_1.y,2));return s.multiplyScalar(e),s.z+=o,s}}p=u,f=d,m=.5*-l,g=Math.pow(f,2)-4*p*m,this._v2_1.setX((-f-Math.sqrt(g))/(2*p)),this._v2_1.setY(u*this._v2_1.x+d);const A=Math.sqrt(Math.pow(this._v2_1.x,2)+Math.pow(o-this._v2_1.y,2));return s.multiplyScalar(A),s.z+=o,s}})),Po(this,"unprojectOnTbPlane",((e,t,n,r,i=!1)=>{if(e instanceof a.OrthographicCamera)return this._v2_1.copy(this.getCursorPosition(t,n,r)),this._v3_1.set(this._v2_1.x,this._v2_1.y,0),this._v3_1.clone();if(e instanceof a.PerspectiveCamera){this._v2_1.copy(this.getCursorNDC(t,n,r)),this._v3_1.set(this._v2_1.x,this._v2_1.y,-1),this._v3_1.applyMatrix4(e.projectionMatrixInverse);const s=this._v3_1.clone().normalize(),a=this._v3_1.z,o=Math.sqrt(Math.pow(this._v3_1.x,2)+Math.pow(this._v3_1.y,2));let l;if(l=i?this._v3_1.setFromMatrixPosition(this._cameraMatrixState0).distanceTo(this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0)):e.position.distanceTo(this._gizmos.position),0==o)return s.set(0,0,0),s;const c=l,h=-c/(a/o),u=Math.sqrt(Math.pow(c,2)+Math.pow(h,2));return s.multiplyScalar(u),s.z=0,s}})),Po(this,"updateMatrixState",(()=>{this.camera&&(this._cameraMatrixState.copy(this.camera.matrix),this._gizmoMatrixState.copy(this._gizmos.matrix),this.camera instanceof a.OrthographicCamera&&(this._cameraProjectionState.copy(this.camera.projectionMatrix),this.camera.updateProjectionMatrix(),this._zoomState=this.camera.zoom),this.camera instanceof a.PerspectiveCamera&&(this._fovState=this.camera.fov))})),Po(this,"updateTbState",((e,t)=>{this._state=e,t&&this.updateMatrixState()})),Po(this,"update",(()=>{const e=1e-6;if(!this.target.equals(this._currentTarget)&&this.camera){this._gizmos.position.set(this.target.x,this.target.y,this.target.z);const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e),this.makeGizmos(this.target,this._tbRadius),this._currentTarget.copy(this.target)}if(this.camera){if(this.camera instanceof a.OrthographicCamera&&(this.camera.zoom>this.maxZoom||this.camera.zoomthis.maxDistance+e||tthis.maxFov)&&(this.camera.fov=a.MathUtils.clamp(this.camera.fov,this.minFov,this.maxFov),this.camera.updateProjectionMatrix());const n=this._tbRadius,r=this.calculateTbRadius(this.camera);if(void 0!==r&&(this._tbRadius=r),nthis._tbRadius+e){const e=(this._gizmos.scale.x+this._gizmos.scale.y+this._gizmos.scale.z)/3,t=this._tbRadius/e,n=new a.EllipseCurve(0,0,t,t).getPoints(this._curvePts),r=(new a.BufferGeometry).setFromPoints(n);for(const i in this._gizmos.children){this._gizmos.children[i].geometry=r}}}this.camera.lookAt(this._gizmos.position)}})),Po(this,"setStateFromJSON",(e=>{const t=JSON.parse(e);if(t.arcballState&&this.camera){this._cameraMatrixState.fromArray(t.arcballState.cameraMatrix.elements),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.up.copy(t.arcballState.cameraUp),this.camera.near=t.arcballState.cameraNear,this.camera.far=t.arcballState.cameraFar,this.camera.zoom=t.arcballState.cameraZoom,this.camera instanceof a.PerspectiveCamera&&(this.camera.fov=t.arcballState.cameraFov),this._gizmoMatrixState.fromArray(t.arcballState.gizmoMatrix.elements),this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.camera.updateMatrix(),this.camera.updateProjectionMatrix(),this._gizmos.updateMatrix();const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e);const n=(new a.Matrix4).copy(this._gizmoMatrixState0);this.makeGizmos(this._gizmos.position,this._tbRadius),this._gizmoMatrixState0.copy(n),this.camera.lookAt(this._gizmos.position),this.updateTbState(Do.IDLE,!1),this.dispatchEvent(Oo)}})),this.camera=null,this.domElement=t,this.scene=n,this.mouseActions=[],this._mouseOp=null,this._v2_1=new a.Vector2,this._v3_1=new a.Vector3,this._v3_2=new a.Vector3,this._m4_1=new a.Matrix4,this._m4_2=new a.Matrix4,this._quat=new a.Quaternion,this._translationMatrix=new a.Matrix4,this._rotationMatrix=new a.Matrix4,this._scaleMatrix=new a.Matrix4,this._rotationAxis=new a.Vector3,this._cameraMatrixState=new a.Matrix4,this._cameraProjectionState=new a.Matrix4,this._fovState=1,this._upState=new a.Vector3,this._zoomState=1,this._nearPos=0,this._farPos=0,this._gizmoMatrixState=new a.Matrix4,this._up0=new a.Vector3,this._zoom0=1,this._fov0=0,this._initialNear=0,this._nearPos0=0,this._initialFar=0,this._farPos0=0,this._cameraMatrixState0=new a.Matrix4,this._gizmoMatrixState0=new a.Matrix4,this._button=-1,this._touchStart=[],this._touchCurrent=[],this._input=Lo.NONE,this._switchSensibility=32,this._startFingerDistance=0,this._currentFingerDistance=0,this._startFingerRotation=0,this._currentFingerRotation=0,this._devPxRatio=0,this._downValid=!0,this._nclicks=0,this._downEvents=[],this._clickStart=0,this._maxDownTime=250,this._maxInterval=300,this._posThreshold=24,this._movementThreshold=24,this._currentCursorPosition=new a.Vector3,this._startCursorPosition=new a.Vector3,this._grid=null,this._gridPosition=new a.Vector3,this._gizmos=new a.Group,this._curvePts=128,this._timeStart=-1,this._animationId=-1,this.focusAnimationTime=500,this._timePrev=0,this._timeCurrent=0,this._anglePrev=0,this._angleCurrent=0,this._cursorPosPrev=new a.Vector3,this._cursorPosCurr=new a.Vector3,this._wPrev=0,this._wCurr=0,this.adjustNearFar=!1,this.scaleFactor=1.1,this.dampingFactor=25,this.wMax=20,this.enableAnimations=!0,this.enableGrid=!1,this.cursorZoom=!1,this.minFov=5,this.maxFov=90,this.enabled=!0,this.enablePan=!0,this.enableRotate=!0,this.enableZoom=!0,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.target=new a.Vector3(0,0,0),this._currentTarget=new a.Vector3(0,0,0),this._tbRadius=1,this._state=Do.IDLE,this.setCamera(e),this.scene&&this.scene.add(this._gizmos),this._devPxRatio=window.devicePixelRatio,this.initializeMouseActions(),this.domElement&&this.connect(this.domElement),window.addEventListener("resize",this.onWindowResize)}applyTransformMatrix(e){if((null==e?void 0:e.camera)&&this.camera&&(this._m4_1.copy(this._cameraMatrixState).premultiply(e.camera),this._m4_1.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.updateMatrix(),this._state!=Do.ROTATE&&this._state!=Do.ZROTATE&&this._state!=Do.ANIMATION_ROTATE||this.camera.up.copy(this._upState).applyQuaternion(this.camera.quaternion)),(null==e?void 0:e.gizmos)&&(this._m4_1.copy(this._gizmoMatrixState).premultiply(e.gizmos),this._m4_1.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.updateMatrix()),(this._state==Do.SCALE||this._state==Do.FOCUS||this._state==Do.ANIMATION_FOCUS)&&this.camera){const e=this.calculateTbRadius(this.camera);if(void 0!==e&&(this._tbRadius=e),this.adjustNearFar){const e=this.camera.position.distanceTo(this._gizmos.position),t=new a.Box3;t.setFromObject(this._gizmos);const n=new a.Sphere;t.getBoundingSphere(n);const r=Math.max(this._nearPos0,n.radius+n.center.length()),i=e-this._initialNear,s=Math.min(r,i);this.camera.near=e-s;const o=Math.min(this._farPos0,-n.radius+n.center.length()),l=e-this._initialFar,c=Math.min(o,l);this.camera.far=e-c,this.camera.updateProjectionMatrix()}else{let e=!1;this.camera.near!=this._initialNear&&(this.camera.near=this._initialNear,e=!0),this.camera.far!=this._initialFar&&(this.camera.far=this._initialFar,e=!0),e&&this.camera.updateProjectionMatrix()}}}setGizmosVisible(e){this._gizmos.visible=e,this.dispatchEvent(Oo)}setTransformationMatrices(e=null,t=null){e?Uo.camera?Uo.camera.copy(e):Uo.camera=e.clone():Uo.camera=null,t?Uo.gizmos?Uo.gizmos.copy(t):Uo.gizmos=t.clone():Uo.gizmos=null}}const zo=(0,i.forwardRef)((({camera:e,makeDefault:t,regress:n,domElement:s,onChange:a,onStart:l,onEnd:c,...h},u)=>{const d=(0,o.useThree)((e=>e.invalidate)),p=(0,o.useThree)((e=>e.camera)),f=(0,o.useThree)((e=>e.gl)),m=(0,o.useThree)((e=>e.events)),g=(0,o.useThree)((e=>e.set)),A=(0,o.useThree)((e=>e.get)),v=(0,o.useThree)((e=>e.performance)),y=e||p,x=s||m.connected||f.domElement,b=(0,i.useMemo)((()=>new Go(y)),[y]);return(0,o.useFrame)((()=>{b.enabled&&b.update()})),(0,i.useEffect)((()=>(b.connect(x),()=>{b.dispose()})),[x,n,b,d]),(0,i.useEffect)((()=>{const e=e=>{d(),n&&v.regress(),a&&a(e)};return b.addEventListener("change",e),l&&b.addEventListener("start",l),c&&b.addEventListener("end",c),()=>{b.removeEventListener("change",e),l&&b.removeEventListener("start",l),c&&b.removeEventListener("end",c)}}),[a,l,c]),(0,i.useEffect)((()=>{if(t){const e=A().controls;return g({controls:b}),()=>g({controls:e})}}),[t,b]),i.createElement("primitive",(0,r.Z)({ref:u,object:b},h))}));var Qo=n(76427),Vo=n.n(Qo),Ho=Object.defineProperty,jo=(e,t,n)=>(((e,t,n)=>{t in e?Ho(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);class Wo extends a.Object3D{constructor(e,t){super(),jo(this,"isTransformControls",!0),jo(this,"visible",!1),jo(this,"domElement"),jo(this,"raycaster",new a.Raycaster),jo(this,"gizmo"),jo(this,"plane"),jo(this,"tempVector",new a.Vector3),jo(this,"tempVector2",new a.Vector3),jo(this,"tempQuaternion",new a.Quaternion),jo(this,"unit",{X:new a.Vector3(1,0,0),Y:new a.Vector3(0,1,0),Z:new a.Vector3(0,0,1)}),jo(this,"pointStart",new a.Vector3),jo(this,"pointEnd",new a.Vector3),jo(this,"offset",new a.Vector3),jo(this,"rotationAxis",new a.Vector3),jo(this,"startNorm",new a.Vector3),jo(this,"endNorm",new a.Vector3),jo(this,"rotationAngle",0),jo(this,"cameraPosition",new a.Vector3),jo(this,"cameraQuaternion",new a.Quaternion),jo(this,"cameraScale",new a.Vector3),jo(this,"parentPosition",new a.Vector3),jo(this,"parentQuaternion",new a.Quaternion),jo(this,"parentQuaternionInv",new a.Quaternion),jo(this,"parentScale",new a.Vector3),jo(this,"worldPositionStart",new a.Vector3),jo(this,"worldQuaternionStart",new a.Quaternion),jo(this,"worldScaleStart",new a.Vector3),jo(this,"worldPosition",new a.Vector3),jo(this,"worldQuaternion",new a.Quaternion),jo(this,"worldQuaternionInv",new a.Quaternion),jo(this,"worldScale",new a.Vector3),jo(this,"eye",new a.Vector3),jo(this,"positionStart",new a.Vector3),jo(this,"quaternionStart",new a.Quaternion),jo(this,"scaleStart",new a.Vector3),jo(this,"camera"),jo(this,"object"),jo(this,"enabled",!0),jo(this,"axis",null),jo(this,"mode","translate"),jo(this,"translationSnap",null),jo(this,"rotationSnap",null),jo(this,"scaleSnap",null),jo(this,"space","world"),jo(this,"size",1),jo(this,"dragging",!1),jo(this,"showX",!0),jo(this,"showY",!0),jo(this,"showZ",!0),jo(this,"changeEvent",{type:"change"}),jo(this,"mouseDownEvent",{type:"mouseDown",mode:this.mode}),jo(this,"mouseUpEvent",{type:"mouseUp",mode:this.mode}),jo(this,"objectChangeEvent",{type:"objectChange"}),jo(this,"intersectObjectWithRay",((e,t,n)=>{const r=t.intersectObject(e,!0);for(let i=0;i(this.object=e,this.visible=!0,this))),jo(this,"detach",(()=>(this.object=void 0,this.visible=!1,this.axis=null,this))),jo(this,"reset",(()=>this.enabled?(this.dragging&&void 0!==this.object&&(this.object.position.copy(this.positionStart),this.object.quaternion.copy(this.quaternionStart),this.object.scale.copy(this.scaleStart),this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent),this.pointStart.copy(this.pointEnd)),this):this)),jo(this,"updateMatrixWorld",(()=>{void 0!==this.object&&(this.object.updateMatrixWorld(),null===this.object.parent?console.error("TransformControls: The attached 3D object must be a part of the scene graph."):this.object.parent.matrixWorld.decompose(this.parentPosition,this.parentQuaternion,this.parentScale),this.object.matrixWorld.decompose(this.worldPosition,this.worldQuaternion,this.worldScale),this.parentQuaternionInv.copy(this.parentQuaternion).invert(),this.worldQuaternionInv.copy(this.worldQuaternion).invert()),this.camera.updateMatrixWorld(),this.camera.matrixWorld.decompose(this.cameraPosition,this.cameraQuaternion,this.cameraScale),this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(),super.updateMatrixWorld()})),jo(this,"pointerHover",(e=>{if(void 0===this.object||!0===this.dragging)return;this.raycaster.setFromCamera(e,this.camera);const t=this.intersectObjectWithRay(this.gizmo.picker[this.mode],this.raycaster);this.axis=t?t.object.name:null})),jo(this,"pointerDown",(e=>{if(void 0!==this.object&&!0!==this.dragging&&0===e.button&&null!==this.axis){this.raycaster.setFromCamera(e,this.camera);const t=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(t){let e=this.space;if("scale"===this.mode?e="local":"E"!==this.axis&&"XYZE"!==this.axis&&"XYZ"!==this.axis||(e="world"),"local"===e&&"rotate"===this.mode){const e=this.rotationSnap;"X"===this.axis&&e&&(this.object.rotation.x=Math.round(this.object.rotation.x/e)*e),"Y"===this.axis&&e&&(this.object.rotation.y=Math.round(this.object.rotation.y/e)*e),"Z"===this.axis&&e&&(this.object.rotation.z=Math.round(this.object.rotation.z/e)*e)}this.object.updateMatrixWorld(),this.object.parent&&this.object.parent.updateMatrixWorld(),this.positionStart.copy(this.object.position),this.quaternionStart.copy(this.object.quaternion),this.scaleStart.copy(this.object.scale),this.object.matrixWorld.decompose(this.worldPositionStart,this.worldQuaternionStart,this.worldScaleStart),this.pointStart.copy(t.point).sub(this.worldPositionStart)}this.dragging=!0,this.mouseDownEvent.mode=this.mode,this.dispatchEvent(this.mouseDownEvent)}})),jo(this,"pointerMove",(e=>{const t=this.axis,n=this.mode,r=this.object;let i=this.space;if("scale"===n?i="local":"E"!==t&&"XYZE"!==t&&"XYZ"!==t||(i="world"),void 0===r||null===t||!1===this.dragging||-1!==e.button)return;this.raycaster.setFromCamera(e,this.camera);const s=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(s){if(this.pointEnd.copy(s.point).sub(this.worldPositionStart),"translate"===n)this.offset.copy(this.pointEnd).sub(this.pointStart),"local"===i&&"XYZ"!==t&&this.offset.applyQuaternion(this.worldQuaternionInv),-1===t.indexOf("X")&&(this.offset.x=0),-1===t.indexOf("Y")&&(this.offset.y=0),-1===t.indexOf("Z")&&(this.offset.z=0),"local"===i&&"XYZ"!==t?this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale):this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale),r.position.copy(this.offset).add(this.positionStart),this.translationSnap&&("local"===i&&(r.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert()),-1!==t.search("X")&&(r.position.x=Math.round(r.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(r.position.y=Math.round(r.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(r.position.z=Math.round(r.position.z/this.translationSnap)*this.translationSnap),r.position.applyQuaternion(this.quaternionStart)),"world"===i&&(r.parent&&r.position.add(this.tempVector.setFromMatrixPosition(r.parent.matrixWorld)),-1!==t.search("X")&&(r.position.x=Math.round(r.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(r.position.y=Math.round(r.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(r.position.z=Math.round(r.position.z/this.translationSnap)*this.translationSnap),r.parent&&r.position.sub(this.tempVector.setFromMatrixPosition(r.parent.matrixWorld))));else if("scale"===n){if(-1!==t.search("XYZ")){let e=this.pointEnd.length()/this.pointStart.length();this.pointEnd.dot(this.pointStart)<0&&(e*=-1),this.tempVector2.set(e,e,e)}else this.tempVector.copy(this.pointStart),this.tempVector2.copy(this.pointEnd),this.tempVector.applyQuaternion(this.worldQuaternionInv),this.tempVector2.applyQuaternion(this.worldQuaternionInv),this.tempVector2.divide(this.tempVector),-1===t.search("X")&&(this.tempVector2.x=1),-1===t.search("Y")&&(this.tempVector2.y=1),-1===t.search("Z")&&(this.tempVector2.z=1);r.scale.copy(this.scaleStart).multiply(this.tempVector2),this.scaleSnap&&this.object&&(-1!==t.search("X")&&(this.object.scale.x=Math.round(r.scale.x/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Y")&&(r.scale.y=Math.round(r.scale.y/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Z")&&(r.scale.z=Math.round(r.scale.z/this.scaleSnap)*this.scaleSnap||this.scaleSnap))}else if("rotate"===n){this.offset.copy(this.pointEnd).sub(this.pointStart);const e=20/this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld));"E"===t?(this.rotationAxis.copy(this.eye),this.rotationAngle=this.pointEnd.angleTo(this.pointStart),this.startNorm.copy(this.pointStart).normalize(),this.endNorm.copy(this.pointEnd).normalize(),this.rotationAngle*=this.endNorm.cross(this.startNorm).dot(this.eye)<0?1:-1):"XYZE"===t?(this.rotationAxis.copy(this.offset).cross(this.eye).normalize(),this.rotationAngle=this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye))*e):"X"!==t&&"Y"!==t&&"Z"!==t||(this.rotationAxis.copy(this.unit[t]),this.tempVector.copy(this.unit[t]),"local"===i&&this.tempVector.applyQuaternion(this.worldQuaternion),this.rotationAngle=this.offset.dot(this.tempVector.cross(this.eye).normalize())*e),this.rotationSnap&&(this.rotationAngle=Math.round(this.rotationAngle/this.rotationSnap)*this.rotationSnap),"local"===i&&"E"!==t&&"XYZE"!==t?(r.quaternion.copy(this.quaternionStart),r.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)).normalize()):(this.rotationAxis.applyQuaternion(this.parentQuaternionInv),r.quaternion.copy(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)),r.quaternion.multiply(this.quaternionStart).normalize())}this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent)}})),jo(this,"pointerUp",(e=>{0===e.button&&(this.dragging&&null!==this.axis&&(this.mouseUpEvent.mode=this.mode,this.dispatchEvent(this.mouseUpEvent)),this.dragging=!1,this.axis=null)})),jo(this,"getPointer",(e=>{var t,n;if(this.domElement&&(null==(t=this.domElement.ownerDocument)?void 0:t.pointerLockElement))return{x:0,y:0,button:e.button};{const t=e.changedTouches?e.changedTouches[0]:e,r=null==(n=this.domElement)?void 0:n.getBoundingClientRect();return{x:(t.clientX-r.left)/r.width*2-1,y:-(t.clientY-r.top)/r.height*2+1,button:e.button}}})),jo(this,"onPointerHover",(e=>{if(this.enabled)switch(e.pointerType){case"mouse":case"pen":this.pointerHover(this.getPointer(e))}})),jo(this,"onPointerDown",(e=>{this.enabled&&this.domElement&&(this.domElement.style.touchAction="none",this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.pointerHover(this.getPointer(e)),this.pointerDown(this.getPointer(e)))})),jo(this,"onPointerMove",(e=>{this.enabled&&this.pointerMove(this.getPointer(e))})),jo(this,"onPointerUp",(e=>{this.enabled&&this.domElement&&(this.domElement.style.touchAction="",this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.pointerUp(this.getPointer(e)))})),jo(this,"getMode",(()=>this.mode)),jo(this,"setMode",(e=>{this.mode=e})),jo(this,"setTranslationSnap",(e=>{this.translationSnap=e})),jo(this,"setRotationSnap",(e=>{this.rotationSnap=e})),jo(this,"setScaleSnap",(e=>{this.scaleSnap=e})),jo(this,"setSize",(e=>{this.size=e})),jo(this,"setSpace",(e=>{this.space=e})),jo(this,"update",(()=>{console.warn("THREE.TransformControls: update function has no more functionality and therefore has been deprecated.")})),jo(this,"connect",(e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointermove",this.onPointerHover),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp)})),jo(this,"dispose",(()=>{var e,t,n,r,i,s;null==(e=this.domElement)||e.removeEventListener("pointerdown",this.onPointerDown),null==(t=this.domElement)||t.removeEventListener("pointermove",this.onPointerHover),null==(r=null==(n=this.domElement)?void 0:n.ownerDocument)||r.removeEventListener("pointermove",this.onPointerMove),null==(s=null==(i=this.domElement)?void 0:i.ownerDocument)||s.removeEventListener("pointerup",this.onPointerUp),this.traverse((e=>{const t=e;t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}))})),this.domElement=t,this.camera=e,this.gizmo=new Xo,this.add(this.gizmo),this.plane=new Yo,this.add(this.plane);const n=(e,t)=>{let n=t;Object.defineProperty(this,e,{get:function(){return void 0!==n?n:t},set:function(t){n!==t&&(n=t,this.plane[e]=t,this.gizmo[e]=t,this.dispatchEvent({type:e+"-changed",value:t}),this.dispatchEvent(this.changeEvent))}}),this[e]=t,this.plane[e]=t,this.gizmo[e]=t};n("camera",this.camera),n("object",this.object),n("enabled",this.enabled),n("axis",this.axis),n("mode",this.mode),n("translationSnap",this.translationSnap),n("rotationSnap",this.rotationSnap),n("scaleSnap",this.scaleSnap),n("space",this.space),n("size",this.size),n("dragging",this.dragging),n("showX",this.showX),n("showY",this.showY),n("showZ",this.showZ),n("worldPosition",this.worldPosition),n("worldPositionStart",this.worldPositionStart),n("worldQuaternion",this.worldQuaternion),n("worldQuaternionStart",this.worldQuaternionStart),n("cameraPosition",this.cameraPosition),n("cameraQuaternion",this.cameraQuaternion),n("pointStart",this.pointStart),n("pointEnd",this.pointEnd),n("rotationAxis",this.rotationAxis),n("rotationAngle",this.rotationAngle),n("eye",this.eye),void 0!==t&&this.connect(t)}}class Xo extends a.Object3D{constructor(){super(),jo(this,"isTransformControlsGizmo",!0),jo(this,"type","TransformControlsGizmo"),jo(this,"tempVector",new a.Vector3(0,0,0)),jo(this,"tempEuler",new a.Euler),jo(this,"alignVector",new a.Vector3(0,1,0)),jo(this,"zeroVector",new a.Vector3(0,0,0)),jo(this,"lookAtMatrix",new a.Matrix4),jo(this,"tempQuaternion",new a.Quaternion),jo(this,"tempQuaternion2",new a.Quaternion),jo(this,"identityQuaternion",new a.Quaternion),jo(this,"unitX",new a.Vector3(1,0,0)),jo(this,"unitY",new a.Vector3(0,1,0)),jo(this,"unitZ",new a.Vector3(0,0,1)),jo(this,"gizmo"),jo(this,"picker"),jo(this,"helper"),jo(this,"rotationAxis",new a.Vector3),jo(this,"cameraPosition",new a.Vector3),jo(this,"worldPositionStart",new a.Vector3),jo(this,"worldQuaternionStart",new a.Quaternion),jo(this,"worldPosition",new a.Vector3),jo(this,"worldQuaternion",new a.Quaternion),jo(this,"eye",new a.Vector3),jo(this,"camera",null),jo(this,"enabled",!0),jo(this,"axis",null),jo(this,"mode","translate"),jo(this,"space","world"),jo(this,"size",1),jo(this,"dragging",!1),jo(this,"showX",!0),jo(this,"showY",!0),jo(this,"showZ",!0),jo(this,"updateMatrixWorld",(()=>{let e=this.space;"scale"===this.mode&&(e="local");const t="local"===e?this.worldQuaternion:this.identityQuaternion;this.gizmo.translate.visible="translate"===this.mode,this.gizmo.rotate.visible="rotate"===this.mode,this.gizmo.scale.visible="scale"===this.mode,this.helper.translate.visible="translate"===this.mode,this.helper.rotate.visible="rotate"===this.mode,this.helper.scale.visible="scale"===this.mode;let n=[];n=n.concat(this.picker[this.mode].children),n=n.concat(this.gizmo[this.mode].children),n=n.concat(this.helper[this.mode].children);for(let r=0;rn&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"Y"!==e.name&&"XYZY"!==e.name||Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>n&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"Z"!==e.name&&"XYZZ"!==e.name||Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>n&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"XY"===e.name&&Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye)).9&&(e.visible=!1)),"Y"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,0,Math.PI/2)),e.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>.9&&(e.visible=!1)),"Z"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),e.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>.9&&(e.visible=!1)),"XYZE"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),this.alignVector.copy(this.rotationAxis),e.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.zeroVector,this.alignVector,this.unitY)),e.quaternion.multiply(this.tempQuaternion),e.visible=this.dragging),"E"===this.axis&&(e.visible=!1)):"START"===e.name?(e.position.copy(this.worldPositionStart),e.visible=this.dragging):"END"===e.name?(e.position.copy(this.worldPosition),e.visible=this.dragging):"DELTA"===e.name?(e.position.copy(this.worldPositionStart),e.quaternion.copy(this.worldQuaternionStart),this.tempVector.set(1e-10,1e-10,1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1),this.tempVector.applyQuaternion(this.worldQuaternionStart.clone().invert()),e.scale.copy(this.tempVector),e.visible=this.dragging):(e.quaternion.copy(t),this.dragging?e.position.copy(this.worldPositionStart):e.position.copy(this.worldPosition),this.axis&&(e.visible=-1!==this.axis.search(e.name)))}super.updateMatrixWorld()}));const e=new a.MeshBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,side:a.DoubleSide,fog:!1,toneMapped:!1}),t=new a.LineBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,linewidth:1,fog:!1,toneMapped:!1}),n=e.clone();n.opacity=.15;const r=e.clone();r.opacity=.33;const i=e.clone();i.color.set(16711680);const s=e.clone();s.color.set(65280);const o=e.clone();o.color.set(255);const l=e.clone();l.opacity=.25;const c=l.clone();c.color.set(16776960);const h=l.clone();h.color.set(65535);const u=l.clone();u.color.set(16711935);e.clone().color.set(16776960);const d=t.clone();d.color.set(16711680);const p=t.clone();p.color.set(65280);const f=t.clone();f.color.set(255);const m=t.clone();m.color.set(65535);const g=t.clone();g.color.set(16711935);const A=t.clone();A.color.set(16776960);const v=t.clone();v.color.set(7895160);const y=A.clone();y.opacity=.25;const x=new a.CylinderGeometry(0,.05,.2,12,1,!1),b=new a.BoxGeometry(.125,.125,.125),E=new a.BufferGeometry;E.setAttribute("position",new a.Float32BufferAttribute([0,0,0,1,0,0],3));const _=(e,t)=>{const n=new a.BufferGeometry,r=[];for(let i=0;i<=64*t;++i)r.push(0,Math.cos(i/32*Math.PI)*e,Math.sin(i/32*Math.PI)*e);return n.setAttribute("position",new a.Float32BufferAttribute(r,3)),n},S={X:[[new a.Mesh(x,i),[1,0,0],[0,0,-Math.PI/2],null,"fwd"],[new a.Mesh(x,i),[1,0,0],[0,0,Math.PI/2],null,"bwd"],[new a.Line(E,d)]],Y:[[new a.Mesh(x,s),[0,1,0],null,null,"fwd"],[new a.Mesh(x,s),[0,1,0],[Math.PI,0,0],null,"bwd"],[new a.Line(E,p),null,[0,0,Math.PI/2]]],Z:[[new a.Mesh(x,o),[0,0,1],[Math.PI/2,0,0],null,"fwd"],[new a.Mesh(x,o),[0,0,1],[-Math.PI/2,0,0],null,"bwd"],[new a.Line(E,f),null,[0,-Math.PI/2,0]]],XYZ:[[new a.Mesh(new a.OctahedronGeometry(.1,0),l.clone()),[0,0,0],[0,0,0]]],XY:[[new a.Mesh(new a.PlaneGeometry(.295,.295),c.clone()),[.15,.15,0]],[new a.Line(E,A),[.18,.3,0],null,[.125,1,1]],[new a.Line(E,A),[.3,.18,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new a.Mesh(new a.PlaneGeometry(.295,.295),h.clone()),[0,.15,.15],[0,Math.PI/2,0]],[new a.Line(E,m),[0,.18,.3],[0,0,Math.PI/2],[.125,1,1]],[new a.Line(E,m),[0,.3,.18],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new a.Mesh(new a.PlaneGeometry(.295,.295),u.clone()),[.15,0,.15],[-Math.PI/2,0,0]],[new a.Line(E,g),[.18,0,.3],null,[.125,1,1]],[new a.Line(E,g),[.3,0,.18],[0,-Math.PI/2,0],[.125,1,1]]]},w={X:[[new a.Mesh(new a.CylinderGeometry(.2,0,1,4,1,!1),n),[.6,0,0],[0,0,-Math.PI/2]]],Y:[[new a.Mesh(new a.CylinderGeometry(.2,0,1,4,1,!1),n),[0,.6,0]]],Z:[[new a.Mesh(new a.CylinderGeometry(.2,0,1,4,1,!1),n),[0,0,.6],[Math.PI/2,0,0]]],XYZ:[[new a.Mesh(new a.OctahedronGeometry(.2,0),n)]],XY:[[new a.Mesh(new a.PlaneGeometry(.4,.4),n),[.2,.2,0]]],YZ:[[new a.Mesh(new a.PlaneGeometry(.4,.4),n),[0,.2,.2],[0,Math.PI/2,0]]],XZ:[[new a.Mesh(new a.PlaneGeometry(.4,.4),n),[.2,0,.2],[-Math.PI/2,0,0]]]},M={START:[[new a.Mesh(new a.OctahedronGeometry(.01,2),r),null,null,null,"helper"]],END:[[new a.Mesh(new a.OctahedronGeometry(.01,2),r),null,null,null,"helper"]],DELTA:[[new a.Line((()=>{const e=new a.BufferGeometry;return e.setAttribute("position",new a.Float32BufferAttribute([0,0,0,1,1,1],3)),e})(),r),null,null,null,"helper"]],X:[[new a.Line(E,r.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new a.Line(E,r.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new a.Line(E,r.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},C={X:[[new a.Line(_(1,.5),d)],[new a.Mesh(new a.OctahedronGeometry(.04,0),i),[0,0,.99],null,[1,3,1]]],Y:[[new a.Line(_(1,.5),p),null,[0,0,-Math.PI/2]],[new a.Mesh(new a.OctahedronGeometry(.04,0),s),[0,0,.99],null,[3,1,1]]],Z:[[new a.Line(_(1,.5),f),null,[0,Math.PI/2,0]],[new a.Mesh(new a.OctahedronGeometry(.04,0),o),[.99,0,0],null,[1,3,1]]],E:[[new a.Line(_(1.25,1),y),null,[0,Math.PI/2,0]],[new a.Mesh(new a.CylinderGeometry(.03,0,.15,4,1,!1),y),[1.17,0,0],[0,0,-Math.PI/2],[1,1,.001]],[new a.Mesh(new a.CylinderGeometry(.03,0,.15,4,1,!1),y),[-1.17,0,0],[0,0,Math.PI/2],[1,1,.001]],[new a.Mesh(new a.CylinderGeometry(.03,0,.15,4,1,!1),y),[0,-1.17,0],[Math.PI,0,0],[1,1,.001]],[new a.Mesh(new a.CylinderGeometry(.03,0,.15,4,1,!1),y),[0,1.17,0],[0,0,0],[1,1,.001]]],XYZE:[[new a.Line(_(1,1),v),null,[0,Math.PI/2,0]]]},T={AXIS:[[new a.Line(E,r.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]]},I={X:[[new a.Mesh(new a.TorusGeometry(1,.1,4,24),n),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new a.Mesh(new a.TorusGeometry(1,.1,4,24),n),[0,0,0],[Math.PI/2,0,0]]],Z:[[new a.Mesh(new a.TorusGeometry(1,.1,4,24),n),[0,0,0],[0,0,-Math.PI/2]]],E:[[new a.Mesh(new a.TorusGeometry(1.25,.1,2,24),n)]],XYZE:[[new a.Mesh(new a.SphereGeometry(.7,10,8),n)]]},B={X:[[new a.Mesh(b,i),[.8,0,0],[0,0,-Math.PI/2]],[new a.Line(E,d),null,null,[.8,1,1]]],Y:[[new a.Mesh(b,s),[0,.8,0]],[new a.Line(E,p),null,[0,0,Math.PI/2],[.8,1,1]]],Z:[[new a.Mesh(b,o),[0,0,.8],[Math.PI/2,0,0]],[new a.Line(E,f),null,[0,-Math.PI/2,0],[.8,1,1]]],XY:[[new a.Mesh(b,c),[.85,.85,0],null,[2,2,.2]],[new a.Line(E,A),[.855,.98,0],null,[.125,1,1]],[new a.Line(E,A),[.98,.855,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new a.Mesh(b,h),[0,.85,.85],null,[.2,2,2]],[new a.Line(E,m),[0,.855,.98],[0,0,Math.PI/2],[.125,1,1]],[new a.Line(E,m),[0,.98,.855],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new a.Mesh(b,u),[.85,0,.85],null,[2,.2,2]],[new a.Line(E,g),[.855,0,.98],null,[.125,1,1]],[new a.Line(E,g),[.98,0,.855],[0,-Math.PI/2,0],[.125,1,1]]],XYZX:[[new a.Mesh(new a.BoxGeometry(.125,.125,.125),l.clone()),[1.1,0,0]]],XYZY:[[new a.Mesh(new a.BoxGeometry(.125,.125,.125),l.clone()),[0,1.1,0]]],XYZZ:[[new a.Mesh(new a.BoxGeometry(.125,.125,.125),l.clone()),[0,0,1.1]]]},R={X:[[new a.Mesh(new a.CylinderGeometry(.2,0,.8,4,1,!1),n),[.5,0,0],[0,0,-Math.PI/2]]],Y:[[new a.Mesh(new a.CylinderGeometry(.2,0,.8,4,1,!1),n),[0,.5,0]]],Z:[[new a.Mesh(new a.CylinderGeometry(.2,0,.8,4,1,!1),n),[0,0,.5],[Math.PI/2,0,0]]],XY:[[new a.Mesh(b,n),[.85,.85,0],null,[3,3,.2]]],YZ:[[new a.Mesh(b,n),[0,.85,.85],null,[.2,3,3]]],XZ:[[new a.Mesh(b,n),[.85,0,.85],null,[3,.2,3]]],XYZX:[[new a.Mesh(new a.BoxGeometry(.2,.2,.2),n),[1.1,0,0]]],XYZY:[[new a.Mesh(new a.BoxGeometry(.2,.2,.2),n),[0,1.1,0]]],XYZZ:[[new a.Mesh(new a.BoxGeometry(.2,.2,.2),n),[0,0,1.1]]]},P={X:[[new a.Line(E,r.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new a.Line(E,r.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new a.Line(E,r.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},D=e=>{const t=new a.Object3D;for(let n in e)for(let r=e[n].length;r--;){const i=e[n][r][0].clone(),s=e[n][r][1],a=e[n][r][2],o=e[n][r][3],l=e[n][r][4];i.name=n,i.tag=l,s&&i.position.set(s[0],s[1],s[2]),a&&i.rotation.set(a[0],a[1],a[2]),o&&i.scale.set(o[0],o[1],o[2]),i.updateMatrix();const c=i.geometry.clone();c.applyMatrix4(i.matrix),i.geometry=c,i.renderOrder=1/0,i.position.set(0,0,0),i.rotation.set(0,0,0),i.scale.set(1,1,1),t.add(i)}return t};this.gizmo={},this.picker={},this.helper={},this.add(this.gizmo.translate=D(S)),this.add(this.gizmo.rotate=D(C)),this.add(this.gizmo.scale=D(B)),this.add(this.picker.translate=D(w)),this.add(this.picker.rotate=D(I)),this.add(this.picker.scale=D(R)),this.add(this.helper.translate=D(M)),this.add(this.helper.rotate=D(T)),this.add(this.helper.scale=D(P)),this.picker.translate.visible=!1,this.picker.rotate.visible=!1,this.picker.scale.visible=!1}}class Yo extends a.Mesh{constructor(){super(new a.PlaneGeometry(1e5,1e5,2,2),new a.MeshBasicMaterial({visible:!1,wireframe:!0,side:a.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1})),jo(this,"isTransformControlsPlane",!0),jo(this,"type","TransformControlsPlane"),jo(this,"unitX",new a.Vector3(1,0,0)),jo(this,"unitY",new a.Vector3(0,1,0)),jo(this,"unitZ",new a.Vector3(0,0,1)),jo(this,"tempVector",new a.Vector3),jo(this,"dirVector",new a.Vector3),jo(this,"alignVector",new a.Vector3),jo(this,"tempMatrix",new a.Matrix4),jo(this,"identityQuaternion",new a.Quaternion),jo(this,"cameraQuaternion",new a.Quaternion),jo(this,"worldPosition",new a.Vector3),jo(this,"worldQuaternion",new a.Quaternion),jo(this,"eye",new a.Vector3),jo(this,"axis",null),jo(this,"mode","translate"),jo(this,"space","world"),jo(this,"updateMatrixWorld",(()=>{let e=this.space;switch(this.position.copy(this.worldPosition),"scale"===this.mode&&(e="local"),this.unitX.set(1,0,0).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.unitY.set(0,1,0).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.unitZ.set(0,0,1).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.alignVector.copy(this.unitY),this.mode){case"translate":case"scale":switch(this.axis){case"X":this.alignVector.copy(this.eye).cross(this.unitX),this.dirVector.copy(this.unitX).cross(this.alignVector);break;case"Y":this.alignVector.copy(this.eye).cross(this.unitY),this.dirVector.copy(this.unitY).cross(this.alignVector);break;case"Z":this.alignVector.copy(this.eye).cross(this.unitZ),this.dirVector.copy(this.unitZ).cross(this.alignVector);break;case"XY":this.dirVector.copy(this.unitZ);break;case"YZ":this.dirVector.copy(this.unitX);break;case"XZ":this.alignVector.copy(this.unitZ),this.dirVector.copy(this.unitY);break;case"XYZ":case"E":this.dirVector.set(0,0,0)}break;default:this.dirVector.set(0,0,0)}0===this.dirVector.length()?this.quaternion.copy(this.cameraQuaternion):(this.tempMatrix.lookAt(this.tempVector.set(0,0,0),this.dirVector,this.alignVector),this.quaternion.setFromRotationMatrix(this.tempMatrix)),super.updateMatrixWorld()}))}}const qo=i.forwardRef((({children:e,domElement:t,onChange:n,onMouseDown:s,onMouseUp:l,onObjectChange:c,object:h,...u},d)=>{const p=["enabled","axis","mode","translationSnap","rotationSnap","scaleSnap","space","size","showX","showY","showZ"],{camera:f,...m}=u,g=to()(m,p),A=Vo()(m,p),v=(0,o.useThree)((e=>e.controls)),y=(0,o.useThree)((e=>e.gl)),x=(0,o.useThree)((e=>e.events)),b=(0,o.useThree)((e=>e.camera)),E=(0,o.useThree)((e=>e.invalidate)),_=f||b,S=t||x.connected||y.domElement,w=i.useMemo((()=>new Wo(_,S)),[_,S]),M=i.useRef();return i.useLayoutEffect((()=>(h?w.attach(h instanceof a.Object3D?h:h.current):M.current instanceof a.Object3D&&w.attach(M.current),()=>{w.detach()})),[h,e,w]),i.useEffect((()=>{if(v){const e=e=>v.enabled=!e.value;return w.addEventListener("dragging-changed",e),()=>w.removeEventListener("dragging-changed",e)}}),[w,v]),i.useEffect((()=>{const e=e=>{E(),n&&n(e)};return null==w||null==w.addEventListener||w.addEventListener("change",e),s&&(null==w||null==w.addEventListener||w.addEventListener("mouseDown",s)),l&&(null==w||null==w.addEventListener||w.addEventListener("mouseUp",l)),c&&(null==w||null==w.addEventListener||w.addEventListener("objectChange",c)),()=>{null==w||null==w.removeEventListener||w.removeEventListener("change",e),s&&(null==w||null==w.removeEventListener||w.removeEventListener("mouseDown",s)),l&&(null==w||null==w.removeEventListener||w.removeEventListener("mouseUp",l)),c&&(null==w||null==w.removeEventListener||w.removeEventListener("objectChange",c))}}),[n,s,l,c,w,E]),w?i.createElement(i.Fragment,null,i.createElement("primitive",(0,r.Z)({ref:d,dispose:void 0,object:w},g)),i.createElement("group",(0,r.Z)({ref:M},A),e)):null}));var Ko=Object.defineProperty,Jo=(e,t,n)=>(((e,t,n)=>{t in e?Ko(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);const Zo=new a.Euler(0,0,0,"YXZ"),$o=new a.Vector3,el={type:"change"},tl={type:"lock"},nl={type:"unlock"},rl=Math.PI/2;class il extends a.EventDispatcher{constructor(e,t){super(),Jo(this,"camera"),Jo(this,"domElement"),Jo(this,"isLocked"),Jo(this,"minPolarAngle"),Jo(this,"maxPolarAngle"),Jo(this,"pointerSpeed"),Jo(this,"onMouseMove",(e=>{if(!this.domElement||!1===this.isLocked)return;const t=e.movementX||e.mozMovementX||e.webkitMovementX||0,n=e.movementY||e.mozMovementY||e.webkitMovementY||0;Zo.setFromQuaternion(this.camera.quaternion),Zo.y-=.002*t*this.pointerSpeed,Zo.x-=.002*n*this.pointerSpeed,Zo.x=Math.max(rl-this.maxPolarAngle,Math.min(rl-this.minPolarAngle,Zo.x)),this.camera.quaternion.setFromEuler(Zo),this.dispatchEvent(el)})),Jo(this,"onPointerlockChange",(()=>{this.domElement&&(this.domElement.ownerDocument.pointerLockElement===this.domElement?(this.dispatchEvent(tl),this.isLocked=!0):(this.dispatchEvent(nl),this.isLocked=!1))})),Jo(this,"onPointerlockError",(()=>{console.error("THREE.PointerLockControls: Unable to use Pointer Lock API")})),Jo(this,"connect",(e=>{this.domElement=e||this.domElement,this.domElement&&(this.domElement.ownerDocument.addEventListener("mousemove",this.onMouseMove),this.domElement.ownerDocument.addEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.addEventListener("pointerlockerror",this.onPointerlockError))})),Jo(this,"disconnect",(()=>{this.domElement&&(this.domElement.ownerDocument.removeEventListener("mousemove",this.onMouseMove),this.domElement.ownerDocument.removeEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.removeEventListener("pointerlockerror",this.onPointerlockError))})),Jo(this,"dispose",(()=>{this.disconnect()})),Jo(this,"getObject",(()=>this.camera)),Jo(this,"direction",new a.Vector3(0,0,-1)),Jo(this,"getDirection",(e=>e.copy(this.direction).applyQuaternion(this.camera.quaternion))),Jo(this,"moveForward",(e=>{$o.setFromMatrixColumn(this.camera.matrix,0),$o.crossVectors(this.camera.up,$o),this.camera.position.addScaledVector($o,e)})),Jo(this,"moveRight",(e=>{$o.setFromMatrixColumn(this.camera.matrix,0),this.camera.position.addScaledVector($o,e)})),Jo(this,"lock",(()=>{this.domElement&&this.domElement.requestPointerLock()})),Jo(this,"unlock",(()=>{this.domElement&&this.domElement.ownerDocument.exitPointerLock()})),this.camera=e,this.domElement=t,this.isLocked=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.pointerSpeed=1,t&&this.connect(t)}}const sl=i.forwardRef((({domElement:e,selector:t,onChange:n,onLock:s,onUnlock:a,enabled:l=!0,...c},h)=>{const{camera:u,...d}=c,p=(0,o.useThree)((({gl:e})=>e)),f=(0,o.useThree)((e=>e.camera)),m=(0,o.useThree)((e=>e.invalidate)),g=(0,o.useThree)((e=>e.raycaster)),A=(0,o.useThree)((e=>e.events)),v=u||f,y=e||A.connected||p.domElement,[x]=i.useState((()=>new il(v)));return i.useEffect((()=>{if(l){x.connect(y);const e=g.computeOffsets;return g.computeOffsets=e=>({offsetX:e.target.width/2,offsetY:e.target.height/2}),()=>{x.disconnect(),g.computeOffsets=e}}}),[l,x]),i.useEffect((()=>{const e=e=>{m(),n&&n(e)};x.addEventListener("change",e),s&&x.addEventListener("lock",s),a&&x.addEventListener("unlock",a);const r=()=>x.lock(),i=t?Array.from(document.querySelectorAll(t)):[document];return i.forEach((e=>e&&e.addEventListener("click",r))),()=>{x.removeEventListener("change",e),s&&x.addEventListener("lock",s),a&&x.addEventListener("unlock",a),i.forEach((e=>e?e.removeEventListener("click",r):void 0))}}),[n,s,a,t]),i.createElement("primitive",(0,r.Z)({ref:h,object:x},d))}));var al=Object.defineProperty,ol=(e,t,n)=>(((e,t,n)=>{t in e?al(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);const ll=new a.Vector3;class cl extends a.EventDispatcher{constructor(e,t){super(),ol(this,"object"),ol(this,"domElement"),ol(this,"enabled",!0),ol(this,"movementSpeed",1),ol(this,"lookSpeed",.005),ol(this,"lookVertical",!0),ol(this,"autoForward",!1),ol(this,"activeLook",!0),ol(this,"heightSpeed",!1),ol(this,"heightCoef",1),ol(this,"heightMin",0),ol(this,"heightMax",1),ol(this,"constrainVertical",!1),ol(this,"verticalMin",0),ol(this,"verticalMax",Math.PI),ol(this,"mouseDragOn",!1),ol(this,"autoSpeedFactor",0),ol(this,"mouseX",0),ol(this,"mouseY",0),ol(this,"moveForward",!1),ol(this,"moveBackward",!1),ol(this,"moveLeft",!1),ol(this,"moveRight",!1),ol(this,"moveUp",!1),ol(this,"moveDown",!1),ol(this,"viewHalfX",0),ol(this,"viewHalfY",0),ol(this,"lat",0),ol(this,"lon",0),ol(this,"lookDirection",new a.Vector3),ol(this,"spherical",new a.Spherical),ol(this,"target",new a.Vector3),ol(this,"connect",(e=>{e.setAttribute("tabindex","-1"),e.style.touchAction="none",e.addEventListener("contextmenu",this.contextmenu),e.addEventListener("mousemove",this.onMouseMove),e.addEventListener("mousedown",this.onMouseDown),e.addEventListener("mouseup",this.onMouseUp),this.domElement=e,window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.handleResize()})),ol(this,"dispose",(()=>{var e,t,n,r;null==(e=this.domElement)||e.removeEventListener("contextmenu",this.contextmenu),null==(t=this.domElement)||t.removeEventListener("mousedown",this.onMouseDown),null==(n=this.domElement)||n.removeEventListener("mousemove",this.onMouseMove),null==(r=this.domElement)||r.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp)})),ol(this,"handleResize",(()=>{this.domElement&&(this.viewHalfX=this.domElement.offsetWidth/2,this.viewHalfY=this.domElement.offsetHeight/2)})),ol(this,"onMouseDown",(e=>{var t;if(null==(t=this.domElement)||t.focus(),this.activeLook)switch(e.button){case 0:this.moveForward=!0;break;case 2:this.moveBackward=!0}this.mouseDragOn=!0})),ol(this,"onMouseUp",(e=>{if(this.activeLook)switch(e.button){case 0:this.moveForward=!1;break;case 2:this.moveBackward=!1}this.mouseDragOn=!1})),ol(this,"onMouseMove",(e=>{this.domElement&&(this.mouseX=e.pageX-this.domElement.offsetLeft-this.viewHalfX,this.mouseY=e.pageY-this.domElement.offsetTop-this.viewHalfY)})),ol(this,"onKeyDown",(e=>{switch(e.code){case"ArrowUp":case"KeyW":this.moveForward=!0;break;case"ArrowLeft":case"KeyA":this.moveLeft=!0;break;case"ArrowDown":case"KeyS":this.moveBackward=!0;break;case"ArrowRight":case"KeyD":this.moveRight=!0;break;case"KeyR":this.moveUp=!0;break;case"KeyF":this.moveDown=!0}})),ol(this,"onKeyUp",(e=>{switch(e.code){case"ArrowUp":case"KeyW":this.moveForward=!1;break;case"ArrowLeft":case"KeyA":this.moveLeft=!1;break;case"ArrowDown":case"KeyS":this.moveBackward=!1;break;case"ArrowRight":case"KeyD":this.moveRight=!1;break;case"KeyR":this.moveUp=!1;break;case"KeyF":this.moveDown=!1}})),ol(this,"lookAt",((e,t,n)=>(e instanceof a.Vector3?this.target.copy(e):t&&n&&this.target.set(e,t,n),this.object.lookAt(this.target),this.setOrientation(),this))),ol(this,"update",(e=>{if(!this.enabled)return;if(this.heightSpeed){const t=a.MathUtils.clamp(this.object.position.y,this.heightMin,this.heightMax)-this.heightMin;this.autoSpeedFactor=e*(t*this.heightCoef)}else this.autoSpeedFactor=0;const t=e*this.movementSpeed;(this.moveForward||this.autoForward&&!this.moveBackward)&&this.object.translateZ(-(t+this.autoSpeedFactor)),this.moveBackward&&this.object.translateZ(t),this.moveLeft&&this.object.translateX(-t),this.moveRight&&this.object.translateX(t),this.moveUp&&this.object.translateY(t),this.moveDown&&this.object.translateY(-t);let n=e*this.lookSpeed;this.activeLook||(n=0);let r=1;this.constrainVertical&&(r=Math.PI/(this.verticalMax-this.verticalMin)),this.lon-=this.mouseX*n,this.lookVertical&&(this.lat-=this.mouseY*n*r),this.lat=Math.max(-85,Math.min(85,this.lat));let i=a.MathUtils.degToRad(90-this.lat);const s=a.MathUtils.degToRad(this.lon);this.constrainVertical&&(i=a.MathUtils.mapLinear(i,0,Math.PI,this.verticalMin,this.verticalMax));const o=this.object.position;ll.setFromSphericalCoords(1,i,s).add(o),this.object.lookAt(ll)})),ol(this,"contextmenu",(e=>e.preventDefault())),ol(this,"setOrientation",(()=>{this.lookDirection.set(0,0,-1).applyQuaternion(this.object.quaternion),this.spherical.setFromVector3(this.lookDirection),this.lat=90-a.MathUtils.radToDeg(this.spherical.phi),this.lon=a.MathUtils.radToDeg(this.spherical.theta)})),this.object=e,this.domElement=t,this.setOrientation(),t&&this.connect(t)}}const hl=i.forwardRef(((e,t)=>{const n=(0,o.useThree)((e=>e.camera)),s=(0,o.useThree)((e=>e.gl)),[a]=i.useState((()=>new cl(n,s.domElement)));return(0,o.useFrame)(((e,t)=>{a.update(t)})),a?i.createElement("primitive",(0,r.Z)({ref:t,object:a},e)):null}));function ul(e,t){const n=(0,o.useThree)((e=>e.mouse)),[r]=i.useState((()=>{const r=new a.Raycaster;return t&&(0,o.applyProps)(r,t,{}),function(t,i){r.setFromCamera(n,e instanceof a.Camera?e:e.current);const s=this.constructor.prototype.raycast.bind(this);s&&s(r,i)}}));return r}const dl=i.createContext({}),pl=()=>i.useContext(dl),fl=2*Math.PI,ml=new a.Object3D,gl=new a.Matrix4,[Al,vl]=[new a.Quaternion,new a.Quaternion],yl=new a.Vector3,xl=new a.Vector3,bl=({alignment:e="bottom-right",margin:t=[80,80],renderPriority:n=0,autoClear:r=!0,onUpdate:s,onTarget:l,children:c})=>{const h=(0,o.useThree)((({size:e})=>e)),u=(0,o.useThree)((({camera:e})=>e)),d=(0,o.useThree)((({controls:e})=>e)),p=(0,o.useThree)((({gl:e})=>e)),f=(0,o.useThree)((({scene:e})=>e)),m=(0,o.useThree)((({invalidate:e})=>e)),g=i.useRef(),A=i.useRef(),v=i.useRef(null),[y]=i.useState((()=>new a.Scene)),x=i.useRef(!1),b=i.useRef(0),E=i.useRef(new a.Vector3(0,0,0)),_=i.useCallback((e=>{x.current=!0,(d||l)&&(E.current=(null==d?void 0:d.target)||(null==l?void 0:l())),b.current=u.position.distanceTo(yl),Al.copy(u.quaternion),xl.copy(e).multiplyScalar(b.current).add(yl),ml.lookAt(xl),vl.copy(ml.quaternion),m()}),[d,u,l,m]);i.useEffect((()=>(f.background&&(g.current=f.background,f.background=null,y.background=g.current),()=>{g.current&&(f.background=g.current)})),[]),(0,o.useFrame)(((e,t)=>{if(v.current&&A.current){var n;if(x.current)if(Al.angleTo(vl)<.01)x.current=!1;else{const e=t*fl;Al.rotateTowards(vl,e),u.position.set(0,0,1).applyQuaternion(Al).multiplyScalar(b.current).add(E.current),u.up.set(0,1,0).applyQuaternion(Al).normalize(),u.quaternion.copy(Al),s?s():d&&d.update(),m()}gl.copy(u.matrix).invert(),null==(n=A.current)||n.quaternion.setFromRotationMatrix(gl),r&&(p.autoClear=!1),p.clearDepth(),p.render(y,v.current)}}),n);const S=ul(v),w=i.useMemo((()=>({tweenCamera:_,raycast:S})),[_]),[M,C]=t,T=e.endsWith("-left")?-h.width/2+M:h.width/2-M,I=e.startsWith("top-")?h.height/2-C:-h.height/2+C;return(0,o.createPortal)(i.createElement(dl.Provider,{value:w},i.createElement(io,{ref:v,position:[0,0,200]}),i.createElement("group",{ref:A,position:[T,I,0]},c)),y)},El="#f0f0f0",_l="#999",Sl="black",wl="black",Ml=["Right","Left","Top","Bottom","Front","Back"],Cl=e=>new a.Vector3(...e).multiplyScalar(.38),Tl=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(Cl),Il=[.25,.25,.25],Bl=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(Cl),Rl=Bl.map((e=>e.toArray().map((e=>0==e?.5:.25)))),Pl=({hover:e,index:t,font:n="20px Inter var, Arial, sans-serif",faces:r=Ml,color:s=El,hoverColor:l=_l,textColor:c=Sl,strokeColor:h=wl,opacity:u=1})=>{const d=(0,o.useThree)((e=>e.gl)),p=i.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const i=e.getContext("2d");return i.fillStyle=s,i.fillRect(0,0,e.width,e.height),i.strokeStyle=h,i.strokeRect(0,0,e.width,e.height),i.font=n,i.textAlign="center",i.fillStyle=c,i.fillText(r[t].toUpperCase(),64,76),new a.CanvasTexture(e)}),[t,r,n,s,c,h]);return i.createElement("meshLambertMaterial",{map:p,"map-anisotropy":d.capabilities.getMaxAnisotropy()||1,attachArray:"material",color:e?l:"white",transparent:!0,opacity:u})},Dl=e=>{const{tweenCamera:t,raycast:n}=pl(),[s,a]=i.useState(null);return i.createElement("mesh",{raycast:n,onPointerOut:e=>{e.stopPropagation(),a(null)},onPointerMove:e=>{e.stopPropagation(),a(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,n)=>i.createElement(Pl,(0,r.Z)({key:n,index:n,hover:s===n},e)))),i.createElement("boxGeometry",null))},Ll=({onClick:e,dimensions:t,position:n,hoverColor:r=_l})=>{const{tweenCamera:s,raycast:a}=pl(),[o,l]=i.useState(!1);return i.createElement("mesh",{scale:1.01,position:n,raycast:a,onPointerOver:e=>{e.stopPropagation(),l(!0)},onPointerOut:e=>{e.stopPropagation(),l(!1)},onClick:e||(e=>{e.stopPropagation(),s(n)})},i.createElement("meshBasicMaterial",{color:o?r:"white",transparent:!0,opacity:.6,visible:o}),i.createElement("boxGeometry",{args:t}))},Fl=e=>i.createElement("group",{scale:[60,60,60]},i.createElement(Dl,e),Bl.map(((t,n)=>i.createElement(Ll,(0,r.Z)({key:n,position:t,dimensions:Rl[n]},e)))),Tl.map(((t,n)=>i.createElement(Ll,(0,r.Z)({key:n,position:t,dimensions:Il},e)))),i.createElement("ambientLight",{intensity:.5}),i.createElement("pointLight",{position:[10,10,10],intensity:.5}));function Ul({scale:e=[.8,.05,.05],color:t,rotation:n}){return i.createElement("group",{rotation:n},i.createElement("mesh",{position:[.4,0,0]},i.createElement("boxGeometry",{args:e}),i.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function Ol({onClick:e,font:t,disabled:n,arcStyle:s,label:l,labelColor:c,axisHeadScale:h=1,...u}){const d=(0,o.useThree)((e=>e.gl)),p=i.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const n=e.getContext("2d");return n.beginPath(),n.arc(32,32,16,0,2*Math.PI),n.closePath(),n.fillStyle=s,n.fill(),l&&(n.font=t,n.textAlign="center",n.fillStyle=c,n.fillText(l,32,41)),new a.CanvasTexture(e)}),[s,l,c,t]),[f,m]=i.useState(!1),g=(l?1:.75)*(f?1.2:1)*h;return i.createElement("sprite",(0,r.Z)({scale:g,onPointerOver:n?void 0:e=>{e.stopPropagation(),m(!0)},onPointerOut:n?void 0:e||(e=>{e.stopPropagation(),m(!1)})},u),i.createElement("spriteMaterial",{map:p,"map-anisotropy":d.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:l?1:.75,toneMapped:!1}))}const Nl=({hideNegativeAxes:e,hideAxisHeads:t,disabled:n,font:s="18px Inter var, Arial, sans-serif",axisColors:a=["#ff3653","#0adb50","#2c8fdf"],axisHeadScale:o=1,axisScale:l,labels:c=["X","Y","Z"],labelColor:h="#000",onClick:u,...d})=>{const[p,f,m]=a,{tweenCamera:g,raycast:A}=pl(),v={font:s,disabled:n,labelColor:h,raycast:A,onClick:u,axisHeadScale:o,onPointerDown:n?void 0:e=>{g(e.object.position),e.stopPropagation()}};return i.createElement("group",(0,r.Z)({scale:40},d),i.createElement(Ul,{color:p,rotation:[0,0,0],scale:l}),i.createElement(Ul,{color:f,rotation:[0,0,Math.PI/2],scale:l}),i.createElement(Ul,{color:m,rotation:[0,-Math.PI/2,0],scale:l}),!t&&i.createElement(i.Fragment,null,i.createElement(Ol,(0,r.Z)({arcStyle:p,position:[1,0,0],label:c[0]},v)),i.createElement(Ol,(0,r.Z)({arcStyle:f,position:[0,1,0],label:c[1]},v)),i.createElement(Ol,(0,r.Z)({arcStyle:m,position:[0,0,1],label:c[2]},v)),!e&&i.createElement(i.Fragment,null,i.createElement(Ol,(0,r.Z)({arcStyle:p,position:[-1,0,0]},v)),i.createElement(Ol,(0,r.Z)({arcStyle:f,position:[0,-1,0]},v)),i.createElement(Ol,(0,r.Z)({arcStyle:m,position:[0,0,-1]},v)))),i.createElement("ambientLight",{intensity:.5}),i.createElement("pointLight",{position:[10,10,10],intensity:.5}))};function kl(e,{path:t}){const[n]=(0,o.useLoader)(a.CubeTextureLoader,[e],(e=>e.setPath(t)));return n}kl.preload=(e,{path:t})=>o.useLoader.preload(a.CubeTextureLoader,[e],(e=>e.setPath(t)));var Gl=Uint8Array,zl=Uint16Array,Ql=Uint32Array,Vl=new Gl([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Hl=new Gl([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),jl=new Gl([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Wl=function(e,t){for(var n=new zl(31),r=0;r<31;++r)n[r]=t+=1<>>1|(21845&$l)<<1;ec=(61680&(ec=(52428&ec)>>>2|(13107&ec)<<2))>>>4|(3855&ec)<<4,Zl[$l]=((65280&ec)>>>8|(255&ec)<<8)>>>1}var tc=function(e,t,n){for(var r=e.length,i=0,s=new zl(t);i>>l]=c}else for(a=new zl(r),i=0;i>>15-e[i]);return a},nc=new Gl(288);for($l=0;$l<144;++$l)nc[$l]=8;for($l=144;$l<256;++$l)nc[$l]=9;for($l=256;$l<280;++$l)nc[$l]=7;for($l=280;$l<288;++$l)nc[$l]=8;var rc=new Gl(32);for($l=0;$l<32;++$l)rc[$l]=5;var ic=tc(nc,9,1),sc=tc(rc,5,1),ac=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},oc=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},lc=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},cc=function(e){return(e/8|0)+(7&e&&1)},hc=function(e,t,n){(null==t||t<0)&&(t=0),(null==n||n>e.length)&&(n=e.length);var r=new(e instanceof zl?zl:e instanceof Ql?Ql:Gl)(n-t);return r.set(e.subarray(t,n)),r},uc=function(e,t,n){var r=e.length;if(!r||n&&!n.l&&r<5)return t||new Gl(0);var i=!t||n,s=!n||n.i;n||(n={}),t||(t=new Gl(3*r));var a=function(e){var n=t.length;if(e>n){var r=new Gl(Math.max(2*n,e));r.set(t),t=r}},o=n.f||0,l=n.p||0,c=n.b||0,h=n.l,u=n.d,d=n.m,p=n.n,f=8*r;do{if(!h){n.f=o=oc(e,l,1);var m=oc(e,l+1,3);if(l+=3,!m){var g=e[(C=cc(l)+4)-4]|e[C-3]<<8,A=C+g;if(A>r){if(s)throw"unexpected EOF";break}i&&a(c+g),t.set(e.subarray(C,A),c),n.b=c+=g,n.p=l=8*A;continue}if(1==m)h=ic,u=sc,d=9,p=5;else{if(2!=m)throw"invalid block type";var v=oc(e,l,31)+257,y=oc(e,l+10,15)+4,x=v+oc(e,l+5,31)+1;l+=14;for(var b=new Gl(x),E=new Gl(19),_=0;_>>4)<16)b[_++]=C;else{var I=0,B=0;for(16==C?(B=3+oc(e,l,3),l+=2,I=b[_-1]):17==C?(B=3+oc(e,l,7),l+=3):18==C&&(B=11+oc(e,l,127),l+=7);B--;)b[_++]=I}}var R=b.subarray(0,v),P=b.subarray(v);d=ac(R),p=ac(P),h=tc(R,d,1),u=tc(P,p,1)}if(l>f){if(s)throw"unexpected EOF";break}}i&&a(c+131072);for(var D=(1<>>4;if((l+=15&I)>f){if(s)throw"unexpected EOF";break}if(!I)throw"invalid length/literal";if(U<256)t[c++]=U;else{if(256==U){F=l,h=null;break}var O=U-254;if(U>264){var N=Vl[_=U-257];O=oc(e,l,(1<>>4;if(!k)throw"invalid distance";l+=15&k;P=Jl[G];if(G>3){N=Hl[G];P+=lc(e,l)&(1<f){if(s)throw"unexpected EOF";break}i&&a(c+131072);for(var z=c+O;c>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function fc(e,t){return uc((pc(e),e.subarray(2,-4)),t)}var mc="undefined"!=typeof TextDecoder&&new TextDecoder;try{mc.decode(dc,{stream:!0}),1}catch(za){}function gc(e,t,n){const r=n.length-e-1;if(t>=n[r])return r-1;if(t<=n[e])return e;let i=e,s=r,a=Math.floor((i+s)/2);for(;t=n[a+1];)t=s&&(i[t][0]=i[e][0]/o[c+1][l],r=i[t][0]*o[l][c]);const h=u-1<=c?s-1:n-u;for(let n=l>=-1?1:-l;n<=h;++n)i[t][n]=(i[e][n]-i[e][n-1])/o[c+1][l+n],r+=i[t][n]*o[l+n][c];u<=c&&(i[t][s]=-i[e][s-1]/o[c+1][u],r+=i[t][s]*o[u][c]),a[s][u]=r;const d=e;e=t,t=d}}let h=n;for(let u=1;u<=r;++u){for(let e=0;e<=n;++e)a[u][e]*=h;h*=n-u}return a}(l,r,e,s,t),h=[];for(let a=0;a=t.length&&t===zc(e,0,t.length)}(e))bc=(new Ic).parse(e);else{const t=zc(e);if(!function(e){const t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"];let n=0;function r(t){const r=e[t-1];return e=e.slice(n+t),n++,r}for(let i=0;i0,s="string"==typeof i.Content&&""!==i.Content;if(e||s){const e=this.parseImage(n[r]);t[i.RelativeFilename||i.Filename]=e}}}}for(const n in e){const r=e[n];void 0!==t[r]?e[n]=t[r]:e[n]=e[n].split("\\").pop()}return e}parseImage(e){const t=e.Content,n=e.RelativeFilename||e.Filename,r=n.slice(n.lastIndexOf(".")+1).toLowerCase();let i;switch(r){case"bmp":i="image/bmp";break;case"jpg":case"jpeg":i="image/jpeg";break;case"png":i="image/png";break;case"tif":i="image/tiff";break;case"tga":null===this.manager.getHandler(".tga")&&console.warn("FBXLoader: TGA loader not found, skipping ",n),i="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+r+'" is not supported.')}if("string"==typeof t)return"data:"+i+";base64,"+t;{const e=new Uint8Array(t);return window.URL.createObjectURL(new Blob([e],{type:i}))}}parseTextures(e){const t=new Map;if("Texture"in bc.Objects){const n=bc.Objects.Texture;for(const r in n){const i=this.parseTexture(n[r],e);t.set(parseInt(r),i)}}return t}parseTexture(e,t){const n=this.loadTexture(e,t);n.ID=e.id,n.name=e.attrName;const r=e.WrapModeU,i=e.WrapModeV,s=void 0!==r?r.value:0,o=void 0!==i?i.value:0;if(n.wrapS=0===s?a.RepeatWrapping:a.ClampToEdgeWrapping,n.wrapT=0===o?a.RepeatWrapping:a.ClampToEdgeWrapping,"Scaling"in e){const t=e.Scaling.value;n.repeat.x=t[0],n.repeat.y=t[1]}return n}loadTexture(e,t){let n;const r=this.textureLoader.path,i=Ec.get(e.id).children;let s;void 0!==i&&i.length>0&&void 0!==t[i[0].ID]&&(n=t[i[0].ID],0!==n.indexOf("blob:")&&0!==n.indexOf("data:")||this.textureLoader.setPath(void 0));const o=e.FileName.slice(-3).toLowerCase();if("tga"===o){const t=this.manager.getHandler(".tga");null===t?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",e.RelativeFilename),s=new a.Texture):(t.setPath(this.textureLoader.path),s=t.load(n))}else"psd"===o?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",e.RelativeFilename),s=new a.Texture):s=this.textureLoader.load(n);return this.textureLoader.setPath(r),s}parseMaterials(e){const t=new Map;if("Material"in bc.Objects){const n=bc.Objects.Material;for(const r in n){const i=this.parseMaterial(n[r],e);null!==i&&t.set(parseInt(r),i)}}return t}parseMaterial(e,t){const n=e.id,r=e.attrName;let i=e.ShadingModel;if("object"==typeof i&&(i=i.value),!Ec.has(n))return null;const s=this.parseParameters(e,t,n);let o;switch(i.toLowerCase()){case"phong":o=new a.MeshPhongMaterial;break;case"lambert":o=new a.MeshLambertMaterial;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',i),o=new a.MeshPhongMaterial}return o.setValues(s),o.name=r,o}parseParameters(e,t,n){const r={};e.BumpFactor&&(r.bumpScale=e.BumpFactor.value),e.Diffuse?r.color=(new a.Color).fromArray(e.Diffuse.value):!e.DiffuseColor||"Color"!==e.DiffuseColor.type&&"ColorRGB"!==e.DiffuseColor.type||(r.color=(new a.Color).fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(r.displacementScale=e.DisplacementFactor.value),e.Emissive?r.emissive=(new a.Color).fromArray(e.Emissive.value):!e.EmissiveColor||"Color"!==e.EmissiveColor.type&&"ColorRGB"!==e.EmissiveColor.type||(r.emissive=(new a.Color).fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(r.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(r.opacity=parseFloat(e.Opacity.value)),r.opacity<1&&(r.transparent=!0),e.ReflectionFactor&&(r.reflectivity=e.ReflectionFactor.value),e.Shininess&&(r.shininess=e.Shininess.value),e.Specular?r.specular=(new a.Color).fromArray(e.Specular.value):e.SpecularColor&&"Color"===e.SpecularColor.type&&(r.specular=(new a.Color).fromArray(e.SpecularColor.value));const i=this;return Ec.get(n).children.forEach((function(e){const n=e.relationship;switch(n){case"Bump":r.bumpMap=i.getTexture(t,e.ID);break;case"Maya|TEX_ao_map":r.aoMap=i.getTexture(t,e.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":r.map=i.getTexture(t,e.ID),void 0!==r.map&&("colorSpace"in r.map?r.map.colorSpace="srgb":r.map.encoding=3001);break;case"DisplacementColor":r.displacementMap=i.getTexture(t,e.ID);break;case"EmissiveColor":r.emissiveMap=i.getTexture(t,e.ID),void 0!==r.emissiveMap&&("colorSpace"in r.emissiveMap?r.emissiveMap.colorSpace="srgb":r.emissiveMap.encoding=3001);break;case"NormalMap":case"Maya|TEX_normal_map":r.normalMap=i.getTexture(t,e.ID);break;case"ReflectionColor":r.envMap=i.getTexture(t,e.ID),void 0!==r.envMap&&(r.envMap.mapping=a.EquirectangularReflectionMapping,"colorSpace"in r.envMap?r.envMap.colorSpace="srgb":r.envMap.encoding=3001);break;case"SpecularColor":r.specularMap=i.getTexture(t,e.ID),void 0!==r.specularMap&&("colorSpace"in r.specularMap?r.specularMap.colorSpace="srgb":r.specularMap.encoding=3001);break;case"TransparentColor":case"TransparencyFactor":r.alphaMap=i.getTexture(t,e.ID),r.transparent=!0;break;default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",n)}})),r}getTexture(e,t){return"LayeredTexture"in bc.Objects&&t in bc.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=Ec.get(t).children[0].ID),e.get(t)}parseDeformers(){const e={},t={};if("Deformer"in bc.Objects){const n=bc.Objects.Deformer;for(const r in n){const i=n[r],s=Ec.get(parseInt(r));if("Skin"===i.attrType){const t=this.parseSkeleton(s,n);t.ID=r,s.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),t.geometryID=s.parents[0].ID,e[r]=t}else if("BlendShape"===i.attrType){const e={id:r};e.rawTargets=this.parseMorphTargets(s,n),e.id=r,s.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[r]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){const n=[];return e.children.forEach((function(e){const r=t[e.ID];if("Cluster"!==r.attrType)return;const i={ID:e.ID,indices:[],weights:[],transformLink:(new a.Matrix4).fromArray(r.TransformLink.a)};"Indexes"in r&&(i.indices=r.Indexes.a,i.weights=r.Weights.a),n.push(i)})),{rawBones:n,bones:[]}}parseMorphTargets(e,t){const n=[];for(let r=0;r1?s=o:o.length>0?s=o[0]:(s=new a.MeshPhongMaterial({color:13421772}),o.push(s)),"color"in i.attributes&&o.forEach((function(e){e.vertexColors=!0})),i.FBX_Deformer?(r=new a.SkinnedMesh(i,s),r.normalizeSkinWeights()):r=new a.Mesh(i,s),r}createCurve(e,t){const n=e.children.reduce((function(e,n){return t.has(n.ID)&&(e=t.get(n.ID)),e}),null),r=new a.LineBasicMaterial({color:3342591,linewidth:1});return new a.Line(n,r)}getTransformData(e,t){const n={};"InheritType"in t&&(n.inheritType=parseInt(t.InheritType.value)),n.eulerOrder="RotationOrder"in t?kc(t.RotationOrder.value):"ZYX","Lcl_Translation"in t&&(n.translation=t.Lcl_Translation.value),"PreRotation"in t&&(n.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(n.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(n.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(n.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(n.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(n.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(n.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(n.rotationPivot=t.RotationPivot.value),e.userData.transformData=n}setLookAtProperties(e,t){if("LookAtProperty"in t){Ec.get(e.ID).children.forEach((function(t){if("LookAtProperty"===t.relationship){const n=bc.Objects.Model[t.ID];if("Lcl_Translation"in n){const t=n.Lcl_Translation.value;void 0!==e.target?(e.target.position.fromArray(t),_c.add(e.target)):e.lookAt((new a.Vector3).fromArray(t))}}}))}}bindSkeleton(e,t,n){const r=this.parsePoseNodes();for(const i in e){const s=e[i];Ec.get(parseInt(s.ID)).parents.forEach((function(e){if(t.has(e.ID)){const t=e.ID;Ec.get(t).parents.forEach((function(e){if(n.has(e.ID)){n.get(e.ID).bind(new a.Skeleton(s.bones),r[e.ID])}}))}}))}}parsePoseNodes(){const e={};if("Pose"in bc.Objects){const t=bc.Objects.Pose;for(const n in t)if("BindPose"===t[n].attrType&&t[n].NbPoseNodes>0){const r=t[n].PoseNode;Array.isArray(r)?r.forEach((function(t){e[t.Node]=(new a.Matrix4).fromArray(t.Matrix.a)})):e[r.Node]=(new a.Matrix4).fromArray(r.Matrix.a)}}return e}createAmbientLight(){if("GlobalSettings"in bc&&"AmbientColor"in bc.GlobalSettings){const e=bc.GlobalSettings.AmbientColor.value,t=e[0],n=e[1],r=e[2];if(0!==t||0!==n||0!==r){const e=new a.Color(t,n,r);_c.add(new a.AmbientLight(e,1))}}}}class Mc{parse(e){const t=new Map;if("Geometry"in bc.Objects){const n=bc.Objects.Geometry;for(const r in n){const i=Ec.get(parseInt(r)),s=this.parseGeometry(i,n[r],e);t.set(parseInt(r),s)}}return t}parseGeometry(e,t,n){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,n);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,n){const r=n.skeletons,i=[],s=e.parents.map((function(e){return bc.Objects.Model[e.ID]}));if(0===s.length)return;const a=e.children.reduce((function(e,t){return void 0!==r[t.ID]&&(e=r[t.ID]),e}),null);e.children.forEach((function(e){void 0!==n.morphTargets[e.ID]&&i.push(n.morphTargets[e.ID])}));const o=s[0],l={};"RotationOrder"in o&&(l.eulerOrder=kc(o.RotationOrder.value)),"InheritType"in o&&(l.inheritType=parseInt(o.InheritType.value)),"GeometricTranslation"in o&&(l.translation=o.GeometricTranslation.value),"GeometricRotation"in o&&(l.rotation=o.GeometricRotation.value),"GeometricScaling"in o&&(l.scale=o.GeometricScaling.value);const c=Nc(l);return this.genGeometry(t,a,i,c)}genGeometry(e,t,n,r){const i=new a.BufferGeometry;e.attrName&&(i.name=e.attrName);const s=this.parseGeoNode(e,t),o=this.genBuffers(s),l=new a.Float32BufferAttribute(o.vertex,3);if(l.applyMatrix4(r),i.setAttribute("position",l),o.colors.length>0&&i.setAttribute("color",new a.Float32BufferAttribute(o.colors,3)),t&&(i.setAttribute("skinIndex",new a.Uint16BufferAttribute(o.weightsIndices,4)),i.setAttribute("skinWeight",new a.Float32BufferAttribute(o.vertexWeights,4)),i.FBX_Deformer=t),o.normal.length>0){const e=(new a.Matrix3).getNormalMatrix(r),t=new a.Float32BufferAttribute(o.normal,3);t.applyNormalMatrix(e),i.setAttribute("normal",t)}if(o.uvs.forEach((function(e,t){let n="uv"+(t+1).toString();0===t&&(n="uv"),i.setAttribute(n,new a.Float32BufferAttribute(o.uvs[t],2))})),s.material&&"AllSame"!==s.material.mappingType){let e=o.materialIndex[0],t=0;if(o.materialIndex.forEach((function(n,r){n!==e&&(i.addGroup(t,r-t,e),e=n,t=r)})),i.groups.length>0){const t=i.groups[i.groups.length-1],n=t.start+t.count;n!==o.materialIndex.length&&i.addGroup(n,o.materialIndex.length-n,e)}0===i.groups.length&&i.addGroup(0,o.materialIndex.length,o.materialIndex[0])}return this.addMorphTargets(i,e,n,r),i}parseGeoNode(e,t){const n={};if(n.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],n.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(n.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(n.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(n.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){n.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&n.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return n.weightTable={},null!==t&&(n.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(r,i){void 0===n.weightTable[r]&&(n.weightTable[r]=[]),n.weightTable[r].push({id:t,weight:e.weights[i]})}))}))),n}genBuffers(e){const t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]};let n=0,r=0,i=!1,s=[],a=[],o=[],l=[],c=[],h=[];const u=this;return e.vertexIndices.forEach((function(d,p){let f,m=!1;d<0&&(d^=-1,m=!0);let g=[],A=[];if(s.push(3*d,3*d+1,3*d+2),e.color){const t=Fc(p,n,d,e.color);o.push(t[0],t[1],t[2])}if(e.skeleton){if(void 0!==e.weightTable[d]&&e.weightTable[d].forEach((function(e){A.push(e.weight),g.push(e.id)})),A.length>4){i||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),i=!0);const e=[0,0,0,0],t=[0,0,0,0];A.forEach((function(n,r){let i=n,s=g[r];t.forEach((function(t,n,r){if(i>t){r[n]=i,i=t;const a=e[n];e[n]=s,s=a}}))})),g=e,A=t}for(;A.length<4;)A.push(0),g.push(0);for(let e=0;e<4;++e)c.push(A[e]),h.push(g[e])}if(e.normal){const t=Fc(p,n,d,e.normal);a.push(t[0],t[1],t[2])}e.material&&"AllSame"!==e.material.mappingType&&(f=Fc(p,n,d,e.material)[0]),e.uv&&e.uv.forEach((function(e,t){const r=Fc(p,n,d,e);void 0===l[t]&&(l[t]=[]),l[t].push(r[0]),l[t].push(r[1])})),r++,m&&(u.genFace(t,e,s,f,a,o,l,c,h,r),n++,r=0,s=[],a=[],o=[],l=[],c=[],h=[])})),t}genFace(e,t,n,r,i,s,a,o,l,c){for(let h=2;h1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");const s=e.get(i[0].ID);n[r]={name:t[r].attrName,layer:s}}return n}addClip(e){let t=[];const n=this;return e.layer.forEach((function(e){t=t.concat(n.generateTracks(e))})),new a.AnimationClip(e.name,-1,t)}generateTracks(e){const t=[];let n=new a.Vector3,r=new a.Quaternion,i=new a.Vector3;if(e.transform&&e.transform.decompose(n,r,i),n=n.toArray(),r=(new a.Euler).setFromQuaternion(r,e.eulerOrder).toArray(),i=i.toArray(),void 0!==e.T&&Object.keys(e.T.curves).length>0){const r=this.generateVectorTrack(e.modelName,e.T.curves,n,"position");void 0!==r&&t.push(r)}if(void 0!==e.R&&Object.keys(e.R.curves).length>0){const n=this.generateRotationTrack(e.modelName,e.R.curves,r,e.preRotation,e.postRotation,e.eulerOrder);void 0!==n&&t.push(n)}if(void 0!==e.S&&Object.keys(e.S.curves).length>0){const n=this.generateVectorTrack(e.modelName,e.S.curves,i,"scale");void 0!==n&&t.push(n)}if(void 0!==e.DeformPercent){const n=this.generateMorphTrack(e);void 0!==n&&t.push(n)}return t}generateVectorTrack(e,t,n,r){const i=this.getTimesForAllAxes(t),s=this.getKeyframeTrackValues(i,t,n);return new a.VectorKeyframeTrack(e+"."+r,i,s)}generateRotationTrack(e,t,n,r,i,s){void 0!==t.x&&(this.interpolateRotations(t.x),t.x.values=t.x.values.map(a.MathUtils.degToRad)),void 0!==t.y&&(this.interpolateRotations(t.y),t.y.values=t.y.values.map(a.MathUtils.degToRad)),void 0!==t.z&&(this.interpolateRotations(t.z),t.z.values=t.z.values.map(a.MathUtils.degToRad));const o=this.getTimesForAllAxes(t),l=this.getKeyframeTrackValues(o,t,n);void 0!==r&&((r=r.map(a.MathUtils.degToRad)).push(s),r=(new a.Euler).fromArray(r),r=(new a.Quaternion).setFromEuler(r)),void 0!==i&&((i=i.map(a.MathUtils.degToRad)).push(s),i=(new a.Euler).fromArray(i),i=(new a.Quaternion).setFromEuler(i).invert());const c=new a.Quaternion,h=new a.Euler,u=[];for(let a=0;a1){let e=1,n=t[0];for(let r=1;r=180){const s=i/180,a=r/s;let o=n+a;const l=e.times[t-1],c=(e.times[t]-l)/s;let h=l+c;const u=[],d=[];for(;h1&&(n=e[1].replace(/^(\w+)::/,""),r=e[2]),{id:t,name:n,type:r}}parseNodeProperty(e,t,n){let r=t[1].replace(/^"/,"").replace(/"$/,"").trim(),i=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===r&&","===i&&(i=n.replace(/"/g,"").replace(/,$/,"").trim());const s=this.getCurrentNode();if("Properties70"!==s.name){if("C"===r){const e=i.split(",").slice(1),t=parseInt(e[0]),n=parseInt(e[1]);let a=i.split(",").slice(3);a=a.map((function(e){return e.trim().replace(/^"/,"")})),r="connections",i=[t,n],function(e,t){for(let n=0,r=e.length,i=t.length;n=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){const n={},r=t>=7500?e.getUint64():e.getUint32(),i=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();const s=e.getUint8(),a=e.getString(s);if(0===r)return null;const o=[];for(let u=0;u0?o[0]:"",c=o.length>1?o[1]:"",h=o.length>2?o[2]:"";for(n.singleProperty=1===i&&e.getOffset()===r;r>e.getOffset();){const r=this.parseNode(e,t);null!==r&&this.parseSubNode(a,n,r)}return n.propertyList=o,"number"==typeof l&&(n.id=l),""!==c&&(n.attrName=c),""!==h&&(n.attrType=h),""!==a&&(n.name=a),n}parseSubNode(e,t,n){if(!0===n.singleProperty){const e=n.propertyList[0];Array.isArray(e)?(t[n.name]=n,n.a=e):t[n.name]=e}else if("Connections"===e&&"C"===n.name){const e=[];n.propertyList.forEach((function(t,n){0!==n&&e.push(t)})),void 0===t.connections&&(t.connections=[]),t.connections.push(e)}else if("Properties70"===n.name){Object.keys(n).forEach((function(e){t[e]=n[e]}))}else if("Properties70"===e&&"P"===n.name){let e=n.propertyList[0],r=n.propertyList[1];const i=n.propertyList[2],s=n.propertyList[3];let a;0===e.indexOf("Lcl ")&&(e=e.replace("Lcl ","Lcl_")),0===r.indexOf("Lcl ")&&(r=r.replace("Lcl ","Lcl_")),a="Color"===r||"ColorRGB"===r||"Vector"===r||"Vector3D"===r||0===r.indexOf("Lcl_")?[n.propertyList[4],n.propertyList[5],n.propertyList[6]]:n.propertyList[4],t[e]={type:r,type2:i,flag:s,value:a}}else void 0===t[n.name]?"number"==typeof n.id?(t[n.name]={},t[n.name][n.id]=n):t[n.name]=n:"PoseNode"===n.name?(Array.isArray(t[n.name])||(t[n.name]=[t[n.name]]),t[n.name].push(n)):void 0===t[n.name][n.id]&&(t[n.name][n.id]=n)}parseProperty(e){const t=e.getString(1);let n;switch(t){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return n=e.getUint32(),e.getArrayBuffer(n);case"S":return n=e.getUint32(),e.getString(n);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":const r=e.getUint32(),i=e.getUint32(),s=e.getUint32();if(0===i)switch(t){case"b":case"c":return e.getBooleanArray(r);case"d":return e.getFloat64Array(r);case"f":return e.getFloat32Array(r);case"i":return e.getInt32Array(r);case"l":return e.getInt64Array(r)}const a=fc(new Uint8Array(e.getArrayBuffer(s))),o=new Bc(a.buffer);switch(t){case"b":case"c":return o.getBooleanArray(r);case"d":return o.getFloat64Array(r);case"f":return o.getFloat32Array(r);case"i":return o.getInt32Array(r);case"l":return o.getInt64Array(r)}default:throw new Error("THREE.FBXLoader: Unknown property type "+t)}}}class Bc{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return 1==(1&this.getUint8())}getBooleanArray(e){const t=[];for(let n=0;n=0&&(t=t.slice(0,n)),a.LoaderUtils.decodeText(new Uint8Array(t))}}class Rc{add(e,t){this[e]=t}}function Pc(e){const t=e.match(/FBXVersion: (\d+)/);if(t){return parseInt(t[1])}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function Dc(e){return e/46186158e3}const Lc=[];function Fc(e,t,n,r){let i;switch(r.mappingType){case"ByPolygonVertex":i=e;break;case"ByPolygon":i=t;break;case"ByVertice":i=n;break;case"AllSame":i=r.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+r.mappingType)}"IndexToDirect"===r.referenceType&&(i=r.indices[i]);const s=i*r.dataSize,a=s+r.dataSize;return function(e,t,n,r){for(let i=n,s=0;io.useLoader.preload(Sc,e),Vc.clear=e=>o.useLoader.clear(Sc,e);const Hc=new WeakMap;class jc extends a.Loader{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,n,r){const i=new a.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{const n={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,n).then(t).catch(r)}),n,r)}decodeDracoFile(e,t,n,r){const i={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(const o in t.attributeTypes){const e=t.attributeTypes[o];void 0!==e.BYTES_PER_ELEMENT&&(t.attributeTypes[o]=e.name)}const n=JSON.stringify(t);if(Hc.has(e)){const t=Hc.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let r;const i=this.workerNextTaskID++,s=e.byteLength,a=this._getWorker(i,s).then((n=>(r=n,new Promise(((n,s)=>{r._callbacks[i]={resolve:n,reject:s},r.postMessage({type:"decode",id:i,taskConfig:t,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return a.catch((()=>!0)).then((()=>{r&&i&&this._releaseTask(r,i)})),Hc.set(e,{key:n,promise:a}),a}_createGeometry(e){const t=new a.BufferGeometry;e.index&&t.setIndex(new a.BufferAttribute(e.index.array,1));for(let n=0;n{n.load(e,t,void 0,r)}))}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{const n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const r=Wc.toString(),i=["/* draco decoder */",n,"","/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i]))})),this.decoderPending}_getWorker(e,t){return this._initDecoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));const n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}dispose(){for(let e=0;e{const t=e.draco,a=new t.Decoder,o=new t.DecoderBuffer;o.Init(new Int8Array(r),r.byteLength);try{const e=function(e,t,r,i){const s=i.attributeIDs,a=i.attributeTypes;let o,l;const c=t.GetEncodedGeometryType(r);if(c===e.TRIANGULAR_MESH)o=new e.Mesh,l=t.DecodeBufferToMesh(r,o);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");o=new e.PointCloud,l=t.DecodeBufferToPointCloud(r,o)}if(!l.ok()||0===o.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const h={index:null,attributes:[]};for(const u in s){const r=self[a[u]];let l,c;if(i.useUniqueIDs)c=s[u],l=t.GetAttributeByUniqueId(o,c);else{if(c=t.GetAttributeId(o,e[s[u]]),-1===c)continue;l=t.GetAttribute(o,c)}h.attributes.push(n(e,t,o,u,r,l))}c===e.TRIANGULAR_MESH&&(h.index=function(e,t,n){const r=n.num_faces(),i=3*r,s=4*i,a=e._malloc(s);t.GetTrianglesUInt32Array(n,s,a);const o=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:o,itemSize:1}}(e,t,o));return e.destroy(o),h}(t,a,o,s),r=e.attributes.map((e=>e.array.buffer));e.index&&r.push(e.index.array.buffer),self.postMessage({type:"decode",id:i.id,geometry:e},r)}catch(l){console.error(l),self.postMessage({type:"error",id:i.id,error:l.message})}finally{t.destroy(o),t.destroy(a)}}))}}}let Xc;const Yc=()=>{if(Xc)return Xc;const e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if("object"!=typeof WebAssembly)return{supported:!1};let n,r="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";WebAssembly.validate(e)&&(r="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");const i=WebAssembly.instantiate(function(e){const n=new Uint8Array(e.length);for(let t=0;t96?r-71:r>64?r-65:r>47?r+4:r>46?63:62}let r=0;for(let i=0;i{n=e.instance,n.exports.__wasm_call_ctors()}));function s(e,t,r,i,s,a){const o=n.exports.sbrk,l=r+3&-4,c=o(l*i),h=o(s.length),u=new Uint8Array(n.exports.memory.buffer);u.set(s,h);const d=e(c,r,i,h,s.length);if(0===d&&a&&a(c,l,i),t.set(u.subarray(c,c+r*i)),o(c-o(0)),0!==d)throw new Error(`Malformed buffer data: ${d}`)}const a={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},o={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return Xc={ready:i,supported:!0,decodeVertexBuffer(e,t,r,i,o){s(n.exports.meshopt_decodeVertexBuffer,e,t,r,i,n.exports[a[o]])},decodeIndexBuffer(e,t,r,i){s(n.exports.meshopt_decodeIndexBuffer,e,t,r,i)},decodeIndexSequence(e,t,r,i){s(n.exports.meshopt_decodeIndexSequence,e,t,r,i)},decodeGltfBuffer(e,t,r,i,l,c){s(n.exports[o[l]],e,t,r,i,n.exports[a[c]])}},Xc};function qc(e,t){if(t===a.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t===a.TriangleFanDrawMode||t===a.TriangleStripDrawMode){let n=e.getIndex();if(null===n){const t=[],r=e.getAttribute("position");if(void 0===r)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e=2.0 are supported.")));const l=new Hh(i,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let a=0;a=0&&void 0===o[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}l.setExtensions(s),l.setPlugins(o),l.parse(n,r)}parseAsync(e,t){const n=this;return new Promise((function(r,i){n.parse(e,t,r,i)}))}}function Zc(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const $c={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class eh{constructor(e){this.parser=e,this.name=$c.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let n=0,r=t.length;n=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,i.source,s)}}class dh{constructor(e){this.parser=e,this.name=$c.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;const s=i.extensions[t],a=r.images[s.source];let o=n.textureLoader;if(a.uri){const e=n.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(i){if(i)return n.loadTextureImage(e,s.source,o);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class ph{constructor(e){this.parser=e,this.name=$c.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;const s=i.extensions[t],a=r.images[s.source];let o=n.textureLoader;if(a.uri){const e=n.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(i){if(i)return n.loadTextureImage(e,s.source,o);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class fh{constructor(e){this.name=$c.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){const e=n.extensions[this.name],r=this.parser.getDependency("buffer",e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then((function(t){const n=e.byteOffset||0,r=e.byteLength||0,s=e.count,a=e.byteStride,o=new Uint8Array(t,n,r);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(s,a,o,e.mode,e.filter).then((function(e){return e.buffer})):i.ready.then((function(){const t=new ArrayBuffer(s*a);return i.decodeGltfBuffer(new Uint8Array(t),s,a,o,e.mode,e.filter),t}))}))}return null}}class mh{constructor(e){this.name=$c.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;const r=t.meshes[n.mesh];for(const a of r.primitives)if(a.mode!==Mh.TRIANGLES&&a.mode!==Mh.TRIANGLE_STRIP&&a.mode!==Mh.TRIANGLE_FAN&&void 0!==a.mode)return null;const i=n.extensions[this.name].attributes,s=[],o={};for(const a in i)s.push(this.parser.getDependency("accessor",i[a]).then((e=>(o[a]=e,o[a]))));return s.length<1?null:(s.push(this.parser.createNodeMesh(e)),Promise.all(s).then((e=>{const t=e.pop(),n=t.isGroup?t.children:[t],r=e[0].count,i=[];for(const s of n){const e=new a.Matrix4,t=new a.Vector3,n=new a.Quaternion,l=new a.Vector3(1,1,1),c=new a.InstancedMesh(s.geometry,s.material,r);for(let i=0;i=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Ph={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Dh={CUBICSPLINE:void 0,LINEAR:a.InterpolateLinear,STEP:a.InterpolateDiscrete},Lh="OPAQUE",Fh="MASK",Uh="BLEND";function Oh(e,t,n){for(const r in n.extensions)void 0===e[r]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=n.extensions[r])}function Nh(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function kh(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let n=0,r=t.weights.length;n-1,i=r?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||n||r&&i<98?this.textureLoader=new a.TextureLoader(this.options.manager):this.textureLoader=new a.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new a.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const n=this,r=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])})).then((function(t){const s={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:n,userData:{}};Oh(i,s,r),Nh(s,r),Promise.all(n._invokeAll((function(e){return e.afterRoot&&e.afterRoot(s)}))).then((function(){e(s)}))})).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let r=0,i=t.length;r{const n=this.associations.get(e);null!=n&&this.associations.set(t,n);for(const[r,s]of e.children.entries())i(s,t.children[r])};return i(n,r),r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let n=0;n=2&&f.setY(t,u[e*s+1]),s>=3&&f.setZ(t,u[e*s+2]),s>=4&&f.setW(t,u[e*s+3]),s>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return f}))}loadTexture(e){const t=this.json,n=this.options,r=t.textures[e].source,i=t.images[r];let s=this.textureLoader;if(i.uri){const e=n.manager.getHandler(i.uri);null!==e&&(s=e)}return this.loadTextureImage(e,r,s)}loadTextureImage(e,t,n){const r=this,i=this.json,s=i.textures[e],o=i.images[t],l=(o.uri||o.bufferView)+":"+s.sampler;if(this.textureCache[l])return this.textureCache[l];const c=this.loadImageSource(t,n).then((function(t){t.flipY=!1,t.name=s.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);const n=(i.samplers||{})[s.sampler]||{};return t.magFilter=Th[n.magFilter]||a.LinearFilter,t.minFilter=Th[n.minFilter]||a.LinearMipmapLinearFilter,t.wrapS=Ih[n.wrapS]||a.RepeatWrapping,t.wrapT=Ih[n.wrapT]||a.RepeatWrapping,r.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[l]=c,c}loadImageSource(e,t){const n=this,r=this.json,i=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const s=r.images[e],o=self.URL||self.webkitURL;let l=s.uri||"",c=!1;if(void 0!==s.bufferView)l=n.getDependency("bufferView",s.bufferView).then((function(e){c=!0;const t=new Blob([e],{type:s.mimeType});return l=o.createObjectURL(t),l}));else if(void 0===s.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const h=Promise.resolve(l).then((function(e){return new Promise((function(n,r){let s=n;!0===t.isImageBitmapLoader&&(s=function(e){const t=new a.Texture(e);t.needsUpdate=!0,n(t)}),t.load(a.LoaderUtils.resolveURL(e,i.path),s,void 0,r)}))})).then((function(e){var t;return!0===c&&o.revokeObjectURL(l),e.userData.mimeType=s.mimeType||((t=s.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",l),e}));return this.sourceCache[e]=h,h}assignTexture(e,t,n,r){const i=this;return this.getDependency("texture",n.index).then((function(s){if(!s)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((s=s.clone()).channel=n.texCoord),i.extensions[$c.KHR_TEXTURE_TRANSFORM]){const e=void 0!==n.extensions?n.extensions[$c.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=i.associations.get(s);s=i.extensions[$c.KHR_TEXTURE_TRANSFORM].extendTexture(s,e),i.associations.set(s,t)}}return void 0!==r&&("colorSpace"in s?s.colorSpace=3001===r?"srgb":"srgb-linear":s.encoding=r),e[t]=s,s}))}assignFinalMaterial(e){const t=e.geometry;let n=e.material;const r=void 0===t.attributes.tangent,i=void 0!==t.attributes.color,s=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new a.PointsMaterial,a.Material.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){const e="LineBasicMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new a.LineBasicMaterial,a.Material.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(r||i||s){let e="ClonedMaterial:"+n.uuid+":";r&&(e+="derivative-tangents:"),i&&(e+="vertex-colors:"),s&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=n.clone(),i&&(t.vertexColors=!0),s&&(t.flatShading=!0),r&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return a.MeshStandardMaterial}loadMaterial(e){const t=this,n=this.json,r=this.extensions,i=n.materials[e];let s;const o={},l=[];if((i.extensions||{})[$c.KHR_MATERIALS_UNLIT]){const e=r[$c.KHR_MATERIALS_UNLIT];s=e.getMaterialType(),l.push(e.extendParams(o,i,t))}else{const n=i.pbrMetallicRoughness||{};if(o.color=new a.Color(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){const e=n.baseColorFactor;o.color.fromArray(e),o.opacity=e[3]}void 0!==n.baseColorTexture&&l.push(t.assignTexture(o,"map",n.baseColorTexture,3001)),o.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,o.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(l.push(t.assignTexture(o,"metalnessMap",n.metallicRoughnessTexture)),l.push(t.assignTexture(o,"roughnessMap",n.metallicRoughnessTexture))),s=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),l.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)}))))}!0===i.doubleSided&&(o.side=a.DoubleSide);const c=i.alphaMode||Lh;if(c===Uh?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===Fh&&(o.alphaTest=void 0!==i.alphaCutoff?i.alphaCutoff:.5)),void 0!==i.normalTexture&&s!==a.MeshBasicMaterial&&(l.push(t.assignTexture(o,"normalMap",i.normalTexture)),o.normalScale=new a.Vector2(1,1),void 0!==i.normalTexture.scale)){const e=i.normalTexture.scale;o.normalScale.set(e,e)}return void 0!==i.occlusionTexture&&s!==a.MeshBasicMaterial&&(l.push(t.assignTexture(o,"aoMap",i.occlusionTexture)),void 0!==i.occlusionTexture.strength&&(o.aoMapIntensity=i.occlusionTexture.strength)),void 0!==i.emissiveFactor&&s!==a.MeshBasicMaterial&&(o.emissive=(new a.Color).fromArray(i.emissiveFactor)),void 0!==i.emissiveTexture&&s!==a.MeshBasicMaterial&&l.push(t.assignTexture(o,"emissiveMap",i.emissiveTexture,3001)),Promise.all(l).then((function(){const n=new s(o);return i.name&&(n.name=i.name),Nh(n,i),t.associations.set(n,{materials:e}),i.extensions&&Oh(r,n,i),n}))}createUniqueName(e){const t=a.PropertyBinding.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,n=this.extensions,r=this.primitiveCache;function i(e){return n[$c.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(n){return jh(n,e,t)}))}const s=[];for(let o=0,l=e.length;o0&&kh(d,i),d.name=t.createUniqueName(i.name||"mesh_"+e),Nh(d,i),h.extensions&&Oh(r,d,h),t.assignFinalMaterial(d),c.push(d)}for(let r=0,i=c.length;r1?new a.Group:1===t.length?t[0]:new a.Object3D,o!==t[0])for(let e=0,n=t.length;e{const t=new Map;for(const[n,i]of r.associations)(n instanceof a.Material||n instanceof a.Texture)&&t.set(n,i);return e.traverse((e=>{const n=r.associations.get(e);null!=n&&t.set(e,n)})),t})(i),i}))}}function jh(e,t,n){const r=t.attributes,i=[];function s(t,r){return n.getDependency("accessor",t).then((function(t){e.setAttribute(r,t)}))}for(const a in r){const t=Rh[a]||a.toLowerCase();t in e.attributes||i.push(s(r[a],t))}if(void 0!==t.indices&&!e.index){const r=n.getDependency("accessor",t.indices).then((function(t){e.setIndex(t)}));i.push(r)}return Nh(e,t),function(e,t,n){const r=t.attributes,i=new a.Box3;if(void 0===r.POSITION)return;{const e=n.json.accessors[r.POSITION],t=e.min,s=e.max;if(void 0===t||void 0===s)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(i.set(new a.Vector3(t[0],t[1],t[2]),new a.Vector3(s[0],s[1],s[2])),e.normalized){const t=Qh(Ch[e.componentType]);i.min.multiplyScalar(t),i.max.multiplyScalar(t)}}const s=t.targets;if(void 0!==s){const e=new a.Vector3,t=new a.Vector3;for(let r=0,i=s.length;r{n&&n(r),e&&(Wh||(Wh=new jc),Wh.setDecoderPath("string"==typeof e?e:"https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),r.setDRACOLoader(Wh)),t&&r.setMeshoptDecoder("function"==typeof Yc?Yc():Yc)}}function Yh(e,t=!0,n=!0,r){return(0,o.useLoader)(Jc,e,Xh(t,n,r))}Yh.preload=(e,t=!0,n=!0,r)=>o.useLoader.preload(Jc,e,Xh(t,n,r)),Yh.clear=e=>o.useLoader.clear(Jc,e);class qh{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e{const r=this._getIdleWorker();-1!==r?(this._initWorker(r),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}class Kh{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Jh{constructor(e,t,n,r){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(e.buffer,e.byteOffset+t,n),this._littleEndian=r,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint8Array(e){const t=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,e);return this._offset+=e,t}_skip(e){return this._offset+=e,this}_scan(e,t){void 0===t&&(t=0);const n=this._offset;let r=0;for(;this._dataView.getUint8(this._offset)!==t&&re.arrayBuffer())).then((e=>WebAssembly.instantiate(e,ru))).then(this._init):WebAssembly.instantiate(Buffer.from(su,"base64"),ru).then(this._init),eu)}_init(e){tu=e.instance,ru.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!tu)throw new Error("ZSTDDecoder: Await .init() before decoding.");const n=e.byteLength,r=tu.exports.malloc(n);nu.set(e,r),t=t||Number(tu.exports.ZSTD_findDecompressedSize(r,n));const i=tu.exports.malloc(t),s=tu.exports.ZSTD_decompress(i,t,r,n),a=nu.slice(i,i+s);return tu.exports.free(r),tu.exports.free(i),a}}const su="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ";class au extends a.CompressedTexture{constructor(e,t,n,r,i,s){super(e,t,n,i,s),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=a.ClampToEdgeWrapping}}class ou extends a.Texture{constructor(e=null,t=1,n=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:n,depth:r},this.magFilter=a.NearestFilter,this.minFilter=a.NearestFilter,this.wrapR=a.ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}var lu=Object.defineProperty,cu=(e,t,n)=>(((e,t,n)=>{t in e?lu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);const hu=new WeakMap;let uu,du=0;const pu=class extends a.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new qh,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}detectSupport(e){return this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},e.capabilities.isWebGL2&&(this.workerConfig.etc1Supported=!1),this}init(){if(!this.transcoderPending){const e=new a.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),n=new a.FileLoader(this.manager);n.setPath(this.transcoderPath),n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials);const r=n.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,r]).then((([e,t])=>{const n=pu.BasisWorker.toString(),r=["/* constants */","let _EngineFormat = "+JSON.stringify(pu.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(pu.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(pu.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r])),this.transcoderBinary=t,this.workerPool.setWorkerCreator((()=>{const e=new Worker(this.workerSourceURL),t=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:t},[t]),e}))})),du>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),du++}return this.transcoderPending}load(e,t,n,r){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const i=new a.FileLoader(this.manager);i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{if(hu.has(e)){return hu.get(e).promise.then(t).catch(r)}this._createTexture(e).then((e=>t?t(e):null)).catch(r)}),n,r)}_createTextureFrom(e,t){const{mipmaps:n,width:r,height:i,format:s,type:o,error:l,dfdTransferFn:c,dfdFlags:h}=e;if("error"===o)return Promise.reject(l);const u=t.layerCount>1?new au(n,r,i,t.layerCount,s,a.UnsignedByteType):new a.CompressedTexture(n,r,i,s,a.UnsignedByteType);return u.minFilter=1===n.length?a.LinearFilter:a.LinearMipmapLinearFilter,u.magFilter=a.LinearFilter,u.generateMipmaps=!1,u.needsUpdate=!0,"colorSpace"in u?u.colorSpace=2===c?"srgb":"srgb-linear":u.encoding=2===c?3001:3e3,u.premultiplyAlpha=!!(1&h),u}async _createTexture(e,t={}){const n=function(e){const t=new Uint8Array(e.buffer,e.byteOffset,Zh.length);if(t[0]!==Zh[0]||t[1]!==Zh[1]||t[2]!==Zh[2]||t[3]!==Zh[3]||t[4]!==Zh[4]||t[5]!==Zh[5]||t[6]!==Zh[6]||t[7]!==Zh[7]||t[8]!==Zh[8]||t[9]!==Zh[9]||t[10]!==Zh[10]||t[11]!==Zh[11])throw new Error("Missing KTX 2.0 identifier.");const n=new Kh,r=17*Uint32Array.BYTES_PER_ELEMENT,i=new Jh(e,Zh.length,r,!0);n.vkFormat=i._nextUint32(),n.typeSize=i._nextUint32(),n.pixelWidth=i._nextUint32(),n.pixelHeight=i._nextUint32(),n.pixelDepth=i._nextUint32(),n.layerCount=i._nextUint32(),n.faceCount=i._nextUint32();const s=i._nextUint32();n.supercompressionScheme=i._nextUint32();const a=i._nextUint32(),o=i._nextUint32(),l=i._nextUint32(),c=i._nextUint32(),h=i._nextUint64(),u=i._nextUint64(),d=new Jh(e,Zh.length+r,3*s*8,!0);for(let D=0;D{const t=new iu;await t.init(),e(t)}))),o=(await uu).decode(s.levelData,s.uncompressedByteLength)}l=gu[t]===a.FloatType?new Float32Array(o.buffer,o.byteOffset,o.byteLength/Float32Array.BYTES_PER_ELEMENT):gu[t]===a.HalfFloatType?new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT):o;const c=0===i?new a.DataTexture(l,n,r):new ou(l,n,r,i);return c.type=gu[t],c.format=mu[t],c.encoding=Au[t]||3e3,c.needsUpdate=!0,Promise.resolve(c)}(n);const r=t,i=this.init().then((()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:r},[e]))).then((e=>this._createTextureFrom(e.data,n)));return hu.set(e,{promise:i}),i}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),du--,this}};let fu=pu;cu(fu,"BasisFormat",{ETC1S:0,UASTC_4x4:1}),cu(fu,"TranscoderFormat",{ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16}),cu(fu,"EngineFormat",{RGBAFormat:a.RGBAFormat,RGBA_ASTC_4x4_Format:a.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:a.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:a.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:a.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:a.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:a.RGB_ETC1_Format,RGB_ETC2_Format:a.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:a.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:a.RGB_S3TC_DXT1_Format}),cu(fu,"BasisWorker",(function(){let e,t,n;const r=_EngineFormat,i=_TranscoderFormat,s=_BasisFormat;self.addEventListener("message",(function(a){const u=a.data;switch(u.type){case"init":e=u.config,d=u.transcoderBinary,t=new Promise((e=>{n={wasmBinary:d,onRuntimeInitialized:e},BASIS(n)})).then((()=>{n.initializeBasis(),void 0===n.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:a,hasAlpha:d,mipmaps:p,format:f,dfdTransferFn:m,dfdFlags:g}=function(t){const a=new n.KTX2File(new Uint8Array(t));function u(){a.close(),a.delete()}if(!a.isValid())throw u(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const d=a.isUASTC()?s.UASTC_4x4:s.ETC1S,p=a.getWidth(),f=a.getHeight(),m=a.getLayers()||1,g=a.getLevels(),A=a.getHasAlpha(),v=a.getDFDTransferFunc(),y=a.getDFDFlags(),{transcoderFormat:x,engineFormat:b}=function(t,n,a,h){let u,d;const p=t===s.ETC1S?o:l;for(let r=0;re.gl)),r=(0,o.useLoader)(fu,Ua(e)?Object.values(e):e,(e=>{e.detectSupport(n),e.setTranscoderPath(t)}));if((0,i.useEffect)((()=>{(Array.isArray(r)?r:[r]).forEach(n.initTexture)}),[n,r]),Ua(e)){const t=Object.keys(e),n={};return t.forEach((e=>Object.assign(n,{[e]:r[t.indexOf(e)]}))),n}return r}yu.preload=(e,t=`${vu}/basis/`)=>o.useLoader.preload(fu,e,(e=>{e.setTranscoderPath(t)})),yu.clear=e=>o.useLoader.clear(fu,e);var xu=n(73466),bu=n.n(xu);function Eu(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}function _u({showPanel:e=0,className:t,parent:n}){const r=function(e,t=[],n){const[r,s]=i.useState();return i.useLayoutEffect((()=>{const t=e();return s(t),Eu(n,t),()=>Eu(n,null)}),t),r}((()=>new(bu())),[]);return i.useEffect((()=>{if(r){const i=n&&n.current||document.body;r.showPanel(e),null==i||i.appendChild(r.dom),t&&r.dom.classList.add(...t.split(" ").filter((e=>e)));const s=(0,o.addEffect)((()=>r.begin())),a=(0,o.addAfterEffect)((()=>r.end()));return()=>{null==i||i.removeChild(r.dom),s(),a()}}}),[n,r,t,e]),null}function Su(e,t,n){const{gl:r,size:s}=(0,o.useThree)(),l=i.useMemo((()=>r.getPixelRatio()),[r]),c="number"==typeof e?e:s.width*l,h="number"==typeof t?t:s.height*l,u=("number"==typeof e?n:e)||{},{samples:d,...p}=u,f=i.useMemo((()=>{let e;return e=new a.WebGLRenderTarget(c,h,{minFilter:a.LinearFilter,magFilter:a.LinearFilter,encoding:r.outputEncoding,type:a.HalfFloatType,...p}),e.samples=d,e}),[]);return i.useLayoutEffect((()=>{f.setSize(c,h),d&&(f.samples=d)}),[d,f,c,h]),i.useEffect((()=>()=>f.dispose()),[]),f}function wu({size:e=256,frames:t=1/0}={}){const n=(0,o.useThree)((e=>e.viewport.dpr)),{width:r,height:s}=(0,o.useThree)((e=>e.size)),l=e||r*n,c=e||s*n,h=i.useMemo((()=>{const e=new a.DepthTexture(l,c);return e.format=a.DepthFormat,e.type=a.UnsignedShortType,{depthTexture:e}}),[l,c]);let u=0;const d=Su(l,c,h);return(0,o.useFrame)((e=>{(t===1/0||ue.viewport)),i=t*(r.aspect>e/t?r.width/e:r.height/t);return[e*(r.aspect>e/t?r.width/e:r.height/t)*n,i*n,1]}function Cu(e,t,n,r){return new(n||(n=Promise))((function(i,s){function a(e){try{l(r.next(e))}catch(e){s(e)}}function o(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,o)}l((r=r.apply(e,t||[])).next())}))}const Tu=["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"];function Iu(e){return e.toLowerCase().replace(/^angle ?\((.+)\)*$/,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const Bu="undefined"==typeof window,Ru=(()=>{if(Bu)return;const{userAgent:e,platform:t,maxTouchPoints:n}=window.navigator,r=/(iphone|ipod|ipad)/i.test(e),i="iPad"===t||"MacIntel"===t&&n>0&&!window.MSStream;return{isIpad:i,isMobile:/android/i.test(e)||r||i,isSafari12:/Version\/12.+Safari/.test(e)}})();const Pu=[],Du=[];function Lu(e,t){if(e===t)return 0;const n=e;e.length>t.length&&(e=t,t=n);let r=e.length,i=t.length;for(;r>0&&e.charCodeAt(~-r)===t.charCodeAt(~-i);)r--,i--;let s,a=0;for(;ac?l>c?c+1:l:l>o?o+1:l;return c}function Fu(e){return null!=e}class Uu extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const Ou=({mobileTiers:e=[0,15,30,60],desktopTiers:t=[0,15,30,60],override:n={},glContext:r,failIfMajorPerformanceCaveat:i=!1,benchmarksURL:s="https://unpkg.com/detect-gpu@4.0.50/dist/benchmarks"}={})=>Cu(void 0,void 0,void 0,(function*(){const a={};if(Bu)return{tier:0,type:"SSR"};const{isIpad:o=!!(null==Ru?void 0:Ru.isIpad),isMobile:l=!!(null==Ru?void 0:Ru.isMobile),screenSize:c=window.screen,loadBenchmarks:h=(e=>Cu(void 0,void 0,void 0,(function*(){const t=yield fetch(`${s}/${e}`).then((e=>e.json()));if(parseInt(t.shift().split(".")[0],10)<4)throw new Uu("Detect GPU benchmark data is out of date. Please update to version 4x");return t})))}=n;let{renderer:u}=n;const d=(e,t,n,r,i)=>({device:i,fps:r,gpu:n,isMobile:l,tier:e,type:t});let p,f="";if(u)u=Iu(u),p=[u];else{const e=r||function(e,t=!1){const n={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete n.powerPreference;const r=window.document.createElement("canvas"),i=r.getContext("webgl",n)||r.getContext("experimental-webgl",n);return null!=i?i:void 0}(null==Ru?void 0:Ru.isSafari12,i);if(!e)return d(0,"WEBGL_UNSUPPORTED");const t=e.getExtension("WEBGL_debug_renderer_info");if(t&&(u=e.getParameter(t.UNMASKED_RENDERER_WEBGL)),!u)return d(1,"FALLBACK");f=u,u=Iu(u),p=function(e,t,n){return"apple gpu"===t?function(e,t,n){if(!n)return[t];const r=function(e){const t=e.createShader(35633),n=e.createShader(35632),r=e.createProgram();if(!(n&&t&&r))return;e.shaderSource(t,"\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n "),e.shaderSource(n,"\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n "),e.compileShader(t),e.compileShader(n),e.attachShader(r,t),e.attachShader(r,n),e.linkProgram(r),e.detachShader(r,t),e.detachShader(r,n),e.deleteShader(t),e.deleteShader(n),e.useProgram(r);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const s=e.getAttribLocation(r,"aPosition");e.vertexAttribPointer(s,3,5126,!1,0,0),e.enableVertexAttribArray(s),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const a=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,a),e.deleteProgram(r),e.deleteBuffer(i),a.join("")}(e),i="801621810",s="8016218135",a="80162181161",o=(null==Ru?void 0:Ru.isIpad)?[["a7",a,12],["a8",s,15],["a8x",s,15],["a9",s,15],["a9x",s,15],["a10",s,15],["a10x",s,15],["a12",i,15],["a12x",i,15],["a12z",i,15],["a14",i,15],["m1",i,15]]:[["a7",a,12],["a8",s,12],["a9",s,15],["a10",s,15],["a11",i,15],["a12",i,15],["a13",i,15],["a14",i,15]];let l;return"80162181255"===r?l=o.filter((([,,e])=>e>=14)):(l=o.filter((([,e])=>e===r)),l.length||(l=o)),l.map((([e])=>`apple ${e} gpu`))}(e,t,n):[t]}(e,u,l)}const m=(yield Promise.all(p.map((function(e){var t;return Cu(this,void 0,void 0,(function*(){const n=(e=>{const t=l?["adreno","apple","mali-t","mali","nvidia","powervr"]:["intel","apple","amd","radeon","nvidia","geforce"];for(const n of t)if(e.includes(n))return n})(e);if(!n)return;const r=`${l?"m":"d"}-${n}${o?"-ipad":""}.json`,i=a[r]=null!==(t=a[r])&&void 0!==t?t:h(r);let s;try{s=yield i}catch(n){if(n instanceof Uu)throw n;return}const u=function(e){var t;const n=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==n?void 0:n.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(e);let d=s.filter((([,e])=>e===u));d.length||(d=s.filter((([t])=>t.includes(e))));const p=d.length;if(0===p)return;let f,[m,,,g]=p>1?d.map((t=>[t,Lu(e,t[0])])).sort((([,e],[,t])=>e-t))[0][0]:d[0],A=Number.MAX_VALUE;const{devicePixelRatio:v}=window,y=c.width*v*c.height*v;for(const e of g){const[t,n]=e,r=t*n,i=Math.abs(y-r);ie===n?t-r:e-n));if(!m.length){const e=Tu.find((e=>u.includes(e)));return e?d(0,"BLOCKLISTED",e):d(1,"FALLBACK",`${u} (${f})`)}const[,g,A,v]=m[0];if(-1===g)return d(0,"BLOCKLISTED",A,g,v);const y=l?e:t;let x=0;for(let e=0;e=y[e]&&(x=e);return d(x,"BENCHMARK",A,g,v)})),Nu=e=>pa((()=>Ou(e)),["useDetectGPU"]);function ku(e,t,...n){const r=i.useRef(),s=(0,o.useThree)((e=>e.scene));return i.useEffect((()=>(e&&t&&null!=e&&e.current&&(r.current=new t(e.current,...n),r.current&&s.add(r.current)),!e&&r.current&&s.remove(r.current),()=>{r.current&&s.remove(r.current)})),[s,t,e,n]),(0,o.useFrame)((()=>{var e;null!=(e=r.current)&&e.update&&r.current.update()})),r}const Gu=new a.Vector3,zu=new a.Vector3,Qu=new a.Vector3,Vu=new a.Vector2,Hu=new a.Vector2,ju=new a.Vector2,Wu=new a.Vector3;function Xu(e,t,n,r,i,s,o){Gu.fromBufferAttribute(t,r),zu.fromBufferAttribute(t,i),Qu.fromBufferAttribute(t,s);const l=function(e,t,n,r,i,s){let o;return o=s===a.BackSide?e.intersectTriangle(r,n,t,!0,i):e.intersectTriangle(t,n,r,s!==a.DoubleSide,i),null===o?null:{distance:e.origin.distanceTo(i),point:i.clone()}}(e,Gu,zu,Qu,Wu,o);if(l){n&&(Vu.fromBufferAttribute(n,r),Hu.fromBufferAttribute(n,i),ju.fromBufferAttribute(n,s),l.uv=a.Triangle.getUV(Wu,Gu,zu,Qu,Vu,Hu,ju,new a.Vector2));const e={a:r,b:i,c:s,normal:new a.Vector3,materialIndex:0};a.Triangle.getNormal(Gu,zu,Qu,e.normal),l.face=e,l.faceIndex=r}return l}function Yu(e,t,n,r,i){const s=3*r,a=e.index.getX(s),o=e.index.getX(s+1),l=e.index.getX(s+2),c=Xu(n,e.attributes.position,e.attributes.uv,a,o,l,t);return c?(c.faceIndex=r,i&&i.push(c),c):null}function qu(e,t,n){return null===e?null:(e.point.applyMatrix4(t.matrixWorld),e.distance=e.point.distanceTo(n.ray.origin),e.object=t,e.distancen.far?null:e)}const Ku=0,Ju=1,Zu=2,$u=1.25,ed=1,td=65535,nd=Math.pow(2,-24);class rd{constructor(){}}function id(e,t,n){return n.min.x=t[e],n.min.y=t[e+1],n.min.z=t[e+2],n.max.x=t[e+3],n.max.y=t[e+4],n.max.z=t[e+5],n}function sd(e){let t=-1,n=-1/0;for(let r=0;r<3;r++){const i=e[r+3]-e[r];i>n&&(n=i,t=r)}return t}function ad(e,t){t.set(e)}function od(e,t,n){let r,i;for(let s=0;s<3;s++){const a=s+3;r=e[s],i=t[s],n[s]=ri?r:i}}function ld(e,t,n){for(let r=0;r<3;r++){const i=t[e+2*r],s=t[e+2*r+1],a=i-s,o=i+s;an[r+3]&&(n[r+3]=o)}}function cd(e){const t=e[3]-e[0],n=e[4]-e[1],r=e[5]-e[2];return 2*(t*n+n*r+r*t)}function hd(e,t,n,r,i=null){let s=1/0,a=1/0,o=1/0,l=-1/0,c=-1/0,h=-1/0,u=1/0,d=1/0,p=1/0,f=-1/0,m=-1/0,g=-1/0;const A=null!==i;for(let v=6*t,y=6*(t+n);vl&&(l=i),A&&tf&&(f=t);const y=e[v+2],x=e[v+3],b=y-x,E=y+x;bc&&(c=E),A&&ym&&(m=y);const _=e[v+4],S=e[v+5],w=_-S,M=_+S;wh&&(h=M),A&&_g&&(g=_)}r[0]=s,r[1]=a,r[2]=o,r[3]=l,r[4]=c,r[5]=h,A&&(i[0]=u,i[1]=d,i[2]=p,i[3]=f,i[4]=m,i[5]=g)}const ud=32,dd=(e,t)=>e.candidate-t.candidate,pd=new Array(ud).fill().map((()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0}))),fd=new Float32Array(6);function md(e,t){function n(e){p&&p(e/f)}function r(t,i,a,p=null,f=0){if(!m&&f>=c&&(m=!0,h&&(console.warn(`MeshBVH: Max depth of ${c} reached when generating BVH. Consider increasing maxDepth.`),console.warn(e))),a<=u||f>=c)return n(i+a),t.offset=i,t.count=a,t;const g=function(e,t,n,r,i,s){let a=-1,o=0;if(s===Ku)a=sd(t),-1!==a&&(o=(t[a]+t[a+3])/2);else if(s===Ju)a=sd(e),-1!==a&&(o=function(e,t,n,r){let i=0;for(let s=t,a=t+n;s=s.candidate?ld(i,n,s.rightCacheBounds):(ld(i,n,s.leftCacheBounds),s.count++)}}for(let n=0;n=ud&&(t=ud-1);const s=pd[t];s.count++,ld(i,n,s.bounds)}const t=pd[ud-1];ad(t.bounds,t.rightCacheBounds);for(let e=ud-2;e>=0;e--){const t=pd[e],n=pd[e+1];od(t.bounds,n.rightCacheBounds,t.rightCacheBounds)}let d=0;for(let n=0;n=o;)a--;if(!(s65535?new Uint32Array(new r(4*n)):new Uint16Array(new r(2*n)),e.setIndex(new a.BufferAttribute(i,1));for(let e=0;em&&(m=l),c>m&&(m=c);const g=(m-u)/2,A=2*r;s[i+A+0]=u+g,s[i+A+1]=g+(Math.abs(u)+g)*nd,ut[r+3]&&(t[r+3]=m)}}return s}(e,i),l=e.index.array,c=t.maxDepth,h=t.verbose,u=t.maxLeafTris,d=t.strategy,p=t.onProgress,f=e.index.count/3;let m=!1;const g=[],A=function(e){if(!e.groups||!e.groups.length)return[{offset:0,count:e.index.count/3}];const t=[],n=new Set;for(const i of e.groups)n.add(i.start),n.add(i.start+i.count);const r=Array.from(n.values()).sort(((e,t)=>e-t));for(let i=0;io&&(o=t);const n=e[h+2];nl&&(l=n);const r=e[h+4];rc&&(c=r)}r[0]=i,r[1]=s,r[2]=a,r[3]=o,r[4]=l,r[5]=c}(o,e.offset,e.count,s),r(t,e.offset,e.count,s),g.push(t)}else for(let a of A){const e=new rd;e.boundingData=new Float32Array(6),hd(o,a.offset,a.count,e.boundingData,s),r(e,a.offset,a.count,s),g.push(e)}return g}class gd{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let n=1/0,r=-1/0;for(let i=0,s=e.length;ir?s:r}this.min=n,this.max=r}setFromPoints(e,t){let n=1/0,r=-1/0;for(let i=0,s=t.length;ir?a:r}this.min=n,this.max=r}isSeparated(e){return this.min>e.max||e.min>this.max}}gd.prototype.setFromBox=function(){const e=new a.Vector3;return function(t,n){const r=n.min,i=n.max;let s=1/0,a=-1/0;for(let o=0;o<=1;o++)for(let n=0;n<=1;n++)for(let l=0;l<=1;l++){e.x=r.x*o+i.x*(1-o),e.y=r.y*n+i.y*(1-n),e.z=r.z*l+i.z*(1-l);const c=t.dot(e);s=Math.min(c,s),a=Math.max(c,a)}this.min=s,this.max=a}}();!function(){const e=new gd}();const Ad=function(){const e=new a.Vector3,t=new a.Vector3,n=new a.Vector3;return function(r,i,s){const a=r.start,o=e,l=i.start,c=t;n.subVectors(a,l),e.subVectors(r.end,r.start),t.subVectors(i.end,i.start);const h=n.dot(c),u=c.dot(o),d=c.dot(c),p=n.dot(o),f=o.dot(o)*d-u*u;let m,g;m=0!==f?(h*u-p*d)/f:0,g=(h+m*u)/d,s.x=m,s.y=g}}(),vd=function(){const e=new a.Vector2,t=new a.Vector3,n=new a.Vector3;return function(r,i,s,a){Ad(r,i,e);let o=e.x,l=e.y;if(o>=0&&o<=1&&l>=0&&l<=1)return r.at(o,s),void i.at(l,a);if(o>=0&&o<=1)return l<0?i.at(0,a):i.at(1,a),void r.closestPointToPoint(a,!0,s);if(l>=0&&l<=1)return o<0?r.at(0,s):r.at(1,s),void i.closestPointToPoint(s,!0,a);{let e,c;e=o<0?r.start:r.end,c=l<0?i.start:i.end;const h=t,u=n;return r.closestPointToPoint(c,!0,t),i.closestPointToPoint(e,!0,n),h.distanceToSquared(c)<=u.distanceToSquared(e)?(s.copy(h),void a.copy(c)):(s.copy(e),void a.copy(u))}}}(),yd=function(){const e=new a.Vector3,t=new a.Vector3,n=new a.Plane,r=new a.Line3;return function(i,s){const{radius:a,center:o}=i,{a:l,b:c,c:h}=s;r.start=l,r.end=c;if(r.closestPointToPoint(o,!0,e).distanceTo(o)<=a)return!0;r.start=l,r.end=h;if(r.closestPointToPoint(o,!0,e).distanceTo(o)<=a)return!0;r.start=c,r.end=h;if(r.closestPointToPoint(o,!0,e).distanceTo(o)<=a)return!0;const u=s.getPlane(n);if(Math.abs(u.distanceToPoint(o))<=a){const e=u.projectPoint(o,t);if(s.containsPoint(e))return!0}return!1}}();function xd(e){return Math.abs(e)<1e-15}class bd extends a.Triangle{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map((()=>new a.Vector3)),this.satBounds=new Array(4).fill().map((()=>new gd)),this.points=[this.a,this.b,this.c],this.sphere=new a.Sphere,this.plane=new a.Plane,this.needsUpdate=!0}intersectsSphere(e){return yd(e,this)}update(){const e=this.a,t=this.b,n=this.c,r=this.points,i=this.satAxes,s=this.satBounds,a=i[0],o=s[0];this.getNormal(a),o.setFromPoints(a,r);const l=i[1],c=s[1];l.subVectors(e,t),c.setFromPoints(l,r);const h=i[2],u=s[2];h.subVectors(t,n),u.setFromPoints(h,r);const d=i[3],p=s[3];d.subVectors(n,e),p.setFromPoints(d,r),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(a,e),this.needsUpdate=!1}}bd.prototype.closestPointToSegment=function(){const e=new a.Vector3,t=new a.Vector3,n=new a.Line3;return function(r,i=null,s=null){const{start:a,end:o}=r,l=this.points;let c,h=1/0;for(let u=0;u<3;u++){const a=(u+1)%3;n.start.copy(l[u]),n.end.copy(l[a]),vd(n,r,e,t),c=e.distanceToSquared(t),c1-1e-10){const e=this.satBounds,o=this.satAxes;n[0]=a.a,n[1]=a.b,n[2]=a.c;for(let t=0;t<4;t++){const i=e[t],s=o[t];if(r.setFromPoints(s,n),i.isSeparated(r))return!1}const l=a.satBounds,c=a.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let n=0;n<4;n++){const e=l[n],i=c[n];if(r.setFromPoints(i,t),e.isSeparated(r))return!1}for(let a=0;a<4;a++){const e=o[a];for(let a=0;a<4;a++){const o=c[a];if(s.crossVectors(e,o),r.setFromPoints(s,t),i.setFromPoints(s,n),r.isSeparated(i))return!1}}return p&&(f||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),p.start.set(0,0,0),p.end.set(0,0,0)),!0}{const e=this.points;let t=!1,n=0;for(let a=0;a<3;a++){const r=e[a],i=e[(a+1)%3];h.start.copy(r),h.end.copy(i),h.delta(o);const s=t?u.start:u.end,l=xd(g.distanceToPoint(r));if(xd(g.normal.dot(o))&&l){u.copy(h),n=2;break}if((g.intersectLine(h,s)||l)&&!xd(s.distanceTo(i))){if(n++,t)break;t=!0}}if(1===n&&a.containsPoint(u.end))return p&&(p.start.copy(u.end),p.end.copy(u.end)),!0;if(2!==n)return!1;const r=a.points;let i=!1,s=0;for(let a=0;a<3;a++){const e=r[a],t=r[(a+1)%3];h.start.copy(e),h.end.copy(t),h.delta(l);const n=i?d.start:d.end,o=xd(m.distanceToPoint(e));if(xd(m.normal.dot(l))&&o){d.copy(h),s=2;break}if((m.intersectLine(h,n)||o)&&!xd(n.distanceTo(t))){if(s++,i)break;i=!0}}if(1===s&&this.containsPoint(d.end))return p&&(p.start.copy(d.end),p.end.copy(d.end)),!0;if(2!==s)return!1;if(u.delta(o),d.delta(l),o.dot(l)<0){let e=d.start;d.start=d.end,d.end=e}const f=u.start.dot(o),A=u.end.dot(o),v=d.start.dot(o),y=d.end.dot(o);return(f===y||v===A||A0?p.start.copy(u.start):p.start.copy(d.start),c.subVectors(u.end,d.end),c.dot(o)<0?p.end.copy(u.end):p.end.copy(d.end)),!0)}}}(),bd.prototype.distanceToPoint=function(){const e=new a.Vector3;return function(t){return this.closestPointToPoint(t,e),t.distanceTo(e)}}(),bd.prototype.distanceToTriangle=function(){const e=new a.Vector3,t=new a.Vector3,n=["a","b","c"],r=new a.Line3,i=new a.Line3;return function(s,a=null,o=null){const l=a||o?r:null;if(this.intersectsTriangle(s,l))return(a||o)&&(a&&l.getCenter(a),o&&l.getCenter(o)),0;let c=1/0;for(let t=0;t<3;t++){let r;const i=n[t],l=s[i];this.closestPointToPoint(l,e),r=l.distanceToSquared(e),rnew a.Vector3)),this.satAxes=new Array(3).fill().map((()=>new a.Vector3)),this.satBounds=new Array(3).fill().map((()=>new gd)),this.alignedSatBounds=new Array(3).fill().map((()=>new gd)),this.needsUpdate=!1,e&&this.min.copy(e),t&&this.max.copy(t),n&&this.matrix.copy(n)}set(e,t,n){this.min.copy(e),this.max.copy(t),this.matrix.copy(n),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}}function _d(e,t,n,r){const i=e.a,s=e.b,a=e.c;let o=t,l=t+1,c=t+2;n&&(o=n.getX(t),l=n.getX(t+1),c=n.getX(t+2)),i.x=r.getX(o),i.y=r.getY(o),i.z=r.getZ(o),s.x=r.getX(l),s.y=r.getY(l),s.z=r.getZ(l),a.x=r.getX(c),a.y=r.getY(c),a.z=r.getZ(c)}function Sd(e,t,n,r,i,s,a){const o=n.index,l=n.attributes.position;for(let c=e,h=t+e;cnew a.Line3)),n=new Array(12).fill().map((()=>new a.Line3)),r=new a.Vector3,i=new a.Vector3;return function(s,a=0,o=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(s))return(o||l)&&(s.getCenter(i),this.closestPointToPoint(i,r),s.closestPointToPoint(r,i),o&&o.copy(r),l&&l.copy(i)),0;const c=a*a,h=s.min,u=s.max,d=this.points;let p=1/0;for(let e=0;e<8;e++){const t=d[e];i.copy(t).clamp(h,u);const n=t.distanceToSquared(i);if(n=0;let c,h;l?(c=Id(e),h=Bd(e,o)):(c=Bd(e,o),h=Id(e));const u=Nd(c,s,r,Pd)?Fd(c,t,n,r):null;if(u){const e=u.point[a];if(l?e<=s[h+i]:e>=s[h+i+3])return u}const d=Nd(h,s,r,Pd)?Fd(h,t,n,r):null;return u&&d?u.distance<=d.distance?u:d:u||d||null}}const Ud=function(){let e,t;const n=[],r=new wd((()=>new a.Box3));return function(...s){e=r.getPrimitive(),t=r.getPrimitive(),n.push(e,t);const a=i(...s);r.releasePrimitive(e),r.releasePrimitive(t),n.pop(),n.pop();const o=n.length;return o>0&&(t=n[o-1],e=n[o-2]),a};function i(n,r,s,a,o=null,l=0,c=0){function h(e){let t=2*e,n=Qd,r=Vd;for(;!Md(t,n);)t=2*(e=Id(e));return Cd(e,r)}function u(e){let t=2*e,n=Qd,r=Vd;for(;!Md(t,n);)t=2*(e=Bd(e,r));return Cd(e,r)+Td(t,n)}let d=2*n,p=zd,f=Qd,m=Vd;if(Md(d,f)){const t=Cd(n,m),r=Td(d,f);return id(n,p,e),a(t,r,!1,c,l+n,e)}{const d=Id(n),g=Bd(n,m);let A,v,y,x,b=d,E=g;if(o&&(y=e,x=t,id(b,p,y),id(E,p,x),A=o(y),v=o(x),vi.intersectsBox(e),intersectsTriangle:e=>{e.a.applyMatrix4(c),e.b.applyMatrix4(c),e.c.applyMatrix4(c),e.needsUpdate=!0;for(let n=3*A,r=3*(v+A);nnew bd));class sp{static serialize(e,t={}){if(t.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),sp.serialize(arguments[0],{cloneBuffers:void 0===arguments[2]||arguments[2]});t={cloneBuffers:!0,...t};const n=e.geometry,r=e._roots,i=n.getIndex();let s;return s=t.cloneBuffers?{roots:r.map((e=>e.slice())),index:i.array.slice()}:{roots:r,index:i.array},s}static deserialize(e,t,n={}){if("boolean"==typeof n)return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),sp.deserialize(arguments[0],arguments[1],{setIndex:void 0===arguments[2]||arguments[2]});n={setIndex:!0,...n};const{index:r,roots:i}=e,s=new sp(t,{...n,[Wd]:!0});if(s._roots=i,n.setIndex){const n=t.getIndex();if(null===n){const n=new a.BufferAttribute(e.index,1,!1);t.setIndex(n)}else n.array!==r&&(n.array.set(r),n.needsUpdate=!0)}return s}constructor(e,t={}){if(!e.isBufferGeometry)throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.");if((t=Object.assign({strategy:Ku,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[Wd]:!1},t)).useSharedArrayBuffer&&"undefined"==typeof SharedArrayBuffer)throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,t[Wd]||(this._roots=function(e,t){const n=md(e,t);let r,i,s;const a=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let h=0;hMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return i[n+6]=o/4,o=c(o,s),i[n+7]=a,o}}}(e,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new a.Box3))),this.geometry=e}refit(e=null){e&&Array.isArray(e)&&(e=new Set(e));const t=this.geometry,n=t.index.array,r=t.attributes.position;let i,s,a,o,l=0;const c=this._roots;for(let u=0,d=c.length;uu&&(u=s),ad&&(d=a),op&&(p=o)}return(o[t+0]!==i||o[t+1]!==l||o[t+2]!==h||o[t+3]!==u||o[t+4]!==d||o[t+5]!==p)&&(o[t+0]=i,o[t+1]=l,o[t+2]=h,o[t+3]=u,o[t+4]=d,o[t+5]=p,!0)}{const n=t+8,r=s[t+6],a=n+i,c=r+i;let u=l,d=!1,p=!1;e?u||(d=e.has(a),p=e.has(c),u=!d&&!p):(d=!0,p=!0);const f=u||p;let m=!1;(u||d)&&(m=h(n,i,u));let g=!1;f&&(g=h(r,i,u));const A=m||g;if(A)for(let e=0;e<3;e++){const i=n+e,s=r+e,a=o[i],l=o[i+3],c=o[s],h=o[s+3];o[t+e]=ah?l:h}return A}}}traverse(e,t=0){const n=this._roots[t],r=new Uint32Array(n),i=new Uint16Array(n);!function t(s,a=0){const o=2*s,l=i[o+15]===td;if(l){const t=r[s+6],c=i[o+14];e(a,l,new Float32Array(n,4*s,6),t,c)}else{const i=s+8,o=r[s+6],c=r[s+7];e(a,l,new Float32Array(n,4*s,6),c)||(t(i,a+1),t(o,a+1))}}(0)}raycast(e,t=a.FrontSide){const n=this._roots,r=this.geometry,i=[],s=t.isMaterial,o=Array.isArray(t),l=r.groups,c=s?t.side:t;for(let a=0,h=n.length;a{const s=3*n;return e(t,s,s+1,s+2,r,i)}}e={boundsTraverseOrder:n,intersectsBounds:e,intersectsTriangle:t,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}const i=ip.getPrimitive();let{boundsTraverseOrder:s,intersectsBounds:a,intersectsRange:o,intersectsTriangle:l}=e;if(o&&l){const e=o;o=(t,n,s,a,o)=>!!e(t,n,s,a,o)||Sd(t,n,r,l,s,a,i)}else o||(o=l?(e,t,n,s)=>Sd(e,t,r,l,n,s,i):(e,t,n)=>n);let c=!1,h=0;for(const u of this._roots){if(Hd(u),c=Ud(0,r,a,o,s,h),jd(),c)break;h+=u.byteLength}return ip.releasePrimitive(i),c}bvhcast(e,t,n){let{intersectsRanges:r,intersectsTriangles:i}=n;const s=this.geometry.index,a=this.geometry.attributes.position,o=e.geometry.index,l=e.geometry.attributes.position;qd.copy(t).invert();const c=ip.getPrimitive(),h=ip.getPrimitive();if(i){function d(e,n,r,u,d,p,f,m){for(let g=r,A=r+u;gYd.intersectsBox(e),intersectsRange:(t,n,i,s,a,o)=>(Xd.copy(o),Xd.applyMatrix4(qd),e.shapecast({intersectsBounds:e=>Xd.intersectsBox(e),intersectsRange:(e,i,o,l,c)=>r(t,n,e,i,s,a,l,c)}))});return ip.releasePrimitive(c),ip.releasePrimitive(h),u}intersectsBox(e,t){return Kd.set(e.min,e.max,t),Kd.needsUpdate=!0,this.shapecast({intersectsBounds:e=>Kd.intersectsBox(e),intersectsTriangle:e=>Kd.intersectsTriangle(e)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,n={},r={},i=0,s=1/0){e.boundingBox||e.computeBoundingBox(),Kd.set(e.boundingBox.min,e.boundingBox.max,t),Kd.needsUpdate=!0;const a=this.geometry,o=a.attributes.position,l=a.index,c=e.attributes.position,h=e.index,u=ip.getPrimitive(),d=ip.getPrimitive();let p=$d,f=ep,m=null,g=null;r&&(m=tp,g=np);let A=1/0,v=null,y=null;return qd.copy(t).invert(),Jd.matrix.copy(qd),this.shapecast({boundsTraverseOrder:e=>Kd.distanceToBox(e),intersectsBounds:(e,t,n)=>n{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:e=>Jd.distanceToBox(e),intersectsBounds:(e,t,n)=>n{for(let a=3*e,x=3*(e+s);a(Zd.copy(e).clamp(t.min,t.max),Zd.distanceToSquared(e)),intersectsBounds:(e,t,n)=>n{t.closestPointToPoint(e,Zd);const r=e.distanceToSquared(Zd);return r{id(0,new Float32Array(t),rp),e.union(rp)})),e}}const ap=new a.Ray,op=new a.Matrix4,lp=a.Mesh.prototype.raycast;function cp(e,t){if(this.geometry.boundsTree){if(void 0===this.material)return;op.copy(this.matrixWorld).invert(),ap.copy(e.ray).applyMatrix4(op);const n=this.geometry.boundsTree;if(!0===e.firstHitOnly){const r=qu(n.raycastFirst(ap,this.material),this,e);r&&t.push(r)}else{const r=n.raycast(ap,this.material);for(let n=0,i=r.length;n{if(e.current){e.current.raycast=cp;const n=e.current.geometry;return n.computeBoundsTree=hp,n.disposeBoundsTree=up,n.computeBoundsTree(t),()=>{n.boundsTree&&n.disposeBoundsTree()}}}),[e,t])}function pp(...e){const t=i.useRef([]);return t.current=e.map((e=>i.useContext(e))),i.useMemo((()=>({children:n})=>e.reduceRight(((e,n,r)=>i.createElement(n.Provider,{value:t.current[r],children:e})),n)),[])}function fp(e,t){const n=i.useRef(),[r]=i.useState((()=>t?t instanceof a.Object3D?{current:t}:t:n)),[s]=i.useState((()=>new a.AnimationMixer(void 0))),l=i.useRef({}),[c]=i.useState((()=>{const t={};return e.forEach((e=>Object.defineProperty(t,e.name,{enumerable:!0,get(){if(r.current)return l.current[e.name]||(l.current[e.name]=s.clipAction(e,r.current))}}))),{ref:r,clips:e,actions:t,names:e.map((e=>e.name)),mixer:s}}));return(0,o.useFrame)(((e,t)=>s.update(t))),i.useEffect((()=>{const e=r.current;return()=>{l.current={},Object.values(c.actions).forEach((t=>{e&&s.uncacheAction(t,e)}))}}),[e]),c}function mp(e){const t=i.useRef(null),n=i.useRef(!1),r=i.useRef(!1);return i.useEffect((()=>{const i=t.current;if(i){const t=(0,o.addEffect)((()=>(n.current=!1,!0))),s=i.onBeforeRender;i.onBeforeRender=()=>n.current=!0;const a=(0,o.addAfterEffect)((()=>(n.current!==r.current&&e(r.current=n.current),!0)));return()=>{i.onBeforeRender=s,t(),a()}}}),[]),t}const gp="\n#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n vec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n #ifdef BOX_PROJECTED_ENV_MAP\n vWorldPosition = worldPosition.xyz;\n #endif\n#endif\n",Ap="\n#ifdef BOX_PROJECTED_ENV_MAP\n uniform vec3 envMapSize;\n uniform vec3 envMapPosition;\n varying vec3 vWorldPosition;\n \n vec3 parallaxCorrectNormal( vec3 v, vec3 cubeSize, vec3 cubePos ) {\n vec3 nDir = normalize( v );\n vec3 rbmax = ( .5 * cubeSize + cubePos - vWorldPosition ) / nDir;\n vec3 rbmin = ( -.5 * cubeSize + cubePos - vWorldPosition ) / nDir;\n vec3 rbminmax;\n rbminmax.x = ( nDir.x > 0. ) ? rbmax.x : rbmin.x;\n rbminmax.y = ( nDir.y > 0. ) ? rbmax.y : rbmin.y;\n rbminmax.z = ( nDir.z > 0. ) ? rbmax.z : rbmin.z;\n float correction = min( min( rbminmax.x, rbminmax.y ), rbminmax.z );\n vec3 boxIntersection = vWorldPosition + nDir * correction; \n return boxIntersection - cubePos;\n }\n#endif\n",vp="\n#ifdef BOX_PROJECTED_ENV_MAP\n worldNormal = parallaxCorrectNormal( worldNormal, envMapSize, envMapPosition );\n#endif\n",yp="\n#ifdef BOX_PROJECTED_ENV_MAP\n reflectVec = parallaxCorrectNormal( reflectVec, envMapSize, envMapPosition );\n#endif\n";function xp(e=new a.Vector3,t=new a.Vector3){const[n]=i.useState((()=>({position:new a.Vector3,size:new a.Vector3})));(0,o.applyProps)(n,{position:e,size:t});const r=i.useRef(null),s=i.useMemo((()=>({ref:r,onBeforeCompile:e=>function(e,t,n){e.defines.BOX_PROJECTED_ENV_MAP=!0,e.uniforms.envMapPosition={value:t},e.uniforms.envMapSize={value:n},e.vertexShader=`\n varying vec3 vWorldPosition;\n ${e.vertexShader.replace("#include ",gp)}`,e.fragmentShader=`\n ${Ap}\n ${e.fragmentShader.replace("#include ",a.ShaderChunk.envmap_physical_pars_fragment).replace("vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );",`vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n ${vp}\n `).replace("reflectVec = inverseTransformDirection( reflectVec, viewMatrix );",`reflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n ${yp}\n `)}`}(e,n.position,n.size),customProgramCacheKey:()=>JSON.stringify(n.position.toArray())+JSON.stringify(n.size.toArray())})),[...n.position.toArray(),...n.size.toArray()]);return i.useLayoutEffect((()=>{r.current.needsUpdate=!0}),[n]),s}var bp=Object.defineProperty,Ep=(e,t,n)=>(((e,t,n)=>{t in e?bp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);const _p=1024,Sp=(e,t,n,r,i,s)=>{const a=e.image,{data:o}=a,l=4096*s;o[4*t+l+0]=n,o[4*t+l+1]=r,o[4*t+l+2]=i,o[4*t+l+3]=1};class wp{constructor(e,t=1){Ep(this,"curveArray"),Ep(this,"curveLengthArray"),Ep(this,"object3D"),Ep(this,"splineTexure"),Ep(this,"uniforms");const n=e.clone(),r=((e=1)=>{const t=new Float32Array(4096*e*4),n=new a.DataTexture(t,_p,4*e,a.RGBAFormat,a.FloatType);return n.wrapS=a.RepeatWrapping,n.wrapT=a.RepeatWrapping,n.magFilter=a.NearestFilter,n.needsUpdate=!0,n})(t),i={spineTexture:{value:r},pathOffset:{type:"f",value:0},pathSegment:{type:"f",value:1},spineOffset:{type:"f",value:161},spineLength:{type:"f",value:400},flow:{type:"i",value:1}};n.traverse((e=>{(e instanceof a.Mesh||e instanceof a.InstancedMesh)&&(e.material=e.material.clone(),function(e,t,n=1){e.__ok||(e.__ok=!0,e.onBeforeCompile=e=>{if(e.__modified)return;e.__modified=!0,Object.assign(e.uniforms,t);const r=`\n\t\tuniform sampler2D spineTexture;\n\t\tuniform float pathOffset;\n\t\tuniform float pathSegment;\n\t\tuniform float spineOffset;\n\t\tuniform float spineLength;\n\t\tuniform int flow;\n\n\t\tfloat textureLayers = ${4*n}.;\n\t\tfloat textureStacks = 1.;\n\n\t\t${e.vertexShader}\n\t\t`.replace("#include ","").replace("#include ","").replace("#include ","").replace(/void\s*main\s*\(\)\s*\{/,"\n void main() {\n #include \n\n vec4 worldPos = modelMatrix * vec4(position, 1.);\n\n bool bend = flow > 0;\n float xWeight = bend ? 0. : 1.;\n\n #ifdef USE_INSTANCING\n float pathOffsetFromInstanceMatrix = instanceMatrix[3][2];\n float spineLengthFromInstanceMatrix = instanceMatrix[3][0];\n float spinePortion = bend ? (worldPos.x + spineOffset) / spineLengthFromInstanceMatrix : 0.;\n float mt = (spinePortion * pathSegment + pathOffset + pathOffsetFromInstanceMatrix)*textureStacks;\n #else\n float spinePortion = bend ? (worldPos.x + spineOffset) / spineLength : 0.;\n float mt = (spinePortion * pathSegment + pathOffset)*textureStacks;\n #endif\n\n mt = mod(mt, textureStacks);\n float rowOffset = floor(mt);\n\n #ifdef USE_INSTANCING\n rowOffset += instanceMatrix[3][1] * 4.;\n #endif\n\n vec3 spinePos = texture2D(spineTexture, vec2(mt, (0. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 a = texture2D(spineTexture, vec2(mt, (1. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 b = texture2D(spineTexture, vec2(mt, (2. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 c = texture2D(spineTexture, vec2(mt, (3. + rowOffset + 0.5) / textureLayers)).xyz;\n mat3 basis = mat3(a, b, c);\n\n vec3 transformed = basis\n * vec3(worldPos.x * xWeight, worldPos.y * 1., worldPos.z * 1.)\n + spinePos;\n\n vec3 transformedNormal = normalMatrix * (basis * objectNormal);\n\t\t\t").replace("#include ","vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\n\t\t\t\tgl_Position = projectionMatrix * mvPosition;");e.vertexShader=r})}(e.material,i,t))})),this.curveArray=new Array(t),this.curveLengthArray=new Array(t),this.object3D=n,this.splineTexure=r,this.uniforms=i}updateCurve(e,t){if(e>=this.curveArray.length)throw Error("Index out of range for Flow");const n=t.getLength();this.uniforms.spineLength.value=n,this.curveLengthArray[e]=n,this.curveArray[e]=t,((e,t,n=0)=>{const r=Math.floor(1024);t.arcLengthDivisions=r/2,t.updateArcLengths();const i=t.getSpacedPoints(r),s=t.computeFrenetFrames(r,!0);for(let a=0;a{const[r]=i.useState((()=>new a.Scene)),[s,l]=i.useState(),c=i.useRef();return i.useEffect((()=>{c.current=new wp(r.children[0]),l(c.current.object3D)}),[e]),i.useEffect((()=>{var e;t&&(null==(e=c.current)||e.updateCurve(0,t))}),[t]),i.useImperativeHandle(n,(()=>({moveAlongCurve:e=>{var t;null==(t=c.current)||t.moveAlongCurve(e)}}))),i.createElement(i.Fragment,null,(0,o.createPortal)(e,r),s&&i.createElement("primitive",{object:s}))}));class Cp extends a.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n #define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include ","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const Tp=i.forwardRef((({speed:e=1,...t},n)=>{const[s]=i.useState((()=>new Cp));return(0,o.useFrame)((t=>s&&(s.time=t.clock.getElapsedTime()*e))),i.createElement("primitive",(0,r.Z)({dispose:void 0,object:s,ref:n,attach:"material"},t))}));class Ip extends a.MeshStandardMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=`\n uniform float time;\n uniform float factor;\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include ","float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;")}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}}const Bp=i.forwardRef((({speed:e=1,...t},n)=>{const[s]=i.useState((()=>new Ip));return(0,o.useFrame)((t=>s&&(s.time=t.clock.getElapsedTime()*e))),i.createElement("primitive",(0,r.Z)({dispose:void 0,object:s,ref:n,attach:"material"},t))}));class Rp extends a.ShaderMaterial{constructor(e=new a.Vector2){super({uniforms:{inputBuffer:new a.Uniform(null),depthBuffer:new a.Uniform(null),resolution:new a.Uniform(new a.Vector2),texelSize:new a.Uniform(new a.Vector2),halfTexelSize:new a.Uniform(new a.Vector2),kernel:new a.Uniform(0),scale:new a.Uniform(1),cameraNear:new a.Uniform(0),cameraFar:new a.Uniform(1),minDepthThreshold:new a.Uniform(0),maxDepthThreshold:new a.Uniform(1),depthScale:new a.Uniform(0),depthToBlurRatioBias:new a.Uniform(.25)},fragmentShader:"#include \n #include \n uniform sampler2D inputBuffer;\n uniform sampler2D depthBuffer;\n uniform float cameraNear;\n uniform float cameraFar;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n float depthFactor = 0.0;\n \n #ifdef USE_DEPTH\n vec4 depth = texture2D(depthBuffer, vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0, min(1.0, depthFactor + 0.25));\n #endif\n \n vec4 sum = texture2D(inputBuffer, mix(vUv0, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv1, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv2, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv3, vUv, depthFactor));\n gl_FragColor = sum * 0.25 ;\n\n #include \n #include \n #include \n }",vertexShader:"uniform vec2 texelSize;\n uniform vec2 halfTexelSize;\n uniform float kernel;\n uniform float scale;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n vec2 uv = position.xy * 0.5 + 0.5;\n vUv = uv;\n\n vec2 dUv = (texelSize * vec2(kernel) + halfTexelSize) * scale;\n vUv0 = vec2(uv.x - dUv.x, uv.y + dUv.y);\n vUv1 = vec2(uv.x + dUv.x, uv.y + dUv.y);\n vUv2 = vec2(uv.x + dUv.x, uv.y - dUv.y);\n vUv3 = vec2(uv.x - dUv.x, uv.y - dUv.y);\n\n gl_Position = vec4(position.xy, 1.0, 1.0);\n }",blending:a.NoBlending,depthWrite:!1,depthTest:!1}),this.toneMapped=!1,this.setTexelSize(e.x,e.y),this.kernel=new Float32Array([0,1,2,2,3])}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t),this.uniforms.halfTexelSize.value.set(e,t).multiplyScalar(.5)}setResolution(e){this.uniforms.resolution.value.copy(e)}}class Pp{constructor({gl:e,resolution:t,width:n=500,height:r=500,minDepthThreshold:i=0,maxDepthThreshold:s=1,depthScale:o=0,depthToBlurRatioBias:l=.25}){this.renderToScreen=!1,this.renderTargetA=new a.WebGLRenderTarget(t,t,{minFilter:a.LinearFilter,magFilter:a.LinearFilter,stencilBuffer:!1,depthBuffer:!1,encoding:e.outputEncoding}),this.renderTargetB=this.renderTargetA.clone(),this.convolutionMaterial=new Rp,this.convolutionMaterial.setTexelSize(1/n,1/r),this.convolutionMaterial.setResolution(new a.Vector2(n,r)),this.scene=new a.Scene,this.camera=new a.Camera,this.convolutionMaterial.uniforms.minDepthThreshold.value=i,this.convolutionMaterial.uniforms.maxDepthThreshold.value=s,this.convolutionMaterial.uniforms.depthScale.value=o,this.convolutionMaterial.uniforms.depthToBlurRatioBias.value=l,this.convolutionMaterial.defines.USE_DEPTH=o>0;const c=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),h=new Float32Array([0,0,2,0,0,2]),u=new a.BufferGeometry;u.setAttribute("position",new a.BufferAttribute(c,3)),u.setAttribute("uv",new a.BufferAttribute(h,2)),this.screen=new a.Mesh(u,this.convolutionMaterial),this.screen.frustumCulled=!1,this.scene.add(this.screen)}render(e,t,n){const r=this.scene,i=this.camera,s=this.renderTargetA,a=this.renderTargetB;let o=this.convolutionMaterial,l=o.uniforms;l.depthBuffer.value=t.depthTexture;const c=o.kernel;let h,u,d,p=t;for(u=0,d=c.length-1;u","#include \n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseBlur;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform bool hasBlur;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float mixContrast;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv; \n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include ","#include \n \n float distortionFactor = 0.0;\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n vec4 new_vUv = my_vUv;\n new_vUv.x += distortionFactor;\n new_vUv.y += distortionFactor;\n\n vec4 base = texture2DProj(tDiffuse, new_vUv);\n vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);\n \n vec4 merge = base;\n \n #ifdef USE_NORMALMAP\n vec2 normal_uv = vec2(0.0);\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n vec3 my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n vec3 coord = new_vUv.xyz / new_vUv.w;\n normal_uv = coord.xy + coord.z * my_normal.xz * 0.05;\n vec4 base_normal = texture2D(tDiffuse, normal_uv);\n vec4 blur_normal = texture2D(tDiffuseBlur, normal_uv);\n merge = base_normal;\n blur = blur_normal;\n #endif\n\n float depthFactor = 0.0001;\n float blurFactor = 0.0;\n\n #ifdef USE_DEPTH\n vec4 depth = texture2DProj(tDepth, new_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor));\n\n #ifdef USE_BLUR\n blur = blur * min(1.0, depthFactor + depthToBlurRatioBias);\n merge = merge * min(1.0, depthFactor + 0.5);\n #else\n merge = merge * depthFactor;\n #endif\n \n #endif\n\n float reflectorRoughnessFactor = roughness;\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n \n #ifdef USE_BLUR\n blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);\n merge = mix(merge, blur, blurFactor);\n #endif\n\n vec4 newMerge = vec4(0.0, 0.0, 0.0, 1.0);\n newMerge.r = (merge.r - 0.5) * mixContrast + 0.5;\n newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;\n newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;\n\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get tDiffuseBlur(){return this._tDiffuseBlur.value}set tDiffuseBlur(e){this._tDiffuseBlur.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get hasBlur(){return this._hasBlur.value}set hasBlur(e){this._hasBlur.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}get mixContrast(){return this._mixContrast.value}set mixContrast(e){this._mixContrast.value=e}}(0,o.extend)({MeshReflectorMaterialImpl:Dp});const Lp=i.forwardRef((({mixBlur:e=0,mixStrength:t=1,resolution:n=256,blur:s=[0,0],minDepthThreshold:l=.9,maxDepthThreshold:c=1,depthScale:h=0,depthToBlurRatioBias:u=.25,mirror:d=0,distortion:p=1,mixContrast:f=1,distortionMap:m,reflectorOffset:g=0,...A},v)=>{const y=(0,o.useThree)((({gl:e})=>e)),x=(0,o.useThree)((({camera:e})=>e)),b=(0,o.useThree)((({scene:e})=>e)),E=(s=Array.isArray(s)?s:[s,s])[0]+s[1]>0,_=i.useRef(null),[S]=i.useState((()=>new a.Plane)),[w]=i.useState((()=>new a.Vector3)),[C]=i.useState((()=>new a.Vector3)),[T]=i.useState((()=>new a.Vector3)),[I]=i.useState((()=>new a.Matrix4)),[B]=i.useState((()=>new a.Vector3(0,0,-1))),[R]=i.useState((()=>new a.Vector4)),[P]=i.useState((()=>new a.Vector3)),[D]=i.useState((()=>new a.Vector3)),[L]=i.useState((()=>new a.Vector4)),[F]=i.useState((()=>new a.Matrix4)),[U]=i.useState((()=>new a.PerspectiveCamera)),O=i.useCallback((()=>{var e;const t=_.current.parent||(null==(e=_.current)?void 0:e.__r3f.parent);if(!t)return;if(C.setFromMatrixPosition(t.matrixWorld),T.setFromMatrixPosition(x.matrixWorld),I.extractRotation(t.matrixWorld),w.set(0,0,1),w.applyMatrix4(I),C.addScaledVector(w,g),P.subVectors(C,T),P.dot(w)>0)return;P.reflect(w).negate(),P.add(C),I.extractRotation(x.matrixWorld),B.set(0,0,-1),B.applyMatrix4(I),B.add(T),D.subVectors(C,B),D.reflect(w).negate(),D.add(C),U.position.copy(P),U.up.set(0,1,0),U.up.applyMatrix4(I),U.up.reflect(w),U.lookAt(D),U.far=x.far,U.updateMatrixWorld(),U.projectionMatrix.copy(x.projectionMatrix),F.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),F.multiply(U.projectionMatrix),F.multiply(U.matrixWorldInverse),F.multiply(t.matrixWorld),S.setFromNormalAndCoplanarPoint(w,C),S.applyMatrix4(U.matrixWorldInverse),R.set(S.normal.x,S.normal.y,S.normal.z,S.constant);const n=U.projectionMatrix;L.x=(Math.sign(R.x)+n.elements[8])/n.elements[0],L.y=(Math.sign(R.y)+n.elements[9])/n.elements[5],L.z=-1,L.w=(1+n.elements[10])/n.elements[14],R.multiplyScalar(2/R.dot(L)),n.elements[2]=R.x,n.elements[6]=R.y,n.elements[10]=R.z+1,n.elements[14]=R.w}),[x,g]),[N,k,G,z]=i.useMemo((()=>{const r={minFilter:a.LinearFilter,magFilter:a.LinearFilter,encoding:y.outputEncoding,type:a.HalfFloatType},i=new a.WebGLRenderTarget(n,n,r);i.depthBuffer=!0,i.depthTexture=new a.DepthTexture(n,n),i.depthTexture.format=a.DepthFormat,i.depthTexture.type=a.UnsignedShortType;const o=new a.WebGLRenderTarget(n,n,r);return[i,o,new Pp({gl:y,resolution:n,width:s[0],height:s[1],minDepthThreshold:l,maxDepthThreshold:c,depthScale:h,depthToBlurRatioBias:u}),{mirror:d,textureMatrix:F,mixBlur:e,tDiffuse:i.texture,tDepth:i.depthTexture,tDiffuseBlur:o.texture,hasBlur:E,mixStrength:t,minDepthThreshold:l,maxDepthThreshold:c,depthScale:h,depthToBlurRatioBias:u,transparent:!0,distortion:p,distortionMap:m,mixContrast:f,"defines-USE_BLUR":E?"":void 0,"defines-USE_DEPTH":h>0?"":void 0,"defines-USE_DISTORTION":m?"":void 0}]}),[y,s,F,n,d,E,e,t,l,c,h,u,p,m,f]);return(0,o.useFrame)((()=>{var e;const t=_.current.parent||(null==(e=_.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const n=y.xr.enabled,r=y.shadowMap.autoUpdate;O(),y.xr.enabled=!1,y.shadowMap.autoUpdate=!1,y.setRenderTarget(N),y.state.buffers.depth.setMask(!0),y.autoClear||y.clear(),y.render(b,U),E&&G.render(y,N,k),y.xr.enabled=n,y.shadowMap.autoUpdate=r,t.visible=!0,y.setRenderTarget(null)})),i.createElement("meshReflectorMaterialImpl",(0,r.Z)({attach:"material",key:"key"+z["defines-USE_BLUR"]+z["defines-USE_DEPTH"]+z["defines-USE_DISTORTION"],ref:M([_,v])},z,A))}));class Fp extends a.PointsMaterial{constructor(e){super(e),this.onBeforeCompile=e=>{e.fragmentShader=e.fragmentShader.replace("#include ","\n #include \n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r); \n float mask = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n gl_FragColor = vec4(gl_FragColor.rgb, mask * gl_FragColor.a );\n ")}}}const Up=i.forwardRef(((e,t)=>{const[n]=i.useState((()=>new Fp(null)));return i.createElement("primitive",(0,r.Z)({},e,{object:n,ref:t,attach:"material"}))}));let Op=!1;const Np=e=>{if(!Op){Op=!0;let t=a.ShaderChunk.shadowmap_pars_fragment;t=t.replace("#ifdef USE_SHADOWMAP","#ifdef USE_SHADOWMAP\n"+(({frustum:e=3.75,size:t=.005,near:n=9.5,samples:r=17,rings:i=11}={})=>`#define LIGHT_WORLD_SIZE ${t}\n#define LIGHT_FRUSTUM_WIDTH ${e}\n#define LIGHT_SIZE_UV (LIGHT_WORLD_SIZE / LIGHT_FRUSTUM_WIDTH)\n#define NEAR_PLANE ${n}\n\n#define NUM_SAMPLES ${r}\n#define NUM_RINGS ${i}\n#define BLOCKER_SEARCH_NUM_SAMPLES NUM_SAMPLES\n#define PCF_NUM_SAMPLES NUM_SAMPLES\n\nvec2 poissonDisk[NUM_SAMPLES];\n\nvoid initPoissonSamples(const in vec2 randomSeed) {\n float ANGLE_STEP = PI2 * float(NUM_RINGS) / float(NUM_SAMPLES);\n float INV_NUM_SAMPLES = 1.0 / float(NUM_SAMPLES);\n float angle = rand(randomSeed) * PI2;\n float radius = INV_NUM_SAMPLES;\n float radiusStep = radius;\n for (int i = 0; i < NUM_SAMPLES; i++) {\n poissonDisk[i] = vec2(cos(angle), sin(angle)) * pow(radius, 0.75);\n radius += radiusStep;\n angle += ANGLE_STEP;\n }\n}\n\nfloat penumbraSize(const in float zReceiver, const in float zBlocker) { // Parallel plane estimation\n return (zReceiver - zBlocker) / zBlocker;\n}\n\nfloat findBlocker(sampler2D shadowMap, const in vec2 uv, const in float zReceiver) {\n float searchRadius = LIGHT_SIZE_UV * (zReceiver - NEAR_PLANE) / zReceiver;\n float blockerDepthSum = 0.0;\n int numBlockers = 0;\n for (int i = 0; i < BLOCKER_SEARCH_NUM_SAMPLES; i++) {\n float shadowMapDepth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[i] * searchRadius));\n if (shadowMapDepth < zReceiver) {\n blockerDepthSum += shadowMapDepth;\n numBlockers++;\n }\n }\n if (numBlockers == 0) return -1.0;\n return blockerDepthSum / float(numBlockers);\n}\n\nfloat PCF_Filter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius) {\n float sum = 0.0;\n for (int i = 0; i < PCF_NUM_SAMPLES; i++) {\n float depth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[ i ] * filterRadius));\n if (zReceiver <= depth) sum += 1.0;\n }\n for (int i = 0; i < PCF_NUM_SAMPLES; i++) {\n float depth = unpackRGBAToDepth(texture2D(shadowMap, uv + -poissonDisk[ i ].yx * filterRadius));\n if (zReceiver <= depth) sum += 1.0;\n }\n return sum / (2.0 * float(PCF_NUM_SAMPLES));\n}\n\nfloat PCSS(sampler2D shadowMap, vec4 coords) {\n vec2 uv = coords.xy;\n float zReceiver = coords.z; // Assumed to be eye-space z in this code\n initPoissonSamples(uv);\n float avgBlockerDepth = findBlocker(shadowMap, uv, zReceiver);\n if (avgBlockerDepth == -1.0) return 1.0;\n float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth);\n float filterRadius = penumbraRatio * LIGHT_SIZE_UV * NEAR_PLANE / zReceiver;\n return PCF_Filter(shadowMap, uv, zReceiver, filterRadius);\n}`)({...e})),t=t.replace("#if defined( SHADOWMAP_TYPE_PCF )","\nreturn PCSS(shadowMap, shadowCoord);\n#if defined( SHADOWMAP_TYPE_PCF )"),a.ShaderChunk.shadowmap_pars_fragment=t}};function kp(e){const t=e+"BufferGeometry";return i.forwardRef((({args:e,children:n,...s},a)=>i.createElement("mesh",(0,r.Z)({ref:a},s),i.createElement(t,{attach:"geometry",args:e}),n)))}const Gp=kp("box"),zp=kp("circle"),Qp=kp("cone"),Vp=kp("cylinder"),Hp=kp("sphere"),jp=kp("plane"),Wp=kp("tube"),Xp=kp("torus"),Yp=kp("torusKnot"),qp=kp("tetrahedron"),Kp=kp("ring"),Jp=kp("polyhedron"),Zp=kp("icosahedron"),$p=kp("octahedron"),ef=kp("dodecahedron"),tf=kp("extrude"),nf=kp("lathe"),rf=1e-5;const sf=i.forwardRef((function({args:[e=1,t=1,n=1]=[],radius:s=.05,steps:o=1,smoothness:l=4,children:c,...h},u){const d=i.useMemo((()=>function(e,t,n){const r=new a.Shape,i=n-rf;return r.absarc(rf,rf,rf,-Math.PI/2,-Math.PI,!0),r.absarc(rf,t-2*i,rf,Math.PI,Math.PI/2,!0),r.absarc(e-2*i,t-2*i,rf,Math.PI/2,0,!0),r.absarc(e-2*i,rf,rf,0,-Math.PI/2,!0),r}(e,t,s)),[e,t,s]),p=i.useMemo((()=>({depth:n-2*s,bevelEnabled:!0,bevelSegments:2*l,steps:o,bevelSize:s-rf,bevelThickness:s,curveSegments:l})),[n,s,l]),f=i.useRef();return i.useLayoutEffect((()=>{f.current&&f.current.center()}),[d,p]),i.createElement("mesh",(0,r.Z)({ref:u},h),i.createElement("extrudeBufferGeometry",{attach:"geometry",ref:f,args:[d,p]}),c)}));function af(){const e=new a.BufferGeometry,t=new Float32Array([-1,-1,3,-1,-1,3]);return e.setAttribute("position",new a.BufferAttribute(t,2)),e}const of=i.forwardRef((function({children:e,...t},n){const s=i.useMemo(af,[]);return i.createElement("mesh",(0,r.Z)({ref:n,geometry:s,frustumCulled:!1},t),e)})),lf=i.forwardRef((function({children:e,alignTop:t,...n},s){const o=i.useRef(null),l=i.useRef(null);return i.useLayoutEffect((()=>{o.current.position.set(0,0,0),o.current.updateWorldMatrix(!0,!0);const e=(new a.Box3).setFromObject(l.current),n=new a.Vector3,r=new a.Sphere,i=e.max.y-e.min.y;e.getCenter(n),e.getBoundingSphere(r),o.current.position.set(-n.x,-n.y+(t?i/2:0),-n.z)}),[e]),i.createElement("group",(0,r.Z)({ref:s},n),i.createElement("group",{ref:o},i.createElement("group",{ref:l},e)))})),cf=e=>e&&e.isOrthographicCamera,hf=e=>e&&e.isBox3,uf=i.createContext(null);function df({children:e,damping:t=6,fit:n,clip:r,observe:s,margin:l=1.2,eps:c=.01,onFit:h}){const u=i.useRef(null),{camera:d,invalidate:p,size:f,controls:m}=(0,o.useThree)(),g=i.useRef(h);function A(e,t){return Math.abs(e.x-t.x)({animating:!1,focus:new a.Vector3,camera:new a.Vector3,zoom:1}))),[x]=i.useState((()=>({focus:new a.Vector3,camera:new a.Vector3,zoom:1}))),[b]=i.useState((()=>new a.Box3)),E=i.useMemo((()=>{function e(){const e=b.getSize(new a.Vector3),t=b.getCenter(new a.Vector3),n=Math.max(e.x,e.y,e.z),r=cf(d)?4*n:n/(2*Math.atan(Math.PI*d.fov/360)),i=cf(d)?4*n:r/d.aspect,s=l*Math.max(r,i);return{box:b,size:e,center:t,distance:s}}return{getSize:e,refresh(t){if(hf(t))b.copy(t);else{const e=t||u.current;e.updateWorldMatrix(!0,!0),b.setFromObject(e)}if(b.isEmpty()){const e=d.position.length()||10;b.setFromCenterAndSize(new a.Vector3,new a.Vector3(e,e,e))}if("OrthographicTrackballControls"===(null==m?void 0:m.constructor.name)){const{distance:t}=e(),n=d.position.clone().sub(m.target).normalize().multiplyScalar(t),r=m.target.clone().add(n);d.position.copy(r)}return this},clip(){const{distance:t}=e();return m&&(m.maxDistance=10*t),d.near=t/100,d.far=100*t,d.updateProjectionMatrix(),m&&m.update(),p(),this},fit(){y.camera.copy(d.position),m&&y.focus.copy(m.target);const{center:n,distance:r}=e(),i=n.clone().sub(d.position).normalize().multiplyScalar(r);if(x.camera.copy(n).sub(i),x.focus.copy(n),cf(d)){y.zoom=d.zoom;let e=0,r=0;const i=[new a.Vector3(b.min.x,b.min.y,b.min.z),new a.Vector3(b.min.x,b.max.y,b.min.z),new a.Vector3(b.min.x,b.min.y,b.max.z),new a.Vector3(b.min.x,b.max.y,b.max.z),new a.Vector3(b.max.x,b.max.y,b.max.z),new a.Vector3(b.max.x,b.max.y,b.min.z),new a.Vector3(b.max.x,b.min.y,b.max.z),new a.Vector3(b.max.x,b.min.y,b.min.z)];n.applyMatrix4(d.matrixWorldInverse);for(const t of i)t.applyMatrix4(d.matrixWorldInverse),e=Math.max(e,Math.abs(t.y-n.y)),r=Math.max(r,Math.abs(t.x-n.x));e*=2,r*=2;const s=(d.top-d.bottom)/e,o=(d.right-d.left)/r;x.zoom=Math.min(s,o)/l,t||(d.zoom=x.zoom,d.updateProjectionMatrix())}return t?y.animating=!0:(d.position.copy(x.camera),d.lookAt(x.focus),m&&(m.target.copy(x.focus),m.update())),g.current&&g.current(this.getSize()),p(),this}}}),[b,d,m,l,t,p]);i.useLayoutEffect((()=>{if(m){const e=()=>y.animating=!1;return m.addEventListener("start",e),()=>m.removeEventListener("start",e)}}),[m]);const _=i.useRef(0);return i.useLayoutEffect((()=>{(s||0==_.current++)&&(E.refresh(),n&&E.fit(),r&&E.clip())}),[f,r,n,s]),(0,o.useFrame)(((e,n)=>{if(y.animating){if(v(y.focus,x.focus,t,n),v(y.camera,x.camera,t,n),y.zoom=a.MathUtils.damp(y.zoom,x.zoom,t,n),d.position.copy(y.camera),cf(d)&&(d.zoom=y.zoom,d.updateProjectionMatrix()),m?(m.target.copy(y.focus),m.update()):d.lookAt(y.focus),p(),cf(d)&&!(Math.abs(y.zoom-x.zoom)(((e,t,n)=>{t in e?ff(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);class gf{constructor(e=Math){mf(this,"grad3",[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]]),mf(this,"grad4",[[0,1,1,1],[0,1,1,-1],[0,1,-1,1],[0,1,-1,-1],[0,-1,1,1],[0,-1,1,-1],[0,-1,-1,1],[0,-1,-1,-1],[1,0,1,1],[1,0,1,-1],[1,0,-1,1],[1,0,-1,-1],[-1,0,1,1],[-1,0,1,-1],[-1,0,-1,1],[-1,0,-1,-1],[1,1,0,1],[1,1,0,-1],[1,-1,0,1],[1,-1,0,-1],[-1,1,0,1],[-1,1,0,-1],[-1,-1,0,1],[-1,-1,0,-1],[1,1,1,0],[1,1,-1,0],[1,-1,1,0],[1,-1,-1,0],[-1,1,1,0],[-1,1,-1,0],[-1,-1,1,0],[-1,-1,-1,0]]),mf(this,"p",[]),mf(this,"perm",[]),mf(this,"simplex",[[0,1,2,3],[0,1,3,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]),mf(this,"dot",((e,t,n)=>e[0]*t+e[1]*n)),mf(this,"dot3",((e,t,n,r)=>e[0]*t+e[1]*n+e[2]*r)),mf(this,"dot4",((e,t,n,r,i)=>e[0]*t+e[1]*n+e[2]*r+e[3]*i)),mf(this,"noise",((e,t)=>{let n,r,i;const s=(e+t)*(.5*(Math.sqrt(3)-1)),a=Math.floor(e+s),o=Math.floor(t+s),l=(3-Math.sqrt(3))/6,c=(a+o)*l,h=e-(a-c),u=t-(o-c);let d=0,p=1;h>u&&(d=1,p=0);const f=h-d+l,m=u-p+l,g=h-1+2*l,A=u-1+2*l,v=255&a,y=255&o,x=this.perm[v+this.perm[y]]%12,b=this.perm[v+d+this.perm[y+p]]%12,E=this.perm[v+1+this.perm[y+1]]%12;let _=.5-h*h-u*u;_<0?n=0:(_*=_,n=_*_*this.dot(this.grad3[x],h,u));let S=.5-f*f-m*m;S<0?r=0:(S*=S,r=S*S*this.dot(this.grad3[b],f,m));let w=.5-g*g-A*A;return w<0?i=0:(w*=w,i=w*w*this.dot(this.grad3[E],g,A)),70*(n+r+i)})),mf(this,"noise3d",((e,t,n)=>{let r,i,s,a;const o=(e+t+n)*(1/3),l=Math.floor(e+o),c=Math.floor(t+o),h=Math.floor(n+o),u=1/6,d=(l+c+h)*u,p=e-(l-d),f=t-(c-d),m=n-(h-d);let g,A,v,y,x,b;p>=f?f>=m?(g=1,A=0,v=0,y=1,x=1,b=0):p>=m?(g=1,A=0,v=0,y=1,x=0,b=1):(g=0,A=0,v=1,y=1,x=0,b=1):f{const i=this.grad4,s=this.simplex,a=this.perm,o=(Math.sqrt(5)-1)/4,l=(5-Math.sqrt(5))/20;let c,h,u,d,p;const f=(e+t+n+r)*o,m=Math.floor(e+f),g=Math.floor(t+f),A=Math.floor(n+f),v=Math.floor(r+f),y=(m+g+A+v)*l,x=e-(m-y),b=t-(g-y),E=n-(A-y),_=r-(v-y),S=(x>b?32:0)+(x>E?16:0)+(b>E?8:0)+(x>_?4:0)+(b>_?2:0)+(E>_?1:0);let w,M,C,T,I,B,R,P,D,L,F,U;w=s[S][0]>=3?1:0,M=s[S][1]>=3?1:0,C=s[S][2]>=3?1:0,T=s[S][3]>=3?1:0,I=s[S][0]>=2?1:0,B=s[S][1]>=2?1:0,R=s[S][2]>=2?1:0,P=s[S][3]>=2?1:0,D=s[S][0]>=1?1:0,L=s[S][1]>=1?1:0,F=s[S][2]>=1?1:0,U=s[S][3]>=1?1:0;const O=x-w+l,N=b-M+l,k=E-C+l,G=_-T+l,z=x-I+2*l,Q=b-B+2*l,V=E-R+2*l,H=_-P+2*l,j=x-D+3*l,W=b-L+3*l,X=E-F+3*l,Y=_-U+3*l,q=x-1+4*l,K=b-1+4*l,J=E-1+4*l,Z=_-1+4*l,$=255&m,ee=255&g,te=255&A,ne=255&v,re=a[$+a[ee+a[te+a[ne]]]]%32,ie=a[$+w+a[ee+M+a[te+C+a[ne+T]]]]%32,se=a[$+I+a[ee+B+a[te+R+a[ne+P]]]]%32,ae=a[$+D+a[ee+L+a[te+F+a[ne+U]]]]%32,oe=a[$+1+a[ee+1+a[te+1+a[ne+1]]]]%32;let le=.6-x*x-b*b-E*E-_*_;le<0?c=0:(le*=le,c=le*le*this.dot4(i[re],x,b,E,_));let ce=.6-O*O-N*N-k*k-G*G;ce<0?h=0:(ce*=ce,h=ce*ce*this.dot4(i[ie],O,N,k,G));let he=.6-z*z-Q*Q-V*V-H*H;he<0?u=0:(he*=he,u=he*he*this.dot4(i[se],z,Q,V,H));let ue=.6-j*j-W*W-X*X-Y*Y;ue<0?d=0:(ue*=ue,d=ue*ue*this.dot4(i[ae],j,W,X,Y));let de=.6-q*q-K*K-J*J-Z*Z;return de<0?p=0:(de*=de,p=de*de*this.dot4(i[oe],q,K,J,Z)),27*(c+h+u+d+p)}));for(let t=0;t<256;t++)this.p[t]=Math.floor(256*e.random());for(let t=0;t<512;t++)this.perm[t]=this.p[255&t]}}const Af=i.forwardRef((({intensity:e=1,decay:t,decayRate:n=.65,maxYaw:r=.1,maxPitch:s=.1,maxRoll:a=.1,yawFrequency:l=.1,pitchFrequency:c=.1,rollFrequency:h=.1,controls:u},d)=>{const p=(0,o.useThree)((e=>e.camera)),f=(0,o.useThree)((e=>e.controls)),m=i.useRef(e),g=i.useRef(p.rotation.clone()),[A]=i.useState((()=>new gf)),[v]=i.useState((()=>new gf)),[y]=i.useState((()=>new gf)),x=()=>{(m.current<0||m.current>1)&&(m.current=m.current<0?0:1)};return i.useImperativeHandle(d,(()=>({getIntensity:()=>m.current,setIntensity:e=>{m.current=e,x()}})),[]),i.useEffect((()=>{const e=f||(null==u?void 0:u.current),t=()=>{g.current=p.rotation.clone()};return null==e||e.addEventListener("change",t),()=>{null==e||e.removeEventListener("change",t)}}),[u,f]),(0,o.useFrame)((({clock:e},i)=>{const o=Math.pow(m.current,2),u=r*o*A.noise(e.elapsedTime*l,1),d=s*o*v.noise(e.elapsedTime*c,1),f=a*o*y.noise(e.elapsedTime*h,1);p.rotation.set(g.current.x+d,g.current.y+u,g.current.z+f),t&&m.current>0&&(m.current-=n*i,x())})),null})),vf=i.forwardRef((({children:e,speed:t=1,rotationIntensity:n=1,floatIntensity:r=1,...s},a)=>{const l=i.useRef(null),c=i.useRef(1e4*Math.random());return(0,o.useFrame)((e=>{const i=c.current+e.clock.getElapsedTime();l.current.rotation.x=Math.cos(i/4*t)/8*n,l.current.rotation.y=Math.sin(i/4*t)/8*n,l.current.rotation.z=Math.sin(i/4*t)/20*n,l.current.position.y=Math.sin(i/4*t)/10*r})),i.createElement("group",s,i.createElement("group",{ref:M([l,a])},e))}));class yf extends a.DataTextureLoader{constructor(e){super(e),this.type=a.HalfFloatType}parse(e){const t=function(e,t){switch(e){case 1:console.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:console.error("THREE.RGBELoader: Error: "+(t||""))}return-1},n=function(e,t,n){t=t||1024;let r=e.pos,i=-1,s=0,a="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(r,r+128)));for(;0>(i=o.indexOf("\n"))&&s=e.byteLength||!(l=n(e)))return t(1,"no header found");if(!(c=l.match(/^#\?(\S+)/)))return t(3,"bad initial token");for(o.valid|=1,o.programtype=c[1],o.string+=l+"\n";l=n(e),!1!==l;)if(o.string+=l+"\n","#"!==l.charAt(0)){if((c=l.match(r))&&(o.gamma=parseFloat(c[1])),(c=l.match(i))&&(o.exposure=parseFloat(c[1])),(c=l.match(s))&&(o.valid|=2,o.format=c[1]),(c=l.match(a))&&(o.valid|=4,o.height=parseInt(c[1],10),o.width=parseInt(c[2],10)),2&o.valid&&4&o.valid)break}else o.comments+=l+"\n";return 2&o.valid?4&o.valid?o:t(3,"missing image size specifier"):t(3,"missing format specifier")}(s);if(-1!==o){const e=o.width,n=o.height,l=function(e,n,r){const i=n;if(i<8||i>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);if(i!==(e[2]<<8|e[3]))return t(3,"wrong scanline width");const s=new Uint8Array(4*n*r);if(!s.length)return t(4,"unable to allocate buffer space");let a=0,o=0;const l=4*i,c=new Uint8Array(4),h=new Uint8Array(l);let u=r;for(;u>0&&oe.byteLength)return t(1);if(c[0]=e[o++],c[1]=e[o++],c[2]=e[o++],c[3]=e[o++],2!=c[0]||2!=c[1]||(c[2]<<8|c[3])!=i)return t(3,"bad rgbe scanline format");let n,r=0;for(;r128;if(i&&(n-=128),0===n||r+n>l)return t(3,"bad scanline data");if(i){const t=e[o++];for(let e=0;e{return(t=e).current&&t.current.isScene?e.current:e;var t};function _f(e){return e.map?i.createElement(Sf,e):e.children?i.createElement(wf,e):i.createElement(Mf,e)}function Sf({scene:e,background:t=!1,map:n}){const r=(0,o.useThree)((e=>e.scene));return i.useLayoutEffect((()=>{if(n){const i=Ef(e||r),s=i.background,a=i.environment;return"only"!==t&&(i.environment=n),t&&(i.background=n),()=>{"only"!==t&&(i.environment=a),t&&(i.background=s)}}}),[e,n]),null}function wf({children:e,near:t=1,far:n=1e3,resolution:r=256,frames:s=1,background:l=!1,scene:c,files:h,path:u,preset:d,extensions:p}){const f=(0,o.useThree)((e=>e.gl)),m=(0,o.useThree)((e=>e.scene)),g=i.useRef(null),[A]=i.useState((()=>new a.Scene)),v=i.useMemo((()=>{const e=new a.WebGLCubeRenderTarget(r);return e.texture.type=a.HalfFloatType,e}),[r]);i.useLayoutEffect((()=>{1===s&&g.current.update(f,A);const e=Ef(c||m),t=e.background,n=e.environment;return"only"!==l&&(e.environment=v.texture),l&&(e.background=v.texture),()=>{"only"!==l&&(e.environment=n),l&&(e.background=t)}}),[e,c]);let y=1;return(0,o.useFrame)((()=>{(s===1/0||ye.scene)),h=Array.isArray(t),u=h?a.CubeTextureLoader:yf,d=(0,o.useLoader)(u,h?[t]:t,(e=>{e.setPath(n),null==e.setDataType||e.setDataType(a.FloatType),l&&l(e)})),p=h?d[0]:d;return p.mapping=h?a.CubeReflectionMapping:a.EquirectangularReflectionMapping,i.useLayoutEffect((()=>{const t=Ef(s||c),n=t.background,r=t.environment;return"only"!==e&&(t.environment=p),e&&(t.background=p),()=>{"only"!==e&&(t.environment=r),e&&(t.background=n)}}),[p,e,s]),null}const Cf={uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n ",fragmentShader:"\n uniform sampler2D tDiffuse;\n uniform float h;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec4 sum = vec4( 0.0 );\n\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n \tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n \tgl_FragColor = sum;\n\n }\n "},Tf={uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n ",fragmentShader:"\n\n uniform sampler2D tDiffuse;\n uniform float v;\n\n varying vec2 vUv;\n\n void main() {\n\n vec4 sum = vec4( 0.0 );\n\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n gl_FragColor = sum;\n\n }\n "},If=i.forwardRef((({scale:e,frames:t=1/0,opacity:n=1,width:s=1,height:l=1,blur:c=1,far:h=10,resolution:u=256,smooth:d=!0,color:p="#000000",...f},m)=>{const g=(0,o.useThree)((({scene:e})=>e)),A=(0,o.useThree)((({gl:e})=>e)),v=i.useRef(null);s*=Array.isArray(e)?e[0]:e||1,l*=Array.isArray(e)?e[1]:e||1;const[y,x,b,E,_,S,w]=i.useMemo((()=>{const e=new a.WebGLRenderTarget(u,u),t=new a.WebGLRenderTarget(u,u);t.texture.generateMipmaps=e.texture.generateMipmaps=!1;const n=new a.PlaneBufferGeometry(s,l).rotateX(Math.PI/2),r=new a.Mesh(n),i=new a.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new a.Color(p).convertSRGBToLinear()}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor, ( 1.0 - fragCoordZ ) * 1.0 );")};const o=new a.ShaderMaterial(Cf),c=new a.ShaderMaterial(Tf);return c.depthTest=o.depthTest=!1,[e,n,i,r,o,c,t]}),[u,s,l,e]),M=i.useCallback((e=>{E.visible=!0,E.material=_,_.uniforms.tDiffuse.value=y.texture,_.uniforms.h.value=1*e/256,A.setRenderTarget(w),A.render(E,v.current),E.material=S,S.uniforms.tDiffuse.value=w.texture,S.uniforms.v.value=1*e/256,A.setRenderTarget(y),A.render(E,v.current),E.visible=!1}),[]);let C=0;return(0,o.useFrame)((()=>{if(v.current&&(t===1/0||Ce.camera)),g=(0,o.useThree)((e=>e.controls)),A=i.useRef(null),v=i.useRef(null),[{radius:y,width:x,height:b},E]=i.useState({radius:0,width:0,height:0});return i.useLayoutEffect((()=>{A.current.position.set(0,0,0),A.current.updateWorldMatrix(!0,!0);const e=(new a.Box3).setFromObject(v.current),t=new a.Vector3,n=new a.Sphere,r=e.max.y-e.min.y,i=e.max.x-e.min.x;e.getCenter(t),e.getBoundingSphere(n),E({radius:n.radius,width:i,height:r}),A.current.position.set(-t.x,-t.y+r/2,-t.z)}),[e]),i.useLayoutEffect((()=>{if(s){const e=y/(b>x?1.5:2.5);m.position.set(0,.5*y,2.5*y),m.near=.1,m.far=Math.max(5e3,4*y),m.lookAt(0,e,0);const n=g||(null==t?void 0:t.current);n&&(n.target.set(0,e,0),n.update())}}),[g,y,b,x,s]),i.createElement("group",p,i.createElement("group",{ref:A},i.createElement("group",{ref:v},e)),d&&i.createElement(If,(0,r.Z)({scale:2*y,far:y/2},d)),l&&i.createElement(_f,{preset:l}),i.createElement("ambientLight",{intensity:c/3}),i.createElement("spotLight",{penumbra:1,position:[f.main[0]*y,f.main[1]*y,f.main[2]*y],intensity:2*c,castShadow:n,"shadow-bias":u}),i.createElement("pointLight",{position:[f.fill[0]*y,f.fill[1]*y,f.fill[2]*y],intensity:c}))}const Pf=e=>0===e?0:Math.pow(2,10*e-10);function Df({children:e,floor:t=.25,segments:n=20,receiveShadow:r,...s}){const a=i.useRef(null);return i.useLayoutEffect((()=>{let e=0;const r=n/n/2,i=a.current.attributes.position;for(let s=0;s{const c=i.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const r=e.getContext("2d"),i=r.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);return i.addColorStop(t,new a.Color(n).getStyle()),i.addColorStop(1,"rgba(0,0,0,0)"),r.fillStyle=i,r.fillRect(0,0,e.width,e.height),e}),[n,t]);return i.createElement("mesh",(0,r.Z)({ref:l},o),i.createElement("planeBufferGeometry",{attach:"geometry",args:[1,1]}),i.createElement("meshBasicMaterial",{attach:"material",transparent:!0,opacity:s,fog:e},i.createElement("canvasTexture",{attach:"map",args:[c]})))}));(0,o.extend)({MeshReflectorMaterial:Dp});const Ff=i.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:n=256,blur:s=[0,0],args:l=[1,1],minDepthThreshold:c=.9,maxDepthThreshold:h=1,depthScale:u=0,depthToBlurRatioBias:d=.25,mirror:p=0,children:f,debug:m=0,distortion:g=1,mixContrast:A=1,distortionMap:v,...y},x)=>{i.useEffect((()=>{console.warn("Reflector has been deprecated and will be removed next major. Replace it with !")}),[]);const b=(0,o.useThree)((({gl:e})=>e)),E=(0,o.useThree)((({camera:e})=>e)),_=(0,o.useThree)((({scene:e})=>e)),S=(s=Array.isArray(s)?s:[s,s])[0]+s[1]>0,w=i.useRef(null),[C]=i.useState((()=>new a.Plane)),[T]=i.useState((()=>new a.Vector3)),[I]=i.useState((()=>new a.Vector3)),[B]=i.useState((()=>new a.Vector3)),[R]=i.useState((()=>new a.Matrix4)),[P]=i.useState((()=>new a.Vector3(0,0,-1))),[D]=i.useState((()=>new a.Vector4)),[L]=i.useState((()=>new a.Vector3)),[F]=i.useState((()=>new a.Vector3)),[U]=i.useState((()=>new a.Vector4)),[O]=i.useState((()=>new a.Matrix4)),[N]=i.useState((()=>new a.PerspectiveCamera)),k=i.useCallback((()=>{if(I.setFromMatrixPosition(w.current.matrixWorld),B.setFromMatrixPosition(E.matrixWorld),R.extractRotation(w.current.matrixWorld),T.set(0,0,1),T.applyMatrix4(R),L.subVectors(I,B),L.dot(T)>0)return;L.reflect(T).negate(),L.add(I),R.extractRotation(E.matrixWorld),P.set(0,0,-1),P.applyMatrix4(R),P.add(B),F.subVectors(I,P),F.reflect(T).negate(),F.add(I),N.position.copy(L),N.up.set(0,1,0),N.up.applyMatrix4(R),N.up.reflect(T),N.lookAt(F),N.far=E.far,N.updateMatrixWorld(),N.projectionMatrix.copy(E.projectionMatrix),O.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),O.multiply(N.projectionMatrix),O.multiply(N.matrixWorldInverse),O.multiply(w.current.matrixWorld),C.setFromNormalAndCoplanarPoint(T,I),C.applyMatrix4(N.matrixWorldInverse),D.set(C.normal.x,C.normal.y,C.normal.z,C.constant);const e=N.projectionMatrix;U.x=(Math.sign(D.x)+e.elements[8])/e.elements[0],U.y=(Math.sign(D.y)+e.elements[9])/e.elements[5],U.z=-1,U.w=(1+e.elements[10])/e.elements[14],D.multiplyScalar(2/D.dot(U)),e.elements[2]=D.x,e.elements[6]=D.y,e.elements[10]=D.z+1,e.elements[14]=D.w}),[]),[G,z,Q,V]=i.useMemo((()=>{const r={minFilter:a.LinearFilter,magFilter:a.LinearFilter,encoding:b.outputEncoding},i=new a.WebGLRenderTarget(n,n,r);i.depthBuffer=!0,i.depthTexture=new a.DepthTexture(n,n),i.depthTexture.format=a.DepthFormat,i.depthTexture.type=a.UnsignedShortType;const o=new a.WebGLRenderTarget(n,n,r);return[i,o,new Pp({gl:b,resolution:n,width:s[0],height:s[1],minDepthThreshold:c,maxDepthThreshold:h,depthScale:u,depthToBlurRatioBias:d}),{mirror:p,textureMatrix:O,mixBlur:e,tDiffuse:i.texture,tDepth:i.depthTexture,tDiffuseBlur:o.texture,hasBlur:S,mixStrength:t,minDepthThreshold:c,maxDepthThreshold:h,depthScale:u,depthToBlurRatioBias:d,transparent:!0,debug:m,distortion:g,distortionMap:v,mixContrast:A,"defines-USE_BLUR":S?"":void 0,"defines-USE_DEPTH":u>0?"":void 0,"defines-USE_DISTORTION":v?"":void 0}]}),[b,s,O,n,p,S,e,t,c,h,u,d,m,g,v,A]);return(0,o.useFrame)((()=>{if(null==w||!w.current)return;w.current.visible=!1;const e=b.xr.enabled,t=b.shadowMap.autoUpdate;k(),b.xr.enabled=!1,b.shadowMap.autoUpdate=!1,b.setRenderTarget(G),b.state.buffers.depth.setMask(!0),b.autoClear||b.clear(),b.render(_,N),S&&Q.render(b,G,z),b.xr.enabled=e,b.shadowMap.autoUpdate=t,w.current.visible=!0,b.setRenderTarget(null)})),i.createElement("mesh",(0,r.Z)({ref:M([w,x])},y),i.createElement("planeBufferGeometry",{args:l}),f?f("meshReflectorMaterial",V):i.createElement("meshReflectorMaterial",V))}));class Uf extends a.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},opacity:{value:1},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new a.Vector3(0,0,0)},lightColor:{value:new a.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new a.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation; \n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include \n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n uniform float opacity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity * opacity);\n\n #include \n\t #include \n }"})}}const Of=new a.Vector3,Nf=i.forwardRef((({opacity:e=1,radiusTop:t,radiusBottom:n,depthBuffer:s,color:l="white",distance:c=5,angle:h=.15,attenuation:u=5,anglePower:d=5,...p},f)=>{const m=i.useRef(null),g=(0,o.useThree)((e=>e.size)),A=(0,o.useThree)((e=>e.camera)),v=(0,o.useThree)((e=>e.viewport.dpr)),[y]=i.useState((()=>new Uf));t=void 0===t?.1:t,n=void 0===n?7*h:n,(0,o.useFrame)((()=>{y.uniforms.spotPosition.value.copy(m.current.getWorldPosition(Of)),m.current.lookAt(m.current.parent.target.getWorldPosition(Of))}));const x=i.useMemo((()=>{const e=new a.CylinderGeometry(t,n,c,128,64,!0);return e.applyMatrix4((new a.Matrix4).makeTranslation(0,-c/2,0)),e.applyMatrix4((new a.Matrix4).makeRotationX(-Math.PI/2)),e}),[h,c,t,n]);return i.createElement("spotLight",(0,r.Z)({ref:f,angle:h,color:l,distance:c},p),i.createElement("mesh",{ref:m,geometry:x,raycast:()=>null},i.createElement("primitive",{object:y,attach:"material","uniforms-opacity-value":e,"uniforms-lightColor-value":l,"uniforms-attenuation-value":u,"uniforms-anglePower-value":d,"uniforms-depth-value":s,"uniforms-cameraNear-value":A.near,"uniforms-cameraFar-value":A.far,"uniforms-resolution-value":s?[g.width*v,g.height*v]:[0,0]})))})),kf=i.forwardRef((({args:e,map:t,toneMapped:n=!1,color:s="white",form:l="rect",intensity:c=1,scale:h=1,target:u,children:d,...p},f)=>{const m=i.useRef(null);return i.useLayoutEffect((()=>{d||p.material||((0,o.applyProps)(m.current.material,{color:s}),m.current.material.color.multiplyScalar(c))}),[s,c,d,p.material]),i.useLayoutEffect((()=>{u&&m.current.lookAt(Array.isArray(u)?new a.Vector3(...u):u)}),[u]),h=Array.isArray(h)&&2===h.length?[h[0],h[1],1]:h,i.createElement("mesh",(0,r.Z)({ref:M([m,f]),scale:h},p),"circle"===l?i.createElement("ringGeometry",{args:[0,1,64]}):"ring"===l?i.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===l?i.createElement("planeGeometry",null):i.createElement(l,{args:e}),d||(p.material?null:i.createElement("meshBasicMaterial",{toneMapped:n,map:t,side:a.DoubleSide})))}));var Gf=Object.defineProperty,zf=(e,t,n)=>(((e,t,n)=>{t in e?Gf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);const Qf={uniforms:{turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new a.Vector3},up:{value:new a.Vector3(0,1,0)}},vertexShader:"\n uniform vec3 sunPosition;\n uniform float rayleigh;\n uniform float turbidity;\n uniform float mieCoefficient;\n uniform vec3 up;\n\n varying vec3 vWorldPosition;\n varying vec3 vSunDirection;\n varying float vSunfade;\n varying vec3 vBetaR;\n varying vec3 vBetaM;\n varying float vSunE;\n\n // constants for atmospheric scattering\n const float e = 2.71828182845904523536028747135266249775724709369995957;\n const float pi = 3.141592653589793238462643383279502884197169;\n\n // wavelength of used primaries, according to preetham\n const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 );\n // this pre-calcuation replaces older TotalRayleigh(vec3 lambda) function:\n // (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn))\n const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 );\n\n // mie stuff\n // K coefficient for the primaries\n const float v = 4.0;\n const vec3 K = vec3( 0.686, 0.678, 0.666 );\n // MieConst = pi * pow( ( 2.0 * pi ) / lambda, vec3( v - 2.0 ) ) * K\n const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 );\n\n // earth shadow hack\n // cutoffAngle = pi / 1.95;\n const float cutoffAngle = 1.6110731556870734;\n const float steepness = 1.5;\n const float EE = 1000.0;\n\n float sunIntensity( float zenithAngleCos ) {\n zenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 );\n return EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) );\n }\n\n vec3 totalMie( float T ) {\n float c = ( 0.2 * T ) * 10E-18;\n return 0.434 * c * MieConst;\n }\n\n void main() {\n\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n gl_Position.z = gl_Position.w; // set z to camera.far\n\n vSunDirection = normalize( sunPosition );\n\n vSunE = sunIntensity( dot( vSunDirection, up ) );\n\n vSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 );\n\n float rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) );\n\n // extinction (absorbtion + out scattering)\n // rayleigh coefficients\n vBetaR = totalRayleigh * rayleighCoefficient;\n\n // mie coefficients\n vBetaM = totalMie( turbidity ) * mieCoefficient;\n\n }\n ",fragmentShader:`\n varying vec3 vWorldPosition;\n varying vec3 vSunDirection;\n varying float vSunfade;\n varying vec3 vBetaR;\n varying vec3 vBetaM;\n varying float vSunE;\n\n uniform float mieDirectionalG;\n uniform vec3 up;\n\n const vec3 cameraPos = vec3( 0.0, 0.0, 0.0 );\n\n // constants for atmospheric scattering\n const float pi = 3.141592653589793238462643383279502884197169;\n\n const float n = 1.0003; // refractive index of air\n const float N = 2.545E25; // number of molecules per unit volume for air at 288.15K and 1013mb (sea level -45 celsius)\n\n // optical length at zenith for molecules\n const float rayleighZenithLength = 8.4E3;\n const float mieZenithLength = 1.25E3;\n // 66 arc seconds -> degrees, and the cosine of that\n const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;\n\n // 3.0 / ( 16.0 * pi )\n const float THREE_OVER_SIXTEENPI = 0.05968310365946075;\n // 1.0 / ( 4.0 * pi )\n const float ONE_OVER_FOURPI = 0.07957747154594767;\n\n float rayleighPhase( float cosTheta ) {\n return THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) );\n }\n\n float hgPhase( float cosTheta, float g ) {\n float g2 = pow( g, 2.0 );\n float inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 );\n return ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse );\n }\n\n void main() {\n\n vec3 direction = normalize( vWorldPosition - cameraPos );\n\n // optical length\n // cutoff angle at 90 to avoid singularity in next formula.\n float zenithAngle = acos( max( 0.0, dot( up, direction ) ) );\n float inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) );\n float sR = rayleighZenithLength * inverse;\n float sM = mieZenithLength * inverse;\n\n // combined extinction factor\n vec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) );\n\n // in scattering\n float cosTheta = dot( direction, vSunDirection );\n\n float rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 );\n vec3 betaRTheta = vBetaR * rPhase;\n\n float mPhase = hgPhase( cosTheta, mieDirectionalG );\n vec3 betaMTheta = vBetaM * mPhase;\n\n vec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) );\n Lin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) );\n\n // nightsky\n float theta = acos( direction.y ); // elevation --\x3e y-axis, [-pi/2, pi/2]\n float phi = atan( direction.z, direction.x ); // azimuth --\x3e x-axis [-pi/2, pi/2]\n vec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 );\n vec3 L0 = vec3( 0.1 ) * Fex;\n\n // composition + solar disc\n float sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta );\n L0 += ( vSunE * 19000.0 * Fex ) * sundisk;\n\n vec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 );\n\n vec3 retColor = pow( texColor, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) );\n\n gl_FragColor = vec4( retColor, 1.0 );\n\n #include \n #include <${Kc>=154?"colorspace_fragment":"encodings_fragment"}>\n\n }\n `},Vf=new a.ShaderMaterial({name:"SkyShader",fragmentShader:Qf.fragmentShader,vertexShader:Qf.vertexShader,uniforms:a.UniformsUtils.clone(Qf.uniforms),side:a.BackSide,depthWrite:!1});class Hf extends a.Mesh{constructor(){super(new a.BoxGeometry(1,1,1),Vf)}}function jf(e,t,n=new a.Vector3){const r=Math.PI*(e-.5),i=2*Math.PI*(t-.5);return n.x=Math.cos(i),n.y=Math.sin(r),n.z=Math.sin(i),n}zf(Hf,"SkyShader",Qf),zf(Hf,"material",Vf);const Wf=i.forwardRef((({inclination:e=.6,azimuth:t=.1,distance:n=1e3,mieCoefficient:s=.005,mieDirectionalG:o=.8,rayleigh:l=.5,turbidity:c=10,sunPosition:h=jf(e,t),...u},d)=>{const p=i.useMemo((()=>(new a.Vector3).setScalar(n)),[n]),[f]=i.useState((()=>new Hf));return i.createElement("primitive",(0,r.Z)({dispose:void 0,object:f,ref:d,"material-uniforms-mieCoefficient-value":s,"material-uniforms-mieDirectionalG-value":o,"material-uniforms-rayleigh-value":l,"material-uniforms-sunPosition-value":h,"material-uniforms-turbidity-value":c,scale:p},u))}));class Xf extends a.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(mvPosition.x + 2.0 * time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:"\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n\n #include \n\t #include \n }"})}}const Yf=e=>(new a.Vector3).setFromSpherical(new a.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),qf=i.forwardRef((({radius:e=100,depth:t=50,count:n=5e3,saturation:r=0,factor:s=4,fade:l=!1},c)=>{const h=i.useRef(),[u,d,p]=i.useMemo((()=>{const i=[],o=[],l=Array.from({length:n},(()=>(.5+.5*Math.random())*s)),c=new a.Color;let h=e+t;const u=t/n;for(let e=0;eh.current&&(h.current.uniforms.time.value=e.clock.getElapsedTime())));const[f]=i.useState((()=>new Xf));return i.createElement("points",{ref:c},i.createElement("bufferGeometry",{attach:"geometry"},i.createElement("bufferAttribute",{attachObject:["attributes","position"],args:[u,3]}),i.createElement("bufferAttribute",{attachObject:["attributes","color"],args:[d,3]}),i.createElement("bufferAttribute",{attachObject:["attributes","size"],args:[p,1]})),i.createElement("primitive",{dispose:void 0,ref:h,object:f,attach:"material",blending:a.AdditiveBlending,"uniforms-fade-value":l,transparent:!0,vertexColors:!0}))})),Kf="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png";function Jf({opacity:e=.5,speed:t=.4,width:n=10,depth:r=1.5,segments:s=20,texture:a=Kf,color:l="#ffffff",depthTest:c=!0,...h}){const u=i.useRef(),d=Oa(a),p=i.useMemo((()=>[...new Array(s)].map(((e,r)=>({x:n/2-Math.random()*n,y:n/2-Math.random()*n,scale:.4+Math.sin((r+1)/s*Math.PI)*(10*(.2+Math.random())),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*t})))),[n,s,t]);return(0,o.useFrame)((e=>{var t;return null==(t=u.current)?void 0:t.children.forEach(((t,n)=>{t.children[0].rotation.z+=p[n].rotation,t.children[0].scale.setScalar(p[n].scale+(1+Math.sin(e.clock.getElapsedTime()/10))/2*n/10)}))})),i.createElement("group",h,i.createElement("group",{position:[0,0,s/2*r],ref:u},p.map((({x:t,y:n,scale:s,density:a},o)=>i.createElement(Oi,{key:o,position:[t,n,-o*r]},i.createElement(jp,{scale:s,rotation:[0,0,0]},i.createElement("meshStandardMaterial",{map:d,transparent:!0,opacity:s/6*a*e,depthTest:c,color:l})))))))}const Zf="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/matcaps.json",$f="https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d";function em(e=0,t=1024){const n=pa((()=>fetch(Zf).then((e=>e.json()))),["matcapList"]),r=n[0],s=i.useMemo((()=>Object.keys(n).length),[]),a=`${i.useMemo((()=>"string"==typeof e?e:"number"==typeof e?n[e]:null),[e])||r}${function(e){switch(e){case 64:return"-64px";case 128:return"-128px";case 256:return"-256px";case 512:return"-512px";default:return""}}(t)}.png`,o=`${$f}/${t}/${a}`;return[Oa(o),o,s]}const tm="https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb",nm="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json";function rm(e=0,t={}){const{repeat:n=[1,1],anisotropy:r=1,offset:s=[0,0]}=t,o=pa((()=>fetch(nm).then((e=>e.json()))),["normalsList"]),l=i.useMemo((()=>Object.keys(o).length),[]),c=o[0],h=o[e]||c,u=`${tm}/normals/${h}`,d=Oa(u);return i.useLayoutEffect((()=>{d&&(d.wrapS=d.wrapT=a.RepeatWrapping,d.repeat=new a.Vector2(n[0],n[1]),d.offset=new a.Vector2(s[0],s[1]),d.anisotropy=r)}),[d,r,n,s]),[d,u,l]}const im=new a.Matrix4,sm=new a.Matrix4,am=[],om=new a.Mesh;class lm extends a.Group{constructor(){super(),this.color=new a.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const n=this.instance.current;if(!n)return;if(!n.geometry||!n.material)return;om.geometry=n.geometry;const r=n.matrixWorld;let i=n.userData.instances.indexOf(this.instanceKey);if(!(-1===i||i>n.count)){n.getMatrixAt(i,im),sm.multiplyMatrices(r,im),om.matrixWorld=sm,om.raycast(e,am);for(let e=0,n=am.length;e{const c=i.useRef(null),[h,u]=i.useState([]),[[d,p,f]]=i.useState((()=>[new Float32Array(3*n),Float32Array.from({length:3*n},(()=>1)),Float32Array.from({length:n},(()=>1))]));i.useLayoutEffect((()=>{c.current.geometry.drawRange.count=Math.min(n,void 0!==t?t:n,h.length)}),[h,t]),i.useEffect((()=>{c.current.geometry.attributes.position.needsUpdate=!0})),(0,o.useFrame)((()=>{for(c.current.updateMatrix(),c.current.updateMatrixWorld(),dm.copy(c.current.matrixWorld).invert(),cm=0;cm{const e={};for(cm=0;cm({...e,[t]:e=>{var n,r,i;const s=null==(n=h[e.index])?void 0:n.current;return null==s||null==(r=s.__r3f)||null==(i=r.handlers)?void 0:i[t]({...e,object:s})}})),{})}),[e,h]),g=i.useMemo((()=>({subscribe:e=>(u((t=>[...t,e])),()=>u((t=>t.filter((t=>t.current!==e.current)))))})),[]);return i.createElement("points",(0,r.Z)({matrixAutoUpdate:!1,ref:M([l,c])},m,s),i.createElement("bufferGeometry",null,i.createElement("bufferAttribute",{attachObject:["attributes","position"],count:d.length/3,array:d,itemSize:3,usage:a.DynamicDrawUsage}),i.createElement("bufferAttribute",{attachObject:["attributes","color"],count:p.length/3,array:p,itemSize:3,usage:a.DynamicDrawUsage}),i.createElement("bufferAttribute",{attachObject:["attributes","size"],count:f.length,array:f,itemSize:1,usage:a.DynamicDrawUsage})),i.createElement(um.Provider,{value:g},e))})),mm=i.forwardRef((({children:e,...t},n)=>{i.useMemo((()=>(0,o.extend)({Position:lm})),[]);const s=i.useRef(),{subscribe:a}=i.useContext(um);return i.useLayoutEffect((()=>a(s)),[]),i.createElement("position",(0,r.Z)({ref:M([n,s])},t),e)})),gm=i.forwardRef((({children:e,positions:t,colors:n,sizes:s,stride:l=3,...c},h)=>{const u=i.useRef(null);return(0,o.useFrame)((()=>{const e=u.current.geometry.attributes;e.position.needsUpdate=!0,n&&(e.color.needsUpdate=!0),s&&(e.size.needsUpdate=!0)})),i.createElement("points",(0,r.Z)({ref:M([h,u])},c),i.createElement("bufferGeometry",null,i.createElement("bufferAttribute",{attachObject:["attributes","position"],count:t.length/l,array:t,itemSize:l,usage:a.DynamicDrawUsage}),n&&i.createElement("bufferAttribute",{attachObject:["attributes","color"],count:n.length/l,array:n,itemSize:3,usage:a.DynamicDrawUsage}),s&&i.createElement("bufferAttribute",{attachObject:["attributes","size"],count:s.length/l,array:s,itemSize:1,usage:a.DynamicDrawUsage})),e)})),Am=i.forwardRef(((e,t)=>e.positions instanceof Float32Array?i.createElement(gm,(0,r.Z)({},e,{ref:t})):i.createElement(fm,(0,r.Z)({},e,{ref:t}))));var vm=n(45697),ym=n.n(vm);function xm(e){return bm(e.children,e.components)}function bm(e,t,n){if(n=n||[],!t[0])return e(n);function r(r){return bm(e,t.slice(1),n.concat([r]))}return"function"==typeof t[0]?t[0]({results:n,render:r}):(0,i.cloneElement)(t[0],{children:r})}let Em,_m;xm.propTypes={children:ym().func.isRequired,components:ym().arrayOf(ym().oneOfType([ym().element,ym().func])).isRequired};const Sm=i.createContext(null),wm=new a.Matrix4,Mm=new a.Matrix4,Cm=new a.Matrix4;new a.Color;const Tm=new a.Vector3,Im=new a.Quaternion,Bm=new a.Vector3,Rm=i.forwardRef((({context:e,children:t,...n},s)=>{i.useMemo((()=>(0,o.extend)({Position:lm})),[]);const a=i.useRef(),{subscribe:l,getParent:c}=i.useContext(e||Sm);return i.useLayoutEffect((()=>l(a)),[]),i.createElement("position",(0,r.Z)({instance:c(),instanceKey:a,ref:M([s,a])},n),t)})),Pm=i.forwardRef((({children:e,range:t,limit:n=1e3,frames:s=1/0,...l},c)=>{const[{context:h,instance:u}]=i.useState((()=>{const e=i.createContext(null);return{context:e,instance:i.forwardRef(((t,n)=>i.createElement(Rm,(0,r.Z)({context:e},t,{ref:n}))))}})),d=i.useRef(null),[p,f]=i.useState([]),[[m,g]]=i.useState((()=>{const e=new Float32Array(16*n);for(Em=0;Em1)))]}));i.useLayoutEffect((()=>{d.current.count=d.current.instanceMatrix.updateRange.count=d.current.instanceColor.updateRange.count=Math.min(n,void 0!==t?t:n,p.length)}),[p,t]),i.useEffect((()=>{d.current.instanceMatrix.needsUpdate=!0}));let A=0;(0,o.useFrame)((()=>{if(s===1/0||A({getParent:()=>d,subscribe:e=>(f((t=>[...t,e])),()=>f((t=>t.filter((t=>t.current!==e.current)))))})),[]);return i.createElement("instancedMesh",(0,r.Z)({userData:{instances:p},matrixAutoUpdate:!1,ref:M([c,d]),args:[null,null,0],raycast:()=>null},l),i.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:m.length/16,array:m,itemSize:16,usage:a.DynamicDrawUsage}),i.createElement("instancedBufferAttribute",{attach:"instanceColor",count:g.length/3,array:g,itemSize:3,usage:a.DynamicDrawUsage}),"function"==typeof e?i.createElement(h.Provider,{value:v},e(u)):i.createElement(Sm.Provider,{value:v},e))}));function Dm({meshes:e,children:t,...n}){const s=Array.isArray(e);if(!s)for(const r of Object.keys(e))e[r].isMesh||delete e[r];return i.createElement(xm,{components:(s?e:Object.values(e)).map((({geometry:e,material:t})=>i.createElement(Pm,(0,r.Z)({key:e.uuid,geometry:e,material:t},n))))},(n=>s?t(...n):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,r)=>({...e,[t]:n[r]})),{}))))}const Lm=i.createContext(null),Fm=e=>e instanceof a.Vector3?e.toArray():e,Um=i.forwardRef(((e,t)=>{const{limit:n=1e3,lineWidth:s=1,children:l,...c}=e,[h,u]=i.useState([]),[d]=i.useState((()=>new os)),[p]=i.useState((()=>new zi)),[f]=i.useState((()=>new Gi)),[m]=i.useState((()=>new a.Vector2(512,512))),[g]=i.useState((()=>Array(6*n).fill(0))),[A]=i.useState((()=>Array(6*n).fill(0))),v=i.useMemo((()=>({subscribe:e=>(u((t=>[...t,e])),()=>u((t=>t.filter((t=>t.current!==e.current)))))})),[]);return(0,o.useFrame)((()=>{for(let i=0;i{const n=i.useContext(Lm);if(!n)throw"Segment must used inside Segments component.";const s=i.useRef();return i.useMemo((()=>(0,o.extend)({SegmentObject:Om})),[]),i.useLayoutEffect((()=>n.subscribe(s)),[]),i.createElement("segmentObject",(0,r.Z)({ref:M([s,t])},e))})),km=i.forwardRef((({children:e,distances:t,...n},s)=>{const a=i.useRef(null);return i.useLayoutEffect((()=>{const{current:e}=a;e.levels.length=0,e.children.forEach(((n,r)=>e.levels.push({object:n,distance:t[r]})))})),(0,o.useFrame)((e=>{var t;return null==(t=a.current)?void 0:t.update(e.camera)})),i.createElement("lOD",(0,r.Z)({ref:M([a,s])},n),e)}));function Gm({all:e,scene:t,camera:n}){const r=(0,o.useThree)((({gl:e})=>e)),s=(0,o.useThree)((({camera:e})=>e)),l=(0,o.useThree)((({scene:e})=>e));return i.useLayoutEffect((()=>{const i=[];e&&(t||l).traverse((e=>{!1===e.visible&&(i.push(e),e.visible=!0)})),r.compile(t||l,n||s);const o=new a.WebGLCubeRenderTarget(128);new a.CubeCamera(.01,1e5,o).update(r,t||l),o.dispose(),i.forEach((e=>e.visible=!1))}),[]),null}function zm(){const e=(0,o.useThree)((e=>e.gl));return(0,i.useEffect)((()=>(e.shadowMap.autoUpdate=!1,e.shadowMap.needsUpdate=!0,()=>{e.shadowMap.autoUpdate=e.shadowMap.needsUpdate=!0})),[e.shadowMap]),null}const Qm=new a.Matrix4,Vm=new a.Ray,Hm=new a.Sphere,jm=new a.Vector3;function Wm(e,t){const n=this.geometry,r=this.material,i=this.matrixWorld;void 0!==r&&(null===n.boundingSphere&&n.computeBoundingSphere(),Hm.copy(n.boundingSphere),Hm.applyMatrix4(i),!1!==e.ray.intersectsSphere(Hm)&&(Qm.copy(i).invert(),Vm.copy(e.ray).applyMatrix4(Qm),null!==n.boundingBox&&null===Vm.intersectBox(n.boundingBox,jm)||t.push({distance:jm.distanceTo(e.ray.origin),point:jm.clone(),object:this})))}function Xm({pixelated:e}){const t=(0,o.useThree)((e=>e.gl)),n=(0,o.useThree)((e=>e.internal.active)),r=(0,o.useThree)((e=>e.performance.current)),s=(0,o.useThree)((e=>e.viewport.initialDpr)),a=(0,o.useThree)((e=>e.setDpr));return i.useEffect((()=>{const r=t.domElement;return()=>{n&&a(s),e&&r&&(r.style.imageRendering="auto")}}),[]),i.useEffect((()=>{a(r*s),e&&t.domElement&&(t.domElement.style.imageRendering=1===r?"auto":"pixelated")}),[r]),null}function Ym(){const e=(0,o.useThree)((e=>e.get)),t=(0,o.useThree)((e=>e.performance.current));return i.useEffect((()=>{const t=e().raycaster.enabled;return()=>{e().raycaster.enabled=t}}),[]),i.useEffect((()=>{e().raycaster.enabled=1===t}),[t]),null}},64232:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Canvas:()=>J,ReactThreeFiber:()=>E,_roots:()=>ie,act:()=>me,addAfterEffect:()=>V,addEffect:()=>Q,addTail:()=>H,advance:()=>oe,applyProps:()=>ce,context:()=>F,createPortal:()=>Ae,dispose:()=>fe,events:()=>X,extend:()=>P,invalidate:()=>ae,reconciler:()=>le,render:()=>ue,unmountComponentAtNode:()=>pe,useFrame:()=>$,useGraph:()=>te,useLoader:()=>re,useThree:()=>Z});var r=n(99477),i=n(67294),s=n(14671),a=n(60374),o=n(76525),l=n.n(o),c=n(63840),h=n(64063),u=n.n(h);const d=[];function p(e,t,n,r=0,i=!1){for(const a of t)if(u()(n,a.args)){if(i)return;if(a.error)throw a.error;if(a.response)return a.response;throw a.promise}const s={args:n,promise:e(...n).then((e=>s.response=null==e||e)).catch((e=>s.error=null!=e?e:"unknown error")).then((()=>{r>0&&setTimeout((()=>{const e=t.indexOf(s);-1!==e&&t.splice(e,1)}),r)}))};if(t.push(s),!i)throw s.promise}function f(e,...t){if(void 0===t||0===t.length)e.splice(0,e.length);else{const n=e.find((e=>u()(t,e.args)));if(n){const t=e.indexOf(n);-1!==t&&e.splice(t,1)}}}function m(e,...t){return p(e,d,t,m.lifespan)}m.lifespan=0,m.clear=(...e)=>f(d,...e),m.preload=(e,...t)=>{p(e,d,t,m.lifespan,!0)},m.peek=(...e)=>{var t;return null==(t=d.find((t=>u()(e,t.args))))?void 0:t.response};var g=n(20296),A=n.n(g);function v(e){let{debounce:t,scroll:n,polyfill:r,offsetSize:s}=void 0===e?{debounce:0,scroll:!1,offsetSize:!1}:e;const a=r||("undefined"==typeof window?class{}:window.ResizeObserver);if(!a)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,l]=(0,i.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=(0,i.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),h=t?"number"==typeof t?t:t.scroll:null,u=t?"number"==typeof t?t:t.resize:null,d=(0,i.useRef)(!1);(0,i.useEffect)((()=>(d.current=!0,()=>{d.current=!1})));const[p,f,m]=(0,i.useMemo)((()=>{const e=()=>{if(!c.current.element)return;const{left:e,top:t,width:n,height:r,bottom:i,right:a,x:o,y:h}=c.current.element.getBoundingClientRect(),u={left:e,top:t,width:n,height:r,bottom:i,right:a,x:o,y:h};c.current.element instanceof HTMLElement&&s&&(u.height=c.current.element.offsetHeight,u.width=c.current.element.offsetWidth),Object.freeze(u),d.current&&!b(c.current.lastBounds,u)&&l(c.current.lastBounds=u)};return[e,u?A()(e,u):e,h?A()(e,h):e]}),[l,s,h,u]);function g(){c.current.scrollContainers&&(c.current.scrollContainers.forEach((e=>e.removeEventListener("scroll",m,!0))),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null)}function v(){c.current.element&&(c.current.resizeObserver=new a(m),c.current.resizeObserver.observe(c.current.element),n&&c.current.scrollContainers&&c.current.scrollContainers.forEach((e=>e.addEventListener("scroll",m,{capture:!0,passive:!0}))))}var x;return function(e,t){(0,i.useEffect)((()=>{if(t){const t=e;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",t,!0)}}}),[e,t])}(m,Boolean(n)),x=f,(0,i.useEffect)((()=>{const e=x;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[x]),(0,i.useEffect)((()=>{g(),v()}),[n,m,f]),(0,i.useEffect)((()=>g),[]),[e=>{e&&e!==c.current.element&&(g(),c.current.element=e,c.current.scrollContainers=y(e),v())},o,p]}function y(e){const t=[];if(!e||e===document.body)return t;const{overflow:n,overflowX:r,overflowY:i}=window.getComputedStyle(e);return[n,r,i].some((e=>"auto"===e||"scroll"===e))&&t.push(e),[...t,...y(e.parentElement)]}const x=["x","y","top","bottom","left","right","width","height"],b=(e,t)=>x.every((n=>e[n]===t[n]));var E=Object.freeze({__proto__:null});const _={obj:e=>e===Object(e)&&!_.arr(e)&&"function"!=typeof e,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,und:e=>void 0===e,arr:e=>Array.isArray(e),equ(e,t){if(typeof e!=typeof t||!!e!=!!t)return!1;if(_.str(e)||_.num(e)||_.obj(e))return e===t;if(_.arr(e)&&e==t)return!0;let n;for(n in e)if(!(n in t))return!1;for(n in t)if(e[n]!==t[n])return!1;return!_.und(n)||e===t}};function S(e){return(e.eventObject||e.object).uuid+"/"+e.index}function w(e){const t=new r.Vector3;function n(t){const{internal:n}=e.getState(),r=t.offsetX-n.initialClick[0],i=t.offsetY-n.initialClick[1];return Math.round(Math.sqrt(r*r+i*i))}function i(e){return e.filter((e=>["Move","Over","Enter","Out","Leave"].some((t=>{var n;return null==(n=e.__r3f.handlers)?void 0:n["onPointer"+t]}))))}function s(t){const{internal:n}=e.getState();Array.from(n.hovered.values()).forEach((e=>{if(!t.length||!t.find((t=>t.object===e.object&&t.index===e.index))){const r=e.eventObject.__r3f.handlers;if(n.hovered.delete(S(e)),r){const n={...e,intersections:t||[]};null==r.onPointerOut||r.onPointerOut(n),null==r.onPointerLeave||r.onPointerLeave(n)}}}))}function a(e,t){t.forEach((t=>{var n;return null==(n=t.__r3f.handlers)||null==n.onPointerMissed?void 0:n.onPointerMissed(e)}))}return{handlePointer:r=>{switch(r){case"onPointerLeave":case"onPointerCancel":return()=>s([]);case"onLostPointerCapture":return t=>{"pointerId"in t&&e.getState().internal.capturedMap.delete(t.pointerId),s([])}}return o=>{const{onPointerMissed:l,internal:c}=e.getState();!function(t){var n;const r=e.getState(),{raycaster:i,mouse:s,camera:a,size:o}=r,{offsetX:l,offsetY:c}=null!=(n=null==i.computeOffsets?void 0:i.computeOffsets(t,r))?n:t,{width:h,height:u}=o;s.set(l/h*2-1,-c/u*2+1),i.setFromCamera(s,a)}(o);const h="onPointerMove"===r,u=function(t,n){const{internal:r}=e.getState();return"pointerId"in n&&r.capturedMap.has(n.pointerId)&&t.push(...r.capturedMap.get(n.pointerId).values()),t}(function(t){const n=e.getState(),{raycaster:r,internal:i}=n;if(!r.enabled)return[];const s=new Set,a=[],o=t?t(i.interaction):i.interaction;let l=r.intersectObjects(o,!0).filter((e=>{const t=S(e);return!s.has(t)&&(s.add(t),!0)}));r.filter&&(l=r.filter(l,n));for(const e of l){let t=e.object;for(;t;){var c;(null==(c=t.__r3f)?void 0:c.handlers)&&a.push({...e,eventObject:t}),t=t.parent}}return a}(h?i:void 0),o);h&&s(u),function(r,i,a){const{raycaster:o,mouse:l,camera:c,internal:h}=e.getState();if(r.length){const e=t.set(l.x,l.y,0).unproject(c),u="click"===i.type?n(i):0,d=e=>i.target.releasePointerCapture(e),p={stopped:!1};for(const t of r){const n=e=>{var n,r;return null!=(n=null==(r=h.capturedMap.get(e))?void 0:r.has(t.eventObject))&&n},f=e=>{h.capturedMap.has(e)?h.capturedMap.get(e).set(t.eventObject,t):h.capturedMap.set(e,new Map([[t.eventObject,t]])),i.target.setPointerCapture(e)};let m={};for(let e in Object.getPrototypeOf(i)){let t=i[e];"function"!=typeof t&&(m[e]=t)}let g={...t,...m,spaceX:l.x,spaceY:l.y,intersections:r,stopped:p.stopped,delta:u,unprojectedPoint:e,ray:o.ray,camera:c,stopPropagation:()=>{const e="pointerId"in i&&h.capturedMap.get(i.pointerId);(!e||e.has(t.eventObject))&&(g.stopped=p.stopped=!0,h.hovered.size&&Array.from(h.hovered.values()).find((e=>e.eventObject===t.eventObject)))&&s([...r.slice(0,r.indexOf(t)),t])},target:{hasPointerCapture:n,setPointerCapture:f,releasePointerCapture:d},currentTarget:{hasPointerCapture:n,setPointerCapture:f,releasePointerCapture:d},sourceEvent:i,nativeEvent:i};if(a(g),!0===p.stopped)break}}}(u,o,(e=>{const t=e.eventObject,n=t.__r3f.handlers;if(n)if(h){if(n.onPointerOver||n.onPointerEnter||n.onPointerOut||n.onPointerLeave){const t=S(e),r=c.hovered.get(t);r?r.stopped&&e.stopPropagation():(c.hovered.set(t,e),null==n.onPointerOver||n.onPointerOver(e),null==n.onPointerEnter||n.onPointerEnter(e))}null==n.onPointerMove||n.onPointerMove(e)}else{const i=null==n?void 0:n[r];i&&("onClick"!==r&&"onContextMenu"!==r&&"onDoubleClick"!==r||c.initialHits.includes(t))&&(i(e),a(o,c.interaction.filter((e=>e!==t))))}})),"onPointerDown"===r&&(c.initialClick=[o.offsetX,o.offsetY],c.initialHits=u.map((e=>e.eventObject))),"onClick"!==r&&"onContextMenu"!==r&&"onDoubleClick"!==r||u.length||n(o)<=2&&(a(o,c.interaction),l&&l(o))}}}}const M=e=>e&&!!e.getState,C=(e,t)=>{var n,r;return{root:M(e)?e:null!=(n=null==(r=e.__r3f)?void 0:r.root)?n:t.__r3f.root,container:M(e)?e.getState().scene:e}},T="__default",I={},B=["children","key","ref"];let R={},P=e=>{R={...R,...e}};function D(e,t){const n=e;return(null!=t&&t.instance||!n.__r3f)&&(n.__r3f={root:null,memoizedProps:{},objects:[],...t}),e}const L=e=>e&&e.isOrthographicCamera,F=i.createContext(null),U=(e,t,n,i)=>{const{gl:o,size:l,shadows:c=!1,linear:h=!1,flat:u=!1,vr:d=!1,orthographic:p=!1,frameloop:f="always",dpr:m=1,performance:g,clock:A=new r.Clock,raycaster:v,camera:y,onPointerMissed:x}=i;c&&(o.shadowMap.enabled=!0,"object"==typeof c?Object.assign(o.shadowMap,c):o.shadowMap.type=r.PCFSoftShadowMap),h||(u||(o.toneMapping=r.ACESFilmicToneMapping),o.outputEncoding=r.sRGBEncoding),"never"===f&&(A.stop(),A.elapsedTime=0);const b=(0,s.Z)(((s,a)=>{const l=new r.Raycaster,{params:c,...b}=v||{};e(l,{enabled:!0,...b,params:{...l.params,...c}},{});const E=y instanceof r.Camera,_=E?y:p?new r.OrthographicCamera(0,0,0,0,.1,1e3):new r.PerspectiveCamera(75,0,.1,1e3);function S(e){return Array.isArray(e)?Math.min(Math.max(e[0],window.devicePixelRatio),e[1]):e}E||(_.position.z=5,y&&e(_,y,{}),_.lookAt(0,0,0));const w=S(m),M=new r.Vector3,C=new r.Vector3;function T(e=a().camera,t=C,n=a().size){const{width:r,height:i}=n,s=r/i,o=e.getWorldPosition(M).distanceTo(t);if(L(e))return{width:r/e.zoom,height:i/e.zoom,factor:1,distance:o,aspect:s};{const t=e.fov*Math.PI/180,n=2*Math.tan(t/2)*o,a=n*(r/i);return{width:a,height:n,factor:r/a,distance:o,aspect:s}}}let I;const B=e=>s((t=>({performance:{...t.performance,current:e}})));return{gl:o,set:s,get:a,invalidate:()=>t(a()),advance:(e,t)=>n(e,t,a()),linear:h,flat:u,scene:D(new r.Scene),camera:_,raycaster:l,clock:A,mouse:new r.Vector2,vr:d,frameloop:f,onPointerMissed:x,performance:{current:1,min:.5,max:1,debounce:200,...g,regress:()=>{const e=a();I&&clearTimeout(I),e.performance.current!==e.performance.min&&B(e.performance.min),I=setTimeout((()=>B(a().performance.max)),e.performance.debounce)}},size:{width:0,height:0},viewport:{initialDpr:w,dpr:w,width:0,height:0,aspect:0,distance:0,factor:0,getCurrentViewport:T},setSize:(e,t)=>{const n={width:e,height:t};s((e=>({size:n,viewport:{...e.viewport,...T(_,C,n)}})))},setDpr:e=>s((t=>({viewport:{...t.viewport,dpr:S(e)}}))),events:{connected:!1},internal:{active:!1,priority:0,frames:0,lastProps:i,interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(e,t=0)=>(s((({internal:n})=>({internal:{...n,priority:n.priority+(t?1:0),subscribers:[...n.subscribers,{ref:e,priority:t}].sort(((e,t)=>e.priority-t.priority))}}))),()=>{s((({internal:n})=>({internal:{...n,priority:n.priority-(t?1:0),subscribers:n.subscribers.filter((t=>t.ref!==e))}})))})}}}));b.subscribe((()=>{const{camera:e,size:t,viewport:n,internal:i}=b.getState();i.lastProps.camera instanceof r.Camera||(L(e)?(e.left=t.width/-2,e.right=t.width/2,e.top=t.height/2,e.bottom=t.height/-2):e.aspect=t.width/t.height,e.updateProjectionMatrix(),e.updateMatrixWorld()),o.setPixelRatio(n.dpr),o.setSize(t.width,t.height)}),(e=>[e.viewport.dpr,e.size]),a.Z);const E=b.getState();return l&&E.setSize(l.width,l.height),b.subscribe((e=>t(e))),b};function O(e,t){const n=t.length;return t.push(e),()=>{t.splice(n,1)}}let N,k=[],G=[],z=[];const Q=e=>O(e,k),V=e=>O(e,G),H=e=>O(e,z);function j(e,t){for(N=0;N({...e,[n]:t(n)})),{}),connect:t=>{var r;const{set:i,events:s}=e.getState();null==s.disconnect||s.disconnect(),i((e=>({events:{...e.events,connected:t}}))),Object.entries(null!=(r=null==s?void 0:s.handlers)?r:[]).forEach((([e,r])=>{const[i,s]=n[e];t.addEventListener(i,r,{passive:s})}))},disconnect:()=>{const{set:t,events:r}=e.getState();var i;r.connected&&(Object.entries(null!=(i=r.handlers)?i:[]).forEach((([e,t])=>{if(r&&r.connected instanceof HTMLElement){const[i]=n[e];r.connected.removeEventListener(i,t)}})),t((e=>({events:{...e.events,connected:!1}}))))}}}const Y="undefined"!=typeof window?i.useLayoutEffect:i.useEffect;function q({set:e}){return Y((()=>(e(new Promise((()=>null))),()=>e(!1))),[]),null}class K extends i.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}function J({children:e,fallback:t,tabIndex:n,resize:r,id:s,style:a,className:o,events:l,...c}){const[h,u]=v({scroll:!0,debounce:{scroll:50,resize:0},...r}),d=i.useRef(null),[p,f]=i.useState(!1),[m,g]=i.useState(!1);if(p)throw p;if(m)throw m;return Y((()=>{u.width>0&&u.height>0&&ue(i.createElement(K,{set:g},i.createElement(i.Suspense,{fallback:i.createElement(q,{set:f})},e)),d.current,{...c,size:u,events:l||X})}),[u,e]),Y((()=>{const e=d.current;return()=>pe(e)}),[]),i.createElement("div",{ref:h,id:s,className:o,tabIndex:n,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",...a}},i.createElement("canvas",{ref:d,style:{display:"block"}},t))}function Z(e=(e=>e),t){const n=i.useContext(F);if(!n)throw"R3F hooks can only be used within the Canvas component!";return n(e,t)}function $(e,t=0){const{subscribe:n}=i.useContext(F).getState().internal,r=i.useRef(e);return i.useLayoutEffect((()=>{r.current=e}),[e]),i.useLayoutEffect((()=>{const e=n(r,t);return()=>e()}),[t,n]),null}function ee(e){const t={nodes:{},materials:{}};return e&&e.traverse((e=>{e.name&&(t.nodes[e.name]=e),e.material&&!t.materials[e.material.name]&&(t.materials[e.material.name]=e.material)})),t}function te(e){return i.useMemo((()=>ee(e)),[e])}function ne(e,t){return function(n,...r){const i=new n;return e&&e(i),Promise.all(r.map((e=>new Promise(((n,r)=>i.load(e,(e=>{e.scene&&Object.assign(e,ee(e.scene)),n(e)}),t,(t=>r(`Could not load ${e}: ${t.message}`))))))))}}function re(e,t,n,r){const i=Array.isArray(t)?t:[t],s=m(ne(n,r),e,...i);return Array.isArray(t)?s:s[0]}K.getDerivedStateFromError=()=>({error:!0}),re.preload=function(e,t,n){const r=Array.isArray(t)?t:[t];return m.preload(ne(n),e,...r)};const ie=new Map,se=["legacy","blocking","concurrent"],{invalidate:ae,advance:oe}=function(e){let t,n=!1;function r(i){if(n=!0,t=0,j(k,i),e.forEach((e=>{const n=e.store.getState();n.internal.active&&("always"===n.frameloop||n.internal.frames>0)&&(t+=W(i,n))})),j(G,i),t>0)return requestAnimationFrame(r);j(z,i),n=!1}return{loop:r,invalidate:function t(i){if(!i)return e.forEach((e=>t(e.store.getState())));!i.vr&&i.internal.active&&"never"!==i.frameloop&&(i.internal.frames=Math.min(60,i.internal.frames+1),n||(n=!0,requestAnimationFrame(r)))},advance:function(t,n=!0,r){n&&j(k,t),r?W(t,r):e.forEach((e=>W(t,e.store.getState()))),n&&j(G,t)}}}(ie),{reconciler:le,applyProps:ce}=function(e){function t(e,t,s={},a=!1){var o,l,c;const h=null!=(o=null==e?void 0:e.__r3f)?o:{},u=h.root,d=null!=(l=null==u||null==u.getState?void 0:u.getState())?l:{},p=[],f=[],m={};let g=0;Object.entries(t).forEach((([e,t])=>{-1===B.indexOf(e)&&(m[e]=t)})),h.memoizedProps&&h.memoizedProps.args&&(m.args=h.memoizedProps.args),h.memoizedProps&&h.memoizedProps.attach&&(m.attach=h.memoizedProps.attach),e.__r3f&&(e.__r3f.memoizedProps=m);let A=Object.keys(t);for(g=0;g-1&&delete x[A[g]];const b=Object.entries(x);for(g=0;g0){if(b.forEach((([t,i])=>{if(!f.includes(t)){let s=e,a=s[t];if(t.includes("-")){const n=t.split("-");if(a=n.reduce(((e,t)=>e[t]),e),!a||!a.set){const[r,...i]=n.reverse();s=i.reverse().reduce(((e,t)=>e[t]),e),t=r}}if(i===T+"remove")if(a&&a.constructor)i=new a.constructor(m.args);else if(s.constructor){const e=new s.constructor(s.__r3f.memoizedProps.args);i=e[a],e.dispose&&e.dispose()}else i=0;if(a&&a.set&&(a.copy||a instanceof r.Layers)){if(Array.isArray(i))a.fromArray?a.fromArray(i):a.set(...i);else if(a.copy&&i&&i.constructor&&a.constructor.name===i.constructor.name)a.copy(i);else if(void 0!==i){const e=a instanceof r.Color;!e&&a.setScalar?a.setScalar(i):a instanceof r.Layers&&i instanceof r.Layers?a.mask=i.mask:a.set(i),!d.linear&&e&&a.convertSRGBToLinear()}}else s[t]=i,!d.linear&&s[t]instanceof r.Texture&&(s[t].encoding=r.sRGBEncoding);n(e)}})),a&&u&&e.raycast&&h.handlers){h.handlers=void 0;const t=d.internal.interaction.indexOf(e);t>-1&&d.internal.interaction.splice(t,1)}f.length&&(a&&u&&e.raycast&&d.internal.interaction.push(e),h.handlers=f.reduce(((e,n)=>({...e,[n]:t[n]})),{})),e.parent&&i(e)}}function n(e){var t,n;const r=null==(t=e.__r3f)||null==(n=t.root)||null==n.getState?void 0:n.getState();r&&0===r.internal.frames&&r.invalidate()}function i(e){null==e.onUpdate||e.onUpdate(e)}function s(e,{args:n=[],...i},s,a,o){let l,c=`${e[0].toUpperCase()}${e.slice(1)}`;if(!M(s)&&o){const e=t=>t.return?e(t.return):t.stateNode&&t.stateNode.containerInfo;s=e(o)}if(!s||!M(s))throw`No valid root for ${c}!`;if("primitive"===e){if(void 0===i.object)throw"Primitives without 'object' are invalid!";l=D(i.object,{root:s,instance:!0})}else{const e=R[c]||r[c];if(!e)throw`${c} is not part of the THREE namespace! Did you forget to extend? See: https://github.com/pmndrs/react-three-fiber/blob/master/markdown/api.md#using-3rd-party-objects-declaratively`;const t=_.arr(n);l=D(t?new e(...n):new e(n),{root:s,memoizedProps:{args:t&&0===n.length?null:n}})}return c.endsWith("Geometry")?i={attach:"geometry",...i}:c.endsWith("Material")&&(i={attach:"material",...i}),t(l,i,{}),l}function a(e,t){let r=!1;t&&(t.attachArray?(_.arr(e[t.attachArray])||(e[t.attachArray]=[]),e[t.attachArray].push(t)):t.attachObject?(_.obj(e[t.attachObject[0]])||(e[t.attachObject[0]]={}),e[t.attachObject[0]][t.attachObject[1]]=t):t.attach&&!_.fun(t.attach)?e[t.attach]=t:t.isObject3D&&(e.add(t),r=!0),r||(e.__r3f.objects.push(t),t.parent=e),i(t),n(t))}function o(e,t,r){let s=!1;if(t){if(t.attachArray){const n=e[t.attachArray];_.arr(n)||(e[t.attachArray]=[]),n.splice(n.indexOf(r),0,t)}else{if(t.attachObject||t.attach&&!_.fun(t.attach))return s=!0,a(e,t);if(t.isObject3D){t.parent=e,t.dispatchEvent({type:"added"});const n=e.children.filter((e=>e!==t)),i=n.indexOf(r);e.children=[...n.slice(0,i),t,...n.slice(i)],s=!0}}s||(e.__r3f.objects.push(t),t.parent=e),i(t),n(t)}}function h(e,t,n=!1){e&&[...e].forEach((e=>u(t,e,n)))}function u(e,t,r){if(t){var i;if(e.__r3f.objects){const n=e.__r3f.objects.length;e.__r3f.objects=e.__r3f.objects.filter((e=>e!==t));e.__r3f.objects.lengthe!==t));else if(t.attachObject)delete e[t.attachObject[0]][t.attachObject[1]];else if(t.attach&&!_.fun(t.attach))e[t.attach]=null;else if(t.isObject3D){var s;e.remove(t),null!=(s=t.__r3f)&&s.root&&function(e,t){const{internal:n}=e.getState();n.interaction=n.interaction.filter((e=>e!==t)),n.initialHits=n.initialHits.filter((e=>e!==t)),n.hovered.forEach(((e,r)=>{e.eventObject!==t&&e.object!==t||n.hovered.delete(r)}))}(t.__r3f.root,t)}const o=null==(i=t.__r3f)?void 0:i.instance,l=void 0===r?null!==t.dispose&&!o:r;var a;if(!o)h(null==(a=t.__r3f)?void 0:a.objects,t,l),h(t.children,t,l);t.__r3f&&(delete t.__r3f.root,delete t.__r3f.objects,delete t.__r3f.handlers,delete t.__r3f.memoizedProps,o||delete t.__r3f),l&&t.dispose&&"Scene"!==t.type&&(0,c.unstable_runWithPriority)(c.unstable_IdlePriority,(()=>t.dispose())),n(e)}}function d(e,t,n,r){const i=e.parent;if(!i)return;const o=s(t,n,e.__r3f.root);e.children&&(e.children.forEach((e=>a(o,e))),e.children=[]),e.__r3f.objects.forEach((e=>a(o,e))),e.__r3f.objects=[],u(i,e),a(i,o),[r,r.alternate].forEach((e=>{null!==e&&(e.stateNode=o,e.ref&&("function"==typeof e.ref?e.ref(o):e.ref.current=o))}))}return{reconciler:l()({now:c.unstable_now,createInstance:s,removeChild:u,appendChild:a,appendInitialChild:a,insertBefore:o,warnsIfNotActing:!0,supportsMutation:!0,isPrimaryRenderer:!1,scheduleTimeout:_.fun(setTimeout)?setTimeout:void 0,cancelTimeout:_.fun(clearTimeout)?clearTimeout:void 0,setTimeout:_.fun(setTimeout)?setTimeout:void 0,clearTimeout:_.fun(clearTimeout)?clearTimeout:void 0,noTimeout:-1,appendChildToContainer:(e,t)=>{const{container:n,root:r}=C(e,t);n.__r3f.root=r,a(n,t)},removeChildFromContainer:(e,t)=>{const{container:n}=C(e,t);u(n,t)},insertInContainerBefore:(e,t,n)=>{const{container:r}=C(e,t);o(r,t,n)},commitUpdate(e,n,r,i,s,a){if(e.__r3f.instance&&s.object&&s.object!==e)d(e,r,s,a);else{const{args:n=[],...o}=s,{args:l=[],...c}=i;n.some(((e,t)=>_.obj(e)?Object.entries(e).some((([e,n])=>n!==l[t][e])):e!==l[t]))?d(e,r,s,a):t(e,o,c,!0)}},hideInstance(e){e.isObject3D&&(e.visible=!1,n(e))},unhideInstance(e,t){(e.isObject3D&&null==t.visible||t.visible)&&(e.visible=!0,n(e))},hideTextInstance(){throw new Error("Text is not allowed in the R3F tree.")},getPublicInstance:e=>e,getRootHostContext:e=>I,getChildHostContext:e=>I,createTextInstance(){},finalizeInitialChildren:e=>!!e.__r3f.handlers,commitMount(e){e.raycast&&e.__r3f.handlers&&e.__r3f.root.getState().internal.interaction.push(e)},prepareUpdate:()=>I,shouldDeprioritizeSubtree:()=>!1,prepareForCommit:()=>null,preparePortalMount(...e){},resetAfterCommit(){},shouldSetTextContent:()=>!1,clearContainer:()=>!1}),applyProps:t}}(),he=(e,t)=>{return(n=e)&&n.render?e:new r.WebGLRenderer({powerPreference:"high-performance",canvas:t,antialias:!0,alpha:!0,...e});var n};function ue(e,t,{gl:n,size:r,mode:s=se[1],events:a,onCreated:o,...l}={}){var c,h,u,d,p;r||(r={width:null!=(h=null==(u=t.parentElement)?void 0:u.clientWidth)?h:0,height:null!=(d=null==(p=t.parentElement)?void 0:p.clientHeight)?d:0});let f=ie.get(t),m=null==f?void 0:f.fiber,g=null==f?void 0:f.store,A=null==(c=g)?void 0:c.getState();if(m&&A){const e=A.internal.lastProps;void 0===l.dpr||_.equ(e.dpr,l.dpr)||A.setDpr(l.dpr),void 0===r||_.equ(e.size,r)||A.setSize(r.width,r.height);l.linear!==e.linear&&(pe(t),m=void 0)}if(!m){const e=he(n,t);l.vr&&(e.xr.enabled=!0,e.setAnimationLoop((e=>oe(e,!0)))),g=U(ce,ae,oe,{gl:e,size:r,...l});const i=g.getState();i.get,m=le.createContainer(g,se.indexOf(s),!1,null),ie.set(t,{fiber:m,store:g}),a&&i.set({events:a(g)})}if(g&&m)return le.updateContainer(i.createElement(de,{store:g,element:e,onCreated:o,target:t}),m,null,(()=>{})),g;throw"Error creating root!"}function de({store:e,element:t,onCreated:n,target:r}){return i.useEffect((()=>{const t=e.getState();t.set((e=>({internal:{...e.internal,active:!0}}))),null==t.events.connect||t.events.connect(r),n&&n(t)}),[]),i.createElement(F.Provider,{value:e},t)}function pe(e,t){const n=ie.get(e),r=null==n?void 0:n.fiber;if(r){const i=null==n?void 0:n.store.getState();i&&(i.internal.active=!1),le.updateContainer(null,r,null,(()=>{i&&setTimeout((()=>{var n,r,s;null==i.events.disconnect||i.events.disconnect(),null==(n=i.gl)||null==(r=n.renderLists)||null==r.dispose||r.dispose(),null==(s=i.gl)||null==s.forceContextLoss||s.forceContextLoss(),fe(i),ie.delete(e),t&&t(e)}),500)}))}}function fe(e){e.dispose&&"Scene"!==e.type&&e.dispose();for(const r in e){var t,n;null==(t=(n=r).dispose)||t.call(n),delete e[r]}}const me=le.act,ge=_.fun(Symbol)&&Symbol.for?Symbol.for("react.portal"):60106;function Ae(e,t,n,r=null){return{$$typeof:ge,key:null==r?null:""+r,children:e,containerInfo:D(t),implementation:n}}le.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:"17.0.2"})},27460:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KeepRatio=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294)),a=r.__importDefault(n(58147));t.KeepRatio=e=>{let{children:t,width:n,height:r,fullHeight:o=!1,fullWidth:l=!0,rootProps:c,contentProps:h,containerWidth:u,containerHeight:d,keep:p=!0}=e;const f=!o&&l,m=!f,g=100*(m?r/n:n/r);return s.default.createElement("div",{...c??{},className:(0,i.default)(a.default.root,f&&a.default.fullWidth,m&&a.default.fullHeight,p&&a.default.keep,c?.className)},s.default.createElement("div",{...h??{},className:(0,i.default)(a.default.content,h?.className)},t),p&&s.default.createElement("svg",{style:{pointerEvents:"none",height:m?"100%":d?`calc(${r} / ${n} * ${u})`:"auto",width:f?"100%":d?`calc(${n} / ${r} * ${d})`:"auto"},viewBox:`0 0 ${f?g:100} ${m?g:100}`}))}},94428:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(27460),t)},44323:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AccordionItem=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importStar(n(67294));n(11403);const a=n(31665),o=n(78870),l=r.__importDefault(n(73955));t.AccordionItem=e=>{let{open:t,onToggle:n,title:r,className:c,children:h,...u}=e;const d=(0,l.default)("accordion-item-"),[p,f]=(0,s.useState)(t??!1);void 0!==t&&t!==p&&f(t);return s.default.createElement("div",{className:(0,i.default)(c,"mdx-accordion-item",p&&"mdx-accordion-item--open"),...u},s.default.createElement("input",{type:"checkbox",id:d,checked:p}),s.default.createElement("div",{role:"button",className:"mdx-accordion-item__header",onClick:()=>{void 0!==t?n&&n(!p):f((e=>!e))}},s.default.createElement(a.Typography,{className:"mdx-accordion-item__title",variant:"h5",component:"label",htmlFor:d},r),s.default.createElement("div",{className:"mdx-accordion-item__icon"},p?s.default.createElement(o.IconRemove,null):s.default.createElement(o.IconAdd,null))),s.default.createElement("div",{className:"mdx-accordion-item__content-wrapper"},s.default.createElement("div",{className:"mdx-accordion-item__content"},h)))}},56027:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(44323),t)},80584:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppCard=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(50941)),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294));n(93255);t.AppCard=e=>{let{logoSrc:t,logoSrcDark:n,name:r,description:l,link:c,linkLabel:h,...u}=e;return o.default.createElement("div",{...u,className:(0,a.default)(u.className,"mdx-app-card")},(t||n)&&o.default.createElement(s.default,{sources:{dark:n??t??"",light:t??n??""},alt:"string"==typeof r?r:"",className:"mdx-app-card__logo"}),o.default.createElement(i.Typography,{component:"span",variant:"h5",className:"mdx-app-card__name"},r),o.default.createElement(i.Typography,{variant:"subtitle1",className:"mdx-app-card__description"},l),c&&o.default.createElement("a",{href:c,target:"_blank",className:"mdx-app-card__link"},o.default.createElement(i.Button,{size:"large",variant:"outlined"},o.default.createElement(i.Typography,{variant:"label1",component:"span"},h??o.default.createElement(o.default.Fragment,null,"Visit ",r)),o.default.createElement("span",null,o.default.createElement(i.PickIcon,{color:"primary"})))))}},45138:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(80584),t)},53997:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AssetCard=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294)),o=n(78870),l=n(94428);n(77877);t.AssetCard=e=>{let{title:t,previewSrc:n,downloadable:r,forceDownload:c=!1,...h}=e;const u=r&&r.length>0;return a.default.createElement("div",{...h,className:(0,s.default)(h.className,"mdx-asset-card",u&&"mdx-asset-card--downloadable")},a.default.createElement("div",{className:"mdx-asset-card__inner"},t&&a.default.createElement(i.Typography,{component:"div",variant:"subtitle2",className:"mdx-asset-card__title"},t),a.default.createElement(l.KeepRatio,{width:16,height:9,fullWidth:!0,rootProps:{className:"mdx-asset-card__image"}},a.default.createElement("img",{src:n,alt:"string"==typeof t&&t||"asset image"}))),u&&a.default.createElement("div",{className:"mdx-asset-card__downloadables"},r.map(((e,n)=>a.default.createElement("a",{href:e.src,target:"_blank",download:!0,onClick:n=>((e,n)=>{if(!c)return;e.preventDefault();const{src:r,filename:i}=n,s=document.createElement("a");s.download=i||"string"==typeof t&&t||"",fetch(r).then((e=>e.blob())).then((e=>{const t=window.URL.createObjectURL(e);s.href=t,window.document.body.appendChild(s),s.click(),window.document.body.removeChild(s)})).catch((e=>{console.error("failed to download asset:"+e),s.href=r,s.target="_blank",window.document.body.appendChild(s),s.click(),window.document.body.removeChild(s)}))})(n,e)},a.default.createElement(i.Button,{key:n,variant:"outlined",size:"small",icon:a.default.createElement(o.IconDownload,null)},e.title))))))}},11734:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(53997),t)},84481:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Box=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294)),a=n(39320);function o(e,t,n,r){const i="string"==typeof t||"number"==typeof t?{xs:t}:t,s=[],a=e=>"number"==typeof e&&r?`${e}${r}`:`${e}`;return["xs","sm","md","lg","xl"].forEach(((t,r)=>{const o=i[t];if(o)s.push([`${e}-${t}`,a(o)]);else{const i=s[r-1]?.[1];s.push([`${e}-${t}`,i||a(n)])}})),Object.fromEntries(s)}n(56216);t.Box=e=>{let{top:t=0,bottom:n=0,className:r,style:l={},children:c,...h}=e;return s.default.createElement("div",{className:(0,i.default)(r,"mdx-box"),style:(0,a.makeStyle)({...l},{...o("mdx-box-top",t,0,"px"),...o("mdx-box-bottom",n,0,"px")}),...h},c)}},84777:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(84481),t)},81992:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CallToActionButton=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(39960)),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294));n(51928);t.CallToActionButton=e=>{let{className:t,variant:n="filled",size:r="large",children:l,...c}=e;return o.default.createElement(s.default,{className:(0,a.default)("mdx-cta-button",t),...c},o.default.createElement(i.Typography,{component:"span",variant:"large"===r?"label1":"label2"},o.default.createElement(i.Button,{size:r,variant:n},l)))}},16607:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(81992),t)},4666:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CallToActionSection=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294)),o=n(83639);n(8981);t.CallToActionSection=e=>{let{label:t,href:n,title:r,columns:l=1,description:c,list:h=[],target:u,className:d,children:p,variant:f="outlined",...m}=e;const g=!!c,A=h.length>0,v=!!n,y=!r||g||v||A?r&&!c&&!A&&v?"title-button":r&&c&&2===l?"full-width":r&&c&&h.length>0?"list":"simple":"title-only";return a.default.createElement("div",{className:(0,s.default)(d,"mdx-cta-section",`mdx-cta-section--${y}`),...m},a.default.createElement("div",{className:"mdx-cta-section__container"},a.default.createElement(i.Typography,{component:"h2",className:"mdx-cta-section__title"},r),a.default.createElement(i.Typography,{component:"h3",className:"mdx-cta-section__description"},c),n&&a.default.createElement(o.CallToActionButton,{target:u,href:n,className:"mdx-cta-section__link",variant:f},t)),h.length>0&&a.default.createElement("div",{className:"mdx-cta-section__list"},h.map(((e,t)=>a.default.createElement("div",{key:t},a.default.createElement(i.Typography,{variant:"subtitle2",component:"div"},e.title),a.default.createElement(i.Typography,{variant:"h2",component:"p"},e.description))))))}},3447:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(4666),t)},83113:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DocMetadata=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(39960)),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294)),l=n(54400);n(46774);const c=n(94294);t.DocMetadata=e=>{let{className:t,children:n,...r}=e;const{date:h,authors:u}=(0,c.useDocMetadata)(),{content:{authorPage:d}={}}=(0,l.useDocThemeOptions)();return o.default.createElement("div",{className:(0,a.default)(t,"mdx-doc-metadata"),...r},h&&o.default.createElement(i.Typography,{variant:"body2"},h),u&&u.length>0&&o.default.createElement(o.default.Fragment,null,o.default.createElement(i.Typography,{variant:"body2"},"by"," ",u.map(((e,t)=>o.default.createElement(o.default.Fragment,{key:e.key},d?o.default.createElement(s.default,{to:`author/${e.key}`},e.name):e.name,t{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(83113),t)},94294:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useDocMetadata=void 0;const r=n(97582),i=n(53458),s=n(54400),a=r.__importDefault(n(8260));t.useDocMetadata=()=>{const e=(0,s.useDocThemeOptions)(),{content:{authors:t=[]}={}}=e,{frontMatter:n={}}=(0,i.useDoc)(),{author:r=[],date:o}=n,l=(Array.isArray(r)?r:[r]).map((e=>t.find((t=>e===t.key)))).filter((e=>!!e));return{date:o?(0,a.default)(new Date(o),"MMM d yyyy"):"",authors:l}}},56398:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalResourceCard=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(50941)),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294)),l=n(78870);n(84238);const c=n(94428);t.ExternalResourceCard=e=>{let{title:t,logoSrc:n,logoSrcDark:r,description:h,previewSrc:u,previewSrcDark:d,...p}=e;const f=!(!u&&!d);return o.default.createElement("a",{target:"_blank",...p,className:(0,a.default)(p.className,"mdx-erc",f&&"mdx-erc--with-preview")},f&&o.default.createElement(c.KeepRatio,{width:16,height:9,fullWidth:!0},o.default.createElement(s.default,{sources:{dark:d??u??"",light:u??d??""},alt:"string"==typeof t&&t||"preview image",className:"mdx-erc__preview-image"})),o.default.createElement("div",{className:"mdx-erc__inner"},(n||r)&&o.default.createElement(s.default,{sources:{dark:r??n??"",light:n??r??""},alt:"string"==typeof t&&t||"logo",className:"mdx-erc__logo"}),o.default.createElement(i.Typography,{variant:"body1",component:"div",className:"mdx-erc__title"},t),h&&o.default.createElement(i.Typography,{variant:"label2",component:"div",className:"mdx-erc__description"},h)),o.default.createElement("div",{className:"mdx-erc__icon"},o.default.createElement(l.IconExternalLink,{className:"mdx-erc__external-link"})))}},44385:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(56398),t)},95482:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FeatureList=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294));n(69774);t.FeatureList=e=>{let{title:t="Features",alignment:n="bottom",features:r=[],className:o,ctaPosition:l="bottom",children:c,...h}=e;return a.default.createElement("div",{className:(0,s.default)(o,"mdx-feature-list",`mdx-feature-list--${n}-aligned`,`mdx-feature-list--cta-${l}`),...h},a.default.createElement("div",{className:"mdx-feature-list__header"},a.default.createElement(i.Typography,{variant:"h5",component:"h1",className:"mdx-feature-list__title"},t),c&&"top"===l&&a.default.createElement("div",{className:"mdx-feature-list__extra"},c)),a.default.createElement("div",{className:"mdx-feature-list__list"},r.map(((e,t)=>a.default.createElement("div",{key:t,className:(0,s.default)("mdx-feature-list__feature")},a.default.createElement("div",{className:"mdx-feature-list__feature-inner"},a.default.createElement(i.Typography,{variant:"subtitle1",component:"div",className:"mdx-feature-list__feature-index"},t+1),a.default.createElement(i.Typography,{variant:"h2",component:"h2",className:"mdx-feature-list__feature-title"},e.title),a.default.createElement(i.Typography,{variant:"h5",component:"h3",className:"mdx-feature-list__feature-description"},a.default.createElement("span",null,e.description))),a.default.createElement("div",{className:"mdx-feature-list__feature-border"}))))),c&&"bottom"===l&&a.default.createElement("div",{className:"mdx-feature-list__extra"},c))}},88819:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(95482),t)},58994:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GithubChallenges=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(67294)),a=n(39939),o=n(27747),l=e=>{let{message:t}=e;return s.default.createElement(s.default.Fragment,null,s.default.createElement(i.Typography,{variant:"h1",className:"mdx-ghc__header"},"Open challenges"),!!t&&s.default.createElement(i.Typography,{variant:"body1"},t))};t.GithubChallenges=e=>{let{challengesData:t,useDummyData:n,subheaderText:r,filterByName:c,...h}=e,u=n?[a.dummyGithubIssue]:(e=>{let t=[];return Object.keys(e).forEach((n=>{if(!isNaN(Number(n))){const r=Object.values(e[n])[0];Array.isArray(r)&&(t=t.concat(r))}})),t})(t);if(!u||(d=u,!Array.isArray(d)||!d.length))return s.default.createElement(l,{message:"No challenges to show"});var d;if(c)try{const e=new RegExp(c,"i");u=u?.filter((t=>e.test(t.title)))}catch(p){console.error("Invalid regex pattern:",p)}return s.default.createElement("div",{...h},s.default.createElement(l,null),!!r&&s.default.createElement(i.Typography,{variant:"body1",className:"mdx-ghc-subheader-text",component:"div"},r),u.map((e=>s.default.createElement(o.SingleGithubChallenge,{key:e.id,issue:e}))))}},27747:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleGithubChallenge=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(67294)),a=n(78870);n(58918);const o=r.__importDefault(n(39960));function l(e,t){void 0===t&&(t=24);const n=new URL(e),r=new URLSearchParams(n.search);return r.set("s",t.toString()),n.search=Array.from(r.entries()).map((e=>{let[t,n]=e;return`${t}=${n}`})).join("&"),n.toString()}t.SingleGithubChallenge=e=>{let{issue:t}=e;const n=(e=>{const t=new Map;return t.set(e.user.login,{name:e.user.login,avatarUrl:e.user.avatarUrl}),e.assignees.forEach((e=>{t.set(e.login,{name:e.login,avatarUrl:e.avatarUrl})})),e.comments.forEach((e=>{t.set(e.author.login,{name:e.author.login,avatarUrl:e.author.avatarUrl})})),Array.from(t.values())})(t),r=(e=>{const t=e.projects.map((e=>e.name));return 0===t.length?"":Array.from(new Set(t)).join(", ")})(t),c=""!==r,h=!!t.milestone,u=[];return c&&u.push(s.default.createElement(s.default.Fragment,null,s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__label"},r.includes(", ")?"Projects":"Project"),s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__project-name"},r))),h&&u.push(s.default.createElement(s.default.Fragment,null,s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__label"},"Milestone"),s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__milestone-text"},t.milestone))),s.default.createElement("div",{className:"mdx-ghc__container"},s.default.createElement(o.default,{href:t.url,className:"mdx-ghc__issue-title-link"},s.default.createElement(i.Typography,{variant:"h5",className:"mdx-ghc__issue-title"},t.title)),s.default.createElement("div",{className:"mdx-ghc__challenge-labels"},t.labels.map(((e,t)=>s.default.createElement(i.Typography,{variant:"body3",key:t,className:"mdx-ghc__challenge-label"},e)))),s.default.createElement("div",{className:"mdx-ghc__issue-content-grid"},s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__label"},"Participants"),s.default.createElement("div",{className:"mdx-ghc__participant-photo-container"},s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__comment-count",component:"div"},n.length),n.map(((e,t)=>s.default.createElement("img",{key:t,className:"mdx-ghc__participant-photo",src:l(e.avatarUrl),alt:e.name})))),u.map(((e,t)=>s.default.createElement(s.default.Fragment,{key:t},e)))),s.default.createElement(o.default,{href:t.url,className:"mdx-ghc__view-on-github-link"},s.default.createElement(i.Button,{className:"mdx-ghc__view-on-github-button",icon:s.default.createElement(a.IconExternalLink,null)},"View on GitHub")))}},39939:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dummyGithubIssue=void 0,t.dummyGithubIssue={id:"12345",title:"Bug in pagination",body:"When navigating to the second page, the first item repeats.",url:"https://github.com/user/repo/issues/12345",user:{login:"user123",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},labels:["bug","frontend"],commentCount:3,comments:[{id:"c1",author:{login:"alice123",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},body:"I have also noticed this issue. Working on a fix now.",createdAt:"2021-01-01T12:00:00Z"},{id:"c2",author:{login:"bob456",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},body:"Any updates on this?",createdAt:"2021-01-02T15:30:00Z"},{id:"c3",author:{login:"jaquim",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},body:"I like turtles.",createdAt:"2021-01-03T09:45:00Z"}],assignees:[{login:"alice123",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},{login:"bob456",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"}],milestone:"v1.0.0",created_at:"2020-12-31T11:00:00Z",updated_at:"2021-01-04T13:00:00Z",projects:[{name:"Awesome Project"}]}},2561:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(58994),t)},11907:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Grid=void 0;const r=n(97582),i=n(31665),s=n(70917),a=r.__importDefault(n(16829)),o=r.__importDefault(n(86010)),l=r.__importStar(n(67294)),c=n(98823),h=n(38915),u=n(21723);t.Grid=e=>{let{actions:t,leftLabel:n="",rightLabel:r="",spacingButtons:i=!1,children:s,...a}=e;const c=(0,l.useRef)(null);return l.default.createElement(d,{...a,className:(0,o.default)(a.className,"mdx-grid")},l.default.createElement("div",{className:"mdx-grid__actions"},t,l.default.createElement(h.ScrollButtons,{containerRef:c,className:"mdx-grid__scroll",leftLabel:n,rightLabel:r,spacing:i?"spaced":"grouped"})),l.default.createElement("div",{ref:c,className:(0,o.default)("mdx-grid__content","hidden-scrollbar")},s))},t.Grid.Item=u.GridItem;const d=a.default.div` - width: 100%; - - .mdx-grid__scroll { - display: flex; - } - - .mdx-grid__content { - display: grid; - gap: var(--grid-gap); - grid-template-columns: repeat(var(--grid-cols), minmax(0, 1fr)); - overflow: hidden; - } - - .mdx-grid__actions { - display: flex; - flex-direction: row; - align-items: center; - gap: 1rem; - - & > * { - margin-bottom: 3rem; - } - } - - ${e=>i.THEME_BREAKPOINTS.map((t=>{if(!e[t])return null;const n=e[t];return c.lsdUtils.responsive(e.theme,t,"up")(s.css` - ${void 0!==n.cols&&`\n --grid-cols: ${n.cols};\n `} - - ${void 0!==n.gap&&`\n --grid-gap: ${n.gap};\n `} - - ${(void 0===n.wrap||!0===n.wrap)&&s.css` - .mdx-grid__scroll { - display: none; - } - .mdx-grid__content { - display: grid; - flex-wrap: unset; - overflow-x: unset; - overflow-y: unset; - scroll-snap-type: unset; - } - `} - - ${void 0!==n.wrap&&!1===n.wrap&&s.css` - .mdx-grid__scroll { - display: flex; - } - .mdx-grid__content { - display: flex; - flex-wrap: nowrap; - overflow-x: scroll; - overflow-y: hidden; - scroll-snap-type: x mandatory; - } - `} - - ${!1===n.scrollButtons&&s.css` - .mdx-grid__scroll { - display: none; - } - `} - `)}))} -`},21723:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GridItem=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294)),a=r.__importDefault(n(16829)),o=n(31665),l=n(98823),c=n(70917);t.GridItem=e=>{let{children:t,...n}=e;return s.default.createElement(h,{...n,className:(0,i.default)(n.className)},t)};const h=a.default.div` - ${e=>o.THEME_BREAKPOINTS.map((t=>{if(!e[t])return null;const n=e[t];return l.lsdUtils.responsive(e.theme,t,"up")(c.css` - grid-column: span ${n}; - flex-basis: calc(100% / var(--grid-cols) * ${n}); - `)}))} -`},7757:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582);r.__exportStar(n(11907),t),r.__exportStar(n(21723),t)},42265:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useHero=t.HeroContext=void 0;const r=n(97582).__importStar(n(67294));t.HeroContext=r.default.createContext({size:"medium"});t.useHero=()=>(0,r.useContext)(t.HeroContext)},28789:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hero=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294)),a=n(42265);n(91786);t.Hero=e=>{let{size:t="medium",className:n,children:r,...o}=e;return s.default.createElement(a.HeroContext.Provider,{value:{size:t}},s.default.createElement("div",{className:(0,i.default)(n,"mdx-hero",`mdx-hero--${t}`),...o},r))}},24834:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(28789),t)},96417:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroAction=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(39960)),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294));n(85661);t.HeroAction=e=>{let{size:t="large",variant:n="outlined",className:r,children:l,...c}=e;return o.default.createElement(s.default,{className:(0,a.default)(r,"mdx-hero-action",`mdx-hero-action--${t}`),...c},o.default.createElement(i.Button,{variant:n,size:t},o.default.createElement(i.Typography,{component:"span",variant:"label1",style:{color:"inherit"}},l)))}},83398:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(96417),t)},70906:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroActions=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294));n(57255);t.HeroActions=e=>{let{className:t,children:n,...r}=e;return s.default.createElement("div",{className:(0,i.default)(t,"mdx-hero-actions"),...r},n)}},31889:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(70906),t)},65031:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroDescription=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294)),o=n(42265);n(30204);t.HeroDescription=e=>{let{size:t,className:n,uppercase:r=!1,children:l,...c}=e;const h=(0,o.useHero)(),u=t??(h?h.size:"medium");return a.default.createElement(i.Typography,{variant:"h4",className:(0,s.default)(n,"mdx-hero-description",`mdx-hero-description--${u}`,r?"mdx-hero-description--uppercase":""),...c},l)}},18355:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(65031),t)},9757:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroInfo=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294)),a=n(96507),o=n(42265),l=n(83639);n(6460);t.HeroInfo=e=>{let{size:t,className:n,children:r,...c}=e;const h=(0,o.useHero)(),u=(0,a.useHydrated)(),d=t||(h?h.size:"medium");return s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:(0,i.default)(n,"mdx-hero-info",`mdx-hero-info--${d}`),...c},r),u&&s.default.createElement(l.ScrollToBottom,null))}},32922:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(9757),t)},74067:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsciiRenderer=void 0;const r=n(97582),i=n(46008),s=n(64232),a=r.__importStar(n(67294)),o=n(56475),l=n(37805);t.AsciiRenderer=e=>(function(e){void 0===e&&(e={});const{renderIndex:t=i.defaultAsciiConfigs.renderIndex,characters:n=i.defaultAsciiConfigs.characters,invert:r=i.defaultAsciiConfigs.invert,color:c=i.defaultAsciiConfigs.color,resolution:h=i.defaultAsciiConfigs.resolution,bgColor:u=i.defaultAsciiConfigs.bgColor,fgColor:d=i.defaultAsciiConfigs.fgColor,textShadowSize:p=i.defaultAsciiConfigs.textShadowSize,withTextShadow:f=!1}=e,{gl:m,size:g,scene:A,camera:v,viewport:y}=(0,s.useThree)(),x=(0,a.useMemo)((()=>{const e=new o.AsciiEffect(m,n,{invert:r,color:c,resolution:h});return e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.left="0px",e.domElement.style.pointerEvents="none",e}),[n,r,c,h]);(0,a.useLayoutEffect)((()=>{x.domElement.style.color=d}),[d,u]),(0,a.useEffect)((()=>{if(m.domElement.style.opacity="0",m.domElement.parentNode.appendChild(x.domElement),f){const e=document.createElement("style");e.innerHTML=`table *{text-shadow: ${(0,l.generateTextShadow)(p)};`,x.domElement.appendChild(e)}return()=>{m.domElement.style.opacity="1",m.domElement.parentNode.removeChild(x.domElement)}}),[x]),(0,a.useEffect)((()=>{x.setSize(g.width,g.height)}),[x,g]),(0,s.useFrame)((e=>{x.render(A,v)}),t)}(e),a.default.createElement(a.default.Fragment,null))},21945:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Controls=void 0;const r=n(97582),i=n(46008),s=r.__importStar(n(67294)),a=n(46439),o=n(64232),l=n(96979),c=n(37805),h=(e,t,n)=>(1-n)*e+n*t;function u(e,t,n,r){const i=Math.min(e,t)/t,s=[0,0,0];for(let a=0;a<3;a++)s[a]=h(n[a],r[a],i);return s}t.Controls=e=>{let{rotateSpeed:t=i.ROTATE_SPEED,enableZoom:n=!0,enableRotateOnScroll:r=!0,preset:h,targetPreset:d,children:p,...f}=e;const m=(0,s.useRef)(),g=(0,a.useScrollY)(),{camera:A,size:v}=(0,o.useThree)(),y=(0,s.useRef)(),[x,b]=s.default.useState(!1),[E,_]=s.default.useState(1),[S,w]=s.default.useState(0);return(0,o.useFrame)(((e,n)=>{m.current.rotation.y-=n*((0,c.isMobile)()?.6*t:t)})),(0,s.useEffect)((()=>{const e=()=>{console.log(JSON.stringify({cameraPos:A.position.toArray(),cameraRot:A.rotation.toArray().slice(0,3),controlsTarget:y.current.target.toArray()},null,2))};return window.addEventListener("click",e),()=>window.removeEventListener("click",e)}),[A]),(0,s.useEffect)((()=>{(0,c.isTouchDevice)()&&(y.current.minPolarAngle=Math.PI/2,y.current.maxPolarAngle=Math.PI/2,setTimeout((()=>{b(!0)}),1e3))}),[]),(0,s.useEffect)((()=>{(0,c.isMobile)()&&(_((0,c.mapFloat)(g,0,(0,c.calcScrollThreshold)(),1,.65)),w((0,c.mapFloat)(g,0,(0,c.calcScrollThreshold)(),0,.35)))}),[g]),(0,s.useEffect)((()=>{if(!n)return;if(!d)return;const e=u(g,400,h.cameraPos,d.cameraPos),t=u(g,400,h.cameraRot,d.cameraRot),r=u(g,400,h.controlsTarget,d.controlsTarget);A.position.set(...e),A.rotation.set(...t),y.current.target.set(...r),A.updateProjectionMatrix()}),[g,A]),s.default.createElement("group",{ref:m,...f,scale:E,"position-y":S},p,s.default.createElement(l.OrbitControls,{ref:y,enableZoom:!1,target:y.current?y.current.target:h.controlsTarget,enabled:!x}))}},46008:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OBJECTS_PRESETS=t.defaultPresets=t.defaultAsciiConfigs=t.INITIAL_ZOOM=t.RESIZE_SPEED_FACTOR=t.MIN_ZOOM=t.MAX_ROTATE_SPEED=t.MIN_ROTATE_SPEED=t.ROTATE_SPEED=void 0,t.ROTATE_SPEED=.1,t.MIN_ROTATE_SPEED=0,t.MAX_ROTATE_SPEED=1,t.MIN_ZOOM=.22,t.RESIZE_SPEED_FACTOR=.9,t.INITIAL_ZOOM=3,t.defaultAsciiConfigs={renderIndex:1,bgColor:"rgb(var(--lsd-surface-primary))",fgColor:"rgb(var(--lsd-text-primary))",characters:" l.o.g.o.s ",invert:!1,color:!1,resolution:.21,textShadowSize:15},t.defaultPresets={modelId:"default",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[-2.733342169570335,1.127956558492365,2.7690180385429666],controlsTarget:[-.2185887974027981,3.4320197290105474,-.08409377618890646]},abstract:{cameraPos:[-1.4826176635786852,4.021180061821954,-1.5929058418153597],cameraRot:[-2.9244096935808908,-.8625529112689497,-2.9755407843387185],controlsTarget:[-.3236695017538898,3.8072918272567,-.6236093222013962]}},t.OBJECTS_PRESETS=[t.defaultPresets,{modelId:"architecture01",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"architecture02",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"architecture03",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"architecture04",simple:{cameraPos:[2.263701079468784,.6448855513810133,-1.1446840846564066],cameraRot:[-2.3314571674867457,.984733935216302,2.422537357648925],controlsTarget:[.6593539926170827,-.1266335925222026,-.4104215479626598]},abstract:{cameraPos:[1.8397825927313005,.5006635210357668,-.7112749496103248],cameraRot:[-2.0637769654190388,.941591559117755,2.1572780914058356],controlsTarget:[.7525282128865571,-.19650999135957886,-.33673737792715125]},targetLook:{cameraPos:[1.2775067913826557,1.3342390202957728,-3.123518037652026],cameraRot:[-2.6905895797482686,.32826936260575107,2.9867046984290964],controlsTarget:[.27965301570358253,.05724884619536415,-.48670374558576035]}},{modelId:"architecture05",simple:{cameraPos:[2.783916402572475,.8560027544276005,2.7596737879252995],cameraRot:[-.16075199314229247,.8310730403125255,.11920589473418516],controlsTarget:[-.13283501637059433,.4299574965789378,.13221598116033606]},abstract:{cameraPos:[-.5465903796360435,.8773980794748312,.08538618930043433],cameraRot:[-.26855166005001807,-1.1713993239674987,-.24830772343977955],controlsTarget:[-.0544632211815667,.8222830795164463,-.1148867151943581]},targetLook:{cameraPos:[-.08633866196975185,1.065498410363367,3.299441795447572],cameraRot:[-.30705338387773307,-.04232616594886318,-.01341603621000156],controlsTarget:[.057360484222938594,.03995565554668334,.06512362298065871]}},{modelId:"architecture06",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"architecture07",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"atlas",simple:{cameraPos:[-.05747471409961126,1.1561369169508278,.2934743027588207],cameraRot:[.13523803197626882,-.45004875426349367,.05912213357583956],controlsTarget:[-.03052411570622545,1.1636581998026059,.23819862568800665]},abstract:{cameraPos:[-.18886266143333627,1.0759713173211645,.49472614307040697],cameraRot:[.11827338438455919,-.49355424749746096,.056236459481599846],controlsTarget:[-.03586918676122722,1.1095292429426495,.21231853618809665]},targetLook:{cameraPos:[-.6194495673706852,.6791728914823414,1.1145248759455844],cameraRot:[.08253419059538356,-.589296072042965,.045942607479927136],controlsTarget:[.09058057232790886,.7667301800204325,.05607398084523753]}},{modelId:"bust01",simple:{cameraPos:[-.6865425525854476,.9101267370893742,.6192780523604176],cameraRot:[-.39660492694232563,-.962317303218196,-.3309893133032883],controlsTarget:[.008888669206507317,.7229784900626205,.17240700391361993]},abstract:{cameraPos:[.025758408225725123,.9432728632646389,.5085343068565109],cameraRot:[-.016796160047877214,.23199352927595504,.003862085219634371],controlsTarget:[-.04849025797636223,.9379943498483801,.19429480114059927]},targetLook:{cameraPos:[-.0995637601904456,.9905193985583883,1.2844592429465957],cameraRot:[-.21489715158374015,-.011908392248228742,-.002599147273856083],controlsTarget:[-.08519853311178426,.7332893758986562,.10595091334036527]}},{modelId:"bust02",simple:{cameraPos:[-1.4566842350476759,1.3228318382357354,.3529107224325513],cameraRot:[-.7212161402570414,-1.161345100016008,-.6787189972933454],controlsTarget:[.13759890903780844,.8659810364239205,-.1666973840261623]},abstract:{cameraPos:[-.3488062269042841,1.3111379960412364,.033354968216059155],cameraRot:[-.7212161402570405,-1.1613451000160089,-.6787189972933446],controlsTarget:[.2227218365835886,1.147363414950647,-.15291722311874764]}},{modelId:"bust03",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"discobolus",simple:{cameraPos:[.9321278495515372,1.1243517299151449,1.0437243089401456],cameraRot:[-.05449607597993083,.5948614803388417,.030560026854436973],controlsTarget:[.17851738112859908,1.0636847191934362,-.06840974825492452]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"hand",simple:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"vase01",simple:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"venus",simple:{cameraPos:[-.33960257176056113,1.3731114512210183,.5843851218219973],cameraRot:[.19165735697369993,-.4160172409280952,.07825504508386714],controlsTarget:[.1766806722765915,1.595709756901872,-.5627979418735829]},abstract:{cameraPos:[-.2543046264127692,1.591894996466899,.21161310295797725],cameraRot:[.17078534527374745,-.637502107706861,.10229142114685894],controlsTarget:[.2766995177502174,1.7137410300309837,-.49488235116491014]}},{modelId:"flower",simple:{cameraPos:[-.33960257176056113,1.3731114512210183,.5843851218219973],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}}]},35020:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroModel=void 0;const r=n(97582),i=n(96979),s=n(64232),a=r.__importDefault(n(86010)),o=r.__importStar(n(67294)),l=n(46008),c=n(37805),h=n(74067),u=n(21945);n(61588);const d=n(46439);function p(e){let{url:t,onMount:n=(()=>{}),...r}=e;const{scene:s}=(0,i.useGLTF)(t,"/scripts/draco-1.4.3/");return(0,o.useEffect)((()=>{n()}),[]),o.default.createElement("primitive",{object:s,...r})}t.HeroModel=e=>{const{modelId:t,preset:n,mode:r="simple",className:i,children:f,asciiConfig:m,rotateSpeed:g=l.ROTATE_SPEED,enableZoom:A,enableRotateOnScroll:v,withParallelEffect:y=!0,startY:x="bottom",...b}=e,E=((e,t,n)=>(0,o.useMemo)((()=>{if(t)return{...l.defaultPresets,[e]:t};if(!n)return l.defaultPresets;return l.OBJECTS_PRESETS.find((e=>e.modelId===n))||l.defaultPresets}),[t,n]))(r,n,t),_=(0,d.useScrollY)();return o.default.createElement("div",{className:(0,a.default)(i,"mdx-hero-model","mdx-hero-model--ascii",`mdx-hero-model--${r}`,`mdx-hero-model--${x}`),...b},o.default.createElement("div",{className:"mdx-hero-model--inner",style:{...y?{transform:"translateY(0px) scale(var(--mdx-hero-model-wrapper-scale))"}:{}}},o.default.createElement(o.Suspense,{fallback:o.default.createElement("span",null," ")},o.default.createElement(s.Canvas,{dpr:[1,2],style:{height:"100vh"},camera:{fov:50,position:E[r].cameraPos,rotation:E[r].cameraRot}},o.default.createElement("directionalLight",{position:[-10,10,0],intensity:1.5}),o.default.createElement("directionalLight",{position:[-10,10,5],intensity:.3}),o.default.createElement("directionalLight",{position:[-10,20,0],intensity:1.5}),o.default.createElement("directionalLight",{position:[100,-10,0],intensity:.25}),o.default.createElement(u.Controls,{rotateSpeed:g,preset:E[r],targetPreset:E.targetLook,enableZoom:"simple"!==r},o.default.createElement(o.Suspense,{fallback:o.default.createElement(p,{url:`/hero/${E.modelId}/lo.glb`})},o.default.createElement(p,{url:`/hero/${E.modelId}/hi.glb`}),o.default.createElement(h.AsciiRenderer,{...m})))))),o.default.createElement("div",{className:"mdx-hero-model--shade",style:{opacity:(0,c.mapFloat)(_,0,(0,c.calcScrollThreshold)()*l.RESIZE_SPEED_FACTOR,0,1)}}))}},10052:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroModel=void 0;const r=n(97582).__importDefault(n(67294)),i=n(37805),s=n(46439),a=n(35020);t.HeroModel=e=>{if("undefined"==typeof window)return null;const t=(0,s.useScrollY)();(0,i.mapFloat)(t,0,(0,i.calcScrollThreshold)(),0,.1*window.innerHeight);return r.default.createElement("div",{style:{position:"absolute",top:0,left:0}},r.default.createElement(a.HeroModel,{...e}))}},75289:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroTitle=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294)),o=n(42265);n(92751);t.HeroTitle=e=>{let{size:t,uppercase:n,className:r,children:l,...c}=e;const h=(0,o.useHero)(),u=t||(h?h.size:"medium"),d=void 0!==n?n:"large"===h?.size;return a.default.createElement(i.Typography,{variant:"h1",component:"h1",className:(0,s.default)(r,"mdx-hero-title",`mdx-hero-title--${u}`,d&&"mdx-hero-title--uppercase"),...c},l)}},69562:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(75289),t)},59879:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroVideo=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importStar(n(67294)),a=n(39320),o=n(89321),l=n(96507),c=n(42265);n(53175);t.HeroVideo=e=>{let{placeholderSrc:t,desktop:n,mobile:r,className:h,style:u={},children:d,...p}=e;(0,c.useHero)();const f=(0,l.useHydrated)(),m=(0,s.useRef)(null),[g,A]=(0,s.useState)(!0),v=async()=>{const e=m.current;if(!e)return;e.muted=!0,e.defaultMuted=!0;const[t,n]=await(0,o.settle)((()=>e.play()));n||A(!1)};return(0,s.useEffect)((()=>{const e=document.querySelector(".col > article");if(e)return e.classList.add("overflow-hidden"),()=>{e.classList.remove("overflow-hidden")}}),[]),s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:(0,i.default)(h,"mdx-hero-video",g&&"mdx-hero-video--loading"),style:(0,a.makeStyle)({...u},{"hero-video-scale":n?.scale??"1.70951586","hero-video-offset-y":n?.offsetY??"-150px","hero-video-height":n?.height??"100%","hero-video-min-height":n?.minHeight??"min(100vh, var(--hero-max-height))","hero-video-scale-mobile":r?.scale??"1.70951586","hero-video-offset-y-mobile":r?.offsetY??"-50px","hero-video-height-mobile":r?.height??"120%","hero-video-min-height-mobile":r?.minHeight??"100vh"}),...p},s.default.createElement("div",{className:"mdx-hero-video__placeholder"},s.default.createElement("img",{src:t,alt:""})),s.default.createElement("div",{className:"mdx-hero-video__video"},f&&s.default.createElement("video",{ref:m,loop:!0,muted:!0,autoPlay:!0,playsInline:!0,onCanPlay:v,onLoadedMetadata:v},d))))}},13526:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(59879),t)},94386:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JobsPerDepartment=void 0;const r=n(97582),i=n(31665),s=n(74676),a=r.__importDefault(n(67294)),o=n(68193),l=e=>{let{message:t}=e;return a.default.createElement(a.default.Fragment,null,a.default.createElement(i.Typography,{variant:"h1",className:"mdx-jpd__header"},"Current job openings"),!!t&&a.default.createElement(i.Typography,{variant:"body1"},t))};t.JobsPerDepartment=e=>{let{jobData:t,titleFilter:n="",useDummyData:r=!1,...i}=e,c=r?o.jobsPerDepartmentDummyData:t?.departments;return c&&(h=c)&&h.some((e=>e.jobs&&e.jobs.length>0))?(c&&n&&(c=c.map((e=>({...e,jobs:e.jobs.filter((e=>e.title.includes(n)))})))),a.default.createElement("div",{...i},a.default.createElement(l,null),c.map((e=>a.default.createElement(s.SingleDepartmentJobs,{key:e.name,department:e}))))):a.default.createElement(l,{message:"No job openings to show"});var h}},74676:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleDepartmentJobs=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(67294)),a=n(78870);n(37477);const o=r.__importDefault(n(39960));t.SingleDepartmentJobs=e=>{let{department:t}=e;return t.jobs&&0!==t.jobs.length?s.default.createElement("div",{className:"mdx-jpd__single-job-department-container"},s.default.createElement(i.Typography,{variant:"subtitle2",className:"mdx-jpd__department-title"},t.name),s.default.createElement("ul",{className:"mdx-jpd__job-list"},t.jobs.map(((e,t)=>s.default.createElement("li",{key:t,className:"mdx-jpd__job-list-item"},s.default.createElement(o.default,{href:e.absolute_url,target:"_blank",className:"mdx-jpd__job-link"},s.default.createElement("div",{className:"mdx-jpd__job-title-container"},s.default.createElement(i.Typography,{variant:"h5",className:"mdx-jpd__job-title"},e.title),s.default.createElement(a.IconExternalLink,{className:"mdx-jpd__external-link-icon"})),!!e.location?.name&&s.default.createElement(i.Typography,{variant:"subtitle2",component:"div"},e.location.name))))))):null}},75686:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(94386),t)},68193:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.jobsPerDepartmentDummyData=void 0,t.jobsPerDepartmentDummyData=[{id:87842,name:"App",parent_id:43806,child_ids:[87847,87852,87850,87848,45530,87849],jobs:[]},{id:54504,name:"Brand Design Studio",parent_id:null,child_ids:[],jobs:[]},{id:45532,name:"Business Development",parent_id:null,child_ids:[],jobs:[]},{id:87841,name:"Codex",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5329400",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2662332,location:{name:"Remote (Worldwide)"},metadata:null,id:5329400,updated_at:"2023-10-13T09:40:03-04:00",requisition_id:"Cod-6",title:"Technical Business Development Lead [Codex]"}]},{id:84549,name:"Communications",parent_id:null,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5276254",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2645076,location:{name:"Remote (Worldwide)"},metadata:null,id:5276254,updated_at:"2023-10-19T03:08:59-04:00",requisition_id:"PROV-Com-16",title:"Motion Designer"}]},{id:45531,name:"Design",parent_id:null,child_ids:[],jobs:[]},{id:87847,name:"Desktop",parent_id:87842,child_ids:[],jobs:[]},{id:87852,name:"Documentation",parent_id:87842,child_ids:[],jobs:[]},{id:45547,name:"Engineering ",parent_id:null,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5419957",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2693761,location:{name:"Remote (Worldwide)"},metadata:null,id:5419957,updated_at:"2023-10-24T07:30:00-04:00",requisition_id:"APP-QA-2",title:"Desktop QA Engineer "},{absolute_url:"https://jobs.status.im/?gh_jid=3694379",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2055210,location:{name:"Remote (Worldwide)"},metadata:null,id:3694379,updated_at:"2023-10-24T16:23:12-04:00",requisition_id:"BACK-1050",title:"Senior C++ Qt/QML developer for blockchain app"},{absolute_url:"https://jobs.status.im/?gh_jid=3702173",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2058858,location:{name:"Remote (Worldwide)"},metadata:null,id:3702173,updated_at:"2023-10-24T16:21:54-04:00",requisition_id:"93",title:"Senior Mobile ClojureScript UI Developer "}]},{id:49925,name:"Finance",parent_id:87845,child_ids:[],jobs:[]},{id:87854,name:"Infrastructure",parent_id:43806,child_ids:[],jobs:[]},{id:87853,name:"Insights",parent_id:87845,child_ids:[],jobs:[]},{id:87850,name:"Keycard",parent_id:87842,child_ids:[],jobs:[]},{id:145838,name:"Leadership",parent_id:null,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5447463",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2704948,location:{name:"Remote (Worldwide)"},metadata:null,id:5447463,updated_at:"2023-10-24T09:07:22-04:00",requisition_id:"LEAD-1",title:"Chief of Staff [whole ecosystem]"}]},{id:74156,name:"Legal",parent_id:87845,child_ids:[],jobs:[]},{id:91698,name:"Logos",parent_id:null,child_ids:[],jobs:[]},{id:43807,name:"Marketing",parent_id:null,child_ids:[],jobs:[]},{id:87848,name:"Mobile",parent_id:87842,child_ids:[],jobs:[]},{id:87843,name:"Nimbus",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5370820",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2679527,location:{name:"Remote (Worldwide)"},metadata:null,id:5370820,updated_at:"2023-10-19T03:05:07-04:00",requisition_id:"LIDO-1",title:"Senior DevOps Engineer (Blockchain)"}]},{id:144866,name:"Nomos",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5433423",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2315608,location:{name:"Remote (Worldwide)"},metadata:null,id:5433423,updated_at:"2023-10-12T11:20:52-04:00",requisition_id:"PROV-Nom-5",title:"Applied Network Researcher"}]},{id:45548,name:"People Operations",parent_id:87845,child_ids:[],jobs:[]},{id:45530,name:"Product Design",parent_id:87842,child_ids:[],jobs:[]},{id:90941,name:"Program Management",parent_id:null,child_ids:[],jobs:[]},{id:43806,name:"Research & Development",parent_id:null,child_ids:[87842,87841,87854,87843,144866,87846,87981,87847,87852,87850,87848,45530,87849],jobs:[]},{id:87851,name:"Security",parent_id:87845,child_ids:[],jobs:[]},{id:87845,name:"Services",parent_id:null,child_ids:[49925,87853,74156,45548,87851],jobs:[]},{id:91697,name:"Status App ",parent_id:null,child_ids:[],jobs:[]},{id:54783,name:"Technical Writing ",parent_id:null,child_ids:[],jobs:[]},{id:87846,name:"Vac",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=4460860",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2331302,location:{name:"Remote (Worldwide)"},metadata:null,id:4460860,updated_at:"2023-10-04T05:13:53-04:00",requisition_id:"PROV-zkV-1",title:"Zero Knowledge Research Engineer "}]},{id:87981,name:"Waku",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5456032",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2707470,location:{name:"Remote (Worldwide)"},metadata:null,id:5456032,updated_at:"2023-10-23T11:40:19-04:00",requisition_id:"WAK-GL-1",title:"Growth Lead"},{absolute_url:"https://jobs.status.im/?gh_jid=3693623",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2055187,location:{name:"Remote (Worldwide)"},metadata:null,id:3693623,updated_at:"2023-10-04T05:13:53-04:00",requisition_id:"PROV-Sec-2",title:"Protocol Engineer"},{absolute_url:"https://jobs.status.im/?gh_jid=3157908",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:1830496,location:{name:"Remote, Worldwide"},metadata:null,id:3157908,updated_at:"2023-10-04T05:13:53-04:00",requisition_id:"PROV-Sec-3",title:"Protocol Researcher (Distributed Systems)"},{absolute_url:"https://jobs.status.im/?gh_jid=5175038",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2584916,location:{name:"Remote (Worldwide)"},metadata:null,id:5175038,updated_at:"2023-10-09T05:53:53-04:00",requisition_id:"SDK-2",title:"Software Engineer (Chat SDK)"},{absolute_url:"https://jobs.status.im/?gh_jid=5310503",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2656108,location:{name:"Remote (Worldwide)"},metadata:null,id:5310503,updated_at:"2023-10-19T03:12:53-04:00",requisition_id:"PROV-Wak-13",title:"Software Engineer Distributed Systems Testing"},{absolute_url:"https://jobs.status.im/?gh_jid=5423094",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2694724,location:{name:"Remote (Worldwide)"},metadata:null,id:5423094,updated_at:"2023-10-24T12:39:05-04:00",requisition_id:"WAK-BD-1",title:"Technical Business Development Lead "}]},{id:87849,name:"Web",parent_id:87842,child_ids:[],jobs:[]},{id:0,name:"No Department",parent_id:null,child_ids:[],jobs:[]}]},3223:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LogoCarousel=void 0;const r=n(97582),i=r.__importDefault(n(50941)),s=r.__importDefault(n(86010)),a=r.__importStar(n(67294));n(11620);const o=n(83639),l=n(38915),c=n(96507);t.LogoCarousel=e=>{let{title:t,className:n,items:r=[],children:h,...u}=e;const d=(0,c.useHydrated)(),p=(0,a.useRef)(null),f=(0,a.useRef)(null);return"undefined"!=typeof window&&d&&!f.current&&(f.current=p.current?.querySelector(".mdx-grid__content")??null,console.log(f.current,p.current)),a.default.createElement("div",{ref:p,className:(0,s.default)(n,"mdx-logo-carousel"),...u},a.default.createElement(o.SectionHeader,{title:t},a.default.createElement(l.ScrollButtons,{containerRef:f})),a.default.createElement(o.Grid,{className:"mdx-logo-carousel__inner",xs:{wrap:!1,gap:"96px",scrollButtons:!1}},r.map((e=>a.default.createElement(o.Grid.Item,{className:"mdx-logo-carousel__item"},a.default.createElement(i.default,{className:"mdx-logo-carousel__logo",title:e.title,sources:{dark:e.logoSrcDark??e.logoSrc??"",light:e.logoSrc??e.logoSrcDark??""}}))))))}},28466:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(3223),t)},40031:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NewsletterSubscription=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294)),o=n(83639),l=n(39617),c=n(54400);n(58287);t.NewsletterSubscription=e=>{let{title:t,description:n,mailingListId:r,...h}=e;const u=(0,c.useThemeOptions)()?.newsletterSubscription?.mailingListId??0,d=r??u,p=(0,l.useNewsletterApi)(),f=!p.message||p.error,m=t??"Newsletter",g=n??a.default.createElement(a.default.Fragment,null,"Subscribe",a.default.createElement("br",null),"to our newsletter");return a.default.createElement(o.CallToActionSection,{className:"mdx-ns",title:a.default.createElement("span",{className:"mdx-ns__title"},m),description:a.default.createElement("div",{className:"mdx-ns__inner"},a.default.createElement("span",{className:"mdx-ns__description"},g),a.default.createElement("form",{onSubmit:e=>{e.preventDefault();const t=e.target,n=t.elements.namedItem("name").value,r=t.elements.namedItem("email").value;p.subscribe(d,r,n)}},p.message&&a.default.createElement(i.Toast,{title:p.message,className:"mdx-ns__toast",icon:p.error?i.ErrorIcon:i.CheckIcon}),a.default.createElement("div",{className:(0,s.default)("mdx-ns__inputs",!f&&"hidden")},a.default.createElement(i.TextField,{inputProps:{type:"text",name:"name"},variant:"underlined",placeholder:"First name or pseudonym"}),a.default.createElement(i.TextField,{inputProps:{type:"email",name:"email",required:!0},variant:"underlined",placeholder:"Email address (required)"})),a.default.createElement(i.Button,{size:"large",color:"primary",variant:"outlined",className:(0,s.default)("mdx-ns__submit-button",!f&&"hidden"),disabled:p.busy},"Subscribe"))),columns:2})}},46287:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(40031),t)},69702:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PoweredBy=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294)),a=n(83639);n(63428);t.PoweredBy=e=>{let{items:t=[],className:n,...r}=e;return s.default.createElement(a.Grid,{className:(0,i.default)(n,"mdx-powered-by"),xs:{cols:1,wrap:!0,gap:"0 1rem"},lg:{cols:2},...r},t.map(((e,t)=>s.default.createElement(a.Grid.Item,{key:t,xs:1},s.default.createElement(a.AppCard,{...e})))))}},91089:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(69702),t)},4816:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileCard=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(39960)),a=r.__importDefault(n(67294)),o=n(78870);n(36489);const l=r.__importDefault(n(86010));t.ProfileCard=e=>{let{imgSrc:t,name:n,githubUsername:r,githubLink:c,discordUsername:h,discordLink:u,...d}=e;return a.default.createElement("div",{...d,className:(0,l.default)("mdx-profile-card",d.className)},a.default.createElement("div",{className:"mdx-profile-card__profile"},void 0===t?a.default.createElement(o.IconAvatar,{className:"mdx-profile-card__avatar"}):a.default.createElement("img",{alt:"string"==typeof n?n:"",className:"mdx-profile-card__avatar",src:t}),a.default.createElement(i.Typography,{className:"mdx-profile-card__name",variant:"h3",component:"h4"},n)),a.default.createElement("div",{className:"mdx-profile-card__buttons"},r&&c&&a.default.createElement(s.default,{href:c,target:"_blank",className:"mdx-profile-card__link"},a.default.createElement(i.Button,{size:"small",variant:"outlined",className:"mdx-profile-card__button"},a.default.createElement(o.IconGithub,null),a.default.createElement(i.Typography,{variant:"body2",className:"mdx-profile-card__link__label"},r))),h&&u&&a.default.createElement(s.default,{href:u,target:"_blank",className:"mdx-profile-card__link"},a.default.createElement(i.Button,{size:"small",variant:"outlined",className:"mdx-profile-card__button"},a.default.createElement(o.IconDiscordWhite,null),a.default.createElement(i.Typography,{variant:"body2",className:"mdx-profile-card__link__label"},h)))))}},50922:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(4816),t)},6306:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Roadmap=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294)),a=n(83639),o=n(40851);n(74166);t.Roadmap=e=>{let{title:t,description:n,timeline:r=[],className:l,children:c,...h}=e;const u=(new Date).getFullYear(),d=(e,t,n)=>{if(t===n.length-1)return"none";return e.period[0]===n[t+1].period[0]?"solid":"dashed"},p=e=>{const t=(new Date).getFullYear(),n=(()=>{const e=(new Date).getMonth();return"Q"+Math.ceil((e+1)/3)})();let r,i;return Array.isArray(e)?[r,i]=e:r=e,rt?"transparent":i&&"+"!==i?i<=n?"filled":"transparent":"filled"};return s.default.createElement("div",{className:(0,i.default)(l,"mdx-roadmap"),...h},s.default.createElement(a.SectionHeader,{className:"mdx-roadmap__header",title:t,description:n},c),r.length>0&&s.default.createElement(a.Grid,{className:"mdx-roadmap__timeline",xs:{cols:6,wrap:!1,gap:"0 1rem",scrollButtons:!0},spacingButtons:!0,leftLabel:"Past",rightLabel:"Future"},r.map(((e,t)=>s.default.createElement(a.Grid.Item,{key:t,xs:1},s.default.createElement(o.TimelineItem,{...e,index:t,period:e.period??u,description:e.description,borderStyle:d(e,t,r),periodStyle:p(e?.period??u),className:(0,i.default)("mdx-roadmap__timeline-item",e.className)}))))))}},57890:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(6306),t)},81367:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScrollButtons=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294));n(79832);t.ScrollButtons=e=>{let{leftLabel:t,rightLabel:n,containerRef:r,containerId:o,spacing:l="grouped",...c}=e;const h=e=>{const t=r?r.current:document.querySelector(`#${o}`);if(!t)return;const n=t.children[0]?.getBoundingClientRect?.()?.width??236;t.scrollTo({behavior:"smooth",left:t.scrollLeft+(t.getBoundingClientRect()?.width-n)*e})};return a.default.createElement("div",{...c,className:(0,s.default)(c.className,"mdx-scroll-buttons","spaced"===l&&"mdx-scroll-buttons--spaced")},a.default.createElement(i.IconButtonGroup,{size:"small",color:"primary"},a.default.createElement(i.IconButton,{className:(0,s.default)("mdx-scroll-buttons__button",t&&t.length>0&&"mdx-scroll-buttons__button--with-label"),size:"small",onClick:h.bind(null,-1)},a.default.createElement(i.ChevronLeftIcon,null),t&&t.length>0&&a.default.createElement("span",{className:"mdx-scroll-buttons__label"},t)),a.default.createElement(i.IconButton,{className:(0,s.default)("mdx-scroll-buttons__button",n&&n.length&&"mdx-scroll-buttons__button--with-label"),size:"small",onClick:h.bind(null,1)},n&&n.length>0&&a.default.createElement("span",{className:"mdx-scroll-buttons__label"},n),a.default.createElement(i.ChevronRightIcon,null))))}},38915:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(81367),t)},24728:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScrollToBottom=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importStar(n(67294)),o=n(89164),l=n(39320),c=n(53708),h=n(46439),u=r.__importDefault(n(49933));t.ScrollToBottom=e=>{const{children:t,className:n,style:r,...d}=e,p=(0,h.useScrollY)(),f=(0,c.useIsMobile)(),m=(0,o.useWindowSize)(),g=(0,a.useMemo)((()=>(document.querySelector(".mdx-hero")?.getBoundingClientRect()?.bottom??0)+window.scrollY),[m.height]);return a.default.createElement(i.IconButton,{onClick:()=>{const e=document.querySelector(".main-wrapper article"),t=e?.children?.[1];if(t)return window.scrollTo({left:0,top:t.getBoundingClientRect().top-(f?200:0),behavior:"smooth"});window.scrollTo({top:document.body.scrollHeight,behavior:"smooth"})},size:f?"small":"large",className:(0,s.default)(u.default.scrollToBottom,n,p>20&&u.default.hide),style:(0,l.makeStyle)({...r??{}},{vh:m.height/100+"px",maxTop:g+"px"}),...d},a.default.createElement(i.ChevronDownIcon,{color:"primary"}))}},42073:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(24728),t)},56533:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SectionHeader=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294)),o=n(83639);n(92476);t.SectionHeader=e=>{let{title:t,description:n,className:r,children:l,...c}=e;const h=!!n;return a.default.createElement(o.Box,{className:(0,s.default)(r,"mdx-section-header",h&&"mdx-section-header--with-description"),...c},a.default.createElement(i.Typography,{className:"mdx-section-header__title",component:"h2",variant:"h5"},t,!h&&l&&a.default.createElement("div",{className:"mdx-section-header__extra"},l)),n&&a.default.createElement(i.Typography,{className:"mdx-section-header__description",component:"p",variant:"h3"},n,a.default.createElement("div",{className:"mdx-section-header__extra"},l)))}},68151:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(56533),t)},39439:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Showcase=void 0;const r=n(97582),i=r.__importDefault(n(86010)),s=r.__importDefault(n(67294)),a=n(83639);n(13344);t.Showcase=e=>{let{items:t=[],className:n,...r}=e;return s.default.createElement(a.Grid,{className:(0,i.default)(n,"mdx-showcase"),xs:{cols:2,wrap:!0,gap:"1.5rem 1em"},lg:{cols:3,gap:"1rem"},...r},t.map(((e,t)=>s.default.createElement(a.Grid.Item,{key:t,className:"mdx-showcase__item",xs:1},s.default.createElement(a.ShowcaseCard,{...e})))))}},8760:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(39439),t)},96909:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ShowcaseCard=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(50941)),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294));n(29188);t.ShowcaseCard=e=>{let{index:t,name:n,logoSrc:r,logoSrcDark:l,description:c,className:h,size:u="large",borderStyle:d="solid",children:p,...f}=e;return o.default.createElement("div",{className:(0,a.default)(h,"mdx-showcase-card",`mdx-showcase-card--${u}`,`mdx-showcase-card--border-${d}`),...f},o.default.createElement("div",{className:"mdx-showcase-card__inner"},t&&o.default.createElement(i.Typography,{className:"mdx-showcase-card__index",variant:"subtitle2",component:"div"},t),(r||l)&&o.default.createElement(s.default,{sources:{dark:l??r??"",light:r??l??""},alt:"string"==typeof n?n:"",className:"mdx-showcase-card__logo"}),n&&o.default.createElement(i.Typography,{variant:"h2",component:"h2",className:"mdx-showcase-card__name"},n),c&&o.default.createElement(i.Typography,{variant:"body1",component:"p",className:"mdx-showcase-card__description"},c)))}},4385:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(96909),t)},9847:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SocialCard=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(50941)),a=r.__importDefault(n(86010)),o=r.__importDefault(n(67294)),l=n(78870);n(63933);t.SocialCard=e=>{let{title:t,logoSrc:n,logoSrcDark:r,description:c,...h}=e;return o.default.createElement("a",{target:"_blank",...h,className:(0,a.default)(h.className,"mdx-social-card")},o.default.createElement("div",{className:"mdx-social-card__row"},(n||r)&&o.default.createElement(s.default,{sources:{dark:r??n??"",light:n??r??""},alt:t??"social card logo",className:"mdx-social-card__logo"}),o.default.createElement(l.IconExternalLink,{className:"mdx-social-card__external-link"})),o.default.createElement(i.Typography,{variant:"body1",component:"span",className:"mdx-social-card__description"},c))}},26325:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(9847),t)},56732:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TimelineItem=void 0;const r=n(97582),i=n(31665),s=r.__importDefault(n(86010)),a=r.__importDefault(n(67294));n(86782);t.TimelineItem=e=>{let{index:t,period:n,description:r,borderStyle:o,periodStyle:l,className:c,children:h,...u}=e;return a.default.createElement("div",{className:(0,s.default)(c,"mdx-timeline-item","dashed"===o&&"mdx-timeline-item--border-dashed"),...u},a.default.createElement("div",{className:"mdx-timeline-item__header"},a.default.createElement("div",{className:"mdx-timeline-item__period-container"},"none"!==o&&a.default.createElement("div",{className:(0,s.default)("mdx-timeline-item__border")}),a.default.createElement(i.Typography,{variant:"subtitle2",component:"span",className:(0,s.default)("mdx-timeline-item__period",`mdx-timeline-item__period--${l}`)},(e=>{if(Array.isArray(e)&&e.length>0){let t=e[0].toString();return e.length>1&&("+"===e[1]?t+="+":t+=" "+e[1]),t}return""})(n))),a.default.createElement(i.Typography,{variant:"h2",component:"span",className:"mdx-timeline-item__index"},"number"==typeof t?`${t<9?"0":""}${t+1}`:t)),a.default.createElement(i.Typography,{variant:"h5",component:"p",className:"mdx-timeline-item__description"},r))}},40851:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(56732),t)},83639:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582);r.__exportStar(n(56027),t),r.__exportStar(n(45138),t),r.__exportStar(n(11734),t),r.__exportStar(n(84777),t),r.__exportStar(n(16607),t),r.__exportStar(n(3447),t),r.__exportStar(n(9110),t),r.__exportStar(n(44385),t),r.__exportStar(n(88819),t),r.__exportStar(n(2561),t),r.__exportStar(n(7757),t),r.__exportStar(n(24834),t),r.__exportStar(n(83398),t),r.__exportStar(n(31889),t),r.__exportStar(n(18355),t),r.__exportStar(n(32922),t),r.__exportStar(n(10052),t),r.__exportStar(n(69562),t),r.__exportStar(n(13526),t),r.__exportStar(n(75686),t),r.__exportStar(n(28466),t),r.__exportStar(n(46287),t),r.__exportStar(n(91089),t),r.__exportStar(n(50922),t),r.__exportStar(n(57890),t),r.__exportStar(n(42073),t),r.__exportStar(n(68151),t),r.__exportStar(n(8760),t),r.__exportStar(n(4385),t),r.__exportStar(n(26325),t),r.__exportStar(n(40851),t)},98823:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.lsdUtils=t.LsdUtils=void 0;const r=n(31665),i=n(70917);class s{_breakpoints={};getBreakpoints=e=>{if(this._breakpoints[e.name])return this._breakpoints[e.name];const t={};for(let n=0;nthis.getBreakpoints(e)[t];breakpoints=(()=>function(e){return void 0===e&&(e=[]),r.THEME_BREAKPOINTS.filter((t=>!e.find((e=>e===t))))})();typography=function(e,t){return void 0===t&&(t=!1),"subtitle3"===e?"\n font-size: 12px !important;\n font-weight: 400 !important;\n line-height: 16px !important;\n ":`\n font-size: var(--lsd-${e}-fontSize)${t?"!important":""};\n font-weight: var(--lsd-${e}-fontWeight)${t?"!important":""};\n line-height: var(--lsd-${e}-lineHeight)${t?"!important":""};\n `};breakpoint=(()=>{var e=this;return function(t,n,r,i){void 0===r&&(r="up");const{min:s,max:a}=e.getBreakpoint(t,n);let o="@media ";if("up"===r)o+=`(min-width: ${s}px)`;else if("down"===r)o+=`(max-width: ${a}px)`;else if("between"===r&&i){o+=`(min-width: ${s}px) and (max-width: ${e.getBreakpoint(t,i).min-1}px)`}else o+=`(min-width: ${s}px) and (max-width: ${a}px)`;return`${o}`}})();responsive=(()=>function(e,n,r){void 0===r&&(r="up");const s=t.lsdUtils.breakpoint(e,n,r);return e=>i.css` - ${s} { - ${e} - } - `})()}t.LsdUtils=s,t.lsdUtils=new s},39320:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeStyle=void 0;t.makeStyle=function(e,t){return void 0===t&&(t={}),{...e,...Object.entries(t).reduce(((e,t)=>{let[n,r]=t;return{...e,[`--${n}`]:r}}),{})}}},37805:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calcHeroInfoMb=t.isMobile=t.generateTextShadow=t.isTouchDevice=t.calcScrollThreshold=t.mapFloat=t.random=void 0;t.random=(e,t)=>Math.random()*(t-e)+e;t.mapFloat=(e,t,n,r,i)=>(e-t)*(i-r)/(n-t)+r;t.calcScrollThreshold=()=>.4*window.innerHeight;t.isTouchDevice=()=>"undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints&&navigator.msMaxTouchPoints>0);t.generateTextShadow=e=>{let t="";for(let n=0;n"undefined"!=typeof window&&window.innerWidth<997;t.calcHeroInfoMb=e=>(0,t.mapFloat)(scrollY,0,(0,t.calcScrollThreshold)(),0,100)},39617:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useNewsletterApi=void 0;const r=n(67294);t.useNewsletterApi=()=>{const[e,t]=(0,r.useState)(!1),[n,i]=(0,r.useState)({error:!1,message:""});return{busy:e,error:n.error,message:n.message,subscribe:async(e,n,r)=>{t(!0);try{const t=await fetch("https://odoo.logos.co/website_mass_mailing/subscribe2",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"call",params:{name:r,value:n,list_id:e,subscription_type:"email"}})}),s=await t.json();i({error:!1,message:s.result.message})}catch(s){i({error:!0,message:"Something went wrong!"})}t(!1)}}}},46439:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useScrollY=void 0;const r=n(521),i=n(67294);t.useScrollY=()=>{const[e,t]=(0,i.useState)(0);return(0,r.useWindowEventListener)("scroll",(()=>{t(window.scrollY)})),e}},8260:(e,t,n)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function i(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function s(e){i(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===r(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function a(e){if(i(1,arguments),!function(e){return i(1,arguments),e instanceof Date||"object"===r(e)&&"[object Date]"===Object.prototype.toString.call(e)}(e)&&"number"!=typeof e)return!1;var t=s(e);return!isNaN(Number(t))}function o(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function l(e,t){return i(2,arguments),function(e,t){i(2,arguments);var n=s(e).getTime(),r=o(t);return new Date(n+r)}(e,-o(t))}n.r(t),n.d(t,{default:()=>J});function c(e){i(1,arguments);var t=s(e),n=t.getUTCDay(),r=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t}function h(e){i(1,arguments);var t=s(e),n=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var a=c(r),o=new Date(0);o.setUTCFullYear(n,0,4),o.setUTCHours(0,0,0,0);var l=c(o);return t.getTime()>=a.getTime()?n+1:t.getTime()>=l.getTime()?n:n-1}function u(e){i(1,arguments);var t=s(e),n=c(t).getTime()-function(e){i(1,arguments);var t=h(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),c(n)}(t).getTime();return Math.round(n/6048e5)+1}var d={};function p(){return d}function f(e,t){var n,r,a,l,c,h,u,d;i(1,arguments);var f=p(),m=o(null!==(n=null!==(r=null!==(a=null!==(l=null==t?void 0:t.weekStartsOn)&&void 0!==l?l:null==t||null===(c=t.locale)||void 0===c||null===(h=c.options)||void 0===h?void 0:h.weekStartsOn)&&void 0!==a?a:f.weekStartsOn)&&void 0!==r?r:null===(u=f.locale)||void 0===u||null===(d=u.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==n?n:0);if(!(m>=0&&m<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=s(e),A=g.getUTCDay(),v=(A=1&&v<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var y=new Date(0);y.setUTCFullYear(g+1,0,v),y.setUTCHours(0,0,0,0);var x=f(y,t),b=new Date(0);b.setUTCFullYear(g,0,v),b.setUTCHours(0,0,0,0);var E=f(b,t);return m.getTime()>=x.getTime()?g+1:m.getTime()>=E.getTime()?g:g-1}function g(e,t){i(1,arguments);var n=s(e),r=f(n,t).getTime()-function(e,t){var n,r,s,a,l,c,h,u;i(1,arguments);var d=p(),g=o(null!==(n=null!==(r=null!==(s=null!==(a=null==t?void 0:t.firstWeekContainsDate)&&void 0!==a?a:null==t||null===(l=t.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==s?s:d.firstWeekContainsDate)&&void 0!==r?r:null===(h=d.locale)||void 0===h||null===(u=h.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==n?n:1),A=m(e,t),v=new Date(0);return v.setUTCFullYear(A,0,g),v.setUTCHours(0,0,0,0),f(v,t)}(n,t).getTime();return Math.round(r/6048e5)+1}function A(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length0?n:1-n;return A("yy"===t?r%100:r,t.length)},M:function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):A(n+1,2)},d:function(e,t){return A(e.getUTCDate(),t.length)},a:function(e,t){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return"am"===n?"a.m.":"p.m."}},h:function(e,t){return A(e.getUTCHours()%12||12,t.length)},H:function(e,t){return A(e.getUTCHours(),t.length)},m:function(e,t){return A(e.getUTCMinutes(),t.length)},s:function(e,t){return A(e.getUTCSeconds(),t.length)},S:function(e,t){var n=t.length,r=e.getUTCMilliseconds();return A(Math.floor(r*Math.pow(10,n-3)),t.length)}};var y="midnight",x="noon",b="morning",E="afternoon",_="evening",S="night",w={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),i=r>0?r:1-r;return n.ordinalNumber(i,{unit:"year"})}return v.y(e,t)},Y:function(e,t,n,r){var i=m(e,r),s=i>0?i:1-i;return"YY"===t?A(s%100,2):"Yo"===t?n.ordinalNumber(s,{unit:"year"}):A(s,t.length)},R:function(e,t){return A(h(e),t.length)},u:function(e,t){return A(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return A(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return A(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return v.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return A(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var i=g(e,r);return"wo"===t?n.ordinalNumber(i,{unit:"week"}):A(i,t.length)},I:function(e,t,n){var r=u(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):A(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):v.d(e,t)},D:function(e,t,n){var r=function(e){i(1,arguments);var t=s(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=n-t.getTime();return Math.floor(r/864e5)+1}(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):A(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var i=e.getUTCDay(),s=(i-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return A(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var i=e.getUTCDay(),s=(i-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return A(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),i=0===r?7:r;switch(t){case"i":return String(i);case"ii":return A(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,i=e.getUTCHours();switch(r=12===i?x:0===i?y:i/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,i=e.getUTCHours();switch(r=i>=17?_:i>=12?E:i>=4?b:S,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return v.h(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):v.H(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):A(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):A(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):v.m(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):v.s(e,t)},S:function(e,t){return v.S(e,t)},X:function(e,t,n,r){var i=(r._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return C(i);case"XXXX":case"XX":return T(i);default:return T(i,":")}},x:function(e,t,n,r){var i=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return C(i);case"xxxx":case"xx":return T(i);default:return T(i,":")}},O:function(e,t,n,r){var i=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+M(i,":");default:return"GMT"+T(i,":")}},z:function(e,t,n,r){var i=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+M(i,":");default:return"GMT"+T(i,":")}},t:function(e,t,n,r){var i=r._originalDate||e;return A(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,n,r){return A((r._originalDate||e).getTime(),t.length)}};function M(e,t){var n=e>0?"-":"+",r=Math.abs(e),i=Math.floor(r/60),s=r%60;if(0===s)return n+String(i);var a=t||"";return n+String(i)+a+A(s,2)}function C(e,t){return e%60==0?(e>0?"-":"+")+A(Math.abs(e)/60,2):T(e,t)}function T(e,t){var n=t||"",r=e>0?"-":"+",i=Math.abs(e);return r+A(Math.floor(i/60),2)+n+A(i%60,2)}const I=w;var B=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},R=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},P={p:R,P:function(e,t){var n,r=e.match(/(P+)(p+)?/)||[],i=r[1],s=r[2];if(!s)return B(e,t);switch(i){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",B(i,t)).replace("{{time}}",R(s,t))}};const D=P;var L=["D","DD"],F=["YY","YYYY"];function U(e,t,n){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(n,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var O={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};const N=function(e,t,n){var r,i=O[e];return r="string"==typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),null!=n&&n.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function k(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var G={date:k({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:k({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:k({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};var z={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Q(e){return function(t,n){var r;if("formatting"===(null!=n&&n.context?String(n.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,s=null!=n&&n.width?String(n.width):i;r=e.formattingValues[s]||e.formattingValues[i]}else{var a=e.defaultWidth,o=null!=n&&n.width?String(n.width):e.defaultWidth;r=e.values[o]||e.values[a]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function V(e){return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(i);if(!s)return null;var a,o=s[0],l=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var n=0;n20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:Q({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Q({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Q({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Q({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Q({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(H={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.match(H.matchPattern);if(!n)return null;var r=n[0],i=e.match(H.parsePattern);if(!i)return null;var s=H.valueCallback?H.valueCallback(i[0]):i[0];return{value:s=t.valueCallback?t.valueCallback(s):s,rest:e.slice(r.length)}}),era:V({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:V({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:V({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:V({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:V({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var W=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,X=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Y=/^'([^]*?)'?$/,q=/''/g,K=/[a-zA-Z]/;function J(e,t,n){var r,c,h,u,d,f,m,g,A,v,y,x,b,E,_,S,w,M;i(2,arguments);var C=String(t),T=p(),B=null!==(r=null!==(c=null==n?void 0:n.locale)&&void 0!==c?c:T.locale)&&void 0!==r?r:j,R=o(null!==(h=null!==(u=null!==(d=null!==(f=null==n?void 0:n.firstWeekContainsDate)&&void 0!==f?f:null==n||null===(m=n.locale)||void 0===m||null===(g=m.options)||void 0===g?void 0:g.firstWeekContainsDate)&&void 0!==d?d:T.firstWeekContainsDate)&&void 0!==u?u:null===(A=T.locale)||void 0===A||null===(v=A.options)||void 0===v?void 0:v.firstWeekContainsDate)&&void 0!==h?h:1);if(!(R>=1&&R<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var P=o(null!==(y=null!==(x=null!==(b=null!==(E=null==n?void 0:n.weekStartsOn)&&void 0!==E?E:null==n||null===(_=n.locale)||void 0===_||null===(S=_.options)||void 0===S?void 0:S.weekStartsOn)&&void 0!==b?b:T.weekStartsOn)&&void 0!==x?x:null===(w=T.locale)||void 0===w||null===(M=w.options)||void 0===M?void 0:M.weekStartsOn)&&void 0!==y?y:0);if(!(P>=0&&P<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!B.localize)throw new RangeError("locale must contain localize property");if(!B.formatLong)throw new RangeError("locale must contain formatLong property");var O=s(e);if(!a(O))throw new RangeError("Invalid time value");var N=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(O),k=l(O,N),G={firstWeekContainsDate:R,weekStartsOn:P,locale:B,_originalDate:O};return C.match(X).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,D[t])(e,B.formatLong):e})).join("").match(W).map((function(r){if("''"===r)return"'";var i=r[0];if("'"===i)return function(e){var t=e.match(Y);if(!t)return e;return t[1].replace(q,"'")}(r);var s,a=I[i];if(a)return null!=n&&n.useAdditionalWeekYearTokens||(s=r,-1===F.indexOf(s))||U(r,t,String(e)),null!=n&&n.useAdditionalDayOfYearTokens||!function(e){return-1!==L.indexOf(e)}(r)||U(r,t,String(e)),a(k,r,B.localize,G);if(i.match(K))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");return r})).join("")}},20296:e=>{function t(e,t,n){var r,i,s,a,o;function l(){var c=Date.now()-a;c=0?r=setTimeout(l,t-c):(r=null,n||(o=e.apply(s,i),s=i=null))}null==t&&(t=100);var c=function(){s=this,i=arguments,a=Date.now();var c=n&&!r;return r||(r=setTimeout(l,t)),c&&(o=e.apply(s,i),s=i=null),o};return c.clear=function(){r&&(clearTimeout(r),r=null)},c.flush=function(){r&&(o=e.apply(s,i),s=i=null,clearTimeout(r),r=null)},c}t.debounce=t,e.exports=t},64063:e=>{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,i,s;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(i=r;0!=i--;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(s=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(i=r;0!=i--;)if(!Object.prototype.hasOwnProperty.call(n,s[i]))return!1;for(i=r;0!=i--;){var a=s[i];if(!e(t[a],n[a]))return!1}return!0}return t!=t&&n!=n}},76427:(e,t,n)=>{var r="__lodash_hash_undefined__",i=9007199254740991,s="[object Arguments]",a="[object Function]",o="[object GeneratorFunction]",l="[object Symbol]",c=/^\[object .+?Constructor\]$/,h=/^(?:0|[1-9]\d*)$/,u="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,d="object"==typeof self&&self&&self.Object===Object&&self,p=u||d||Function("return this")();function f(e,t){return!!(e?e.length:0)&&function(e,t,n){if(t!=t)return function(e,t,n,r){var i=e.length,s=n+(r?1:-1);for(;r?s--:++s-1}function m(e,t,n){for(var r=-1,i=e?e.length:0;++r0&&n(o)?t>1?W(o,t-1,n,r,i):A(i,o):r||(i[i.length]=o)}return i}function X(e){if(!oe(e)||(t=e,M&&M in t))return!1;var t,n=ae(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(n){}return t}(e)?B:c;return n.test(function(e){if(null!=e){try{return C.call(e)}catch(t){}try{return e+""}catch(t){}}return""}(e))}function Y(e){if(!oe(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t,n,r,i=(n=(t=e)&&t.constructor,r="function"==typeof n&&n.prototype||S,t===r),s=[];for(var a in e)("constructor"!=a||!i&&T.call(e,a))&&s.push(a);return s}function q(e){return function(e,t,n){var r=t(e);return ie(e)?r:A(r,n(e))}(e,ce,$)}function K(e,t){var n,r,i=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof t?"string":"hash"]:i.map}function J(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return X(n)?n:void 0}G.prototype.clear=function(){this.__data__=k?k(null):{}},G.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},G.prototype.get=function(e){var t=this.__data__;if(k){var n=t[e];return n===r?void 0:n}return T.call(t,e)?t[e]:void 0},G.prototype.has=function(e){var t=this.__data__;return k?void 0!==t[e]:T.call(t,e)},G.prototype.set=function(e,t){return this.__data__[e]=k&&void 0===t?r:t,this},z.prototype.clear=function(){this.__data__=[]},z.prototype.delete=function(e){var t=this.__data__,n=j(t,e);return!(n<0)&&(n==t.length-1?t.pop():L.call(t,n,1),!0)},z.prototype.get=function(e){var t=this.__data__,n=j(t,e);return n<0?void 0:t[n][1]},z.prototype.has=function(e){return j(this.__data__,e)>-1},z.prototype.set=function(e,t){var n=this.__data__,r=j(n,e);return r<0?n.push([e,t]):n[r][1]=t,this},Q.prototype.clear=function(){this.__data__={hash:new G,map:new(N||z),string:new G}},Q.prototype.delete=function(e){return K(this,e).delete(e)},Q.prototype.get=function(e){return K(this,e).get(e)},Q.prototype.has=function(e){return K(this,e).has(e)},Q.prototype.set=function(e,t){return K(this,e).set(e,t),this},V.prototype.add=V.prototype.push=function(e){return this.__data__.set(e,r),this},V.prototype.has=function(e){return this.__data__.has(e)};var Z=U?x(U,Object):pe,$=U?function(e){for(var t=[];e;)A(t,Z(e)),e=P(e);return t}:pe;function ee(e){return ie(e)||re(e)||!!(F&&e&&e[F])}function te(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||h.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=i}(e.length)&&!ae(e)}function ae(e){var t=oe(e)?I.call(e):"";return t==a||t==o}function oe(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function le(e){return!!e&&"object"==typeof e}function ce(e){return se(e)?H(e,!0):Y(e)}var he,ue,de=(he=function(e,t){return null==e?{}:(t=g(W(t,1),ne),function(e,t){return function(e,t,n){for(var r=-1,i=t.length,s={};++r=200&&(a=y,o=!1,t=new V(t));e:for(;++s{var r=9007199254740991,i="[object Arguments]",s="[object Function]",a="[object GeneratorFunction]",o="[object Symbol]",l="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,c="object"==typeof self&&self&&self.Object===Object&&self,h=l||c||Function("return this")();function u(e,t){for(var n=-1,r=t.length,i=e.length;++n0&&n(o)?t>1?y(o,t-1,n,r,i):u(i,o):r||(i[i.length]=o)}return i}function x(e){return E(e)||function(e){return function(e){return _(e)&&function(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=r}(e.length)&&!function(e){var t=function(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}(e)?f.call(e):"";return t==s||t==a}(e)}(e)}(e)&&p.call(e,"callee")&&(!g.call(e,"callee")||f.call(e)==i)}(e)||!!(A&&e&&e[A])}function b(e){if("string"==typeof e||function(e){return"symbol"==typeof e||_(e)&&f.call(e)==o}(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}var E=Array.isArray;function _(e){return!!e&&"object"==typeof e}var S,w,M=(S=function(e,t){return null==e?{}:function(e,t){return function(e,t,n){for(var r=-1,i=t.length,s={};++r{var r=n(79833),i=0;e.exports=function(e){var t=++i;return r(e)+t}},58147:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_TTsz",fullWidth:"fullWidth_HBtH",fullHeight:"fullHeight_ls1u",content:"content_feMR",keep:"keep_Y9Ea"}},49933:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={scrollToBottom:"scrollToBottom_NE5w",hide:"hide_q_kn"}},11403:(e,t,n)=>{"use strict";n.r(t)},93255:(e,t,n)=>{"use strict";n.r(t)},77877:(e,t,n)=>{"use strict";n.r(t)},56216:(e,t,n)=>{"use strict";n.r(t)},51928:(e,t,n)=>{"use strict";n.r(t)},8981:(e,t,n)=>{"use strict";n.r(t)},46774:(e,t,n)=>{"use strict";n.r(t)},84238:(e,t,n)=>{"use strict";n.r(t)},69774:(e,t,n)=>{"use strict";n.r(t)},58918:(e,t,n)=>{"use strict";n.r(t)},91786:(e,t,n)=>{"use strict";n.r(t)},85661:(e,t,n)=>{"use strict";n.r(t)},57255:(e,t,n)=>{"use strict";n.r(t)},30204:(e,t,n)=>{"use strict";n.r(t)},6460:(e,t,n)=>{"use strict";n.r(t)},61588:(e,t,n)=>{"use strict";n.r(t)},92751:(e,t,n)=>{"use strict";n.r(t)},53175:(e,t,n)=>{"use strict";n.r(t)},37477:(e,t,n)=>{"use strict";n.r(t)},11620:(e,t,n)=>{"use strict";n.r(t)},58287:(e,t,n)=>{"use strict";n.r(t)},63428:(e,t,n)=>{"use strict";n.r(t)},36489:(e,t,n)=>{"use strict";n.r(t)},74166:(e,t,n)=>{"use strict";n.r(t)},79832:(e,t,n)=>{"use strict";n.r(t)},92476:(e,t,n)=>{"use strict";n.r(t)},13344:(e,t,n)=>{"use strict";n.r(t)},29188:(e,t,n)=>{"use strict";n.r(t)},63933:(e,t,n)=>{"use strict";n.r(t)},86782:(e,t,n)=>{"use strict";n.r(t)},67287:(e,t,n)=>{(e=n.nmd(e)).exports=function(t){var r={},i=n(27418),s=n(67294),a=n(63840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n--o||i[a]!==s[o])return"\n"+i[a].replace(" at new "," at ")}while(1<=a&&0<=o);break}}}finally{Xe=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?We(e):""}var qe=[],Ke=-1;function Je(e){return{current:e}}function Ze(e){0>Ke||(e.current=qe[Ke],qe[Ke]=null,Ke--)}function $e(e,t){Ke++,qe[Ke]=e.current,e.current=t}var et={},tt=Je(et),nt=Je(!1),rt=et;function it(e,t){var n=e.type.contextTypes;if(!n)return et;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,s={};for(i in n)s[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function st(e){return null!=(e=e.childContextTypes)}function at(){Ze(nt),Ze(tt)}function ot(e,t,n){if(tt.current!==et)throw Error(o(168));$e(tt,t),$e(nt,n)}function lt(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var s in r=r.getChildContext())if(!(s in e))throw Error(o(108,T(t)||"Unknown",s));return i({},n,r)}function ct(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||et,rt=tt.current,$e(tt,e),$e(nt,nt.current),!0}function ht(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=lt(e,t,rt),r.__reactInternalMemoizedMergedChildContext=e,Ze(nt),Ze(tt),$e(tt,e)):Ze(nt),$e(nt,n)}var ut=null,dt=null;(0,a.unstable_now)();var pt=0,ft=8;function mt(e){if(0!=(1&e))return ft=15,1;if(0!=(2&e))return ft=14,2;if(0!=(4&e))return ft=13,4;var t=24&e;return 0!==t?(ft=12,t):0!=(32&e)?(ft=11,32):0!==(t=192&e)?(ft=10,t):0!=(256&e)?(ft=9,256):0!==(t=3584&e)?(ft=8,t):0!=(4096&e)?(ft=7,4096):0!==(t=4186112&e)?(ft=6,t):0!==(t=62914560&e)?(ft=5,t):67108864&e?(ft=4,67108864):0!=(134217728&e)?(ft=3,134217728):0!==(t=805306368&e)?(ft=2,t):0!=(1073741824&e)?(ft=1,1073741824):(ft=8,e)}function gt(e,t){var n=e.pendingLanes;if(0===n)return ft=0;var r=0,i=0,s=e.expiredLanes,a=e.suspendedLanes,o=e.pingedLanes;if(0!==s)r=s,i=ft=15;else if(0!==(s=134217727&n)){var l=s&~a;0!==l?(r=mt(l),i=ft):0!==(o&=s)&&(r=mt(o),i=ft)}else 0!==(s=n&~a)?(r=mt(s),i=ft):0!==o&&(r=mt(o),i=ft);if(0===r)return 0;if(r=n&((0>(r=31-Et(r))?0:1<n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Et(t)]=n}var Et=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(_t(e)/St|0)|0},_t=Math.log,St=Math.LN2;var wt=a.unstable_runWithPriority,Mt=a.unstable_scheduleCallback,Ct=a.unstable_cancelCallback,Tt=a.unstable_shouldYield,It=a.unstable_requestPaint,Bt=a.unstable_now,Rt=a.unstable_getCurrentPriorityLevel,Pt=a.unstable_ImmediatePriority,Dt=a.unstable_UserBlockingPriority,Lt=a.unstable_NormalPriority,Ft=a.unstable_LowPriority,Ut=a.unstable_IdlePriority,Ot={},Nt=void 0!==It?It:function(){},kt=null,Gt=null,zt=!1,Qt=Bt(),Vt=1e4>Qt?Bt:function(){return Bt()-Qt};function Ht(){switch(Rt()){case Pt:return 99;case Dt:return 98;case Lt:return 97;case Ft:return 96;case Ut:return 95;default:throw Error(o(332))}}function jt(e){switch(e){case 99:return Pt;case 98:return Dt;case 97:return Lt;case 96:return Ft;case 95:return Ut;default:throw Error(o(332))}}function Wt(e,t){return e=jt(e),wt(e,t)}function Xt(e,t,n){return e=jt(e),Mt(e,t,n)}function Yt(){if(null!==Gt){var e=Gt;Gt=null,Ct(e)}qt()}function qt(){if(!zt&&null!==kt){zt=!0;var e=0;try{var t=kt;Wt(99,(function(){for(;ed?(p=u,u=null):p=u.sibling;var f=g(i,u,o[d],l);if(null===f){null===u&&(u=p);break}e&&u&&null===f.alternate&&t(i,u),a=s(f,a,d),null===h?c=f:h.sibling=f,h=f,u=p}if(d===o.length)return n(i,u),c;if(null===u){for(;dp?(f=d,d=null):f=d.sibling;var y=g(i,d,v.value,c);if(null===y){null===d&&(d=f);break}e&&d&&null===y.alternate&&t(i,d),a=s(y,a,p),null===u?h=y:u.sibling=y,u=y,d=f}if(v.done)return n(i,d),h;if(null===d){for(;!v.done;p++,v=l.next())null!==(v=m(i,v.value,c))&&(a=s(v,a,p),null===u?h=v:u.sibling=v,u=v);return h}for(d=r(i,d);!v.done;p++,v=l.next())null!==(v=A(d,i,p,v.value,c))&&(e&&null!==v.alternate&&d.delete(null===v.key?p:v.key),a=s(v,a,p),null===u?h=v:u.sibling=v,u=v);return e&&d.forEach((function(e){return t(i,e)})),h}return function(e,r,s,l){var d="object"==typeof s&&null!==s&&s.type===u&&null===s.key;d&&(s=s.props.children);var p="object"==typeof s&&null!==s;if(p)switch(s.$$typeof){case c:e:{for(p=s.key,d=r;null!==d;){if(d.key===p){if(7===d.tag){if(s.type===u){n(e,d.sibling),(r=i(d,s.props.children)).return=e,e=r;break e}}else if(d.elementType===s.type){n(e,d.sibling),(r=i(d,s.props)).ref=In(e,d,s),r.return=e,e=r;break e}n(e,d);break}t(e,d),d=d.sibling}s.type===u?((r=wa(s.props.children,e.mode,l,s.key)).return=e,e=r):((l=Sa(s.type,s.key,s.props,null,e.mode,l)).ref=In(e,r,s),l.return=e,e=l)}return a(e);case h:e:{for(d=s.key;null!==r;){if(r.key===d){if(4===r.tag&&r.stateNode.containerInfo===s.containerInfo&&r.stateNode.implementation===s.implementation){n(e,r.sibling),(r=i(r,s.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Ta(s,e.mode,l)).return=e,e=r}return a(e)}if("string"==typeof s||"number"==typeof s)return s=""+s,null!==r&&6===r.tag?(n(e,r.sibling),(r=i(r,s)).return=e,e=r):(n(e,r),(r=Ca(s,e.mode,l)).return=e,e=r),a(e);if(Tn(s))return v(e,r,s,l);if(C(s))return y(e,r,s,l);if(p&&Bn(e,s),void 0===s&&!d)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(o(152,T(e.type)||"Component"))}return n(e,r)}}var Pn=Rn(!0),Dn=Rn(!1),Ln={},Fn=Je(Ln),Un=Je(Ln),On=Je(Ln);function Nn(e){if(e===Ln)throw Error(o(174));return e}function kn(e,t){$e(On,t),$e(Un,e),$e(Fn,Ln),e=U(t),Ze(Fn),$e(Fn,e)}function Gn(){Ze(Fn),Ze(Un),Ze(On)}function zn(e){var t=Nn(On.current),n=Nn(Fn.current);n!==(t=O(n,e.type,t))&&($e(Un,e),$e(Fn,t))}function Qn(e){Un.current===e&&(Ze(Fn),Ze(Un))}var Vn=Je(0);function Hn(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||Oe(n)||Ne(n)))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var jn=null,Wn=null,Xn=!1;function Yn(e,t){var n=ba(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function qn(e,t){switch(e.tag){case 5:return null!==(t=Fe(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=Ue(t,e.pendingProps))&&(e.stateNode=t,!0);default:return!1}}function Kn(e){if(Xn){var t=Wn;if(t){var n=t;if(!qn(e,t)){if(!(t=ke(n))||!qn(e,t))return e.flags=-1025&e.flags|2,Xn=!1,void(jn=e);Yn(jn,n)}jn=e,Wn=Ge(t)}else e.flags=-1025&e.flags|2,Xn=!1,jn=e}}function Jn(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;jn=e}function Zn(e){if(!Z||e!==jn)return!1;if(!Xn)return Jn(e),Xn=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!H(t,e.memoizedProps))for(t=Wn;t;)Yn(e,t),t=ke(t);if(Jn(e),13===e.tag){if(!Z)throw Error(o(316));if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));Wn=Ve(e)}else Wn=jn?ke(e.stateNode):null;return!0}function $n(){Z&&(Wn=jn=null,Xn=!1)}var er=[];function tr(){for(var e=0;es))throw Error(o(301));s+=1,or=ar=null,t.updateQueue=null,nr.current=Gr,e=n(r,i)}while(cr)}if(nr.current=Or,t=null!==ar&&null!==ar.next,ir=0,or=ar=sr=null,lr=!1,t)throw Error(o(300));return e}function pr(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===or?sr.memoizedState=or=e:or=or.next=e,or}function fr(){if(null===ar){var e=sr.alternate;e=null!==e?e.memoizedState:null}else e=ar.next;var t=null===or?sr.memoizedState:or.next;if(null!==t)or=t,ar=e;else{if(null===e)throw Error(o(310));e={memoizedState:(ar=e).memoizedState,baseState:ar.baseState,baseQueue:ar.baseQueue,queue:ar.queue,next:null},null===or?sr.memoizedState=or=e:or=or.next=e}return or}function mr(e,t){return"function"==typeof t?t(e):t}function gr(e){var t=fr(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=ar,i=r.baseQueue,s=n.pending;if(null!==s){if(null!==i){var a=i.next;i.next=s.next,s.next=a}r.baseQueue=i=s,n.pending=null}if(null!==i){i=i.next,r=r.baseState;var l=a=s=null,c=i;do{var h=c.lane;if((ir&h)===h)null!==l&&(l=l.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var u={lane:h,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===l?(a=l=u,s=r):l=l.next=u,sr.lanes|=h,us|=h}c=c.next}while(null!==c&&c!==i);null===l?s=r:l.next=a,Jt(r,t.memoizedState)||(Qr=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=l,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function Ar(e){var t=fr(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,s=t.memoizedState;if(null!==i){n.pending=null;var a=i=i.next;do{s=e(s,a.action),a=a.next}while(a!==i);Jt(s,t.memoizedState)||(Qr=!0),t.memoizedState=s,null===t.baseQueue&&(t.baseState=s),n.lastRenderedState=s}return[s,r]}function vr(e,t,n){var r=t._getVersion;r=r(t._source);var i=q?t._workInProgressVersionPrimary:t._workInProgressVersionSecondary;if(null!==i?e=i===r:(e=e.mutableReadLanes,(e=(ir&e)===e)&&(q?t._workInProgressVersionPrimary=r:t._workInProgressVersionSecondary=r,er.push(t))),e)return n(t._source);throw er.push(t),Error(o(350))}function yr(e,t,n,r){var i=rs;if(null===i)throw Error(o(349));var s=t._getVersion,a=s(t._source),l=nr.current,c=l.useState((function(){return vr(i,t,n)})),h=c[1],u=c[0];c=or;var d=e.memoizedState,p=d.refs,f=p.getSnapshot,m=d.source;d=d.subscribe;var g=sr;return e.memoizedState={refs:p,source:t,subscribe:r},l.useEffect((function(){p.getSnapshot=n,p.setSnapshot=h;var e=s(t._source);if(!Jt(a,e)){e=n(t._source),Jt(u,e)||(h(e),e=Os(g),i.mutableReadLanes|=e&i.pendingLanes),e=i.mutableReadLanes,i.entangledLanes|=e;for(var r=i.entanglements,o=e;0n?98:n,(function(){e(!0)})),Wt(97gs&&(t.flags|=64,i=!0,fi(r,!1),t.lanes=33554432)}else{if(!i)if(null!==(e=Hn(s))){if(t.flags|=64,i=!0,null!==(e=e.updateQueue)&&(t.updateQueue=e,t.flags|=4),fi(r,!0),null===r.tail&&"hidden"===r.tailMode&&!s.alternate&&!Xn)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Vt()-r.renderingStartTime>gs&&1073741824!==n&&(t.flags|=64,i=!0,fi(r,!1),t.lanes=33554432);r.isBackwards?(s.sibling=t.child,t.child=s):(null!==(e=r.last)?e.sibling=s:t.child=s,r.last=s)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Vt(),e.sibling=null,t=Vn.current,$e(Vn,i?1&t|2:1&t),e):null;case 23:case 24:return Xs(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(o(156,t.tag))}function gi(e){switch(e.tag){case 1:st(e.type)&&at();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Gn(),Ze(nt),Ze(tt),tr(),0!=(64&(t=e.flags)))throw Error(o(285));return e.flags=-4097&t|64,e;case 5:return Qn(e),null;case 13:return Ze(Vn),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return Ze(Vn),null;case 4:return Gn(),null;case 10:return cn(e),null;case 23:case 24:return Xs(),null;default:return null}}function Ai(e,t){try{var n="",r=t;do{n+=en(r),r=r.return}while(r);var i=n}catch(s){i="\nError generating stack: "+s.message+"\n"+s.stack}return{value:e,source:t,stack:i}}function vi(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var yi="function"==typeof WeakMap?WeakMap:Map;function xi(e,t,n){(n=gn(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){xs||(xs=!0,bs=r),vi(0,t)},n}function bi(e,t,n){(n=gn(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var i=t.value;n.payload=function(){return vi(0,t),r(i)}}var s=e.stateNode;return null!==s&&"function"==typeof s.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Es?Es=new Set([this]):Es.add(this),vi(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var Ei="function"==typeof WeakSet?WeakSet:Set;function _i(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){ha(e,n)}else t.current=null}function Si(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:tn(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(K&&256&t.flags&&Ce(t.stateNode.containerInfo))}throw Error(o(163))}function wi(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.destroy;n.destroy=void 0,void 0!==r&&r()}n=n.next}while(n!==t)}}function Mi(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var i=e;r=i.next,0!=(4&(i=i.tag))&&0!=(1&i)&&(oa(n,e),aa(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:tn(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&xn(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:e=F(n.child.stateNode);break;case 1:e=n.child.stateNode}xn(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&ge(e,n.type,n.memoizedProps,n));case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(Z&&null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&je(n)))))}throw Error(o(163))}function Ci(e,t){if(K)for(var n=e;;){if(5===n.tag){var r=n.stateNode;t?_e(r):we(n.stateNode,n.memoizedProps)}else if(6===n.tag)r=n.stateNode,t?Se(r):Me(r,n.memoizedProps);else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function Ti(e,t){if(dt&&"function"==typeof dt.onCommitFiberUnmount)try{dt.onCommitFiberUnmount(ut,t)}catch(s){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,i=r.destroy;if(r=r.tag,void 0!==i)if(0!=(4&r))oa(t,n);else{r=t;try{i()}catch(s){ha(r,s)}}n=n.next}while(n!==e)}break;case 1:if(_i(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(s){ha(t,s)}break;case 5:_i(t);break;case 4:K?Fi(e,t):J&&J&&(t=t.stateNode.containerInfo,e=Ie(t),Pe(t,e))}}function Ii(e,t){for(var n=t;;)if(Ti(e,n),null===n.child||K&&4===n.tag){if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}else n.child.return=n,n=n.child}function Bi(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function Ri(e){return 5===e.tag||3===e.tag||4===e.tag}function Pi(e){if(K){e:{for(var t=e.return;null!==t;){if(Ri(t))break e;t=t.return}throw Error(o(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(o(161))}16&n.flags&&(Ee(t),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||Ri(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?Di(e,n,t):Li(e,n,t)}}function Di(e,t,n){var r=e.tag,i=5===r||6===r;if(i)e=i?e.stateNode:e.stateNode.instance,t?ye(n,e,t):fe(n,e);else if(4!==r&&null!==(e=e.child))for(Di(e,t,n),e=e.sibling;null!==e;)Di(e,t,n),e=e.sibling}function Li(e,t,n){var r=e.tag,i=5===r||6===r;if(i)e=i?e.stateNode:e.stateNode.instance,t?ve(n,e,t):pe(n,e);else if(4!==r&&null!==(e=e.child))for(Li(e,t,n),e=e.sibling;null!==e;)Li(e,t,n),e=e.sibling}function Fi(e,t){for(var n,r,i=t,s=!1;;){if(!s){s=i.return;e:for(;;){if(null===s)throw Error(o(160));switch(n=s.stateNode,s.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}s=s.return}s=!0}if(5===i.tag||6===i.tag)Ii(e,i),r?be(n,i.stateNode):xe(n,i.stateNode);else if(4===i.tag){if(null!==i.child){n=i.stateNode.containerInfo,r=!0,i.child.return=i,i=i.child;continue}}else if(Ti(e,i),null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;4===(i=i.return).tag&&(s=!1)}i.sibling.return=i.return,i=i.sibling}}function Ui(e,t){if(K){switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void wi(3,t);case 1:case 12:case 17:return;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps;e=null!==e?e.memoizedProps:r;var i=t.type,s=t.updateQueue;t.updateQueue=null,null!==s&&Ae(n,s,i,e,r,t)}return;case 6:if(null===t.stateNode)throw Error(o(162));return n=t.memoizedProps,void me(t.stateNode,null!==e?e.memoizedProps:n,n);case 3:return void(Z&&(t=t.stateNode,t.hydrate&&(t.hydrate=!1,He(t.containerInfo))));case 13:return Oi(t),void Ni(t);case 19:return void Ni(t);case 23:case 24:return void Ci(t,null!==t.memoizedState)}throw Error(o(163))}switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void wi(3,t);case 12:case 23:case 24:return;case 13:return Oi(t),void Ni(t);case 19:return void Ni(t);case 3:Z&&((n=t.stateNode).hydrate&&(n.hydrate=!1,He(n.containerInfo)))}e:if(J){switch(t.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:t=t.stateNode,Pe(t.containerInfo,t.pendingChildren);break e}throw Error(o(163))}}function Oi(e){null!==e.memoizedState&&(ms=Vt(),K&&Ci(e.child,!0))}function Ni(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Ei),t.forEach((function(t){var r=da.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function ki(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Gi=0,zi=1,Qi=2,Vi=3,Hi=4;if("function"==typeof Symbol&&Symbol.for){var ji=Symbol.for;Gi=ji("selector.component"),zi=ji("selector.has_pseudo_class"),Qi=ji("selector.role"),Vi=ji("selector.test_id"),Hi=ji("selector.text")}function Wi(e){var t=$(e);if(null!=t){if("string"!=typeof t.memoizedProps["data-testname"])throw Error(o(364));return t}if(null===(e=ae(e)))throw Error(o(362));return e.stateNode.current}function Xi(e,t){switch(t.$$typeof){case Gi:if(e.type===t.value)return!0;break;case zi:e:{t=t.value,e=[e,0];for(var n=0;n";case zi:return":has("+(Yi(e)||"")+")";case Qi:return'[role="'+e.value+'"]';case Hi:return'"'+e.value+'"';case Vi:return'[data-testname="'+e.value+'"]';default:throw Error(o(365,e))}}function qi(e,t){var n=[];e=[e,0];for(var r=0;ri&&(i=a),n&=~s}if(n=i,10<(n=(120>(n=Vt()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Zi(n/1960))-n)){e.timeoutHandle=W(na.bind(null,e),n);break}na(e);break;default:throw Error(o(329))}}return Gs(e,Vt()),e.callbackNode===t?zs.bind(null,e):null}function Qs(e,t){for(t&=~ps,t&=~ds,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0 component higher in the tree to provide a loading indicator or placeholder to display.")}5!==ls&&(ls=2),l=Ai(l,o),d=a;do{switch(d.tag){case 3:s=l,d.flags|=4096,t&=-t,d.lanes|=t,vn(d,xi(0,s,t));break e;case 1:s=l;var b=d.type,E=d.stateNode;if(0==(64&d.flags)&&("function"==typeof b.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Es||!Es.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,vn(d,bi(d,s,t));break e}}d=d.return}while(null!==d)}ta(n)}catch(_){t=_,is===n&&null!==n&&(is=n=n.return);continue}break}}function Ks(){var e=$i.current;return $i.current=Or,null===e?Or:e}function Js(e,t){var n=ns;ns|=16;var r=Ks();for(rs===e&&ss===t||Ys(e,t);;)try{Zs();break}catch(i){qs(e,i)}if(on(),ns=n,$i.current=r,null!==is)throw Error(o(261));return rs=null,ss=0,ls}function Zs(){for(;null!==is;)ea(is)}function $s(){for(;null!==is&&!Tt();)ea(is)}function ea(e){var t=vs(e.alternate,e,as);e.memoizedProps=e.pendingProps,null===t?ta(e):is=t,es.current=null}function ta(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=mi(n,t,as)))return void(is=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&as)||0==(4&n.mode)){for(var r=0,i=n.child;null!==i;)r|=i.lanes|i.childLanes,i=i.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1Vt()-ms?Ys(e,0):ps|=n),Gs(e,t)}function da(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ht()?1:2:(0===Ps&&(Ps=hs),0===(t=yt(62914560&~Ps))&&(t=4194304))),n=Us(),null!==(e=ks(e,t))&&(bt(e,t,n),Gs(e,n))}vs=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||nt.current)Qr=!0;else{if(0==(n&r)){switch(Qr=!1,t.tag){case 3:Zr(t),$n();break;case 5:zn(t);break;case 1:st(t.type)&&ct(t);break;case 4:kn(t,t.stateNode.containerInfo);break;case 10:ln(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?ii(e,t,n):($e(Vn,1&Vn.current),null!==(t=ui(e,t,n))?t.sibling:null);$e(Vn,1&Vn.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return hi(e,t,n);t.flags|=64}var i=t.memoizedState;if(null!==i&&(i.rendering=null,i.tail=null,i.lastEffect=null),$e(Vn,Vn.current),r)break;return null;case 23:case 24:return t.lanes=0,Xr(e,t,n)}return ui(e,t,n)}Qr=0!=(16384&e.flags)}else Qr=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=it(t,tt.current),un(t,n),i=dr(null,t,r,e,i,n),t.flags|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,st(r)){var s=!0;ct(t)}else s=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,fn(t);var a=r.getDerivedStateFromProps;"function"==typeof a&&En(t,r,a,e),i.updater=_n,t.stateNode=i,i._reactInternals=t,Cn(t,r,e,n),t=Jr(null,t,r,!0,s,n)}else t.tag=0,Vr(null,t,i,n),t=t.child;return t;case 16:i=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=(s=i._init)(i._payload),t.type=i,s=t.tag=function(e){if("function"==typeof e)return Ea(e)?1:0;if(null!=e){if((e=e.$$typeof)===g)return 11;if(e===y)return 14}return 2}(i),e=tn(i,e),s){case 0:t=qr(null,t,i,e,n);break e;case 1:t=Kr(null,t,i,e,n);break e;case 11:t=Hr(null,t,i,e,n);break e;case 14:t=jr(null,t,i,tn(i.type,e),r,n);break e}throw Error(o(306,i,""))}return t;case 0:return r=t.type,i=t.pendingProps,qr(e,t,r,i=t.elementType===r?i:tn(r,i),n);case 1:return r=t.type,i=t.pendingProps,Kr(e,t,r,i=t.elementType===r?i:tn(r,i),n);case 3:if(Zr(t),r=t.updateQueue,null===e||null===r)throw Error(o(282));if(r=t.pendingProps,i=null!==(i=t.memoizedState)?i.element:null,mn(e,t),yn(t,r,null,n),(r=t.memoizedState.element)===i)$n(),t=ui(e,t,n);else{if((s=(i=t.stateNode).hydrate)&&(Z?(Wn=Ge(t.stateNode.containerInfo),jn=t,s=Xn=!0):s=!1),s){if(Z&&null!=(e=i.mutableSourceEagerHydrationData))for(i=0;i=h&&s>=d&&i<=u&&a<=p){e.splice(t,1);break}if(!(r!==h||n.width!==c.width||pa)){d>s&&(c.height+=d-s,c.y=s),pi)){h>r&&(c.width+=h-r,c.x=r),un&&(n=a)),a ")+"\n\nNo matching component was found for:\n "+e.join(" > ")}return null},r.getPublicRootInstance=function(e){return(e=e.current).child?5===e.child.tag?F(e.child.stateNode):e.child.stateNode:null},r.injectIntoDevTools=function(e){if(e={bundleType:e.bundleType,version:e.version,rendererPackageName:e.rendererPackageName,rendererConfig:e.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:l.ReactCurrentDispatcher,findHostInstanceByFiber:Da,findFiberByHostInstance:e.findFiberByHostInstance||La,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!t.isDisabled&&t.supportsFiber)try{ut=t.inject(e),dt=t}catch(n){}e=!0}return e},r.observeVisibleRects=function(e,t,n,r){if(!se)throw Error(o(363));e=Ki(e,t);var i=de(e,n,r).disconnect;return{disconnect:function(){i()}}},r.registerMutableSourceForHydration=function(e,t){var n=t._getVersion;n=n(t._source),null==e.mutableSourceEagerHydrationData?e.mutableSourceEagerHydrationData=[t,n]:e.mutableSourceEagerHydrationData.push(t,n)},r.runWithPriority=function(e,t){var n=pt;try{return pt=e,t()}finally{pt=n}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(e,t){var n=ns;ns&=-2,ns|=8;try{return e(t)}finally{0===(ns=n)&&(As(),Yt())}},r.updateContainer=function(e,t,n,r){var i=t.current,s=Us(),a=Os(i);e:if(n){t:{if(I(n=n._reactInternals)!==n||1!==n.tag)throw Error(o(170));var l=n;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(st(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(o(171))}if(1===n.tag){var c=n.type;if(st(c)){n=lt(n,c,l);break e}}n=l}else n=et;return null===t.context?t.context=n:t.pendingContext=n,(t=gn(s,a)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),An(i,t),Ns(i,a,s),a},r}},76525:(e,t,n)=>{"use strict";e.exports=n(67287)},73466:function(e){var t;e.exports=((t=function(){function e(e){return i.appendChild(e.dom),e}function n(e){for(var t=0;ta+1e3&&(l.update(1e3*o/(e-a),100),a=e,o=0,h)){var t=performance.memory;h.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){s=this.end()},domElement:i,setMode:n}}).Panel=function(e,t,n){var r=1/0,i=0,s=Math.round,a=s(window.devicePixelRatio||1),o=80*a,l=48*a,c=3*a,h=2*a,u=3*a,d=15*a,p=74*a,f=30*a,m=document.createElement("canvas");m.width=o,m.height=l,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*a+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=n,g.fillRect(0,0,o,l),g.fillStyle=t,g.fillText(e,c,h),g.fillRect(u,d,p,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(u,d,p,f),{dom:m,update:function(l,A){r=Math.min(r,l),i=Math.max(i,l),g.fillStyle=n,g.globalAlpha=1,g.fillRect(0,0,o,d),g.fillStyle=t,g.fillText(s(l)+" "+e+" ("+s(r)+"-"+s(i)+")",c,h),g.drawImage(m,u+a,d,p-a,f,u,d,p-a,f),g.fillRect(u+p-a,d,a,f),g.fillStyle=n,g.globalAlpha=.9,g.fillRect(u+p-a,d,a,s((1-l/A)*f))}}},t)},14671:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294);function i(e){let t;const n=new Set,r=(e,r)=>{const i="function"==typeof e?e(t):e;if(i!==t){const e=t;t=r?i:Object.assign({},t,i),n.forEach((n=>n(t,e)))}},i=()=>t,s={setState:r,getState:i,subscribe:(e,r,s)=>r||s?((e,r=i,s=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let a=r(t);function o(){const n=r(t);if(!s(a,n)){const t=a;e(a=n,t)}}return n.add(o),()=>n.delete(o)})(e,r,s):(n.add(e),()=>n.delete(e)),destroy:()=>n.clear()};return t=e(r,i,s),s}const s="undefined"==typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent)?r.useEffect:r.useLayoutEffect;function a(e){const t="function"==typeof e?i(e):e,n=(e=t.getState,n=Object.is)=>{const[,i]=(0,r.useReducer)((e=>e+1),0),a=t.getState(),o=(0,r.useRef)(a),l=(0,r.useRef)(e),c=(0,r.useRef)(n),h=(0,r.useRef)(!1),u=(0,r.useRef)();let d;void 0===u.current&&(u.current=e(a));let p=!1;(o.current!==a||l.current!==e||c.current!==n||h.current)&&(d=e(a),p=!n(u.current,d)),s((()=>{p&&(u.current=d),o.current=a,l.current=e,c.current=n,h.current=!1}));const f=(0,r.useRef)(a);s((()=>{const e=()=>{try{const e=t.getState(),n=l.current(e);c.current(u.current,n)||(o.current=e,u.current=n,i())}catch(e){h.current=!0,i()}},n=t.subscribe(e);return t.getState()!==f.current&&e(),n}),[]);const m=p?d:u.current;return(0,r.useDebugValue)(m),m};return Object.assign(n,t),n[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const e=[n,t];return{next(){const t=e.length<=0;return{value:e.shift(),done:t}}}},n}},60374:(e,t,n)=>{"use strict";function r(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let r=0;rr})},8083:(e,t,n)=>{"use strict";var r=n(45928),i=Uint8Array,s=Uint16Array,a=Uint32Array,o=new i([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),l=new i([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),c=new i([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),h=function(e,t){for(var n=new s(31),r=0;r<31;++r)n[r]=t+=1<>>1|(21845&v)<<1;y=(61680&(y=(52428&y)>>>2|(13107&y)<<2))>>>4|(3855&y)<<4,A[v]=((65280&y)>>>8|(255&y)<<8)>>>1}var x=function(e,t,n){for(var r=e.length,i=0,a=new s(t);i>>c]=h}else for(o=new s(r),i=0;i>>15-e[i]);return o},b=new i(288);for(v=0;v<144;++v)b[v]=8;for(v=144;v<256;++v)b[v]=9;for(v=256;v<280;++v)b[v]=7;for(v=280;v<288;++v)b[v]=8;var E=new i(32);for(v=0;v<32;++v)E[v]=5;var _=x(b,9,0),S=x(b,9,1),w=x(E,5,0),M=x(E,5,1),C=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},T=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},I=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},B=function(e){return(e/8|0)+(7&e&&1)},R=function(e,t,n){(null==t||t<0)&&(t=0),(null==n||n>e.length)&&(n=e.length);var r=new(e instanceof s?s:e instanceof a?a:i)(n-t);return r.set(e.subarray(t,n)),r},P=function(e,t,n){var r=e.length;if(!r||n&&!n.l&&r<5)return t||new i(0);var s=!t||n,a=!n||n.i;n||(n={}),t||(t=new i(3*r));var h=function(e){var n=t.length;if(e>n){var r=new i(Math.max(2*n,e));r.set(t),t=r}},u=n.f||0,p=n.p||0,f=n.b||0,g=n.l,A=n.d,v=n.m,y=n.n,b=8*r;do{if(!g){n.f=u=T(e,p,1);var E=T(e,p+1,3);if(p+=3,!E){var _=e[(z=B(p)+4)-4]|e[z-3]<<8,w=z+_;if(w>r){if(a)throw"unexpected EOF";break}s&&h(f+_),t.set(e.subarray(z,w),f),n.b=f+=_,n.p=p=8*w;continue}if(1==E)g=S,A=M,v=9,y=5;else{if(2!=E)throw"invalid block type";var P=T(e,p,31)+257,D=T(e,p+10,15)+4,L=P+T(e,p+5,31)+1;p+=14;for(var F=new i(L),U=new i(19),O=0;O>>4)<16)F[O++]=z;else{var V=0,H=0;for(16==z?(H=3+T(e,p,3),p+=2,V=F[O-1]):17==z?(H=3+T(e,p,7),p+=3):18==z&&(H=11+T(e,p,127),p+=7);H--;)F[O++]=V}}var j=F.subarray(0,P),W=F.subarray(P);v=C(j),y=C(W),g=x(j,v,1),A=x(W,y,1)}if(p>b){if(a)throw"unexpected EOF";break}}s&&h(f+131072);for(var X=(1<>>4;if((p+=15&V)>b){if(a)throw"unexpected EOF";break}if(!V)throw"invalid length/literal";if(K<256)t[f++]=K;else{if(256==K){q=p,g=null;break}var J=K-254;if(K>264){var Z=o[O=K-257];J=T(e,p,(1<>>4;if(!$)throw"invalid distance";p+=15&$;W=m[ee];if(ee>3){Z=l[ee];W+=I(e,p)&(1<b){if(a)throw"unexpected EOF";break}s&&h(f+131072);for(var te=f+J;f>>8},L=function(e,t,n){n<<=7&t;var r=t/8|0;e[r]|=n,e[r+1]|=n>>>8,e[r+2]|=n>>>16},F=function(e,t){for(var n=[],r=0;rf&&(f=o[r].s);var m=new s(f+1),g=U(n[d-1],m,0);if(g>t){r=0;var A=0,v=g-t,y=1<t))break;A+=y-(1<>>=v;A>0;){var b=o[r].s;m[b]=0&&A;--r){var E=o[r].s;m[E]==t&&(--m[E],++A)}g=t}return[new i(m),g]},U=function(e,t,n){return-1==e.s?Math.max(U(e.l,t,n+1),U(e.r,t,n+1)):t[e.s]=n},O=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new s(++t),r=0,i=e[0],a=1,o=function(e){n[r++]=e},l=1;l<=t;++l)if(e[l]==i&&l!=t)++a;else{if(!i&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(i),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(i);a=1,i=e[l]}return[n.subarray(0,r),t]},N=function(e,t){for(var n=0,r=0;r>>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var s=0;s4&&!z[c[V-1]];--V);var H,j,W,X,Y=p+5<<3,q=N(i,b)+N(a,E)+h,K=N(i,g)+N(a,y)+h+14+3*V+N(P,z)+(2*P[16]+3*P[17]+7*P[18]);if(Y<=q&&Y<=K)return k(t,f,e.subarray(d,d+p));if(D(t,f,1+(K15&&(D(t,f,ee[U]>>>5&127),f+=ee[U]>>>12)}}}else H=_,j=b,W=w,X=E;for(U=0;U255){te=r[U]>>>18&31;L(t,f,H[te+257]),f+=j[te+257],te>7&&(D(t,f,r[U]>>>23&31),f+=o[te]);var ne=31&r[U];L(t,f,W[ne]),f+=X[ne],ne>3&&(L(t,f,r[U]>>>5&8191),f+=l[ne])}else L(t,f,H[r[U]]),f+=j[r[U]];return L(t,f,H[256]),f+j[256]},z=new a([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Q=new i(0),V=function(e,t,n,r,c,h){var u=e.length,d=new i(r+u+5*(1+Math.ceil(u/7e3))+c),f=d.subarray(r,d.length-c),m=0;if(!t||u<8)for(var A=0;A<=u;A+=65535){var v=A+65535;v>>13,b=8191&y,E=(1<7e3||F>24576)&&j>423){m=G(e,f,0,T,I,P,L,F,O,A-O,m),F=D=L=0,O=A;for(var W=0;W<286;++W)I[W]=0;for(W=0;W<30;++W)P[W]=0}var X=2,Y=0,q=b,K=V-H&32767;if(j>2&&N==C(A-K))for(var J=Math.min(x,j)-1,Z=Math.min(32767,A),$=Math.min(258,j);K<=Z&&--q&&V!=H;){if(e[A+X]==e[A+X-K]){for(var ee=0;ee<$&&e[A+ee]==e[A+ee-K];++ee);if(ee>X){if(X=ee,Y=K,ee>J)break;var te=Math.min(K,ee-2),ne=0;for(W=0;Wne&&(ne=ie,H=re)}}}K+=(V=H)-(H=_[V])+32768&32767}if(Y){T[F++]=268435456|p[X]<<18|g[Y];var se=31&p[X],ae=31&g[Y];L+=o[se]+l[ae],++I[257+se],++P[ae],U=A+X,++D}else T[F++]=e[A],++I[e[A]]}}m=G(e,f,h,T,I,P,L,F,O,A-O,m),!h&&7&m&&(m=k(f,m+1,Q))}return R(d,0,r+B(m)+c)},H=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(1&n&&-306674912)^n>>>1;e[t]=n}return e}(),j=function(){var e=-1;return{p:function(t){for(var n=e,r=0;r>>8;e=n},d:function(){return~e}}},W=function(){var e=1,t=0;return{p:function(n){for(var r=e,i=t,s=n.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a>16),i=(65535&i)+15*(i>>16)}e=r,t=i},d:function(){return(255&(e%=65521))<<24|e>>>8<<16|(255&(t%=65521))<<8|t>>>8}}},X=function(e,t,n,r,i){return V(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,r,!i)},Y=function(e,t){var n={};for(var r in e)n[r]=e[r];for(var r in t)n[r]=t[r];return n},q=function(e,t,n){for(var r=e(),i=e.toString(),s=i.slice(i.indexOf("[")+1,i.lastIndexOf("]")).replace(/ /g,"").split(","),a=0;a>>0},ue=function(e,t){return he(e,t)+4294967296*he(e,t+4)},de=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8},pe=function(e,t){var n=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:9==t.level?2:0,e[9]=3,0!=t.mtime&&de(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),n){e[3]=8;for(var r=0;r<=n.length;++r)e[r+10]=n.charCodeAt(r)}},fe=function(e){if(31!=e[0]||139!=e[1]||8!=e[2])throw"invalid gzip data";var t=e[3],n=10;4&t&&(n+=e[10]|2+(e[11]<<8));for(var r=(t>>3&1)+(t>>4&1);r>0;r-=!e[n++]);return n+(2&t)},me=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},ge=function(e){return 10+(e.filename&&e.filename.length+1||0)},Ae=function(e,t){var n=t.level,r=0==n?0:n<6?1:9==n?3:2;e[0]=120,e[1]=r<<6|(r?32-2*r:1)},ve=function(e){if(8!=(15&e[0])||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function ye(e,t){return t||"function"!=typeof e||(t=e,e={}),this.ondata=t,e}var xe=function(){function e(e,t){t||"function"!=typeof e||(t=e,e={}),this.ondata=t,this.o=e||{}}return e.prototype.p=function(e,t){this.ondata(X(e,this.o,0,0,!t),t)},e.prototype.push=function(e,t){if(this.d)throw"stream finished";if(!this.ondata)throw"no stream handler";this.d=t,this.p(e,t||!1)},e}();t.Deflate=xe;var be=function(){return function(e,t){le([$,function(){return[oe,xe]}],this,ye.call(this,e,t),(function(e){var t=new xe(e.data);onmessage=oe(t)}),6)}}();function Ee(e,t,n){if(n||(n=t,t={}),"function"!=typeof n)throw"no callback";return ae(e,t,[$],(function(e){return ie(_e(e.data[0],e.data[1]))}),0,n)}function _e(e,t){return X(e,t||{},0,0)}t.AsyncDeflate=be,t.deflate=Ee,t.deflateSync=_e;var Se=function(){function e(e){this.s={},this.p=new i(0),this.ondata=e}return e.prototype.e=function(e){if(this.d)throw"stream finished";if(!this.ondata)throw"no stream handler";var t=this.p.length,n=new i(t+e.length);n.set(this.p),n.set(e,t),this.p=n},e.prototype.c=function(e){this.d=this.s.i=e||!1;var t=this.s.b,n=P(this.p,this.o,this.s);this.ondata(R(n,t,this.s.b),this.d),this.o=R(n,this.s.b-32768),this.s.b=this.o.length,this.p=R(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}();t.Inflate=Se;var we=function(){return function(e){this.ondata=e,le([Z,function(){return[oe,Se]}],this,0,(function(){var e=new Se;onmessage=oe(e)}),7)}}();function Me(e,t,n){if(n||(n=t,t={}),"function"!=typeof n)throw"no callback";return ae(e,t,[Z],(function(e){return ie(Ce(e.data[0],se(e.data[1])))}),1,n)}function Ce(e,t){return P(e,t)}t.AsyncInflate=we,t.inflate=Me,t.inflateSync=Ce;var Te=function(){function e(e,t){this.c=j(),this.l=0,this.v=1,xe.call(this,e,t)}return e.prototype.push=function(e,t){xe.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e),this.l+=e.length;var n=X(e,this.o,this.v&&ge(this.o),t&&8,!t);this.v&&(pe(n,this.o),this.v=0),t&&(de(n,n.length-8,this.c.d()),de(n,n.length-4,this.l)),this.ondata(n,t)},e}();t.Gzip=Te,t.Compress=Te;var Ie=function(){return function(e,t){le([$,ee,function(){return[oe,xe,Te]}],this,ye.call(this,e,t),(function(e){var t=new Te(e.data);onmessage=oe(t)}),8)}}();function Be(e,t,n){if(n||(n=t,t={}),"function"!=typeof n)throw"no callback";return ae(e,t,[$,ee,function(){return[Re]}],(function(e){return ie(Re(e.data[0],e.data[1]))}),2,n)}function Re(e,t){t||(t={});var n=j(),r=e.length;n.p(e);var i=X(e,t,ge(t),8),s=i.length;return pe(i,t),de(i,s-8,n.d()),de(i,s-4,r),i}t.AsyncGzip=Ie,t.AsyncCompress=Ie,t.gzip=Be,t.compress=Be,t.gzipSync=Re,t.compressSync=Re;var Pe=function(){function e(e){this.v=1,Se.call(this,e)}return e.prototype.push=function(e,t){if(Se.prototype.e.call(this,e),this.v){var n=this.p.length>3?fe(this.p):4;if(n>=this.p.length&&!t)return;this.p=this.p.subarray(n),this.v=0}if(t){if(this.p.length<8)throw"invalid gzip stream";this.p=this.p.subarray(0,-8)}Se.prototype.c.call(this,t)},e}();t.Gunzip=Pe;var De=function(){return function(e){this.ondata=e,le([Z,te,function(){return[oe,Se,Pe]}],this,0,(function(){var e=new Pe;onmessage=oe(e)}),9)}}();function Le(e,t,n){if(n||(n=t,t={}),"function"!=typeof n)throw"no callback";return ae(e,t,[Z,te,function(){return[Fe]}],(function(e){return ie(Fe(e.data[0]))}),3,n)}function Fe(e,t){return P(e.subarray(fe(e),-8),t||new i(me(e)))}t.AsyncGunzip=De,t.gunzip=Le,t.gunzipSync=Fe;var Ue=function(){function e(e,t){this.c=W(),this.v=1,xe.call(this,e,t)}return e.prototype.push=function(e,t){xe.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e);var n=X(e,this.o,this.v&&2,t&&4,!t);this.v&&(Ae(n,this.o),this.v=0),t&&de(n,n.length-4,this.c.d()),this.ondata(n,t)},e}();t.Zlib=Ue;var Oe=function(){return function(e,t){le([$,ne,function(){return[oe,xe,Ue]}],this,ye.call(this,e,t),(function(e){var t=new Ue(e.data);onmessage=oe(t)}),10)}}();function Ne(e,t){t||(t={});var n=W();n.p(e);var r=X(e,t,2,4);return Ae(r,t),de(r,r.length-4,n.d()),r}t.AsyncZlib=Oe,t.zlib=function(e,t,n){if(n||(n=t,t={}),"function"!=typeof n)throw"no callback";return ae(e,t,[$,ne,function(){return[Ne]}],(function(e){return ie(Ne(e.data[0],e.data[1]))}),4,n)},t.zlibSync=Ne;var ke=function(){function e(e){this.v=1,Se.call(this,e)}return e.prototype.push=function(e,t){if(Se.prototype.e.call(this,e),this.v){if(this.p.length<2&&!t)return;this.p=this.p.subarray(2),this.v=0}if(t){if(this.p.length<4)throw"invalid zlib stream";this.p=this.p.subarray(0,-4)}Se.prototype.c.call(this,t)},e}();t.Unzlib=ke;var Ge=function(){return function(e){this.ondata=e,le([Z,re,function(){return[oe,Se,ke]}],this,0,(function(){var e=new ke;onmessage=oe(e)}),11)}}();function ze(e,t,n){if(n||(n=t,t={}),"function"!=typeof n)throw"no callback";return ae(e,t,[Z,re,function(){return[Qe]}],(function(e){return ie(Qe(e.data[0],se(e.data[1])))}),5,n)}function Qe(e,t){return P((ve(e),e.subarray(2,-4)),t)}t.AsyncUnzlib=Ge,t.unzlib=ze,t.unzlibSync=Qe;var Ve=function(){function e(e){this.G=Pe,this.I=Se,this.Z=ke,this.ondata=e}return e.prototype.push=function(e,t){if(!this.ondata)throw"no stream handler";if(this.s)this.s.push(e,t);else{if(this.p&&this.p.length){var n=new i(this.p.length+e.length);n.set(this.p),n.set(e,this.p.length)}else this.p=e;if(this.p.length>2){var r=this,s=function(){r.ondata.apply(r,arguments)};this.s=31==this.p[0]&&139==this.p[1]&&8==this.p[2]?new this.G(s):8!=(15&this.p[0])||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(s):new this.Z(s),this.s.push(this.p,t),this.p=null}}},e}();t.Decompress=Ve;var He=function(){function e(e){this.G=De,this.I=we,this.Z=Ge,this.ondata=e}return e.prototype.push=function(e,t){Ve.prototype.push.call(this,e,t)},e}();t.AsyncDecompress=He,t.decompress=function(e,t,n){if(n||(n=t,t={}),"function"!=typeof n)throw"no callback";return 31==e[0]&&139==e[1]&&8==e[2]?Le(e,t,n):8!=(15&e[0])||e[0]>>4>7||(e[0]<<8|e[1])%31?Me(e,t,n):ze(e,t,n)},t.decompressSync=function(e,t){return 31==e[0]&&139==e[1]&&8==e[2]?Fe(e,t):8!=(15&e[0])||e[0]>>4>7||(e[0]<<8|e[1])%31?Ce(e,t):Qe(e,t)};var je=function(e,t,n,r){for(var s in e){var a=e[s],o=t+s;a instanceof i?n[o]=[a,r]:Array.isArray(a)?n[o]=[a[0],Y(r,a[1])]:je(a,o+"/",n,r)}},We="undefined"!=typeof TextEncoder&&new TextEncoder,Xe="undefined"!=typeof TextDecoder&&new TextDecoder,Ye=0;try{Xe.decode(Q,{stream:!0}),Ye=1}catch(mt){}var qe=function(e){for(var t="",n=0;;){var r=e[n++],i=(r>127)+(r>223)+(r>239);if(n+i>e.length)return[t,R(e,n-1)];i?3==i?(r=((15&r)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536,t+=String.fromCharCode(55296|r>>10,56320|1023&r)):t+=1&i?String.fromCharCode((31&r)<<6|63&e[n++]):String.fromCharCode((15&r)<<12|(63&e[n++])<<6|63&e[n++]):t+=String.fromCharCode(r)}},Ke=function(){function e(e){this.ondata=e,Ye?this.t=new TextDecoder:this.p=Q}return e.prototype.push=function(e,t){if(!this.ondata)throw"no callback";if(t=!!t,this.t){if(this.ondata(this.t.decode(e,{stream:!0}),t),t){if(this.t.decode().length)throw"invalid utf-8 data";this.t=null}}else{if(!this.p)throw"stream finished";var n=new i(this.p.length+e.length);n.set(this.p),n.set(e,this.p.length);var r=qe(n),s=r[0],a=r[1];if(t){if(a.length)throw"invalid utf-8 data";this.p=null}else this.p=a;this.ondata(s,t)}},e}();t.DecodeUTF8=Ke;var Je=function(){function e(e){this.ondata=e}return e.prototype.push=function(e,t){if(!this.ondata)throw"no callback";if(this.d)throw"stream finished";this.ondata(Ze(e),this.d=t||!1)},e}();function Ze(e,t){if(t){for(var n=new i(e.length),r=0;r>1)),o=0,l=function(e){a[o++]=e};for(r=0;ra.length){var c=new i(o+8+(s-r<<1));c.set(a),a=c}var h=e.charCodeAt(r);h<128||t?l(h):h<2048?(l(192|h>>6),l(128|63&h)):h>55295&&h<57344?(l(240|(h=65536+(1047552&h)|1023&e.charCodeAt(++r))>>18),l(128|h>>12&63),l(128|h>>6&63),l(128|63&h)):(l(224|h>>12),l(128|h>>6&63),l(128|63&h))}return R(a,0,o)}function $e(e,t){if(t){for(var n="",r=0;r65535)throw"extra field too long";t+=r+4}return t},st=function(e,t,n,r,i,s,a,o){var l=r.length,c=n.extra,h=o&&o.length,u=it(c);de(e,t,null!=a?33639248:67324752),t+=4,null!=a&&(e[t++]=20,e[t++]=n.os),e[t]=20,t+=2,e[t++]=n.flag<<1|(null==s&&8),e[t++]=i&&8,e[t++]=255&n.compression,e[t++]=n.compression>>8;var d=new Date(null==n.mtime?Date.now():n.mtime),p=d.getFullYear()-1980;if(p<0||p>119)throw"date not in range 1980-2099";if(de(e,t,p<<25|d.getMonth()+1<<21|d.getDate()<<16|d.getHours()<<11|d.getMinutes()<<5|d.getSeconds()>>>1),t+=4,null!=s&&(de(e,t,n.crc),de(e,t+4,s),de(e,t+8,n.size)),de(e,t+12,l),de(e,t+14,u),t+=16,null!=a&&(de(e,t,h),de(e,t+6,n.attrs),de(e,t+10,a),t+=14),e.set(r,t),t+=l,u)for(var f in c){var m=c[f],g=m.length;de(e,t,+f),de(e,t+2,g),e.set(m,t+4),t+=4+g}return h&&(e.set(o,t),t+=h),t},at=function(e,t,n,r,i){de(e,t,101010256),de(e,t+8,n),de(e,t+10,n),de(e,t+12,r),de(e,t+16,i)},ot=function(){function e(e){this.filename=e,this.c=j(),this.size=0,this.compression=0}return e.prototype.process=function(e,t){this.ondata(null,e,t)},e.prototype.push=function(e,t){if(!this.ondata)throw"no callback - add to ZIP archive before pushing";this.c.p(e),this.size+=e.length,t&&(this.crc=this.c.d()),this.process(e,t||!1)},e}();t.ZipPassThrough=ot;var lt=function(){function e(e,t){var n=this;t||(t={}),ot.call(this,e),this.d=new xe(t,(function(e,t){n.ondata(null,e,t)})),this.compression=8,this.flag=et(t.level)}return e.prototype.process=function(e,t){try{this.d.push(e,t)}catch(mt){this.ondata(mt,null,t)}},e.prototype.push=function(e,t){ot.prototype.push.call(this,e,t)},e}();t.ZipDeflate=lt;var ct=function(){function e(e,t){var n=this;t||(t={}),ot.call(this,e),this.d=new be(t,(function(e,t,r){n.ondata(e,t,r)})),this.compression=8,this.flag=et(t.level),this.terminate=this.d.terminate}return e.prototype.process=function(e,t){this.d.push(e,t)},e.prototype.push=function(e,t){ot.prototype.push.call(this,e,t)},e}();t.AsyncZipDeflate=ct;var ht=function(){function e(e){this.ondata=e,this.u=[],this.d=1}return e.prototype.add=function(e){var t=this;if(2&this.d)throw"stream finished";var n=Ze(e.filename),r=n.length,s=e.comment,a=s&&Ze(s),o=r!=e.filename.length||a&&s.length!=a.length,l=r+it(e.extra)+30;if(r>65535)throw"filename too long";var c=new i(l);st(c,0,e,n,o);var h=[c],u=function(){for(var e=0,n=h;e65535&&S("filename too long",null),_)if(g<16e4)try{S(null,_e(c,f))}catch(mt){S(mt,null)}else u.push(Ee(c,f,S));else S(null,c)},m=0;m65535)throw"filename too long";var A=u?_e(c,h):c,v=A.length,y=j();y.p(c),r.push(Y(h,{size:c.length,crc:y.d(),c:A,f:S,m:f,u:d!=o.length||f&&p.length!=m,o:s,compression:u})),s+=30+d+g+v,a+=76+2*(d+g)+(m||0)+v}for(var x=new i(a+22),b=s,E=a-s,_=0;_0){var r=Math.min(this.c,e.length),s=e.subarray(0,r);if(this.c-=r,this.d?this.d.push(s,!this.c):this.k[0].push(s),(e=e.subarray(r)).length)return this.push(e,t)}else{var a=0,o=0,l=void 0,c=void 0;this.p.length?e.length?((c=new i(this.p.length+e.length)).set(this.p),c.set(e,this.p.length)):c=this.p:c=e;for(var h=c.length,u=this.c,d=u&&this.d,p=function(){var e,t=he(c,o);if(67324752==t){a=1,l=o,f.d=null,f.c=0;var r=ce(c,o+6),i=ce(c,o+8),s=2048&r,d=8&r,p=ce(c,o+26),m=ce(c,o+28);if(h>o+30+p+m){var g=[];f.k.unshift(g),a=2;var A,v=he(c,o+18),y=he(c,o+22),x=$e(c.subarray(o+30,o+=30+p),!s);4294967295==v?(e=d?[-2]:rt(c,o),v=e[0],y=e[1]):d&&(v=-1),o+=m,f.c=v;var b={name:x,compression:i,start:function(){if(!b.ondata)throw"no callback";if(v){var e=n.o[i];if(!e)throw"unknown compression type "+i;(A=v<0?new e(x):new e(x,v,y)).ondata=function(e,t,n){b.ondata(e,t,n)};for(var t=0,r=g;t=0&&(b.size=v,b.originalSize=y),f.onfile(b)}return"break"}if(u){if(134695760==t)return l=o+=12+(-2==u&&8),a=3,f.c=0,"break";if(33639248==t)return l=o-=4,a=3,f.c=0,"break"}},f=this;o65558)return void t("invalid zip file",null);var o=ce(e,a+8);o||t(null,{});var l=o,c=he(e,a+16),h=4294967295==c;if(h){if(a=he(e,a-12),101075792!=he(e,a))return void t("invalid zip file",null);l=o=he(e,a+32),c=he(e,a+48)}for(var u=function(l){var u=nt(e,c,h),d=u[0],p=u[1],f=u[2],m=u[3],g=u[4],A=u[5],v=tt(e,A);c=g;var y=function(e,n){e?(r(),t(e,null)):(s[m]=n,--o||t(null,s))};if(d)if(8==d){var x=e.subarray(v,v+p);if(p<32e4)try{y(null,Ce(x,new i(f)))}catch(a){y(a,null)}else n.push(Me(x,{size:f},y))}else y("unknown compression type "+d,null);else y(null,R(e,v,v+p))},d=0;d65558)throw"invalid zip file";var r=ce(e,n+8);if(!r)return{};var s=he(e,n+16),a=4294967295==s;if(a){if(n=he(e,n-12),101075792!=he(e,n))throw"invalid zip file";r=he(e,n+32),s=he(e,n+48)}for(var o=0;o{"use strict";var n={};t.default=function(e,t,r,i,s){var a=new Worker(n[t]||(n[t]=URL.createObjectURL(new Blob([e],{type:"text/javascript"}))));return a.onerror=function(e){return s(e.error,null)},a.onmessage=function(e){return s(null,e.data)},a.postMessage(r,i),a}},31649:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.LatheGeometry{constructor(e=1,t=1,n=4,i=8){const s=new r.Path;s.absarc(0,-t/2,e,1.5*Math.PI,0),s.absarc(0,t/2,e,0,.5*Math.PI),super(s.getPoints(n),i),this.type="CapsuleGeometry",this.parameters={radius:e,height:t,capSegments:n,radialSegments:i}}static fromJSON(e){return new i(e.radius,e.length,e.capSegments,e.radialSegments)}}t.CapsuleGeometry=i},84951:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.CompressedTexture{constructor(e,t,n,i,s,a){super(e,t,n,s,a),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=r.ClampToEdgeWrapping}}t.CompressedArrayTexture=i},79836:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Texture{constructor(e=null,t=1,n=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:n,depth:i},this.magFilter=r.NearestFilter,this.minFilter=r.NearestFilter,this.wrapR=r.ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}t.Data3DTexture=i},65236:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=parseInt(r.REVISION.replace(/\D+/g,""));t.version=i},83713:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.AnimationClipCreator=class{static CreateRotationAnimation(e,t="x"){const n=[0,e],i=".rotation["+t+"]",s=new r.NumberKeyframeTrack(i,n,[0,360]);return new r.AnimationClip(null,e,[s])}static CreateScaleAxisAnimation(e,t="x"){const n=[0,e],i=".scale["+t+"]",s=new r.NumberKeyframeTrack(i,n,[0,1]);return new r.AnimationClip(null,e,[s])}static CreateShakeAnimation(e,t){const n=[],i=[],s=new r.Vector3;for(let r=0;r<10*e;r++)n.push(r/10),s.set(2*Math.random()-1,2*Math.random()-1,2*Math.random()-1).multiply(t).toArray(i,i.length);const a=new r.VectorKeyframeTrack(".position",n,i);return new r.AnimationClip(null,e,[a])}static CreatePulsationAnimation(e,t){const n=[],i=[],s=new r.Vector3;for(let r=0;r<10*e;r++){n.push(r/10);const e=Math.random()*t;s.set(e,e,e).toArray(i,i.length)}const a=new r.VectorKeyframeTrack(".scale",n,i);return new r.AnimationClip(null,e,[a])}static CreateVisibilityAnimation(e){const t=[0,e/2,e],n=new r.BooleanKeyframeTrack(".visible",t,[!0,!1,!0]);return new r.AnimationClip(null,e,[n])}static CreateMaterialColorAnimation(e,t){const n=[],i=[],s=e/t.length;for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Quaternion,s=new r.Vector3,a=new r.Vector3,o=new r.Vector3,l=new r.Vector3,c=new r.Vector3,h=new r.Quaternion,u=new r.Vector3,d=new r.Vector3,p=new r.Vector3,f=new r.Matrix4;function m(e,t){return p.setFromMatrixPosition(e.matrixWorld).applyMatrix4(t)}function g(e,t,n,r){const i=m(n,r);e[3*t+0]=i.x,e[3*t+1]=i.y,e[3*t+2]=i.z}class A extends r.Object3D{constructor(e,t=[],n=.25){super(),this.root=e,this.iks=t,this.matrix.copy(e.matrixWorld),this.matrixAutoUpdate=!1,this.sphereGeometry=new r.SphereGeometry(n,16,8),this.targetSphereMaterial=new r.MeshBasicMaterial({color:new r.Color(16746632),depthTest:!1,depthWrite:!1,transparent:!0}),this.effectorSphereMaterial=new r.MeshBasicMaterial({color:new r.Color(8978312),depthTest:!1,depthWrite:!1,transparent:!0}),this.linkSphereMaterial=new r.MeshBasicMaterial({color:new r.Color(8947967),depthTest:!1,depthWrite:!1,transparent:!0}),this.lineMaterial=new r.LineBasicMaterial({color:new r.Color(16711680),depthTest:!1,depthWrite:!1,transparent:!0}),this._init()}updateMatrixWorld(e){const t=this.root;if(this.visible){let e=0;const n=this.iks,r=t.skeleton.bones;f.copy(t.matrixWorld).invert();for(let t=0,i=n.length;t1?b=1:b<-1&&(b=-1),b=n.acos(b),!(b<1e-5)){if(void 0!==e.minAngle&&be.maxAngle&&(b=e.maxAngle),d.crossVectors(l,a),d.normalize(),i.setFromAxisAngle(d,b),A.quaternion.multiply(i),void 0!==v){let e=A.quaternion.w;e>1&&(e=1);const t=n.sqrt(1-e*e);A.quaternion.set(v.x*t,v.y*t,v.z*t,e)}void 0!==y&&A.rotation.setFromVector3(p.setFromEuler(A.rotation).max(y)),void 0!==x&&A.rotation.setFromVector3(p.setFromEuler(A.rotation).min(x)),A.updateMatrixWorld(!0),f=!0}}if(!f)break}return this}createHelper(){return new A(this.mesh,this.iks)}_valid(){const e=this.iks,t=this.mesh.skeleton.bones;for(let n=0,r=e.length;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(69457),s=n(36217);const a=[];let o=0;const l=new Map;function c(e,t,n,i){const s=e.skeleton.bones,h=e.geometry.userData.MMD.bones[t],u=s[t];if(l.has(t))return;const d=(o>=a.length&&a.push(new r.Quaternion),a[o++]);if(l.set(t,d.copy(u.quaternion)),i&&h.grant&&!h.grant.isLocal&&h.grant.affectRotation){const t=h.grant.parentIndex,r=h.grant.ratio;l.has(t)||c(e,t,n,i),i.addGrantRotation(u,l.get(t),r)}if(n&&h.ik){e.updateMatrixWorld(!0),n.updateOne(h.ik);const t=h.ik.links;for(let e=0,n=t.length;e=this.duration;)this.currentTime-=this.duration;return!(this.currentTimethis.audioDuration)}_shouldStopAudio(){return this.audio.isPlaying&&this.currentTime>=this.duration}}const u=new r.Quaternion;class d{constructor(e,t=[]){this.mesh=e,this.grants=t}update(){const e=this.grants;for(let t=0,n=e.length;t=0)throw new Error("THREE.MMDAnimationHelper._addMesh: SkinnedMesh '"+e.name+"' has already been added.");return this.meshes.push(e),this.objects.set(e,{looped:!1}),this._setupMeshAnimation(e,t.animation),!1!==t.physics&&this._setupMeshPhysics(e,t),this}_setupCamera(e,t){if(this.camera===e)throw new Error("THREE.MMDAnimationHelper._setupCamera: Camera '"+e.name+"' has already been set.");return this.camera&&this.clearCamera(this.camera),this.camera=e,e.add(this.cameraTarget),this.objects.set(e,{}),void 0!==t.animation&&this._setupCameraAnimation(e,t.animation),this}_setupAudio(e,t){if(this.audio===e)throw new Error("THREE.MMDAnimationHelper._setupAudio: Audio '"+e.name+"' has already been set.");return this.audio&&this.clearAudio(this.audio),this.audio=e,this.audioManager=new h(e,t),this.objects.set(this.audioManager,{duration:this.audioManager.duration}),this}_removeMesh(e){let t=!1,n=0;for(let r=0,i=this.meshes.length;r0&&".bones"!==t[0].name.slice(0,6)||(n.looped=!0)}))}return n.ikSolver=this._createCCDIKSolver(e),n.grantSolver=this.createGrantSolver(e),this}_setupCameraAnimation(e,t){const n=Array.isArray(t)?t:[t],i=this.objects.get(e);i.mixer=new r.AnimationMixer(e);for(let r=0,s=n.length;r0)}}}_createCCDIKSolver(e){if(void 0===i.CCDIKSolver)throw new Error("THREE.MMDAnimationHelper: Import CCDIKSolver.");return new i.CCDIKSolver(e,e.geometry.userData.MMD.iks)}_createMMDPhysics(e,t){if(void 0===s.MMDPhysics)throw new Error("THREE.MMDPhysics: Import MMDPhysics.");return new s.MMDPhysics(e,e.geometry.userData.MMD.rigidBodies,e.geometry.userData.MMD.constraints,t)}_syncDuration(){let e=0;const t=this.objects,n=this.meshes,r=this.camera,i=this.audioManager;for(let s=0,a=n.length;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(31649);class s{constructor(){this.threeVector3s=[],this.threeMatrix4s=[],this.threeQuaternions=[],this.threeEulers=[],this.transforms=[],this.quaternions=[],this.vector3s=[]}allocThreeVector3(){return this.threeVector3s.length>0?this.threeVector3s.pop():new r.Vector3}freeThreeVector3(e){this.threeVector3s.push(e)}allocThreeMatrix4(){return this.threeMatrix4s.length>0?this.threeMatrix4s.pop():new r.Matrix4}freeThreeMatrix4(e){this.threeMatrix4s.push(e)}allocThreeQuaternion(){return this.threeQuaternions.length>0?this.threeQuaternions.pop():new r.Quaternion}freeThreeQuaternion(e){this.threeQuaternions.push(e)}allocThreeEuler(){return this.threeEulers.length>0?this.threeEulers.pop():new r.Euler}freeThreeEuler(e){this.threeEulers.push(e)}allocTransform(){return this.transforms.length>0?this.transforms.pop():new Ammo.btTransform}freeTransform(e){this.transforms.push(e)}allocQuaternion(){return this.quaternions.length>0?this.quaternions.pop():new Ammo.btQuaternion}freeQuaternion(e){this.quaternions.push(e)}allocVector3(){return this.vector3s.length>0?this.vector3s.pop():new Ammo.btVector3}freeVector3(e){this.vector3s.push(e)}setIdentity(e){e.setIdentity()}getBasis(e){var t=this.allocQuaternion();return e.getBasis().getRotation(t),t}getBasisAsMatrix3(e){var t=this.getBasis(e),n=this.quaternionToMatrix3(t);return this.freeQuaternion(t),n}getOrigin(e){return e.getOrigin()}setOrigin(e,t){e.getOrigin().setValue(t.x(),t.y(),t.z())}copyOrigin(e,t){var n=t.getOrigin();this.setOrigin(e,n)}setBasis(e,t){e.setRotation(t)}setBasisFromMatrix3(e,t){var n=this.matrix3ToQuaternion(t);this.setBasis(e,n),this.freeQuaternion(n)}setOriginFromArray3(e,t){e.getOrigin().setValue(t[0],t[1],t[2])}setOriginFromThreeVector3(e,t){e.getOrigin().setValue(t.x,t.y,t.z)}setBasisFromArray3(e,t){var n=this.allocThreeQuaternion(),r=this.allocThreeEuler();r.set(t[0],t[1],t[2]),this.setBasisFromThreeQuaternion(e,n.setFromEuler(r)),this.freeThreeEuler(r),this.freeThreeQuaternion(n)}setBasisFromThreeQuaternion(e,t){var n=this.allocQuaternion();n.setX(t.x),n.setY(t.y),n.setZ(t.z),n.setW(t.w),this.setBasis(e,n),this.freeQuaternion(n)}multiplyTransforms(e,t){var n=this.allocTransform();this.setIdentity(n);var r=this.getBasisAsMatrix3(e),i=this.getBasisAsMatrix3(t),s=this.getOrigin(e),a=this.getOrigin(t),o=this.multiplyMatrix3ByVector3(r,a),l=this.addVector3(o,s);this.setOrigin(n,l);var c=this.multiplyMatrices3(r,i);return this.setBasisFromMatrix3(n,c),this.freeVector3(o),this.freeVector3(l),n}inverseTransform(e){var t=this.allocTransform(),n=this.getBasisAsMatrix3(e),r=this.getOrigin(e),i=this.transposeMatrix3(n),s=this.negativeVector3(r),a=this.multiplyMatrix3ByVector3(i,s);return this.setOrigin(t,a),this.setBasisFromMatrix3(t,i),this.freeVector3(s),this.freeVector3(a),t}multiplyMatrices3(e,t){var n=[],r=this.rowOfMatrix3(e,0),i=this.rowOfMatrix3(e,1),s=this.rowOfMatrix3(e,2),a=this.columnOfMatrix3(t,0),o=this.columnOfMatrix3(t,1),l=this.columnOfMatrix3(t,2);return n[0]=this.dotVectors3(r,a),n[1]=this.dotVectors3(r,o),n[2]=this.dotVectors3(r,l),n[3]=this.dotVectors3(i,a),n[4]=this.dotVectors3(i,o),n[5]=this.dotVectors3(i,l),n[6]=this.dotVectors3(s,a),n[7]=this.dotVectors3(s,o),n[8]=this.dotVectors3(s,l),this.freeVector3(r),this.freeVector3(i),this.freeVector3(s),this.freeVector3(a),this.freeVector3(o),this.freeVector3(l),n}addVector3(e,t){var n=this.allocVector3();return n.setValue(e.x()+t.x(),e.y()+t.y(),e.z()+t.z()),n}dotVectors3(e,t){return e.x()*t.x()+e.y()*t.y()+e.z()*t.z()}rowOfMatrix3(e,t){var n=this.allocVector3();return n.setValue(e[3*t+0],e[3*t+1],e[3*t+2]),n}columnOfMatrix3(e,t){var n=this.allocVector3();return n.setValue(e[t+0],e[t+3],e[t+6]),n}negativeVector3(e){var t=this.allocVector3();return t.setValue(-e.x(),-e.y(),-e.z()),t}multiplyMatrix3ByVector3(e,t){var n=this.allocVector3(),r=this.rowOfMatrix3(e,0),i=this.rowOfMatrix3(e,1),s=this.rowOfMatrix3(e,2),a=this.dotVectors3(r,t),o=this.dotVectors3(i,t),l=this.dotVectors3(s,t);return n.setValue(a,o,l),this.freeVector3(r),this.freeVector3(i),this.freeVector3(s),n}transposeMatrix3(e){var t=[];return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t}quaternionToMatrix3(e){var t=[],n=e.x(),r=e.y(),i=e.z(),s=e.w(),a=n*n,o=r*r,l=i*i,c=n*r,h=r*i,u=i*n,d=n*s,p=r*s,f=i*s;return t[0]=1-2*(o+l),t[1]=2*(c-f),t[2]=2*(u+p),t[3]=2*(c+f),t[4]=1-2*(l+a),t[5]=2*(h-d),t[6]=2*(u-p),t[7]=2*(h+d),t[8]=1-2*(a+o),t}matrix3ToQuaternion(e){var t,n,r,i,s,a=e[0]+e[4]+e[8];a>0?(s=.25*(t=2*Math.sqrt(a+1)),n=(e[7]-e[5])/t,r=(e[2]-e[6])/t,i=(e[3]-e[1])/t):e[0]>e[4]&&e[0]>e[8]?(t=2*Math.sqrt(1+e[0]-e[4]-e[8]),s=(e[7]-e[5])/t,n=.25*t,r=(e[1]+e[3])/t,i=(e[2]+e[6])/t):e[4]>e[8]?(t=2*Math.sqrt(1+e[4]-e[0]-e[8]),s=(e[2]-e[6])/t,n=(e[1]+e[3])/t,r=.25*t,i=(e[5]+e[7])/t):(t=2*Math.sqrt(1+e[8]-e[0]-e[4]),s=(e[3]-e[1])/t,n=(e[2]+e[6])/t,r=(e[5]+e[7])/t,i=.25*t);var o=this.allocQuaternion();return o.setX(n),o.setY(r),o.setZ(i),o.setW(s),o}}class a{constructor(e,t,n,r){this.mesh=e,this.world=t,this.params=n,this.manager=r,this.body=null,this.bone=null,this.boneOffsetForm=null,this.boneOffsetFormInverse=null,this._init()}reset(){return this._setTransformFromBone(),this}updateFromBone(){return-1!==this.params.boneIndex&&0===this.params.type&&this._setTransformFromBone(),this}updateBone(){return 0===this.params.type||-1===this.params.boneIndex||(this._updateBoneRotation(),1===this.params.type&&this._updateBonePosition(),this.bone.updateMatrixWorld(!0),2===this.params.type&&this._setPositionFromBone()),this}_init(){const e=this.manager,t=this.params,n=this.mesh.skeleton.bones,i=-1===t.boneIndex?new r.Bone:n[t.boneIndex],s=function(e){switch(e.shapeType){case 0:return new Ammo.btSphereShape(e.width);case 1:return new Ammo.btBoxShape(new Ammo.btVector3(e.width,e.height,e.depth));case 2:return new Ammo.btCapsuleShape(e.width,e.height);default:throw new Error("unknown shape type "+e.shapeType)}}(t),a=0===t.type?0:t.weight,o=e.allocVector3();o.setValue(0,0,0),0!==a&&s.calculateLocalInertia(a,o);const l=e.allocTransform();e.setIdentity(l),e.setOriginFromArray3(l,t.position),e.setBasisFromArray3(l,t.rotation);const c=e.allocThreeVector3(),h=e.allocTransform();e.setIdentity(h),e.setOriginFromThreeVector3(h,i.getWorldPosition(c));const u=e.multiplyTransforms(h,l),d=new Ammo.btDefaultMotionState(u),p=new Ammo.btRigidBodyConstructionInfo(a,d,s,o);p.set_m_friction(t.friction),p.set_m_restitution(t.restitution);const f=new Ammo.btRigidBody(p);0===t.type&&(f.setCollisionFlags(2|f.getCollisionFlags()),f.setActivationState(4)),f.setDamping(t.positionDamping,t.rotationDamping),f.setSleepingThresholds(0,0),this.world.addRigidBody(f,1<this.maxStepNum&&(r=this.maxStepNum),this.world.stepSimulation(n,r,t)}_updateRigidBodies(){for(let e=0,t=this.bodies.length;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(67971);class s extends r.PerspectiveCamera{constructor(e,t,n,s){super(e,t,n,s),this.type="CinematicCamera",this.postprocessing={enabled:!0},this.shaderSettings={rings:3,samples:4};const a=i.BokehDepthShader;this.materialDepth=new r.ShaderMaterial({uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader}),this.materialDepth.uniforms.mNear.value=n,this.materialDepth.uniforms.mFar.value=s,this.setLens(),this.initPostProcessing()}setLens(e,t,n,r){void 0===e&&(e=35),void 0!==t&&(this.filmGauge=t),this.setFocalLength(e),void 0===n&&(n=8),void 0===r&&(r=.019),this.fNumber=n,this.coc=r,this.aperture=e/this.fNumber,this.hyperFocal=e*e/(this.aperture*this.coc)}linearize(e){const t=this.far,n=this.near;return-t*n/(e*(t-n)-t)}smoothstep(e,t,n){const r=this.saturate((n-e)/(t-e));return r*r*(3-2*r)}saturate(e){return Math.max(0,Math.min(1,e))}focusAt(e){void 0===e&&(e=20);const t=this.getFocalLength();this.focus=e,this.nearPoint=this.hyperFocal*this.focus/(this.hyperFocal+(this.focus-t)),this.farPoint=this.hyperFocal*this.focus/(this.hyperFocal-(this.focus-t)),this.depthOfField=this.farPoint-this.nearPoint,this.depthOfField<0&&(this.depthOfField=0),this.sdistance=this.smoothstep(this.near,this.far,this.focus),this.ldistance=this.linearize(1-this.sdistance),this.postprocessing.bokeh_uniforms.focalDepth.value=this.ldistance}initPostProcessing(){if(this.postprocessing.enabled){this.postprocessing.scene=new r.Scene,this.postprocessing.camera=new r.OrthographicCamera(window.innerWidth/-2,window.innerWidth/2,window.innerHeight/2,window.innerHeight/-2,-1e4,1e4),this.postprocessing.scene.add(this.postprocessing.camera),this.postprocessing.rtTextureDepth=new r.WebGLRenderTarget(window.innerWidth,window.innerHeight),this.postprocessing.rtTextureColor=new r.WebGLRenderTarget(window.innerWidth,window.innerHeight);const e=i.BokehShader2;this.postprocessing.bokeh_uniforms=r.UniformsUtils.clone(e.uniforms),this.postprocessing.bokeh_uniforms.tColor.value=this.postprocessing.rtTextureColor.texture,this.postprocessing.bokeh_uniforms.tDepth.value=this.postprocessing.rtTextureDepth.texture,this.postprocessing.bokeh_uniforms.manualdof.value=0,this.postprocessing.bokeh_uniforms.shaderFocus.value=0,this.postprocessing.bokeh_uniforms.fstop.value=2.8,this.postprocessing.bokeh_uniforms.showFocus.value=1,this.postprocessing.bokeh_uniforms.focalDepth.value=.1,this.postprocessing.bokeh_uniforms.znear.value=this.near,this.postprocessing.bokeh_uniforms.zfar.value=this.near,this.postprocessing.bokeh_uniforms.textureWidth.value=window.innerWidth,this.postprocessing.bokeh_uniforms.textureHeight.value=window.innerHeight,this.postprocessing.materialBokeh=new r.ShaderMaterial({uniforms:this.postprocessing.bokeh_uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,defines:{RINGS:this.shaderSettings.rings,SAMPLES:this.shaderSettings.samples,DEPTH_PACKING:1}}),this.postprocessing.quad=new r.Mesh(new r.PlaneGeometry(window.innerWidth,window.innerHeight),this.postprocessing.materialBokeh),this.postprocessing.quad.position.z=-500,this.postprocessing.scene.add(this.postprocessing.quad)}}renderCinematic(e,t){if(this.postprocessing.enabled){const n=t.getRenderTarget();t.clear(),e.overrideMaterial=null,t.setRenderTarget(this.postprocessing.rtTextureColor),t.clear(),t.render(e,this),e.overrideMaterial=this.materialDepth,t.setRenderTarget(this.postprocessing.rtTextureDepth),t.clear(),t.render(e,this),t.setRenderTarget(null),t.render(this.postprocessing.scene,this.postprocessing.camera),t.setRenderTarget(n)}}}t.CinematicCamera=s},22845:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a={IDLE:Symbol(),ROTATE:Symbol(),PAN:Symbol(),SCALE:Symbol(),FOV:Symbol(),FOCUS:Symbol(),ZROTATE:Symbol(),TOUCH_MULTI:Symbol(),ANIMATION_FOCUS:Symbol(),ANIMATION_ROTATE:Symbol()},o={NONE:Symbol(),ONE_FINGER:Symbol(),ONE_FINGER_SWITCHED:Symbol(),TWO_FINGER:Symbol(),MULT_FINGER:Symbol(),CURSOR:Symbol()},l={x:0,y:0},c={camera:new s.Matrix4,gizmos:new s.Matrix4},h={type:"change"},u={type:"start"},d={type:"end"};class p extends s.EventDispatcher{constructor(e,t=null,n=null){super(),i(this,"camera"),i(this,"domElement"),i(this,"scene"),i(this,"mouseActions"),i(this,"_mouseOp"),i(this,"_v2_1"),i(this,"_v3_1"),i(this,"_v3_2"),i(this,"_m4_1"),i(this,"_m4_2"),i(this,"_quat"),i(this,"_translationMatrix"),i(this,"_rotationMatrix"),i(this,"_scaleMatrix"),i(this,"_rotationAxis"),i(this,"_cameraMatrixState"),i(this,"_cameraProjectionState"),i(this,"_fovState"),i(this,"_upState"),i(this,"_zoomState"),i(this,"_nearPos"),i(this,"_farPos"),i(this,"_gizmoMatrixState"),i(this,"_up0"),i(this,"_zoom0"),i(this,"_fov0"),i(this,"_initialNear"),i(this,"_nearPos0"),i(this,"_initialFar"),i(this,"_farPos0"),i(this,"_cameraMatrixState0"),i(this,"_gizmoMatrixState0"),i(this,"_button"),i(this,"_touchStart"),i(this,"_touchCurrent"),i(this,"_input"),i(this,"_switchSensibility"),i(this,"_startFingerDistance"),i(this,"_currentFingerDistance"),i(this,"_startFingerRotation"),i(this,"_currentFingerRotation"),i(this,"_devPxRatio"),i(this,"_downValid"),i(this,"_nclicks"),i(this,"_downEvents"),i(this,"_clickStart"),i(this,"_maxDownTime"),i(this,"_maxInterval"),i(this,"_posThreshold"),i(this,"_movementThreshold"),i(this,"_currentCursorPosition"),i(this,"_startCursorPosition"),i(this,"_grid"),i(this,"_gridPosition"),i(this,"_gizmos"),i(this,"_curvePts"),i(this,"_timeStart"),i(this,"_animationId"),i(this,"focusAnimationTime"),i(this,"_timePrev"),i(this,"_timeCurrent"),i(this,"_anglePrev"),i(this,"_angleCurrent"),i(this,"_cursorPosPrev"),i(this,"_cursorPosCurr"),i(this,"_wPrev"),i(this,"_wCurr"),i(this,"adjustNearFar"),i(this,"scaleFactor"),i(this,"dampingFactor"),i(this,"wMax"),i(this,"enableAnimations"),i(this,"enableGrid"),i(this,"cursorZoom"),i(this,"minFov"),i(this,"maxFov"),i(this,"enabled"),i(this,"enablePan"),i(this,"enableRotate"),i(this,"enableZoom"),i(this,"minDistance"),i(this,"maxDistance"),i(this,"minZoom"),i(this,"maxZoom"),i(this,"target"),i(this,"_currentTarget"),i(this,"_tbRadius"),i(this,"_state"),i(this,"onWindowResize",(()=>{const e=(this._gizmos.scale.x+this._gizmos.scale.y+this._gizmos.scale.z)/3;if(this.camera){const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e)}const t=this._tbRadius/e,n=new s.EllipseCurve(0,0,t,t).getPoints(this._curvePts),r=(new s.BufferGeometry).setFromPoints(n);for(const i in this._gizmos.children){this._gizmos.children[i].geometry=r}this.dispatchEvent(h)})),i(this,"onContextMenu",(e=>{if(this.enabled)for(let t=0;t{this._touchStart.splice(0,this._touchStart.length),this._touchCurrent.splice(0,this._touchCurrent.length),this._input=o.NONE})),i(this,"onPointerDown",(e=>{if(0==e.button&&e.isPrimary?(this._downValid=!0,this._downEvents.push(e)):this._downValid=!1,"touch"==e.pointerType&&this._input!=o.CURSOR)switch(this._touchStart.push(e),this._touchCurrent.push(e),this._input){case o.NONE:this._input=o.ONE_FINGER,this.onSinglePanStart(e,"ROTATE"),window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp);break;case o.ONE_FINGER:case o.ONE_FINGER_SWITCHED:this._input=o.TWO_FINGER,this.onRotateStart(),this.onPinchStart(),this.onDoublePanStart();break;case o.TWO_FINGER:this._input=o.MULT_FINGER,this.onTriplePanStart()}else if("touch"!=e.pointerType&&this._input==o.NONE){let t=null;e.ctrlKey||e.metaKey?t="CTRL":e.shiftKey&&(t="SHIFT"),this._mouseOp=this.getOpFromAction(e.button,t),this._mouseOp&&(window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp),this._input=o.CURSOR,this._button=e.button,this.onSinglePanStart(e,this._mouseOp))}})),i(this,"onPointerMove",(e=>{if("touch"==e.pointerType&&this._input!=o.CURSOR)switch(this._input){case o.ONE_FINGER:this.updateTouchEvent(e),this.onSinglePanMove(e,a.ROTATE);break;case o.ONE_FINGER_SWITCHED:if(this.calculatePointersDistance(this._touchCurrent[0],e)*this._devPxRatio>=this._switchSensibility){this._input=o.ONE_FINGER,this.updateTouchEvent(e),this.onSinglePanStart(e,"ROTATE");break}break;case o.TWO_FINGER:this.updateTouchEvent(e),this.onRotateMove(),this.onPinchMove(),this.onDoublePanMove();break;case o.MULT_FINGER:this.updateTouchEvent(e),this.onTriplePanMove()}else if("touch"!=e.pointerType&&this._input==o.CURSOR){let t=null;e.ctrlKey||e.metaKey?t="CTRL":e.shiftKey&&(t="SHIFT");const n=this.getOpStateFromAction(this._button,t);n&&this.onSinglePanMove(e,n)}if(this._downValid){this.calculatePointersDistance(this._downEvents[this._downEvents.length-1],e)*this._devPxRatio>this._movementThreshold&&(this._downValid=!1)}})),i(this,"onPointerUp",(e=>{if("touch"==e.pointerType&&this._input!=o.CURSOR){const t=this._touchCurrent.length;for(let n=0;n{var t,n;if(this.enabled&&this.enableZoom&&this.domElement){let r=null;e.ctrlKey||e.metaKey?r="CTRL":e.shiftKey&&(r="SHIFT");const i=this.getOpFromAction("WHEEL",r);if(i){e.preventDefault(),this.dispatchEvent(u);const r=125;let o=e.deltaY/r,l=1;switch(o>0?l=1/this.scaleFactor:o<0&&(l=this.scaleFactor),i){case"ZOOM":if(this.updateTbState(a.SCALE,!0),o>0?l=1/Math.pow(this.scaleFactor,o):o<0&&(l=Math.pow(this.scaleFactor,-o)),this.cursorZoom&&this.enablePan){let r;this.camera instanceof s.OrthographicCamera&&(r=null==(t=this.unprojectOnTbPlane(this.camera,e.clientX,e.clientY,this.domElement))?void 0:t.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._gizmos.position)),this.camera instanceof s.PerspectiveCamera&&(r=null==(n=this.unprojectOnTbPlane(this.camera,e.clientX,e.clientY,this.domElement))?void 0:n.applyQuaternion(this.camera.quaternion).add(this._gizmos.position)),void 0!==r&&this.applyTransformMatrix(this.applyScale(l,r))}else this.applyTransformMatrix(this.applyScale(l,this._gizmos.position));this._grid&&(this.disposeGrid(),this.drawGrid()),this.updateTbState(a.IDLE,!1),this.dispatchEvent(h),this.dispatchEvent(d);break;case"FOV":if(this.camera instanceof s.PerspectiveCamera){this.updateTbState(a.FOV,!0),0!=e.deltaX&&(o=e.deltaX/r,l=1,o>0?l=1/Math.pow(this.scaleFactor,o):o<0&&(l=Math.pow(this.scaleFactor,-o))),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const t=this._v3_1.distanceTo(this._gizmos.position);let n=t/l;n=s.MathUtils.clamp(n,this.minDistance,this.maxDistance);const i=t*Math.tan(s.MathUtils.DEG2RAD*this.camera.fov*.5);let c=s.MathUtils.RAD2DEG*(2*Math.atan(i/n));c>this.maxFov?c=this.maxFov:c{if(this.enabled&&this.domElement)switch(this.dispatchEvent(u),this.setCenter(e.clientX,e.clientY),t){case"PAN":if(!this.enablePan)return;if(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(h)),this.camera){this.updateTbState(a.PAN,!0);const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&(this.drawGrid(),this.dispatchEvent(h))}break;case"ROTATE":if(!this.enableRotate)return;if(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1),this.camera){this.updateTbState(a.ROTATE,!0);const e=this.unprojectOnTbSurface(this.camera,l.x,l.y,this.domElement,this._tbRadius);void 0!==e&&this._startCursorPosition.copy(e),this.activateGizmos(!0),this.enableAnimations&&(this._timePrev=this._timeCurrent=performance.now(),this._angleCurrent=this._anglePrev=0,this._cursorPosPrev.copy(this._startCursorPosition),this._cursorPosCurr.copy(this._cursorPosPrev),this._wCurr=0,this._wPrev=this._wCurr)}this.dispatchEvent(h);break;case"FOV":if(!this.enableZoom)return;this.camera instanceof s.PerspectiveCamera&&(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(h)),this.updateTbState(a.FOV,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition));break;case"ZOOM":if(!this.enableZoom)return;-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(h)),this.updateTbState(a.SCALE,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition)}})),i(this,"onSinglePanMove",((e,t)=>{if(this.enabled&&this.domElement){const n=t!=this._state;switch(this.setCenter(e.clientX,e.clientY),t){case a.PAN:if(this.enablePan&&this.camera)if(n){this.dispatchEvent(d),this.dispatchEvent(u),this.updateTbState(t,!0);const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&this.drawGrid(),this.activateGizmos(!1)}else{const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement);void 0!==e&&this._currentCursorPosition.copy(e),this.applyTransformMatrix(this.pan(this._startCursorPosition,this._currentCursorPosition))}break;case a.ROTATE:if(this.enableRotate&&this.camera)if(n){this.dispatchEvent(d),this.dispatchEvent(u),this.updateTbState(t,!0);const e=this.unprojectOnTbSurface(this.camera,l.x,l.y,this.domElement,this._tbRadius);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!0)}else{const e=this.unprojectOnTbSurface(this.camera,l.x,l.y,this.domElement,this._tbRadius);void 0!==e&&this._currentCursorPosition.copy(e);const t=this._startCursorPosition.distanceTo(this._currentCursorPosition),n=this._startCursorPosition.angleTo(this._currentCursorPosition),r=Math.max(t/this._tbRadius,n);this.applyTransformMatrix(this.rotate(this.calculateRotationAxis(this._startCursorPosition,this._currentCursorPosition),r)),this.enableAnimations&&(this._timePrev=this._timeCurrent,this._timeCurrent=performance.now(),this._anglePrev=this._angleCurrent,this._angleCurrent=r,this._cursorPosPrev.copy(this._cursorPosCurr),this._cursorPosCurr.copy(this._currentCursorPosition),this._wPrev=this._wCurr,this._wCurr=this.calculateAngularSpeed(this._anglePrev,this._angleCurrent,this._timePrev,this._timeCurrent))}break;case a.SCALE:if(this.enableZoom)if(n)this.dispatchEvent(d),this.dispatchEvent(u),this.updateTbState(t,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1);else{const e=8;this._currentCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y);const t=this._currentCursorPosition.y-this._startCursorPosition.y;let n=1;t<0?n=1/Math.pow(this.scaleFactor,-t*e):t>0&&(n=Math.pow(this.scaleFactor,t*e)),this.applyTransformMatrix(this.applyScale(n,this._gizmos.position))}break;case a.FOV:if(this.enableZoom&&this.camera instanceof s.PerspectiveCamera)if(n)this.dispatchEvent(d),this.dispatchEvent(u),this.updateTbState(t,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1);else{const e=8;this._currentCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y);const t=this._currentCursorPosition.y-this._startCursorPosition.y;let n=1;t<0?n=1/Math.pow(this.scaleFactor,-t*e):t>0&&(n=Math.pow(this.scaleFactor,t*e)),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const r=this._v3_1.distanceTo(this._gizmos.position);let i=r/n;i=s.MathUtils.clamp(i,this.minDistance,this.maxDistance);const a=r*Math.tan(s.MathUtils.DEG2RAD*this._fovState*.5);let o=s.MathUtils.RAD2DEG*(2*Math.atan(a/i));o=s.MathUtils.clamp(o,this.minFov,this.maxFov);const c=a/Math.tan(s.MathUtils.DEG2RAD*(o/2));n=r/c,this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),this.setFov(o),this.applyTransformMatrix(this.applyScale(n,this._v3_2,!1));const h=this._gizmos.position.clone().sub(this.camera.position).normalize().multiplyScalar(c/r);this._m4_1.makeTranslation(h.x,h.y,h.z)}}this.dispatchEvent(h)}})),i(this,"onSinglePanEnd",(()=>{if(this._state==a.ROTATE){if(!this.enableRotate)return;if(this.enableAnimations){if(performance.now()-this._timeCurrent<120){const e=Math.abs((this._wPrev+this._wCurr)/2),t=this;this._animationId=window.requestAnimationFrame((function(n){t.updateTbState(a.ANIMATION_ROTATE,!0);const r=t.calculateRotationAxis(t._cursorPosPrev,t._cursorPosCurr);t.onRotationAnim(n,r,Math.min(e,t.wMax))}))}else this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(h)}else this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(h)}else this._state!=a.PAN&&this._state!=a.IDLE||(this.updateTbState(a.IDLE,!1),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1),this.dispatchEvent(h));this.dispatchEvent(d)})),i(this,"onDoubleTap",(e=>{if(this.enabled&&this.enablePan&&this.scene&&this.camera&&this.domElement){this.dispatchEvent(u),this.setCenter(e.clientX,e.clientY);const t=this.unprojectOnObj(this.getCursorNDC(l.x,l.y,this.domElement),this.camera);if(t&&this.enableAnimations){const e=this;-1!=this._animationId&&window.cancelAnimationFrame(this._animationId),this._timeStart=-1,this._animationId=window.requestAnimationFrame((function(n){e.updateTbState(a.ANIMATION_FOCUS,!0),e.onFocusAnim(n,t,e._cameraMatrixState,e._gizmoMatrixState)}))}else t&&!this.enableAnimations&&(this.updateTbState(a.FOCUS,!0),this.focus(t,this.scaleFactor),this.updateTbState(a.IDLE,!1),this.dispatchEvent(h))}this.dispatchEvent(d)})),i(this,"onDoublePanStart",(()=>{if(this.enabled&&this.enablePan&&this.camera&&this.domElement){this.dispatchEvent(u),this.updateTbState(a.PAN,!0),this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2);const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement,!0);void 0!==e&&this._startCursorPosition.copy(e),this._currentCursorPosition.copy(this._startCursorPosition),this.activateGizmos(!1)}})),i(this,"onDoublePanMove",(()=>{if(this.enabled&&this.enablePan&&this.camera&&this.domElement){this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2),this._state!=a.PAN&&(this.updateTbState(a.PAN,!0),this._startCursorPosition.copy(this._currentCursorPosition));const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement,!0);void 0!==e&&this._currentCursorPosition.copy(e),this.applyTransformMatrix(this.pan(this._startCursorPosition,this._currentCursorPosition,!0)),this.dispatchEvent(h)}})),i(this,"onDoublePanEnd",(()=>{this.updateTbState(a.IDLE,!1),this.dispatchEvent(d)})),i(this,"onRotateStart",(()=>{var e;this.enabled&&this.enableRotate&&(this.dispatchEvent(u),this.updateTbState(a.ZROTATE,!0),this._startFingerRotation=this.getAngle(this._touchCurrent[1],this._touchCurrent[0])+this.getAngle(this._touchStart[1],this._touchStart[0]),this._currentFingerRotation=this._startFingerRotation,null==(e=this.camera)||e.getWorldDirection(this._rotationAxis),this.enablePan||this.enableZoom||this.activateGizmos(!0))})),i(this,"onRotateMove",(()=>{var e;if(this.enabled&&this.enableRotate&&this.camera&&this.domElement){let t;this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2),this._state!=a.ZROTATE&&(this.updateTbState(a.ZROTATE,!0),this._startFingerRotation=this._currentFingerRotation),this._currentFingerRotation=this.getAngle(this._touchCurrent[1],this._touchCurrent[0])+this.getAngle(this._touchStart[1],this._touchStart[0]),this.enablePan?this.camera&&(this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),t=null==(e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement))?void 0:e.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._v3_2)):t=(new s.Vector3).setFromMatrixPosition(this._gizmoMatrixState);const n=s.MathUtils.DEG2RAD*(this._startFingerRotation-this._currentFingerRotation);void 0!==t&&this.applyTransformMatrix(this.zRotate(t,n)),this.dispatchEvent(h)}})),i(this,"onRotateEnd",(()=>{this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(d)})),i(this,"onPinchStart",(()=>{this.enabled&&this.enableZoom&&(this.dispatchEvent(u),this.updateTbState(a.SCALE,!0),this._startFingerDistance=this.calculatePointersDistance(this._touchCurrent[0],this._touchCurrent[1]),this._currentFingerDistance=this._startFingerDistance,this.activateGizmos(!1))})),i(this,"onPinchMove",(()=>{var e,t;if(this.enabled&&this.enableZoom&&this.domElement){this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2);const n=12;this._state!=a.SCALE&&(this._startFingerDistance=this._currentFingerDistance,this.updateTbState(a.SCALE,!0)),this._currentFingerDistance=Math.max(this.calculatePointersDistance(this._touchCurrent[0],this._touchCurrent[1]),n*this._devPxRatio);const r=this._currentFingerDistance/this._startFingerDistance;let i;this.enablePan?this.camera instanceof s.OrthographicCamera?i=null==(e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement))?void 0:e.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._gizmos.position):this.camera instanceof s.PerspectiveCamera&&(i=null==(t=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement))?void 0:t.applyQuaternion(this.camera.quaternion).add(this._gizmos.position)):i=this._gizmos.position,void 0!==i&&this.applyTransformMatrix(this.applyScale(r,i)),this.dispatchEvent(h)}})),i(this,"onPinchEnd",(()=>{this.updateTbState(a.IDLE,!1),this.dispatchEvent(d)})),i(this,"onTriplePanStart",(()=>{if(this.enabled&&this.enableZoom&&this.domElement){this.dispatchEvent(u),this.updateTbState(a.SCALE,!0);let e=0,t=0;const n=this._touchCurrent.length;for(let r=0;r{if(this.enabled&&this.enableZoom&&this.camera&&this.domElement){let e=0,t=0;const n=this._touchCurrent.length;for(let s=0;s0&&(a=Math.pow(this.scaleFactor,i*r)),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const o=this._v3_1.distanceTo(this._gizmos.position);let c=o/a;c=s.MathUtils.clamp(c,this.minDistance,this.maxDistance);const u=o*Math.tan(s.MathUtils.DEG2RAD*this._fovState*.5);let d=s.MathUtils.RAD2DEG*(2*Math.atan(u/c));d=s.MathUtils.clamp(d,this.minFov,this.maxFov);const p=u/Math.tan(s.MathUtils.DEG2RAD*(d/2));a=o/p,this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),this.setFov(d),this.applyTransformMatrix(this.applyScale(a,this._v3_2,!1));const f=this._gizmos.position.clone().sub(this.camera.position).normalize().multiplyScalar(p/o);this._m4_1.makeTranslation(f.x,f.y,f.z),this.dispatchEvent(h)}})),i(this,"onTriplePanEnd",(()=>{this.updateTbState(a.IDLE,!1),this.dispatchEvent(d)})),i(this,"setCenter",((e,t)=>{l.x=e,l.y=t})),i(this,"initializeMouseActions",(()=>{this.setMouseAction("PAN",0,"CTRL"),this.setMouseAction("PAN",2),this.setMouseAction("ROTATE",0),this.setMouseAction("ZOOM","WHEEL"),this.setMouseAction("ZOOM",1),this.setMouseAction("FOV","WHEEL","SHIFT"),this.setMouseAction("FOV",1,"SHIFT")})),i(this,"setMouseAction",((e,t,n=null)=>{let r;if(!["PAN","ROTATE","ZOOM","FOV"].includes(e)||![0,1,2,"WHEEL"].includes(t)||!["CTRL","SHIFT",null].includes(n))return!1;if("WHEEL"==t&&"ZOOM"!=e&&"FOV"!=e)return!1;switch(e){case"PAN":r=a.PAN;break;case"ROTATE":r=a.ROTATE;break;case"ZOOM":r=a.SCALE;break;case"FOV":r=a.FOV}const i={operation:e,mouse:t,key:n,state:r};for(let s=0;s{let n;for(let r=0;r{let n;for(let r=0;r180*Math.atan2(t.clientY-e.clientY,t.clientX-e.clientX)/Math.PI)),i(this,"updateTouchEvent",(e=>{for(let t=0;t{const i=(r-n)/1e3;return 0==i?0:(t-e)/i})),i(this,"calculatePointersDistance",((e,t)=>Math.sqrt(Math.pow(t.clientX-e.clientX,2)+Math.pow(t.clientY-e.clientY,2)))),i(this,"calculateRotationAxis",((e,t)=>(this._rotationMatrix.extractRotation(this._cameraMatrixState),this._quat.setFromRotationMatrix(this._rotationMatrix),this._rotationAxis.crossVectors(e,t).applyQuaternion(this._quat),this._rotationAxis.normalize().clone()))),i(this,"calculateTbRadius",(e=>{const t=e.position.distanceTo(this._gizmos.position);if(e instanceof s.PerspectiveCamera){const n=s.MathUtils.DEG2RAD*e.fov*.5,r=Math.atan(e.aspect*Math.tan(n));return Math.tan(Math.min(n,r))*t*.67}if(e instanceof s.OrthographicCamera)return.67*Math.min(e.top,e.right)})),i(this,"focus",((e,t,n=1)=>{if(this.camera){const r=e.clone();r.sub(this._gizmos.position).multiplyScalar(n),this._translationMatrix.makeTranslation(r.x,r.y,r.z);const i=this._gizmoMatrixState.clone();this._gizmoMatrixState.premultiply(this._translationMatrix),this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale);const s=this._cameraMatrixState.clone();this._cameraMatrixState.premultiply(this._translationMatrix),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.enableZoom&&this.applyTransformMatrix(this.applyScale(t,this._gizmos.position)),this._gizmoMatrixState.copy(i),this._cameraMatrixState.copy(s)}})),i(this,"drawGrid",(()=>{if(this.scene){const e=8947848,t=3;let n,r,i,a;if(this.camera instanceof s.OrthographicCamera){const e=this.camera.right-this.camera.left,s=this.camera.bottom-this.camera.top;i=Math.max(e,s),a=i/20,n=i/this.camera.zoom*t,r=n/a*this.camera.zoom}else if(this.camera instanceof s.PerspectiveCamera){const e=this.camera.position.distanceTo(this._gizmos.position),o=s.MathUtils.DEG2RAD*this.camera.fov*.5,l=Math.atan(this.camera.aspect*Math.tan(o));i=Math.tan(Math.max(o,l))*e*2,a=i/20,n=i*t,r=n/a}null==this._grid&&this.camera&&(this._grid=new s.GridHelper(n,r,e,e),this._grid.position.copy(this._gizmos.position),this._gridPosition.copy(this._grid.position),this._grid.quaternion.copy(this.camera.quaternion),this._grid.rotateX(.5*Math.PI),this.scene.add(this._grid))}})),i(this,"connect",(e=>{e===document&&console.error('THREE.ArcballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.style.touchAction="none",this.domElement.addEventListener("contextmenu",this.onContextMenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointercancel",this.onPointerCancel),this.domElement.addEventListener("wheel",this.onWheel)})),i(this,"dispose",(()=>{var e,t,n,r,i;-1!=this._animationId&&window.cancelAnimationFrame(this._animationId),null==(e=this.domElement)||e.removeEventListener("pointerdown",this.onPointerDown),null==(t=this.domElement)||t.removeEventListener("pointercancel",this.onPointerCancel),null==(n=this.domElement)||n.removeEventListener("wheel",this.onWheel),null==(r=this.domElement)||r.removeEventListener("contextmenu",this.onContextMenu),window.removeEventListener("pointermove",this.onPointerMove),window.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("resize",this.onWindowResize),null==(i=this.scene)||i.remove(this._gizmos),this.disposeGrid()})),i(this,"disposeGrid",(()=>{this._grid&&this.scene&&(this.scene.remove(this._grid),this._grid=null)})),i(this,"easeOutCubic",(e=>1-Math.pow(1-e,3))),i(this,"activateGizmos",(e=>{for(const t of this._gizmos.children)t.material.setValues({opacity:e?1:.6})})),i(this,"getCursorNDC",((e,t,n)=>{const r=n.getBoundingClientRect();return this._v2_1.setX((e-r.left)/r.width*2-1),this._v2_1.setY((r.bottom-t)/r.height*2-1),this._v2_1.clone()})),i(this,"getCursorPosition",((e,t,n)=>(this._v2_1.copy(this.getCursorNDC(e,t,n)),this.camera instanceof s.OrthographicCamera&&(this._v2_1.x*=.5*(this.camera.right-this.camera.left),this._v2_1.y*=.5*(this.camera.top-this.camera.bottom)),this._v2_1.clone()))),i(this,"setCamera",(e=>{if(e){e.lookAt(this.target),e.updateMatrix(),e instanceof s.PerspectiveCamera&&(this._fov0=e.fov,this._fovState=e.fov),this._cameraMatrixState0.copy(e.matrix),this._cameraMatrixState.copy(this._cameraMatrixState0),this._cameraProjectionState.copy(e.projectionMatrix),this._zoom0=e.zoom,this._zoomState=this._zoom0,this._initialNear=e.near,this._nearPos0=e.position.distanceTo(this.target)-e.near,this._nearPos=this._initialNear,this._initialFar=e.far,this._farPos0=e.position.distanceTo(this.target)-e.far,this._farPos=this._initialFar,this._up0.copy(e.up),this._upState.copy(e.up),this.camera=e,this.camera.updateProjectionMatrix();const t=this.calculateTbRadius(e);void 0!==t&&(this._tbRadius=t),this.makeGizmos(this.target,this._tbRadius)}})),i(this,"makeGizmos",((e,t)=>{const n=new s.EllipseCurve(0,0,t,t).getPoints(this._curvePts),r=(new s.BufferGeometry).setFromPoints(n),i=new s.LineBasicMaterial({color:16744576,fog:!1,transparent:!0,opacity:.6}),a=new s.LineBasicMaterial({color:8454016,fog:!1,transparent:!0,opacity:.6}),o=new s.LineBasicMaterial({color:8421631,fog:!1,transparent:!0,opacity:.6}),l=new s.Line(r,i),c=new s.Line(r,a),h=new s.Line(r,o),u=.5*Math.PI;if(l.rotation.x=u,c.rotation.y=u,this._gizmoMatrixState0.identity().setPosition(e),this._gizmoMatrixState.copy(this._gizmoMatrixState0),this.camera&&1!=this.camera.zoom){const t=1/this.camera.zoom;this._scaleMatrix.makeScale(t,t,t),this._translationMatrix.makeTranslation(-e.x,-e.y,-e.z),this._gizmoMatrixState.premultiply(this._translationMatrix).premultiply(this._scaleMatrix),this._translationMatrix.makeTranslation(e.x,e.y,e.z),this._gizmoMatrixState.premultiply(this._translationMatrix)}this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.clear(),this._gizmos.add(l),this._gizmos.add(c),this._gizmos.add(h)})),i(this,"onFocusAnim",((e,t,n,r)=>{if(-1==this._timeStart&&(this._timeStart=e),this._state==a.ANIMATION_FOCUS){const i=(e-this._timeStart)/this.focusAnimationTime;if(this._gizmoMatrixState.copy(r),i>=1)this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.focus(t,this.scaleFactor),this._timeStart=-1,this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(h);else{const e=this.easeOutCubic(i),s=1-e+this.scaleFactor*e;this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.focus(t,s,e),this.dispatchEvent(h);const a=this;this._animationId=window.requestAnimationFrame((function(e){a.onFocusAnim(e,t,n,r.clone())}))}}else this._animationId=-1,this._timeStart=-1})),i(this,"onRotationAnim",((e,t,n)=>{if(-1==this._timeStart&&(this._anglePrev=0,this._angleCurrent=0,this._timeStart=e),this._state==a.ANIMATION_ROTATE){const r=(e-this._timeStart)/1e3;if(n+-this.dampingFactor*r>0){this._angleCurrent=.5*-this.dampingFactor*Math.pow(r,2)+n*r+0,this.applyTransformMatrix(this.rotate(t,this._angleCurrent)),this.dispatchEvent(h);const e=this;this._animationId=window.requestAnimationFrame((function(r){e.onRotationAnim(r,t,n)}))}else this._animationId=-1,this._timeStart=-1,this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(h)}else this._animationId=-1,this._timeStart=-1,this._state!=a.ROTATE&&(this.activateGizmos(!1),this.dispatchEvent(h))})),i(this,"pan",((e,t,n=!1)=>{if(this.camera){const r=e.clone().sub(t);if(this.camera instanceof s.OrthographicCamera&&r.multiplyScalar(1/this.camera.zoom),this.camera instanceof s.PerspectiveCamera&&n){this._v3_1.setFromMatrixPosition(this._cameraMatrixState0),this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0);const e=this._v3_1.distanceTo(this._v3_2)/this.camera.position.distanceTo(this._gizmos.position);r.multiplyScalar(1/e)}this._v3_1.set(r.x,r.y,0).applyQuaternion(this.camera.quaternion),this._m4_1.makeTranslation(this._v3_1.x,this._v3_1.y,this._v3_1.z),this.setTransformationMatrices(this._m4_1,this._m4_1)}return c})),i(this,"reset",(()=>{if(this.camera){this.camera.zoom=this._zoom0,this.camera instanceof s.PerspectiveCamera&&(this.camera.fov=this._fov0),this.camera.near=this._nearPos,this.camera.far=this._farPos,this._cameraMatrixState.copy(this._cameraMatrixState0),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.up.copy(this._up0),this.camera.updateMatrix(),this.camera.updateProjectionMatrix(),this._gizmoMatrixState.copy(this._gizmoMatrixState0),this._gizmoMatrixState0.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.updateMatrix();const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e),this.makeGizmos(this._gizmos.position,this._tbRadius),this.camera.lookAt(this._gizmos.position),this.updateTbState(a.IDLE,!1),this.dispatchEvent(h)}})),i(this,"rotate",((e,t)=>{const n=this._gizmos.position;return this._translationMatrix.makeTranslation(-n.x,-n.y,-n.z),this._rotationMatrix.makeRotationAxis(e,-t),this._m4_1.makeTranslation(n.x,n.y,n.z),this._m4_1.multiply(this._rotationMatrix),this._m4_1.multiply(this._translationMatrix),this.setTransformationMatrices(this._m4_1),c})),i(this,"copyState",(()=>{if(this.camera){const e=JSON.stringify(this.camera instanceof s.OrthographicCamera?{arcballState:{cameraFar:this.camera.far,cameraMatrix:this.camera.matrix,cameraNear:this.camera.near,cameraUp:this.camera.up,cameraZoom:this.camera.zoom,gizmoMatrix:this._gizmos.matrix}}:{arcballState:{cameraFar:this.camera.far,cameraFov:this.camera.fov,cameraMatrix:this.camera.matrix,cameraNear:this.camera.near,cameraUp:this.camera.up,cameraZoom:this.camera.zoom,gizmoMatrix:this._gizmos.matrix}});navigator.clipboard.writeText(e)}})),i(this,"pasteState",(()=>{const e=this;navigator.clipboard.readText().then((function(t){e.setStateFromJSON(t)}))})),i(this,"saveState",(()=>{this.camera&&(this._cameraMatrixState0.copy(this.camera.matrix),this._gizmoMatrixState0.copy(this._gizmos.matrix),this._nearPos=this.camera.near,this._farPos=this.camera.far,this._zoom0=this.camera.zoom,this._up0.copy(this.camera.up),this.camera instanceof s.PerspectiveCamera&&(this._fov0=this.camera.fov))})),i(this,"applyScale",((e,t,n=!0)=>{if(!this.camera)return;const r=t.clone();let i=1/e;if(this.camera instanceof s.OrthographicCamera){this.camera.zoom=this._zoomState,this.camera.zoom*=e,this.camera.zoom>this.maxZoom?(this.camera.zoom=this.maxZoom,i=this._zoomState/this.maxZoom):this.camera.zoomthis.maxDistance&&(i=this.maxDistance/e,t=e-e*i);let a=r.clone().sub(this._v3_1).normalize().multiplyScalar(t);if(this._m4_1.makeTranslation(a.x,a.y,a.z),n){const n=this._v3_2;e=n.distanceTo(r),t=e-e*i,a=r.clone().sub(this._v3_2).normalize().multiplyScalar(t),this._translationMatrix.makeTranslation(n.x,n.y,n.z),this._scaleMatrix.makeScale(i,i,i),this._m4_2.makeTranslation(a.x,a.y,a.z).multiply(this._translationMatrix),this._m4_2.multiply(this._scaleMatrix),this._translationMatrix.makeTranslation(-n.x,-n.y,-n.z),this._m4_2.multiply(this._translationMatrix),this.setTransformationMatrices(this._m4_1,this._m4_2)}else this.setTransformationMatrices(this._m4_1);return c}})),i(this,"setFov",(e=>{this.camera instanceof s.PerspectiveCamera&&(this.camera.fov=s.MathUtils.clamp(e,this.minFov,this.maxFov),this.camera.updateProjectionMatrix())})),i(this,"setTarget",((e,t,n)=>{if(this.camera){this.target.set(e,t,n),this._gizmos.position.set(e,t,n);const r=this.calculateTbRadius(this.camera);void 0!==r&&(this._tbRadius=r),this.makeGizmos(this.target,this._tbRadius),this.camera.lookAt(this.target)}})),i(this,"zRotate",((e,t)=>(this._rotationMatrix.makeRotationAxis(this._rotationAxis,t),this._translationMatrix.makeTranslation(-e.x,-e.y,-e.z),this._m4_1.makeTranslation(e.x,e.y,e.z),this._m4_1.multiply(this._rotationMatrix),this._m4_1.multiply(this._translationMatrix),this._v3_1.setFromMatrixPosition(this._gizmoMatrixState).sub(e),this._v3_2.copy(this._v3_1).applyAxisAngle(this._rotationAxis,t),this._v3_2.sub(this._v3_1),this._m4_2.makeTranslation(this._v3_2.x,this._v3_2.y,this._v3_2.z),this.setTransformationMatrices(this._m4_1,this._m4_2),c))),i(this,"unprojectOnObj",((e,t)=>{if(!this.scene)return null;const n=new s.Raycaster;n.near=t.near,n.far=t.far,n.setFromCamera(e,t);const r=n.intersectObjects(this.scene.children,!0);for(let i=0;i{if(e instanceof s.OrthographicCamera){this._v2_1.copy(this.getCursorPosition(t,n,r)),this._v3_1.set(this._v2_1.x,this._v2_1.y,0);const e=Math.pow(this._v2_1.x,2),i=Math.pow(this._v2_1.y,2),s=Math.pow(this._tbRadius,2);return e+i<=.5*s?this._v3_1.setZ(Math.sqrt(s-(e+i))):this._v3_1.setZ(.5*s/Math.sqrt(e+i)),this._v3_1}if(e instanceof s.PerspectiveCamera){this._v2_1.copy(this.getCursorNDC(t,n,r)),this._v3_1.set(this._v2_1.x,this._v2_1.y,-1),this._v3_1.applyMatrix4(e.projectionMatrixInverse);const a=this._v3_1.clone().normalize(),o=e.position.distanceTo(this._gizmos.position),l=Math.pow(i,2),c=this._v3_1.z,h=Math.sqrt(Math.pow(this._v3_1.x,2)+Math.pow(this._v3_1.y,2));if(0==h)return a.set(this._v3_1.x,this._v3_1.y,i),a;const u=c/h,d=o;let p=Math.pow(u,2)+1,f=2*u*d,m=Math.pow(d,2)-l,g=Math.pow(f,2)-4*p*m;if(g>=0){this._v2_1.setX((-f-Math.sqrt(g))/(2*p)),this._v2_1.setY(u*this._v2_1.x+d);if(s.MathUtils.RAD2DEG*this._v2_1.angle()>=45){const e=Math.sqrt(Math.pow(this._v2_1.x,2)+Math.pow(o-this._v2_1.y,2));return a.multiplyScalar(e),a.z+=o,a}}p=u,f=d,m=.5*-l,g=Math.pow(f,2)-4*p*m,this._v2_1.setX((-f-Math.sqrt(g))/(2*p)),this._v2_1.setY(u*this._v2_1.x+d);const A=Math.sqrt(Math.pow(this._v2_1.x,2)+Math.pow(o-this._v2_1.y,2));return a.multiplyScalar(A),a.z+=o,a}})),i(this,"unprojectOnTbPlane",((e,t,n,r,i=!1)=>{if(e instanceof s.OrthographicCamera)return this._v2_1.copy(this.getCursorPosition(t,n,r)),this._v3_1.set(this._v2_1.x,this._v2_1.y,0),this._v3_1.clone();if(e instanceof s.PerspectiveCamera){this._v2_1.copy(this.getCursorNDC(t,n,r)),this._v3_1.set(this._v2_1.x,this._v2_1.y,-1),this._v3_1.applyMatrix4(e.projectionMatrixInverse);const s=this._v3_1.clone().normalize(),a=this._v3_1.z,o=Math.sqrt(Math.pow(this._v3_1.x,2)+Math.pow(this._v3_1.y,2));let l;if(l=i?this._v3_1.setFromMatrixPosition(this._cameraMatrixState0).distanceTo(this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0)):e.position.distanceTo(this._gizmos.position),0==o)return s.set(0,0,0),s;const c=l,h=-c/(a/o),u=Math.sqrt(Math.pow(c,2)+Math.pow(h,2));return s.multiplyScalar(u),s.z=0,s}})),i(this,"updateMatrixState",(()=>{this.camera&&(this._cameraMatrixState.copy(this.camera.matrix),this._gizmoMatrixState.copy(this._gizmos.matrix),this.camera instanceof s.OrthographicCamera&&(this._cameraProjectionState.copy(this.camera.projectionMatrix),this.camera.updateProjectionMatrix(),this._zoomState=this.camera.zoom),this.camera instanceof s.PerspectiveCamera&&(this._fovState=this.camera.fov))})),i(this,"updateTbState",((e,t)=>{this._state=e,t&&this.updateMatrixState()})),i(this,"update",(()=>{const e=1e-6;if(!this.target.equals(this._currentTarget)&&this.camera){this._gizmos.position.set(this.target.x,this.target.y,this.target.z);const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e),this.makeGizmos(this.target,this._tbRadius),this._currentTarget.copy(this.target)}if(this.camera){if(this.camera instanceof s.OrthographicCamera&&(this.camera.zoom>this.maxZoom||this.camera.zoomthis.maxDistance+e||tthis.maxFov)&&(this.camera.fov=s.MathUtils.clamp(this.camera.fov,this.minFov,this.maxFov),this.camera.updateProjectionMatrix());const n=this._tbRadius,r=this.calculateTbRadius(this.camera);if(void 0!==r&&(this._tbRadius=r),nthis._tbRadius+e){const e=(this._gizmos.scale.x+this._gizmos.scale.y+this._gizmos.scale.z)/3,t=this._tbRadius/e,n=new s.EllipseCurve(0,0,t,t).getPoints(this._curvePts),r=(new s.BufferGeometry).setFromPoints(n);for(const i in this._gizmos.children){this._gizmos.children[i].geometry=r}}}this.camera.lookAt(this._gizmos.position)}})),i(this,"setStateFromJSON",(e=>{const t=JSON.parse(e);if(t.arcballState&&this.camera){this._cameraMatrixState.fromArray(t.arcballState.cameraMatrix.elements),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.up.copy(t.arcballState.cameraUp),this.camera.near=t.arcballState.cameraNear,this.camera.far=t.arcballState.cameraFar,this.camera.zoom=t.arcballState.cameraZoom,this.camera instanceof s.PerspectiveCamera&&(this.camera.fov=t.arcballState.cameraFov),this._gizmoMatrixState.fromArray(t.arcballState.gizmoMatrix.elements),this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.camera.updateMatrix(),this.camera.updateProjectionMatrix(),this._gizmos.updateMatrix();const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e);const n=(new s.Matrix4).copy(this._gizmoMatrixState0);this.makeGizmos(this._gizmos.position,this._tbRadius),this._gizmoMatrixState0.copy(n),this.camera.lookAt(this._gizmos.position),this.updateTbState(a.IDLE,!1),this.dispatchEvent(h)}})),this.camera=null,this.domElement=t,this.scene=n,this.mouseActions=[],this._mouseOp=null,this._v2_1=new s.Vector2,this._v3_1=new s.Vector3,this._v3_2=new s.Vector3,this._m4_1=new s.Matrix4,this._m4_2=new s.Matrix4,this._quat=new s.Quaternion,this._translationMatrix=new s.Matrix4,this._rotationMatrix=new s.Matrix4,this._scaleMatrix=new s.Matrix4,this._rotationAxis=new s.Vector3,this._cameraMatrixState=new s.Matrix4,this._cameraProjectionState=new s.Matrix4,this._fovState=1,this._upState=new s.Vector3,this._zoomState=1,this._nearPos=0,this._farPos=0,this._gizmoMatrixState=new s.Matrix4,this._up0=new s.Vector3,this._zoom0=1,this._fov0=0,this._initialNear=0,this._nearPos0=0,this._initialFar=0,this._farPos0=0,this._cameraMatrixState0=new s.Matrix4,this._gizmoMatrixState0=new s.Matrix4,this._button=-1,this._touchStart=[],this._touchCurrent=[],this._input=o.NONE,this._switchSensibility=32,this._startFingerDistance=0,this._currentFingerDistance=0,this._startFingerRotation=0,this._currentFingerRotation=0,this._devPxRatio=0,this._downValid=!0,this._nclicks=0,this._downEvents=[],this._clickStart=0,this._maxDownTime=250,this._maxInterval=300,this._posThreshold=24,this._movementThreshold=24,this._currentCursorPosition=new s.Vector3,this._startCursorPosition=new s.Vector3,this._grid=null,this._gridPosition=new s.Vector3,this._gizmos=new s.Group,this._curvePts=128,this._timeStart=-1,this._animationId=-1,this.focusAnimationTime=500,this._timePrev=0,this._timeCurrent=0,this._anglePrev=0,this._angleCurrent=0,this._cursorPosPrev=new s.Vector3,this._cursorPosCurr=new s.Vector3,this._wPrev=0,this._wCurr=0,this.adjustNearFar=!1,this.scaleFactor=1.1,this.dampingFactor=25,this.wMax=20,this.enableAnimations=!0,this.enableGrid=!1,this.cursorZoom=!1,this.minFov=5,this.maxFov=90,this.enabled=!0,this.enablePan=!0,this.enableRotate=!0,this.enableZoom=!0,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.target=new s.Vector3(0,0,0),this._currentTarget=new s.Vector3(0,0,0),this._tbRadius=1,this._state=a.IDLE,this.setCamera(e),this.scene&&this.scene.add(this._gizmos),this._devPxRatio=window.devicePixelRatio,this.initializeMouseActions(),this.domElement&&this.connect(this.domElement),window.addEventListener("resize",this.onWindowResize)}applyTransformMatrix(e){if((null==e?void 0:e.camera)&&this.camera&&(this._m4_1.copy(this._cameraMatrixState).premultiply(e.camera),this._m4_1.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.updateMatrix(),this._state!=a.ROTATE&&this._state!=a.ZROTATE&&this._state!=a.ANIMATION_ROTATE||this.camera.up.copy(this._upState).applyQuaternion(this.camera.quaternion)),(null==e?void 0:e.gizmos)&&(this._m4_1.copy(this._gizmoMatrixState).premultiply(e.gizmos),this._m4_1.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.updateMatrix()),(this._state==a.SCALE||this._state==a.FOCUS||this._state==a.ANIMATION_FOCUS)&&this.camera){const e=this.calculateTbRadius(this.camera);if(void 0!==e&&(this._tbRadius=e),this.adjustNearFar){const e=this.camera.position.distanceTo(this._gizmos.position),t=new s.Box3;t.setFromObject(this._gizmos);const n=new s.Sphere;t.getBoundingSphere(n);const r=Math.max(this._nearPos0,n.radius+n.center.length()),i=e-this._initialNear,a=Math.min(r,i);this.camera.near=e-a;const o=Math.min(this._farPos0,-n.radius+n.center.length()),l=e-this._initialFar,c=Math.min(o,l);this.camera.far=e-c,this.camera.updateProjectionMatrix()}else{let e=!1;this.camera.near!=this._initialNear&&(this.camera.near=this._initialNear,e=!0),this.camera.far!=this._initialFar&&(this.camera.far=this._initialFar,e=!0),e&&this.camera.updateProjectionMatrix()}}}setGizmosVisible(e){this._gizmos.visible=e,this.dispatchEvent(h)}setTransformationMatrices(e=null,t=null){e?c.camera?c.camera.copy(e):c.camera=e.clone():c.camera=null,t?c.gizmos?c.gizmos.copy(t):c.gizmos=t.clone():c.gizmos=null}}t.ArcballControls=p},97573:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);class a extends s.EventDispatcher{constructor(e){super(),i(this,"object"),i(this,"changeEvent",{type:"change"}),i(this,"EPS",1e-6),i(this,"enabled",!0),i(this,"deviceOrientation",{alpha:0,beta:0,gamma:0}),i(this,"screenOrientation",0),i(this,"alphaOffset",0),i(this,"onDeviceOrientationChangeEvent",(e=>{this.deviceOrientation=e})),i(this,"onScreenOrientationChangeEvent",(()=>{this.screenOrientation=window.orientation||0})),i(this,"zee",new s.Vector3(0,0,1)),i(this,"euler",new s.Euler),i(this,"q0",new s.Quaternion),i(this,"q1",new s.Quaternion(-Math.sqrt(.5),0,0,Math.sqrt(.5))),i(this,"setObjectQuaternion",((e,t,n,r,i)=>{this.euler.set(n,t,-r,"YXZ"),e.setFromEuler(this.euler),e.multiply(this.q1),e.multiply(this.q0.setFromAxisAngle(this.zee,-i))})),i(this,"connect",(()=>{this.onScreenOrientationChangeEvent(),void 0!==window.DeviceOrientationEvent&&"function"==typeof window.DeviceOrientationEvent.requestPermission?window.DeviceOrientationEvent.requestPermission().then((e=>{"granted"==e&&(window.addEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.addEventListener("deviceorientation",this.onDeviceOrientationChangeEvent))})).catch((e=>{console.error("THREE.DeviceOrientationControls: Unable to use DeviceOrientation API:",e)})):(window.addEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.addEventListener("deviceorientation",this.onDeviceOrientationChangeEvent)),this.enabled=!0})),i(this,"disconnect",(()=>{window.removeEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.removeEventListener("deviceorientation",this.onDeviceOrientationChangeEvent),this.enabled=!1})),i(this,"lastQuaternion",new s.Quaternion),i(this,"update",(()=>{if(!1===this.enabled)return;const e=this.deviceOrientation;if(e){const t=e.alpha?s.MathUtils.degToRad(e.alpha)+this.alphaOffset:0,n=e.beta?s.MathUtils.degToRad(e.beta):0,r=e.gamma?s.MathUtils.degToRad(e.gamma):0,i=this.screenOrientation?s.MathUtils.degToRad(this.screenOrientation):0;this.setObjectQuaternion(this.object.quaternion,t,n,r,i),8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS&&(this.lastQuaternion.copy(this.object.quaternion),this.dispatchEvent(this.changeEvent))}})),i(this,"dispose",(()=>this.disconnect())),this.object=e,this.object.rotation.reorder("YXZ"),this.connect()}}t.DeviceOrientationControls=a},45830:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);class a extends s.EventDispatcher{constructor(e,t,n){super(),i(this,"enabled",!0),i(this,"transformGroup",!1),i(this,"_objects"),i(this,"_camera"),i(this,"_domElement"),i(this,"_plane",new s.Plane),i(this,"_raycaster",new s.Raycaster),i(this,"_mouse",new s.Vector2),i(this,"_offset",new s.Vector3),i(this,"_intersection",new s.Vector3),i(this,"_worldPosition",new s.Vector3),i(this,"_inverseMatrix",new s.Matrix4),i(this,"_intersections",[]),i(this,"_selected",null),i(this,"_hovered",null),i(this,"activate",(()=>{this._domElement.addEventListener("pointermove",this.onPointerMove),this._domElement.addEventListener("pointerdown",this.onPointerDown),this._domElement.addEventListener("pointerup",this.onPointerCancel),this._domElement.addEventListener("pointerleave",this.onPointerCancel),this._domElement.addEventListener("touchmove",this.onTouchMove),this._domElement.addEventListener("touchstart",this.onTouchStart),this._domElement.addEventListener("touchend",this.onTouchEnd)})),i(this,"deactivate",(()=>{this._domElement.removeEventListener("pointermove",this.onPointerMove),this._domElement.removeEventListener("pointerdown",this.onPointerDown),this._domElement.removeEventListener("pointerup",this.onPointerCancel),this._domElement.removeEventListener("pointerleave",this.onPointerCancel),this._domElement.removeEventListener("touchmove",this.onTouchMove),this._domElement.removeEventListener("touchstart",this.onTouchStart),this._domElement.removeEventListener("touchend",this.onTouchEnd),this._domElement.style.cursor=""})),i(this,"dispose",(()=>this.deactivate())),i(this,"getObjects",(()=>this._objects)),i(this,"getRaycaster",(()=>this._raycaster)),i(this,"onMouseMove",(e=>{const t=this._domElement.getBoundingClientRect();if(this._mouse.x=(e.clientX-t.left)/t.width*2-1,this._mouse.y=-(e.clientY-t.top)/t.height*2+1,this._raycaster.setFromCamera(this._mouse,this._camera),this._selected&&this.enabled)return this._raycaster.ray.intersectPlane(this._plane,this._intersection)&&this._selected.position.copy(this._intersection.sub(this._offset).applyMatrix4(this._inverseMatrix)),void this.dispatchEvent({type:"drag",object:this._selected});if(this._intersections.length=0,this._raycaster.setFromCamera(this._mouse,this._camera),this._raycaster.intersectObjects(this._objects,!0,this._intersections),this._intersections.length>0){const e=this._intersections[0].object;this._plane.setFromNormalAndCoplanarPoint(this._camera.getWorldDirection(this._plane.normal),this._worldPosition.setFromMatrixPosition(e.matrixWorld)),this._hovered!==e&&(this.dispatchEvent({type:"hoveron",object:e}),this._domElement.style.cursor="pointer",this._hovered=e)}else null!==this._hovered&&(this.dispatchEvent({type:"hoveroff",object:this._hovered}),this._domElement.style.cursor="auto",this._hovered=null)})),i(this,"onMouseDown",(()=>{this._intersections.length=0,this._raycaster.setFromCamera(this._mouse,this._camera),this._raycaster.intersectObjects(this._objects,!0,this._intersections),this._intersections.length>0&&(this._selected=!0===this.transformGroup?this._objects[0]:this._intersections[0].object,this._raycaster.ray.intersectPlane(this._plane,this._intersection)&&this._selected.parent&&(this._inverseMatrix.copy(this._selected.parent.matrixWorld).invert(),this._offset.copy(this._intersection).sub(this._worldPosition.setFromMatrixPosition(this._selected.matrixWorld))),this._domElement.style.cursor="move",this.dispatchEvent({type:"dragstart",object:this._selected}))})),i(this,"onMouseCancel",(()=>{this._selected&&(this.dispatchEvent({type:"dragend",object:this._selected}),this._selected=null),this._domElement.style.cursor=this._hovered?"pointer":"auto"})),i(this,"onPointerMove",(e=>{switch(e.pointerType){case"mouse":case"pen":this.onMouseMove(e)}})),i(this,"onPointerDown",(e=>{switch(e.pointerType){case"mouse":case"pen":this.onMouseDown()}})),i(this,"onPointerCancel",(e=>{switch(e.pointerType){case"mouse":case"pen":this.onMouseCancel()}})),i(this,"onTouchMove",(e=>{e.preventDefault();const t=e.changedTouches[0],n=this._domElement.getBoundingClientRect();if(this._mouse.x=(t.clientX-n.left)/n.width*2-1,this._mouse.y=-(t.clientY-n.top)/n.height*2+1,this._raycaster.setFromCamera(this._mouse,this._camera),this._selected&&this.enabled)return this._raycaster.ray.intersectPlane(this._plane,this._intersection)&&this._selected.position.copy(this._intersection.sub(this._offset).applyMatrix4(this._inverseMatrix)),void this.dispatchEvent({type:"drag",object:this._selected})})),i(this,"onTouchStart",(e=>{e.preventDefault();const t=e.changedTouches[0],n=this._domElement.getBoundingClientRect();this._mouse.x=(t.clientX-n.left)/n.width*2-1,this._mouse.y=-(t.clientY-n.top)/n.height*2+1,this._intersections.length=0,this._raycaster.setFromCamera(this._mouse,this._camera),this._raycaster.intersectObjects(this._objects,!0,this._intersections),this._intersections.length>0&&(this._selected=!0===this.transformGroup?this._objects[0]:this._intersections[0].object,this._plane.setFromNormalAndCoplanarPoint(this._camera.getWorldDirection(this._plane.normal),this._worldPosition.setFromMatrixPosition(this._selected.matrixWorld)),this._raycaster.ray.intersectPlane(this._plane,this._intersection)&&this._selected.parent&&(this._inverseMatrix.copy(this._selected.parent.matrixWorld).invert(),this._offset.copy(this._intersection).sub(this._worldPosition.setFromMatrixPosition(this._selected.matrixWorld))),this._domElement.style.cursor="move",this.dispatchEvent({type:"dragstart",object:this._selected}))})),i(this,"onTouchEnd",(e=>{e.preventDefault(),this._selected&&(this.dispatchEvent({type:"dragend",object:this._selected}),this._selected=null),this._domElement.style.cursor="auto"})),this._objects=e,this._camera=t,this._domElement=n,this.activate()}}t.DragControls=a},53667:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=new s.Vector3;class o extends s.EventDispatcher{constructor(e,t){super(),i(this,"object"),i(this,"domElement"),i(this,"enabled",!0),i(this,"movementSpeed",1),i(this,"lookSpeed",.005),i(this,"lookVertical",!0),i(this,"autoForward",!1),i(this,"activeLook",!0),i(this,"heightSpeed",!1),i(this,"heightCoef",1),i(this,"heightMin",0),i(this,"heightMax",1),i(this,"constrainVertical",!1),i(this,"verticalMin",0),i(this,"verticalMax",Math.PI),i(this,"mouseDragOn",!1),i(this,"autoSpeedFactor",0),i(this,"mouseX",0),i(this,"mouseY",0),i(this,"moveForward",!1),i(this,"moveBackward",!1),i(this,"moveLeft",!1),i(this,"moveRight",!1),i(this,"moveUp",!1),i(this,"moveDown",!1),i(this,"viewHalfX",0),i(this,"viewHalfY",0),i(this,"lat",0),i(this,"lon",0),i(this,"lookDirection",new s.Vector3),i(this,"spherical",new s.Spherical),i(this,"target",new s.Vector3),i(this,"connect",(e=>{e.setAttribute("tabindex","-1"),e.style.touchAction="none",e.addEventListener("contextmenu",this.contextmenu),e.addEventListener("mousemove",this.onMouseMove),e.addEventListener("mousedown",this.onMouseDown),e.addEventListener("mouseup",this.onMouseUp),this.domElement=e,window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.handleResize()})),i(this,"dispose",(()=>{var e,t,n,r;null==(e=this.domElement)||e.removeEventListener("contextmenu",this.contextmenu),null==(t=this.domElement)||t.removeEventListener("mousedown",this.onMouseDown),null==(n=this.domElement)||n.removeEventListener("mousemove",this.onMouseMove),null==(r=this.domElement)||r.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp)})),i(this,"handleResize",(()=>{this.domElement&&(this.viewHalfX=this.domElement.offsetWidth/2,this.viewHalfY=this.domElement.offsetHeight/2)})),i(this,"onMouseDown",(e=>{var t;if(null==(t=this.domElement)||t.focus(),this.activeLook)switch(e.button){case 0:this.moveForward=!0;break;case 2:this.moveBackward=!0}this.mouseDragOn=!0})),i(this,"onMouseUp",(e=>{if(this.activeLook)switch(e.button){case 0:this.moveForward=!1;break;case 2:this.moveBackward=!1}this.mouseDragOn=!1})),i(this,"onMouseMove",(e=>{this.domElement&&(this.mouseX=e.pageX-this.domElement.offsetLeft-this.viewHalfX,this.mouseY=e.pageY-this.domElement.offsetTop-this.viewHalfY)})),i(this,"onKeyDown",(e=>{switch(e.code){case"ArrowUp":case"KeyW":this.moveForward=!0;break;case"ArrowLeft":case"KeyA":this.moveLeft=!0;break;case"ArrowDown":case"KeyS":this.moveBackward=!0;break;case"ArrowRight":case"KeyD":this.moveRight=!0;break;case"KeyR":this.moveUp=!0;break;case"KeyF":this.moveDown=!0}})),i(this,"onKeyUp",(e=>{switch(e.code){case"ArrowUp":case"KeyW":this.moveForward=!1;break;case"ArrowLeft":case"KeyA":this.moveLeft=!1;break;case"ArrowDown":case"KeyS":this.moveBackward=!1;break;case"ArrowRight":case"KeyD":this.moveRight=!1;break;case"KeyR":this.moveUp=!1;break;case"KeyF":this.moveDown=!1}})),i(this,"lookAt",((e,t,n)=>(e instanceof s.Vector3?this.target.copy(e):t&&n&&this.target.set(e,t,n),this.object.lookAt(this.target),this.setOrientation(),this))),i(this,"update",(e=>{if(!this.enabled)return;if(this.heightSpeed){const t=s.MathUtils.clamp(this.object.position.y,this.heightMin,this.heightMax)-this.heightMin;this.autoSpeedFactor=e*(t*this.heightCoef)}else this.autoSpeedFactor=0;const t=e*this.movementSpeed;(this.moveForward||this.autoForward&&!this.moveBackward)&&this.object.translateZ(-(t+this.autoSpeedFactor)),this.moveBackward&&this.object.translateZ(t),this.moveLeft&&this.object.translateX(-t),this.moveRight&&this.object.translateX(t),this.moveUp&&this.object.translateY(t),this.moveDown&&this.object.translateY(-t);let n=e*this.lookSpeed;this.activeLook||(n=0);let r=1;this.constrainVertical&&(r=Math.PI/(this.verticalMax-this.verticalMin)),this.lon-=this.mouseX*n,this.lookVertical&&(this.lat-=this.mouseY*n*r),this.lat=Math.max(-85,Math.min(85,this.lat));let i=s.MathUtils.degToRad(90-this.lat);const o=s.MathUtils.degToRad(this.lon);this.constrainVertical&&(i=s.MathUtils.mapLinear(i,0,Math.PI,this.verticalMin,this.verticalMax));const l=this.object.position;a.setFromSphericalCoords(1,i,o).add(l),this.object.lookAt(a)})),i(this,"contextmenu",(e=>e.preventDefault())),i(this,"setOrientation",(()=>{this.lookDirection.set(0,0,-1).applyQuaternion(this.object.quaternion),this.spherical.setFromVector3(this.lookDirection),this.lat=90-s.MathUtils.radToDeg(this.spherical.phi),this.lon=s.MathUtils.radToDeg(this.spherical.theta)})),this.object=e,this.domElement=t,this.setOrientation(),t&&this.connect(t)}}t.FirstPersonControls=o},49888:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);function a(e){e.preventDefault()}class o extends s.EventDispatcher{constructor(e,t){super(),i(this,"object"),i(this,"domElement",null),i(this,"movementSpeed",1),i(this,"rollSpeed",.005),i(this,"dragToLook",!1),i(this,"autoForward",!1),i(this,"changeEvent",{type:"change"}),i(this,"EPS",1e-6),i(this,"tmpQuaternion",new s.Quaternion),i(this,"mouseStatus",0),i(this,"movementSpeedMultiplier",1),i(this,"moveState",{up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0}),i(this,"moveVector",new s.Vector3(0,0,0)),i(this,"rotationVector",new s.Vector3(0,0,0)),i(this,"keydown",(e=>{if(!e.altKey){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this.moveState.forward=1;break;case"KeyS":this.moveState.back=1;break;case"KeyA":this.moveState.left=1;break;case"KeyD":this.moveState.right=1;break;case"KeyR":this.moveState.up=1;break;case"KeyF":this.moveState.down=1;break;case"ArrowUp":this.moveState.pitchUp=1;break;case"ArrowDown":this.moveState.pitchDown=1;break;case"ArrowLeft":this.moveState.yawLeft=1;break;case"ArrowRight":this.moveState.yawRight=1;break;case"KeyQ":this.moveState.rollLeft=1;break;case"KeyE":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}})),i(this,"keyup",(e=>{switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this.moveState.forward=0;break;case"KeyS":this.moveState.back=0;break;case"KeyA":this.moveState.left=0;break;case"KeyD":this.moveState.right=0;break;case"KeyR":this.moveState.up=0;break;case"KeyF":this.moveState.down=0;break;case"ArrowUp":this.moveState.pitchUp=0;break;case"ArrowDown":this.moveState.pitchDown=0;break;case"ArrowLeft":this.moveState.yawLeft=0;break;case"ArrowRight":this.moveState.yawRight=0;break;case"KeyQ":this.moveState.rollLeft=0;break;case"KeyE":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()})),i(this,"pointerdown",(e=>{if(this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}})),i(this,"pointermove",(e=>{if(!this.dragToLook||this.mouseStatus>0){const t=this.getContainerDimensions(),n=t.size[0]/2,r=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-n)/n,this.moveState.pitchDown=(e.pageY-t.offset[1]-r)/r,this.updateRotationVector()}})),i(this,"pointerup",(e=>{if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()})),i(this,"lastQuaternion",new s.Quaternion),i(this,"lastPosition",new s.Vector3),i(this,"update",(e=>{const t=e*this.movementSpeed,n=e*this.rollSpeed;this.object.translateX(this.moveVector.x*t),this.object.translateY(this.moveVector.y*t),this.object.translateZ(this.moveVector.z*t),this.tmpQuaternion.set(this.rotationVector.x*n,this.rotationVector.y*n,this.rotationVector.z*n,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS)&&(this.dispatchEvent(this.changeEvent),this.lastQuaternion.copy(this.object.quaternion),this.lastPosition.copy(this.object.position))})),i(this,"updateMovementVector",(()=>{const e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back})),i(this,"updateRotationVector",(()=>{this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft})),i(this,"getContainerDimensions",(()=>this.domElement==document||this.domElement instanceof Document?{size:[window.innerWidth,window.innerHeight],offset:[0,0]}:{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]})),i(this,"connect",(e=>{this.domElement=e,!e||e instanceof Document||e.setAttribute("tabindex",-1),this.domElement.addEventListener("contextmenu",a),this.domElement.addEventListener("pointermove",this.pointermove),this.domElement.addEventListener("pointerdown",this.pointerdown),this.domElement.addEventListener("pointerup",this.pointerup),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup)})),i(this,"dispose",(()=>{this.domElement.removeEventListener("contextmenu",a),this.domElement.removeEventListener("pointermove",this.pointermove),this.domElement.removeEventListener("pointerdown",this.pointerdown),this.domElement.removeEventListener("pointerup",this.pointerup),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup)})),this.object=e,void 0!==t&&this.connect(t),this.updateMovementVector(),this.updateRotationVector()}}t.FlyControls=o},78122:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=new s.Ray,o=new s.Plane,l=Math.cos(Math.PI/180*70),c=(e,t)=>(e%t+t)%t;class h extends s.EventDispatcher{constructor(e,t){super(),i(this,"object"),i(this,"domElement"),i(this,"enabled",!0),i(this,"target",new s.Vector3),i(this,"minDistance",0),i(this,"maxDistance",1/0),i(this,"minZoom",0),i(this,"maxZoom",1/0),i(this,"minPolarAngle",0),i(this,"maxPolarAngle",Math.PI),i(this,"minAzimuthAngle",-1/0),i(this,"maxAzimuthAngle",1/0),i(this,"enableDamping",!1),i(this,"dampingFactor",.05),i(this,"enableZoom",!0),i(this,"zoomSpeed",1),i(this,"enableRotate",!0),i(this,"rotateSpeed",1),i(this,"enablePan",!0),i(this,"panSpeed",1),i(this,"screenSpacePanning",!0),i(this,"keyPanSpeed",7),i(this,"zoomToCursor",!1),i(this,"autoRotate",!1),i(this,"autoRotateSpeed",2),i(this,"reverseOrbit",!1),i(this,"reverseHorizontalOrbit",!1),i(this,"reverseVerticalOrbit",!1),i(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),i(this,"mouseButtons",{LEFT:s.MOUSE.ROTATE,MIDDLE:s.MOUSE.DOLLY,RIGHT:s.MOUSE.PAN}),i(this,"touches",{ONE:s.TOUCH.ROTATE,TWO:s.TOUCH.DOLLY_PAN}),i(this,"target0"),i(this,"position0"),i(this,"zoom0"),i(this,"_domElementKeyEvents",null),i(this,"getPolarAngle"),i(this,"getAzimuthalAngle"),i(this,"setPolarAngle"),i(this,"setAzimuthalAngle"),i(this,"getDistance"),i(this,"listenToKeyEvents"),i(this,"stopListenToKeyEvents"),i(this,"saveState"),i(this,"reset"),i(this,"update"),i(this,"connect"),i(this,"dispose"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>m.phi,this.getAzimuthalAngle=()=>m.theta,this.setPolarAngle=e=>{let t=c(e,2*Math.PI),r=m.phi;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-r);2*Math.PI-i{let t=c(e,2*Math.PI),r=m.theta;r<0&&(r+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-r);2*Math.PI-in.object.position.distanceTo(n.target),this.listenToKeyEvents=e=>{e.addEventListener("keydown",ne),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",ne),this._domElementKeyEvents=null},this.saveState=()=>{n.target0.copy(n.target),n.position0.copy(n.object.position),n.zoom0=n.object.zoom},this.reset=()=>{n.target.copy(n.target0),n.object.position.copy(n.position0),n.object.zoom=n.zoom0,n.object.updateProjectionMatrix(),n.dispatchEvent(r),n.update(),p=d.NONE},this.update=(()=>{const t=new s.Vector3,i=new s.Vector3(0,1,0),c=(new s.Quaternion).setFromUnitVectors(e.up,i),h=c.clone().invert(),u=new s.Vector3,y=new s.Quaternion,x=2*Math.PI;return function(){const b=n.object.position;c.setFromUnitVectors(e.up,i),h.copy(c).invert(),t.copy(b).sub(n.target),t.applyQuaternion(c),m.setFromVector3(t),n.autoRotate&&p===d.NONE&&L(2*Math.PI/60/60*n.autoRotateSpeed),n.enableDamping?(m.theta+=g.theta*n.dampingFactor,m.phi+=g.phi*n.dampingFactor):(m.theta+=g.theta,m.phi+=g.phi);let E=n.minAzimuthAngle,_=n.maxAzimuthAngle;isFinite(E)&&isFinite(_)&&(E<-Math.PI?E+=x:E>Math.PI&&(E-=x),_<-Math.PI?_+=x:_>Math.PI&&(_-=x),m.theta=E<=_?Math.max(E,Math.min(_,m.theta)):m.theta>(E+_)/2?Math.max(E,m.theta):Math.min(_,m.theta)),m.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,m.phi)),m.makeSafe(),!0===n.enableDamping?n.target.addScaledVector(v,n.dampingFactor):n.target.add(v),n.zoomToCursor&&B||n.object.isOrthographicCamera?m.radius=Q(m.radius):m.radius=Q(m.radius*A),t.setFromSpherical(m),t.applyQuaternion(h),b.copy(n.target).add(t),n.object.lookAt(n.target),!0===n.enableDamping?(g.theta*=1-n.dampingFactor,g.phi*=1-n.dampingFactor,v.multiplyScalar(1-n.dampingFactor)):(g.set(0,0,0),v.set(0,0,0));let S=!1;if(n.zoomToCursor&&B){let r=null;if(n.object instanceof s.PerspectiveCamera&&n.object.isPerspectiveCamera){const e=t.length();r=Q(e*A);const i=e-r;n.object.position.addScaledVector(T,i),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const e=new s.Vector3(I.x,I.y,0);e.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/A)),n.object.updateProjectionMatrix(),S=!0;const i=new s.Vector3(I.x,I.y,0);i.unproject(n.object),n.object.position.sub(i).add(e),n.object.updateMatrixWorld(),r=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;null!==r&&(n.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(r).add(n.object.position):(a.origin.copy(n.object.position),a.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(a.direction))f||8*(1-y.dot(n.object.quaternion))>f)&&(n.dispatchEvent(r),u.copy(n.object.position),y.copy(n.object.quaternion),S=!1,!0)}})(),this.connect=e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),n.domElement=e,n.domElement.style.touchAction="none",n.domElement.addEventListener("contextmenu",re),n.domElement.addEventListener("pointerdown",J),n.domElement.addEventListener("pointercancel",ee),n.domElement.addEventListener("wheel",te)},this.dispose=()=>{var e,t,r,i,s,a;null==(e=n.domElement)||e.removeEventListener("contextmenu",re),null==(t=n.domElement)||t.removeEventListener("pointerdown",J),null==(r=n.domElement)||r.removeEventListener("pointercancel",ee),null==(i=n.domElement)||i.removeEventListener("wheel",te),null==(s=n.domElement)||s.ownerDocument.removeEventListener("pointermove",Z),null==(a=n.domElement)||a.ownerDocument.removeEventListener("pointerup",$),null!==n._domElementKeyEvents&&n._domElementKeyEvents.removeEventListener("keydown",ne)};const n=this,r={type:"change"},h={type:"start"},u={type:"end"},d={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let p=d.NONE;const f=1e-6,m=new s.Spherical,g=new s.Spherical;let A=1;const v=new s.Vector3,y=new s.Vector2,x=new s.Vector2,b=new s.Vector2,E=new s.Vector2,_=new s.Vector2,S=new s.Vector2,w=new s.Vector2,M=new s.Vector2,C=new s.Vector2,T=new s.Vector3,I=new s.Vector2;let B=!1;const R=[],P={};function D(){return Math.pow(.95,n.zoomSpeed)}function L(e){n.reverseOrbit||n.reverseHorizontalOrbit?g.theta+=e:g.theta-=e}function F(e){n.reverseOrbit||n.reverseVerticalOrbit?g.phi+=e:g.phi-=e}const U=(()=>{const e=new s.Vector3;return function(t,n){e.setFromMatrixColumn(n,0),e.multiplyScalar(-t),v.add(e)}})(),O=(()=>{const e=new s.Vector3;return function(t,r){!0===n.screenSpacePanning?e.setFromMatrixColumn(r,1):(e.setFromMatrixColumn(r,0),e.crossVectors(n.object.up,e)),e.multiplyScalar(t),v.add(e)}})(),N=(()=>{const e=new s.Vector3;return function(t,r){const i=n.domElement;if(i&&n.object instanceof s.PerspectiveCamera&&n.object.isPerspectiveCamera){const s=n.object.position;e.copy(s).sub(n.target);let a=e.length();a*=Math.tan(n.object.fov/2*Math.PI/180),U(2*t*a/i.clientHeight,n.object.matrix),O(2*r*a/i.clientHeight,n.object.matrix)}else i&&n.object instanceof s.OrthographicCamera&&n.object.isOrthographicCamera?(U(t*(n.object.right-n.object.left)/n.object.zoom/i.clientWidth,n.object.matrix),O(r*(n.object.top-n.object.bottom)/n.object.zoom/i.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}})();function k(e){n.object instanceof s.PerspectiveCamera&&n.object.isPerspectiveCamera||n.object instanceof s.OrthographicCamera&&n.object.isOrthographicCamera?A/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function G(e){n.object instanceof s.PerspectiveCamera&&n.object.isPerspectiveCamera||n.object instanceof s.OrthographicCamera&&n.object.isOrthographicCamera?A*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function z(e){if(!n.zoomToCursor||!n.domElement)return;B=!0;const t=n.domElement.getBoundingClientRect(),r=e.clientX-t.left,i=e.clientY-t.top,s=t.width,a=t.height;I.x=r/s*2-1,I.y=-i/a*2+1,T.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function Q(e){return Math.max(n.minDistance,Math.min(n.maxDistance,e))}function V(e){y.set(e.clientX,e.clientY)}function H(e){E.set(e.clientX,e.clientY)}function j(){if(1==R.length)y.set(R[0].pageX,R[0].pageY);else{const e=.5*(R[0].pageX+R[1].pageX),t=.5*(R[0].pageY+R[1].pageY);y.set(e,t)}}function W(){if(1==R.length)E.set(R[0].pageX,R[0].pageY);else{const e=.5*(R[0].pageX+R[1].pageX),t=.5*(R[0].pageY+R[1].pageY);E.set(e,t)}}function X(){const e=R[0].pageX-R[1].pageX,t=R[0].pageY-R[1].pageY,n=Math.sqrt(e*e+t*t);w.set(0,n)}function Y(e){if(1==R.length)x.set(e.pageX,e.pageY);else{const t=ae(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);x.set(n,r)}b.subVectors(x,y).multiplyScalar(n.rotateSpeed);const t=n.domElement;t&&(L(2*Math.PI*b.x/t.clientHeight),F(2*Math.PI*b.y/t.clientHeight)),y.copy(x)}function q(e){if(1==R.length)_.set(e.pageX,e.pageY);else{const t=ae(e),n=.5*(e.pageX+t.x),r=.5*(e.pageY+t.y);_.set(n,r)}S.subVectors(_,E).multiplyScalar(n.panSpeed),N(S.x,S.y),E.copy(_)}function K(e){const t=ae(e),r=e.pageX-t.x,i=e.pageY-t.y,s=Math.sqrt(r*r+i*i);M.set(0,s),C.set(0,Math.pow(M.y/w.y,n.zoomSpeed)),k(C.y),w.copy(M)}function J(e){var t,r;!1!==n.enabled&&(0===R.length&&(null==(t=n.domElement)||t.ownerDocument.addEventListener("pointermove",Z),null==(r=n.domElement)||r.ownerDocument.addEventListener("pointerup",$)),function(e){R.push(e)}(e),"touch"===e.pointerType?function(e){switch(se(e),R.length){case 1:switch(n.touches.ONE){case s.TOUCH.ROTATE:if(!1===n.enableRotate)return;j(),p=d.TOUCH_ROTATE;break;case s.TOUCH.PAN:if(!1===n.enablePan)return;W(),p=d.TOUCH_PAN;break;default:p=d.NONE}break;case 2:switch(n.touches.TWO){case s.TOUCH.DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;n.enableZoom&&X(),n.enablePan&&W(),p=d.TOUCH_DOLLY_PAN;break;case s.TOUCH.DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;n.enableZoom&&X(),n.enableRotate&&j(),p=d.TOUCH_DOLLY_ROTATE;break;default:p=d.NONE}break;default:p=d.NONE}p!==d.NONE&&n.dispatchEvent(h)}(e):function(e){let t;switch(e.button){case 0:t=n.mouseButtons.LEFT;break;case 1:t=n.mouseButtons.MIDDLE;break;case 2:t=n.mouseButtons.RIGHT;break;default:t=-1}switch(t){case s.MOUSE.DOLLY:if(!1===n.enableZoom)return;!function(e){z(e),w.set(e.clientX,e.clientY)}(e),p=d.DOLLY;break;case s.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enablePan)return;H(e),p=d.PAN}else{if(!1===n.enableRotate)return;V(e),p=d.ROTATE}break;case s.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===n.enableRotate)return;V(e),p=d.ROTATE}else{if(!1===n.enablePan)return;H(e),p=d.PAN}break;default:p=d.NONE}p!==d.NONE&&n.dispatchEvent(h)}(e))}function Z(e){!1!==n.enabled&&("touch"===e.pointerType?function(e){switch(se(e),p){case d.TOUCH_ROTATE:if(!1===n.enableRotate)return;Y(e),n.update();break;case d.TOUCH_PAN:if(!1===n.enablePan)return;q(e),n.update();break;case d.TOUCH_DOLLY_PAN:if(!1===n.enableZoom&&!1===n.enablePan)return;!function(e){n.enableZoom&&K(e),n.enablePan&&q(e)}(e),n.update();break;case d.TOUCH_DOLLY_ROTATE:if(!1===n.enableZoom&&!1===n.enableRotate)return;!function(e){n.enableZoom&&K(e),n.enableRotate&&Y(e)}(e),n.update();break;default:p=d.NONE}}(e):function(e){if(!1===n.enabled)return;switch(p){case d.ROTATE:if(!1===n.enableRotate)return;!function(e){x.set(e.clientX,e.clientY),b.subVectors(x,y).multiplyScalar(n.rotateSpeed);const t=n.domElement;t&&(L(2*Math.PI*b.x/t.clientHeight),F(2*Math.PI*b.y/t.clientHeight)),y.copy(x),n.update()}(e);break;case d.DOLLY:if(!1===n.enableZoom)return;!function(e){M.set(e.clientX,e.clientY),C.subVectors(M,w),C.y>0?k(D()):C.y<0&&G(D()),w.copy(M),n.update()}(e);break;case d.PAN:if(!1===n.enablePan)return;!function(e){_.set(e.clientX,e.clientY),S.subVectors(_,E).multiplyScalar(n.panSpeed),N(S.x,S.y),E.copy(_),n.update()}(e)}}(e))}function $(e){var t,r,i;ie(e),0===R.length&&(null==(t=n.domElement)||t.releasePointerCapture(e.pointerId),null==(r=n.domElement)||r.ownerDocument.removeEventListener("pointermove",Z),null==(i=n.domElement)||i.ownerDocument.removeEventListener("pointerup",$)),n.dispatchEvent(u),p=d.NONE}function ee(e){ie(e)}function te(e){!1===n.enabled||!1===n.enableZoom||p!==d.NONE&&p!==d.ROTATE||(e.preventDefault(),n.dispatchEvent(h),function(e){z(e),e.deltaY<0?G(D()):e.deltaY>0&&k(D()),n.update()}(e),n.dispatchEvent(u))}function ne(e){!1!==n.enabled&&!1!==n.enablePan&&function(e){let t=!1;switch(e.code){case n.keys.UP:N(0,n.keyPanSpeed),t=!0;break;case n.keys.BOTTOM:N(0,-n.keyPanSpeed),t=!0;break;case n.keys.LEFT:N(n.keyPanSpeed,0),t=!0;break;case n.keys.RIGHT:N(-n.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),n.update())}(e)}function re(e){!1!==n.enabled&&e.preventDefault()}function ie(e){delete P[e.pointerId];for(let t=0;t{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=new s.Euler(0,0,0,"YXZ"),o=new s.Vector3,l={type:"change"},c={type:"lock"},h={type:"unlock"},u=Math.PI/2;class d extends s.EventDispatcher{constructor(e,t){super(),i(this,"camera"),i(this,"domElement"),i(this,"isLocked"),i(this,"minPolarAngle"),i(this,"maxPolarAngle"),i(this,"pointerSpeed"),i(this,"onMouseMove",(e=>{if(!this.domElement||!1===this.isLocked)return;const t=e.movementX||e.mozMovementX||e.webkitMovementX||0,n=e.movementY||e.mozMovementY||e.webkitMovementY||0;a.setFromQuaternion(this.camera.quaternion),a.y-=.002*t*this.pointerSpeed,a.x-=.002*n*this.pointerSpeed,a.x=Math.max(u-this.maxPolarAngle,Math.min(u-this.minPolarAngle,a.x)),this.camera.quaternion.setFromEuler(a),this.dispatchEvent(l)})),i(this,"onPointerlockChange",(()=>{this.domElement&&(this.domElement.ownerDocument.pointerLockElement===this.domElement?(this.dispatchEvent(c),this.isLocked=!0):(this.dispatchEvent(h),this.isLocked=!1))})),i(this,"onPointerlockError",(()=>{console.error("THREE.PointerLockControls: Unable to use Pointer Lock API")})),i(this,"connect",(e=>{this.domElement=e||this.domElement,this.domElement&&(this.domElement.ownerDocument.addEventListener("mousemove",this.onMouseMove),this.domElement.ownerDocument.addEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.addEventListener("pointerlockerror",this.onPointerlockError))})),i(this,"disconnect",(()=>{this.domElement&&(this.domElement.ownerDocument.removeEventListener("mousemove",this.onMouseMove),this.domElement.ownerDocument.removeEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.removeEventListener("pointerlockerror",this.onPointerlockError))})),i(this,"dispose",(()=>{this.disconnect()})),i(this,"getObject",(()=>this.camera)),i(this,"direction",new s.Vector3(0,0,-1)),i(this,"getDirection",(e=>e.copy(this.direction).applyQuaternion(this.camera.quaternion))),i(this,"moveForward",(e=>{o.setFromMatrixColumn(this.camera.matrix,0),o.crossVectors(this.camera.up,o),this.camera.position.addScaledVector(o,e)})),i(this,"moveRight",(e=>{o.setFromMatrixColumn(this.camera.matrix,0),this.camera.position.addScaledVector(o,e)})),i(this,"lock",(()=>{this.domElement&&this.domElement.requestPointerLock()})),i(this,"unlock",(()=>{this.domElement&&this.domElement.ownerDocument.exitPointerLock()})),this.camera=e,this.domElement=t,this.isLocked=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.pointerSpeed=1,t&&this.connect(t)}}t.PointerLockControls=d},46603:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);class a extends s.EventDispatcher{constructor(e,t){super(),i(this,"enabled",!0),i(this,"screen",{left:0,top:0,width:0,height:0}),i(this,"rotateSpeed",1),i(this,"zoomSpeed",1.2),i(this,"panSpeed",.3),i(this,"noRotate",!1),i(this,"noZoom",!1),i(this,"noPan",!1),i(this,"staticMoving",!1),i(this,"dynamicDampingFactor",.2),i(this,"minDistance",0),i(this,"maxDistance",1/0),i(this,"keys",["KeyA","KeyS","KeyD"]),i(this,"mouseButtons",{LEFT:s.MOUSE.ROTATE,MIDDLE:s.MOUSE.DOLLY,RIGHT:s.MOUSE.PAN}),i(this,"object"),i(this,"domElement"),i(this,"cursorZoom",!1),i(this,"target",new s.Vector3),i(this,"mousePosition",new s.Vector2),i(this,"STATE",{NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4}),i(this,"EPS",1e-6),i(this,"lastZoom",1),i(this,"lastPosition",new s.Vector3),i(this,"cursorVector",new s.Vector3),i(this,"targetVector",new s.Vector3),i(this,"_state",this.STATE.NONE),i(this,"_keyState",this.STATE.NONE),i(this,"_eye",new s.Vector3),i(this,"_movePrev",new s.Vector2),i(this,"_moveCurr",new s.Vector2),i(this,"_lastAxis",new s.Vector3),i(this,"_lastAngle",0),i(this,"_zoomStart",new s.Vector2),i(this,"_zoomEnd",new s.Vector2),i(this,"_touchZoomDistanceStart",0),i(this,"_touchZoomDistanceEnd",0),i(this,"_panStart",new s.Vector2),i(this,"_panEnd",new s.Vector2),i(this,"target0"),i(this,"position0"),i(this,"up0"),i(this,"zoom0"),i(this,"changeEvent",{type:"change"}),i(this,"startEvent",{type:"start"}),i(this,"endEvent",{type:"end"}),i(this,"onScreenVector",new s.Vector2),i(this,"getMouseOnScreen",((e,t)=>(this.onScreenVector.set((e-this.screen.left)/this.screen.width,(t-this.screen.top)/this.screen.height),this.onScreenVector))),i(this,"onCircleVector",new s.Vector2),i(this,"getMouseOnCircle",((e,t)=>(this.onCircleVector.set((e-.5*this.screen.width-this.screen.left)/(.5*this.screen.width),(this.screen.height+2*(this.screen.top-t))/this.screen.width),this.onCircleVector))),i(this,"axis",new s.Vector3),i(this,"quaternion",new s.Quaternion),i(this,"eyeDirection",new s.Vector3),i(this,"objectUpDirection",new s.Vector3),i(this,"objectSidewaysDirection",new s.Vector3),i(this,"moveDirection",new s.Vector3),i(this,"angle",0),i(this,"rotateCamera",(()=>{this.moveDirection.set(this._moveCurr.x-this._movePrev.x,this._moveCurr.y-this._movePrev.y,0),this.angle=this.moveDirection.length(),this.angle?(this._eye.copy(this.object.position).sub(this.target),this.eyeDirection.copy(this._eye).normalize(),this.objectUpDirection.copy(this.object.up).normalize(),this.objectSidewaysDirection.crossVectors(this.objectUpDirection,this.eyeDirection).normalize(),this.objectUpDirection.setLength(this._moveCurr.y-this._movePrev.y),this.objectSidewaysDirection.setLength(this._moveCurr.x-this._movePrev.x),this.moveDirection.copy(this.objectUpDirection.add(this.objectSidewaysDirection)),this.axis.crossVectors(this.moveDirection,this._eye).normalize(),this.angle*=this.rotateSpeed,this.quaternion.setFromAxisAngle(this.axis,this.angle),this._eye.applyQuaternion(this.quaternion),this.object.up.applyQuaternion(this.quaternion),this._lastAxis.copy(this.axis),this._lastAngle=this.angle):!this.staticMoving&&this._lastAngle&&(this._lastAngle*=Math.sqrt(1-this.dynamicDampingFactor),this._eye.copy(this.object.position).sub(this.target),this.quaternion.setFromAxisAngle(this._lastAxis,this._lastAngle),this._eye.applyQuaternion(this.quaternion),this.object.up.applyQuaternion(this.quaternion)),this._movePrev.copy(this._moveCurr)})),i(this,"zoomCamera",(()=>{let e;if(this._state===this.STATE.TOUCH_ZOOM_PAN)e=this._touchZoomDistanceStart/this._touchZoomDistanceEnd,this._touchZoomDistanceStart=this._touchZoomDistanceEnd,this.object.isPerspectiveCamera?this._eye.multiplyScalar(e):this.object.isOrthographicCamera?(this.object.zoom/=e,this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type");else{if(e=1+(this._zoomEnd.y-this._zoomStart.y)*this.zoomSpeed,Math.abs(e-1)>this.EPS&&e>0&&(this.object.isPerspectiveCamera?(e>1&&this._eye.length()>=this.maxDistance-this.EPS&&(e=1),this._eye.multiplyScalar(e)):this.object.isOrthographicCamera?(e>1&&this.object.zoom{if(this.domElement&&(this.mouseChange.copy(this._panEnd).sub(this._panStart),this.mouseChange.lengthSq()>this.EPS)){if(this.object.isOrthographicCamera){const e=this.object,t=(e.right-e.left)/this.object.zoom,n=(e.top-e.bottom)/this.object.zoom;this.mouseChange.x*=t,this.mouseChange.y*=n}else this.mouseChange.multiplyScalar(this._eye.length()*this.panSpeed);this.pan.copy(this._eye).cross(this.object.up).setLength(this.mouseChange.x),this.pan.add(this.objectUp.copy(this.object.up).setLength(this.mouseChange.y)),this.object.position.add(this.pan),this.target.add(this.pan),this.staticMoving?this._panStart.copy(this._panEnd):this._panStart.add(this.mouseChange.subVectors(this._panEnd,this._panStart).multiplyScalar(this.dynamicDampingFactor))}})),i(this,"checkDistances",(()=>{this.noZoom&&this.noPan||(this._eye.lengthSq()>this.maxDistance*this.maxDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.maxDistance)),this._zoomStart.copy(this._zoomEnd)),this._eye.lengthSq(){if(!this.domElement)return;const e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height})),i(this,"update",(()=>{this._eye.subVectors(this.object.position,this.target),this.noRotate||this.rotateCamera(),this.noZoom||this.zoomCamera(),this.noPan||this.panCamera(),this.object.position.addVectors(this.target,this._eye),this.object.isPerspectiveCamera?(this.checkDistances(),this.object.lookAt(this.target),this.lastPosition.distanceToSquared(this.object.position)>this.EPS&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position))):this.object.isOrthographicCamera?(this.object.lookAt(this.target),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||this.lastZoom!==this.object.zoom)&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastZoom=this.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type")})),i(this,"reset",(()=>{this._state=this.STATE.NONE,this._keyState=this.STATE.NONE,this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.up.copy(this.up0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this._eye.subVectors(this.object.position,this.target),this.object.lookAt(this.target),this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastZoom=this.object.zoom})),i(this,"keydown",(e=>{!1!==this.enabled&&(window.removeEventListener("keydown",this.keydown),this._keyState===this.STATE.NONE&&(e.code!==this.keys[this.STATE.ROTATE]||this.noRotate?e.code!==this.keys[this.STATE.ZOOM]||this.noZoom?e.code!==this.keys[this.STATE.PAN]||this.noPan||(this._keyState=this.STATE.PAN):this._keyState=this.STATE.ZOOM:this._keyState=this.STATE.ROTATE))})),i(this,"onPointerDown",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseDown(e)}})),i(this,"onPointerMove",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseMove(e)}})),i(this,"onPointerUp",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseUp()}})),i(this,"keyup",(()=>{!1!==this.enabled&&(this._keyState=this.STATE.NONE,window.addEventListener("keydown",this.keydown))})),i(this,"onMouseDown",(e=>{if(!this.domElement)return;if(this._state===this.STATE.NONE)switch(e.button){case this.mouseButtons.LEFT:this._state=this.STATE.ROTATE;break;case this.mouseButtons.MIDDLE:this._state=this.STATE.ZOOM;break;case this.mouseButtons.RIGHT:this._state=this.STATE.PAN;break;default:this._state=this.STATE.NONE}const t=this._keyState!==this.STATE.NONE?this._keyState:this._state;t!==this.STATE.ROTATE||this.noRotate?t!==this.STATE.ZOOM||this.noZoom?t!==this.STATE.PAN||this.noPan||(this._panStart.copy(this.getMouseOnScreen(e.pageX,e.pageY)),this._panEnd.copy(this._panStart)):(this._zoomStart.copy(this.getMouseOnScreen(e.pageX,e.pageY)),this._zoomEnd.copy(this._zoomStart)):(this._moveCurr.copy(this.getMouseOnCircle(e.pageX,e.pageY)),this._movePrev.copy(this._moveCurr)),this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),this.dispatchEvent(this.startEvent)})),i(this,"onMouseMove",(e=>{if(!1===this.enabled)return;const t=this._keyState!==this.STATE.NONE?this._keyState:this._state;t!==this.STATE.ROTATE||this.noRotate?t!==this.STATE.ZOOM||this.noZoom?t!==this.STATE.PAN||this.noPan||this._panEnd.copy(this.getMouseOnScreen(e.pageX,e.pageY)):this._zoomEnd.copy(this.getMouseOnScreen(e.pageX,e.pageY)):(this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this.getMouseOnCircle(e.pageX,e.pageY)))})),i(this,"onMouseUp",(()=>{this.domElement&&!1!==this.enabled&&(this._state=this.STATE.NONE,this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),this.dispatchEvent(this.endEvent))})),i(this,"mousewheel",(e=>{if(!1!==this.enabled&&!0!==this.noZoom){switch(e.preventDefault(),e.deltaMode){case 2:this._zoomStart.y-=.025*e.deltaY;break;case 1:this._zoomStart.y-=.01*e.deltaY;break;default:this._zoomStart.y-=25e-5*e.deltaY}this.mousePosition.x=e.offsetX/this.screen.width*2-1,this.mousePosition.y=-e.offsetY/this.screen.height*2+1,this.dispatchEvent(this.startEvent),this.dispatchEvent(this.endEvent)}})),i(this,"touchstart",(e=>{if(!1!==this.enabled){if(e.preventDefault(),1===e.touches.length)this._state=this.STATE.TOUCH_ROTATE,this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY)),this._movePrev.copy(this._moveCurr);else{this._state=this.STATE.TOUCH_ZOOM_PAN;const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;this._touchZoomDistanceEnd=this._touchZoomDistanceStart=Math.sqrt(t*t+n*n);const r=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;this._panStart.copy(this.getMouseOnScreen(r,i)),this._panEnd.copy(this._panStart)}this.dispatchEvent(this.startEvent)}})),i(this,"touchmove",(e=>{if(!1!==this.enabled)if(e.preventDefault(),1===e.touches.length)this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY));else{const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY;this._touchZoomDistanceEnd=Math.sqrt(t*t+n*n);const r=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;this._panEnd.copy(this.getMouseOnScreen(r,i))}})),i(this,"touchend",(e=>{if(!1!==this.enabled){switch(e.touches.length){case 0:this._state=this.STATE.NONE;break;case 1:this._state=this.STATE.TOUCH_ROTATE,this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY)),this._movePrev.copy(this._moveCurr)}this.dispatchEvent(this.endEvent)}})),i(this,"contextmenu",(e=>{!1!==this.enabled&&e.preventDefault()})),i(this,"connect",(e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.addEventListener("contextmenu",this.contextmenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("wheel",this.mousewheel),this.domElement.addEventListener("touchstart",this.touchstart),this.domElement.addEventListener("touchend",this.touchend),this.domElement.addEventListener("touchmove",this.touchmove),this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup),this.handleResize()})),i(this,"dispose",(()=>{this.domElement&&(this.domElement.removeEventListener("contextmenu",this.contextmenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("wheel",this.mousewheel),this.domElement.removeEventListener("touchstart",this.touchstart),this.domElement.removeEventListener("touchend",this.touchend),this.domElement.removeEventListener("touchmove",this.touchmove),this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup))})),this.object=e,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,void 0!==t&&this.connect(t),this.update()}}t.TrackballControls=a},3442:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);class a extends s.Object3D{constructor(e,t){super(),i(this,"isTransformControls",!0),i(this,"visible",!1),i(this,"domElement"),i(this,"raycaster",new s.Raycaster),i(this,"gizmo"),i(this,"plane"),i(this,"tempVector",new s.Vector3),i(this,"tempVector2",new s.Vector3),i(this,"tempQuaternion",new s.Quaternion),i(this,"unit",{X:new s.Vector3(1,0,0),Y:new s.Vector3(0,1,0),Z:new s.Vector3(0,0,1)}),i(this,"pointStart",new s.Vector3),i(this,"pointEnd",new s.Vector3),i(this,"offset",new s.Vector3),i(this,"rotationAxis",new s.Vector3),i(this,"startNorm",new s.Vector3),i(this,"endNorm",new s.Vector3),i(this,"rotationAngle",0),i(this,"cameraPosition",new s.Vector3),i(this,"cameraQuaternion",new s.Quaternion),i(this,"cameraScale",new s.Vector3),i(this,"parentPosition",new s.Vector3),i(this,"parentQuaternion",new s.Quaternion),i(this,"parentQuaternionInv",new s.Quaternion),i(this,"parentScale",new s.Vector3),i(this,"worldPositionStart",new s.Vector3),i(this,"worldQuaternionStart",new s.Quaternion),i(this,"worldScaleStart",new s.Vector3),i(this,"worldPosition",new s.Vector3),i(this,"worldQuaternion",new s.Quaternion),i(this,"worldQuaternionInv",new s.Quaternion),i(this,"worldScale",new s.Vector3),i(this,"eye",new s.Vector3),i(this,"positionStart",new s.Vector3),i(this,"quaternionStart",new s.Quaternion),i(this,"scaleStart",new s.Vector3),i(this,"camera"),i(this,"object"),i(this,"enabled",!0),i(this,"axis",null),i(this,"mode","translate"),i(this,"translationSnap",null),i(this,"rotationSnap",null),i(this,"scaleSnap",null),i(this,"space","world"),i(this,"size",1),i(this,"dragging",!1),i(this,"showX",!0),i(this,"showY",!0),i(this,"showZ",!0),i(this,"changeEvent",{type:"change"}),i(this,"mouseDownEvent",{type:"mouseDown",mode:this.mode}),i(this,"mouseUpEvent",{type:"mouseUp",mode:this.mode}),i(this,"objectChangeEvent",{type:"objectChange"}),i(this,"intersectObjectWithRay",((e,t,n)=>{const r=t.intersectObject(e,!0);for(let i=0;i(this.object=e,this.visible=!0,this))),i(this,"detach",(()=>(this.object=void 0,this.visible=!1,this.axis=null,this))),i(this,"reset",(()=>this.enabled?(this.dragging&&void 0!==this.object&&(this.object.position.copy(this.positionStart),this.object.quaternion.copy(this.quaternionStart),this.object.scale.copy(this.scaleStart),this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent),this.pointStart.copy(this.pointEnd)),this):this)),i(this,"updateMatrixWorld",(()=>{void 0!==this.object&&(this.object.updateMatrixWorld(),null===this.object.parent?console.error("TransformControls: The attached 3D object must be a part of the scene graph."):this.object.parent.matrixWorld.decompose(this.parentPosition,this.parentQuaternion,this.parentScale),this.object.matrixWorld.decompose(this.worldPosition,this.worldQuaternion,this.worldScale),this.parentQuaternionInv.copy(this.parentQuaternion).invert(),this.worldQuaternionInv.copy(this.worldQuaternion).invert()),this.camera.updateMatrixWorld(),this.camera.matrixWorld.decompose(this.cameraPosition,this.cameraQuaternion,this.cameraScale),this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(),super.updateMatrixWorld()})),i(this,"pointerHover",(e=>{if(void 0===this.object||!0===this.dragging)return;this.raycaster.setFromCamera(e,this.camera);const t=this.intersectObjectWithRay(this.gizmo.picker[this.mode],this.raycaster);this.axis=t?t.object.name:null})),i(this,"pointerDown",(e=>{if(void 0!==this.object&&!0!==this.dragging&&0===e.button&&null!==this.axis){this.raycaster.setFromCamera(e,this.camera);const t=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(t){let e=this.space;if("scale"===this.mode?e="local":"E"!==this.axis&&"XYZE"!==this.axis&&"XYZ"!==this.axis||(e="world"),"local"===e&&"rotate"===this.mode){const e=this.rotationSnap;"X"===this.axis&&e&&(this.object.rotation.x=Math.round(this.object.rotation.x/e)*e),"Y"===this.axis&&e&&(this.object.rotation.y=Math.round(this.object.rotation.y/e)*e),"Z"===this.axis&&e&&(this.object.rotation.z=Math.round(this.object.rotation.z/e)*e)}this.object.updateMatrixWorld(),this.object.parent&&this.object.parent.updateMatrixWorld(),this.positionStart.copy(this.object.position),this.quaternionStart.copy(this.object.quaternion),this.scaleStart.copy(this.object.scale),this.object.matrixWorld.decompose(this.worldPositionStart,this.worldQuaternionStart,this.worldScaleStart),this.pointStart.copy(t.point).sub(this.worldPositionStart)}this.dragging=!0,this.mouseDownEvent.mode=this.mode,this.dispatchEvent(this.mouseDownEvent)}})),i(this,"pointerMove",(e=>{const t=this.axis,n=this.mode,r=this.object;let i=this.space;if("scale"===n?i="local":"E"!==t&&"XYZE"!==t&&"XYZ"!==t||(i="world"),void 0===r||null===t||!1===this.dragging||-1!==e.button)return;this.raycaster.setFromCamera(e,this.camera);const s=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(s){if(this.pointEnd.copy(s.point).sub(this.worldPositionStart),"translate"===n)this.offset.copy(this.pointEnd).sub(this.pointStart),"local"===i&&"XYZ"!==t&&this.offset.applyQuaternion(this.worldQuaternionInv),-1===t.indexOf("X")&&(this.offset.x=0),-1===t.indexOf("Y")&&(this.offset.y=0),-1===t.indexOf("Z")&&(this.offset.z=0),"local"===i&&"XYZ"!==t?this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale):this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale),r.position.copy(this.offset).add(this.positionStart),this.translationSnap&&("local"===i&&(r.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert()),-1!==t.search("X")&&(r.position.x=Math.round(r.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(r.position.y=Math.round(r.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(r.position.z=Math.round(r.position.z/this.translationSnap)*this.translationSnap),r.position.applyQuaternion(this.quaternionStart)),"world"===i&&(r.parent&&r.position.add(this.tempVector.setFromMatrixPosition(r.parent.matrixWorld)),-1!==t.search("X")&&(r.position.x=Math.round(r.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(r.position.y=Math.round(r.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(r.position.z=Math.round(r.position.z/this.translationSnap)*this.translationSnap),r.parent&&r.position.sub(this.tempVector.setFromMatrixPosition(r.parent.matrixWorld))));else if("scale"===n){if(-1!==t.search("XYZ")){let e=this.pointEnd.length()/this.pointStart.length();this.pointEnd.dot(this.pointStart)<0&&(e*=-1),this.tempVector2.set(e,e,e)}else this.tempVector.copy(this.pointStart),this.tempVector2.copy(this.pointEnd),this.tempVector.applyQuaternion(this.worldQuaternionInv),this.tempVector2.applyQuaternion(this.worldQuaternionInv),this.tempVector2.divide(this.tempVector),-1===t.search("X")&&(this.tempVector2.x=1),-1===t.search("Y")&&(this.tempVector2.y=1),-1===t.search("Z")&&(this.tempVector2.z=1);r.scale.copy(this.scaleStart).multiply(this.tempVector2),this.scaleSnap&&this.object&&(-1!==t.search("X")&&(this.object.scale.x=Math.round(r.scale.x/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Y")&&(r.scale.y=Math.round(r.scale.y/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Z")&&(r.scale.z=Math.round(r.scale.z/this.scaleSnap)*this.scaleSnap||this.scaleSnap))}else if("rotate"===n){this.offset.copy(this.pointEnd).sub(this.pointStart);const e=20/this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld));"E"===t?(this.rotationAxis.copy(this.eye),this.rotationAngle=this.pointEnd.angleTo(this.pointStart),this.startNorm.copy(this.pointStart).normalize(),this.endNorm.copy(this.pointEnd).normalize(),this.rotationAngle*=this.endNorm.cross(this.startNorm).dot(this.eye)<0?1:-1):"XYZE"===t?(this.rotationAxis.copy(this.offset).cross(this.eye).normalize(),this.rotationAngle=this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye))*e):"X"!==t&&"Y"!==t&&"Z"!==t||(this.rotationAxis.copy(this.unit[t]),this.tempVector.copy(this.unit[t]),"local"===i&&this.tempVector.applyQuaternion(this.worldQuaternion),this.rotationAngle=this.offset.dot(this.tempVector.cross(this.eye).normalize())*e),this.rotationSnap&&(this.rotationAngle=Math.round(this.rotationAngle/this.rotationSnap)*this.rotationSnap),"local"===i&&"E"!==t&&"XYZE"!==t?(r.quaternion.copy(this.quaternionStart),r.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)).normalize()):(this.rotationAxis.applyQuaternion(this.parentQuaternionInv),r.quaternion.copy(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)),r.quaternion.multiply(this.quaternionStart).normalize())}this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent)}})),i(this,"pointerUp",(e=>{0===e.button&&(this.dragging&&null!==this.axis&&(this.mouseUpEvent.mode=this.mode,this.dispatchEvent(this.mouseUpEvent)),this.dragging=!1,this.axis=null)})),i(this,"getPointer",(e=>{var t,n;if(this.domElement&&(null==(t=this.domElement.ownerDocument)?void 0:t.pointerLockElement))return{x:0,y:0,button:e.button};{const t=e.changedTouches?e.changedTouches[0]:e,r=null==(n=this.domElement)?void 0:n.getBoundingClientRect();return{x:(t.clientX-r.left)/r.width*2-1,y:-(t.clientY-r.top)/r.height*2+1,button:e.button}}})),i(this,"onPointerHover",(e=>{if(this.enabled)switch(e.pointerType){case"mouse":case"pen":this.pointerHover(this.getPointer(e))}})),i(this,"onPointerDown",(e=>{this.enabled&&this.domElement&&(this.domElement.style.touchAction="none",this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.pointerHover(this.getPointer(e)),this.pointerDown(this.getPointer(e)))})),i(this,"onPointerMove",(e=>{this.enabled&&this.pointerMove(this.getPointer(e))})),i(this,"onPointerUp",(e=>{this.enabled&&this.domElement&&(this.domElement.style.touchAction="",this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.pointerUp(this.getPointer(e)))})),i(this,"getMode",(()=>this.mode)),i(this,"setMode",(e=>{this.mode=e})),i(this,"setTranslationSnap",(e=>{this.translationSnap=e})),i(this,"setRotationSnap",(e=>{this.rotationSnap=e})),i(this,"setScaleSnap",(e=>{this.scaleSnap=e})),i(this,"setSize",(e=>{this.size=e})),i(this,"setSpace",(e=>{this.space=e})),i(this,"update",(()=>{console.warn("THREE.TransformControls: update function has no more functionality and therefore has been deprecated.")})),i(this,"connect",(e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointermove",this.onPointerHover),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp)})),i(this,"dispose",(()=>{var e,t,n,r,i,s;null==(e=this.domElement)||e.removeEventListener("pointerdown",this.onPointerDown),null==(t=this.domElement)||t.removeEventListener("pointermove",this.onPointerHover),null==(r=null==(n=this.domElement)?void 0:n.ownerDocument)||r.removeEventListener("pointermove",this.onPointerMove),null==(s=null==(i=this.domElement)?void 0:i.ownerDocument)||s.removeEventListener("pointerup",this.onPointerUp),this.traverse((e=>{const t=e;t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}))})),this.domElement=t,this.camera=e,this.gizmo=new o,this.add(this.gizmo),this.plane=new l,this.add(this.plane);const n=(e,t)=>{let n=t;Object.defineProperty(this,e,{get:function(){return void 0!==n?n:t},set:function(t){n!==t&&(n=t,this.plane[e]=t,this.gizmo[e]=t,this.dispatchEvent({type:e+"-changed",value:t}),this.dispatchEvent(this.changeEvent))}}),this[e]=t,this.plane[e]=t,this.gizmo[e]=t};n("camera",this.camera),n("object",this.object),n("enabled",this.enabled),n("axis",this.axis),n("mode",this.mode),n("translationSnap",this.translationSnap),n("rotationSnap",this.rotationSnap),n("scaleSnap",this.scaleSnap),n("space",this.space),n("size",this.size),n("dragging",this.dragging),n("showX",this.showX),n("showY",this.showY),n("showZ",this.showZ),n("worldPosition",this.worldPosition),n("worldPositionStart",this.worldPositionStart),n("worldQuaternion",this.worldQuaternion),n("worldQuaternionStart",this.worldQuaternionStart),n("cameraPosition",this.cameraPosition),n("cameraQuaternion",this.cameraQuaternion),n("pointStart",this.pointStart),n("pointEnd",this.pointEnd),n("rotationAxis",this.rotationAxis),n("rotationAngle",this.rotationAngle),n("eye",this.eye),void 0!==t&&this.connect(t)}}class o extends s.Object3D{constructor(){super(),i(this,"isTransformControlsGizmo",!0),i(this,"type","TransformControlsGizmo"),i(this,"tempVector",new s.Vector3(0,0,0)),i(this,"tempEuler",new s.Euler),i(this,"alignVector",new s.Vector3(0,1,0)),i(this,"zeroVector",new s.Vector3(0,0,0)),i(this,"lookAtMatrix",new s.Matrix4),i(this,"tempQuaternion",new s.Quaternion),i(this,"tempQuaternion2",new s.Quaternion),i(this,"identityQuaternion",new s.Quaternion),i(this,"unitX",new s.Vector3(1,0,0)),i(this,"unitY",new s.Vector3(0,1,0)),i(this,"unitZ",new s.Vector3(0,0,1)),i(this,"gizmo"),i(this,"picker"),i(this,"helper"),i(this,"rotationAxis",new s.Vector3),i(this,"cameraPosition",new s.Vector3),i(this,"worldPositionStart",new s.Vector3),i(this,"worldQuaternionStart",new s.Quaternion),i(this,"worldPosition",new s.Vector3),i(this,"worldQuaternion",new s.Quaternion),i(this,"eye",new s.Vector3),i(this,"camera",null),i(this,"enabled",!0),i(this,"axis",null),i(this,"mode","translate"),i(this,"space","world"),i(this,"size",1),i(this,"dragging",!1),i(this,"showX",!0),i(this,"showY",!0),i(this,"showZ",!0),i(this,"updateMatrixWorld",(()=>{let e=this.space;"scale"===this.mode&&(e="local");const t="local"===e?this.worldQuaternion:this.identityQuaternion;this.gizmo.translate.visible="translate"===this.mode,this.gizmo.rotate.visible="rotate"===this.mode,this.gizmo.scale.visible="scale"===this.mode,this.helper.translate.visible="translate"===this.mode,this.helper.rotate.visible="rotate"===this.mode,this.helper.scale.visible="scale"===this.mode;let n=[];n=n.concat(this.picker[this.mode].children),n=n.concat(this.gizmo[this.mode].children),n=n.concat(this.helper[this.mode].children);for(let r=0;rn&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"Y"!==e.name&&"XYZY"!==e.name||Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>n&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"Z"!==e.name&&"XYZZ"!==e.name||Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>n&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"XY"===e.name&&Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye)).9&&(e.visible=!1)),"Y"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,0,Math.PI/2)),e.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>.9&&(e.visible=!1)),"Z"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),e.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>.9&&(e.visible=!1)),"XYZE"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),this.alignVector.copy(this.rotationAxis),e.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.zeroVector,this.alignVector,this.unitY)),e.quaternion.multiply(this.tempQuaternion),e.visible=this.dragging),"E"===this.axis&&(e.visible=!1)):"START"===e.name?(e.position.copy(this.worldPositionStart),e.visible=this.dragging):"END"===e.name?(e.position.copy(this.worldPosition),e.visible=this.dragging):"DELTA"===e.name?(e.position.copy(this.worldPositionStart),e.quaternion.copy(this.worldQuaternionStart),this.tempVector.set(1e-10,1e-10,1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1),this.tempVector.applyQuaternion(this.worldQuaternionStart.clone().invert()),e.scale.copy(this.tempVector),e.visible=this.dragging):(e.quaternion.copy(t),this.dragging?e.position.copy(this.worldPositionStart):e.position.copy(this.worldPosition),this.axis&&(e.visible=-1!==this.axis.search(e.name)))}super.updateMatrixWorld()}));const e=new s.MeshBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,side:s.DoubleSide,fog:!1,toneMapped:!1}),t=new s.LineBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,linewidth:1,fog:!1,toneMapped:!1}),n=e.clone();n.opacity=.15;const r=e.clone();r.opacity=.33;const a=e.clone();a.color.set(16711680);const o=e.clone();o.color.set(65280);const l=e.clone();l.color.set(255);const c=e.clone();c.opacity=.25;const h=c.clone();h.color.set(16776960);const u=c.clone();u.color.set(65535);const d=c.clone();d.color.set(16711935);e.clone().color.set(16776960);const p=t.clone();p.color.set(16711680);const f=t.clone();f.color.set(65280);const m=t.clone();m.color.set(255);const g=t.clone();g.color.set(65535);const A=t.clone();A.color.set(16711935);const v=t.clone();v.color.set(16776960);const y=t.clone();y.color.set(7895160);const x=v.clone();x.opacity=.25;const b=new s.CylinderGeometry(0,.05,.2,12,1,!1),E=new s.BoxGeometry(.125,.125,.125),_=new s.BufferGeometry;_.setAttribute("position",new s.Float32BufferAttribute([0,0,0,1,0,0],3));const S=(e,t)=>{const n=new s.BufferGeometry,r=[];for(let i=0;i<=64*t;++i)r.push(0,Math.cos(i/32*Math.PI)*e,Math.sin(i/32*Math.PI)*e);return n.setAttribute("position",new s.Float32BufferAttribute(r,3)),n},w={X:[[new s.Mesh(b,a),[1,0,0],[0,0,-Math.PI/2],null,"fwd"],[new s.Mesh(b,a),[1,0,0],[0,0,Math.PI/2],null,"bwd"],[new s.Line(_,p)]],Y:[[new s.Mesh(b,o),[0,1,0],null,null,"fwd"],[new s.Mesh(b,o),[0,1,0],[Math.PI,0,0],null,"bwd"],[new s.Line(_,f),null,[0,0,Math.PI/2]]],Z:[[new s.Mesh(b,l),[0,0,1],[Math.PI/2,0,0],null,"fwd"],[new s.Mesh(b,l),[0,0,1],[-Math.PI/2,0,0],null,"bwd"],[new s.Line(_,m),null,[0,-Math.PI/2,0]]],XYZ:[[new s.Mesh(new s.OctahedronGeometry(.1,0),c.clone()),[0,0,0],[0,0,0]]],XY:[[new s.Mesh(new s.PlaneGeometry(.295,.295),h.clone()),[.15,.15,0]],[new s.Line(_,v),[.18,.3,0],null,[.125,1,1]],[new s.Line(_,v),[.3,.18,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new s.Mesh(new s.PlaneGeometry(.295,.295),u.clone()),[0,.15,.15],[0,Math.PI/2,0]],[new s.Line(_,g),[0,.18,.3],[0,0,Math.PI/2],[.125,1,1]],[new s.Line(_,g),[0,.3,.18],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new s.Mesh(new s.PlaneGeometry(.295,.295),d.clone()),[.15,0,.15],[-Math.PI/2,0,0]],[new s.Line(_,A),[.18,0,.3],null,[.125,1,1]],[new s.Line(_,A),[.3,0,.18],[0,-Math.PI/2,0],[.125,1,1]]]},M={X:[[new s.Mesh(new s.CylinderGeometry(.2,0,1,4,1,!1),n),[.6,0,0],[0,0,-Math.PI/2]]],Y:[[new s.Mesh(new s.CylinderGeometry(.2,0,1,4,1,!1),n),[0,.6,0]]],Z:[[new s.Mesh(new s.CylinderGeometry(.2,0,1,4,1,!1),n),[0,0,.6],[Math.PI/2,0,0]]],XYZ:[[new s.Mesh(new s.OctahedronGeometry(.2,0),n)]],XY:[[new s.Mesh(new s.PlaneGeometry(.4,.4),n),[.2,.2,0]]],YZ:[[new s.Mesh(new s.PlaneGeometry(.4,.4),n),[0,.2,.2],[0,Math.PI/2,0]]],XZ:[[new s.Mesh(new s.PlaneGeometry(.4,.4),n),[.2,0,.2],[-Math.PI/2,0,0]]]},C={START:[[new s.Mesh(new s.OctahedronGeometry(.01,2),r),null,null,null,"helper"]],END:[[new s.Mesh(new s.OctahedronGeometry(.01,2),r),null,null,null,"helper"]],DELTA:[[new s.Line((()=>{const e=new s.BufferGeometry;return e.setAttribute("position",new s.Float32BufferAttribute([0,0,0,1,1,1],3)),e})(),r),null,null,null,"helper"]],X:[[new s.Line(_,r.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new s.Line(_,r.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new s.Line(_,r.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},T={X:[[new s.Line(S(1,.5),p)],[new s.Mesh(new s.OctahedronGeometry(.04,0),a),[0,0,.99],null,[1,3,1]]],Y:[[new s.Line(S(1,.5),f),null,[0,0,-Math.PI/2]],[new s.Mesh(new s.OctahedronGeometry(.04,0),o),[0,0,.99],null,[3,1,1]]],Z:[[new s.Line(S(1,.5),m),null,[0,Math.PI/2,0]],[new s.Mesh(new s.OctahedronGeometry(.04,0),l),[.99,0,0],null,[1,3,1]]],E:[[new s.Line(S(1.25,1),x),null,[0,Math.PI/2,0]],[new s.Mesh(new s.CylinderGeometry(.03,0,.15,4,1,!1),x),[1.17,0,0],[0,0,-Math.PI/2],[1,1,.001]],[new s.Mesh(new s.CylinderGeometry(.03,0,.15,4,1,!1),x),[-1.17,0,0],[0,0,Math.PI/2],[1,1,.001]],[new s.Mesh(new s.CylinderGeometry(.03,0,.15,4,1,!1),x),[0,-1.17,0],[Math.PI,0,0],[1,1,.001]],[new s.Mesh(new s.CylinderGeometry(.03,0,.15,4,1,!1),x),[0,1.17,0],[0,0,0],[1,1,.001]]],XYZE:[[new s.Line(S(1,1),y),null,[0,Math.PI/2,0]]]},I={AXIS:[[new s.Line(_,r.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]]},B={X:[[new s.Mesh(new s.TorusGeometry(1,.1,4,24),n),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new s.Mesh(new s.TorusGeometry(1,.1,4,24),n),[0,0,0],[Math.PI/2,0,0]]],Z:[[new s.Mesh(new s.TorusGeometry(1,.1,4,24),n),[0,0,0],[0,0,-Math.PI/2]]],E:[[new s.Mesh(new s.TorusGeometry(1.25,.1,2,24),n)]],XYZE:[[new s.Mesh(new s.SphereGeometry(.7,10,8),n)]]},R={X:[[new s.Mesh(E,a),[.8,0,0],[0,0,-Math.PI/2]],[new s.Line(_,p),null,null,[.8,1,1]]],Y:[[new s.Mesh(E,o),[0,.8,0]],[new s.Line(_,f),null,[0,0,Math.PI/2],[.8,1,1]]],Z:[[new s.Mesh(E,l),[0,0,.8],[Math.PI/2,0,0]],[new s.Line(_,m),null,[0,-Math.PI/2,0],[.8,1,1]]],XY:[[new s.Mesh(E,h),[.85,.85,0],null,[2,2,.2]],[new s.Line(_,v),[.855,.98,0],null,[.125,1,1]],[new s.Line(_,v),[.98,.855,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new s.Mesh(E,u),[0,.85,.85],null,[.2,2,2]],[new s.Line(_,g),[0,.855,.98],[0,0,Math.PI/2],[.125,1,1]],[new s.Line(_,g),[0,.98,.855],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new s.Mesh(E,d),[.85,0,.85],null,[2,.2,2]],[new s.Line(_,A),[.855,0,.98],null,[.125,1,1]],[new s.Line(_,A),[.98,0,.855],[0,-Math.PI/2,0],[.125,1,1]]],XYZX:[[new s.Mesh(new s.BoxGeometry(.125,.125,.125),c.clone()),[1.1,0,0]]],XYZY:[[new s.Mesh(new s.BoxGeometry(.125,.125,.125),c.clone()),[0,1.1,0]]],XYZZ:[[new s.Mesh(new s.BoxGeometry(.125,.125,.125),c.clone()),[0,0,1.1]]]},P={X:[[new s.Mesh(new s.CylinderGeometry(.2,0,.8,4,1,!1),n),[.5,0,0],[0,0,-Math.PI/2]]],Y:[[new s.Mesh(new s.CylinderGeometry(.2,0,.8,4,1,!1),n),[0,.5,0]]],Z:[[new s.Mesh(new s.CylinderGeometry(.2,0,.8,4,1,!1),n),[0,0,.5],[Math.PI/2,0,0]]],XY:[[new s.Mesh(E,n),[.85,.85,0],null,[3,3,.2]]],YZ:[[new s.Mesh(E,n),[0,.85,.85],null,[.2,3,3]]],XZ:[[new s.Mesh(E,n),[.85,0,.85],null,[3,.2,3]]],XYZX:[[new s.Mesh(new s.BoxGeometry(.2,.2,.2),n),[1.1,0,0]]],XYZY:[[new s.Mesh(new s.BoxGeometry(.2,.2,.2),n),[0,1.1,0]]],XYZZ:[[new s.Mesh(new s.BoxGeometry(.2,.2,.2),n),[0,0,1.1]]]},D={X:[[new s.Line(_,r.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new s.Line(_,r.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new s.Line(_,r.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},L=e=>{const t=new s.Object3D;for(let n in e)for(let r=e[n].length;r--;){const i=e[n][r][0].clone(),s=e[n][r][1],a=e[n][r][2],o=e[n][r][3],l=e[n][r][4];i.name=n,i.tag=l,s&&i.position.set(s[0],s[1],s[2]),a&&i.rotation.set(a[0],a[1],a[2]),o&&i.scale.set(o[0],o[1],o[2]),i.updateMatrix();const c=i.geometry.clone();c.applyMatrix4(i.matrix),i.geometry=c,i.renderOrder=1/0,i.position.set(0,0,0),i.rotation.set(0,0,0),i.scale.set(1,1,1),t.add(i)}return t};this.gizmo={},this.picker={},this.helper={},this.add(this.gizmo.translate=L(w)),this.add(this.gizmo.rotate=L(T)),this.add(this.gizmo.scale=L(R)),this.add(this.picker.translate=L(M)),this.add(this.picker.rotate=L(B)),this.add(this.picker.scale=L(P)),this.add(this.helper.translate=L(C)),this.add(this.helper.rotate=L(I)),this.add(this.helper.scale=L(D)),this.picker.translate.visible=!1,this.picker.rotate.visible=!1,this.picker.scale.visible=!1}}class l extends s.Mesh{constructor(){super(new s.PlaneGeometry(1e5,1e5,2,2),new s.MeshBasicMaterial({visible:!1,wireframe:!0,side:s.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1})),i(this,"isTransformControlsPlane",!0),i(this,"type","TransformControlsPlane"),i(this,"unitX",new s.Vector3(1,0,0)),i(this,"unitY",new s.Vector3(0,1,0)),i(this,"unitZ",new s.Vector3(0,0,1)),i(this,"tempVector",new s.Vector3),i(this,"dirVector",new s.Vector3),i(this,"alignVector",new s.Vector3),i(this,"tempMatrix",new s.Matrix4),i(this,"identityQuaternion",new s.Quaternion),i(this,"cameraQuaternion",new s.Quaternion),i(this,"worldPosition",new s.Vector3),i(this,"worldQuaternion",new s.Quaternion),i(this,"eye",new s.Vector3),i(this,"axis",null),i(this,"mode","translate"),i(this,"space","world"),i(this,"updateMatrixWorld",(()=>{let e=this.space;switch(this.position.copy(this.worldPosition),"scale"===this.mode&&(e="local"),this.unitX.set(1,0,0).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.unitY.set(0,1,0).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.unitZ.set(0,0,1).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.alignVector.copy(this.unitY),this.mode){case"translate":case"scale":switch(this.axis){case"X":this.alignVector.copy(this.eye).cross(this.unitX),this.dirVector.copy(this.unitX).cross(this.alignVector);break;case"Y":this.alignVector.copy(this.eye).cross(this.unitY),this.dirVector.copy(this.unitY).cross(this.alignVector);break;case"Z":this.alignVector.copy(this.eye).cross(this.unitZ),this.dirVector.copy(this.unitZ).cross(this.alignVector);break;case"XY":this.dirVector.copy(this.unitZ);break;case"YZ":this.dirVector.copy(this.unitX);break;case"XZ":this.alignVector.copy(this.unitZ),this.dirVector.copy(this.unitY);break;case"XYZ":case"E":this.dirVector.set(0,0,0)}break;default:this.dirVector.set(0,0,0)}0===this.dirVector.length()?this.quaternion.copy(this.cameraQuaternion):(this.tempMatrix.lookAt(this.tempVector.set(0,0,0),this.dirVector,this.alignVector),this.quaternion.setFromRotationMatrix(this.tempMatrix)),super.updateMatrixWorld()}))}}t.TransformControls=a,t.TransformControlsGizmo=o,t.TransformControlsPlane=l},60173:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};class o extends s.EventDispatcher{constructor(e,t){super(),i(this,"object"),i(this,"domElement"),i(this,"enabled",!0),i(this,"target",new s.Vector3),i(this,"trackball",!1),i(this,"minDistance",0),i(this,"maxDistance",1/0),i(this,"minZoom",0),i(this,"maxZoom",1/0),i(this,"minPolarAngle",0),i(this,"maxPolarAngle",Math.PI),i(this,"minAzimuthAngle",-1/0),i(this,"maxAzimuthAngle",1/0),i(this,"enableDamping",!1),i(this,"dampingFactor",.05),i(this,"enableZoom",!0),i(this,"zoomSpeed",1),i(this,"enableRotate",!0),i(this,"rotateSpeed",1),i(this,"enablePan",!0),i(this,"panSpeed",1),i(this,"screenSpacePanning",!1),i(this,"keyPanSpeed",7),i(this,"autoRotate",!1),i(this,"autoRotateSpeed",2),i(this,"enableKeys",!0),i(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),i(this,"mouseButtons"),i(this,"touches",{ONE:s.TOUCH.ROTATE,TWO:s.TOUCH.DOLLY_PAN}),i(this,"target0"),i(this,"position0"),i(this,"quaternion0"),i(this,"zoom0"),i(this,"spherical",new s.Spherical),i(this,"sphericalDelta",new s.Spherical),i(this,"changeEvent",{type:"change"}),i(this,"startEvent",{type:"start"}),i(this,"endEvent",{type:"end"}),i(this,"state",a.NONE),i(this,"EPS",1e-6),i(this,"scale",1),i(this,"panOffset",new s.Vector3),i(this,"zoomChanged",!1),i(this,"rotateStart",new s.Vector2),i(this,"rotateEnd",new s.Vector2),i(this,"rotateDelta",new s.Vector2),i(this,"panStart",new s.Vector2),i(this,"panEnd",new s.Vector2),i(this,"panDelta",new s.Vector2),i(this,"dollyStart",new s.Vector2),i(this,"dollyEnd",new s.Vector2),i(this,"dollyDelta",new s.Vector2),i(this,"offset",new s.Vector3),i(this,"lastPosition",new s.Vector3),i(this,"lastQuaternion",new s.Quaternion),i(this,"q",new s.Quaternion),i(this,"v",new s.Vector3),i(this,"vec",new s.Vector3),i(this,"quat"),i(this,"quatInverse"),i(this,"getPolarAngle",(()=>this.spherical.phi)),i(this,"getAzimuthalAngle",(()=>this.spherical.theta)),i(this,"saveState",(()=>{this.target0.copy(this.target),this.position0.copy(this.object.position),this.quaternion0.copy(this.object.quaternion),this.zoom0=this.object.zoom})),i(this,"reset",(()=>{this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.quaternion.copy(this.quaternion0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(this.changeEvent),this.update(),this.state=a.NONE})),i(this,"dispose",(()=>{this.domElement.removeEventListener("contextmenu",this.onContextMenu,!1),this.domElement.removeEventListener("mousedown",this.onMouseDown,!1),this.domElement.removeEventListener("wheel",this.onMouseWheel,!1),this.domElement.removeEventListener("touchstart",this.onTouchStart,!1),this.domElement.removeEventListener("touchend",this.onTouchEnd,!1),this.domElement.removeEventListener("touchmove",this.onTouchMove,!1),document.removeEventListener("mousemove",this.onMouseMove,!1),document.removeEventListener("mouseup",this.onMouseUp,!1),this.domElement.removeEventListener("keydown",this.onKeyDown,!1)})),i(this,"update",(()=>{const e=this.object.position;if(this.offset.copy(e).sub(this.target),this.trackball){if(this.sphericalDelta.theta){this.vec.set(0,1,0).applyQuaternion(this.object.quaternion);const e=this.enableDamping?this.dampingFactor:1;this.q.setFromAxisAngle(this.vec,this.sphericalDelta.theta*e),this.object.quaternion.premultiply(this.q),this.offset.applyQuaternion(this.q)}if(this.sphericalDelta.phi){this.vec.set(1,0,0).applyQuaternion(this.object.quaternion);const e=this.enableDamping?this.dampingFactor:1;this.q.setFromAxisAngle(this.vec,this.sphericalDelta.phi*e),this.object.quaternion.premultiply(this.q),this.offset.applyQuaternion(this.q)}this.offset.multiplyScalar(this.scale),this.offset.clampLength(this.minDistance,this.maxDistance)}else this.offset.applyQuaternion(this.quat),this.autoRotate&&this.state===a.NONE&&this.rotateLeft(this.getAutoRotationAngle()),this.spherical.setFromVector3(this.offset),this.enableDamping?(this.spherical.theta+=this.sphericalDelta.theta*this.dampingFactor,this.spherical.phi+=this.sphericalDelta.phi*this.dampingFactor):(this.spherical.theta+=this.sphericalDelta.theta,this.spherical.phi+=this.sphericalDelta.phi),this.spherical.theta=Math.max(this.minAzimuthAngle,Math.min(this.maxAzimuthAngle,this.spherical.theta)),this.spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this.spherical.phi)),this.spherical.makeSafe(),this.spherical.radius*=this.scale,this.spherical.radius=Math.max(this.minDistance,Math.min(this.maxDistance,this.spherical.radius)),this.offset.setFromSpherical(this.spherical),this.offset.applyQuaternion(this.quatInverse);return!0===this.enableDamping?this.target.addScaledVector(this.panOffset,this.dampingFactor):this.target.add(this.panOffset),e.copy(this.target).add(this.offset),!1===this.trackball&&this.object.lookAt(this.target),!0===this.enableDamping?(this.sphericalDelta.theta*=1-this.dampingFactor,this.sphericalDelta.phi*=1-this.dampingFactor,this.panOffset.multiplyScalar(1-this.dampingFactor)):(this.sphericalDelta.set(0,0,0),this.panOffset.set(0,0,0)),this.scale=1,!!(this.zoomChanged||this.lastPosition.distanceToSquared(this.object.position)>this.EPS||8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS)&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastQuaternion.copy(this.object.quaternion),this.zoomChanged=!1,!0)})),i(this,"getAutoRotationAngle",(()=>2*Math.PI/60/60*this.autoRotateSpeed)),i(this,"getZoomScale",(()=>Math.pow(.95,this.zoomSpeed))),i(this,"rotateLeft",(e=>{this.sphericalDelta.theta-=e})),i(this,"rotateUp",(e=>{this.sphericalDelta.phi-=e})),i(this,"panLeft",((e,t)=>{this.v.setFromMatrixColumn(t,0),this.v.multiplyScalar(-e),this.panOffset.add(this.v)})),i(this,"panUp",((e,t)=>{!0===this.screenSpacePanning?this.v.setFromMatrixColumn(t,1):(this.v.setFromMatrixColumn(t,0),this.v.crossVectors(this.object.up,this.v)),this.v.multiplyScalar(e),this.panOffset.add(this.v)})),i(this,"pan",((e,t)=>{const n=this.domElement;if(this.object instanceof s.PerspectiveCamera){const r=this.object.position;this.offset.copy(r).sub(this.target);let i=this.offset.length();i*=Math.tan(this.object.fov/2*Math.PI/180),this.panLeft(2*e*i/n.clientHeight,this.object.matrix),this.panUp(2*t*i/n.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this.panLeft(e*(this.object.right-this.object.left)/this.object.zoom/n.clientWidth,this.object.matrix),this.panUp(t*(this.object.top-this.object.bottom)/this.object.zoom/n.clientHeight,this.object.matrix)):(console.warn("WARNING: CameraControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)})),i(this,"dollyIn",(e=>{this.object instanceof s.PerspectiveCamera?this.scale/=e:this.object instanceof s.OrthographicCamera?(this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom*e)),this.object.updateProjectionMatrix(),this.zoomChanged=!0):(console.warn("WARNING: CameraControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)})),i(this,"dollyOut",(e=>{this.object instanceof s.PerspectiveCamera?this.scale*=e:this.object instanceof s.OrthographicCamera?(this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/e)),this.object.updateProjectionMatrix(),this.zoomChanged=!0):(console.warn("WARNING: CameraControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)})),i(this,"handleMouseDownRotate",(e=>{this.rotateStart.set(e.clientX,e.clientY)})),i(this,"handleMouseDownDolly",(e=>{this.dollyStart.set(e.clientX,e.clientY)})),i(this,"handleMouseDownPan",(e=>{this.panStart.set(e.clientX,e.clientY)})),i(this,"handleMouseMoveRotate",(e=>{this.rotateEnd.set(e.clientX,e.clientY),this.rotateDelta.subVectors(this.rotateEnd,this.rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this.rotateLeft(2*Math.PI*this.rotateDelta.x/t.clientHeight),this.rotateUp(2*Math.PI*this.rotateDelta.y/t.clientHeight),this.rotateStart.copy(this.rotateEnd),this.update()})),i(this,"handleMouseMoveDolly",(e=>{this.dollyEnd.set(e.clientX,e.clientY),this.dollyDelta.subVectors(this.dollyEnd,this.dollyStart),this.dollyDelta.y>0?this.dollyIn(this.getZoomScale()):this.dollyDelta.y<0&&this.dollyOut(this.getZoomScale()),this.dollyStart.copy(this.dollyEnd),this.update()})),i(this,"handleMouseMovePan",(e=>{this.panEnd.set(e.clientX,e.clientY),this.panDelta.subVectors(this.panEnd,this.panStart).multiplyScalar(this.panSpeed),this.pan(this.panDelta.x,this.panDelta.y),this.panStart.copy(this.panEnd),this.update()})),i(this,"handleMouseWheel",(e=>{e.deltaY<0?this.dollyOut(this.getZoomScale()):e.deltaY>0&&this.dollyIn(this.getZoomScale()),this.update()})),i(this,"handleKeyDown",(e=>{let t=!1;switch(e.code){case this.keys.UP:this.pan(0,this.keyPanSpeed),t=!0;break;case this.keys.BOTTOM:this.pan(0,-this.keyPanSpeed),t=!0;break;case this.keys.LEFT:this.pan(this.keyPanSpeed,0),t=!0;break;case this.keys.RIGHT:this.pan(-this.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),this.update())})),i(this,"handleTouchStartRotate",(e=>{if(1==e.touches.length)this.rotateStart.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);this.rotateStart.set(t,n)}})),i(this,"handleTouchStartPan",(e=>{if(1==e.touches.length)this.panStart.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);this.panStart.set(t,n)}})),i(this,"handleTouchStartDolly",(e=>{const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,r=Math.sqrt(t*t+n*n);this.dollyStart.set(0,r)})),i(this,"handleTouchStartDollyPan",(e=>{this.enableZoom&&this.handleTouchStartDolly(e),this.enablePan&&this.handleTouchStartPan(e)})),i(this,"handleTouchStartDollyRotate",(e=>{this.enableZoom&&this.handleTouchStartDolly(e),this.enableRotate&&this.handleTouchStartRotate(e)})),i(this,"handleTouchMoveRotate",(e=>{if(1==e.touches.length)this.rotateEnd.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);this.rotateEnd.set(t,n)}this.rotateDelta.subVectors(this.rotateEnd,this.rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this.rotateLeft(2*Math.PI*this.rotateDelta.x/t.clientHeight),this.rotateUp(2*Math.PI*this.rotateDelta.y/t.clientHeight),this.rotateStart.copy(this.rotateEnd)})),i(this,"handleTouchMovePan",(e=>{if(1==e.touches.length)this.panEnd.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),n=.5*(e.touches[0].pageY+e.touches[1].pageY);this.panEnd.set(t,n)}this.panDelta.subVectors(this.panEnd,this.panStart).multiplyScalar(this.panSpeed),this.pan(this.panDelta.x,this.panDelta.y),this.panStart.copy(this.panEnd)})),i(this,"handleTouchMoveDolly",(e=>{const t=e.touches[0].pageX-e.touches[1].pageX,n=e.touches[0].pageY-e.touches[1].pageY,r=Math.sqrt(t*t+n*n);this.dollyEnd.set(0,r),this.dollyDelta.set(0,Math.pow(this.dollyEnd.y/this.dollyStart.y,this.zoomSpeed)),this.dollyIn(this.dollyDelta.y),this.dollyStart.copy(this.dollyEnd)})),i(this,"handleTouchMoveDollyPan",(e=>{this.enableZoom&&this.handleTouchMoveDolly(e),this.enablePan&&this.handleTouchMovePan(e)})),i(this,"handleTouchMoveDollyRotate",(e=>{this.enableZoom&&this.handleTouchMoveDolly(e),this.enableRotate&&this.handleTouchMoveRotate(e)})),i(this,"onMouseDown",(e=>{if(!1===this.enabled)return;let t;switch(e.preventDefault(),this.domElement.focus?this.domElement.focus():window.focus(),e.button){case 0:t=this.mouseButtons.LEFT;break;case 1:t=this.mouseButtons.MIDDLE;break;case 2:t=this.mouseButtons.RIGHT;break;default:t=-1}switch(t){case s.MOUSE.DOLLY:if(!1===this.enableZoom)return;this.handleMouseDownDolly(e),this.state=a.DOLLY;break;case s.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===this.enablePan)return;this.handleMouseDownPan(e),this.state=a.PAN}else{if(!1===this.enableRotate)return;this.handleMouseDownRotate(e),this.state=a.ROTATE}break;case s.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===this.enableRotate)return;this.handleMouseDownRotate(e),this.state=a.ROTATE}else{if(!1===this.enablePan)return;this.handleMouseDownPan(e),this.state=a.PAN}break;default:this.state=a.NONE}this.state!==a.NONE&&(document.addEventListener("mousemove",this.onMouseMove,!1),document.addEventListener("mouseup",this.onMouseUp,!1),this.dispatchEvent(this.startEvent))})),i(this,"onMouseMove",(e=>{if(!1!==this.enabled)switch(e.preventDefault(),this.state){case a.ROTATE:if(!1===this.enableRotate)return;this.handleMouseMoveRotate(e);break;case a.DOLLY:if(!1===this.enableZoom)return;this.handleMouseMoveDolly(e);break;case a.PAN:if(!1===this.enablePan)return;this.handleMouseMovePan(e)}})),i(this,"onMouseUp",(()=>{!1!==this.enabled&&(document.removeEventListener("mousemove",this.onMouseMove,!1),document.removeEventListener("mouseup",this.onMouseUp,!1),this.dispatchEvent(this.endEvent),this.state=a.NONE)})),i(this,"onMouseWheel",(e=>{!1===this.enabled||!1===this.enableZoom||this.state!==a.NONE&&this.state!==a.ROTATE||(e.preventDefault(),this.dispatchEvent(this.startEvent),this.handleMouseWheel(e),this.dispatchEvent(this.endEvent))})),i(this,"onKeyDown",(e=>{!1!==this.enabled&&!1!==this.enableKeys&&!1!==this.enablePan&&this.handleKeyDown(e)})),i(this,"onTouchStart",(e=>{if(!1!==this.enabled){switch(e.preventDefault(),e.touches.length){case 1:switch(this.touches.ONE){case s.TOUCH.ROTATE:if(!1===this.enableRotate)return;this.handleTouchStartRotate(e),this.state=a.TOUCH_ROTATE;break;case s.TOUCH.PAN:if(!1===this.enablePan)return;this.handleTouchStartPan(e),this.state=a.TOUCH_PAN;break;default:this.state=a.NONE}break;case 2:switch(this.touches.TWO){case s.TOUCH.DOLLY_PAN:if(!1===this.enableZoom&&!1===this.enablePan)return;this.handleTouchStartDollyPan(e),this.state=a.TOUCH_DOLLY_PAN;break;case s.TOUCH.DOLLY_ROTATE:if(!1===this.enableZoom&&!1===this.enableRotate)return;this.handleTouchStartDollyRotate(e),this.state=a.TOUCH_DOLLY_ROTATE;break;default:this.state=a.NONE}break;default:this.state=a.NONE}this.state!==a.NONE&&this.dispatchEvent(this.startEvent)}})),i(this,"onTouchMove",(e=>{if(!1!==this.enabled)switch(e.preventDefault(),this.state){case a.TOUCH_ROTATE:if(!1===this.enableRotate)return;this.handleTouchMoveRotate(e),this.update();break;case a.TOUCH_PAN:if(!1===this.enablePan)return;this.handleTouchMovePan(e),this.update();break;case a.TOUCH_DOLLY_PAN:if(!1===this.enableZoom&&!1===this.enablePan)return;this.handleTouchMoveDollyPan(e),this.update();break;case a.TOUCH_DOLLY_ROTATE:if(!1===this.enableZoom&&!1===this.enableRotate)return;this.handleTouchMoveDollyRotate(e),this.update();break;default:this.state=a.NONE}})),i(this,"onTouchEnd",(()=>{!1!==this.enabled&&(this.dispatchEvent(this.endEvent),this.state=a.NONE)})),i(this,"onContextMenu",(e=>{!1!==this.enabled&&e.preventDefault()})),void 0===t&&console.warn('THREE.CameraControls: The second parameter "domElement" is now mandatory.'),t instanceof Document&&console.error('THREE.CameraControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=e,this.domElement=t,this.mouseButtons={LEFT:s.MOUSE.ROTATE,MIDDLE:s.MOUSE.DOLLY,RIGHT:s.MOUSE.PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.quaternion0=this.object.quaternion.clone(),this.zoom0=this.object.zoom,this.quat=(new s.Quaternion).setFromUnitVectors(this.object.up,new s.Vector3(0,1,0)),this.quatInverse=this.quat.clone().invert(),this.lastPosition=new s.Vector3,this.lastQuaternion=new s.Quaternion,this.domElement.addEventListener("contextmenu",this.onContextMenu,!1),this.domElement.addEventListener("mousedown",this.onMouseDown,!1),this.domElement.addEventListener("wheel",this.onMouseWheel,!1),this.domElement.addEventListener("touchstart",this.onTouchStart,!1),this.domElement.addEventListener("touchend",this.onTouchEnd,!1),this.domElement.addEventListener("touchmove",this.onTouchMove,!1),this.domElement.addEventListener("keydown",this.onKeyDown,!1),-1===this.domElement.tabIndex&&(this.domElement.tabIndex=0),this.object.lookAt(this.target),this.update(),this.saveState()}handleMouseUp(){}handleTouchEnd(){}}t.CameraControls=o,t.MapControlsExp=class extends o{constructor(e,t){super(e,t),i(this,"mouseButtons"),i(this,"touches"),this.mouseButtons={LEFT:s.MOUSE.PAN,RIGHT:s.MOUSE.ROTATE},this.touches={ONE:s.TOUCH.PAN,TWO:s.TOUCH.DOLLY_ROTATE}}},t.OrbitControlsExp=class extends o{constructor(e,t){super(e,t),i(this,"mouseButtons"),i(this,"touches"),this.mouseButtons={LEFT:s.MOUSE.ROTATE,RIGHT:s.MOUSE.PAN},this.touches={ONE:s.TOUCH.ROTATE,TWO:s.TOUCH.DOLLY_PAN}}},t.STATE=a,t.TrackballControlsExp=class extends o{constructor(e,t){super(e,t),i(this,"trackball"),i(this,"screenSpacePanning"),i(this,"autoRotate"),i(this,"mouseButtons"),i(this,"touches"),this.trackball=!0,this.screenSpacePanning=!0,this.autoRotate=!1,this.mouseButtons={LEFT:s.MOUSE.ROTATE,RIGHT:s.MOUSE.PAN},this.touches={ONE:s.TOUCH.ROTATE,TWO:s.TOUCH.DOLLY_PAN}}}},30824:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(95703),s=n(62602),a=new r.Matrix4,o=new i.CSMFrustum,l=new r.Vector3,c=new r.Box3,h=[],u=[];t.CSM=class{constructor(e){e=e||{},this.camera=e.camera,this.parent=e.parent,this.cascades=e.cascades||3,this.maxFar=e.maxFar||1e5,this.mode=e.mode||"practical",this.shadowMapSize=e.shadowMapSize||2048,this.shadowBias=e.shadowBias||1e-6,this.lightDirection=e.lightDirection||new r.Vector3(1,-1,1).normalize(),this.lightIntensity=e.lightIntensity||1,this.lightNear=e.lightNear||1,this.lightFar=e.lightFar||2e3,this.lightMargin=e.lightMargin||200,this.customSplitsCallback=e.customSplitsCallback,this.fade=!1,this.mainFrustum=new i.CSMFrustum,this.frustums=[],this.breaks=[],this.lights=[],this.shaders=new Map,this.createLights(),this.updateFrustums(),this.injectInclude()}createLights(){for(let e=0;es.distanceTo(r[2])?i[2]:r[2];let o=s.distanceTo(a);if(this.fade){const e=this.camera,t=Math.max(e.far,this.maxFar),r=n.vertices.far[0].z/(t-e.near);o+=.25*Math.pow(r,2)*(t-e.near)}e.left=-o/2,e.right=o/2,e.top=o/2,e.bottom=-o/2,e.updateProjectionMatrix()}}getBreaks(){const e=this.camera,t=Math.min(e.far,this.maxFar);switch(this.breaks.length=0,this.mode){case"uniform":n(this.cascades,e.near,t,this.breaks);break;case"logarithmic":i(this.cascades,e.near,t,this.breaks);break;case"practical":!function(e,t,s,a,o){h.length=0,u.length=0,i(e,t,s,u),n(e,t,s,h);for(let n=1;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Matrix4;class s{constructor(e){e=e||{},this.vertices={near:[new r.Vector3,new r.Vector3,new r.Vector3,new r.Vector3],far:[new r.Vector3,new r.Vector3,new r.Vector3,new r.Vector3]},void 0!==e.projectionMatrix&&this.setFromProjectionMatrix(e.projectionMatrix,e.maxFar||1e4)}setFromProjectionMatrix(e,t){const n=0===e.elements[11];return i.copy(e).invert(),this.vertices.near[0].set(1,1,-1),this.vertices.near[1].set(1,-1,-1),this.vertices.near[2].set(-1,-1,-1),this.vertices.near[3].set(-1,1,-1),this.vertices.near.forEach((function(e){e.applyMatrix4(i)})),this.vertices.far[0].set(1,1,1),this.vertices.far[1].set(1,-1,1),this.vertices.far[2].set(-1,-1,1),this.vertices.far[3].set(-1,1,1),this.vertices.far.forEach((function(e){e.applyMatrix4(i);const r=Math.abs(e.z);n?e.z*=Math.min(t/r,1):e.multiplyScalar(Math.min(t/r,1))})),this.vertices}split(e,t){for(;e.length>t.length;)t.push(new s);t.length=e.length;for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Group{constructor(e){super(),this.csm=e,this.displayFrustum=!0,this.displayPlanes=!0,this.displayShadowBounds=!0;const t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),n=new Float32Array(24),i=new r.BufferGeometry;i.setIndex(new r.BufferAttribute(t,1)),i.setAttribute("position",new r.BufferAttribute(n,3,!1));const s=new r.LineSegments(i,new r.LineBasicMaterial);this.add(s),this.frustumLines=s,this.cascadeLines=[],this.cascadePlanes=[],this.shadowLines=[]}updateVisibility(){const e=this.displayFrustum,t=this.displayPlanes,n=this.displayShadowBounds,r=this.frustumLines,i=this.cascadeLines,s=this.cascadePlanes,a=this.shadowLines;for(let o=0,l=i.length;on;)this.remove(l.pop()),this.remove(c.pop()),this.remove(h.pop());for(;l.length{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={lights_fragment_begin:"\nGeometricContext geometry;\n\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n\n#ifdef CLEARCOAT\n\n\tgeometry.clearcoatNormal = clearcoatNormal;\n\n#endif\n\nIncidentLight directLight;\n\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\n\t\tpointLight = pointLights[ i ];\n\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t}\n\t#pragma unroll_loop_end\n\n#endif\n\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\n\t\tspotLight = spotLights[ i ];\n\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t}\n\t#pragma unroll_loop_end\n\n#endif\n\n#if ( NUM_DIR_LIGHTS > 0) && defined( RE_Direct ) && defined( USE_CSM ) && defined( CSM_CASCADES )\n\n\tDirectionalLight directionalLight;\n\tfloat linearDepth = (vViewPosition.z) / (shadowFar - cameraNear);\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\n\t#if defined( USE_SHADOWMAP ) && defined( CSM_FADE )\n\tvec2 cascade;\n\tfloat cascadeCenter;\n\tfloat closestEdge;\n\tfloat margin;\n\tfloat csmx;\n\tfloat csmy;\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\n\t \t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\t\t// NOTE: Depth gets larger away from the camera.\n\t\t\t// cascade.x is closer, cascade.y is further\n\t\t\tcascade = CSM_cascades[ i ];\n\t\t\tcascadeCenter = ( cascade.x + cascade.y ) / 2.0;\n\t\t\tclosestEdge = linearDepth < cascadeCenter ? cascade.x : cascade.y;\n\t\t\tmargin = 0.25 * pow( closestEdge, 2.0 );\n\t\t\tcsmx = cascade.x - margin / 2.0;\n\t\t\tcsmy = cascade.y + margin / 2.0;\n\t\t\tif( linearDepth >= csmx && ( linearDepth < csmy || UNROLLED_LOOP_INDEX == CSM_CASCADES - 1 ) ) {\n\n\t\t\t\tfloat dist = min( linearDepth - csmx, csmy - linearDepth );\n\t\t\t\tfloat ratio = clamp( dist / margin, 0.0, 1.0 );\n\n\t\t\t\tvec3 prevColor = directLight.color;\n\t\t\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\t\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\n\t\t\t\tbool shouldFadeLastCascade = UNROLLED_LOOP_INDEX == CSM_CASCADES - 1 && linearDepth > cascadeCenter;\n\t\t\t\tdirectLight.color = mix( prevColor, directLight.color, shouldFadeLastCascade ? ratio : 1.0 );\n\n\t\t\t\tReflectedLight prevLight = reflectedLight;\n\t\t\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t\t\t\tbool shouldBlend = UNROLLED_LOOP_INDEX != CSM_CASCADES - 1 || UNROLLED_LOOP_INDEX == CSM_CASCADES - 1 && linearDepth < cascadeCenter;\n\t\t\t\tfloat blendRatio = shouldBlend ? ratio : 1.0;\n\n\t\t\t\treflectedLight.directDiffuse = mix( prevLight.directDiffuse, reflectedLight.directDiffuse, blendRatio );\n\t\t\t\treflectedLight.directSpecular = mix( prevLight.directSpecular, reflectedLight.directSpecular, blendRatio );\n\t\t\t\treflectedLight.indirectDiffuse = mix( prevLight.indirectDiffuse, reflectedLight.indirectDiffuse, blendRatio );\n\t\t\t\treflectedLight.indirectSpecular = mix( prevLight.indirectSpecular, reflectedLight.indirectSpecular, blendRatio );\n\n\t\t\t}\n\t \t#endif\n\n\t}\n\t#pragma unroll_loop_end\n\t#else\n\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\n\t\t\tdirectionalLight = directionalLights[ i ];\n\t\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\n\t\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\n\t\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\t\tif(linearDepth >= CSM_cascades[UNROLLED_LOOP_INDEX].x && linearDepth < CSM_cascades[UNROLLED_LOOP_INDEX].y) directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\n\t\t\tif(linearDepth >= CSM_cascades[UNROLLED_LOOP_INDEX].x && (linearDepth < CSM_cascades[UNROLLED_LOOP_INDEX].y || UNROLLED_LOOP_INDEX == CSM_CASCADES - 1)) RE_Direct( directLight, geometry, material, reflectedLight );\n\n\t\t\t#endif\n\n\t\t}\n\t\t#pragma unroll_loop_end\n\n\t#endif\n\n\t#if ( NUM_DIR_LIGHTS > NUM_DIR_LIGHT_SHADOWS)\n\t\t// compute the lights not casting shadows (if any)\n\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = NUM_DIR_LIGHT_SHADOWS; i < NUM_DIR_LIGHTS; i ++ ) {\n\n\t\t\tdirectionalLight = directionalLights[ i ];\n\n\t\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\n\t\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t\t}\n\t\t#pragma unroll_loop_end\n\n\t#endif\n\n#endif\n\n\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) && !defined( USE_CSM ) && !defined( CSM_CASCADES )\n\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\n\t\tdirectionalLight = directionalLights[ i ];\n\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t}\n\t#pragma unroll_loop_end\n\n#endif\n\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\n\tRectAreaLight rectAreaLight;\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\n\t}\n\t#pragma unroll_loop_end\n\n#endif\n\n#if defined( RE_IndirectDiffuse )\n\n\tvec3 iblIrradiance = vec3( 0.0 );\n\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\n\t\t}\n\t\t#pragma unroll_loop_end\n\n\t#endif\n\n#endif\n\n#if defined( RE_IndirectSpecular )\n\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n\n#endif\n",getlights_pars_begin:()=>`\n\t\t\t#if defined( USE_CSM ) && defined( CSM_CASCADES )\n\t\t\tuniform vec2 CSM_cascades[CSM_CASCADES];\n\t\t\tuniform float cameraNear;\n\t\t\tuniform float shadowFar;\n\t\t\t#endif\n\n\t\t\t${r.ShaderChunk.lights_pars_begin}\n\t\t`};t.CSMShader=i},4668:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Curve{getPoint(e,t=new r.Vector3){const n=t;e=2*Math.PI*e;const i=-.22*Math.cos(e)-1.28*Math.sin(e)-.44*Math.cos(3*e)-.78*Math.sin(3*e),s=-.1*Math.cos(2*e)-.27*Math.sin(2*e)+.38*Math.cos(4*e)+.46*Math.sin(4*e),a=.7*Math.cos(3*e)-.4*Math.sin(3*e);return n.set(i,s,a).multiplyScalar(20)}}class s extends r.Curve{constructor(e=5){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t;e*=2*Math.PI;const i=16*Math.pow(Math.sin(e),3),s=13*Math.cos(e)-5*Math.cos(2*e)-2*Math.cos(3*e)-Math.cos(4*e);return n.set(i,s,0).multiplyScalar(this.scale)}}class a extends r.Curve{constructor(e=70){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t;e=4*e*Math.PI;const i=this.scale/2,s=i*(1+Math.cos(e)),a=i*Math.sin(e),o=2*i*Math.sin(e/2);return n.set(s,a,o)}}class o extends r.Curve{getPoint(e,t=new r.Vector3){const n=t;e*=2*Math.PI;const i=50*Math.sin(e),s=Math.cos(e)*(10+50*Math.cos(e)),a=Math.sin(e)*(10+50*Math.cos(e));return n.set(i,s,a)}}class l extends r.Curve{getPoint(e,t=new r.Vector3){const n=t,i=2*Math.PI*e*150/30,s=30*Math.cos(i),a=30*Math.sin(i),o=150*e;return n.set(s,a,o)}}class c extends r.Curve{constructor(e=10){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t;e*=2*Math.PI;const i=(2+Math.cos(3*e))*Math.cos(2*e),s=(2+Math.cos(3*e))*Math.sin(2*e),a=Math.sin(3*e);return n.set(i,s,a).multiplyScalar(this.scale)}}class h extends r.Curve{constructor(e=10){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t;e*=2*Math.PI;const i=(2+Math.cos(4*e))*Math.cos(3*e),s=(2+Math.cos(4*e))*Math.sin(3*e),a=Math.sin(4*e);return n.set(i,s,a).multiplyScalar(this.scale)}}class u extends r.Curve{constructor(e=10){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t;e*=2*Math.PI;const i=(2+Math.cos(5*e))*Math.cos(2*e),s=(2+Math.cos(5*e))*Math.sin(2*e),a=Math.sin(5*e);return n.set(i,s,a).multiplyScalar(this.scale)}}class d extends r.Curve{constructor(e=10){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t;e=4*e-2;const i=Math.pow(e,3)-3*e,s=Math.pow(e,4)-4*e*e,a=.2*Math.pow(e,5)-2*e;return n.set(i,s,a).multiplyScalar(this.scale)}}class p extends r.Curve{constructor(e=1){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t;e=function(e,t,n){return n*(t-e)+e}(-4,4,e);const i=.4*e*(e*e-7)*(e*e-10),s=Math.pow(e,4)-13*e*e,a=.1*e*(e*e-4)*(e*e-9)*(e*e-12);return n.set(i,s,a).multiplyScalar(this.scale)}}class f extends r.Curve{constructor(e=40){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t;e*=2*Math.PI;const i=Math.cos(2*e)*(1+.6*(Math.cos(5*e)+.75*Math.cos(10*e))),s=Math.sin(2*e)*(1+.6*(Math.cos(5*e)+.75*Math.cos(10*e))),a=.35*Math.sin(5*e);return n.set(i,s,a).multiplyScalar(this.scale)}}class m extends r.Curve{constructor(e=40){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t,i=e*Math.PI*2,s=Math.cos(2*i)*(1+.45*Math.cos(3*i)+.4*Math.cos(9*i)),a=Math.sin(2*i)*(1+.45*Math.cos(3*i)+.4*Math.cos(9*i)),o=.2*Math.sin(9*i);return n.set(s,a,o).multiplyScalar(this.scale)}}class g extends r.Curve{constructor(e=40){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t,i=e*Math.PI*2,s=Math.cos(3*i)*(1+.3*Math.cos(5*i)+.5*Math.cos(10*i)),a=Math.sin(3*i)*(1+.3*Math.cos(5*i)+.5*Math.cos(10*i)),o=.2*Math.sin(20*i);return n.set(s,a,o).multiplyScalar(this.scale)}}class A extends r.Curve{constructor(e=40){super(),this.scale=e}getPoint(e,t=new r.Vector3){const n=t,i=e*Math.PI*2,s=Math.cos(4*i)*(1+.5*(Math.cos(5*i)+.4*Math.cos(20*i))),a=Math.sin(4*i)*(1+.5*(Math.cos(5*i)+.4*Math.cos(20*i))),o=.35*Math.sin(15*i);return n.set(s,a,o).multiplyScalar(this.scale)}}t.CinquefoilKnot=u,t.DecoratedTorusKnot4a=f,t.DecoratedTorusKnot4b=m,t.DecoratedTorusKnot5a=g,t.DecoratedTorusKnot5c=A,t.FigureEightPolynomialKnot=p,t.GrannyKnot=i,t.HeartCurve=s,t.HelixCurve=l,t.KnotCurve=o,t.TorusKnot=h,t.TrefoilKnot=c,t.TrefoilPolynomialKnot=d,t.VivianiCurve=a},98001:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(11576);class s extends r.Curve{constructor(e,t,n,i,s){super(),this.degree=e,this.knots=t,this.controlPoints=[],this.startKnot=i||0,this.endKnot=s||this.knots.length-1;for(let a=0;a{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(11576);t.NURBSSurface=class{constructor(e,t,n,i,s){this.degree1=e,this.degree2=t,this.knots1=n,this.knots2=i,this.controlPoints=[];const a=n.length-e-1,o=i.length-t-1;for(let l=0;l{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);function i(e,t,n){const r=n.length-e-1;if(t>=n[r])return r-1;if(t<=n[e])return e;let i=e,s=r,a=Math.floor((i+s)/2);for(;t=n[a+1];)t=s&&(i[t][0]=i[e][0]/o[c+1][l],r=i[t][0]*o[l][c]);const h=u-1<=c?s-1:n-u;for(let n=l>=-1?1:-l;n<=h;++n)i[t][n]=(i[e][n]-i[e][n-1])/o[c+1][l+n],r+=i[t][n]*o[l+n][c];u<=c&&(i[t][s]=-i[e][s-1]/o[c+1][u],r+=i[t][s]*o[u][c]),a[s][u]=r;const d=e;e=t,t=d}}let h=n;for(let u=1;u<=r;++u){for(let e=0;e<=n;++e)a[u][e]*=h;h*=n-u}return a}function o(e,t,n,s,o){const l=o{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Matrix4,s=new r.Object3D,a=new r.Vector3;class o extends r.EventDispatcher{static createBufferGeometryFromObject(e){let t=new r.BufferGeometry;const n=e.geometry;if(e.isPoints||e.isLine){const e=new r.Float32BufferAttribute(3*n.vertices.length,3),i=new r.Float32BufferAttribute(3*n.colors.length,3);if(t.setAttribute("position",e.copyVector3sArray(n.vertices)),t.setAttribute("color",i.copyColorsArray(n.colors)),n.lineDistances&&n.lineDistances.length===n.vertices.length){const e=new r.Float32BufferAttribute(n.lineDistances.length,1);t.setAttribute("lineDistance",e.copyArray(n.lineDistances))}null!==n.boundingSphere&&(t.boundingSphere=n.boundingSphere.clone()),null!==n.boundingBox&&(t.boundingBox=n.boundingBox.clone())}else e.isMesh&&(t=n.toBufferGeometry());return t}constructor(){super(),this.isGeometry=!0,this.uuid=r.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(e){const t=(new r.Matrix3).getNormalMatrix(e);for(let n=0,r=this.vertices.length;n0)for(let r=0;r0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let e=0,t=this.faces.length;e0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let t=0,n=this.faces.length;t=0;o--){const e=s[o];this.faces.splice(e,1);for(let t=0,n=this.faceVertexUvs.length;t0,a=e.vertexNormals.length>0,o=1!==e.color.r||1!==e.color.g||1!==e.color.b,l=e.vertexColors.length>0;let f=0;if(f=c(f,0,0),f=c(f,1,t),f=c(f,2,r),f=c(f,3,i),f=c(f,4,s),f=c(f,5,a),f=c(f,6,o),f=c(f,7,l),n.push(f),n.push(e.a,e.b,e.c),n.push(e.materialIndex),i){const e=this.faceVertexUvs[0][p];n.push(d(e[0]),d(e[1]),d(e[2]))}if(s&&n.push(h(e.normal)),a){const t=e.vertexNormals;n.push(h(t[0]),h(t[1]),h(t[2]))}if(o&&n.push(u(e.color)),l){const t=e.vertexColors;n.push(u(t[0]),u(t[1]),u(t[2]))}}function c(e,t,n){return n?e|1<0&&(e.data.colors=s),o.length>0&&(e.data.uvs=[o]),e.data.faces=n,e}clone(){return(new o).copy(this)}copy(e){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=e.name;const t=e.vertices;for(let u=0,d=t.length;u0){const n=new Float32Array(3*e.normals.length);t.setAttribute("normal",new r.BufferAttribute(n,3).copyVector3sArray(e.normals))}if(e.colors.length>0){const n=new Float32Array(3*e.colors.length);t.setAttribute("color",new r.BufferAttribute(n,3).copyColorsArray(e.colors))}if(e.uvs.length>0){const n=new Float32Array(2*e.uvs.length);t.setAttribute("uv",new r.BufferAttribute(n,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){const n=new Float32Array(2*e.uvs2.length);t.setAttribute("uv2",new r.BufferAttribute(n,2).copyVector2sArray(e.uvs2))}t.groups=e.groups;for(let i in e.morphTargets){const n=[],s=e.morphTargets[i];for(let e=0,t=s.length;e0){const n=new r.Float32BufferAttribute(4*e.skinIndices.length,4);t.setAttribute("skinIndex",n.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){const n=new r.Float32BufferAttribute(4*e.skinWeights.length,4);t.setAttribute("skinWeight",n.copyVector4sArray(e.skinWeights))}return null!==e.boundingSphere&&(t.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(t.boundingBox=e.boundingBox.clone()),t}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(e){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}dispose(){this.dispatchEvent({type:"dispose"})}}class l{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(e){const t=[];let n,r,i;const s=e.faces;for(r=0;r0,a=i[1]&&i[1].length>0,o=e.morphTargets,l=o.length;let c;if(l>0){c=[];for(let e=0;e0){d=[];for(let e=0;e0&&0===t.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let A=0;A{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.AnaglyphEffect=class{constructor(e,t=512,n=512){this.colorMatrixLeft=(new r.Matrix3).fromArray([.4561,-.0400822,-.0152161,.500484,-.0378246,-.0205971,.176381,-.0157589,-.00546856]),this.colorMatrixRight=(new r.Matrix3).fromArray([-.0434706,.378476,-.0721527,-.0879388,.73364,-.112961,-.00155529,-.0184503,1.2264]);const i=new r.OrthographicCamera(-1,1,1,-1,0,1),s=new r.Scene,a=new r.StereoCamera,o={minFilter:r.LinearFilter,magFilter:r.NearestFilter,format:r.RGBAFormat},l=new r.WebGLRenderTarget(t,n,o),c=new r.WebGLRenderTarget(t,n,o),h=new r.ShaderMaterial({uniforms:{mapLeft:{value:l.texture},mapRight:{value:c.texture},colorMatrixLeft:{value:this.colorMatrixLeft},colorMatrixRight:{value:this.colorMatrixRight}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = vec2( uv.x, uv.y );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D mapLeft;","uniform sampler2D mapRight;","varying vec2 vUv;","uniform mat3 colorMatrixLeft;","uniform mat3 colorMatrixRight;","void main() {","\tvec2 uv = vUv;","\tvec4 colorL = texture2D( mapLeft, uv );","\tvec4 colorR = texture2D( mapRight, uv );","\tvec3 color = clamp(","\t\t\tcolorMatrixLeft * colorL.rgb +","\t\t\tcolorMatrixRight * colorR.rgb, 0., 1. );","\tgl_FragColor = vec4(","\t\t\tcolor.r, color.g, color.b,","\t\t\tmax( colorL.a, colorR.a ) );","\t#include ",`\t#include <${parseInt(r.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>`,"}"].join("\n")}),u=new r.Mesh(new r.PlaneGeometry(2,2),h);s.add(u),this.setSize=function(t,n){e.setSize(t,n);const r=e.getPixelRatio();l.setSize(t*r,n*r),c.setSize(t*r,n*r)},this.render=function(t,n){const r=e.getRenderTarget();!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===n.parent&&!0===n.matrixWorldAutoUpdate&&n.updateMatrixWorld(),a.update(n),e.setRenderTarget(l),e.clear(),e.render(t,a.cameraL),e.setRenderTarget(c),e.clear(),e.render(t,a.cameraR),e.setRenderTarget(null),e.render(s,i),e.setRenderTarget(r)},this.dispose=function(){l.dispose(),c.dispose(),u.geometry.dispose(),u.material.dispose()}}}},19574:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.AsciiEffect=class{constructor(e,t=" .:-=+*#%@",n={}){const r=n.resolution||.15,i=n.scale||1,s=n.color||!1,a=n.alpha||!1,o=n.block||!1,l=n.invert||!1,c=n.strResolution||"low";let h,u;const d=document.createElement("div");d.style.cursor="default";const p=document.createElement("table");let f,m,g;d.appendChild(p),this.setSize=function(t,n){h=t,u=n,e.setSize(t,n),function(){f=Math.floor(h*r),m=Math.floor(u*r),b.width=f,b.height=m,g=e.domElement,g.style.backgroundColor&&(p.rows[0].cells[0].style.backgroundColor=g.style.backgroundColor,p.rows[0].cells[0].style.color=g.style.color);p.cellSpacing=0,p.cellPadding=0;const t=p.style;t.whiteSpace="pre",t.margin="0px",t.padding="0px",t.letterSpacing=M+"px",t.fontFamily=y,t.fontSize=S+"px",t.lineHeight=w+"px",t.textAlign="left",t.textDecoration="none"}()},this.render=function(t,n){e.render(t,n),function(e){E.clearRect(0,0,f,m),E.drawImage(x,0,0,f,m);const t=E.getImageData(0,0,f,m).data;let n="";for(let r=0;r"+g+"":g}n+="
"}e.innerHTML=`${n}`}(p)},this.domElement=d;const A=" .,:;i1tfLCG08@".split(""),v=" CGO08@".split(""),y="courier new, monospace",x=e.domElement,b=document.createElement("canvas");if(!b.getContext)return;const E=b.getContext("2d");if(!E.getImageData)return;let _=s?v:A;t&&(_=t);const S=2/r*i,w=2/r*i;let M=0;if("low"==c)switch(i){case 1:M=-1;break;case 2:case 3:M=-2.1;break;case 4:M=-3.1;break;case 5:M=-4.15}if("medium"==c)switch(i){case 1:M=0;break;case 2:M=-1;break;case 3:M=-1.04;break;case 4:case 5:M=-2.1}if("high"==c)switch(i){case 1:case 2:M=0;break;case 3:case 4:case 5:M=-1}}}},71253:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.OutlineEffect=class{constructor(e,t={}){this.enabled=!0;const n=void 0!==t.defaultThickness?t.defaultThickness:.003,i=(new r.Color).fromArray(void 0!==t.defaultColor?t.defaultColor:[0,0,0]),s=void 0!==t.defaultAlpha?t.defaultAlpha:1,a=void 0!==t.defaultKeepAlive&&t.defaultKeepAlive,o={},l={},c={},h={outlineThickness:{value:n},outlineColor:{value:i},outlineAlpha:{value:s}},u=["#include ","#include ","#include ","#include ","#include ","#include ","#include ","#include ","uniform float outlineThickness;","vec4 calculateOutline( vec4 pos, vec3 normal, vec4 skinned ) {","\tfloat thickness = outlineThickness;","\tconst float ratio = 1.0;","\tvec4 pos2 = projectionMatrix * modelViewMatrix * vec4( skinned.xyz + normal, 1.0 );","\tvec4 norm = normalize( pos - pos2 );","\treturn pos + norm * thickness * pos.w * ratio;","}","void main() {","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\tvec3 outlineNormal = - objectNormal;","\tgl_Position = calculateOutline( gl_Position, outlineNormal, vec4( transformed, 1.0 ) );","\t#include ","\t#include ","\t#include ","}"].join("\n"),d=["#include ","#include ","#include ","#include ","uniform vec3 outlineColor;","uniform float outlineAlpha;","void main() {","\t#include ","\t#include ","\tgl_FragColor = vec4( outlineColor, outlineAlpha );","\t#include ",`\t#include <${parseInt(r.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>`,"\t#include ","\t#include ","}"].join("\n");function p(e){const t=function(e){let t=o[e.uuid];return void 0===t&&(t={material:new r.ShaderMaterial({type:"OutlineEffect",uniforms:r.UniformsUtils.merge([r.UniformsLib.fog,r.UniformsLib.displacementmap,h]),vertexShader:u,fragmentShader:d,side:r.BackSide}),used:!0,keepAlive:a,count:0},o[e.uuid]=t),t.used=!0,t.material}(e);return l[t.uuid]=e,function(e,t){if("invisible"===e.name)return;const n=t.userData.outlineParameters;e.fog=t.fog,e.toneMapped=t.toneMapped,e.premultipliedAlpha=t.premultipliedAlpha,e.displacementMap=t.displacementMap,void 0!==n?(!1===t.visible?e.visible=!1:e.visible=void 0===n.visible||n.visible,e.transparent=void 0!==n.alpha&&n.alpha<1||t.transparent,void 0!==n.keepAlive&&(o[t.uuid].keepAlive=n.keepAlive)):(e.transparent=t.transparent,e.visible=t.visible);!0!==t.wireframe&&!1!==t.depthTest||(e.visible=!1);t.clippingPlanes&&(e.clipping=!0,e.clippingPlanes=t.clippingPlanes,e.clipIntersection=t.clipIntersection,e.clipShadows=t.clipShadows);e.version=t.version}(t,e),t}function f(e){const t=e.geometry,n=void 0!==t&&void 0!==t.attributes.normal;return!0===e.isMesh&&void 0!==e.material&&!0===n}function m(e){if(!1!==f(e)){if(Array.isArray(e.material))for(let t=0,n=e.material.length;t60&&delete o[n]):(o[n].used=!1,o[n].count=0)}}(),t.matrixWorldAutoUpdate=i,t.background=s,e.autoClear=r,e.shadowMap.enabled=a},this.autoClear=e.autoClear,this.domElement=e.domElement,this.shadowMap=e.shadowMap,this.clear=function(t,n,r){e.clear(t,n,r)},this.getPixelRatio=function(){return e.getPixelRatio()},this.setPixelRatio=function(t){e.setPixelRatio(t)},this.getSize=function(t){return e.getSize(t)},this.setSize=function(t,n,r){e.setSize(t,n,r)},this.setViewport=function(t,n,r,i){e.setViewport(t,n,r,i)},this.setScissor=function(t,n,r,i){e.setScissor(t,n,r,i)},this.setScissorTest=function(t){e.setScissorTest(t)},this.setRenderTarget=function(t){e.setRenderTarget(t)}}}},24826:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.ParallaxBarrierEffect=class{constructor(e){const t=new r.OrthographicCamera(-1,1,1,-1,0,1),n=new r.Scene,i=new r.StereoCamera,s={minFilter:r.LinearFilter,magFilter:r.NearestFilter,format:r.RGBAFormat},a=new r.WebGLRenderTarget(512,512,s),o=new r.WebGLRenderTarget(512,512,s),l=new r.ShaderMaterial({uniforms:{mapLeft:{value:a.texture},mapRight:{value:o.texture}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = vec2( uv.x, uv.y );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D mapLeft;","uniform sampler2D mapRight;","varying vec2 vUv;","void main() {","\tvec2 uv = vUv;","\tif ( ( mod( gl_FragCoord.y, 2.0 ) ) > 1.00 ) {","\t\tgl_FragColor = texture2D( mapLeft, uv );","\t} else {","\t\tgl_FragColor = texture2D( mapRight, uv );","\t}","\t#include ",`\t#include <${parseInt(r.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>`,"}"].join("\n")}),c=new r.Mesh(new r.PlaneGeometry(2,2),l);n.add(c),this.setSize=function(t,n){e.setSize(t,n);const r=e.getPixelRatio();a.setSize(t*r,n*r),o.setSize(t*r,n*r)},this.render=function(r,s){!0===r.matrixWorldAutoUpdate&&r.updateMatrixWorld(),null===s.parent&&!0===s.matrixWorldAutoUpdate&&s.updateMatrixWorld(),i.update(s),e.setRenderTarget(a),e.clear(),e.render(r,i.cameraL),e.setRenderTarget(o),e.clear(),e.render(r,i.cameraR),e.setRenderTarget(null),e.render(n,t)}}}},18233:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.PeppersGhostEffect=class{constructor(e){const t=this;let n,i,s;t.cameraDistance=15,t.reflectFromAbove=!1;const a=new r.PerspectiveCamera,o=new r.PerspectiveCamera,l=new r.PerspectiveCamera,c=new r.PerspectiveCamera,h=new r.Vector3,u=new r.Quaternion,d=new r.Vector3;e.autoClear=!1,this.setSize=function(t,r){n=t/2,t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.StereoEffect=class{constructor(e){const t=new r.StereoCamera;t.aspect=.5;const n=new r.Vector2;this.setEyeSeparation=function(e){t.eyeSep=e},this.setSize=function(t,n){e.setSize(t,n)},this.render=function(r,i){!0===r.matrixWorldAutoUpdate&&r.updateMatrixWorld(),null===i.parent&&!0===i.matrixWorldAutoUpdate&&i.updateMatrixWorld(),t.update(i),e.getSize(n),e.autoClear&&e.clear(),e.setScissorTest(!0),e.setScissor(0,0,n.width/2,n.height),e.setViewport(0,0,n.width/2,n.height),e.render(r,t.cameraL),e.setScissor(n.width/2,0,n.width/2,n.height),e.setViewport(n.width/2,0,n.width/2,n.height),e.render(r,t.cameraR),e.setScissorTest(!1)}}}},53374:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function r(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const i=r(n(85232));t.RoomEnvironment=function(){const e=new i.Scene,t=new i.BoxGeometry;t.deleteAttribute("uv");const n=new i.MeshStandardMaterial({side:i.BackSide}),r=new i.MeshStandardMaterial,s=new i.PointLight(16777215,5,28,2);s.position.set(.418,16.199,.3),e.add(s);const a=new i.Mesh(t,n);a.position.set(-.757,13.219,.717),a.scale.set(31.713,28.305,28.591),e.add(a);const o=new i.Mesh(t,r);o.position.set(-10.906,2.009,1.846),o.rotation.set(0,-.195,0),o.scale.set(2.328,7.905,4.651),e.add(o);const l=new i.Mesh(t,r);l.position.set(-5.607,-.754,-.758),l.rotation.set(0,.994,0),l.scale.set(1.97,1.534,3.955),e.add(l);const c=new i.Mesh(t,r);c.position.set(6.167,.857,7.803),c.rotation.set(0,.561,0),c.scale.set(3.927,6.285,3.687),e.add(c);const h=new i.Mesh(t,r);h.position.set(-2.017,.018,6.124),h.rotation.set(0,.333,0),h.scale.set(2.002,4.566,2.064),e.add(h);const u=new i.Mesh(t,r);u.position.set(2.291,-.756,-2.621),u.rotation.set(0,-.286,0),u.scale.set(1.546,1.552,1.496),e.add(u);const d=new i.Mesh(t,r);d.position.set(-2.193,-.369,-5.547),d.rotation.set(0,.516,0),d.scale.set(3.875,3.487,2.986),e.add(d);const p=new i.Mesh(t,y(50));p.position.set(-16.116,14.37,8.208),p.scale.set(.1,2.428,2.739),e.add(p);const f=new i.Mesh(t,y(50));f.position.set(-16.109,18.021,-8.207),f.scale.set(.1,2.425,2.751),e.add(f);const m=new i.Mesh(t,y(17));m.position.set(14.904,12.198,-1.832),m.scale.set(.15,4.265,6.331),e.add(m);const g=new i.Mesh(t,y(43));g.position.set(-.462,8.89,14.52),g.scale.set(4.38,5.441,.088),e.add(g);const A=new i.Mesh(t,y(20));A.position.set(3.235,11.486,-12.541),A.scale.set(2.5,2,.1),e.add(A);const v=new i.Mesh(t,y(100));function y(e){const t=new i.MeshBasicMaterial;return t.color.setScalar(e),t}return v.position.set(0,20,0),v.scale.set(1,.1,1),e.add(v),e}},19338:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);t.ColladaExporter=class{constructor(){i(this,"options"),i(this,"geometryInfo"),i(this,"materialMap"),i(this,"imageMap"),i(this,"textures"),i(this,"libraryImages"),i(this,"libraryGeometries"),i(this,"libraryEffects"),i(this,"libraryMaterials"),i(this,"canvas"),i(this,"ctx"),i(this,"transMat"),i(this,"getFuncs",["getX","getY","getZ","getW"]),this.options={version:"1.4.1",author:null,textureDirectory:"",upAxis:"Y_UP",unitName:null,unitMeter:null},this.geometryInfo=new WeakMap,this.materialMap=new WeakMap,this.imageMap=new WeakMap,this.textures=[],this.libraryImages=[],this.libraryGeometries=[],this.libraryEffects=[],this.libraryMaterials=[],this.canvas=null,this.ctx=null,this.transMat=null}parse(e,t,n={}){if(this.options={...this.options,...n},null===this.options.upAxis.match(/^[XYZ]_UP$/))return console.error("ColladaExporter: Invalid upAxis: valid values are X_UP, Y_UP or Z_UP."),null;if(null!==this.options.unitName&&null===this.options.unitMeter)return console.error("ColladaExporter: unitMeter needs to be specified if unitName is specified."),null;if(null!==this.options.unitMeter&&null===this.options.unitName)return console.error("ColladaExporter: unitName needs to be specified if unitMeter is specified."),null;if(""!==this.options.textureDirectory&&(this.options.textureDirectory=`${this.options.textureDirectory}/`.replace(/\\/g,"/").replace(/\/+/g,"/")),"1.4.1"!==this.options.version&&"1.5.0"!==this.options.version)return console.warn(`ColladaExporter : Version ${this.options.version} not supported for export. Only 1.4.1 and 1.5.0.`),null;const r=this.processObject(e);let i=`three.js Collada Exporter${null!==this.options.author?`${this.options.author}`:""}${(new Date).toISOString()}${(new Date).toISOString()}Y_UP`;i+=`${this.libraryImages.join("")}`,i+=`${this.libraryEffects.join("")}`,i+=`${this.libraryMaterials.join("")}`,i+=`${this.libraryGeometries.join("")}`,i+=`${r}`,i+='',i+="";const s={data:this.format(i),textures:this.textures};return"function"==typeof t&&requestAnimationFrame((()=>t(s))),s}format(e){var t,n;const r=/^<\//,i=/(\?>$)|(\/>$)/,s=/<[^>]+>[^<]*<\/[^<]+>/,a=(e,t)=>t>0?e+a(e,t-1):"";let o=0;return null!=(n=null==(t=e.match(/(<[^>]+>[^<]+<\/[^<]+>)|(<[^>]+>)/g))?void 0:t.map((e=>{s.test(e)||i.test(e)||!r.test(e)||o--;const t=`${a(" ",o)}${e}`;return s.test(e)||i.test(e)||r.test(e)||o++,t})).join("\n"))?n:""}base64ToBuffer(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0,i=n.length;r`+i.join(" ")}${n.map((e=>``)).join("")}`:""}getTransform(e){return e.updateMatrix(),this.transMat=this.transMat||new s.Matrix4,this.transMat.copy(e.matrix),this.transMat.transpose(),`${this.transMat.toArray().join(" ")}`}processGeometry(e){let t=this.geometryInfo.get(e);if(!t){const n=e;if(!n.isBufferGeometry)throw new Error("THREE.ColladaExporter: Geometry is not of type THREE.BufferGeometry.");const r=`Mesh${this.libraryGeometries.length+1}`,i=n.index?n.index.count*n.index.itemSize:n.attributes.position.count,s=null!=n.groups&&0!==n.groups.length?n.groups:[{start:0,count:i,materialIndex:0}];let a=``;const o=`${r}-position`,l=`${r}-vertices`;a+=this.getAttribute(n.attributes.position,o,["X","Y","Z"],"float"),a+=``;let c=``;if("normal"in n.attributes){const e=`${r}-normal`;a+=this.getAttribute(n.attributes.normal,e,["X","Y","Z"],"float"),c+=``}if("uv"in n.attributes){const e=`${r}-texcoord`;a+=this.getAttribute(n.attributes.uv,e,["S","T"],"float"),c+=``}if("uv2"in n.attributes){const e=`${r}-texcoord2`;a+=this.getAttribute(n.attributes.uv2,e,["S","T"],"float"),c+=``}if("color"in n.attributes){const e=`${r}-color`;a+=this.getAttribute(n.attributes.color,e,["X","Y","Z"],"uint8"),c+=``}let h=null;if(n.index)h=this.attrBufferToArray(n.index);else{h=new Array(i);for(let e=0,t=h.length;e`,a+=c,a+=`

${n.join(" ")}

`,a+=""}a+="
",this.libraryGeometries.push(a),t={meshid:r,bufferGeometry:n},this.geometryInfo.set(e,t)}return t}processTexture(e){let t=this.imageMap.get(e);if(null==t){t=`image-${this.libraryImages.length+1}`;const n="png",r=e.name||t;let i=``;"1.5.0"===this.options.version?i+=`${this.options.textureDirectory}${r}.${n}`:i+=`${this.options.textureDirectory}${r}.${n}`,i+="",this.libraryImages.push(i),this.imageMap.set(e,t),this.textures.push({directory:this.options.textureDirectory,name:r,ext:n,data:this.imageToData(e.image,n),original:e})}return t}processMaterial(e){let t=this.materialMap.get(e);if(null==t){t=`Mat${this.libraryEffects.length+1}`;let n="phong";if(e instanceof s.MeshLambertMaterial?n="lambert":e instanceof s.MeshBasicMaterial&&(n="constant",null!==e.map&&console.warn("ColladaExporter: Texture maps not supported with MeshBasicMaterial.")),e instanceof s.MeshPhongMaterial){const r=e.emissive?e.emissive:new s.Color(0,0,0),i=e.color?e.color:new s.Color(0,0,0),a=e.specular?e.specular:new s.Color(1,1,1),o=e.shininess||0,l=e.reflectivity||0;let c="";e.transparent&&(c+=`${e.map?'':"1"}`,e.opacity<1&&(c+=`${e.opacity}`));const h=`<${n}>${e.emissiveMap?'':`${r.r} ${r.g} ${r.b} 1`}${"constant"!==n?`${e.map?'':`${i.r} ${i.g} ${i.b} 1`}`:""}${"constant"!==n?`${e.normalMap?'':""}`:""}${"phong"===n?`${a.r} ${a.g} ${a.b} 1${e.specularMap?'':`${o}`}`:""}${i.r} ${i.g} ${i.b} 1${l}${c}`,u=`${e.map?`${this.processTexture(e.map)}diffuse-surface`:""}${e.specularMap?`${this.processTexture(e.specularMap)}specular-surface`:""}${e.emissiveMap?`${this.processTexture(e.emissiveMap)}emissive-surface`:""}${e.normalMap?`${this.processTexture(e.normalMap)}bump-surface`:""}${h}${e.side===s.DoubleSide?'1':""}`,d=``;this.libraryMaterials.push(d),this.libraryEffects.push(u),this.materialMap.set(e,t)}}return t}processObject(e){let t=``;t+=this.getTransform(e);if((new s.Mesh).geometry,e instanceof s.Mesh&&e.isMesh&&null!==e.geometry){const n=this.processGeometry(e.geometry),r=n.meshid,i=n.bufferGeometry;let a,o=null;const l=e.material||new s.MeshBasicMaterial,c=Array.isArray(l)?l:[l];a=i.groups.length>c.length?new Array(i.groups.length):new Array(c.length),o=a.fill(null).map(((e,t)=>this.processMaterial(c[t%c.length]))),t+=``+(null!=o?`${o.map(((e,t)=>``)).join("")}`:"")+""}return e.children.forEach((e=>t+=this.processObject(e))),t+="",t}}},74918:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=class{parse(e,t={decodeSpeed:5,encodeSpeed:5,encoderMethod:a.MESH_EDGEBREAKER_ENCODING,quantization:[16,8,8,8,8],exportUvs:!0,exportNormals:!0,exportColor:!1}){if(e instanceof s.BufferGeometry&&e.isBufferGeometry)throw new Error("DRACOExporter: The first parameter of parse() is now an instance of Mesh or Points.");if(void 0===DracoEncoderModule)throw new Error("THREE.DRACOExporter: required the draco_encoder to work.");const n=e.geometry,r=DracoEncoderModule(),i=new r.Encoder;let o,l;if(!n.isBufferGeometry)throw new Error("THREE.DRACOExporter.parse(geometry, options): geometry is not a THREE.BufferGeometry instance.");if(e instanceof s.Mesh&&e.isMesh){o=new r.MeshBuilder,l=new r.Mesh;const e=n.getAttribute("position");o.AddFloatAttributeToMesh(l,r.POSITION,e.count,e.itemSize,e.array);const i=n.getIndex();if(null!==i)o.AddFacesToMesh(l,i.count/3,i.array);else{const t=new(e.count>65535?Uint32Array:Uint16Array)(e.count);for(let e=0;e{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=n(85232),s=n(65236);async function a(e){const t=await e.arrayBuffer(),n=btoa(String.fromCharCode(...new Uint8Array(t)));return`data:${e.type||""};base64,${n}`}let o,l,c,h;function u(e,t=1/0,n=null){l||(l=new i.PlaneGeometry(2,2,1,1)),c||(c=new i.ShaderMaterial({uniforms:{blitTexture:new i.Uniform(e)},vertexShader:"\n varying vec2 vUv;\n void main(){\n vUv = uv;\n gl_Position = vec4(position.xy * 1.0,0.,.999999);\n }\n ",fragmentShader:"\n uniform sampler2D blitTexture; \n varying vec2 vUv;\n\n void main(){ \n gl_FragColor = vec4(vUv.xy, 0, 1);\n \n #ifdef IS_SRGB\n gl_FragColor = LinearTosRGB( texture2D( blitTexture, vUv) );\n #else\n gl_FragColor = texture2D( blitTexture, vUv);\n #endif\n }\n "})),c.uniforms.blitTexture.value=e,c.defines.IS_SRGB="colorSpace"in e?"srgb"===e.colorSpace:3001===e.encoding,c.needsUpdate=!0,h||(h=new i.Mesh(l,c),h.frustrumCulled=!1);const r=new i.PerspectiveCamera,s=new i.Scene;s.add(h),n||(n=o=new i.WebGLRenderer({antialias:!1})),n.setSize(Math.min(e.image.width,t),Math.min(e.image.height,t)),n.clear(),n.render(s,r);const a=new i.Texture(n.domElement);return a.minFilter=e.minFilter,a.magFilter=e.magFilter,a.wrapS=e.wrapS,a.wrapT=e.wrapT,a.name=e.name,o&&(o.dispose(),o=null),a}const d={POSITION:["byte","byte normalized","unsigned byte","unsigned byte normalized","short","short normalized","unsigned short","unsigned short normalized"],NORMAL:["byte normalized","short normalized"],TANGENT:["byte normalized","short normalized"],TEXCOORD:["byte","byte normalized","unsigned byte","short","short normalized","unsigned short"]};class p{constructor(){this.pluginCallbacks=[],this.register((function(e){return new Y(e)})),this.register((function(e){return new q(e)})),this.register((function(e){return new Z(e)})),this.register((function(e){return new $(e)})),this.register((function(e){return new ee(e)})),this.register((function(e){return new te(e)})),this.register((function(e){return new K(e)})),this.register((function(e){return new J(e)})),this.register((function(e){return new ne(e)})),this.register((function(e){return new re(e)})),this.register((function(e){return new ie(e)}))}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,r){const i=new X,s=[];for(let a=0,o=this.pluginCallbacks.length;a{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(p,"symbol"!=typeof(f="Utils")?f+"":f,{insertKeyframe:function(e,t){const n=.001,r=e.getValueSize(),i=new e.TimeBufferType(e.times.length+1),s=new e.ValueBufferType(e.values.length+r),a=e.createInterpolant(new e.ValueBufferType(r));let o;if(0===e.times.length){i[0]=t;for(let e=0;ee.times[e.times.length-1]){if(Math.abs(e.times[e.times.length-1]-t)t){i.set(e.times.slice(0,l+1),0),i[l+1]=t,i.set(e.times.slice(l+1),l+2),s.set(e.values.slice(0,(l+1)*r),0),s.set(a.evaluate(t),(l+1)*r),s.set(e.values.slice((l+1)*r),(l+2)*r),o=l+1;break}}return e.times=i,e.values=s,o},mergeMorphTargetTracks:function(e,t){const n=[],r={},s=e.tracks;for(let a=0;ae.toBlob(n,t)));let n;return"image/jpeg"===t?n=.92:"image/webp"===t&&(n=.8),e.convertToBlob({type:t,quality:n})}class X{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}async write(e,t,n={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},n),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(e),await Promise.all(this.pending);const r=this,i=r.buffers,s=r.json;n=r.options;const o=r.extensionsUsed,l=r.extensionsRequired,c=new Blob(i,{type:"application/octet-stream"}),h=Object.keys(o),u=Object.keys(l);h.length>0&&(s.extensionsUsed=h),u.length>0&&(s.extensionsRequired=u),s.buffers&&s.buffers.length>0&&(s.buffers[0].byteLength=c.size),!0===n.binary?c.arrayBuffer().then((e=>{const n=H(e),r=new DataView(new ArrayBuffer(8));r.setUint32(0,n.byteLength,!0),r.setUint32(4,5130562,!0);const i=H((a=JSON.stringify(s),(new TextEncoder).encode(a).buffer),32);var a;const o=new DataView(new ArrayBuffer(8));o.setUint32(0,i.byteLength,!0),o.setUint32(4,1313821514,!0);const l=new ArrayBuffer(12),c=new DataView(l);c.setUint32(0,1179937895,!0),c.setUint32(4,2,!0);const h=12+o.byteLength+i.byteLength+r.byteLength+n.byteLength;c.setUint32(8,h,!0);new Blob([l,o,i,r,n],{type:"application/octet-stream"}).arrayBuffer().then(t)})):s.buffers&&s.buffers.length>0?a(c).then((e=>{s.buffers[0].uri=e,t(s)})):t(s)}serializeUserData(e,t){if(0===Object.keys(e.userData).length)return;const n=this.options,r=this.extensionsUsed;try{const i=JSON.parse(JSON.stringify(e.userData));if(n.includeCustomExtensions&&i.gltfExtensions){void 0===t.extensions&&(t.extensions={});for(const e in i.gltfExtensions)t.extensions[e]=i.gltfExtensions[e],r[e]=!0;delete i.gltfExtensions}Object.keys(i).length>0&&(t.extras=i)}catch(i){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+i.message)}}getUID(e,t=!1){if(!1===this.uids.has(e)){const t=new Map;t.set(!0,this.uid++),t.set(!1,this.uid++),this.uids.set(e,t)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;const t=new i.Vector3;for(let n=0,r=e.count;n5e-4)return!1;return!0}createNormalizedNormalAttribute(e){const t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);const n=e.clone(),r=new i.Vector3;for(let i=0,s=n.count;i4?r=e.array[d*e.itemSize+n]:(0===n?r=e.getX(d):1===n?r=e.getY(d):2===n?r=e.getZ(d):3===n&&(r=e.getW(d)),!0===e.normalized&&(r=i.MathUtils.normalize(r,e.array))),t===M?c.setFloat32(h,r,!0):t===S?c.setInt32(h,r,!0):t===w?c.setUint32(h,r,!0):t===E?c.setInt16(h,r,!0):t===_?c.setUint16(h,r,!0):t===x?c.setInt8(h,r):t===b&&c.setUint8(h,r),h+=o}const u={buffer:this.processBuffer(c.buffer),byteOffset:this.byteOffset,byteLength:l};void 0!==s&&(u.target=s),s===C&&(u.byteStride=e.itemSize*o),this.byteOffset+=l,a.bufferViews.push(u);return{id:a.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){const t=this,n=t.json;return n.bufferViews||(n.bufferViews=[]),e.arrayBuffer().then((e=>{const r=H(e),i={buffer:t.processBuffer(r),byteOffset:t.byteOffset,byteLength:r.byteLength};return t.byteOffset+=r.byteLength,n.bufferViews.push(i)-1}))}processAccessor(e,t,n,r){const s=this.json;let a;if(e.array.constructor===Float32Array)a=M;else if(e.array.constructor===Int32Array)a=S;else if(e.array.constructor===Uint32Array)a=w;else if(e.array.constructor===Int16Array)a=E;else if(e.array.constructor===Uint16Array)a=_;else if(e.array.constructor===Int8Array)a=x;else{if(e.array.constructor!==Uint8Array)throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);a=b}if(void 0===n&&(n=0),void 0===r&&(r=e.count),0===r)return null;const o=function(e,t,n){const r={min:new Array(e.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(e.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let s=t;s4?n=e.array[s*e.itemSize+t]:(0===t?n=e.getX(s):1===t?n=e.getY(s):2===t?n=e.getZ(s):3===t&&(n=e.getW(s)),!0===e.normalized&&(n=i.MathUtils.normalize(n,e.array))),r.min[t]=Math.min(r.min[t],n),r.max[t]=Math.max(r.max[t],n)}return r}(e,n,r);let l;void 0!==t&&(l=e===t.index?T:C);const c=this.processBufferView(e,a,n,r,l),h={bufferView:c.id,byteOffset:c.byteOffset,componentType:a,count:r,max:o.max,min:o.min,type:{1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"}[e.itemSize]};return!0===e.normalized&&(h.normalized=!0),s.accessors||(s.accessors=[]),s.accessors.push(h)-1}processImage(e,t,n,r="image/png"){if(null!==e){const s=this,o=s.cache,l=s.json,c=s.options,h=s.pending;o.images.has(e)||o.images.set(e,{});const u=o.images.get(e),d=r+":flipY/"+n.toString();if(void 0!==u[d])return u[d];l.images||(l.images=[]);const p={mimeType:r},f=j();f.width=Math.min(e.width,c.maxTextureSize),f.height=Math.min(e.height,c.maxTextureSize);const m=f.getContext("2d");if(!0===n&&(m.translate(0,f.height),m.scale(1,-1)),void 0!==e.data){t!==i.RGBAFormat&&console.error("GLTFExporter: Only RGBAFormat is supported.",t),(e.width>c.maxTextureSize||e.height>c.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);const n=new Uint8ClampedArray(e.height*e.width*4);for(let t=0;ts.processBufferViewImage(e))).then((e=>{p.bufferView=e}))):void 0!==f.toDataURL?p.uri=f.toDataURL(r):h.push(W(f,r).then(a).then((e=>{p.uri=e})));const g=l.images.push(p)-1;return u[d]=g,g}throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){const t=this.json;t.samplers||(t.samplers=[]);const n={magFilter:k[e.magFilter],minFilter:k[e.minFilter],wrapS:k[e.wrapS],wrapT:k[e.wrapT]};return t.samplers.push(n)-1}processTexture(e){const t=this.options,n=this.cache,r=this.json;if(n.textures.has(e))return n.textures.get(e);r.textures||(r.textures=[]),e instanceof i.CompressedTexture&&(e=u(e,t.maxTextureSize));let s=e.userData.mimeType;"image/webp"===s&&(s="image/png");const a={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,s)};e.name&&(a.name=e.name),this._invokeAll((function(t){t.writeTexture&&t.writeTexture(e,a)}));const o=r.textures.push(a)-1;return n.textures.set(e,o),o}processMaterial(e){const t=this.cache,n=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;n.materials||(n.materials=[]);const r={pbrMetallicRoughness:{}};!0!==e.isMeshStandardMaterial&&!0!==e.isMeshBasicMaterial&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");const s=e.color.toArray().concat([e.opacity]);if(Q(s,[1,1,1,1])||(r.pbrMetallicRoughness.baseColorFactor=s),e.isMeshStandardMaterial?(r.pbrMetallicRoughness.metallicFactor=e.metalness,r.pbrMetallicRoughness.roughnessFactor=e.roughness):(r.pbrMetallicRoughness.metallicFactor=.5,r.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){const t=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),n={index:this.processTexture(t),channel:t.channel};this.applyTextureTransform(n,t),r.pbrMetallicRoughness.metallicRoughnessTexture=n}if(e.map){const t={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(t,e.map),r.pbrMetallicRoughness.baseColorTexture=t}if(e.emissive){const t=e.emissive;if(Math.max(t.r,t.g,t.b)>0&&(r.emissiveFactor=e.emissive.toArray()),e.emissiveMap){const t={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(t,e.emissiveMap),r.emissiveTexture=t}}if(e.normalMap){const t={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&1!==e.normalScale.x&&(t.scale=e.normalScale.x),this.applyTextureTransform(t,e.normalMap),r.normalTexture=t}if(e.aoMap){const t={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};1!==e.aoMapIntensity&&(t.strength=e.aoMapIntensity),this.applyTextureTransform(t,e.aoMap),r.occlusionTexture=t}e.transparent?r.alphaMode="BLEND":e.alphaTest>0&&(r.alphaMode="MASK",r.alphaCutoff=e.alphaTest),e.side===i.DoubleSide&&(r.doubleSided=!0),""!==e.name&&(r.name=e.name),this.serializeUserData(e,r),this._invokeAll((function(t){t.writeMaterial&&t.writeMaterial(e,r)}));const a=n.materials.push(r)-1;return t.materials.set(e,a),a}processMesh(e){const t=this.cache,n=this.json,r=[e.geometry.uuid];if(Array.isArray(e.material))for(let i=0,s=e.material.length;i=152?{uv:"TEXCOORD_0",uv1:"TEXCOORD_1",uv2:"TEXCOORD_2",uv3:"TEXCOORD_3"}:{uv:"TEXCOORD_0",uv2:"TEXCOORD_1"},color:"COLOR_0",skinWeight:"WEIGHTS_0",skinIndex:"JOINTS_0"},f=o.getAttribute("normal");void 0===f||this.isNormalizedNormalAttribute(f)||(console.warn("THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one."),o.setAttribute("normal",this.createNormalizedNormalAttribute(f)));let x=null;for(let s in o.attributes){if("morph"===s.slice(0,5))continue;const e=o.attributes[s];s=p[s]||s.toUpperCase();if(/^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(s)||(s="_"+s),t.attributes.has(this.getUID(e))){h[s]=t.attributes.get(this.getUID(e));continue}x=null;const n=e.array;"JOINTS_0"!==s||n instanceof Uint16Array||n instanceof Uint8Array||(console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.'),x=new i.BufferAttribute(new Uint16Array(n),e.itemSize,e.normalized));const r=this.processAccessor(x||e,o);null!==r&&(s.startsWith("_")||this.detectMeshQuantization(s,e),h[s]=r,t.attributes.set(this.getUID(e),r))}if(void 0!==f&&o.setAttribute("normal",f),0===Object.keys(h).length)return null;if(void 0!==e.morphTargetInfluences&&e.morphTargetInfluences.length>0){const n=[],r=[],i={};if(void 0!==e.morphTargetDictionary)for(const t in e.morphTargetDictionary)i[e.morphTargetDictionary[t]]=t;for(let s=0;s0&&(c.extras={},c.extras.targetNames=r)}const b=Array.isArray(e.material);if(b&&0===o.groups.length)return null;const E=b?e.material:[e.material],_=b?o.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let i=0,s=_.length;i0&&(e.targets=d),null!==o.index){let n=this.getUID(o.index);void 0===_[i].start&&void 0===_[i].count||(n+=":"+_[i].start+":"+_[i].count),t.attributes.has(n)?e.indices=t.attributes.get(n):(e.indices=this.processAccessor(o.index,o,_[i].start,_[i].count),t.attributes.set(n,e.indices)),null===e.indices&&delete e.indices}const n=this.processMaterial(E[_[i].materialIndex]);null!==n&&(e.material=n),u.push(e)}c.primitives=u,n.meshes||(n.meshes=[]),this._invokeAll((function(t){t.writeMesh&&t.writeMesh(e,c)}));const S=n.meshes.push(c)-1;return t.meshes.set(a,S),S}detectMeshQuantization(e,t){if(this.extensionsUsed[N])return;let n;switch(t.array.constructor){case Int8Array:n="byte";break;case Uint8Array:n="unsigned byte";break;case Int16Array:n="short";break;case Uint16Array:n="unsigned short";break;default:return}t.normalized&&(n+=" normalized");const r=e.split("_",1)[0];d[r]&&d[r].includes(n)&&(this.extensionsUsed[N]=!0,this.extensionsRequired[N]=!0)}processCamera(e){const t=this.json;t.cameras||(t.cameras=[]);const n=e.isOrthographicCamera,r={type:n?"orthographic":"perspective"};return n?r.orthographic={xmag:2*e.right,ymag:2*e.top,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:r.perspective={aspectRatio:e.aspect,yfov:i.MathUtils.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},""!==e.name&&(r.name=e.type),t.cameras.push(r)-1}processAnimation(e,t){const n=this.json,r=this.nodeMap;n.animations||(n.animations=[]);const s=(e=p.Utils.mergeMorphTargetTracks(e.clone(),t)).tracks,a=[],o=[];for(let l=0;l0){const t=[];for(let r=0,i=e.children.length;r0&&(i.children=t)}this._invokeAll((function(t){t.writeNode&&t.writeNode(e,i)}));const s=t.nodes.push(i)-1;return r.set(e,s),s}processScene(e){const t=this.json,n=this.options;t.scenes||(t.scenes=[],t.scene=0);const r={};""!==e.name&&(r.name=e.name),t.scenes.push(r);const i=[];for(let s=0,a=e.children.length;s0&&(r.nodes=i),this.serializeUserData(e,r)}processObjects(e){const t=new i.Scene;t.name="AuxScene";for(let n=0;n0&&this.processObjects(n);for(let r=0;r0&&(s.range=e.distance)):e.isSpotLight&&(s.type="spot",e.distance>0&&(s.range=e.distance),s.spot={},s.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,s.spot.outerConeAngle=e.angle),void 0!==e.decay&&2!==e.decay&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),!e.target||e.target.parent===e&&0===e.target.position.x&&0===e.target.position.y&&-1===e.target.position.z||console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),i[this.name]||(r.extensions=r.extensions||{},r.extensions[this.name]={lights:[]},i[this.name]=!0);const a=r.extensions[this.name].lights;a.push(s),t.extensions=t.extensions||{},t.extensions[this.name]={light:a.length-1}}}class q{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;const n=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},n[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}}class K{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.clearcoat)return;const n=this.writer,r=n.extensionsUsed,i={};if(i.clearcoatFactor=e.clearcoat,e.clearcoatMap){const t={index:n.processTexture(e.clearcoatMap),texCoord:e.clearcoatMap.channel};n.applyTextureTransform(t,e.clearcoatMap),i.clearcoatTexture=t}if(i.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){const t={index:n.processTexture(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};n.applyTextureTransform(t,e.clearcoatRoughnessMap),i.clearcoatRoughnessTexture=t}if(e.clearcoatNormalMap){const t={index:n.processTexture(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};n.applyTextureTransform(t,e.clearcoatNormalMap),i.clearcoatNormalTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}}class J{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.iridescence)return;const n=this.writer,r=n.extensionsUsed,i={};if(i.iridescenceFactor=e.iridescence,e.iridescenceMap){const t={index:n.processTexture(e.iridescenceMap),texCoord:e.iridescenceMap.channel};n.applyTextureTransform(t,e.iridescenceMap),i.iridescenceTexture=t}if(i.iridescenceIor=e.iridescenceIOR,i.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],i.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){const t={index:n.processTexture(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};n.applyTextureTransform(t,e.iridescenceThicknessMap),i.iridescenceThicknessTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}}class Z{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;const n=this.writer,r=n.extensionsUsed,i={};if(i.transmissionFactor=e.transmission,e.transmissionMap){const t={index:n.processTexture(e.transmissionMap),texCoord:e.transmissionMap.channel};n.applyTextureTransform(t,e.transmissionMap),i.transmissionTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}}class ${constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;const n=this.writer,r=n.extensionsUsed,i={};if(i.thicknessFactor=e.thickness,e.thicknessMap){const t={index:n.processTexture(e.thicknessMap),texCoord:e.thicknessMap.channel};n.applyTextureTransform(t,e.thicknessMap),i.thicknessTexture=t}i.attenuationDistance=e.attenuationDistance,i.attenuationColor=e.attenuationColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}}class ee{constructor(e){this.writer=e,this.name="KHR_materials_ior"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1.5===e.ior)return;const n=this.writer.extensionsUsed,r={};r.ior=e.ior,t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}}class te{constructor(e){this.writer=e,this.name="KHR_materials_specular"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1===e.specularIntensity&&e.specularColor.equals(z)&&!e.specularIntensityMap&&!e.specularColorTexture)return;const n=this.writer,r=n.extensionsUsed,i={};if(e.specularIntensityMap){const t={index:n.processTexture(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};n.applyTextureTransform(t,e.specularIntensityMap),i.specularTexture=t}if(e.specularColorMap){const t={index:n.processTexture(e.specularColorMap),texCoord:e.specularColorMap.channel};n.applyTextureTransform(t,e.specularColorMap),i.specularColorTexture=t}i.specularFactor=e.specularIntensity,i.specularColorFactor=e.specularColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}}class ne{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.sheen)return;const n=this.writer,r=n.extensionsUsed,i={};if(e.sheenRoughnessMap){const t={index:n.processTexture(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};n.applyTextureTransform(t,e.sheenRoughnessMap),i.sheenRoughnessTexture=t}if(e.sheenColorMap){const t={index:n.processTexture(e.sheenColorMap),texCoord:e.sheenColorMap.channel};n.applyTextureTransform(t,e.sheenColorMap),i.sheenColorTexture=t}i.sheenRoughnessFactor=e.sheenRoughness,i.sheenColorFactor=e.sheenColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}}class re{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.anisotropy)return;const n=this.writer,r=n.extensionsUsed,i={};if(e.anisotropyMap){const t={index:n.processTexture(e.anisotropyMap)};n.applyTextureTransform(t,e.anisotropyMap),i.anisotropyTexture=t}i.anisotropyStrength=e.anisotropy,i.anisotropyRotation=e.anisotropyRotation,t.extensions=t.extensions||{},t.extensions[this.name]=i,r[this.name]=!0}}class ie{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}writeMaterial(e,t){if(!e.isMeshStandardMaterial||1===e.emissiveIntensity)return;const n=this.writer.extensionsUsed,r={};r.emissiveStrength=e.emissiveIntensity,t.extensions=t.extensions||{},t.extensions[this.name]=r,n[this.name]=!0}}t.GLTFExporter=p},17351:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(62717);t.MMDExporter=class{constructor(){i(this,"u2sTable")}parseVpd(e,t,n){if(!0!==e.isSkinnedMesh)return console.warn("THREE.MMDExporter: parseVpd() requires SkinnedMesh instance."),null;function r(e){Math.abs(e)<1e-6&&(e=0);let t=e.toString();-1===t.indexOf(".")&&(t+="."),t+="000000";const n=t.indexOf(".");return t.slice(0,n)+"."+t.slice(n+1,n+7)}function i(e){const t=[];for(let n=0,i=e.length;n255?(t.push(i>>8&255),t.push(255&i)):t.push(255&i)}return new Uint8Array(t)}getBindBones(e){const t=e.clone();return t.pose(),t.skeleton.bones}}},32434:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);t.OBJExporter=class{constructor(){i(this,"output"),i(this,"indexVertex"),i(this,"indexVertexUvs"),i(this,"indexNormals"),i(this,"vertex"),i(this,"color"),i(this,"normal"),i(this,"uv"),i(this,"face"),this.output="",this.indexVertex=0,this.indexVertexUvs=0,this.indexNormals=0,this.vertex=new s.Vector3,this.color=new s.Color,this.normal=new s.Vector3,this.uv=new s.Vector2,this.face=[]}parse(e){return e.traverse((e=>{e instanceof s.Mesh&&e.isMesh&&this.parseMesh(e),e instanceof s.Line&&e.isLine&&this.parseLine(e),e instanceof s.Points&&e.isPoints&&this.parsePoints(e)})),this.output}parseMesh(e){let t=0,n=0,r=0;const i=e.geometry,a=new s.Matrix3;if(!i.isBufferGeometry)throw new Error("THREE.OBJExporter: Geometry is not of type THREE.BufferGeometry.");const o=i.getAttribute("position"),l=i.getAttribute("normal"),c=i.getAttribute("uv"),h=i.getIndex();if(this.output+=`o ${e.name}\n`,e.material&&!Array.isArray(e.material)&&e.material.name&&(this.output+=`usemtl ${e.material.name}\n`),void 0!==o)for(let s=0,u=o.count;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.PLYExporter=class{parse(e,t,n){t&&"object"==typeof t&&(console.warn('THREE.PLYExporter: The options parameter is now the third argument to the "parse" function. See the documentation for the new API.'),n=t,t=void 0);const i=(n=Object.assign({binary:!1,excludeAttributes:[],littleEndian:!1},n)).excludeAttributes;let s=!1,a=!1,o=!1,l=0,c=0;e.traverse((function(e){if(e instanceof r.Mesh&&e.isMesh){const t=e.geometry;if(!t.isBufferGeometry)throw new Error("THREE.PLYExporter: Geometry is not of type THREE.BufferGeometry.");const n=t.getAttribute("position"),r=t.getAttribute("normal"),i=t.getAttribute("uv"),h=t.getAttribute("color"),u=t.getIndex();if(void 0===n)return;l+=n.count,c+=u?u.count/3:n.count/3,void 0!==r&&(s=!0),void 0!==i&&(o=!0),void 0!==h&&(a=!0)}}));const h=-1===(null==i?void 0:i.indexOf("index"));if(s=s&&-1===(null==i?void 0:i.indexOf("normal")),a=a&&-1===(null==i?void 0:i.indexOf("color")),o=o&&-1===(null==i?void 0:i.indexOf("uv")),h&&c!==Math.floor(c))return console.error("PLYExporter: Failed to generate a valid PLY file with triangle indices because the number of indices is not divisible by 3."),null;let u=`ply\nformat ${n.binary?n.littleEndian?"binary_little_endian":"binary_big_endian":"ascii"} 1.0\nelement vertex ${l}\nproperty float x\nproperty float y\nproperty float z\n`;s&&(u+="property float nx\nproperty float ny\nproperty float nz\n"),o&&(u+="property float s\nproperty float t\n"),a&&(u+="property uchar red\nproperty uchar green\nproperty uchar blue\n"),h&&(u+=`element face ${c}\nproperty list uchar int vertex_index\n`),u+="end_header\n";const d=new r.Vector3,p=new r.Matrix3;let f=null;if(n.binary){const t=(new TextEncoder).encode(u),r=l*(12+(s?12:0)+(a?3:0)+(o?8:0)),i=h?13*c:0,m=new DataView(new ArrayBuffer(t.length+r+i));new Uint8Array(m.buffer).set(t,0);let g=t.length,A=t.length+r,v=0;this.traverseMeshes(e,(function(e,t){const r=t.getAttribute("position"),i=t.getAttribute("normal"),l=t.getAttribute("uv"),c=t.getAttribute("color"),u=t.getIndex();p.getNormalMatrix(e.matrixWorld);for(let h=0,f=r.count;ht&&t("string"==typeof f?f:""))),f}traverseMeshes(e,t){e.traverse((function(e){if(e instanceof r.Mesh&&e.isMesh){const n=e,r=n.geometry;if(!r.isBufferGeometry)throw new Error("THREE.PLYExporter: Geometry is not of type THREE.BufferGeometry.");r.hasAttribute("position")&&t(n,r)}}))}}},37181:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);t.STLExporter=class{constructor(){i(this,"binary"),i(this,"output"),i(this,"offset"),i(this,"objects"),i(this,"triangles"),i(this,"vA"),i(this,"vB"),i(this,"vC"),i(this,"cb"),i(this,"ab"),i(this,"normal"),this.binary=!1,this.output="",this.offset=80,this.objects=[],this.triangles=0,this.vA=new s.Vector3,this.vB=new s.Vector3,this.vC=new s.Vector3,this.cb=new s.Vector3,this.ab=new s.Vector3,this.normal=new s.Vector3}parse(e,t){if(this.binary=void 0!==t.binary&&t.binary,e.traverse((e=>{if(e instanceof s.Mesh&&e.isMesh){const t=e.geometry;if(!t.isBufferGeometry)throw new Error("THREE.STLExporter: Geometry is not of type THREE.BufferGeometry.");const n=t.index,r=t.getAttribute("position");this.triangles+=null!==n?n.count/3:r.count/3,this.objects.push({object3d:e,geometry:t})}})),this.binary){const e=2*this.triangles+3*this.triangles*4*4+80+4,t=new ArrayBuffer(e);this.output=new DataView(t),this.output.setUint32(this.offset,this.triangles,!0),this.offset+=4}else this.output="",this.output+="solid exported\n";for(let n=0,r=this.objects.length;n{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(8083),a=n(85232);t.USDZExporter=class{constructor(){i(this,"PRECISION",7),i(this,"materials"),i(this,"textures"),i(this,"files"),this.materials={},this.textures={},this.files={}}async parse(e){const t="model.usda";this.files[t]=null;let n=this.buildHeader();e.traverseVisible((e=>{if(e instanceof a.Mesh&&e.isMesh&&e.material.isMeshStandardMaterial){const t=e.geometry,r=e.material,i="geometries/Geometry_"+t.id+".usd";if(!(i in this.files)){const e=this.buildMeshObject(t);this.files[i]=this.buildUSDFileAsString(e)}r.uuid in this.materials||(this.materials[r.uuid]=r),n+=this.buildXform(e,t,r)}})),n+=this.buildMaterials(this.materials),this.files[t]=s.strToU8(n),n=null;for(const i in this.textures){const e=this.textures[i],t=i.split("_")[1],n=1023===e.format,r=this.imageToCanvas(e.image,t),s=await new Promise((e=>null==r?void 0:r.toBlob(e,n?"image/png":"image/jpeg",1)));s&&(this.files[`textures/Texture_${i}.${n?"png":"jpg"}`]=new Uint8Array(await s.arrayBuffer()))}let r=0;for(const i in this.files){const e=this.files[i];r+=34+i.length;const t=63&r;if(4!==t&&null!==e&&e instanceof Uint8Array){const n=new Uint8Array(64-t);this.files[i]=[e,{extra:{12345:n}}]}e&&"number"==typeof e.length&&(r=e.length)}return s.zipSync(this.files,{level:0})}imageToCanvas(e,t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const n=1024/Math.max(e.width,e.height),r=document.createElement("canvas");r.width=e.width*Math.min(1,n),r.height=e.height*Math.min(1,n);const i=r.getContext("2d");if(null==i||i.drawImage(e,0,0,r.width,r.height),void 0!==t){const e=parseInt(t,16),n=(e>>16&255)/255,s=(e>>8&255)/255,a=(255&e)/255,o=null==i?void 0:i.getImageData(0,0,r.width,r.height);if(o){const e=null==o?void 0:o.data;for(let t=0;t\n)\n{\n matrix4d xformOp:transform = ${i}\n uniform token[] xformOpOrder = ["xformOp:transform"]\n rel material:binding = \n}\n`}buildMatrix(e){const t=e.elements;return`( ${this.buildMatrixRow(t,0)}, ${this.buildMatrixRow(t,4)}, ${this.buildMatrixRow(t,8)}, ${this.buildMatrixRow(t,12)} )`}buildMatrixRow(e,t){return`(${e[t+0]}, ${e[t+1]}, ${e[t+2]}, ${e[t+3]})`}buildMeshObject(e){return`\ndef "Geometry"\n{\n ${this.buildMesh(e)}\n}\n`}buildMesh(e){const t=e.attributes,n=t.position.count;return`\n def Mesh "Geometry"\n {\n int[] faceVertexCounts = [${this.buildMeshVertexCount(e)}]\n int[] faceVertexIndices = [${this.buildMeshVertexIndices(e)}]\n normal3f[] normals = [${this.buildVector3Array(t.normal,n)}] (\n interpolation = "vertex"\n )\n point3f[] points = [${this.buildVector3Array(t.position,n)}]\n float2[] primvars:st = [${this.buildVector2Array(t.uv,n)}] (\n interpolation = "vertex"\n )\n uniform token subdivisionScheme = "none"\n }\n`}buildMeshVertexCount(e){const t=null!==e.index?e.index.array.length:e.attributes.position.count;return Array(t/3).fill(3).join(", ")}buildMeshVertexIndices(e){if(null!==e.index)return e.index.array.join(", ");const t=[],n=e.attributes.position.count;for(let r=0;r`),r.push(this.buildTexture(e,e.map,"diffuse",e.color))):n.push(`${t}color3f inputs:diffuseColor = ${this.buildColor(e.color)}`),null!==e.emissiveMap?(n.push(`${t}color3f inputs:emissiveColor.connect = `),r.push(this.buildTexture(e,e.emissiveMap,"emissive"))):e.emissive.getHex()>0&&n.push(`${t}color3f inputs:emissiveColor = ${this.buildColor(e.emissive)}`),null!==e.normalMap&&(n.push(`${t}normal3f inputs:normal.connect = `),r.push(this.buildTexture(e,e.normalMap,"normal"))),null!==e.aoMap&&(n.push(`${t}float inputs:occlusion.connect = `),r.push(this.buildTexture(e,e.aoMap,"occlusion"))),null!==e.roughnessMap&&1===e.roughness?(n.push(`${t}float inputs:roughness.connect = `),r.push(this.buildTexture(e,e.roughnessMap,"roughness"))):n.push(`${t}float inputs:roughness = ${e.roughness}`),null!==e.metalnessMap&&1===e.metalness?(n.push(`${t}float inputs:metallic.connect = `),r.push(this.buildTexture(e,e.metalnessMap,"metallic"))):n.push(`${t}float inputs:metallic = ${e.metalness}`),n.push(`${t}float inputs:opacity = ${e.opacity}`),e instanceof a.MeshPhysicalMaterial&&(n.push(`${t}float inputs:clearcoat = ${e.clearcoat}`),n.push(`${t}float inputs:clearcoatRoughness = ${e.clearcoatRoughness}`),n.push(`${t}float inputs:ior = ${e.ior}`)),`\n def Material "Material_${e.id}"\n {\n def Shader "PreviewSurface"\n {\n uniform token info:id = "UsdPreviewSurface"\n${n.join("\n")}\n int inputs:useSpecularWorkflow = 0\n token outputs:surface\n }\n token outputs:surface.connect = \n token inputs:frame:stPrimvarName = "st"\n def Shader "uvReader_st"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n token inputs:varname.connect = \n float2 inputs:fallback = (0.0, 0.0)\n float2 outputs:result\n }\n${r.join("\n")}\n }\n`}buildTexture(e,t,n,r){const i=t.id+(r?"_"+r.getHexString():""),s=1023===t.format;return this.textures[i]=t,`\n def Shader "Transform2d_${n}" (\n sdrMetadata = {\n string role = "math"\n }\n )\n {\n uniform token info:id = "UsdTransform2d"\n float2 inputs:in.connect = \n float2 inputs:scale = ${this.buildVector2(t.repeat)}\n float2 inputs:translation = ${this.buildVector2(t.offset)}\n float2 outputs:result\n }\n def Shader "Texture_${t.id}_${n}"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_${i}.${s?"png":"jpg"}@\n float2 inputs:st.connect = \n token inputs:wrapS = "repeat"\n token inputs:wrapT = "repeat"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n }`}buildColor(e){return`(${e.r}, ${e.g}, ${e.b})`}buildVector2(e){return`(${e.x}, ${e.y})`}}},86584:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.BufferGeometry{constructor(e,t,n,i,s,a){super();const o=(e=e||1)/2,l=(t=t||1)/2,c=(n=n||1)/2,h=e/(i=Math.floor(i)||1),u=t/(s=Math.floor(s)||1),d=n/(a=Math.floor(a)||1),p=[];let f=-o,m=-l,g=-c;for(let r=0;r<=i;r++)p.push(f,-l,-c,f,l,-c),p.push(f,l,-c,f,l,c),p.push(f,l,c,f,-l,c),p.push(f,-l,c,f,-l,-c),f+=h;for(let r=0;r<=s;r++)p.push(-o,m,-c,o,m,-c),p.push(o,m,-c,o,m,c),p.push(o,m,c,-o,m,c),p.push(-o,m,c,-o,m,-c),m+=u;for(let r=0;r<=a;r++)p.push(-o,-l,g,-o,l,g),p.push(-o,l,g,o,l,g),p.push(o,l,g,o,-l,g),p.push(o,-l,g,-o,-l,g),g+=d;this.setAttribute("position",new r.Float32BufferAttribute(p,3))}}t.BoxLineGeometry=i},92018:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(90515);class s extends r.BufferGeometry{constructor(e=[]){super();const t=[],n=[],s=(new i.ConvexHull).setFromPoints(e).faces;for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.BufferGeometry{constructor(e,t,n,i){super();const a=[],o=[],l=[],c=new r.Vector3,h=new r.Matrix4;h.makeRotationFromEuler(n),h.setPosition(t);const u=new r.Matrix4;function d(t,n,r){n.applyMatrix4(e.matrixWorld),n.applyMatrix4(u),r.transformDirection(e.matrixWorld),t.push(new s(n.clone(),r.clone()))}function p(e,t){const n=[],r=.5*Math.abs(i.dot(t));for(let i=0;i0,a=e[i+1].position.dot(t)-r>0,o=e[i+2].position.dot(t)-r>0,d=(s?1:0)+(a?1:0)+(o?1:0),d){case 0:n.push(e[i]),n.push(e[i+1]),n.push(e[i+2]);break;case 1:if(s&&(l=e[i+1],c=e[i+2],h=f(e[i],l,t,r),u=f(e[i],c,t,r)),a){l=e[i],c=e[i+2],h=f(e[i+1],l,t,r),u=f(e[i+1],c,t,r),n.push(h),n.push(c.clone()),n.push(l.clone()),n.push(c.clone()),n.push(h.clone()),n.push(u);break}o&&(l=e[i],c=e[i+1],h=f(e[i+2],l,t,r),u=f(e[i+2],c,t,r)),n.push(l.clone()),n.push(c.clone()),n.push(h),n.push(u),n.push(h.clone()),n.push(c.clone());break;case 2:s||(l=e[i].clone(),c=f(l,e[i+1],t,r),h=f(l,e[i+2],t,r),n.push(l),n.push(c),n.push(h)),a||(l=e[i+1].clone(),c=f(l,e[i+2],t,r),h=f(l,e[i],t,r),n.push(l),n.push(c),n.push(h)),o||(l=e[i+2].clone(),c=f(l,e[i],t,r),h=f(l,e[i+1],t,r),n.push(l),n.push(c),n.push(h))}}return n}function f(e,t,n,i){const a=e.position.dot(n)-i,o=a/(a-(t.position.dot(n)-i));return new s(new r.Vector3(e.position.x+o*(t.position.x-e.position.x),e.position.y+o*(t.position.y-e.position.y),e.position.z+o*(t.position.z-e.position.z)),new r.Vector3(e.normal.x+o*(t.normal.x-e.normal.x),e.normal.y+o*(t.normal.y-e.normal.y),e.normal.z+o*(t.normal.z-e.normal.z)))}u.copy(h).invert(),function(){let t,n=[];const s=new r.Vector3,u=new r.Vector3;if(!0===e.geometry.isGeometry)return void console.error("THREE.DecalGeometry no longer supports THREE.Geometry. Use BufferGeometry instead.");const f=e.geometry,m=f.attributes.position,g=f.attributes.normal;if(null!==f.index){const e=f.index;for(t=0;t{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(84181),o=class extends s.BufferGeometry{constructor(e={}){super(),this.isLightningStrike=!0,this.type="LightningStrike",this.init(o.copyParameters(e,e)),this.createMesh()}static createRandomGenerator(){const e=2053,t=[];for(let r=0;rthis.subrays[0].beginVanishingTime?this.state=o.RAY_VANISHING:this.state=o.RAY_STEADY,this.visible=!0):(this.visible=!1,e=n.fraction0*r.propagationTimeFactor&&(t.createPrism(n),t.onDecideSubrayCreation(n,t)):e=this.currentSubray.maxIterations)return void this.currentSegmentCallback(e);this.forwards.subVectors(e.pos1,e.pos0);let t=this.forwards.length();t<1e-6&&(this.forwards.set(0,0,.01),t=this.forwards.length());const n=.5*(e.radius0+e.radius1),r=.5*(e.fraction0+e.fraction1),i=this.time*this.currentSubray.timeScale*Math.pow(2,e.iteration);this.middlePos.lerpVectors(e.pos0,e.pos1,.5),this.middleLinPos.lerpVectors(e.linPos0,e.linPos1,.5);const s=this.middleLinPos;this.newPos.set(this.simplexX.noise4d(s.x,s.y,s.z,i),this.simplexY.noise4d(s.x,s.y,s.z,i),this.simplexZ.noise4d(s.x,s.y,s.z,i)),this.newPos.multiplyScalar(e.positionVariationFactor*t),this.newPos.add(this.middlePos);const a=this.getNewSegment();a.pos0.copy(e.pos0),a.pos1.copy(this.newPos),a.linPos0.copy(e.linPos0),a.linPos1.copy(this.middleLinPos),a.up0.copy(e.up0),a.up1.copy(e.up1),a.radius0=e.radius0,a.radius1=n,a.fraction0=e.fraction0,a.fraction1=r,a.positionVariationFactor=e.positionVariationFactor*this.currentSubray.roughness,a.iteration=e.iteration+1;const o=this.getNewSegment();o.pos0.copy(this.newPos),o.pos1.copy(e.pos1),o.linPos0.copy(this.middleLinPos),o.linPos1.copy(e.linPos1),this.cross1.crossVectors(e.up0,this.forwards.normalize()),o.up0.crossVectors(this.forwards,this.cross1).normalize(),o.up1.copy(e.up1),o.radius0=n,o.radius1=e.radius1,o.fraction0=r,o.fraction1=e.fraction1,o.positionVariationFactor=e.positionVariationFactor*this.currentSubray.roughness,o.iteration=e.iteration+1,this.fractalRayRecursive(a),this.fractalRayRecursive(o)}createPrism(e){this.forwardsFill.subVectors(e.pos1,e.pos0).normalize(),this.isInitialSegment&&(this.currentCreateTriangleVertices(e.pos0,e.up0,this.forwardsFill,e.radius0,0),this.isInitialSegment=!1),this.currentCreateTriangleVertices(e.pos1,e.up0,this.forwardsFill,e.radius1,e.fraction1),this.createPrismFaces()}createTriangleVerticesWithoutUVs(e,t,n,r){this.side.crossVectors(t,n).multiplyScalar(r*o.COS30DEG),this.down.copy(t).multiplyScalar(-r*o.SIN30DEG);const i=this.vPos,s=this.vertices;i.copy(e).sub(this.side).add(this.down),s[this.currentCoordinate++]=i.x,s[this.currentCoordinate++]=i.y,s[this.currentCoordinate++]=i.z,i.copy(e).add(this.side).add(this.down),s[this.currentCoordinate++]=i.x,s[this.currentCoordinate++]=i.y,s[this.currentCoordinate++]=i.z,i.copy(t).multiplyScalar(r).add(e),s[this.currentCoordinate++]=i.x,s[this.currentCoordinate++]=i.y,s[this.currentCoordinate++]=i.z,this.currentVertex+=3}createTriangleVerticesWithUVs(e,t,n,r,i){this.side.crossVectors(t,n).multiplyScalar(r*o.COS30DEG),this.down.copy(t).multiplyScalar(-r*o.SIN30DEG);const s=this.vPos,a=this.vertices,l=this.uvs;s.copy(e).sub(this.side).add(this.down),a[this.currentCoordinate++]=s.x,a[this.currentCoordinate++]=s.y,a[this.currentCoordinate++]=s.z,l[this.currentUVCoordinate++]=i,l[this.currentUVCoordinate++]=0,s.copy(e).add(this.side).add(this.down),a[this.currentCoordinate++]=s.x,a[this.currentCoordinate++]=s.y,a[this.currentCoordinate++]=s.z,l[this.currentUVCoordinate++]=i,l[this.currentUVCoordinate++]=.5,s.copy(t).multiplyScalar(r).add(e),a[this.currentCoordinate++]=s.x,a[this.currentCoordinate++]=s.y,a[this.currentCoordinate++]=s.z,l[this.currentUVCoordinate++]=i,l[this.currentUVCoordinate++]=1,this.currentVertex+=3}createPrismFaces(e){const t=this.indices;e=this.currentVertex-6,t[this.currentIndex++]=e+1,t[this.currentIndex++]=e+2,t[this.currentIndex++]=e+5,t[this.currentIndex++]=e+1,t[this.currentIndex++]=e+5,t[this.currentIndex++]=e+4,t[this.currentIndex++]=e+0,t[this.currentIndex++]=e+1,t[this.currentIndex++]=e+4,t[this.currentIndex++]=e+0,t[this.currentIndex++]=e+4,t[this.currentIndex++]=e+3,t[this.currentIndex++]=e+2,t[this.currentIndex++]=e+0,t[this.currentIndex++]=e+3,t[this.currentIndex++]=e+2,t[this.currentIndex++]=e+3,t[this.currentIndex++]=e+5}createDefaultSubrayCreationCallbacks(){const e=this.randomGenerator.random;this.onDecideSubrayCreation=function(t,n){const r=n.currentSubray,i=n.rayParameters.subrayPeriod,a=n.rayParameters.subrayDutyCycle,o=n.rayParameters.isEternal&&0==r.recursion?-e()*i:s.MathUtils.lerp(r.birthTime,r.endPropagationTime,t.fraction0)-e()*i,l=n.time-o,c=Math.floor(l/i),h=e()*(c+1);let u=0;if(l%i<=a*i&&(u=n.subrayProbability),r.recursion{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(41019);class s extends i.ParametricGeometry{constructor(e,t=64,n=1,i=8,s=!1){const a=t+1,o=e.computeFrenetFrames(t,s),l=o.tangents,c=o.normals,h=o.binormals,u=new r.Vector3;super((function(t,r,i){r*=2*Math.PI;const s=Math.floor(t*(a-1));e.getPointAt(t,u);const o=c[s],l=h[s],d=-n*Math.cos(r),p=n*Math.sin(r);u.x+=d*o.x+p*l.x,u.y+=d*o.y+p*l.y,u.z+=d*o.z+p*l.z,i.copy(u)}),t,i),this.tangents=l,this.normals=c,this.binormals=h,this.path=e,this.segments=t,this.radius=n,this.segmentsRadius=i,this.closed=s}}const a={klein:function(e,t,n){let r,i;t*=Math.PI,e*=2*Math.PI,(t*=2){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.BufferGeometry{constructor(e=((e,t,n)=>n.set(e,t,Math.cos(e)*Math.sin(t))),t=8,n=8){super(),this.type="ParametricGeometry",this.parameters={func:e,slices:t,stacks:n};const i=[],s=[],a=[],o=[],l=1e-5,c=new r.Vector3,h=new r.Vector3,u=new r.Vector3,d=new r.Vector3,p=new r.Vector3,f=t+1;for(let r=0;r<=n;r++){const i=r/n;for(let n=0;n<=t;n++){const r=n/t;e(r,i,h),s.push(h.x,h.y,h.z),r-l>=0?(e(r-l,i,u),d.subVectors(h,u)):(e(r+l,i,u),d.subVectors(u,h)),i-l>=0?(e(r,i-l,u),p.subVectors(h,u)):(e(r,i+l,u),p.subVectors(u,h)),c.crossVectors(d,p).normalize(),a.push(c.x,c.y,c.z),o.push(r,i)}}for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Vector3;function s(e,t,n,r,s,a){const o=2*Math.PI*s/4,l=Math.max(a-2*s,0),c=Math.PI/4;i.copy(t),i[r]=0,i.normalize();const h=.5*o/(o+l),u=1-i.angleTo(e)/c;if(1===Math.sign(i[n]))return u*h;return l/(o+l)+h+h*(1-u)}class a extends r.BoxGeometry{constructor(e=1,t=1,n=1,i=2,a=.1){if(i=2*i+1,a=Math.min(e/2,t/2,n/2,a),super(1,1,1,i,i,i),1===i)return;const o=this.toNonIndexed();this.index=null,this.attributes.position=o.attributes.position,this.attributes.normal=o.attributes.normal,this.attributes.uv=o.attributes.uv;const l=new r.Vector3,c=new r.Vector3,h=new r.Vector3(e,t,n).divideScalar(2).subScalar(a),u=this.attributes.position.array,d=this.attributes.normal.array,p=this.attributes.uv.array,f=u.length/6,m=new r.Vector3,g=.5/i;for(let r=0,A=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.BufferGeometry{constructor(e,t,n,i,s,a,o){const l=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,3,16,17,18,7,19,20,21,11,22,23,24,15,25,26,27,18,28,29,30,21,31,32,33,24,34,35,36,27,37,38,39,30,40,41,0,33,42,43,4,36,44,45,8,39,46,47,12,12,13,14,15,48,49,50,51,52,53,54,55,56,57,58,59,15,25,26,27,51,60,61,62,55,63,64,65,59,66,67,68,27,37,38,39,62,69,70,71,65,72,73,74,68,75,76,77,39,46,47,12,71,78,79,48,74,80,81,52,77,82,83,56,56,57,58,59,84,85,86,87,88,89,90,91,92,93,94,95,59,66,67,68,87,96,97,98,91,99,100,101,95,102,103,104,68,75,76,77,98,105,106,107,101,108,109,110,104,111,112,113,77,82,83,56,107,114,115,84,110,116,117,88,113,118,119,92,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,123,136,137,120,127,138,139,124,131,140,141,128,135,142,143,132,132,133,134,135,144,145,146,147,148,149,150,151,68,152,153,154,135,142,143,132,147,155,156,144,151,157,158,148,154,159,160,68,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,164,177,178,161,168,179,180,165,172,181,182,169,176,183,184,173,173,174,175,176,185,186,187,188,189,190,191,192,193,194,195,196,176,183,184,173,188,197,198,185,192,199,200,189,196,201,202,193,203,203,203,203,204,205,206,207,208,208,208,208,209,210,211,212,203,203,203,203,207,213,214,215,208,208,208,208,212,216,217,218,203,203,203,203,215,219,220,221,208,208,208,208,218,222,223,224,203,203,203,203,221,225,226,204,208,208,208,208,224,227,228,209,209,210,211,212,229,230,231,232,233,234,235,236,237,238,239,240,212,216,217,218,232,241,242,243,236,244,245,246,240,247,248,249,218,222,223,224,243,250,251,252,246,253,254,255,249,256,257,258,224,227,228,209,252,259,260,229,255,261,262,233,258,263,264,237,265,265,265,265,266,267,268,269,270,271,272,273,92,119,118,113,265,265,265,265,269,274,275,276,273,277,278,279,113,112,111,104,265,265,265,265,276,280,281,282,279,283,284,285,104,103,102,95,265,265,265,265,282,286,287,266,285,288,289,270,95,94,93,92],c=[1.4,0,2.4,1.4,-.784,2.4,.784,-1.4,2.4,0,-1.4,2.4,1.3375,0,2.53125,1.3375,-.749,2.53125,.749,-1.3375,2.53125,0,-1.3375,2.53125,1.4375,0,2.53125,1.4375,-.805,2.53125,.805,-1.4375,2.53125,0,-1.4375,2.53125,1.5,0,2.4,1.5,-.84,2.4,.84,-1.5,2.4,0,-1.5,2.4,-.784,-1.4,2.4,-1.4,-.784,2.4,-1.4,0,2.4,-.749,-1.3375,2.53125,-1.3375,-.749,2.53125,-1.3375,0,2.53125,-.805,-1.4375,2.53125,-1.4375,-.805,2.53125,-1.4375,0,2.53125,-.84,-1.5,2.4,-1.5,-.84,2.4,-1.5,0,2.4,-1.4,.784,2.4,-.784,1.4,2.4,0,1.4,2.4,-1.3375,.749,2.53125,-.749,1.3375,2.53125,0,1.3375,2.53125,-1.4375,.805,2.53125,-.805,1.4375,2.53125,0,1.4375,2.53125,-1.5,.84,2.4,-.84,1.5,2.4,0,1.5,2.4,.784,1.4,2.4,1.4,.784,2.4,.749,1.3375,2.53125,1.3375,.749,2.53125,.805,1.4375,2.53125,1.4375,.805,2.53125,.84,1.5,2.4,1.5,.84,2.4,1.75,0,1.875,1.75,-.98,1.875,.98,-1.75,1.875,0,-1.75,1.875,2,0,1.35,2,-1.12,1.35,1.12,-2,1.35,0,-2,1.35,2,0,.9,2,-1.12,.9,1.12,-2,.9,0,-2,.9,-.98,-1.75,1.875,-1.75,-.98,1.875,-1.75,0,1.875,-1.12,-2,1.35,-2,-1.12,1.35,-2,0,1.35,-1.12,-2,.9,-2,-1.12,.9,-2,0,.9,-1.75,.98,1.875,-.98,1.75,1.875,0,1.75,1.875,-2,1.12,1.35,-1.12,2,1.35,0,2,1.35,-2,1.12,.9,-1.12,2,.9,0,2,.9,.98,1.75,1.875,1.75,.98,1.875,1.12,2,1.35,2,1.12,1.35,1.12,2,.9,2,1.12,.9,2,0,.45,2,-1.12,.45,1.12,-2,.45,0,-2,.45,1.5,0,.225,1.5,-.84,.225,.84,-1.5,.225,0,-1.5,.225,1.5,0,.15,1.5,-.84,.15,.84,-1.5,.15,0,-1.5,.15,-1.12,-2,.45,-2,-1.12,.45,-2,0,.45,-.84,-1.5,.225,-1.5,-.84,.225,-1.5,0,.225,-.84,-1.5,.15,-1.5,-.84,.15,-1.5,0,.15,-2,1.12,.45,-1.12,2,.45,0,2,.45,-1.5,.84,.225,-.84,1.5,.225,0,1.5,.225,-1.5,.84,.15,-.84,1.5,.15,0,1.5,.15,1.12,2,.45,2,1.12,.45,.84,1.5,.225,1.5,.84,.225,.84,1.5,.15,1.5,.84,.15,-1.6,0,2.025,-1.6,-.3,2.025,-1.5,-.3,2.25,-1.5,0,2.25,-2.3,0,2.025,-2.3,-.3,2.025,-2.5,-.3,2.25,-2.5,0,2.25,-2.7,0,2.025,-2.7,-.3,2.025,-3,-.3,2.25,-3,0,2.25,-2.7,0,1.8,-2.7,-.3,1.8,-3,-.3,1.8,-3,0,1.8,-1.5,.3,2.25,-1.6,.3,2.025,-2.5,.3,2.25,-2.3,.3,2.025,-3,.3,2.25,-2.7,.3,2.025,-3,.3,1.8,-2.7,.3,1.8,-2.7,0,1.575,-2.7,-.3,1.575,-3,-.3,1.35,-3,0,1.35,-2.5,0,1.125,-2.5,-.3,1.125,-2.65,-.3,.9375,-2.65,0,.9375,-2,-.3,.9,-1.9,-.3,.6,-1.9,0,.6,-3,.3,1.35,-2.7,.3,1.575,-2.65,.3,.9375,-2.5,.3,1.125,-1.9,.3,.6,-2,.3,.9,1.7,0,1.425,1.7,-.66,1.425,1.7,-.66,.6,1.7,0,.6,2.6,0,1.425,2.6,-.66,1.425,3.1,-.66,.825,3.1,0,.825,2.3,0,2.1,2.3,-.25,2.1,2.4,-.25,2.025,2.4,0,2.025,2.7,0,2.4,2.7,-.25,2.4,3.3,-.25,2.4,3.3,0,2.4,1.7,.66,.6,1.7,.66,1.425,3.1,.66,.825,2.6,.66,1.425,2.4,.25,2.025,2.3,.25,2.1,3.3,.25,2.4,2.7,.25,2.4,2.8,0,2.475,2.8,-.25,2.475,3.525,-.25,2.49375,3.525,0,2.49375,2.9,0,2.475,2.9,-.15,2.475,3.45,-.15,2.5125,3.45,0,2.5125,2.8,0,2.4,2.8,-.15,2.4,3.2,-.15,2.4,3.2,0,2.4,3.525,.25,2.49375,2.8,.25,2.475,3.45,.15,2.5125,2.9,.15,2.475,3.2,.15,2.4,2.8,.15,2.4,0,0,3.15,.8,0,3.15,.8,-.45,3.15,.45,-.8,3.15,0,-.8,3.15,0,0,2.85,.2,0,2.7,.2,-.112,2.7,.112,-.2,2.7,0,-.2,2.7,-.45,-.8,3.15,-.8,-.45,3.15,-.8,0,3.15,-.112,-.2,2.7,-.2,-.112,2.7,-.2,0,2.7,-.8,.45,3.15,-.45,.8,3.15,0,.8,3.15,-.2,.112,2.7,-.112,.2,2.7,0,.2,2.7,.45,.8,3.15,.8,.45,3.15,.112,.2,2.7,.2,.112,2.7,.4,0,2.55,.4,-.224,2.55,.224,-.4,2.55,0,-.4,2.55,1.3,0,2.55,1.3,-.728,2.55,.728,-1.3,2.55,0,-1.3,2.55,1.3,0,2.4,1.3,-.728,2.4,.728,-1.3,2.4,0,-1.3,2.4,-.224,-.4,2.55,-.4,-.224,2.55,-.4,0,2.55,-.728,-1.3,2.55,-1.3,-.728,2.55,-1.3,0,2.55,-.728,-1.3,2.4,-1.3,-.728,2.4,-1.3,0,2.4,-.4,.224,2.55,-.224,.4,2.55,0,.4,2.55,-1.3,.728,2.55,-.728,1.3,2.55,0,1.3,2.55,-1.3,.728,2.4,-.728,1.3,2.4,0,1.3,2.4,.224,.4,2.55,.4,.224,2.55,.728,1.3,2.55,1.3,.728,2.55,.728,1.3,2.4,1.3,.728,2.4,0,0,0,1.425,0,0,1.425,.798,0,.798,1.425,0,0,1.425,0,1.5,0,.075,1.5,.84,.075,.84,1.5,.075,0,1.5,.075,-.798,1.425,0,-1.425,.798,0,-1.425,0,0,-.84,1.5,.075,-1.5,.84,.075,-1.5,0,.075,-1.425,-.798,0,-.798,-1.425,0,0,-1.425,0,-1.5,-.84,.075,-.84,-1.5,.075,0,-1.5,.075,.798,-1.425,0,1.425,-.798,0,.84,-1.5,.075,1.5,-.84,.075];super(),e=e||50,t=void 0!==t?Math.max(2,Math.floor(t)||10):10,a=void 0===a||a;const h=3.15*((o=void 0===o||o)?1:1.3)/2,u=e/h;let d=(n=void 0===n||n)?(8*t-4)*t:0;d+=(i=void 0===i||i)?(16*t-4)*t:0,d+=(s=void 0===s||s)?40*t*t:0;const p=new Uint32Array(3*d);let f=n?4:0;f+=i?8:0,f+=s?20:0,f*=(t+1)*(t+1);const m=new Float32Array(3*f),g=new Float32Array(3*f),A=new Float32Array(2*f),v=new r.Matrix4;v.set(-1,3,-3,1,3,-6,3,0,-3,3,0,0,1,0,0,0);const y=[];let x,b,E;const _=[],S=[],w=[],M=[],C=[],T=[],I=[],B=[],R=new r.Vector3;let P,D,L,F,U,O,N,k,G,z=0,Q=0;const V=new r.Vector3;let H,j,W,X;const Y=new r.Matrix4,q=new r.Matrix4,K=new r.Vector4,J=new r.Vector4,Z=new r.Vector4,$=new r.Vector4,ee=new r.Vector3,te=new r.Vector3,ne=v.clone();ne.transpose();const re=(e,t,n)=>!(m[3*e]===m[3*t]&&m[3*e+1]===m[3*t+1]&&m[3*e+2]===m[3*t+2]||m[3*e]===m[3*n]&&m[3*e+1]===m[3*n+1]&&m[3*e+2]===m[3*n+2]||m[3*t]===m[3*n]&&m[3*t+1]===m[3*n+1]&&m[3*t+2]===m[3*n+2]);for(x=0;x<3;x++)C[x]=new r.Matrix4;const ie=n?32:28;F=t+1;let se=0,ae=0,oe=0,le=0,ce=0;for(let r=s?0:20;r=28){for(x=0;x<3;x++){for(b=0;b<4;b++)for(E=0;E<4;E++)y[4*E+b]=c[3*l[16*r+4*b+E]+x],a&&r>=20&&r<28&&2!==x&&(y[4*E+b]*=1.077),o||2!==x||(y[4*E+b]*=1.3);Y.set(y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9],y[10],y[11],y[12],y[13],y[14],y[15]),q.multiplyMatrices(Y,v),C[x].multiplyMatrices(ne,q)}for(D=0;D<=t;D++)for(U=D/t,L=0;L<=t;L++){for(O=L/t,G=4,N=k=1;G--;)_[G]=N,S[G]=k,N*=U,k*=O,3===G?(w[G]=M[G]=0,z=Q=1):(w[G]=z*(3-G),M[G]=Q*(3-G),z*=U,Q*=O);for(K.fromArray(_),J.fromArray(S),Z.fromArray(w),$.fromArray(M),x=0;x<3;x++)P=K.clone(),P.applyMatrix4(C[x]),T[x]=P.dot(J),P=Z.clone(),P.applyMatrix4(C[x]),I[x]=P.dot(J),P=K.clone(),P.applyMatrix4(C[x]),B[x]=P.dot($);ee.fromArray(I),te.fromArray(B),R.crossVectors(te,ee),R.normalize(),0===T[0]&&0===T[1]?V.set(0,T[2]>h?1:-1,0):V.set(R.x,R.z,-R.y),m[ae++]=u*T[0],m[ae++]=u*(T[2]-h),m[ae++]=-u*T[1],g[oe++]=V.x,g[oe++]=V.y,g[oe++]=V.z,A[le++]=1-O,A[le++]=1-U}for(D=0;D{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.ExtrudeGeometry{constructor(e,t={}){const{bevelEnabled:n=!1,bevelSize:r=8,bevelThickness:i=10,font:s,height:a=50,size:o=100,lineHeight:l=1,letterSpacing:c=0,...h}=t;if(void 0===s)super();else{super(s.generateShapes(e,o,{lineHeight:l,letterSpacing:c}),{...h,bevelEnabled:n,bevelSize:r,bevelThickness:i,depth:a})}this.type="TextGeometry"}}t.TextBufferGeometry=i,t.TextGeometry=i},3614:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Mesh{constructor(e,t){const n=new r.ShaderMaterial({type:"LightProbeHelperMaterial",uniforms:{sh:{value:e.sh.coefficients},intensity:{value:e.intensity}},vertexShader:["varying vec3 vNormal;","void main() {","\tvNormal = normalize( normalMatrix * normal );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define RECIPROCAL_PI 0.318309886","vec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {","\t// matrix is assumed to be orthogonal","\treturn normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );","}","// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf","vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {","\t// normal is assumed to have unit length","\tfloat x = normal.x, y = normal.y, z = normal.z;","\t// band 0","\tvec3 result = shCoefficients[ 0 ] * 0.886227;","\t// band 1","\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;","\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;","\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;","\t// band 2","\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;","\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;","\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );","\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;","\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );","\treturn result;","}","uniform vec3 sh[ 9 ]; // sh coefficients","uniform float intensity; // light probe intensity","varying vec3 vNormal;","void main() {","\tvec3 normal = normalize( vNormal );","\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );","\tvec3 irradiance = shGetIrradianceAt( worldNormal, sh );","\tvec3 outgoingLight = RECIPROCAL_PI * irradiance * intensity;","\tgl_FragColor = linearToOutputTexel( vec4( outgoingLight, 1.0 ) );","}"].join("\n")});super(new r.SphereGeometry(1,32,16),n),this.lightProbe=e,this.size=t,this.type="LightProbeHelper",this.onBeforeRender()}dispose(){this.geometry.dispose(),this.material.dispose()}onBeforeRender(){this.position.copy(this.lightProbe.position),this.scale.set(1,1,1).multiplyScalar(this.size),this.material.uniforms.intensity.value=this.lightProbe.intensity}}t.LightProbeHelper=i},48117:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Line{constructor(e,t=1,n=16,i=2){const s=new r.BufferGeometry,a=new Float32Array(3*(3*(n+2*i)+3));s.setAttribute("position",new r.BufferAttribute(a,3));const o=new r.LineBasicMaterial({color:65280});super(s,[new r.LineBasicMaterial({color:16776960}),o]),this.type="PositionalAudioHelper",this.audio=e,this.range=t,this.divisionsInnerAngle=n,this.divisionsOuterAngle=i,this.update()}update(){const e=this.audio,t=this.range,n=this.divisionsInnerAngle,i=this.divisionsOuterAngle,s=r.MathUtils.degToRad(e.panner.coneInnerAngle),a=r.MathUtils.degToRad(e.panner.coneOuterAngle),o=s/2,l=a/2;let c,h,u=0,d=0;const p=this.geometry,f=p.attributes.position;function m(e,n,r,i){const s=(n-e)/r;for(f.setXYZ(u,0,0,0),d++,c=e;c{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Line{constructor(e,t){const n=new r.BufferGeometry;n.setAttribute("position",new r.Float32BufferAttribute([1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3)),n.computeBoundingSphere();super(n,new r.LineBasicMaterial({fog:!1})),this.light=e,this.color=t,this.type="RectAreaLightHelper";const i=new r.BufferGeometry;i.setAttribute("position",new r.Float32BufferAttribute([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3)),i.computeBoundingSphere(),this.add(new r.Mesh(i,new r.MeshBasicMaterial({side:r.BackSide,fog:!1})))}updateMatrixWorld(){if(this.scale.set(.5*this.light.width,.5*this.light.height,1),void 0!==this.color)this.material.color.set(this.color),this.children[0].material.color.set(this.color);else{this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);const e=this.material.color,t=Math.max(e.r,e.g,e.b);t>1&&e.multiplyScalar(1/t),this.children[0].material.color.copy(this.material.color)}this.matrixWorld.extractRotation(this.light.matrixWorld).scale(this.scale).copyPosition(this.light.matrixWorld),this.children[0].matrixWorld.copy(this.matrixWorld)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}}t.RectAreaLightHelper=i},67376:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Vector3,s=new r.Vector3,a=new r.Matrix3;class o extends r.LineSegments{constructor(e,t=1,n=16711680){const i=new r.BufferGeometry,s=e.geometry.attributes.normal.count,a=new r.Float32BufferAttribute(2*s*3,3);i.setAttribute("position",a),super(i,new r.LineBasicMaterial({color:n,toneMapped:!1})),this.object=e,this.size=t,this.type="VertexNormalsHelper",this.matrixAutoUpdate=!1,this.update()}update(){this.object.updateMatrixWorld(!0),a.getNormalMatrix(this.object.matrixWorld);const e=this.object.matrixWorld,t=this.geometry.attributes.position,n=this.object.geometry;if(n){const r=n.attributes.position,o=n.attributes.normal;let l=0;for(let n=0,c=r.count;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Vector3,s=new r.Vector3;class a extends r.LineSegments{constructor(e,t=1,n=65535){const i=new r.BufferGeometry,s=e.geometry.attributes.tangent.count,a=new r.Float32BufferAttribute(2*s*3,3);i.setAttribute("position",a),super(i,new r.LineBasicMaterial({color:n,toneMapped:!1})),this.object=e,this.size=t,this.type="VertexTangentsHelper",this.matrixAutoUpdate=!1,this.update()}update(){this.object.updateMatrixWorld(!0);const e=this.object.matrixWorld,t=this.geometry.attributes.position,n=this.object.geometry,r=n.attributes.position,a=n.attributes.tangent;let o=0;for(let l=0,c=r.count;l{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(36455),i=n(30864),s=n(46863),a=n(58532),o=n(37753),l=n(73653),c=n(91248),h=n(90648),u=n(17101),d=n(4618),p=n(94117),f=n(70599),m=n(61350),g=n(29667),A=n(58688),v=n(16429),y=n(35404),x=n(77600),b=n(99100),E=n(29022),_=n(25386),S=n(80101),w=n(80466),M=n(83920),C=n(588),T=n(22195),I=n(74918),B=n(19338),R=n(17351),P=n(37181),D=n(32434),L=n(53374),F=n(83713),U=n(69457),O=n(36217),N=n(77224),k=n(89930),G=n(75488),z=n(86307),Q=n(16558),V=n(17564),H=n(52359),j=n(14514),W=n(8294),X=n(91909),Y=n(92664),q=n(79047),K=n(95034),J=n(29888),Z=n(63833),$=n(13979),ee=n(83912),te=n(60995),ne=n(14024),re=n(96244),ie=n(66552),se=n(69651),ae=n(34903),oe=n(90515),le=n(17570),ce=n(84181),he=n(17458),ue=n(84145),de=n(79888),pe=n(57829),fe=n(30252),me=n(83828),ge=n(60173),Ae=n(53667),ve=n(3442),ye=n(45830),xe=n(17412),be=n(97573),Ee=n(46603),_e=n(78122),Se=n(22845),we=n(49888),Me=n(834),Ce=n(51761),Te=n(88511),Ie=n(5050),Be=n(7679),Re=n(20591),Pe=n(79666),De=n(44441),Le=n(64753),Fe=n(98263),Ue=n(49190),Oe=n(70866),Ne=n(69265),ke=n(24064),Ge=n(72449),ze=n(96665),Qe=n(23918),Ve=n(81362),He=n(1258),je=n(17214),We=n(18526),Xe=n(98060),Ye=n(18921),qe=n(44652),Ke=n(27251),Je=n(17497),Ze=n(62788),$e=n(4437),et=n(57382),tt=n(73162),nt=n(65483),rt=n(79752),it=n(93177),st=n(28265),at=n(2327),ot=n(19453),lt=n(11225),ct=n(12888),ht=n(12333),ut=n(41019),dt=n(92018),pt=n(42095),ft=n(23723),mt=n(86584),gt=n(41694),At=n(24858),vt=n(66038),yt=n(30824),xt=n(95703),bt=n(41959),Et=n(62602),_t=n(42333),St=n(70382),wt=n(17853),Mt=n(18260),Ct=n(69556),Tt=n(73500),It=n(67971),Bt=n(49890),Rt=n(67618),Pt=n(2474),Dt=n(59564),Lt=n(83453),Ft=n(55175),Ut=n(86170),Ot=n(59305),Nt=n(15479),kt=n(85832),Gt=n(29076),zt=n(13855),Qt=n(37272),Vt=n(29839),Ht=n(85402),jt=n(50044),Wt=n(79169),Xt=n(37211),Yt=n(39032),qt=n(43098),Kt=n(29983),Jt=n(78440),Zt=n(48123),$t=n(69277),en=n(29176),tn=n(94640),nn=n(79203),rn=n(16025),sn=n(24730),an=n(27407),on=n(48463),ln=n(30424),cn=n(83222),hn=n(66155),un=n(61621),dn=n(60206),pn=n(51867),fn=n(55658),mn=n(60310),gn=n(65149),An=n(94989),vn=n(19076),yn=n(74354),xn=n(16832),bn=n(169),En=n(96851),_n=n(24820),Sn=n(37037),wn=n(72134),Mn=n(49693),Cn=n(24826),Tn=n(18233),In=n(71253),Bn=n(30675),Rn=n(19574),Pn=n(92701),Dn=n(27619),Ln=n(74758),Fn=n(2545),Un=n(76193),On=n(78798),Nn=n(4246),kn=n(79140),Gn=n(56668),zn=n(4951),Qn=n(96334),Vn=n(7955),Hn=n(41163),jn=n(8117),Wn=n(57659),Xn=n(60716),Yn=n(31150),qn=n(66910),Kn=n(16354),Jn=n(74181),Zn=n(13785),$n=n(88799),er=n(25452),tr=n(39142),nr=n(7472),rr=n(79872),ir=n(91004),sr=n(77750),ar=n(85569),or=n(78929),lr=n(23940),cr=n(20614),hr=n(49935),ur=n(37425),dr=n(13446),pr=n(37343),fr=n(77741),mr=n(28057),gr=n(6258),Ar=n(59198),vr=n(88909),yr=n(22996),xr=n(67071),br=n(28491),Er=n(70658),_r=n(21847),Sr=n(26386),wr=n(18113),Mr=n(80353),Cr=n(5440),Tr=n(13235),Ir=n(77723),Br=n(8052),Rr=n(27575),Pr=n(45051),Dr=n(39867),Lr=n(3614),Fr=n(59308),Ur=n(48117),Or=n(67376),Nr=n(19301),kr=n(60762),Gr=n(94418),zr=n(11576),Qr=n(98001),Vr=n(81587),Hr=n(4668),jr=n(75668),Wr=n(15527),Xr=n(48490);t.MD2CharacterComplex=r.MD2CharacterComplex,t.ConvexObjectBreaker=i.ConvexObjectBreaker,t.MorphBlendMesh=s.MorphBlendMesh,t.GPUComputationRenderer=a.GPUComputationRenderer,t.Gyroscope=o.Gyroscope,t.MorphAnimMesh=l.MorphAnimMesh,t.RollerCoasterGeometry=c.RollerCoasterGeometry,t.RollerCoasterLiftersGeometry=c.RollerCoasterLiftersGeometry,t.RollerCoasterShadowGeometry=c.RollerCoasterShadowGeometry,t.SkyGeometry=c.SkyGeometry,t.TreesGeometry=c.TreesGeometry,t.Timer=h.Timer,t.getErrorMessage=u.getErrorMessage,t.getWebGL2ErrorMessage=u.getWebGL2ErrorMessage,t.getWebGLErrorMessage=u.getWebGLErrorMessage,t.isWebGL2Available=u.isWebGL2Available,t.isWebGLAvailable=u.isWebGLAvailable,t.MD2Character=d.MD2Character,t.VolumeSlice=p.VolumeSlice,t.TubePainter=f.TubePainter,t.Volume=m.Volume,t.ProgressiveLightMap=g.ProgressiveLightMap,t.CSS2DObject=A.CSS2DObject,t.CSS2DRenderer=A.CSS2DRenderer,t.CSS3DObject=v.CSS3DObject,t.CSS3DRenderer=v.CSS3DRenderer,t.CSS3DSprite=v.CSS3DSprite,t.Projector=y.Projector,t.RenderableFace=y.RenderableFace,t.RenderableLine=y.RenderableLine,t.RenderableObject=y.RenderableObject,t.RenderableSprite=y.RenderableSprite,t.RenderableVertex=y.RenderableVertex,t.SVGObject=x.SVGObject,t.SVGRenderer=x.SVGRenderer,t.FlakesTexture=b.FlakesTexture,t.Flow=E.Flow,t.InstancedFlow=E.InstancedFlow,t.getUniforms=E.getUniforms,t.initSplineTexture=E.initSplineTexture,t.modifyShader=E.modifyShader,t.updateSplineTexture=E.updateSplineTexture,t.SimplifyModifier=_.SimplifyModifier,t.EdgeSplitModifier=S.EdgeSplitModifier,t.TessellateModifier=w.TessellateModifier,t.GLTFExporter=M.GLTFExporter,t.USDZExporter=C.USDZExporter,t.PLYExporter=T.PLYExporter,t.DRACOExporter=I.DRACOExporter,t.ColladaExporter=B.ColladaExporter,t.MMDExporter=R.MMDExporter,t.STLExporter=P.STLExporter,t.OBJExporter=D.OBJExporter,t.RoomEnvironment=L.RoomEnvironment,t.AnimationClipCreator=F.AnimationClipCreator,t.CCDIKHelper=U.CCDIKHelper,t.CCDIKSolver=U.CCDIKSolver,t.MMDPhysics=O.MMDPhysics,t.MMDAnimationHelper=N.MMDAnimationHelper,t.BatchedMesh=k.BatchedMesh,t.Reflector=G.Reflector,t.Refractor=z.Refractor,t.ShadowMesh=Q.ShadowMesh,t.Lensflare=V.Lensflare,t.LensflareElement=V.LensflareElement,t.Water=H.Water,t.MarchingCubes=j.MarchingCubes,t.edgeTable=j.edgeTable,t.triTable=j.triTable,t.LightningStorm=W.LightningStorm,t.ReflectorRTT=X.ReflectorRTT,t.ReflectorForSSRPass=Y.ReflectorForSSRPass,t.Sky=q.Sky,t.Water2=K.Water2,t.GroundProjectedEnv=J.GroundProjectedEnv,t.SceneUtils=Z.SceneUtils,t.UVsDebug=$.UVsDebug,t.GeometryUtils=ee.GeometryUtils,t.RoughnessMipmapper=te.RoughnessMipmapper,t.SkeletonUtils=ne.SkeletonUtils,t.ShadowMapViewer=re.ShadowMapViewer,t.computeMorphedAttributes=ie.computeMorphedAttributes,t.estimateBytesUsed=ie.estimateBytesUsed,t.interleaveAttributes=ie.interleaveAttributes,t.mergeBufferAttributes=ie.mergeBufferAttributes,t.mergeBufferGeometries=ie.mergeBufferGeometries,t.mergeVertices=ie.mergeVertices,t.toCreasedNormals=ie.toCreasedNormals,t.toTrianglesDrawMode=ie.toTrianglesDrawMode,t.GeometryCompressionUtils=se.GeometryCompressionUtils,t.PackedPhongMaterial=se.PackedPhongMaterial,t.CinematicCamera=ae.CinematicCamera,t.ConvexHull=oe.ConvexHull,t.Face=oe.Face,t.HalfEdge=oe.HalfEdge,t.VertexList=oe.VertexList,t.VertexNode=oe.VertexNode,t.MeshSurfaceSampler=le.MeshSurfaceSampler,t.SimplexNoise=ce.SimplexNoise,t.OBB=he.OBB,t.Capsule=ue.Capsule,t.ColorConverter=de.ColorConverter,t.ImprovedNoise=pe.ImprovedNoise,t.Octree=fe.Octree,t.ColorMapKeywords=me.ColorMapKeywords,t.Lut=me.Lut,t.CameraControls=ge.CameraControls,t.MapControlsExp=ge.MapControlsExp,t.OrbitControlsExp=ge.OrbitControlsExp,t.STATE=ge.STATE,t.TrackballControlsExp=ge.TrackballControlsExp,t.FirstPersonControls=Ae.FirstPersonControls,t.TransformControls=ve.TransformControls,t.TransformControlsGizmo=ve.TransformControlsGizmo,t.TransformControlsPlane=ve.TransformControlsPlane,t.DragControls=ye.DragControls,t.PointerLockControls=xe.PointerLockControls,t.DeviceOrientationControls=be.DeviceOrientationControls,t.TrackballControls=Ee.TrackballControls,t.MapControls=_e.MapControls,t.OrbitControls=_e.OrbitControls,t.ArcballControls=Se.ArcballControls,t.FlyControls=we.FlyControls,t.LUTPass=Me.LUTPass,t.ClearPass=Ce.ClearPass,t.GlitchPass=Te.GlitchPass,t.HalftonePass=Ie.HalftonePass,t.SMAAPass=Be.SMAAPass,t.FilmPass=Re.FilmPass,t.OutlinePass=Pe.OutlinePass,t.SSAOPass=De.SSAOPass,t.SavePass=Le.SavePass,t.BokehPass=Fe.BokehPass,t.FullScreenQuad=Ue.FullScreenQuad,t.Pass=Ue.Pass,t.TexturePass=Oe.TexturePass,t.AdaptiveToneMappingPass=Ne.AdaptiveToneMappingPass,t.UnrealBloomPass=ke.UnrealBloomPass,t.CubeTexturePass=Ge.CubeTexturePass,t.SAOPass=ze.SAOPass,t.AfterimagePass=Qe.AfterimagePass,t.ClearMaskPass=Ve.ClearMaskPass,t.MaskPass=Ve.MaskPass,t.EffectComposer=He.EffectComposer,t.DotScreenPass=je.DotScreenPass,t.SSRPass=We.SSRPass,t.TAARenderPass=Xe.TAARenderPass,t.ShaderPass=Ye.ShaderPass,t.SSAARenderPass=qe.SSAARenderPass,t.RenderPass=Ke.RenderPass,t.RenderPixelatedPass=Je.RenderPixelatedPass,t.BloomPass=Ze.BloomPass,t.WaterPass=$e.WaterPass,t.ARButton=et.ARButton,t.OculusHandModel=tt.OculusHandModel,t.OculusHandPointerModel=nt.OculusHandPointerModel,t.createText=rt.createText,t.VRButton=it.VRButton,t.XRControllerModelFactory=st.XRControllerModelFactory,t.XREstimatedLight=at.XREstimatedLight,t.XRHandMeshModel=ot.XRHandMeshModel,t.XRHandModelFactory=lt.XRHandModelFactory,t.XRHandPrimitiveModel=ct.XRHandPrimitiveModel,t.ParametricGeometries=ht.ParametricGeometries,t.ParametricGeometry=ut.ParametricGeometry,t.ConvexGeometry=dt.ConvexGeometry,t.LightningStrike=pt.LightningStrike,t.RoundedBoxGeometry=ft.RoundedBoxGeometry,t.BoxLineGeometry=mt.BoxLineGeometry,t.DecalGeometry=gt.DecalGeometry,t.DecalVertex=gt.DecalVertex,t.TeapotGeometry=At.TeapotGeometry,t.TextBufferGeometry=vt.TextGeometry,t.TextGeometry=vt.TextGeometry,t.CSM=yt.CSM,t.CSMFrustum=xt.CSMFrustum,t.CSMHelper=bt.CSMHelper,t.CSMShader=Et.CSMShader,t.ACESFilmicToneMappingShader=_t.ACESFilmicToneMappingShader,t.AfterimageShader=St.AfterimageShader,t.BasicShader=wt.BasicShader,t.BleachBypassShader=Mt.BleachBypassShader,t.BlendShader=Ct.BlendShader,t.BokehShader=Tt.BokehShader,t.BokehDepthShader=It.BokehDepthShader,t.BokehShader2=It.BokehShader2,t.BrightnessContrastShader=Bt.BrightnessContrastShader,t.ColorCorrectionShader=Rt.ColorCorrectionShader,t.ColorifyShader=Pt.ColorifyShader,t.ConvolutionShader=Dt.ConvolutionShader,t.CopyShader=Lt.CopyShader,t.DOFMipMapShader=Ft.DOFMipMapShader,t.BlurShaderUtils=Ut.BlurShaderUtils,t.DepthLimitedBlurShader=Ut.DepthLimitedBlurShader,t.DigitalGlitch=Ot.DigitalGlitch,t.DotScreenShader=Nt.DotScreenShader,t.FXAAShader=kt.FXAAShader,t.FilmShader=Gt.FilmShader,t.FocusShader=zt.FocusShader,t.FreiChenShader=Qt.FreiChenShader,t.FresnelShader=Vt.FresnelShader,t.GammaCorrectionShader=Ht.GammaCorrectionShader,t.GodRaysCombineShader=jt.GodRaysCombineShader,t.GodRaysDepthMaskShader=jt.GodRaysDepthMaskShader,t.GodRaysFakeSunShader=jt.GodRaysFakeSunShader,t.GodRaysGenerateShader=jt.GodRaysGenerateShader,t.HalftoneShader=Wt.HalftoneShader,t.HorizontalBlurShader=Xt.HorizontalBlurShader,t.HorizontalTiltShiftShader=Yt.HorizontalTiltShiftShader,t.HueSaturationShader=qt.HueSaturationShader,t.KaleidoShader=Kt.KaleidoShader,t.LuminosityHighPassShader=Jt.LuminosityHighPassShader,t.LuminosityShader=Zt.LuminosityShader,t.MirrorShader=$t.MirrorShader,t.NormalMapShader=en.NormalMapShader,t.ParallaxShader=tn.ParallaxShader,t.PixelShader=nn.PixelShader,t.RGBShiftShader=rn.RGBShiftShader,t.SAOShader=sn.SAOShader,t.SMAABlendShader=an.SMAABlendShader,t.SMAAEdgesShader=an.SMAAEdgesShader,t.SMAAWeightsShader=an.SMAAWeightsShader,t.SSAOBlurShader=on.SSAOBlurShader,t.SSAODepthShader=on.SSAODepthShader,t.SSAOShader=on.SSAOShader,t.SSRBlurShader=ln.SSRBlurShader,t.SSRDepthShader=ln.SSRDepthShader,t.SSRShader=ln.SSRShader,t.SepiaShader=cn.SepiaShader,t.SobelOperatorShader=hn.SobelOperatorShader,t.SubsurfaceScatteringShader=un.SubsurfaceScatteringShader,t.TechnicolorShader=dn.TechnicolorShader,t.ToneMapShader=pn.ToneMapShader,t.ToonShader1=fn.ToonShader1,t.ToonShader2=fn.ToonShader2,t.ToonShaderDotted=fn.ToonShaderDotted,t.ToonShaderHatching=fn.ToonShaderHatching,t.TriangleBlurShader=mn.TriangleBlurShader,t.UnpackDepthRGBAShader=gn.UnpackDepthRGBAShader,t.VerticalBlurShader=An.VerticalBlurShader,t.VerticalTiltShiftShader=vn.VerticalTiltShiftShader,t.VignetteShader=yn.VignetteShader,t.VolumeRenderShader1=xn.VolumeRenderShader1,t.WaterRefractionShader=bn.WaterRefractionShader,t.HTMLMesh=En.HTMLMesh,t.InteractiveGroup=_n.InteractiveGroup,t.SelectionHelper=Sn.SelectionHelper,t.SelectionBox=wn.SelectionBox,t.AmmoPhysics=Mn.AmmoPhysics,t.ParallaxBarrierEffect=Cn.ParallaxBarrierEffect,t.PeppersGhostEffect=Tn.PeppersGhostEffect,t.OutlineEffect=In.OutlineEffect,t.AnaglyphEffect=Bn.AnaglyphEffect,t.AsciiEffect=Rn.AsciiEffect,t.StereoEffect=Pn.StereoEffect,t.FBXLoader=Dn.FBXLoader,t.Font=Ln.Font,t.FontLoader=Ln.FontLoader,t.TGALoader=Fn.TGALoader,t.LUTCubeLoader=Un.LUTCubeLoader,t.NRRDLoader=On.NRRDLoader,t.STLLoader=Nn.STLLoader,t.MTLLoader=kn.MTLLoader,t.XLoader=Gn.XLoader,t.BVHLoader=zn.BVHLoader,t.KMZLoader=Qn.KMZLoader,t.VRMLoader=Vn.VRMLoader,t.VRMLLoader=Hn.VRMLLoader,t.KTX2Loader=jn.KTX2Loader,t.LottieLoader=Wn.LottieLoader,t.TTFLoader=Xn.TTFLoader,t.RGBELoader=Yn.RGBELoader,t.AssimpLoader=qn.AssimpLoader,t.ColladaLoader=Kn.ColladaLoader,t.MDDLoader=Jn.MDDLoader,t.EXRLoader=Zn.EXRLoader,t.ThreeMFLoader=$n.ThreeMFLoader,t.XYZLoader=er.XYZLoader,t.VTKLoader=tr.VTKLoader,t.LUT3dlLoader=nr.LUT3dlLoader,t.DDSLoader=rr.DDSLoader,t.PVRLoader=ir.PVRLoader,t.GCodeLoader=sr.GCodeLoader,t.BasisTextureLoader=ar.BasisTextureLoader,t.TDSLoader=or.TDSLoader,t.LDrawLoader=lr.LDrawLoader,t.GLTFLoader=cr.GLTFLoader,t.SVGLoader=hr.SVGLoader,t.Rhino3dmLoader=ur.Rhino3dmLoader,t.OBJLoader=dr.OBJLoader,t.AMFLoader=pr.AMFLoader,t.MMDLoader=fr.MMDLoader,t.MD2Loader=mr.MD2Loader,t.KTXLoader=gr.KTXLoader,t.TiltLoader=Ar.TiltLoader,t.DRACOLoader=vr.DRACOLoader,t.HDRCubeTextureLoader=yr.HDRCubeTextureLoader,t.PDBLoader=xr.PDBLoader,t.PRWMLoader=br.PRWMLoader,t.RGBMLoader=Er.RGBMLoader,t.VOXData3DTexture=_r.VOXData3DTexture,t.VOXLoader=_r.VOXLoader,t.VOXMesh=_r.VOXMesh,t.PCDLoader=Sr.PCDLoader,t.LWOLoader=wr.LWOLoader,t.PLYLoader=Mr.PLYLoader,t.LineSegmentsGeometry=Cr.LineSegmentsGeometry,t.LineGeometry=Tr.LineGeometry,t.Wireframe=Ir.Wireframe,t.WireframeGeometry2=Br.WireframeGeometry2,t.Line2=Rr.Line2,t.LineMaterial=Pr.LineMaterial,t.LineSegments2=Dr.LineSegments2,t.LightProbeHelper=Lr.LightProbeHelper,t.VertexTangentsHelper=Fr.VertexTangentsHelper,t.PositionalAudioHelper=Ur.PositionalAudioHelper,t.VertexNormalsHelper=Or.VertexNormalsHelper,t.RectAreaLightHelper=Nr.RectAreaLightHelper,t.RectAreaLightUniformsLib=kr.RectAreaLightUniformsLib,t.LightProbeGenerator=Gr.LightProbeGenerator,t.calcBSplineDerivatives=zr.calcBSplineDerivatives,t.calcBSplinePoint=zr.calcBSplinePoint,t.calcBasisFunctionDerivatives=zr.calcBasisFunctionDerivatives,t.calcBasisFunctions=zr.calcBasisFunctions,t.calcKoverI=zr.calcKoverI,t.calcNURBSDerivatives=zr.calcNURBSDerivatives,t.calcRationalCurveDerivatives=zr.calcRationalCurveDerivatives,t.calcSurfacePoint=zr.calcSurfacePoint,t.findSpan=zr.findSpan,t.NURBSCurve=Qr.NURBSCurve,t.NURBSSurface=Vr.NURBSSurface,t.CinquefoilKnot=Hr.CinquefoilKnot,t.DecoratedTorusKnot4a=Hr.DecoratedTorusKnot4a,t.DecoratedTorusKnot4b=Hr.DecoratedTorusKnot4b,t.DecoratedTorusKnot5a=Hr.DecoratedTorusKnot5a,t.DecoratedTorusKnot5c=Hr.DecoratedTorusKnot5c,t.FigureEightPolynomialKnot=Hr.FigureEightPolynomialKnot,t.GrannyKnot=Hr.GrannyKnot,t.HeartCurve=Hr.HeartCurve,t.HelixCurve=Hr.HelixCurve,t.KnotCurve=Hr.KnotCurve,t.TorusKnot=Hr.TorusKnot,t.TrefoilKnot=Hr.TrefoilKnot,t.TrefoilPolynomialKnot=Hr.TrefoilPolynomialKnot,t.VivianiCurve=Hr.VivianiCurve,t.Face3=jr.Face3,t.Geometry=jr.Geometry,t.MeshoptDecoder=Wr.MeshoptDecoder,t.MotionController=Xr.MotionController,t.MotionControllerConstants=Xr.MotionControllerConstants,t.fetchProfile=Xr.fetchProfile,t.fetchProfilesList=Xr.fetchProfilesList},96851:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Mesh{constructor(e){const t=new s(e),n=new r.PlaneGeometry(.001*t.image.width,.001*t.image.height),i=new r.MeshBasicMaterial({map:t,toneMapped:!1,transparent:!0});function o(e){i.map.dispatchDOMEvent(e)}super(n,i),this.addEventListener("mousedown",o),this.addEventListener("mousemove",o),this.addEventListener("mouseup",o),this.addEventListener("click",o),this.dispose=function(){n.dispose(),i.dispose(),i.map.dispose(),a.delete(e),this.removeEventListener("mousedown",o),this.removeEventListener("mousemove",o),this.removeEventListener("mouseup",o),this.removeEventListener("click",o)}}}class s extends r.CanvasTexture{constructor(e){super(o(e)),this.dom=e,this.anisotropy=16,"colorSpace"in this?this.colorSpace="srgb":this.encoding=3001,this.minFilter=r.LinearFilter,this.magFilter=r.LinearFilter;const t=new MutationObserver((()=>{this.scheduleUpdate||(this.scheduleUpdate=setTimeout((()=>this.update()),16))}));t.observe(e,{attributes:!0,childList:!0,subtree:!0,characterData:!0}),this.observer=t}dispatchDOMEvent(e){e.data&&function(e,t,n,r){const i={clientX:n*e.offsetWidth+e.offsetLeft,clientY:r*e.offsetHeight+e.offsetTop,view:e.ownerDocument.defaultView};window.dispatchEvent(new MouseEvent(t,i));const s=e.getBoundingClientRect();function a(e){if(e.nodeType!==Node.TEXT_NODE&&e.nodeType!==Node.COMMENT_NODE){const s=e.getBoundingClientRect();if(n>s.left&&ns.top&&rparseFloat(e[t]))),i=s.width,a=(n-s.x)/i;e.value=t+(r-t)*a,e.dispatchEvent(new InputEvent("input",{bubbles:!0}))}for(let t=0;tparseFloat(r[e]))),o=(a-n)/(i-n)*(p-f);s(c,d+f/4,p,f/2,f/4),h.fillStyle=t,h.strokeStyle=e,h.lineWidth=1,h.fill(),h.stroke(),s(c,d+f/4,o+f/2,f/2,f/4),h.fillStyle=e,h.fill(),s(c+o,d,f,f,f/2),h.fillStyle=e,h.fill()}"color"!==r.type&&"text"!==r.type&&"number"!==r.type||(u.add({x:c,y:d,width:p,height:f}),i(a,c+parseInt(a.paddingLeft),d+parseInt(a.paddingTop),r.value),u.remove())}}}const m="auto"===a.overflow||"hidden"===a.overflow;m&&u.add({x:c,y:d,width:p,height:f});for(let t=0;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Vector2,s={type:"",data:i};class a extends r.Group{constructor(e,t){super();const n=this,a=new r.Raycaster,o=new r.Matrix4,l=e.domElement;function c(e){e.stopPropagation(),i.x=e.clientX/l.clientWidth*2-1,i.y=-e.clientY/l.clientHeight*2+1,a.setFromCamera(i,t);const r=a.intersectObjects(n.children,!1);if(r.length>0){const t=r[0],n=t.object,i=t.uv;s.type=e.type,s.data.set(i.x,1-i.y),n.dispatchEvent(s)}}l.addEventListener("pointerdown",c),l.addEventListener("pointerup",c),l.addEventListener("pointermove",c),l.addEventListener("mousedown",c),l.addEventListener("mouseup",c),l.addEventListener("mousemove",c),l.addEventListener("click",c);const h={move:"mousemove",select:"click",selectstart:"mousedown",selectend:"mouseup"};function u(e){const t=e.target;o.identity().extractRotation(t.matrixWorld),a.ray.origin.setFromMatrixPosition(t.matrixWorld),a.ray.direction.set(0,0,-1).applyMatrix4(o);const r=a.intersectObjects(n.children,!1);if(r.length>0){const t=r[0],n=t.object,i=t.uv;s.type=h[e.type],s.data.set(i.x,1-i.y),n.dispatchEvent(s)}}const d=e.xr.getController(0);d.addEventListener("move",u),d.addEventListener("select",u),d.addEventListener("selectstart",u),d.addEventListener("selectend",u);const p=e.xr.getController(1);p.addEventListener("move",u),p.addEventListener("select",u),p.addEventListener("selectstart",u),p.addEventListener("selectend",u)}}t.InteractiveGroup=a},72134:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Frustum,s=new r.Vector3,a=new r.Vector3,o=new r.Vector3,l=new r.Vector3,c=new r.Vector3,h=new r.Vector3,u=new r.Vector3,d=new r.Vector3,p=new r.Vector3,f=new r.Vector3,m=new r.Vector3,g=new r.Vector3,A=new r.Vector3,v=new r.Vector3;t.SelectionBox=class{constructor(e,t,n){this.camera=e,this.scene=t,this.startPoint=new r.Vector3,this.endPoint=new r.Vector3,this.collection=[],this.deep=n||Number.MAX_VALUE}select(e,t){return this.startPoint=e||this.startPoint,this.endPoint=t||this.endPoint,this.collection=[],this.updateFrustum(this.startPoint,this.endPoint),this.searchChildInFrustum(i,this.scene),this.collection}updateFrustum(e,t){if(e=e||this.startPoint,t=t||this.endPoint,e.x===t.x&&(t.x+=Number.EPSILON),e.y===t.y&&(t.y+=Number.EPSILON),this.camera.updateProjectionMatrix(),this.camera.updateMatrixWorld(),this.camera.isPerspectiveCamera)a.copy(e),a.x=Math.min(e.x,t.x),a.y=Math.max(e.y,t.y),t.x=Math.max(e.x,t.x),t.y=Math.min(e.y,t.y),o.setFromMatrixPosition(this.camera.matrixWorld),l.copy(a),c.set(t.x,a.y,0),h.copy(t),u.set(a.x,t.y,0),l.unproject(this.camera),c.unproject(this.camera),h.unproject(this.camera),u.unproject(this.camera),g.copy(l).sub(o),A.copy(c).sub(o),v.copy(h).sub(o),g.normalize(),A.normalize(),v.normalize(),g.multiplyScalar(this.deep),A.multiplyScalar(this.deep),v.multiplyScalar(this.deep),g.add(o),A.add(o),v.add(o),(n=i.planes)[0].setFromCoplanarPoints(o,l,c),n[1].setFromCoplanarPoints(o,c,h),n[2].setFromCoplanarPoints(h,u,o),n[3].setFromCoplanarPoints(u,l,o),n[4].setFromCoplanarPoints(c,h,u),n[5].setFromCoplanarPoints(v,A,g),n[5].normal.multiplyScalar(-1);else if(this.camera.isOrthographicCamera){const r=Math.min(e.x,t.x),s=Math.max(e.y,t.y),a=Math.max(e.x,t.x),o=Math.min(e.y,t.y);var n;l.set(r,s,-1),c.set(a,s,-1),h.set(a,o,-1),u.set(r,o,-1),d.set(r,s,1),p.set(a,s,1),f.set(a,o,1),m.set(r,o,1),l.unproject(this.camera),c.unproject(this.camera),h.unproject(this.camera),u.unproject(this.camera),d.unproject(this.camera),p.unproject(this.camera),f.unproject(this.camera),m.unproject(this.camera),(n=i.planes)[0].setFromCoplanarPoints(l,d,p),n[1].setFromCoplanarPoints(c,p,f),n[2].setFromCoplanarPoints(f,m,u),n[3].setFromCoplanarPoints(m,d,l),n[4].setFromCoplanarPoints(c,h,u),n[5].setFromCoplanarPoints(f,p,d),n[5].normal.multiplyScalar(-1)}else console.error("THREE.SelectionBox: Unsupported camera type.")}searchChildInFrustum(e,t){if((t.isMesh||t.isLine||t.isPoints)&&void 0!==t.material&&(null===t.geometry.boundingSphere&&t.geometry.computeBoundingSphere(),s.copy(t.geometry.boundingSphere.center),s.applyMatrix4(t.matrixWorld),e.containsPoint(s)&&this.collection.push(t)),t.children.length>0)for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.SelectionHelper=class{constructor(e,t,n){this.element=document.createElement("div"),this.element.classList.add(n),this.element.style.pointerEvents="none",this.renderer=t,this.startPoint=new r.Vector2,this.pointTopLeft=new r.Vector2,this.pointBottomRight=new r.Vector2,this.isDown=!1,this.renderer.domElement.addEventListener("pointerdown",(e=>{this.isDown=!0,this.onSelectStart(e)})),this.renderer.domElement.addEventListener("pointermove",(e=>{this.isDown&&this.onSelectMove(e)})),this.renderer.domElement.addEventListener("pointerup",(e=>{this.isDown=!1,this.onSelectOver(e)}))}onSelectStart(e){this.renderer.domElement.parentElement.appendChild(this.element),this.element.style.left=`${e.clientX}px`,this.element.style.top=`${e.clientY}px`,this.element.style.width="0px",this.element.style.height="0px",this.startPoint.x=e.clientX,this.startPoint.y=e.clientY}onSelectMove(e){this.pointBottomRight.x=Math.max(this.startPoint.x,e.clientX),this.pointBottomRight.y=Math.max(this.startPoint.y,e.clientY),this.pointTopLeft.x=Math.min(this.startPoint.x,e.clientX),this.pointTopLeft.y=Math.min(this.startPoint.y,e.clientY),this.element.style.left=`${this.pointTopLeft.x}px`,this.element.style.top=`${this.pointTopLeft.y}px`,this.element.style.width=this.pointBottomRight.x-this.pointTopLeft.x+"px",this.element.style.height=this.pointBottomRight.y-this.pointTopLeft.y+"px"}onSelectOver(){this.element.parentElement.removeChild(this.element)}}},15527:(e,t)=>{"use strict";let n;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.MeshoptDecoder=()=>{if(n)return n;const e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if("object"!=typeof WebAssembly)return{supported:!1};let r,i="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";WebAssembly.validate(e)&&(i="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");const s=WebAssembly.instantiate(function(e){const n=new Uint8Array(e.length);for(let t=0;t96?r-71:r>64?r-65:r>47?r+4:r>46?63:62}let r=0;for(let i=0;i{r=e.instance,r.exports.__wasm_call_ctors()}));function a(e,t,n,i,s,a){const o=r.exports.sbrk,l=n+3&-4,c=o(l*i),h=o(s.length),u=new Uint8Array(r.exports.memory.buffer);u.set(s,h);const d=e(c,n,i,h,s.length);if(0===d&&a&&a(c,l,i),t.set(u.subarray(c,c+n*i)),o(c-o(0)),0!==d)throw new Error(`Malformed buffer data: ${d}`)}const o={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return n={ready:s,supported:!0,decodeVertexBuffer(e,t,n,i,s){a(r.exports.meshopt_decodeVertexBuffer,e,t,n,i,r.exports[o[s]])},decodeIndexBuffer(e,t,n,i){a(r.exports.meshopt_decodeIndexBuffer,e,t,n,i)},decodeIndexSequence(e,t,n,i){a(r.exports.meshopt_decodeIndexSequence,e,t,n,i)},decodeGltfBuffer(e,t,n,i,s,c){a(r.exports[l[s]],e,t,n,i,r.exports[o[c]])}},n}},48490:(e,t)=>{"use strict";var n=Object.defineProperty,r=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i={Handedness:{NONE:"none",LEFT:"left",RIGHT:"right"},ComponentState:{DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"},ComponentProperty:{BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"},ComponentType:{TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"},ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:{TRANSFORM:"transform",VISIBILITY:"visibility"}};async function s(e){const t=await fetch(e);if(t.ok)return t.json();throw new Error(t.statusText)}async function a(e){if(!e)throw new Error("No basePath supplied");return await s(`${e}/profilesList.json`)}const o={xAxis:0,yAxis:0,button:0,state:i.ComponentState.DEFAULT};class l{constructor(e){r(this,"value"),r(this,"componentProperty"),r(this,"states"),r(this,"valueNodeName"),r(this,"valueNodeProperty"),r(this,"minNodeName"),r(this,"maxNodeName"),r(this,"valueNode"),r(this,"minNode"),r(this,"maxNode"),this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===i.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(o)}updateFromComponent({xAxis:e,yAxis:t,button:n,state:r}){const{normalizedXAxis:s,normalizedYAxis:a}=function(e=0,t=0){let n=e,r=t;if(Math.sqrt(e*e+t*t)>1){const i=Math.atan2(t,e);n=Math.cos(i),r=Math.sin(i)}return{normalizedXAxis:.5*n+.5,normalizedYAxis:.5*r+.5}}(e,t);switch(this.componentProperty){case i.ComponentProperty.X_AXIS:this.value=this.states.includes(r)?s:.5;break;case i.ComponentProperty.Y_AXIS:this.value=this.states.includes(r)?a:.5;break;case i.ComponentProperty.BUTTON:this.value=this.states.includes(r)&&n?n:0;break;case i.ComponentProperty.STATE:this.valueNodeProperty===i.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(r):this.value=this.states.includes(r)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class c{constructor(e,t){if(r(this,"id"),r(this,"values"),r(this,"type"),r(this,"gamepadIndices"),r(this,"rootNodeName"),r(this,"visualResponses"),r(this,"touchPointNodeName"),r(this,"touchPointNode"),!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const n=new l(t.visualResponses[e]);this.visualResponses[e]=n})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:i.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=i.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=i.ComponentState.PRESSED:(t.touched||this.values.button>i.ButtonTouchThreshold)&&(this.values.state=i.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===i.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>i.AxisTouchThreshold&&(this.values.state=i.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===i.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>i.AxisTouchThreshold&&(this.values.state=i.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}t.MotionController=class{constructor(e,t,n){if(r(this,"xrInputSource"),r(this,"assetUrl"),r(this,"layoutDescription"),r(this,"id"),r(this,"components"),!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");if(!t.layouts[e.handedness])throw new Error("No layout for "+e.handedness+" handedness");this.xrInputSource=e,this.assetUrl=n,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new c(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}},t.MotionControllerConstants=i,t.fetchProfile=async function(e,t,n=null,r=!0){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No basePath supplied");const i=await a(t);let o;if(e.profiles.some((e=>{const n=i[e];return n&&(o={profileId:e,profilePath:`${t}/${n.path}`,deprecated:!!n.deprecated}),!!o})),!o){if(!n)throw new Error("No matching profile name found");const e=i[n];if(!e)throw new Error(`No matching profile name found and default profile "${n}" missing.`);o={profileId:n,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const l=await s(o.profilePath);let c;if(r){let t;if(t="any"===e.handedness?l.layouts[Object.keys(l.layouts)[0]]:l.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${o.profileId}`);t.assetPath&&(c=o.profilePath.replace("profile.json",t.assetPath))}return{profile:l,assetPath:c}},t.fetchProfilesList=a},94479:(e,t,n)=>{"use strict";e=n.nmd(e),Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const{CstParser:r,Lexer:i,createToken:s}=(()=>{const r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;var i="object"==typeof self&&self&&self.Object===Object&&self;const s=r||i||Function("return this")();const a=s.Symbol;var o=Object.prototype,l=o.hasOwnProperty,c=o.toString,h=a?a.toStringTag:void 0;var u=Object.prototype.toString;var d="[object Null]",p="[object Undefined]",f=a?a.toStringTag:void 0;function m(e){return null==e?void 0===e?p:d:f&&f in Object(e)?function(e){var t=l.call(e,h),n=e[h];try{e[h]=void 0;var r=!0}catch(s){}var i=c.call(e);return r&&(t?e[h]=n:delete e[h]),i}(e):function(e){return u.call(e)}(e)}function g(e){return null!=e&&"object"==typeof e}var A="[object Symbol]";function v(e){return"symbol"==typeof e||g(e)&&m(e)==A}function y(e,t){for(var n=-1,r=null==e?0:e.length,i=Array(r);++n0){if(++de>=800)return arguments[0]}else de=0;return ue.apply(void 0,arguments)});function me(e,t){for(var n=-1,r=null==e?0:e.length;++n-1}var xe=9007199254740991,be=/^(?:0|[1-9]\d*)$/;function Ee(e,t){var n=typeof e;return!!(t=null==t?xe:t)&&("number"==n||"symbol"!=n&&be.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=Be}function Pe(e){return null!=e&&Re(e.length)&&!V(e)}function De(e,t,n){if(!T(n))return!1;var r=typeof t;return!!("number"==r?Pe(n)&&Ee(t,n.length):"string"==r&&t in n)&&Se(n[t],e)}var Le=Object.prototype;function Fe(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Le)}function Ue(e){return g(e)&&"[object Arguments]"==m(e)}var Oe=Object.prototype,Ne=Oe.hasOwnProperty,ke=Oe.propertyIsEnumerable;const Ge=Ue(function(){return arguments}())?Ue:function(e){return g(e)&&Ne.call(e,"callee")&&!ke.call(e,"callee")};var ze=t&&!t.nodeType&&t,Qe=ze&&e&&!e.nodeType&&e,Ve=Qe&&Qe.exports===ze?s.Buffer:void 0;const He=(Ve?Ve.isBuffer:void 0)||function(){return!1};var je={};function We(e){return function(t){return e(t)}}je["[object Float32Array]"]=je["[object Float64Array]"]=je["[object Int8Array]"]=je["[object Int16Array]"]=je["[object Int32Array]"]=je["[object Uint8Array]"]=je["[object Uint8ClampedArray]"]=je["[object Uint16Array]"]=je["[object Uint32Array]"]=!0,je["[object Arguments]"]=je["[object Array]"]=je["[object ArrayBuffer]"]=je["[object Boolean]"]=je["[object DataView]"]=je["[object Date]"]=je["[object Error]"]=je["[object Function]"]=je["[object Map]"]=je["[object Number]"]=je["[object Object]"]=je["[object RegExp]"]=je["[object Set]"]=je["[object String]"]=je["[object WeakMap]"]=!1;var Xe=t&&!t.nodeType&&t,Ye=Xe&&e&&!e.nodeType&&e,qe=Ye&&Ye.exports===Xe&&r.process;const Ke=function(){try{var e=Ye&&Ye.require&&Ye.require("util").types;return e||qe&&qe.binding&&qe.binding("util")}catch(t){}}();var Je=Ke&&Ke.isTypedArray;const Ze=Je?We(Je):function(e){return g(e)&&Re(e.length)&&!!je[m(e)]};var $e=Object.prototype.hasOwnProperty;function et(e,t){var n=x(e),r=!n&&Ge(e),i=!n&&!r&&He(e),s=!n&&!r&&!i&&Ze(e),a=n||r||i||s,o=a?function(e,t){for(var n=-1,r=Array(e);++n1?t[r-1]:void 0,s=r>2?t[2]:void 0;for(i=at.length>3&&"function"==typeof i?(r--,i):void 0,s&&De(t[0],t[1],s)&&(i=r<3?void 0:i,r=1),e=Object(e);++n-1},bt.prototype.set=function(e,t){var n=this.__data__,r=yt(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};const Et=ne(s,"Map");function _t(e,t){var n,r,i=e.__data__;return("string"==(r=typeof(n=t))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof t?"string":"hash"]:i.map}function St(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t0&&n(o)?t>1?Nt(o,t-1,n,r,i):Ft(i,o):r||(i[i.length]=o)}return i}function kt(e){return(null==e?0:e.length)?Nt(e,1):[]}const Gt=tt(Object.getPrototypeOf,Object);function zt(e,t,n){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(i);++ro))return!1;var c=s.get(e),h=s.get(t);if(c&&h)return c==t&&h==e;var u=-1,d=!0,p=n&ur?new or:void 0;for(s.set(e,t),s.set(t,e);++u2?t[2]:void 0;for(i&&De(t[0],t[1],i)&&(r=1);++n=200&&(s=cr,a=!1,t=new or(t));e:for(;++i-1?r[i?e[s]:s]:void 0});function bi(e){return e&&e.length?e[0]:void 0}function Ei(e,t){var n=-1,r=Pe(e)?Array(e.length):[];return ti(e,(function(e,i,s){r[++n]=t(e,i,s)})),r}function _i(e,t){return(x(e)?y:Ei)(e,Jr(t))}function Si(e,t){return Nt(_i(e,t),1)}var wi,Mi,Ci=Object.prototype.hasOwnProperty,Ti=(wi=function(e,t,n){Ci.call(e,n)?e[n].push(t):_e(e,n,[t])},function(e,t){var n=x(e)?Zr:ni,r=Mi?Mi():{};return n(e,wi,Jr(t),r)});const Ii=Ti;var Bi=Object.prototype.hasOwnProperty;function Ri(e,t){return null!=e&&Bi.call(e,t)}function Pi(e,t){return null!=e&&jr(e,t,Ri)}var Di="[object String]";function Li(e){return"string"==typeof e||!x(e)&&g(e)&&m(e)==Di}function Fi(e){return null==e?[]:function(e,t){return y(t,(function(t){return e[t]}))}(e,st(e))}var Ui=Math.max;function Oi(e,t,n,r){e=Pe(e)?e:Fi(e),n=n&&!r?O(n):0;var i=e.length;return n<0&&(n=Ui(i+n,0)),Li(e)?n<=i&&e.indexOf(t,n)>-1:!!i&&ve(e,t,n)>-1}var Ni=Math.max;function ki(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var i=null==n?0:O(n);return i<0&&(i=Ni(r+i,0)),ve(e,t,i)}var Gi="[object Map]",zi="[object Set]",Qi=Object.prototype.hasOwnProperty;function Vi(e){if(null==e)return!0;if(Pe(e)&&(x(e)||"string"==typeof e||"function"==typeof e.splice||He(e)||Ze(e)||Ge(e)))return!e.length;var t=vn(e);if(t==Gi||t==zi)return!e.size;if(Fe(e))return!it(e).length;for(var n in e)if(Qi.call(e,n))return!1;return!0}var Hi=Ke&&Ke.isRegExp;const ji=Hi?We(Hi):function(e){return g(e)&&"[object RegExp]"==m(e)};function Wi(e){return void 0===e}var Xi="Expected a function";function Yi(e,t,n,r){if(!T(e))return e;for(var i=-1,s=(t=Rt(t,e)).length,a=s-1,o=e;null!=o&&++i=ns){var c=t?null:ts(e);if(c)return fr(c);a=!1,i=cr,l=new or}else l=t?[]:o;e:for(;++r{t.accept(e)}))}}class hs extends cs{constructor(e){super([]),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class us extends cs{constructor(e){super(e.definition),this.orgText="",lt(this,qi(e,(e=>void 0!==e)))}}class ds extends cs{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,lt(this,qi(e,(e=>void 0!==e)))}}class ps extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class fs extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class ms extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class gs extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class As extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class vs extends cs{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,lt(this,qi(e,(e=>void 0!==e)))}}class ys{constructor(e){this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}accept(e){e.visit(this)}}function xs(e){function t(e){return _i(e,xs)}if(e instanceof hs){const t={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return Li(e.label)&&(t.label=e.label),t}if(e instanceof ds)return{type:"Alternative",definition:t(e.definition)};if(e instanceof ps)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof fs)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof ms)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:xs(new ys({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof As)return{type:"RepetitionWithSeparator",idx:e.idx,separator:xs(new ys({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof gs)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};if(e instanceof vs)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};if(e instanceof ys){const t={type:"Terminal",name:e.terminalType.name,label:ls(e.terminalType),idx:e.idx};Li(e.label)&&(t.terminalLabel=e.label);const n=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=ji(n)?n.source:n),t}if(e instanceof us)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error("non exhaustive match")}class bs{visit(e){const t=e;switch(t.constructor){case hs:return this.visitNonTerminal(t);case ds:return this.visitAlternative(t);case ps:return this.visitOption(t);case fs:return this.visitRepetitionMandatory(t);case ms:return this.visitRepetitionMandatoryWithSeparator(t);case As:return this.visitRepetitionWithSeparator(t);case gs:return this.visitRepetition(t);case vs:return this.visitAlternation(t);case ys:return this.visitTerminal(t);case us:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function Es(e,t=[]){return!!(e instanceof ps||e instanceof gs||e instanceof As)||(e instanceof vs?es(e.definition,(e=>Es(e,t))):!(e instanceof hs&&Oi(t,e))&&(e instanceof cs&&(e instanceof hs&&t.push(e),mi(e.definition,(e=>Es(e,t))))))}function _s(e){if(e instanceof hs)return"SUBRULE";if(e instanceof ps)return"OPTION";if(e instanceof vs)return"OR";if(e instanceof fs)return"AT_LEAST_ONE";if(e instanceof ms)return"AT_LEAST_ONE_SEP";if(e instanceof As)return"MANY_SEP";if(e instanceof gs)return"MANY";if(e instanceof ys)return"CONSUME";throw Error("non exhaustive match")}class Ss{walk(e,t=[]){di(e.definition,((n,r)=>{const i=hi(e.definition,r+1);if(n instanceof hs)this.walkProdRef(n,i,t);else if(n instanceof ys)this.walkTerminal(n,i,t);else if(n instanceof ds)this.walkFlat(n,i,t);else if(n instanceof ps)this.walkOption(n,i,t);else if(n instanceof fs)this.walkAtLeastOne(n,i,t);else if(n instanceof ms)this.walkAtLeastOneSep(n,i,t);else if(n instanceof As)this.walkManySep(n,i,t);else if(n instanceof gs)this.walkMany(n,i,t);else{if(!(n instanceof vs))throw Error("non exhaustive match");this.walkOr(n,i,t)}}))}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){const r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){const r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){const r=[new ps({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){const r=ws(e,t,n);this.walk(e,r)}walkMany(e,t,n){const r=[new ps({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){const r=ws(e,t,n);this.walk(e,r)}walkOr(e,t,n){const r=t.concat(n);di(e.definition,(e=>{const t=new ds({definition:[e]});this.walk(t,r)}))}}function ws(e,t,n){return[new ps({definition:[new ys({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function Ms(e){if(e instanceof hs)return Ms(e.referencedRule);if(e instanceof ys)return[e.terminalType];if(function(e){return e instanceof ds||e instanceof ps||e instanceof gs||e instanceof fs||e instanceof ms||e instanceof As||e instanceof ys||e instanceof us}(e))return function(e){let t=[];const n=e.definition;let r,i=0,s=n.length>i,a=!0;for(;s&&a;)r=n[i],a=Es(r),t=t.concat(Ms(r)),i+=1,s=n.length>i;return rs(t)}(e);if(function(e){return e instanceof vs}(e))return function(e){const t=_i(e.definition,(e=>Ms(e)));return rs(kt(t))}(e);throw Error("non exhaustive match")}const Cs="_~IN~_";class Ts extends Ss{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){const r=(i=e.referencedRule,s=e.idx,i.name+s+Cs+this.topProd.name);var i,s;const a=t.concat(n),o=Ms(new ds({definition:a}));this.follows[r]=o}}function Is(e){return e.charCodeAt(0)}function Bs(e,t){Array.isArray(e)?e.forEach((function(e){t.push(e)})):t.push(e)}function Rs(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function Ps(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function Ds(e){return"Character"===e.type}const Ls=[];for(let e=Is("0");e<=Is("9");e++)Ls.push(e);const Fs=[Is("_")].concat(Ls);for(let e=Is("a");e<=Is("z");e++)Fs.push(e);for(let e=Is("A");e<=Is("Z");e++)Fs.push(e);const Us=[Is(" "),Is("\f"),Is("\n"),Is("\r"),Is("\t"),Is("\v"),Is("\t"),Is("\xa0"),Is("\u1680"),Is("\u2000"),Is("\u2001"),Is("\u2002"),Is("\u2003"),Is("\u2004"),Is("\u2005"),Is("\u2006"),Is("\u2007"),Is("\u2008"),Is("\u2009"),Is("\u200a"),Is("\u2028"),Is("\u2029"),Is("\u202f"),Is("\u205f"),Is("\u3000"),Is("\ufeff")],Os=/[0-9a-fA-F]/,Ns=/[0-9]/,ks=/[1-9]/;class Gs{visitChildren(e){for(const t in e){const n=e[t];e.hasOwnProperty(t)&&(void 0!==n.type?this.visit(n):Array.isArray(n)&&n.forEach((e=>{this.visit(e)}),this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}let zs={};const Qs=new class{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const n={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Rs(n,"global");break;case"i":Rs(n,"ignoreCase");break;case"m":Rs(n,"multiLine");break;case"u":Rs(n,"unicode");break;case"y":Rs(n,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:n,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}Ps(t);const n=this.disjunction();return this.consumeChar(")"),{type:t,value:n,loc:this.loc(e)}}return function(){throw Error("Internal Error - Should never get here!")}()}quantifier(e=!1){let t;const n=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const n=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:n,atMost:n};break;case",":let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;Ps(t)}if(!0!==e||void 0!==t)return Ps(t)?("?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(n),t):void 0}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}if(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),Ps(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[Is("\n"),Is("\r"),Is("\u2028"),Is("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=Ls;break;case"D":e=Ls,t=!0;break;case"s":e=Us;break;case"S":e=Us,t=!0;break;case"w":e=Fs;break;case"W":e=Fs,t=!0}if(Ps(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=Is("\f");break;case"n":e=Is("\n");break;case"r":e=Is("\r");break;case"t":e=Is("\t");break;case"v":e=Is("\v")}if(Ps(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:Is("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:Is(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:Is(this.popChar())}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const t=this.classAtom();if(t.type,Ds(t)&&this.isRangeDash()){this.consumeChar("-");const n=this.classAtom();if(n.type,Ds(n)){if(n.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}};function Vs(e){const t=e.toString();if(zs.hasOwnProperty(t))return zs[t];{const e=Qs.pattern(t);return zs[t]=e,e}}const Hs="Complement Sets are not supported for first char optimization",js='Unable to use "first char" lexer optimizations:\n';function Ws(e,t=!1){try{const t=Vs(e);return Xs(t.value,{},t.flags.ignoreCase)}catch(n){if(n.message===Hs)t&&ss(`${js}\tUnable to optimize: < ${e.toString()} >\n\tComplement Sets cannot be automatically optimized.\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let n="";t&&(n="\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),is(`${js}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues`+n)}}return[]}function Xs(e,t,n){switch(e.type){case"Disjunction":for(let i=0;i{if("number"==typeof e)Ys(e,t,n);else{const r=e;if(!0===n)for(let e=r.from;e<=r.to;e++)Ys(e,t,n);else{for(let e=r.from;e<=r.to&&e=ga){const e=r.from>=ga?r.from:ga,n=r.to,i=va(e),s=va(n);for(let r=i;r<=s;r++)t[r]=r}}}}));break;case"Group":Xs(s.value,t,n);break;default:throw Error("Non Exhaustive Match")}const a=void 0!==s.quantifier&&0===s.quantifier.atLeast;if("Group"===s.type&&!1===Ks(s)||"Group"!==s.type&&!1===a)break}break;default:throw Error("non exhaustive match!")}return Fi(t)}function Ys(e,t,n){const r=va(e);t[r]=r,!0===n&&function(e,t){const n=String.fromCharCode(e),r=n.toUpperCase();if(r!==n){const e=va(r.charCodeAt(0));t[e]=e}else{const e=n.toLowerCase();if(e!==n){const n=va(e.charCodeAt(0));t[n]=n}}}(e,t)}function qs(e,t){return xi(e.value,(e=>{if("number"==typeof e)return Oi(t,e);{const n=e;return void 0!==xi(t,(e=>n.from<=e&&e<=n.to))}}))}function Ks(e){const t=e.quantifier;return!(!t||0!==t.atLeast)||!!e.value&&(x(e.value)?mi(e.value,Ks):Ks(e.value))}class Js extends Gs{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":return void this.visitLookahead(e);case"NegativeLookahead":return void this.visitNegativeLookahead(e)}super.visitChildren(e)}}visitCharacter(e){Oi(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===qs(e,this.targetCharCodes)&&(this.found=!0):void 0!==qs(e,this.targetCharCodes)&&(this.found=!0)}}function Zs(e,t){if(t instanceof RegExp){const n=Vs(t),r=new Js(e);return r.visit(n),r.found}return void 0!==xi(t,(t=>Oi(e,t.charCodeAt(0))))}const $s="PATTERN",ea="defaultMode",ta="modes";let na="boolean"==typeof new RegExp("(?:)").sticky;function ra(e,t){const n=(t=si(t,{useSticky:na,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:(e,t)=>t()})).tracer;let r;n("initCharCodeToOptimizedIndexMap",(()=>{!function(){if(Vi(Aa)){Aa=new Array(65536);for(let e=0;e<65536;e++)Aa[e]=e>255?255+~~(e/255):e}}()})),n("Reject Lexer.NA",(()=>{r=Zi(e,(e=>e[$s]===Pa.NA))}));let i,s,a,o,l,c,h,u,d,p,f,m=!1;n("Transform Patterns",(()=>{m=!1,i=_i(r,(e=>{const n=e[$s];if(ji(n)){const e=n.source;return 1!==e.length||"^"===e||"$"===e||"."===e||n.ignoreCase?2!==e.length||"\\"!==e[0]||Oi(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?t.useSticky?la(n):oa(n):e[1]:e}if(V(n))return m=!0,{exec:n};if("object"==typeof n)return m=!0,n;if("string"==typeof n){if(1===n.length)return n;{const e=n.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),r=new RegExp(e);return t.useSticky?la(r):oa(r)}}throw Error("non exhaustive match")}))})),n("misc mapping",(()=>{s=_i(r,(e=>e.tokenTypeIdx)),a=_i(r,(e=>{const t=e.GROUP;if(t!==Pa.SKIPPED){if(Li(t))return t;if(Wi(t))return!1;throw Error("non exhaustive match")}})),o=_i(r,(e=>{const t=e.LONGER_ALT;if(t){return x(t)?_i(t,(e=>ki(r,e))):[ki(r,t)]}})),l=_i(r,(e=>e.PUSH_MODE)),c=_i(r,(e=>Pi(e,"POP_MODE")))})),n("Line Terminator Handling",(()=>{const e=fa(t.lineTerminatorCharacters);h=_i(r,(e=>!1)),"onlyOffset"!==t.positionTracking&&(h=_i(r,(t=>Pi(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===pa(t,e)&&Zs(e,t.PATTERN))))})),n("Misc Mapping #2",(()=>{u=_i(r,ha),d=_i(i,ua),p=Ji(r,((e,t)=>{const n=t.GROUP;return Li(n)&&n!==Pa.SKIPPED&&(e[n]=[]),e}),{}),f=_i(i,((e,t)=>({pattern:i[t],longerAlt:o[t],canLineTerminator:h[t],isCustom:u[t],short:d[t],group:a[t],push:l[t],pop:c[t],tokenTypeIdx:s[t],tokenType:r[t]})))}));let g=!0,A=[];return t.safeMode||n("First Char Optimization",(()=>{A=Ji(r,((e,n,r)=>{if("string"==typeof n.PATTERN){const t=va(n.PATTERN.charCodeAt(0));ma(e,t,f[r])}else if(x(n.START_CHARS_HINT)){let t;di(n.START_CHARS_HINT,(n=>{const i=va("string"==typeof n?n.charCodeAt(0):n);t!==i&&(t=i,ma(e,i,f[r]))}))}else if(ji(n.PATTERN))if(n.PATTERN.unicode)g=!1,t.ensureOptimizations&&is(`${js}\tUnable to analyze < ${n.PATTERN.toString()} > pattern.\n\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const i=Ws(n.PATTERN,t.ensureOptimizations);Vi(i)&&(g=!1),di(i,(t=>{ma(e,t,f[r])}))}else t.ensureOptimizations&&is(`${js}\tTokenType: <${n.name}> is using a custom token pattern without providing parameter.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),g=!1;return e}),[])})),{emptyGroups:p,patternIdxToConfig:f,charCodeToPatternIdxToConfig:A,hasCustom:m,canBeOptimized:g}}function ia(e,t){let n=[];const r=function(e){const t=Ai(e,(e=>!Pi(e,$s))),n=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:Ia.MISSING_PATTERN,tokenTypes:[e]}))),r=li(e,t);return{errors:n,valid:r}}(e);n=n.concat(r.errors);const i=function(e){const t=Ai(e,(e=>{const t=e[$s];return!(ji(t)||V(t)||Pi(t,"exec")||Li(t))})),n=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Ia.INVALID_PATTERN,tokenTypes:[e]}))),r=li(e,t);return{errors:n,valid:r}}(r.valid),s=i.valid;return n=n.concat(i.errors),n=n.concat(function(e){let t=[];const n=Ai(e,(e=>ji(e[$s])));return t=t.concat(function(e){class t extends Gs{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}const n=Ai(e,(e=>{const n=e.PATTERN;try{const e=Vs(n),r=new t;return r.visit(e),r.found}catch(r){return sa.test(n.source)}})),r=_i(n,(e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:Ia.EOI_ANCHOR_FOUND,tokenTypes:[e]})));return r}(n)),t=t.concat(function(e){class t extends Gs{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}const n=Ai(e,(e=>{const n=e.PATTERN;try{const e=Vs(n),r=new t;return r.visit(e),r.found}catch(r){return aa.test(n.source)}})),r=_i(n,(e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:Ia.SOI_ANCHOR_FOUND,tokenTypes:[e]})));return r}(n)),t=t.concat(function(e){const t=Ai(e,(e=>{const t=e[$s];return t instanceof RegExp&&(t.multiline||t.global)})),n=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Ia.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]})));return n}(n)),t=t.concat(function(e){const t=[];let n=_i(e,(n=>Ji(e,((e,r)=>(n.PATTERN.source!==r.PATTERN.source||Oi(t,r)||r.PATTERN===Pa.NA||(t.push(r),e.push(r)),e)),[])));n=ar(n);const r=_i(Ai(n,(e=>e.length>1)),(e=>{const t=_i(e,(e=>e.name));return{message:`The same RegExp pattern ->${bi(e).PATTERN}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:Ia.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}}));return r}(n)),t=t.concat(function(e){const t=Ai(e,(e=>e.PATTERN.test(""))),n=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:Ia.EMPTY_MATCH_PATTERN,tokenTypes:[e]})));return n}(n)),t}(s)),n=n.concat(function(e){const t=Ai(e,(e=>{if(!Pi(e,"GROUP"))return!1;const t=e.GROUP;return t!==Pa.SKIPPED&&t!==Pa.NA&&!Li(t)})),n=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Ia.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]})));return n}(s)),n=n.concat(function(e,t){const n=Ai(e,(e=>void 0!==e.PUSH_MODE&&!Oi(t,e.PUSH_MODE))),r=_i(n,(e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:Ia.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]})));return r}(s,t)),n=n.concat(function(e){const t=[],n=Ji(e,((e,t,n)=>{const r=t.PATTERN;return r===Pa.NA||(Li(r)?e.push({str:r,idx:n,tokenType:t}):ji(r)&&(i=r,void 0===xi([".","\\","[","]","|","^","$","(",")","?","*","+","{"],(e=>-1!==i.source.indexOf(e))))&&e.push({str:r.source,idx:n,tokenType:t})),e;var i}),[]);return di(e,((e,r)=>{di(n,(({str:n,idx:i,tokenType:s})=>{if(r${s.name}<- can never be matched.\nBecause it appears AFTER the Token Type ->${e.name}<-in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:n,type:Ia.UNREACHABLE_PATTERN,tokenTypes:[e,s]})}}))})),t}(s)),n}const sa=/[^\\][$]/;const aa=/[^\\[][\^]|^\^/;function oa(e){const t=e.ignoreCase?"i":"";return new RegExp(`^(?:${e.source})`,t)}function la(e){const t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function ca(e,t,n){const r=[];let i=!1;const s=Zi(ar(kt(Fi(e.modes))),(e=>e[$s]===Pa.NA)),a=fa(n);return t&&di(s,(e=>{const t=pa(e,a);if(!1!==t){const n=function(e,t){if(t.issue===Ia.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.\n\tThe problem is in the <${e.name}> Token Type\n\t Root cause: ${t.errMsg}.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===Ia.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option.\n\tThe problem is in the <${e.name}> Token Type\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}(e,t),i={message:n,type:t.issue,tokenType:e};r.push(i)}else Pi(e,"LINE_BREAKS")?!0===e.LINE_BREAKS&&(i=!0):Zs(a,e.PATTERN)&&(i=!0)})),t&&!i&&r.push({message:"Warning: No LINE_BREAKS Found.\n\tThis Lexer has been defined to track line and column information,\n\tBut none of the Token Types can be identified as matching a line terminator.\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n\tfor details.",type:Ia.NO_LINE_BREAKS_FLAGS}),r}function ha(e){const t=e.PATTERN;if(ji(t))return!1;if(V(t))return!0;if(Pi(t,"exec"))return!0;if(Li(t))return!1;throw Error("non exhaustive match")}function ua(e){return!(!Li(e)||1!==e.length)&&e.charCodeAt(0)}const da={test:function(e){const t=e.length;for(let n=this.lastIndex;nLi(e)?e.charCodeAt(0):e))}function ma(e,t,n){void 0===e[t]?e[t]=[n]:e[t].push(n)}const ga=256;let Aa=[];function va(e){return ee.CATEGORIES))));const e=li(n,t);t=t.concat(e),Vi(e)?r=!1:n=e}return t}(e);!function(e){di(e,(e=>{wa(e)||(Ea[ba]=e,e.tokenTypeIdx=ba++),Ma(e)&&!x(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Ma(e)||(e.CATEGORIES=[]),Pi(e,"categoryMatches")||(e.categoryMatches=[]),function(e){return Pi(e,"categoryMatchesMap")}(e)||(e.categoryMatchesMap={})}))}(t),function(e){di(e,(e=>{Sa([],e)}))}(t),function(e){di(e,(e=>{e.categoryMatches=[],di(e.categoryMatchesMap,((t,n)=>{e.categoryMatches.push(Ea[n].tokenTypeIdx)}))}))}(t),di(t,(e=>{e.isParent=e.categoryMatches.length>0}))}function Sa(e,t){di(e,(e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0})),di(t.CATEGORIES,(n=>{const r=e.concat(t);Oi(r,n)||Sa(r,n)}))}function wa(e){return Pi(e,"tokenTypeIdx")}function Ma(e){return Pi(e,"CATEGORIES")}function Ca(e){return Pi(e,"tokenTypeIdx")}const Ta={buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,n,r,i)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${n} characters.`};var Ia,Ba;(Ba=Ia||(Ia={}))[Ba.MISSING_PATTERN=0]="MISSING_PATTERN",Ba[Ba.INVALID_PATTERN=1]="INVALID_PATTERN",Ba[Ba.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",Ba[Ba.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",Ba[Ba.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",Ba[Ba.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",Ba[Ba.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",Ba[Ba.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",Ba[Ba.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",Ba[Ba.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",Ba[Ba.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",Ba[Ba.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",Ba[Ba.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",Ba[Ba.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",Ba[Ba.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",Ba[Ba.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",Ba[Ba.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",Ba[Ba.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE";const Ra={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Ta,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Ra);class Pa{constructor(e,t=Ra){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0===this.traceInitPerf){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent`);const{time:r,value:i}=as(t),s=r>10?console.warn:console.log;return this.traceInitIndent time: ${r}ms`),this.traceInitIndent--,i}return t()},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=lt({},Ra,t);const n=this.config.traceInitPerf;!0===n?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof n&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",(()=>{let n,r=!0;this.TRACE_INIT("Lexer Config handling",(()=>{if(this.config.lineTerminatorsPattern===Ra.lineTerminatorsPattern)this.config.lineTerminatorsPattern=da;else if(this.config.lineTerminatorCharacters===Ra.lineTerminatorCharacters)throw Error("Error: Missing property on the Lexer config.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),x(e)?n={modes:{defaultMode:sr(e)},defaultMode:ea}:(r=!1,n=sr(e))})),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",(()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t,n){const r=[];return Pi(e,ea)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+ea+"> property in its definition\n",type:Ia.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Pi(e,ta)||r.push({message:"A MultiMode Lexer cannot be initialized without a property in its definition\n",type:Ia.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Pi(e,ta)&&Pi(e,ea)&&!Pi(e.modes,e.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${ea}: <${e.defaultMode}>which does not exist\n`,type:Ia.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Pi(e,ta)&&di(e.modes,((e,t)=>{di(e,((n,i)=>{Wi(n)?r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${i}>\n`,type:Ia.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED}):Pi(n,"LONGER_ALT")&&di(x(n.LONGER_ALT)?n.LONGER_ALT:[n.LONGER_ALT],(i=>{Wi(i)||Oi(e,i)||r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${i.name}> on token <${n.name}> outside of mode <${t}>\n`,type:Ia.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})}))}))})),r}(n,this.trackStartLines,this.config.lineTerminatorCharacters))})),this.TRACE_INIT("performWarningRuntimeChecks",(()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(ca(n,this.trackStartLines,this.config.lineTerminatorCharacters))}))),n.modes=n.modes?n.modes:{},di(n.modes,((e,t)=>{n.modes[t]=Zi(e,(e=>Wi(e)))}));const i=st(n.modes);if(di(n.modes,((e,n)=>{this.TRACE_INIT(`Mode: <${n}> processing`,(()=>{if(this.modes.push(n),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",(()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(ia(e,i))})),Vi(this.lexerDefinitionErrors)){let r;_a(e),this.TRACE_INIT("analyzeTokenTypes",(()=>{r=ra(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})})),this.patternIdxToConfig[n]=r.patternIdxToConfig,this.charCodeToPatternIdxToConfig[n]=r.charCodeToPatternIdxToConfig,this.emptyGroups=lt({},this.emptyGroups,r.emptyGroups),this.hasCustom=r.hasCustom||this.hasCustom,this.canModeBeOptimized[n]=r.canBeOptimized}}))})),this.defaultMode=n.defaultMode,!Vi(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const e=_i(this.lexerDefinitionErrors,(e=>e.message)).join("-----------------------\n");throw new Error("Errors detected in definition of Lexer:\n"+e)}di(this.lexerDefinitionWarning,(e=>{ss(e.message)})),this.TRACE_INIT("Choosing sub-methods implementations",(()=>{if(na?(this.chopInput=N,this.match=this.matchWithTest):(this.updateLastIndex=ae,this.match=this.matchWithExec),r&&(this.handleModes=ae),!1===this.trackStartLines&&(this.computeNewColumn=N),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=ae),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else{if(!/onlyOffset/i.test(this.config.positionTracking))throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.createTokenInstance=this.createOffsetOnlyToken}this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)})),this.TRACE_INIT("Failed Optimization Warnings",(()=>{const e=Ji(this.canModeBeOptimized,((e,t,n)=>(!1===t&&e.push(n),e)),[]);if(t.ensureOptimizations&&!Vi(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized.\n\t Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n\t Or inspect the console log for details on how to resolve these issues.`)})),this.TRACE_INIT("clearRegExpParserCache",(()=>{zs={}})),this.TRACE_INIT("toFastProperties",(()=>{os(this)}))}))}tokenize(e,t=this.defaultMode){if(!Vi(this.lexerDefinitionErrors)){const e=_i(this.lexerDefinitionErrors,(e=>e.message)).join("-----------------------\n");throw new Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let n,r,i,s,a,o,l,c,h,u,d,p,f,m,g;const A=e,v=A.length;let y=0,b=0;const E=this.hasCustom?0:Math.floor(e.length/10),_=new Array(E),S=[];let w=this.trackStartLines?1:void 0,M=this.trackStartLines?1:void 0;const C=function(e){const t={};return di(st(e),(n=>{const r=e[n];if(!x(r))throw Error("non exhaustive match");t[n]=[]})),t}(this.emptyGroups),T=this.trackStartLines,I=this.config.lineTerminatorsPattern;let B=0,R=[],P=[];const D=[],L=[];let F;function U(){return R}function O(e){const t=va(e),n=P[t];return void 0===n?L:n}Object.freeze(L);const N=e=>{if(1===D.length&&void 0===e.tokenType.PUSH_MODE){const t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);S.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{D.pop();const e=ci(D);R=this.patternIdxToConfig[e],P=this.charCodeToPatternIdxToConfig[e],B=R.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;F=P&&t?O:U}};function k(e){D.push(e),P=this.charCodeToPatternIdxToConfig[e],R=this.patternIdxToConfig[e],B=R.length,B=R.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;F=P&&t?O:U}let G;k.call(this,t);const z=this.config.recoveryEnabled;for(;yo.length){o=s,l=c,G=t;break}}}break}}if(null!==o){if(h=o.length,u=G.group,void 0!==u&&(d=G.tokenTypeIdx,p=this.createTokenInstance(o,y,d,G.tokenType,w,M,h),this.handlePayload(p,l),!1===u?b=this.addToken(_,b,p):C[u].push(p)),e=this.chopInput(e,h),y+=h,M=this.computeNewColumn(M,h),!0===T&&!0===G.canLineTerminator){let e,t,n=0;I.lastIndex=0;do{e=I.test(o),!0===e&&(t=I.lastIndex-1,n++)}while(!0===e);0!==n&&(w+=n,M=h-t,this.updateTokenEndLineColumnLocation(p,u,t,n,w,M,h))}this.handleModes(G,N,k,p)}else{const t=y,n=w,i=M;let s=!1===z;for(;!1===s&&y`Expecting ${La(e)?`--\x3e ${Da(e)} <--`:`token of type --\x3e ${e.name} <--`} but found --\x3e '${t.image}' <--`,buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:n,customUserDescription:r,ruleName:i}){const s="Expecting: ",a="\nbut found: '"+bi(t).image+"'";if(r)return s+r+a;{const t=_i(Ji(e,((e,t)=>e.concat(t)),[]),(e=>`[${_i(e,(e=>Da(e))).join(", ")}]`));return s+`one of these possible Token sequences:\n${_i(t,((e,t)=>` ${t+1}. ${e}`)).join("\n")}`+a}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:n,ruleName:r}){const i="Expecting: ",s="\nbut found: '"+bi(t).image+"'";if(n)return i+n+s;return i+`expecting at least one iteration which starts with one of these possible Token sequences::\n <${_i(e,(e=>`[${_i(e,(e=>Da(e))).join(",")}]`)).join(" ,")}>`+s}};Object.freeze(Xa);const Ya={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},qa={buildDuplicateFoundError(e,t){const n=e.name,r=bi(t),i=r.idx,s=_s(r),a=(o=r)instanceof ys?o.terminalType.name:o instanceof hs?o.nonTerminalName:"";var o;let l=`->${s}${i>0?i:""}<- ${a?`with argument: ->${a}<-`:""}\n appears more than once (${t.length} times) in the top level rule: ->${n}<-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;return l=l.replace(/[ \t]+/g," "),l=l.replace(/\s\s+/g,"\n"),l},buildNamespaceConflictError:e=>`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(e){const t=_i(e.prefixPath,(e=>Da(e))).join(", "),n=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix\nin inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\nSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`},buildAlternationAmbiguityError(e){const t=_i(e.prefixPath,(e=>Da(e))).join(", "),n=0===e.alternation.idx?"":e.alternation.idx;let r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return r+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",r},buildEmptyRepetitionError(e){let t=_s(e.repetition);0!==e.repetition.idx&&(t+=e.repetition.idx);return`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError:e=>"deprecated",buildEmptyAlternationError:e=>`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`,buildTooManyAlternativesError:e=>`An Alternation cannot have more than 256 alternatives:\n inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(e){const t=e.topLevelRule.name;return`Left Recursion found in grammar.\nrule: <${t}> can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${`${t} --\x3e ${_i(e.leftRecursionPath,(e=>e.name)).concat([t]).join(" --\x3e ")}`}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;t=e.topLevelRule instanceof us?e.topLevelRule.name:e.topLevelRule;return`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};class Ka extends bs{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){di(Fi(this.nameToTopRule),(e=>{this.currTopLevel=e,e.accept(this)}))}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:xl.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class Ja extends Ss{constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=sr(this.path.ruleStack).reverse(),this.occurrenceStack=sr(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,n){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const r=t.concat(n);this.updateExpectedNext(),this.walk(e.referencedRule,r)}}updateExpectedNext(){Vi(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Za extends Ja{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,n){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const e=t.concat(n),r=new ds({definition:e});this.possibleTokTypes=Ms(r),this.found=!0}}}class $a extends Ss{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class eo extends $a{walkMany(e,t,n){if(e.idx===this.occurrence){const e=bi(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof ys&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,n)}}class to extends $a{walkManySep(e,t,n){if(e.idx===this.occurrence){const e=bi(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof ys&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,n)}}class no extends $a{walkAtLeastOne(e,t,n){if(e.idx===this.occurrence){const e=bi(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof ys&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,n)}}class ro extends $a{walkAtLeastOneSep(e,t,n){if(e.idx===this.occurrence){const e=bi(t.concat(n));this.result.isEndOfRule=void 0===e,e instanceof ys&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,n)}}function io(e,t,n=[]){n=sr(n);let r=[],i=0;function s(s){const a=io(s.concat(hi(e,i+1)),t,n);return r.concat(a)}for(;n.length{!1===Vi(e.definition)&&(r=s(e.definition))})),r;if(!(t instanceof ys))throw Error("non exhaustive match");n.push(t.terminalType)}}i++}return r.push({partialPath:n,suffixDef:hi(e,i)}),r}function so(e,t,n,r){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=t.length,c=l-r-1,h=[],u=[];for(u.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!Vi(u);){const e=u.pop();if(e===a){o&&ci(u).idx<=c&&u.pop();continue}const r=e.def,d=e.idx,p=e.ruleStack,f=e.occurrenceStack;if(Vi(r))continue;const m=r[0];if(m===i){const e={idx:d,def:hi(r),ruleStack:ui(p),occurrenceStack:ui(f)};u.push(e)}else if(m instanceof ys)if(d=0;t--){const e={idx:d,def:m.definition[t].definition.concat(hi(r)),ruleStack:p,occurrenceStack:f};u.push(e),u.push(a)}else if(m instanceof ds)u.push({idx:d,def:m.definition.concat(hi(r)),ruleStack:p,occurrenceStack:f});else{if(!(m instanceof us))throw Error("non exhaustive match");u.push(ao(m,d,p,f))}}return h}function ao(e,t,n,r){const i=sr(n);i.push(e.name);const s=sr(r);return s.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:s}}var oo,lo;function co(e){if(e instanceof ps||"Option"===e)return oo.OPTION;if(e instanceof gs||"Repetition"===e)return oo.REPETITION;if(e instanceof fs||"RepetitionMandatory"===e)return oo.REPETITION_MANDATORY;if(e instanceof ms||"RepetitionMandatoryWithSeparator"===e)return oo.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof As||"RepetitionWithSeparator"===e)return oo.REPETITION_WITH_SEPARATOR;if(e instanceof vs||"Alternation"===e)return oo.ALTERNATION;throw Error("non exhaustive match")}function ho(e,t,n,r){const i=e.length,s=mi(e,(e=>mi(e,(e=>1===e.length))));if(t)return function(t){const r=_i(t,(e=>e.GATE));for(let s=0;skt(e))),((e,t,n)=>(di(t,(t=>{Pi(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=n),di(t.categoryMatches,(t=>{Pi(e,t)||(e[t]=n)}))})),e)),{});return function(){const e=this.LA(1);return t[e.tokenTypeIdx]}}return function(){for(let t=0;t1===e.length)),i=e.length;if(r&&!n){const t=kt(e);if(1===t.length&&Vi(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=Ji(t,((e,t,n)=>(e[t.tokenTypeIdx]=!0,di(t.categoryMatches,(t=>{e[t]=!0})),e)),[]);return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){e:for(let n=0;nio([e],1))),r=mo(n.length),i=_i(n,(e=>{const t={};return di(e,(e=>{di(go(e.partialPath),(e=>{t[e]=!0}))})),t}));let s=n;for(let a=1;a<=t;a++){const e=s;s=mo(e.length);for(let n=0;n{di(go(e.partialPath),(e=>{i[n][e]=!0}))}))}}}}return r}function yo(e,t,n,r){const i=new fo(e,oo.ALTERNATION,r);return t.accept(i),vo(i.result,n)}function xo(e,t,n,r){const i=new fo(e,n);t.accept(i);const s=i.result,a=new po(t,e,n).startWalking();return vo([new ds({definition:s}),new ds({definition:a})],r)}function bo(e,t){e:for(let n=0;nmi(e,(e=>mi(e,(e=>Vi(e.categoryMatches)))))))}function _o(e,t,n,r){const i=Si(e,(e=>function(e,t){const n=new Mo;e.accept(n);const r=n.allProductions,i=Ii(r,So),s=_i(Fi(qi(i,(e=>e.length>1))),(n=>{const r=bi(n),i=t.buildDuplicateFoundError(e,n),s=_s(r),a={message:i,type:xl.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:s,occurrence:r.idx},o=wo(r);return o&&(a.parameter=o),a}));return s}(e,n))),s=function(e,t,n){const r=[],i=_i(t,(e=>e.name));return di(e,(e=>{const t=e.name;if(Oi(i,t)){const i=n.buildNamespaceConflictError(e);r.push({message:i,type:xl.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}})),r}(e,t,n),a=Si(e,(e=>function(e,t){const n=new Io;e.accept(n);const r=Si(n.alternations,(n=>n.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:n}),type:xl.TOO_MANY_ALTS,ruleName:e.name,occurrence:n.idx}]:[]));return r}(e,n))),o=Si(e,(t=>function(e,t,n,r){const i=[],s=Ji(t,((t,n)=>n.name===e.name?t+1:t),0);if(s>1){const t=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});i.push({message:t,type:xl.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}(t,e,r,n)));return i.concat(s,a,o)}function So(e){return`${_s(e)}_#_${e.idx}_#_${wo(e)}`}function wo(e){return e instanceof ys?e.terminalType.name:e instanceof hs?e.nonTerminalName:""}class Mo extends bs{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function Co(e,t,n,r=[]){const i=[],s=To(t.definition);if(Vi(s))return[];{const t=e.name;Oi(s,e)&&i.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:r}),type:xl.LEFT_RECURSION,ruleName:t});const a=Si(li(s,r.concat([e])),(t=>{const i=sr(r);return i.push(t),Co(e,t,n,i)}));return i.concat(a)}}function To(e){let t=[];if(Vi(e))return t;const n=bi(e);if(n instanceof hs)t.push(n.referencedRule);else if(n instanceof ds||n instanceof ps||n instanceof fs||n instanceof ms||n instanceof As||n instanceof gs)t=t.concat(To(n.definition));else if(n instanceof vs)t=kt(_i(n.definition,(e=>To(e.definition))));else if(!(n instanceof ys))throw Error("non exhaustive match");const r=Es(n),i=e.length>1;if(r&&i){const n=hi(e);return t.concat(To(n))}return t}class Io extends bs{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Bo(e,t,n){const r=new Io;e.accept(r);let i=r.alternations;i=Zi(i,(e=>!0===e.ignoreAmbiguities));const s=Si(i,(r=>{const i=r.idx,s=r.maxLookahead||t,a=yo(i,e,s,r),o=function(e,t,n,r){const i=[],s=Ji(e,((n,r,s)=>(!0===t.definition[s].ignoreAmbiguities||di(r,(r=>{const a=[s];di(e,((e,n)=>{s!==n&&bo(e,r)&&!0!==t.definition[n].ignoreAmbiguities&&a.push(n)})),a.length>1&&!bo(i,r)&&(i.push(r),n.push({alts:a,path:r}))})),n)),[]),a=_i(s,(e=>{const i=_i(e.alts,(e=>e+1));return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:xl.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:e.alts}}));return a}(a,r,e,n),l=function(e,t,n,r){const i=Ji(e,((e,t,n)=>{const r=_i(t,(e=>({idx:n,path:e})));return e.concat(r)}),[]),s=ar(Si(i,(e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];const s=e.idx,a=e.path;return _i(Ai(i,(e=>{return!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx{const n=r[t];return e===n||n.categoryMatchesMap[e.tokenTypeIdx]})));var n,r})),(e=>{const i=[e.idx+1,s+1],a=0===t.idx?"":t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:xl.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:a,alternatives:i}}))})));return s}(a,r,e,n);return o.concat(l)}));return s}class Ro extends bs{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}function Po(e){const t=si(e,{errMsgProvider:Ya}),n={};return di(e.rules,(e=>{n[e.name]=e})),function(e,t){const n=new Ka(e,t);return n.resolveRefs(),n.errors}(n,t.errMsgProvider)}const Do="MismatchedTokenException",Lo="NoViableAltException",Fo="EarlyExitException",Uo="NotAllInputParsedException",Oo=[Do,Lo,Fo,Uo];function No(e){return Oi(Oo,e.name)}Object.freeze(Oo);class ko extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class Go extends ko{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Do}}class zo extends ko{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Lo}}class Qo extends ko{constructor(e,t){super(e,t),this.name=Uo}}class Vo extends ko{constructor(e,t,n){super(e,t),this.previousToken=n,this.name=Fo}}const Ho={},jo="InRuleRecoveryException";class Wo extends Error{constructor(e){super(e),this.name=jo}}function Xo(e,t,n,r,i,s,a){const o=this.getKeyForAutomaticLookahead(r,i);let l=this.firstAfterRepMap[o];if(void 0===l){const e=this.getCurrRuleFullName();l=new s(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,h=l.occurrence;const u=l.isEndOfRule;1===this.RULE_STACK.length&&u&&void 0===c&&(c=ja,h=1),void 0!==c&&void 0!==h&&this.shouldInRepetitionRecoveryBeTried(c,h,a)&&this.tryInRepetitionRecovery(e,t,n,c)}const Yo=1024,qo=1280,Ko=1536;function Jo(e,t,n){return n|t|e}class Zo{constructor(e){var t;this.maxLookahead=null!==(t=null==e?void 0:e.maxLookahead)&&void 0!==t?t:vl.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(Vi(t)){const n=this.validateEmptyOrAlternatives(e.rules),r=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...n,...r,...i]}return t}validateNoLeftRecursion(e){return Si(e,(e=>Co(e,e,qa)))}validateEmptyOrAlternatives(e){return Si(e,(e=>function(e,t){const n=new Io;return e.accept(n),Si(n.alternations,(n=>Si(ui(n.definition),((r,i)=>Vi(so([r],[],ya,1))?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:n,emptyChoiceIdx:i}),type:xl.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:n.idx,alternative:i+1}]:[]))))}(e,qa)))}validateAmbiguousAlternationAlternatives(e,t){return Si(e,(e=>Bo(e,t,qa)))}validateSomeNonEmptyLookaheadPath(e,t){return function(e,t,n){const r=[];return di(e,(e=>{const i=new Ro;e.accept(i),di(i.allProductions,(i=>{const s=co(i),a=i.maxLookahead||t;if(Vi(kt(xo(i.idx,e,s,a)[0]))){const t=n.buildEmptyRepetitionError({topLevelRule:e,repetition:i});r.push({message:t,type:xl.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}}))})),r}(e,t,qa)}buildLookaheadForAlternation(e){return function(e,t,n,r,i,s){const a=yo(e,t,n);return s(a,r,Eo(a)?xa:ya,i)}(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,ho)}buildLookaheadForOptional(e){return function(e,t,n,r,i,s){const a=xo(e,t,i,n),o=Eo(a)?xa:ya;return s(a[0],o,r)}(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,co(e.prodType),uo)}}const $o=new class extends bs{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function el(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset!1===V(e[t]))),r=_i(n,(t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:al.MISSING_METHOD,methodName:t})));return ar(r)}(e,t);return n}(this,t);if(!Vi(e)){const t=_i(e,(e=>e.msg));throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join("\n\n").replace(/\n/g,"\n\t")}`)}}};return(n.prototype=r).constructor=n,n._RULE_NAMES=t,n}var al,ol;(ol=al||(al={}))[ol.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",ol[ol.MISSING_METHOD=1]="MISSING_METHOD";const ll={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(ll);const cl=Math.pow(2,8)-1,hl=Ha({name:"RECORDING_PHASE_TOKEN",pattern:Pa.NA});_a([hl]);const ul=Wa(hl,"This IToken indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(ul);const dl={name:"This CSTNode indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}};function pl(e,t,n,r=!1){gl(n);const i=ci(this.recordingProdStack),s=V(t)?t:t.DEF,a=new e({definition:[],idx:n});return r&&(a.separator=t.SEP),Pi(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),ll}function fl(e,t){gl(t);const n=ci(this.recordingProdStack),r=!1===x(e),i=!1===r?e:e.DEF,s=new vs({definition:[],idx:t,ignoreAmbiguities:r&&!0===e.IGNORE_AMBIGUITIES});Pi(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD);const a=es(i,(e=>V(e.GATE)));return s.hasPredicates=a,n.definition.push(s),di(i,(e=>{const t=new ds({definition:[]});s.definition.push(t),Pi(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:Pi(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()})),ll}function ml(e){return 0===e?"":`${e}`}function gl(e){if(e<0||e>cl){const t=new Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than ${cl+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}const Al=Wa(ja,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Al);const vl=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Xa,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),yl=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var xl,bl,El;(bl=xl||(xl={}))[bl.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",bl[bl.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",bl[bl.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",bl[bl.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",bl[bl.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",bl[bl.LEFT_RECURSION=5]="LEFT_RECURSION",bl[bl.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",bl[bl.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",bl[bl.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",bl[bl.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",bl[bl.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",bl[bl.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",bl[bl.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",bl[bl.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION";class _l{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated.\t\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",(()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",(()=>{os(this)})),this.TRACE_INIT("Grammar Recording",(()=>{try{this.enableRecording(),di(this.definedRulesNames,(e=>{const t=this[e].originalGrammarAction;let n;this.TRACE_INIT(`${e} Rule`,(()=>{n=this.topLevelRuleRecord(e,t)})),this.gastProductionsCache[e]=n}))}finally{this.disableRecording()}}));let n=[];if(this.TRACE_INIT("Grammar Resolving",(()=>{n=Po({rules:Fi(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(n)})),this.TRACE_INIT("Grammar Validations",(()=>{if(Vi(n)&&!1===this.skipValidations){const n=(e={rules:Fi(this.gastProductionsCache),tokenTypes:Fi(this.tokensMap),errMsgProvider:qa,grammarName:t},_o((e=si(e,{errMsgProvider:qa})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)),r=function(e){return _i(e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}),(e=>Object.assign({type:xl.CUSTOM_LOOKAHEAD_VALIDATION},e)))}({lookaheadStrategy:this.lookaheadStrategy,rules:Fi(this.gastProductionsCache),tokenTypes:Fi(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(n,r)}var e})),Vi(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",(()=>{const e=function(e){const t={};return di(e,(e=>{const n=new Ts(e).startWalking();lt(t,n)})),t}(Fi(this.gastProductionsCache));this.resyncFollows=e})),this.TRACE_INIT("ComputeLookaheadFunctions",(()=>{var e,t;null===(t=(e=this.lookaheadStrategy).initialize)||void 0===t||t.call(e,{rules:Fi(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Fi(this.gastProductionsCache))}))),!_l.DEFER_DEFINITION_ERRORS_HANDLING&&!Vi(this.definitionErrors))throw e=_i(this.definitionErrors,(e=>e.message)),new Error(`Parser Definition Errors detected:\n ${e.join("\n-------------------------------\n")}`)}))}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const n=this;if(n.initErrorHandler(t),n.initLexerAdapter(),n.initLooksAhead(t),n.initRecognizerEngine(e,t),n.initRecoverable(t),n.initTreeBuilder(t),n.initContentAssist(),n.initGastRecorder(t),n.initPerformanceTracer(t),Pi(t,"ignoredIssues"))throw new Error("The IParserConfig property has been deprecated.\n\tPlease use the flag on the relevant DSL method instead.\n\tSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\tFor further details.");this.skipValidations=Pi(t,"skipValidations")?t.skipValidations:vl.skipValidations}}_l.DEFER_DEFINITION_ERRORS_HANDLING=!1,El=_l,[class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=Pi(e,"recoveryEnabled")?e.recoveryEnabled:vl.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Xo)}getTokenToInsert(e){const t=Wa(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,n,r){const i=this.findReSyncTokenType(),s=this.exportLexerState(),a=[];let o=!1;const l=this.LA(1);let c=this.LA(1);const h=()=>{const e=this.LA(0),t=this.errorMessageProvider.buildMismatchTokenMessage({expected:r,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),n=new Go(t,l,this.LA(0));n.resyncedTokens=ui(a),this.SAVE_ERROR(n)};for(;!o;){if(this.tokenMatcher(c,r))return void h();if(n.call(this))return h(),void e.apply(this,t);this.tokenMatcher(c,i)?o=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,a))}this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,t,n){return!1!==n&&!this.tokenMatcher(this.LA(1),e)&&!this.isBackTracking()&&!this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t))}getFollowsForInRuleRecovery(e,t){const n=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(n)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new Wo("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e))return!1;if(Vi(t))return!1;const n=this.LA(1);return void 0!==xi(t,(e=>this.tokenMatcher(n,e)))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey();return Oi(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),n=2;for(;;){const r=xi(e,(e=>ya(t,e)));if(void 0!==r)return r;t=this.LA(n),n++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return Ho;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),n=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(n)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return _i(e,((n,r)=>0===r?Ho:{ruleName:this.shortRuleNameToFullName(n),idxInCallingRule:t[r],inRule:this.shortRuleNameToFullName(e[r-1])}))}flattenFollowSet(){return kt(_i(this.buildFullFollowKeyStack(),(e=>this.getFollowSetFromFollowKey(e))))}getFollowSetFromFollowKey(e){if(e===Ho)return[ja];const t=e.ruleName+e.idxInCallingRule+Cs+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,ja)||t.push(e),t}reSyncTo(e){const t=[];let n=this.LA(1);for(;!1===this.tokenMatcher(n,e);)n=this.SKIP_TOKEN(),this.addToResyncTokens(n,t);return ui(t)}attemptInRepetitionRecovery(e,t,n,r,i,s,a){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:sr(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return _i(this.RULE_STACK,(e=>this.shortRuleNameToFullName(e)))}},class{initLooksAhead(e){this.dynamicTokensEnabled=Pi(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vl.dynamicTokensEnabled,this.maxLookahead=Pi(e,"maxLookahead")?e.maxLookahead:vl.maxLookahead,this.lookaheadStrategy=Pi(e,"lookaheadStrategy")?e.lookaheadStrategy:new Zo({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){di(e,(e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,(()=>{const{alternation:t,repetition:n,option:r,repetitionMandatory:i,repetitionMandatoryWithSeparator:s,repetitionWithSeparator:a}=function(e){$o.reset(),e.accept($o);const t=$o.dslMethods;return $o.reset(),t}(e);di(t,(t=>{const n=0===t.idx?"":t.idx;this.TRACE_INIT(`${_s(t)}${n}`,(()=>{const n=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),r=Jo(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(r,n)}))})),di(n,(t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,_s(t))})),di(r,(t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,_s(t))})),di(i,(t=>{this.computeLookaheadFunc(e,t.idx,Yo,"RepetitionMandatory",t.maxLookahead,_s(t))})),di(s,(t=>{this.computeLookaheadFunc(e,t.idx,Ko,"RepetitionMandatoryWithSeparator",t.maxLookahead,_s(t))})),di(a,(t=>{this.computeLookaheadFunc(e,t.idx,qo,"RepetitionWithSeparator",t.maxLookahead,_s(t))}))}))}))}computeLookaheadFunc(e,t,n,r,i,s){this.TRACE_INIT(`${s}${0===t?"":t}`,(()=>{const s=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:r}),a=Jo(this.fullRuleNameToShort[e.name],n,t);this.setLaFuncCache(a,s)}))}getKeyForAutomaticLookahead(e,t){return Jo(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=Pi(e,"nodeLocationTracking")?e.nodeLocationTracking:vl.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=tl,this.setNodeLocationFromNode=tl,this.cstPostRule=ae,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ae,this.setNodeLocationFromNode=ae,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=el,this.setNodeLocationFromNode=el,this.cstPostRule=ae,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ae,this.setNodeLocationFromNode=ae,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else{if(!/none/i.test(this.nodeLocationTracking))throw Error(`Invalid config option: "${e.nodeLocationTracking}"`);this.setNodeLocationFromToken=ae,this.setNodeLocationFromNode=ae,this.cstPostRule=ae,this.setInitialNodeLocation=ae}else this.cstInvocationStateUpdate=ae,this.cstFinallyStateUpdate=ae,this.cstPostTerminal=ae,this.cstPostNonTerminal=ae,this.cstPostRule=ae}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),n=e.location;n.startOffset<=t.startOffset==1?(n.endOffset=t.endOffset,n.endLine=t.endLine,n.endColumn=t.endColumn):(n.startOffset=NaN,n.startLine=NaN,n.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),n=e.location;n.startOffset<=t.startOffset==1?n.endOffset=t.endOffset:n.startOffset=NaN}cstPostTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];var r,i,s;i=t,s=e,void 0===(r=n).children[s]?r.children[s]=[i]:r.children[s].push(i),this.setNodeLocationFromToken(n.location,t)}cstPostNonTerminal(e,t){const n=this.CST_STACK[this.CST_STACK.length-1];!function(e,t,n){void 0===e.children[t]?e.children[t]=[n]:e.children[t].push(n)}(n,t,e),this.setNodeLocationFromNode(n.location,e.location)}getBaseCstVisitorConstructor(){if(Wi(this.baseCstVisitorConstructor)){const e=sl(this.className,st(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(Wi(this.baseCstVisitorWithDefaultsConstructor)){const e=function(e,t,n){const r=function(){};rl(r,e+"BaseSemanticsWithDefaults");const i=Object.create(n.prototype);return di(t,(e=>{i[e]=il})),(r.prototype=i).constructor=r,r}(this.className,st(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Al}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Al:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=xa,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},Pi(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a property.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n\tFor Further details.");if(x(e)){if(Vi(e))throw Error("A Token Vocabulary cannot be empty.\n\tNote that the first argument for the parser constructor\n\tis no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n\tFor Further details.")}if(x(e))this.tokensMap=Ji(e,((e,t)=>(e[t.name]=t,e)),{});else if(Pi(e,"modes")&&mi(kt(Fi(e.modes)),Ca)){const t=rs(kt(Fi(e.modes)));this.tokensMap=Ji(t,((e,t)=>(e[t.name]=t,e)),{})}else{if(!T(e))throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap=sr(e)}this.tokensMap.EOF=ja;const n=mi(Pi(e,"modes")?kt(Fi(e.modes)):Fi(e),(e=>Vi(e.categoryMatches)));this.tokenMatcher=n?xa:ya,_a(Fi(this.tokensMap))}defineRule(e,t,n){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const r=Pi(n,"resyncEnabled")?n.resyncEnabled:yl.resyncEnabled,i=Pi(n,"recoveryValueFunc")?n.recoveryValueFunc:yl.recoveryValueFunc,s=this.ruleShortNameIdx<<12;let a;return this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s,a=!0===this.outputCst?function(...n){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),t.apply(this,n);const r=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(r),r}catch(a){return this.invokeRuleCatch(a,r,i)}finally{this.ruleFinallyStateUpdate()}}:function(...n){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),t.apply(this,n)}catch(a){return this.invokeRuleCatch(a,r,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(a,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,n){const r=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(No(e)){const t=e;if(i){const r=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(r)){if(t.resyncedTokens=this.reSyncTo(r),this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}return n(e)}if(this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}if(r)return this.moveToTerminatedState(),n(e);throw t}throw e}optionInternal(e,t){const n=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,n)}optionInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof e){r=e.DEF;const t=e.GATE;if(void 0!==t){const e=i;i=()=>t.call(this)&&e.call(this)}}else r=e;if(!0===i.call(this))return r.call(this)}atLeastOneInternal(e,t){const n=this.getKeyForAutomaticLookahead(Yo,e);return this.atLeastOneInternalLogic(e,t,n)}atLeastOneInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof t){r=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else r=t;if(!0!==i.call(this))throw this.raiseEarlyExitException(e,oo.REPETITION_MANDATORY,t.ERR_MSG);{let e=this.doSingleRepetition(r);for(;!0===i.call(this)&&!0===e;)e=this.doSingleRepetition(r)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,Yo,e,no)}atLeastOneSepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(Ko,e);this.atLeastOneSepFirstInternalLogic(e,t,n)}atLeastOneSepFirstInternalLogic(e,t,n){const r=t.DEF,i=t.SEP;if(!0!==this.getLaFuncFromCache(n).call(this))throw this.raiseEarlyExitException(e,oo.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG);{r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,ro],t,Ko,e,ro)}}manyInternal(e,t){const n=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,n)}manyInternalLogic(e,t,n){let r,i=this.getLaFuncFromCache(n);if("function"!=typeof t){r=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else r=t;let s=!0;for(;!0===i.call(this)&&!0===s;)s=this.doSingleRepetition(r);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,eo,s)}manySepFirstInternal(e,t){const n=this.getKeyForAutomaticLookahead(qo,e);this.manySepFirstInternalLogic(e,t,n)}manySepFirstInternalLogic(e,t,n){const r=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(n).call(this)){r.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,r,to],t,qo,e,to)}}repetitionSepSecondInternal(e,t,n,r,i){for(;n();)this.CONSUME(t),r.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,n,r,i],n,Ko,e,i)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const n=this.getKeyForAutomaticLookahead(256,t),r=x(e)?e:e.DEF,i=this.getLaFuncFromCache(n).call(this,r);if(void 0!==i)return r[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Qo(t,e))}}subruleInternal(e,t,n){let r;try{const i=void 0!==n?n.ARGS:void 0;return this.subruleIdx=t,r=e.apply(this,i),this.cstPostNonTerminal(r,void 0!==n&&void 0!==n.LABEL?n.LABEL:e.ruleName),r}catch(i){throw this.subruleInternalError(i,n,e.ruleName)}}subruleInternalError(e,t,n){throw No(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:n),delete e.partialCstResult),e}consumeInternal(e,t,n){let r;try{const t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),r=t):this.consumeInternalError(e,t,n)}catch(i){r=this.consumeInternalRecovery(e,t,i)}return this.cstPostTerminal(void 0!==n&&void 0!==n.LABEL?n.LABEL:e.name,r),r}consumeInternalError(e,t,n){let r;const i=this.LA(0);throw r=void 0!==n&&n.ERR_MSG?n.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Go(r,t,i))}consumeInternalRecovery(e,t,n){if(!this.recoveryEnabled||"MismatchedTokenException"!==n.name||this.isBackTracking())throw n;{const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(r){throw r.name===jo?n:r}}}saveRecogState(){const e=this.errors,t=sr(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,n){this.RULE_OCCURRENCE_STACK.push(n),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ja)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},class{ACTION(e){return e.call(this)}consume(e,t,n){return this.consumeInternal(t,e,n)}subrule(e,t,n){return this.subruleInternal(t,e,n)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,n=yl){if(Oi(this.definedRulesNames,e)){const t={message:qa.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:xl.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);const r=this.defineRule(e,t,n);return this[e]=r,r}OVERRIDE_RULE(e,t,n=yl){const r=function(e,t,n){const r=[];let i;return Oi(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:xl.INVALID_RULE_OVERRIDE,ruleName:e})),r}(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(r);const i=this.defineRule(e,t,n);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const n=this.saveRecogState();try{return e.apply(this,t),!0}catch(r){if(No(r))return!1;throw r}finally{this.reloadRecogState(n),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return _i(Fi(this.gastProductionsCache),xs)}},class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=Pi(e,"errorMessageProvider")?e.errorMessageProvider:vl.errorMessageProvider}SAVE_ERROR(e){if(No(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:sr(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return sr(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,n){const r=this.getCurrRuleFullName(),i=xo(e,this.getGAstProductions()[r],t,this.maxLookahead)[0],s=[];for(let o=1;o<=this.maxLookahead;o++)s.push(this.LA(o));const a=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:s,previous:this.LA(0),customUserDescription:n,ruleName:r});throw this.SAVE_ERROR(new Vo(a,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const n=this.getCurrRuleFullName(),r=yo(e,this.getGAstProductions()[n],this.maxLookahead),i=[];for(let o=1;o<=this.maxLookahead;o++)i.push(this.LA(o));const s=this.LA(0),a=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:r,actual:i,previous:s,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new zo(a,this.LA(1),s))}},class{initContentAssist(){}computeContentAssist(e,t){const n=this.gastProductionsCache[e];if(Wi(n))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return so([n],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=bi(e.ruleStack),n=this.getGAstProductions()[t];return new Za(n,e).startWalking()}},class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",(()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(t,n){return this.consumeInternalRecord(t,e,n)},this[`SUBRULE${t}`]=function(t,n){return this.subruleInternalRecord(t,e,n)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,n){return this.consumeInternalRecord(t,e,n)},this.subrule=function(e,t,n){return this.subruleInternalRecord(t,e,n)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD}))}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",(()=>{const e=this;for(let t=0;t<10;t++){const n=t>0?t:"";delete e[`CONSUME${n}`],delete e[`SUBRULE${n}`],delete e[`OPTION${n}`],delete e[`OR${n}`],delete e[`MANY${n}`],delete e[`MANY_SEP${n}`],delete e[`AT_LEAST_ONE${n}`],delete e[`AT_LEAST_ONE_SEP${n}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA}))}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Al}topLevelRuleRecord(e,t){try{const n=new us({definition:[],name:e});return n.name=e,this.recordingProdStack.push(n),t.call(this),this.recordingProdStack.pop(),n}catch(n){if(!0!==n.KNOWN_RECORDER_ERROR)try{n.message=n.message+'\n\t This error was thrown during the "grammar recording phase" For more info see:\n\thttps://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch(r){throw n}throw n}}optionInternalRecord(e,t){return pl.call(this,ps,e,t)}atLeastOneInternalRecord(e,t){pl.call(this,fs,t,e)}atLeastOneSepFirstInternalRecord(e,t){pl.call(this,ms,t,e,!0)}manyInternalRecord(e,t){pl.call(this,gs,t,e)}manySepFirstInternalRecord(e,t){pl.call(this,As,t,e,!0)}orInternalRecord(e,t){return fl.call(this,e,t)}subruleInternalRecord(e,t,n){if(gl(t),!e||!1===Pi(e,"ruleName")){const n=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}const r=ci(this.recordingProdStack),i=e.ruleName,s=new hs({idx:t,nonTerminalName:i,label:null==n?void 0:n.LABEL,referencedRule:void 0});return r.definition.push(s),this.outputCst?dl:ll}consumeInternalRecord(e,t,n){if(gl(t),!wa(e)){const n=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw n.KNOWN_RECORDER_ERROR=!0,n}const r=ci(this.recordingProdStack),i=new ys({idx:t,terminalType:e,label:null==n?void 0:n.LABEL});return r.definition.push(i),ul}},class{initPerformanceTracer(e){if(Pi(e,"traceInitPerf")){const t=e.traceInitPerf,n="number"==typeof t;this.traceInitMaxIdent=n?t:1/0,this.traceInitPerf=n?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=vl.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0===this.traceInitPerf){this.traceInitIndent++;const n=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent`);const{time:r,value:i}=as(t),s=r>10?console.warn:console.log;return this.traceInitIndent time: ${r}ms`),this.traceInitIndent--,i}return t()}}].forEach((e=>{const t=e.prototype;Object.getOwnPropertyNames(t).forEach((n=>{if("constructor"===n)return;const r=Object.getOwnPropertyDescriptor(t,n);r&&(r.get||r.set)?Object.defineProperty(El.prototype,n,r):El.prototype[n]=e.prototype[n]}))}));return{CstParser:class extends _l{constructor(e,t=vl){const n=sr(t);n.outputCst=!0,super(e,n)}},Lexer:Pa,createToken:Ha}})();t.CstParser=r,t.Lexer=i,t.createToken=s},29234:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});class n{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class r{constructor(e,t,n,r){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(e.buffer,e.byteOffset+t,n),this._littleEndian=r,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint8Array(e){const t=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,e);return this._offset+=e,t}_skip(e){return this._offset+=e,this}_scan(e,t){void 0===t&&(t=0);const n=this._offset;let r=0;for(;this._dataView.getUint8(this._offset)!==t&&r{"use strict";const lottie=(()=>{if("undefined"==typeof navigator||"undefined"==typeof document)return{};const svgNS="http://www.w3.org/2000/svg";let locationHref="",_useWebWorker=!1;const initialDefaultFrame=-999999,setWebWorker=e=>{_useWebWorker=!!e},getWebWorker=()=>_useWebWorker,setLocationHref=e=>{locationHref=e},getLocationHref=()=>locationHref;function createTag(e){return document.createElement(e)}function extendPrototype(e,t){var n,r,i=e.length;for(n=0;n1?n[1]=1:n[1]<=0&&(n[1]=0),HSVtoRGB(n[0],n[1],n[2])}function addBrightnessToRGB(e,t){var n=RGBtoHSV(255*e[0],255*e[1],255*e[2]);return n[2]+=t,n[2]>1?n[2]=1:n[2]<0&&(n[2]=0),HSVtoRGB(n[0],n[1],n[2])}function addHueToRGB(e,t){var n=RGBtoHSV(255*e[0],255*e[1],255*e[2]);return n[0]+=t/360,n[0]>1?n[0]-=1:n[0]<0&&(n[0]+=1),HSVtoRGB(n[0],n[1],n[2])}!function(){var e,t,n=[];for(e=0;e<256;e+=1)t=e.toString(16),n[e]=1===t.length?"0"+t:t}();const setSubframeEnabled=e=>{subframeEnabled=!!e},getSubframeEnabled=()=>subframeEnabled,setExpressionsPlugin=e=>{expressionsPlugin=e},getExpressionsPlugin=()=>expressionsPlugin,setDefaultCurveSegments=e=>{defaultCurveSegments=e},getDefaultCurveSegments=()=>defaultCurveSegments,setIdPrefix=e=>{idPrefix$1=e};function createNS(e){return document.createElementNS(svgNS,e)}const dataManager=function(){var e,t,n=1,r=[],i={onmessage:function(){},postMessage:function(t){e({data:t})}},s={postMessage:function(e){i.onmessage({data:e})}};function a(){t||((t=function(t){if(window.Worker&&window.Blob&&getWebWorker()){var n=new Blob(["var _workerSelf = self; self.onmessage = ",t.toString()],{type:"text/javascript"}),r=URL.createObjectURL(n);return new Worker(r)}return e=t,i}((function(e){if(s.dataManager||(s.dataManager=function(){function e(i,s){var a,o,l,c,h,d,p=i.length;for(o=0;o=0;t-=1)if("sh"===e[t].ty)if(e[t].ks.k.i)r(e[t].ks.k);else for(s=e[t].ks.k.length,i=0;in[0]||!(n[0]>e[0])&&(e[1]>n[1]||!(n[1]>e[1])&&(e[2]>n[2]||!(n[2]>e[2])&&null))}var s,a=function(){var e=[4,4,14];function t(e){var t,n,r,i=e.length;for(t=0;t=0;n-=1)if("sh"===e[n].ty)if(e[n].ks.k.i)e[n].ks.k.c=e[n].closed;else for(i=e[n].ks.k.length,r=0;r500)&&(this._imageLoaded(),clearInterval(n)),t+=1}.bind(this),50)}function s(e){var t={assetData:e},n=r(e,this.assetsPath,this.path);return dataManager.loadData(n,function(e){t.img=e,this._footageLoaded()}.bind(this),function(){t.img={},this._footageLoaded()}.bind(this)),t}function a(){this._imageLoaded=t.bind(this),this._footageLoaded=n.bind(this),this.testImageLoaded=i.bind(this),this.createFootageData=s.bind(this),this.assetsPath="",this.path="",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return a.prototype={loadAssets:function(e,t){var n;this.imagesLoadedCb=t;var r=e.length;for(n=0;n{renderers[e]=t};function getRenderer(e){return renderers[e]}const AnimationItem=function(){this._cbs=[],this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.firstFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.playCount=0,this.animationData={},this.assets=[],this.isPaused=!0,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=createElementID(),this.assetsPath="",this.timeCompleted=0,this.segmentPos=0,this.isSubframeEnabled=getSubframeEnabled(),this.segments=[],this._idle=!0,this._completedLoop=!1,this.projectInterface=ProjectInterface(),this.imagePreloader=new ImagePreloader,this.audioController=audioControllerFactory(),this.markers=[],this.configAnimation=this.configAnimation.bind(this),this.onSetupError=this.onSetupError.bind(this),this.onSegmentComplete=this.onSegmentComplete.bind(this),this.drawnFrameEvent=new BMEnterFrameEvent("drawnFrame",0,0,0)};extendPrototype([BaseEvent],AnimationItem),AnimationItem.prototype.setParams=function(e){(e.wrapper||e.container)&&(this.wrapper=e.wrapper||e.container);var t="svg";e.animType?t=e.animType:e.renderer&&(t=e.renderer);const n=getRenderer(t);this.renderer=new n(this,e.rendererSettings),this.imagePreloader.setCacheType(t,this.renderer.globalData.defs),this.renderer.setProjectInterface(this.projectInterface),this.animType=t,""===e.loop||null===e.loop||void 0===e.loop||!0===e.loop?this.loop=!0:!1===e.loop?this.loop=!1:this.loop=parseInt(e.loop,10),this.autoplay=!("autoplay"in e)||e.autoplay,this.name=e.name?e.name:"",this.autoloadSegments=!Object.prototype.hasOwnProperty.call(e,"autoloadSegments")||e.autoloadSegments,this.assetsPath=e.assetsPath,this.initialSegment=e.initialSegment,e.audioFactory&&this.audioController.setAudioFactory(e.audioFactory),e.animationData?this.setupAnimation(e.animationData):e.path&&(-1!==e.path.lastIndexOf("\\")?this.path=e.path.substr(0,e.path.lastIndexOf("\\")+1):this.path=e.path.substr(0,e.path.lastIndexOf("/")+1),this.fileName=e.path.substr(e.path.lastIndexOf("/")+1),this.fileName=this.fileName.substr(0,this.fileName.lastIndexOf(".json")),dataManager.loadAnimation(e.path,this.configAnimation,this.onSetupError))},AnimationItem.prototype.onSetupError=function(){this.trigger("data_failed")},AnimationItem.prototype.setupAnimation=function(e){dataManager.completeAnimation(e,this.configAnimation)},AnimationItem.prototype.setData=function(e,t){t&&"object"!=typeof t&&(t=JSON.parse(t));var n={wrapper:e,animationData:t},r=e.attributes;n.path=r.getNamedItem("data-animation-path")?r.getNamedItem("data-animation-path").value:r.getNamedItem("data-bm-path")?r.getNamedItem("data-bm-path").value:r.getNamedItem("bm-path")?r.getNamedItem("bm-path").value:"",n.animType=r.getNamedItem("data-anim-type")?r.getNamedItem("data-anim-type").value:r.getNamedItem("data-bm-type")?r.getNamedItem("data-bm-type").value:r.getNamedItem("bm-type")?r.getNamedItem("bm-type").value:r.getNamedItem("data-bm-renderer")?r.getNamedItem("data-bm-renderer").value:r.getNamedItem("bm-renderer")?r.getNamedItem("bm-renderer").value:"canvas";var i=r.getNamedItem("data-anim-loop")?r.getNamedItem("data-anim-loop").value:r.getNamedItem("data-bm-loop")?r.getNamedItem("data-bm-loop").value:r.getNamedItem("bm-loop")?r.getNamedItem("bm-loop").value:"";"false"===i?n.loop=!1:"true"===i?n.loop=!0:""!==i&&(n.loop=parseInt(i,10));var s=r.getNamedItem("data-anim-autoplay")?r.getNamedItem("data-anim-autoplay").value:r.getNamedItem("data-bm-autoplay")?r.getNamedItem("data-bm-autoplay").value:!r.getNamedItem("bm-autoplay")||r.getNamedItem("bm-autoplay").value;n.autoplay="false"!==s,n.name=r.getNamedItem("data-name")?r.getNamedItem("data-name").value:r.getNamedItem("data-bm-name")?r.getNamedItem("data-bm-name").value:r.getNamedItem("bm-name")?r.getNamedItem("bm-name").value:"","false"===(r.getNamedItem("data-anim-prerender")?r.getNamedItem("data-anim-prerender").value:r.getNamedItem("data-bm-prerender")?r.getNamedItem("data-bm-prerender").value:r.getNamedItem("bm-prerender")?r.getNamedItem("bm-prerender").value:"")&&(n.prerender=!1),this.setParams(n)},AnimationItem.prototype.includeLayers=function(e){e.op>this.animationData.op&&(this.animationData.op=e.op,this.totalFrames=Math.floor(e.op-this.animationData.ip));var t,n,r=this.animationData.layers,i=r.length,s=e.layers,a=s.length;for(n=0;nthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(!1!==this.isLoaded&&this.renderer)try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(e){this.triggerRenderFrameError(e)}},AnimationItem.prototype.play=function(e){e&&this.name!==e||!0===this.isPaused&&(this.isPaused=!1,this.trigger("_pause"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(e){e&&this.name!==e||!1===this.isPaused&&(this.isPaused=!0,this.trigger("_play"),this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(e){e&&this.name!==e||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(e){e&&this.name!==e||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(e){for(var t,n=0;n=this.totalFrames-1&&this.frameModifier>0?this.loop&&this.playCount!==this.loop?t>=this.totalFrames?(this.playCount+=1,this.checkSegments(t%this.totalFrames)||(this.setCurrentRawFrameValue(t%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(t):this.checkSegments(t>this.totalFrames?t%this.totalFrames:0)||(n=!0,t=this.totalFrames-1):t<0?this.checkSegments(t%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(n=!0,t=0):(this.setCurrentRawFrameValue(this.totalFrames+t%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(t),n&&(this.setCurrentRawFrameValue(t),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(e,t){this.playCount=0,e[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=e[0]-e[1],this.timeCompleted=this.totalFrames,this.firstFrame=e[1],this.setCurrentRawFrameValue(this.totalFrames-.001-t)):e[1]>e[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=e[1]-e[0],this.timeCompleted=this.totalFrames,this.firstFrame=e[0],this.setCurrentRawFrameValue(.001+t)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(e,t){var n=-1;this.isPaused&&(this.currentRawFrame+this.firstFramet&&(n=t-e)),this.firstFrame=e,this.totalFrames=t-e,this.timeCompleted=this.totalFrames,-1!==n&&this.goToAndStop(n,!0)},AnimationItem.prototype.playSegments=function(e,t){if(t&&(this.segments.length=0),"object"==typeof e[0]){var n,r=e.length;for(n=0;n=0;n-=1)t[n].animation.destroy(e)},e.freeze=function(){a=!0},e.unfreeze=function(){a=!1,f()},e.setVolume=function(e,n){var i;for(i=0;i=.001?function(e,t,n,r){for(var i=0;i<4;++i){var s=c(t,n,r);if(0===s)return t;t-=(l(t,n,r)-e)/s}return t}(e,u,t,i):0===d?u:function(e,t,n,r,i){var s,a,o=0;do{(s=l(a=t+(n-t)/2,r,i)-e)>0?n=a:t=a}while(Math.abs(s)>1e-7&&++o<10);return a}(e,a,a+r,t,i)}},e}(),pooling={double:function(e){return e.concat(createSizedArray(e.length))}},poolFactory=function(e,t,n){var r=0,i=e,s=createSizedArray(i);return{newElement:function(){return r?s[r-=1]:t()},release:function(e){r===i&&(s=pooling.double(s),i*=2),n&&n(e),s[r]=e,r+=1}}},bezierLengthPool=poolFactory(8,(function(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}})),segmentsLengthPool=poolFactory(8,(function(){return{lengths:[],totalLength:0}}),(function(e){var t,n=e.lengths.length;for(t=0;t-.001&&a<.001}var n=function(e,t,n,r){var i,s,a,o,l,c,h=getDefaultCurveSegments(),u=0,d=[],p=[],f=bezierLengthPool.newElement();for(a=n.length,i=0;ia?-1:1,c=!0;c;)if(r[s]<=a&&r[s+1]>a?(o=(a-r[s])/(r[s+1]-r[s]),c=!1):s+=l,s<0||s>=i-1){if(s===i-1)return n[s];c=!1}return n[s]+(n[s+1]-n[s])*o}var l=createTypedArray("float32",8);return{getSegmentsLength:function(e){var t,r=segmentsLengthPool.newElement(),i=e.c,s=e.v,a=e.o,o=e.i,l=e._length,c=r.lengths,h=0;for(t=0;t1&&(s=1);var h,u=o(s,c),d=o(a=a>1?1:a,c),p=t.length,f=1-u,m=1-d,g=f*f*f,A=u*f*f*3,v=u*u*f*3,y=u*u*u,x=f*f*m,b=u*f*m+f*u*m+f*f*d,E=u*u*m+f*u*d+u*f*d,_=u*u*d,S=f*m*m,w=u*m*m+f*d*m+f*m*d,M=u*d*m+f*d*d+u*m*d,C=u*d*d,T=m*m*m,I=d*m*m+m*d*m+m*m*d,B=d*d*m+m*d*d+d*m*d,R=d*d*d;for(h=0;hp?d>f?d-p-f:f-p-d:f>p?f-p-d:p-d-f)>-1e-4&&u<1e-4}}}const bez=bezFunction(),PropertyFactory=function(){var e=initialDefaultFrame,t=Math.abs;function n(e,t){var n,i=this.offsetTime;"multidimensional"===this.propType&&(n=createTypedArray("float32",this.pv.length));for(var s,a,o,l,c,h,u,d,p,f=t.lastIndex,m=f,g=this.keyframes.length-1,A=!0;A;){if(s=this.keyframes[m],a=this.keyframes[m+1],m===g-1&&e>=a.t-i){s.h&&(s=a),f=0;break}if(a.t-i>e){f=m;break}m=T||e=T?B.points.length-1:0;for(c=B.points[R].point.length,l=0;l=L&&D=T)n[0]=v[0],n[1]=v[1],n[2]=v[2];else if(e<=I)n[0]=s.s[0],n[1]=s.s[1],n[2]=s.s[2];else{var G=r(s.s),z=r(v);y=n,x=function(e,t,n){var r,i,s,a,o,l=[],c=e[0],h=e[1],u=e[2],d=e[3],p=t[0],f=t[1],m=t[2],g=t[3];return(i=c*p+h*f+u*m+d*g)<0&&(i=-i,p=-p,f=-f,m=-m,g=-g),1-i>1e-6?(r=Math.acos(i),s=Math.sin(r),a=Math.sin((1-n)*r)/s,o=Math.sin(n*r)/s):(a=1-n,o=n),l[0]=a*c+o*p,l[1]=a*h+o*f,l[2]=a*u+o*m,l[3]=a*d+o*g,l}(G,z,(e-I)/(T-I)),b=x[0],E=x[1],_=x[2],S=x[3],w=Math.atan2(2*E*S-2*b*_,1-2*E*E-2*_*_),M=Math.asin(2*b*E+2*_*S),C=Math.atan2(2*b*S-2*E*_,1-2*b*b-2*_*_),y[0]=w/degToRads,y[1]=M/degToRads,y[2]=C/degToRads}else for(m=0;m=T?h=1:e=r&&t>=r||this._caching.lastFrame=t&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var i=this.interpolateValue(t,this._caching);this.pv=i}return this._caching.lastFrame=t,this.pv}function s(e){var n;if("unidimensional"===this.propType)n=e*this.mult,t(this.v-n)>1e-5&&(this.v=n,this._mdf=!0);else for(var r=0,i=this.v.length;r1e-5&&(this.v[r]=n,this._mdf=!0),r+=1}function a(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{var e;this.lock=!0,this._mdf=this._isFirstFrame;var t=this.effectsSequence.length,n=this.kf?this.pv:this.data.k;for(e=0;e=this._maxLength&&this.doubleArrayLength(),n){case"v":s=this.v;break;case"i":s=this.i;break;case"o":s=this.o;break;default:s=[]}(!s[r]||s[r]&&!i)&&(s[r]=pointPool.newElement()),s[r][0]=e,s[r][1]=t},ShapePath.prototype.setTripleAt=function(e,t,n,r,i,s,a,o){this.setXYAt(e,t,"v",a,o),this.setXYAt(n,r,"o",a,o),this.setXYAt(i,s,"i",a,o)},ShapePath.prototype.reverse=function(){var e=new ShapePath;e.setPathData(this.c,this._length);var t=this.v,n=this.o,r=this.i,i=0;this.c&&(e.setTripleAt(t[0][0],t[0][1],r[0][0],r[0][1],n[0][0],n[0][1],0,!1),i=1);var s,a=this._length-1,o=this._length;for(s=i;s=p[p.length-1].t-this.offsetTime)r=p[p.length-1].s?p[p.length-1].s[0]:p[p.length-2].e[0],s=!0;else{for(var f,m,g,A=d,v=p.length-1,y=!0;y&&(f=p[A],!((m=p[A+1]).t-this.offsetTime>e));)A=m.t-this.offsetTime)h=1;else if(er&&t>r)||(this._caching.lastIndex=i0||e>-1e-6&&e<0?r(1e4*e)/1e4:e}function P(){var e=this.props;return"matrix("+R(e[0])+","+R(e[1])+","+R(e[4])+","+R(e[5])+","+R(e[12])+","+R(e[13])+")"}return function(){this.reset=i,this.rotate=s,this.rotateX=a,this.rotateY=o,this.rotateZ=l,this.skew=h,this.skewFromAxis=u,this.shear=c,this.scale=d,this.setTransform=p,this.translate=f,this.transform=m,this.applyToPoint=x,this.applyToX=b,this.applyToY=E,this.applyToZ=_,this.applyToPointArray=T,this.applyToTriplePoints=C,this.applyToPointStringified=I,this.toCSS=B,this.to2dCSS=P,this.clone=v,this.cloneFromProps=y,this.equals=A,this.inversePoints=M,this.inversePoint=w,this.getInverseMatrix=S,this._t=this.transform,this.isIdentity=g,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}(),lottie={};function setLocation(e){setLocationHref(e)}function searchAnimations(){animationManager.searchAnimations()}function setSubframeRendering(e){setSubframeEnabled(e)}function setPrefix(e){setIdPrefix(e)}function loadAnimation(e){return animationManager.loadAnimation(e)}function setQuality(e){if("string"==typeof e)switch(e){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10)}else!isNaN(e)&&e>1&&setDefaultCurveSegments(e)}function inBrowser(){return"undefined"!=typeof navigator}function installPlugin(e,t){"expressions"===e&&setExpressionsPlugin(t)}function getFactory(e){switch(e){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}function checkReady(){"complete"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(e){for(var t=queryString.split("&"),n=0;n=1?s.push({s:e-1,e:t-1}):(s.push({s:e,e:1}),s.push({s:0,e:t-1}));var a,o,l=[],c=s.length;for(a=0;ar+n))h=o.s*i<=r?0:(o.s*i-r)/n,u=o.e*i>=r+n?1:(o.e*i-r)/n,l.push([h,u])}return l.length||l.push([0,0]),l},TrimModifier.prototype.releasePathsData=function(e){var t,n=e.length;for(t=0;t1?1+s:this.s.v<0?0+s:this.s.v+s)>(n=this.e.v>1?1+s:this.e.v<0?0+s:this.e.v+s)){var a=t;t=n,n=a}t=1e-4*Math.round(1e4*t),n=1e-4*Math.round(1e4*n),this.sValue=t,this.eValue=n}else t=this.sValue,n=this.eValue;var o,l,c,h,u,d=this.shapes.length,p=0;if(n===t)for(i=0;i=0;i-=1)if((f=this.shapes[i]).shape._mdf){for((m=f.localShapeCollection).releaseShapes(),2===this.m&&d>1?(A=this.calculateShapeEdges(t,n,f.totalShapeLength,x,p),x+=f.totalShapeLength):A=[[v,y]],l=A.length,o=0;o=1?g.push({s:f.totalShapeLength*(v-1),e:f.totalShapeLength*(y-1)}):(g.push({s:f.totalShapeLength*v,e:f.totalShapeLength}),g.push({s:0,e:f.totalShapeLength*(y-1)}));var b=this.addShapes(f,g[0]);if(g[0].s!==g[0].e){if(g.length>1)if(f.shape.paths.shapes[f.shape.paths._length-1].c){var E=b.pop();this.addPaths(b,m),b=this.addShapes(f,g[1],E)}else this.addPaths(b,m),b=this.addShapes(f,g[1]);this.addPaths(b,m)}}f.shape.paths=m}}},TrimModifier.prototype.addPaths=function(e,t){var n,r=e.length;for(n=0;nt.e){n.c=!1;break}t.s<=f&&t.e>=f+a.addedLength?(this.addSegment(d[r].v[i-1],d[r].o[i-1],d[r].i[i],d[r].v[i],n,o,g),g=!1):(c=bez.getNewSegment(d[r].v[i-1],d[r].v[i],d[r].o[i-1],d[r].i[i],(t.s-f)/a.addedLength,(t.e-f)/a.addedLength,l[i-1]),this.addSegmentFromArray(c,n,o,g),g=!1,n.c=!1),f+=a.addedLength,o+=1}if(d[r].c&&l.length){if(a=l[i-1],f<=t.e){var A=l[i-1].addedLength;t.s<=f&&t.e>=f+A?(this.addSegment(d[r].v[i-1],d[r].o[i-1],d[r].i[0],d[r].v[0],n,o,g),g=!1):(c=bez.getNewSegment(d[r].v[i-1],d[r].v[0],d[r].o[i-1],d[r].i[0],(t.s-f)/A,(t.e-f)/A,l[i-1]),this.addSegmentFromArray(c,n,o,g),g=!1,n.c=!1)}else n.c=!1;f+=a.addedLength,o+=1}if(n._length&&(n.setXYAt(n.v[h][0],n.v[h][1],"i",h),n.setXYAt(n.v[n._length-1][0],n.v[n._length-1][1],"o",n._length-1)),f>t.e)break;r=this.p.keyframes[this.p.keyframes.length-1].t?(r=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/n,0),i=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/n,0)):(r=this.p.pv,i=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/n,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){r=[],i=[];var s=this.px,a=this.py;s._caching.lastFrame+s.offsetTime<=s.keyframes[0].t?(r[0]=s.getValueAtTime((s.keyframes[0].t+.01)/n,0),r[1]=a.getValueAtTime((a.keyframes[0].t+.01)/n,0),i[0]=s.getValueAtTime(s.keyframes[0].t/n,0),i[1]=a.getValueAtTime(a.keyframes[0].t/n,0)):s._caching.lastFrame+s.offsetTime>=s.keyframes[s.keyframes.length-1].t?(r[0]=s.getValueAtTime(s.keyframes[s.keyframes.length-1].t/n,0),r[1]=a.getValueAtTime(a.keyframes[a.keyframes.length-1].t/n,0),i[0]=s.getValueAtTime((s.keyframes[s.keyframes.length-1].t-.01)/n,0),i[1]=a.getValueAtTime((a.keyframes[a.keyframes.length-1].t-.01)/n,0)):(r=[s.pv,a.pv],i[0]=s.getValueAtTime((s._caching.lastFrame+s.offsetTime-.01)/n,s.offsetTime),i[1]=a.getValueAtTime((a._caching.lastFrame+a.offsetTime-.01)/n,a.offsetTime))}else r=i=e;this.v.rotate(-Math.atan2(r[1]-i[1],r[0]-i[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],t),t.prototype.addDynamicProperty=function(e){this._addDynamicProperty(e),this.elem.addDynamicProperty(e),this._isDirty=!0},t.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(e,n,r){return new t(e,n,r)}}}();function RepeaterModifier(){}function RoundCornersModifier(){}function getFontProperties(e){for(var t=e.fStyle?e.fStyle.split(" "):[],n="normal",r="normal",i=t.length,s=0;s0;)n-=1,this._elements.unshift(t[n]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(e){var t,n=e.length;for(t=0;t0?Math.floor(d):Math.ceil(d),m=this.pMatrix.props,g=this.rMatrix.props,A=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var v,y,x=0;if(d>0){for(;xf;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),x-=1;p&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-p,!0),x-=p)}for(r=1===this.data.m?0:this._currentCopies-1,i=1===this.data.m?1:-1,s=this._currentCopies;s;){if(y=(n=(t=this.elemsData[r].it)[t.length-1].transform.mProps.v.props).length,t[t.length-1].transform.mProps._mdf=!0,t[t.length-1].transform.op._mdf=!0,t[t.length-1].transform.op.v=1===this._currentCopies?this.so.v:this.so.v+(this.eo.v-this.so.v)*(r/(this._currentCopies-1)),0!==x){for((0!==r&&1===i||r!==this._currentCopies-1&&-1===i)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(g[0],g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15]),this.matrix.transform(A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],A[8],A[9],A[10],A[11],A[12],A[13],A[14],A[15]),this.matrix.transform(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15]),v=0;v{e.helper=s(e),e.cache={}})),void(this.fonts=e.list);var n,r=e.list,a=r.length,o=a;for(n=0;n0&&(h=!1),h){var u=createTag("style");u.setAttribute("f-forigin",r[n].fOrigin),u.setAttribute("f-origin",r[n].origin),u.setAttribute("f-family",r[n].fFamily),u.type="text/css",u.innerText="@font-face {font-family: "+r[n].fFamily+"; font-style: normal; src: url('"+r[n].fPath+"');}",t.appendChild(u)}}else if("g"===r[n].fOrigin||1===r[n].origin){for(l=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),c=0;ce?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var e,t=this.renderableComponents.length;for(e=0;e0&&(this.maskElement.setAttribute("id",g),this.element.maskedElement.setAttribute(v,"url("+getLocationHref()+"#"+g+")"),s.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}FootageElement.prototype.prepareFrame=function(){},extendPrototype([RenderableElement,BaseElement,FrameElement],FootageElement),FootageElement.prototype.getBaseElement=function(){return null},FootageElement.prototype.renderFrame=function(){},FootageElement.prototype.destroy=function(){},FootageElement.prototype.initExpressions=function(){this.layerInterface=FootageInterface(this)},FootageElement.prototype.getFootageData=function(){return this.footageData},AudioElement.prototype.prepareFrame=function(e){if(this.prepareRenderableFrame(e,!0),this.prepareProperties(e,!0),this.tm._placeholder)this._currentTime=e/this.data.sr;else{var t=this.tm.v;this._currentTime=t}this._volume=this.lv.v[0];var n=this._volume*this._volumeMultiplier;this._previousVolume!==n&&(this._previousVolume=n,this.audio.volume(n))},extendPrototype([RenderableElement,BaseElement,FrameElement],AudioElement),AudioElement.prototype.renderFrame=function(){this.isInRange&&this._canPlay&&(this._isPlaying?(!this.audio.playing()||Math.abs(this._currentTime/this.globalData.frameRate-this.audio.seek())>.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(e){this.audio.rate(e)},AudioElement.prototype.volume=function(e){this._volumeMultiplier=e,this._previousVolume=e*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){},BaseRenderer.prototype.checkLayers=function(e){var t,n,r=this.layers.length;for(this.completeLayers=!0,t=r-1;t>=0;t-=1)this.elements[t]||(n=this.layers[t]).ip-n.st<=e-this.layers[t].st&&n.op-n.st>e-this.layers[t].st&&this.buildItem(t),this.completeLayers=!!this.elements[t]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(e){switch(e.ty){case 2:return this.createImage(e);case 0:return this.createComp(e);case 1:return this.createSolid(e);case 3:default:return this.createNull(e);case 4:return this.createShape(e);case 5:return this.createText(e);case 6:return this.createAudio(e);case 13:return this.createCamera(e);case 15:return this.createFootage(e)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(e){return new AudioElement(e,this.globalData,this)},BaseRenderer.prototype.createFootage=function(e){return new FootageElement(e,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var e,t=this.layers.length;for(e=0;e1&&(s+=" C"+t.o[r-1][0]+","+t.o[r-1][1]+" "+t.i[0][0]+","+t.i[0][1]+" "+t.v[0][0]+","+t.v[0][1]),n.lastPath!==s){var a="";n.elem&&(t.c&&(a=e.inv?this.solidPath+s:s),n.elem.setAttribute("d",a)),n.lastPath=s}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};const filtersFactory=function(){var e={};return e.createFilter=function(e,t){var n=createNS("filter");n.setAttribute("id",e),!0!==t&&(n.setAttribute("filterUnits","objectBoundingBox"),n.setAttribute("x","0%"),n.setAttribute("y","0%"),n.setAttribute("width","100%"),n.setAttribute("height","100%"));return n},e.createAlphaToLuminanceFilter=function(){var e=createNS("feColorMatrix");return e.setAttribute("type","matrix"),e.setAttribute("color-interpolation-filters","sRGB"),e.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),e},e}(),featureSupport=function(){var e={maskType:!0};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(e.maskType=!1),e}();var registeredEffects={},idPrefix="filter_result_";function SVGEffects(e){var t,n,r="SourceGraphic",i=e.data.ef?e.data.ef.length:0,s=createElementID(),a=filtersFactory.createFilter(s,!0),o=0;for(this.filters=[],t=0;t=0&&!this.shapeModifiers[e].processShapes(this._isFirstFrame);e-=1);}},searchProcessedElement:function(e){for(var t=this.processedElements,n=0,r=t.length;n.01)return!1;n+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var e=0,t=this.data.k.k.length;e0;)l=r.transformers[m].mProps._mdf||l,f-=1,m-=1;if(l)for(f=A-r.styles[h].lvl,m=r.transformers.length-1;f>0;)p=r.transformers[m].mProps.v.props,d.transform(p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9],p[10],p[11],p[12],p[13],p[14],p[15]),f-=1,m-=1}else d=e;if(a=(u=r.sh.paths)._length,l){for(o="",s=0;s=1?v=.99:v<=-1&&(v=-.99);var y=o*v,x=Math.cos(A+t.a.v)*y+h[0],b=Math.sin(A+t.a.v)*y+h[1];l.setAttribute("fx",x),l.setAttribute("fy",b),c&&!t.g._collapsable&&(t.of.setAttribute("fx",x),t.of.setAttribute("fy",b))}}function l(e,t,n){var r=t.style,i=t.d;i&&(i._mdf||n)&&i.dashStr&&(r.pElem.setAttribute("stroke-dasharray",i.dashStr),r.pElem.setAttribute("stroke-dashoffset",i.dashoffset[0])),t.c&&(t.c._mdf||n)&&r.pElem.setAttribute("stroke","rgb("+bmFloor(t.c.v[0])+","+bmFloor(t.c.v[1])+","+bmFloor(t.c.v[2])+")"),(t.o._mdf||n)&&r.pElem.setAttribute("stroke-opacity",t.o.v),(t.w._mdf||n)&&(r.pElem.setAttribute("stroke-width",t.w.v),r.msElem&&r.msElem.setAttribute("stroke-width",t.w.v))}return{createRenderFunction:function(e){switch(e.ty){case"fl":return s;case"gf":return o;case"gs":return a;case"st":return l;case"sh":case"el":case"rc":case"sr":return i;case"tr":return n;case"no":return r;default:return null}}}}();function SVGShapeElement(e,t,n){this.shapes=[],this.shapesData=e.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(e,t,n),this.prevViewData=[]}function LetterProps(e,t,n,r,i,s){this.o=e,this.sw=t,this.sc=n,this.fc=r,this.m=i,this.p=s,this._mdf={o:!0,sw:!!t,sc:!!n,fc:!!r,m:!0,p:!0}}function TextProperty(e,t){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=t,this.elem=e,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var e,t,n,r,i=this.shapes.length,s=this.stylesList.length,a=[],o=!1;for(n=0;n1&&o&&this.setShapesAsAnimated(a)}},SVGShapeElement.prototype.setShapesAsAnimated=function(e){var t,n=e.length;for(t=0;t=0;o-=1){if((d=this.searchProcessedElement(e[o]))?t[o]=n[d-1]:e[o]._render=a,"fl"===e[o].ty||"st"===e[o].ty||"gf"===e[o].ty||"gs"===e[o].ty||"no"===e[o].ty)d?t[o].style.closed=!1:t[o]=this.createStyleElement(e[o],i),e[o]._render&&t[o].style.pElem.parentNode!==r&&r.appendChild(t[o].style.pElem),m.push(t[o].style);else if("gr"===e[o].ty){if(d)for(c=t[o].it.length,l=0;l1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(e){this.effectsSequence.push(e),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(e){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||e){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var t=this.currentData,n=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{var r;this.lock=!0,this._mdf=!1;var i=this.effectsSequence.length,s=e||this.data.d.k[this.keysIndex].s;for(r=0;rt);)n+=1;return this.keysIndex!==n&&(this.keysIndex=n),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(e){for(var t,n,r=[],i=0,s=e.length,a=!1;i=55296&&t<=56319?(n=e.charCodeAt(i+1))>=56320&&n<=57343?(a||FontManager.isModifier(t,n)?(r[r.length-1]+=e.substr(i,2),a=!1):r.push(e.substr(i,2)),i+=1):r.push(e.charAt(i)):t>56319?(n=e.charCodeAt(i+1),FontManager.isZeroWidthJoiner(t,n)?(a=!0,r[r.length-1]+=e.substr(i,2),i+=1):r.push(e.charAt(i))):FontManager.isZeroWidthJoiner(t)?(r[r.length-1]+=e.charAt(i),a=!0):r.push(e.charAt(i)),i+=1;return r},TextProperty.prototype.completeTextData=function(e){e.__complete=!0;var t,n,r,i,s,a,o,l=this.elem.globalData.fontManager,c=this.data,h=[],u=0,d=c.m.g,p=0,f=0,m=0,g=[],A=0,v=0,y=l.getFontByName(e.f),x=0,b=getFontProperties(y);e.fWeight=b.weight,e.fStyle=b.style,e.finalSize=e.s,e.finalText=this.buildFinalText(e.t),n=e.finalText.length,e.finalLineHeight=e.lh;var E,_=e.tr/1e3*e.finalSize;if(e.sz)for(var S,w,M=!0,C=e.sz[0],T=e.sz[1];M;){S=0,A=0,n=(w=this.buildFinalText(e.t)).length,_=e.tr/1e3*e.finalSize;var I=-1;for(t=0;tC&&" "!==w[t]?(-1===I?n+=1:t=I,S+=e.finalLineHeight||1.2*e.finalSize,w.splice(t,I===t?1:0,"\r"),I=-1,A=0):(A+=x,A+=_);S+=y.ascent*e.finalSize/100,this.canResize&&e.finalSize>this.minimumFontSize&&Tv?A:v,A=-2*_,i="",r=!0,m+=1):i=B,l.chars?(o=l.getCharData(B,y.fStyle,l.getFontByName(e.f).fFamily),x=r?0:o.w*e.finalSize/100):x=l.measureText(i,e.f,e.finalSize)," "===B?R+=x+_:(A+=x+_+R,R=0),h.push({l:x,an:x,add:p,n:r,anIndexes:[],val:i,line:m,animatorJustifyOffset:0}),2==d){if(p+=x,""===i||" "===i||t===n-1){for(""!==i&&" "!==i||(p-=x);f<=t;)h[f].an=p,h[f].ind=u,h[f].extra=x,f+=1;u+=1,p=0}}else if(3==d){if(p+=x,""===i||t===n-1){for(""===i&&(p-=x);f<=t;)h[f].an=p,h[f].ind=u,h[f].extra=x,f+=1;p=0,u+=1}}else h[u].ind=u,h[u].extra=0,u+=1;if(e.l=h,v=A>v?A:v,g.push(A),e.sz)e.boxWidth=e.sz[0],e.justifyOffset=0;else switch(e.boxWidth=v,e.j){case 1:e.justifyOffset=-e.boxWidth;break;case 2:e.justifyOffset=-e.boxWidth/2;break;default:e.justifyOffset=0}e.lineWidths=g;var P,D,L,F,U=c.a;a=U.length;var O=[];for(s=0;s0?i=this.ne.v/100:s=-this.ne.v/100,this.xe.v>0?a=1-this.xe.v/100:o=1+this.xe.v/100;var l=BezierFactory.getBezierEasing(i,s,a,o).get,c=0,h=this.finalS,u=this.finalE,d=this.data.sh;if(2===d)c=l(c=u===h?r>=u?1:0:e(0,t(.5/(u-h)+(r-h)/(u-h),1)));else if(3===d)c=l(c=u===h?r>=u?0:1:1-e(0,t(.5/(u-h)+(r-h)/(u-h),1)));else if(4===d)u===h?c=0:(c=e(0,t(.5/(u-h)+(r-h)/(u-h),1)))<.5?c*=2:c=1-2*(c-.5),c=l(c);else if(5===d){if(u===h)c=0;else{var p=u-h,f=-p/2+(r=t(e(0,r+.5-h),u-h)),m=p/2;c=Math.sqrt(1-f*f/(m*m))}c=l(c)}else 6===d?(u===h?c=0:(r=t(e(0,r+.5-h),u-h),c=(1+Math.cos(Math.PI+2*Math.PI*r/(u-h)))/2),c=l(c)):(r>=n(h)&&(c=e(0,t(r-h<0?t(u,1)-(h-r):u-r,1))),c=l(c));if(100!==this.sm.v){var g=.01*this.sm.v;0===g&&(g=1e-8);var A=.5-.5*g;c1&&(c=1)}return c*this.a.v},getValue:function(e){this.iterateDynamicProperties(),this._mdf=e||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,e&&2===this.data.r&&(this.e.v=this._currentTextLength);var t=2===this.data.r?1:100/this.data.totalChars,n=this.o.v/t,r=this.s.v/t+n,i=this.e.v/t+n;if(r>i){var s=r;r=i,i=s}this.finalS=r,this.finalE=i}},extendPrototype([DynamicPropertyContainer],r),{getTextSelectorProp:function(e,t,n){return new r(e,t)}}}();function TextAnimatorDataProperty(e,t,n){var r={propType:!1},i=PropertyFactory.getProp,s=t.a;this.a={r:s.r?i(e,s.r,0,degToRads,n):r,rx:s.rx?i(e,s.rx,0,degToRads,n):r,ry:s.ry?i(e,s.ry,0,degToRads,n):r,sk:s.sk?i(e,s.sk,0,degToRads,n):r,sa:s.sa?i(e,s.sa,0,degToRads,n):r,s:s.s?i(e,s.s,1,.01,n):r,a:s.a?i(e,s.a,1,0,n):r,o:s.o?i(e,s.o,0,.01,n):r,p:s.p?i(e,s.p,1,0,n):r,sw:s.sw?i(e,s.sw,0,0,n):r,sc:s.sc?i(e,s.sc,1,0,n):r,fc:s.fc?i(e,s.fc,1,0,n):r,fh:s.fh?i(e,s.fh,0,0,n):r,fs:s.fs?i(e,s.fs,0,.01,n):r,fb:s.fb?i(e,s.fb,0,.01,n):r,t:s.t?i(e,s.t,0,0,n):r},this.s=TextSelectorProp.getTextSelectorProp(e,t.s,n),this.s.t=t.s.t}function TextAnimatorProperty(e,t,n){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=e,this._renderType=t,this._elem=n,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(n)}function ITextElement(){}TextAnimatorProperty.prototype.searchProperties=function(){var e,t,n=this._textData.a.length,r=PropertyFactory.getProp;for(e=0;e=o+oe||!f?(v=(o+oe-c)/l.partialLength,N=p.point[0]+(l.point[0]-p.point[0])*v,k=p.point[1]+(l.point[1]-p.point[1])*v,S.translate(-b[0]*C[i].an*.005,-b[1]*F*.01),h=!1):f&&(c+=l.partialLength,(u+=1)>=f.length&&(u=0,m[d+=1]?f=m[d].points:x.v.c?(u=0,f=m[d=0].points):(c-=l.partialLength,f=null)),f&&(p=l,g=(l=f[u]).partialLength));O=C[i].an/2-C[i].add,S.translate(-O,0,0)}else O=C[i].an/2-C[i].add,S.translate(-O,0,0),S.translate(-b[0]*C[i].an*.005,-b[1]*F*.01,0);for(R=0;Re?this.textSpans[e].span:createNS(l?"g":"text"),g<=e){if(a.setAttribute("stroke-linecap","butt"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("stroke-miterlimit","4"),this.textSpans[e].span=a,l){var A=createNS("g");a.appendChild(A),this.textSpans[e].childSpan=A}this.textSpans[e].span=a,this.layerElement.appendChild(a)}a.style.display="inherit"}if(c.reset(),h&&(o[e].n&&(u=-f,d+=n.yOffset,d+=p?1:0,p=!1),this.applyTextPropertiesToMatrix(n,c,o[e].line,u,d),u+=o[e].l||0,u+=f),l){var v;if(1===(m=this.globalData.fontManager.getCharData(n.finalText[e],r.fStyle,this.globalData.fontManager.getFontByName(n.f).fFamily)).t)v=new SVGCompElement(m.data,this.globalData,this);else{var y=emptyShapeData;m.data&&m.data.shapes&&(y=this.buildShapeData(m.data,n.finalSize)),v=new SVGShapeElement(y,this.globalData,this)}if(this.textSpans[e].glyph){var x=this.textSpans[e].glyph;this.textSpans[e].childSpan.removeChild(x.layerElement),x.destroy()}this.textSpans[e].glyph=v,v._debug=!0,v.prepareFrame(0),v.renderFrame(),this.textSpans[e].childSpan.appendChild(v.layerElement),1===m.t&&this.textSpans[e].childSpan.setAttribute("transform","scale("+n.finalSize/100+","+n.finalSize/100+")")}else h&&a.setAttribute("transform","translate("+c.props[12]+","+c.props[13]+")"),a.textContent=o[e].val,a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}h&&a&&a.setAttribute("d","")}else{var b=this.textContainer,E="start";switch(n.j){case 1:E="end";break;case 2:E="middle";break;default:E="start"}b.setAttribute("text-anchor",E),b.setAttribute("letter-spacing",f);var _=this.buildTextContents(n.finalText);for(t=_.length,d=n.ps?n.ps[1]+n.ascent:0,e=0;e=0;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].prepareFrame(e-this.layers[t].st);if(this.globalData._mdf)for(t=0;t=0;n-=1)(this.completeLayers||this.elements[n])&&(this.elements[n].prepareFrame(this.renderedFrame-this.layers[n].st),this.elements[n]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var e,t=this.layers.length;for(e=0;e=0;r-=1)n=e.transforms[r].transform.mProps.v.props,e.finalTransform.transform(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8],n[9],n[10],n[11],n[12],n[13],n[14],n[15]);e._mdf=s},processSequences:function(e){var t,n=this.sequenceList.length;for(t=0;t=0;s-=1){if((l=this.searchProcessedElement(e[s]))?t[s]=n[l-1]:e[s]._shouldRender=r,"fl"===e[s].ty||"st"===e[s].ty||"gf"===e[s].ty||"gs"===e[s].ty)l?t[s].style.closed=!1:t[s]=this.createStyleElement(e[s],f),d.push(t[s].style);else if("gr"===e[s].ty){if(l)for(o=t[s].it.length,a=0;a=0;i-=1)"tr"===t[i].ty?(s=n[i].transform,this.renderShapeTransform(e,s)):"sh"===t[i].ty||"el"===t[i].ty||"rc"===t[i].ty||"sr"===t[i].ty?this.renderPath(t[i],n[i]):"fl"===t[i].ty?this.renderFill(t[i],n[i],s):"st"===t[i].ty?this.renderStroke(t[i],n[i],s):"gf"===t[i].ty||"gs"===t[i].ty?this.renderGradientFill(t[i],n[i],s):"gr"===t[i].ty?this.renderShape(s,t[i].it,n[i].it):t[i].ty;r&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(e,t){if(this._isFirstFrame||t._mdf||e.transforms._mdf){var n,r,i,s=e.trNodes,a=t.paths,o=a._length;s.length=0;var l=e.transforms.finalTransform;for(i=0;i=1?u=.99:u<=-1&&(u=-.99);var d=c*u,p=Math.cos(h+t.a.v)*d+o[0],f=Math.sin(h+t.a.v)*d+o[1];r=a.createRadialGradient(p,f,0,o[0],o[1],c)}var m=e.g.p,g=t.g.c,A=1;for(s=0;so&&"xMidYMid slice"===l||an&&"meet"===s||rn&&"slice"===s)?(e-this.transformCanvas.w*(t/this.transformCanvas.h))/2*this.renderConfig.dpr:"xMax"===o&&(rn&&"slice"===s)?(e-this.transformCanvas.w*(t/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty="YMid"===l&&(r>n&&"meet"===s||rn&&"meet"===s||r=0;e-=1)this.elements[e]&&this.elements[e].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(e,t){if((this.renderedFrame!==e||!0!==this.renderConfig.clearCanvas||t)&&!this.destroyed&&-1!==e){var n;this.renderedFrame=e,this.globalData.frameNum=e-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||t,this.globalData.projectInterface.currentFrame=e;var r=this.layers.length;for(this.completeLayers||this.checkLayers(e),n=0;n=0;n-=1)(this.completeLayers||this.elements[n])&&this.elements[n].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(e){var t=this.elements;if(!t[e]&&99!==this.layers[e].ty){var n=this.createItem(this.layers[e],this,this.globalData);t[e]=n,n.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display="block"},extendPrototype([CanvasRendererBase,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var e,t=this.canvasContext;for(t.beginPath(),t.moveTo(0,0),t.lineTo(this.data.w,0),t.lineTo(this.data.w,this.data.h),t.lineTo(0,this.data.h),t.lineTo(0,0),t.clip(),e=this.layers.length-1;e>=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].renderFrame()},CVCompElement.prototype.destroy=function(){var e;for(e=this.layers.length-1;e>=0;e-=1)this.elements[e]&&this.elements[e].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(e){return new CVCompElement(e,this.globalData,this)},extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(e){return new CVCompElement(e,this.globalData,this)},registerRenderer("canvas",CanvasRenderer),ShapeModifiers.registerModifier("tm",TrimModifier),ShapeModifiers.registerModifier("pb",PuckerAndBloatModifier),ShapeModifiers.registerModifier("rp",RepeaterModifier),ShapeModifiers.registerModifier("rd",RoundCornersModifier);const Expressions=function(){var e={};return e.initExpressions=function(e){var t=0,n=[];e.renderer.compInterface=CompExpressionInterface(e.renderer),e.renderer.globalData.projectInterface.registerComposition(e.renderer),e.renderer.globalData.pushExpression=function(){t+=1},e.renderer.globalData.popExpression=function(){0==(t-=1)&&function(){var e,t=n.length;for(e=0;e=o;)e/=2,t/=2,n>>>=1;return(e+n)/t};return y.int32=function(){return 0|v.g(4)},y.quick=function(){return v.g(4)/4294967296},y.double=y,d(p(v.S),e),(f.pass||m||function(e,n,r,s){return s&&(s.S&&h(s,v),e.state=function(){return h(v,{})}),r?(t[i]=e,n):e})(y,A,"global"in f?f.global:this==t,f.state)},d(t.random(),e)}function initialize$2(e){seedRandom([],e)}var propTypes={SHAPE:"shape"};const ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null,XMLHttpRequest=null,fetch=null,frames=null;function $bm_isInstanceOfArray(e){return e.constructor===Array||e.constructor===Float32Array}function isNumerable(e,t){return"number"===e||"boolean"===e||"string"===e||t instanceof Number}function $bm_neg(e){var t=typeof e;if("number"===t||"boolean"===t||e instanceof Number)return-e;if($bm_isInstanceOfArray(e)){var n,r=e.length,i=[];for(n=0;nn){var r=n;n=t,t=r}return Math.min(Math.max(e,t),n)}function radiansToDegrees(e){return e/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(e){return e*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(e,t){if("number"==typeof e||e instanceof Number)return t=t||0,Math.abs(e-t);var n;t||(t=helperLengthArray);var r=Math.min(e.length,t.length),i=0;for(n=0;n.5?c/(2-a-o):c/(a+o),a){case r:t=(i-s)/c+(i1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function hslToRgb(e){var t,n,r,i=e[0],s=e[1],a=e[2];if(0===s)t=a,r=a,n=a;else{var o=a<.5?a*(1+s):a+s-a*s,l=2*a-o;t=hue2rgb(l,o,i+1/3),n=hue2rgb(l,o,i),r=hue2rgb(l,o,i-1/3)}return[t,n,r,e[3]]}function linear(e,t,n,r,i){if(void 0!==r&&void 0!==i||(r=t,i=n,t=0,n=1),n=n)return i;var a,o=n===t?0:(e-t)/(n-t);if(!r.length)return r+(i-r)*o;var l=r.length,c=createTypedArray("float32",l);for(a=0;a1){for(r=0;r1?t=1:t<0&&(t=0);var a=e(t);if($bm_isInstanceOfArray(i)){var o,l=i.length,c=createTypedArray("float32",l);for(o=0;odata.k[t].t&&edata.k[t+1].t-e?(n=t+2,r=data.k[t+1].t):(n=t+1,r=data.k[t].t);break}}-1===n&&(n=t+1,r=data.k[t].t)}else n=0,r=0;var s={};return s.index=n,s.time=r/elem.comp.globalData.frameRate,s}function key(e){var t,n,r;if(!data.k.length||"number"==typeof data.k[0])throw new Error("The property has no keyframe at index "+e);e-=1,t={time:data.k[e].t/elem.comp.globalData.frameRate,value:[]};var i=Object.prototype.hasOwnProperty.call(data.k[e],"s")?data.k[e].s:data.k[e-1].e;for(r=i.length,n=0;nc.length-1)&&(t=c.length-1),r=h-(i=c[c.length-1-t].t)),"pingpong"===e){if(Math.floor((l-i)/r)%2!=0)return this.getValueAtTime((r-(l-i)%r+i)/this.comp.globalData.frameRate,0)}else{if("offset"===e){var u=this.getValueAtTime(i/this.comp.globalData.frameRate,0),d=this.getValueAtTime(h/this.comp.globalData.frameRate,0),p=this.getValueAtTime(((l-i)%r+i)/this.comp.globalData.frameRate,0),f=Math.floor((l-i)/r);if(this.pv.length){for(a=(o=new Array(u.length)).length,s=0;s=h)return this.pv;if(n?i=h+(r=t?Math.abs(this.elem.comp.globalData.frameRate*t):Math.max(0,this.elem.data.op-h)):((!t||t>c.length-1)&&(t=c.length-1),r=(i=c[t].t)-h),"pingpong"===e){if(Math.floor((h-l)/r)%2==0)return this.getValueAtTime(((h-l)%r+h)/this.comp.globalData.frameRate,0)}else{if("offset"===e){var u=this.getValueAtTime(h/this.comp.globalData.frameRate,0),d=this.getValueAtTime(i/this.comp.globalData.frameRate,0),p=this.getValueAtTime((r-(h-l)%r+h)/this.comp.globalData.frameRate,0),f=Math.floor((h-l)/r)+1;if(this.pv.length){for(a=(o=new Array(u.length)).length,s=0;s1?(i+e-s)/(t-1):1,o=0,l=0;for(n=this.pv.length?createTypedArray("float32",this.pv.length):0;oa){var h=o,u=n.c&&o===l-1?0:o+1,d=(a-c)/s[o].addedLength;r=bez.getPointInSegment(n.v[h],n.v[u],n.o[h],n.i[u],d,s[o]);break}c+=s[o].addedLength,o+=1}return r||(r=n.c?[n.v[0][0],n.v[0][1]]:[n.v[n._length-1][0],n.v[n._length-1][1]]),r},vectorOnPath:function(e,t,n){1==e?e=this.v.c:0==e&&(e=.999);var r=this.pointOnPath(e,t),i=this.pointOnPath(e+.001,t),s=i[0]-r[0],a=i[1]-r[1],o=Math.sqrt(Math.pow(s,2)+Math.pow(a,2));return 0===o?[0,0]:"tangent"===n?[s/o,a/o]:[-a/o,s/o]},tangentOnPath:function(e,t){return this.vectorOnPath(e,t,"tangent")},normalOnPath:function(e,t){return this.vectorOnPath(e,t,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([c],o),extendPrototype([c],l),l.prototype.getValueAtTime=function(e){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shapePool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),e*=this.elem.globalData.frameRate,(e-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});class n{constructor(){this.s2uTable={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:64,65:65,66:66,67:67,68:68,69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:92,93:93,94:94,95:95,96:96,97:97,98:98,99:99,100:100,101:101,102:102,103:103,104:104,105:105,106:106,107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,125:125,126:126,161:65377,162:65378,163:65379,164:65380,165:65381,166:65382,167:65383,168:65384,169:65385,170:65386,171:65387,172:65388,173:65389,174:65390,175:65391,176:65392,177:65393,178:65394,179:65395,180:65396,181:65397,182:65398,183:65399,184:65400,185:65401,186:65402,187:65403,188:65404,189:65405,190:65406,191:65407,192:65408,193:65409,194:65410,195:65411,196:65412,197:65413,198:65414,199:65415,200:65416,201:65417,202:65418,203:65419,204:65420,205:65421,206:65422,207:65423,208:65424,209:65425,210:65426,211:65427,212:65428,213:65429,214:65430,215:65431,216:65432,217:65433,218:65434,219:65435,220:65436,221:65437,222:65438,223:65439,33088:12288,33089:12289,33090:12290,33091:65292,33092:65294,33093:12539,33094:65306,33095:65307,33096:65311,33097:65281,33098:12443,33099:12444,33100:180,33101:65344,33102:168,33103:65342,33104:65507,33105:65343,33106:12541,33107:12542,33108:12445,33109:12446,33110:12291,33111:20189,33112:12293,33113:12294,33114:12295,33115:12540,33116:8213,33117:8208,33118:65295,33119:65340,33120:65374,33121:8741,33122:65372,33123:8230,33124:8229,33125:8216,33126:8217,33127:8220,33128:8221,33129:65288,33130:65289,33131:12308,33132:12309,33133:65339,33134:65341,33135:65371,33136:65373,33137:12296,33138:12297,33139:12298,33140:12299,33141:12300,33142:12301,33143:12302,33144:12303,33145:12304,33146:12305,33147:65291,33148:65293,33149:177,33150:215,33152:247,33153:65309,33154:8800,33155:65308,33156:65310,33157:8806,33158:8807,33159:8734,33160:8756,33161:9794,33162:9792,33163:176,33164:8242,33165:8243,33166:8451,33167:65509,33168:65284,33169:65504,33170:65505,33171:65285,33172:65283,33173:65286,33174:65290,33175:65312,33176:167,33177:9734,33178:9733,33179:9675,33180:9679,33181:9678,33182:9671,33183:9670,33184:9633,33185:9632,33186:9651,33187:9650,33188:9661,33189:9660,33190:8251,33191:12306,33192:8594,33193:8592,33194:8593,33195:8595,33196:12307,33208:8712,33209:8715,33210:8838,33211:8839,33212:8834,33213:8835,33214:8746,33215:8745,33224:8743,33225:8744,33226:65506,33227:8658,33228:8660,33229:8704,33230:8707,33242:8736,33243:8869,33244:8978,33245:8706,33246:8711,33247:8801,33248:8786,33249:8810,33250:8811,33251:8730,33252:8765,33253:8733,33254:8757,33255:8747,33256:8748,33264:8491,33265:8240,33266:9839,33267:9837,33268:9834,33269:8224,33270:8225,33271:182,33276:9711,33359:65296,33360:65297,33361:65298,33362:65299,33363:65300,33364:65301,33365:65302,33366:65303,33367:65304,33368:65305,33376:65313,33377:65314,33378:65315,33379:65316,33380:65317,33381:65318,33382:65319,33383:65320,33384:65321,33385:65322,33386:65323,33387:65324,33388:65325,33389:65326,33390:65327,33391:65328,33392:65329,33393:65330,33394:65331,33395:65332,33396:65333,33397:65334,33398:65335,33399:65336,33400:65337,33401:65338,33409:65345,33410:65346,33411:65347,33412:65348,33413:65349,33414:65350,33415:65351,33416:65352,33417:65353,33418:65354,33419:65355,33420:65356,33421:65357,33422:65358,33423:65359,33424:65360,33425:65361,33426:65362,33427:65363,33428:65364,33429:65365,33430:65366,33431:65367,33432:65368,33433:65369,33434:65370,33439:12353,33440:12354,33441:12355,33442:12356,33443:12357,33444:12358,33445:12359,33446:12360,33447:12361,33448:12362,33449:12363,33450:12364,33451:12365,33452:12366,33453:12367,33454:12368,33455:12369,33456:12370,33457:12371,33458:12372,33459:12373,33460:12374,33461:12375,33462:12376,33463:12377,33464:12378,33465:12379,33466:12380,33467:12381,33468:12382,33469:12383,33470:12384,33471:12385,33472:12386,33473:12387,33474:12388,33475:12389,33476:12390,33477:12391,33478:12392,33479:12393,33480:12394,33481:12395,33482:12396,33483:12397,33484:12398,33485:12399,33486:12400,33487:12401,33488:12402,33489:12403,33490:12404,33491:12405,33492:12406,33493:12407,33494:12408,33495:12409,33496:12410,33497:12411,33498:12412,33499:12413,33500:12414,33501:12415,33502:12416,33503:12417,33504:12418,33505:12419,33506:12420,33507:12421,33508:12422,33509:12423,33510:12424,33511:12425,33512:12426,33513:12427,33514:12428,33515:12429,33516:12430,33517:12431,33518:12432,33519:12433,33520:12434,33521:12435,33600:12449,33601:12450,33602:12451,33603:12452,33604:12453,33605:12454,33606:12455,33607:12456,33608:12457,33609:12458,33610:12459,33611:12460,33612:12461,33613:12462,33614:12463,33615:12464,33616:12465,33617:12466,33618:12467,33619:12468,33620:12469,33621:12470,33622:12471,33623:12472,33624:12473,33625:12474,33626:12475,33627:12476,33628:12477,33629:12478,33630:12479,33631:12480,33632:12481,33633:12482,33634:12483,33635:12484,33636:12485,33637:12486,33638:12487,33639:12488,33640:12489,33641:12490,33642:12491,33643:12492,33644:12493,33645:12494,33646:12495,33647:12496,33648:12497,33649:12498,33650:12499,33651:12500,33652:12501,33653:12502,33654:12503,33655:12504,33656:12505,33657:12506,33658:12507,33659:12508,33660:12509,33661:12510,33662:12511,33664:12512,33665:12513,33666:12514,33667:12515,33668:12516,33669:12517,33670:12518,33671:12519,33672:12520,33673:12521,33674:12522,33675:12523,33676:12524,33677:12525,33678:12526,33679:12527,33680:12528,33681:12529,33682:12530,33683:12531,33684:12532,33685:12533,33686:12534,33695:913,33696:914,33697:915,33698:916,33699:917,33700:918,33701:919,33702:920,33703:921,33704:922,33705:923,33706:924,33707:925,33708:926,33709:927,33710:928,33711:929,33712:931,33713:932,33714:933,33715:934,33716:935,33717:936,33718:937,33727:945,33728:946,33729:947,33730:948,33731:949,33732:950,33733:951,33734:952,33735:953,33736:954,33737:955,33738:956,33739:957,33740:958,33741:959,33742:960,33743:961,33744:963,33745:964,33746:965,33747:966,33748:967,33749:968,33750:969,33856:1040,33857:1041,33858:1042,33859:1043,33860:1044,33861:1045,33862:1025,33863:1046,33864:1047,33865:1048,33866:1049,33867:1050,33868:1051,33869:1052,33870:1053,33871:1054,33872:1055,33873:1056,33874:1057,33875:1058,33876:1059,33877:1060,33878:1061,33879:1062,33880:1063,33881:1064,33882:1065,33883:1066,33884:1067,33885:1068,33886:1069,33887:1070,33888:1071,33904:1072,33905:1073,33906:1074,33907:1075,33908:1076,33909:1077,33910:1105,33911:1078,33912:1079,33913:1080,33914:1081,33915:1082,33916:1083,33917:1084,33918:1085,33920:1086,33921:1087,33922:1088,33923:1089,33924:1090,33925:1091,33926:1092,33927:1093,33928:1094,33929:1095,33930:1096,33931:1097,33932:1098,33933:1099,33934:1100,33935:1101,33936:1102,33937:1103,33951:9472,33952:9474,33953:9484,33954:9488,33955:9496,33956:9492,33957:9500,33958:9516,33959:9508,33960:9524,33961:9532,33962:9473,33963:9475,33964:9487,33965:9491,33966:9499,33967:9495,33968:9507,33969:9523,33970:9515,33971:9531,33972:9547,33973:9504,33974:9519,33975:9512,33976:9527,33977:9535,33978:9501,33979:9520,33980:9509,33981:9528,33982:9538,34624:9312,34625:9313,34626:9314,34627:9315,34628:9316,34629:9317,34630:9318,34631:9319,34632:9320,34633:9321,34634:9322,34635:9323,34636:9324,34637:9325,34638:9326,34639:9327,34640:9328,34641:9329,34642:9330,34643:9331,34644:8544,34645:8545,34646:8546,34647:8547,34648:8548,34649:8549,34650:8550,34651:8551,34652:8552,34653:8553,34655:13129,34656:13076,34657:13090,34658:13133,34659:13080,34660:13095,34661:13059,34662:13110,34663:13137,34664:13143,34665:13069,34666:13094,34667:13091,34668:13099,34669:13130,34670:13115,34671:13212,34672:13213,34673:13214,34674:13198,34675:13199,34676:13252,34677:13217,34686:13179,34688:12317,34689:12319,34690:8470,34691:13261,34692:8481,34693:12964,34694:12965,34695:12966,34696:12967,34697:12968,34698:12849,34699:12850,34700:12857,34701:13182,34702:13181,34703:13180,34704:8786,34705:8801,34706:8747,34707:8750,34708:8721,34709:8730,34710:8869,34711:8736,34712:8735,34713:8895,34714:8757,34715:8745,34716:8746,34975:20124,34976:21782,34977:23043,34978:38463,34979:21696,34980:24859,34981:25384,34982:23030,34983:36898,34984:33909,34985:33564,34986:31312,34987:24746,34988:25569,34989:28197,34990:26093,34991:33894,34992:33446,34993:39925,34994:26771,34995:22311,34996:26017,34997:25201,34998:23451,34999:22992,35e3:34427,35001:39156,35002:32098,35003:32190,35004:39822,35005:25110,35006:31903,35007:34999,35008:23433,35009:24245,35010:25353,35011:26263,35012:26696,35013:38343,35014:38797,35015:26447,35016:20197,35017:20234,35018:20301,35019:20381,35020:20553,35021:22258,35022:22839,35023:22996,35024:23041,35025:23561,35026:24799,35027:24847,35028:24944,35029:26131,35030:26885,35031:28858,35032:30031,35033:30064,35034:31227,35035:32173,35036:32239,35037:32963,35038:33806,35039:34915,35040:35586,35041:36949,35042:36986,35043:21307,35044:20117,35045:20133,35046:22495,35047:32946,35048:37057,35049:30959,35050:19968,35051:22769,35052:28322,35053:36920,35054:31282,35055:33576,35056:33419,35057:39983,35058:20801,35059:21360,35060:21693,35061:21729,35062:22240,35063:23035,35064:24341,35065:39154,35066:28139,35067:32996,35068:34093,35136:38498,35137:38512,35138:38560,35139:38907,35140:21515,35141:21491,35142:23431,35143:28879,35144:32701,35145:36802,35146:38632,35147:21359,35148:40284,35149:31418,35150:19985,35151:30867,35152:33276,35153:28198,35154:22040,35155:21764,35156:27421,35157:34074,35158:39995,35159:23013,35160:21417,35161:28006,35162:29916,35163:38287,35164:22082,35165:20113,35166:36939,35167:38642,35168:33615,35169:39180,35170:21473,35171:21942,35172:23344,35173:24433,35174:26144,35175:26355,35176:26628,35177:27704,35178:27891,35179:27945,35180:29787,35181:30408,35182:31310,35183:38964,35184:33521,35185:34907,35186:35424,35187:37613,35188:28082,35189:30123,35190:30410,35191:39365,35192:24742,35193:35585,35194:36234,35195:38322,35196:27022,35197:21421,35198:20870,35200:22290,35201:22576,35202:22852,35203:23476,35204:24310,35205:24616,35206:25513,35207:25588,35208:27839,35209:28436,35210:28814,35211:28948,35212:29017,35213:29141,35214:29503,35215:32257,35216:33398,35217:33489,35218:34199,35219:36960,35220:37467,35221:40219,35222:22633,35223:26044,35224:27738,35225:29989,35226:20985,35227:22830,35228:22885,35229:24448,35230:24540,35231:25276,35232:26106,35233:27178,35234:27431,35235:27572,35236:29579,35237:32705,35238:35158,35239:40236,35240:40206,35241:40644,35242:23713,35243:27798,35244:33659,35245:20740,35246:23627,35247:25014,35248:33222,35249:26742,35250:29281,35251:20057,35252:20474,35253:21368,35254:24681,35255:28201,35256:31311,35257:38899,35258:19979,35259:21270,35260:20206,35261:20309,35262:20285,35263:20385,35264:20339,35265:21152,35266:21487,35267:22025,35268:22799,35269:23233,35270:23478,35271:23521,35272:31185,35273:26247,35274:26524,35275:26550,35276:27468,35277:27827,35278:28779,35279:29634,35280:31117,35281:31166,35282:31292,35283:31623,35284:33457,35285:33499,35286:33540,35287:33655,35288:33775,35289:33747,35290:34662,35291:35506,35292:22057,35293:36008,35294:36838,35295:36942,35296:38686,35297:34442,35298:20420,35299:23784,35300:25105,35301:29273,35302:30011,35303:33253,35304:33469,35305:34558,35306:36032,35307:38597,35308:39187,35309:39381,35310:20171,35311:20250,35312:35299,35313:22238,35314:22602,35315:22730,35316:24315,35317:24555,35318:24618,35319:24724,35320:24674,35321:25040,35322:25106,35323:25296,35324:25913,35392:39745,35393:26214,35394:26800,35395:28023,35396:28784,35397:30028,35398:30342,35399:32117,35400:33445,35401:34809,35402:38283,35403:38542,35404:35997,35405:20977,35406:21182,35407:22806,35408:21683,35409:23475,35410:23830,35411:24936,35412:27010,35413:28079,35414:30861,35415:33995,35416:34903,35417:35442,35418:37799,35419:39608,35420:28012,35421:39336,35422:34521,35423:22435,35424:26623,35425:34510,35426:37390,35427:21123,35428:22151,35429:21508,35430:24275,35431:25313,35432:25785,35433:26684,35434:26680,35435:27579,35436:29554,35437:30906,35438:31339,35439:35226,35440:35282,35441:36203,35442:36611,35443:37101,35444:38307,35445:38548,35446:38761,35447:23398,35448:23731,35449:27005,35450:38989,35451:38990,35452:25499,35453:31520,35454:27179,35456:27263,35457:26806,35458:39949,35459:28511,35460:21106,35461:21917,35462:24688,35463:25324,35464:27963,35465:28167,35466:28369,35467:33883,35468:35088,35469:36676,35470:19988,35471:39993,35472:21494,35473:26907,35474:27194,35475:38788,35476:26666,35477:20828,35478:31427,35479:33970,35480:37340,35481:37772,35482:22107,35483:40232,35484:26658,35485:33541,35486:33841,35487:31909,35488:21e3,35489:33477,35490:29926,35491:20094,35492:20355,35493:20896,35494:23506,35495:21002,35496:21208,35497:21223,35498:24059,35499:21914,35500:22570,35501:23014,35502:23436,35503:23448,35504:23515,35505:24178,35506:24185,35507:24739,35508:24863,35509:24931,35510:25022,35511:25563,35512:25954,35513:26577,35514:26707,35515:26874,35516:27454,35517:27475,35518:27735,35519:28450,35520:28567,35521:28485,35522:29872,35523:29976,35524:30435,35525:30475,35526:31487,35527:31649,35528:31777,35529:32233,35530:32566,35531:32752,35532:32925,35533:33382,35534:33694,35535:35251,35536:35532,35537:36011,35538:36996,35539:37969,35540:38291,35541:38289,35542:38306,35543:38501,35544:38867,35545:39208,35546:33304,35547:20024,35548:21547,35549:23736,35550:24012,35551:29609,35552:30284,35553:30524,35554:23721,35555:32747,35556:36107,35557:38593,35558:38929,35559:38996,35560:39e3,35561:20225,35562:20238,35563:21361,35564:21916,35565:22120,35566:22522,35567:22855,35568:23305,35569:23492,35570:23696,35571:24076,35572:24190,35573:24524,35574:25582,35575:26426,35576:26071,35577:26082,35578:26399,35579:26827,35580:26820,35648:27231,35649:24112,35650:27589,35651:27671,35652:27773,35653:30079,35654:31048,35655:23395,35656:31232,35657:32e3,35658:24509,35659:35215,35660:35352,35661:36020,35662:36215,35663:36556,35664:36637,35665:39138,35666:39438,35667:39740,35668:20096,35669:20605,35670:20736,35671:22931,35672:23452,35673:25135,35674:25216,35675:25836,35676:27450,35677:29344,35678:30097,35679:31047,35680:32681,35681:34811,35682:35516,35683:35696,35684:25516,35685:33738,35686:38816,35687:21513,35688:21507,35689:21931,35690:26708,35691:27224,35692:35440,35693:30759,35694:26485,35695:40653,35696:21364,35697:23458,35698:33050,35699:34384,35700:36870,35701:19992,35702:20037,35703:20167,35704:20241,35705:21450,35706:21560,35707:23470,35708:24339,35709:24613,35710:25937,35712:26429,35713:27714,35714:27762,35715:27875,35716:28792,35717:29699,35718:31350,35719:31406,35720:31496,35721:32026,35722:31998,35723:32102,35724:26087,35725:29275,35726:21435,35727:23621,35728:24040,35729:25298,35730:25312,35731:25369,35732:28192,35733:34394,35734:35377,35735:36317,35736:37624,35737:28417,35738:31142,35739:39770,35740:20136,35741:20139,35742:20140,35743:20379,35744:20384,35745:20689,35746:20807,35747:31478,35748:20849,35749:20982,35750:21332,35751:21281,35752:21375,35753:21483,35754:21932,35755:22659,35756:23777,35757:24375,35758:24394,35759:24623,35760:24656,35761:24685,35762:25375,35763:25945,35764:27211,35765:27841,35766:29378,35767:29421,35768:30703,35769:33016,35770:33029,35771:33288,35772:34126,35773:37111,35774:37857,35775:38911,35776:39255,35777:39514,35778:20208,35779:20957,35780:23597,35781:26241,35782:26989,35783:23616,35784:26354,35785:26997,35786:29577,35787:26704,35788:31873,35789:20677,35790:21220,35791:22343,35792:24062,35793:37670,35794:26020,35795:27427,35796:27453,35797:29748,35798:31105,35799:31165,35800:31563,35801:32202,35802:33465,35803:33740,35804:34943,35805:35167,35806:35641,35807:36817,35808:37329,35809:21535,35810:37504,35811:20061,35812:20534,35813:21477,35814:21306,35815:29399,35816:29590,35817:30697,35818:33510,35819:36527,35820:39366,35821:39368,35822:39378,35823:20855,35824:24858,35825:34398,35826:21936,35827:31354,35828:20598,35829:23507,35830:36935,35831:38533,35832:20018,35833:27355,35834:37351,35835:23633,35836:23624,35904:25496,35905:31391,35906:27795,35907:38772,35908:36705,35909:31402,35910:29066,35911:38536,35912:31874,35913:26647,35914:32368,35915:26705,35916:37740,35917:21234,35918:21531,35919:34219,35920:35347,35921:32676,35922:36557,35923:37089,35924:21350,35925:34952,35926:31041,35927:20418,35928:20670,35929:21009,35930:20804,35931:21843,35932:22317,35933:29674,35934:22411,35935:22865,35936:24418,35937:24452,35938:24693,35939:24950,35940:24935,35941:25001,35942:25522,35943:25658,35944:25964,35945:26223,35946:26690,35947:28179,35948:30054,35949:31293,35950:31995,35951:32076,35952:32153,35953:32331,35954:32619,35955:33550,35956:33610,35957:34509,35958:35336,35959:35427,35960:35686,35961:36605,35962:38938,35963:40335,35964:33464,35965:36814,35966:39912,35968:21127,35969:25119,35970:25731,35971:28608,35972:38553,35973:26689,35974:20625,35975:27424,35976:27770,35977:28500,35978:31348,35979:32080,35980:34880,35981:35363,35982:26376,35983:20214,35984:20537,35985:20518,35986:20581,35987:20860,35988:21048,35989:21091,35990:21927,35991:22287,35992:22533,35993:23244,35994:24314,35995:25010,35996:25080,35997:25331,35998:25458,35999:26908,36e3:27177,36001:29309,36002:29356,36003:29486,36004:30740,36005:30831,36006:32121,36007:30476,36008:32937,36009:35211,36010:35609,36011:36066,36012:36562,36013:36963,36014:37749,36015:38522,36016:38997,36017:39443,36018:40568,36019:20803,36020:21407,36021:21427,36022:24187,36023:24358,36024:28187,36025:28304,36026:29572,36027:29694,36028:32067,36029:33335,36030:35328,36031:35578,36032:38480,36033:20046,36034:20491,36035:21476,36036:21628,36037:22266,36038:22993,36039:23396,36040:24049,36041:24235,36042:24359,36043:25144,36044:25925,36045:26543,36046:28246,36047:29392,36048:31946,36049:34996,36050:32929,36051:32993,36052:33776,36053:34382,36054:35463,36055:36328,36056:37431,36057:38599,36058:39015,36059:40723,36060:20116,36061:20114,36062:20237,36063:21320,36064:21577,36065:21566,36066:23087,36067:24460,36068:24481,36069:24735,36070:26791,36071:27278,36072:29786,36073:30849,36074:35486,36075:35492,36076:35703,36077:37264,36078:20062,36079:39881,36080:20132,36081:20348,36082:20399,36083:20505,36084:20502,36085:20809,36086:20844,36087:21151,36088:21177,36089:21246,36090:21402,36091:21475,36092:21521,36160:21518,36161:21897,36162:22353,36163:22434,36164:22909,36165:23380,36166:23389,36167:23439,36168:24037,36169:24039,36170:24055,36171:24184,36172:24195,36173:24218,36174:24247,36175:24344,36176:24658,36177:24908,36178:25239,36179:25304,36180:25511,36181:25915,36182:26114,36183:26179,36184:26356,36185:26477,36186:26657,36187:26775,36188:27083,36189:27743,36190:27946,36191:28009,36192:28207,36193:28317,36194:30002,36195:30343,36196:30828,36197:31295,36198:31968,36199:32005,36200:32024,36201:32094,36202:32177,36203:32789,36204:32771,36205:32943,36206:32945,36207:33108,36208:33167,36209:33322,36210:33618,36211:34892,36212:34913,36213:35611,36214:36002,36215:36092,36216:37066,36217:37237,36218:37489,36219:30783,36220:37628,36221:38308,36222:38477,36224:38917,36225:39321,36226:39640,36227:40251,36228:21083,36229:21163,36230:21495,36231:21512,36232:22741,36233:25335,36234:28640,36235:35946,36236:36703,36237:40633,36238:20811,36239:21051,36240:21578,36241:22269,36242:31296,36243:37239,36244:40288,36245:40658,36246:29508,36247:28425,36248:33136,36249:29969,36250:24573,36251:24794,36252:39592,36253:29403,36254:36796,36255:27492,36256:38915,36257:20170,36258:22256,36259:22372,36260:22718,36261:23130,36262:24680,36263:25031,36264:26127,36265:26118,36266:26681,36267:26801,36268:28151,36269:30165,36270:32058,36271:33390,36272:39746,36273:20123,36274:20304,36275:21449,36276:21766,36277:23919,36278:24038,36279:24046,36280:26619,36281:27801,36282:29811,36283:30722,36284:35408,36285:37782,36286:35039,36287:22352,36288:24231,36289:25387,36290:20661,36291:20652,36292:20877,36293:26368,36294:21705,36295:22622,36296:22971,36297:23472,36298:24425,36299:25165,36300:25505,36301:26685,36302:27507,36303:28168,36304:28797,36305:37319,36306:29312,36307:30741,36308:30758,36309:31085,36310:25998,36311:32048,36312:33756,36313:35009,36314:36617,36315:38555,36316:21092,36317:22312,36318:26448,36319:32618,36320:36001,36321:20916,36322:22338,36323:38442,36324:22586,36325:27018,36326:32948,36327:21682,36328:23822,36329:22524,36330:30869,36331:40442,36332:20316,36333:21066,36334:21643,36335:25662,36336:26152,36337:26388,36338:26613,36339:31364,36340:31574,36341:32034,36342:37679,36343:26716,36344:39853,36345:31545,36346:21273,36347:20874,36348:21047,36416:23519,36417:25334,36418:25774,36419:25830,36420:26413,36421:27578,36422:34217,36423:38609,36424:30352,36425:39894,36426:25420,36427:37638,36428:39851,36429:30399,36430:26194,36431:19977,36432:20632,36433:21442,36434:23665,36435:24808,36436:25746,36437:25955,36438:26719,36439:29158,36440:29642,36441:29987,36442:31639,36443:32386,36444:34453,36445:35715,36446:36059,36447:37240,36448:39184,36449:26028,36450:26283,36451:27531,36452:20181,36453:20180,36454:20282,36455:20351,36456:21050,36457:21496,36458:21490,36459:21987,36460:22235,36461:22763,36462:22987,36463:22985,36464:23039,36465:23376,36466:23629,36467:24066,36468:24107,36469:24535,36470:24605,36471:25351,36472:25903,36473:23388,36474:26031,36475:26045,36476:26088,36477:26525,36478:27490,36480:27515,36481:27663,36482:29509,36483:31049,36484:31169,36485:31992,36486:32025,36487:32043,36488:32930,36489:33026,36490:33267,36491:35222,36492:35422,36493:35433,36494:35430,36495:35468,36496:35566,36497:36039,36498:36060,36499:38604,36500:39164,36501:27503,36502:20107,36503:20284,36504:20365,36505:20816,36506:23383,36507:23546,36508:24904,36509:25345,36510:26178,36511:27425,36512:28363,36513:27835,36514:29246,36515:29885,36516:30164,36517:30913,36518:31034,36519:32780,36520:32819,36521:33258,36522:33940,36523:36766,36524:27728,36525:40575,36526:24335,36527:35672,36528:40235,36529:31482,36530:36600,36531:23437,36532:38635,36533:19971,36534:21489,36535:22519,36536:22833,36537:23241,36538:23460,36539:24713,36540:28287,36541:28422,36542:30142,36543:36074,36544:23455,36545:34048,36546:31712,36547:20594,36548:26612,36549:33437,36550:23649,36551:34122,36552:32286,36553:33294,36554:20889,36555:23556,36556:25448,36557:36198,36558:26012,36559:29038,36560:31038,36561:32023,36562:32773,36563:35613,36564:36554,36565:36974,36566:34503,36567:37034,36568:20511,36569:21242,36570:23610,36571:26451,36572:28796,36573:29237,36574:37196,36575:37320,36576:37675,36577:33509,36578:23490,36579:24369,36580:24825,36581:20027,36582:21462,36583:23432,36584:25163,36585:26417,36586:27530,36587:29417,36588:29664,36589:31278,36590:33131,36591:36259,36592:37202,36593:39318,36594:20754,36595:21463,36596:21610,36597:23551,36598:25480,36599:27193,36600:32172,36601:38656,36602:22234,36603:21454,36604:21608,36672:23447,36673:23601,36674:24030,36675:20462,36676:24833,36677:25342,36678:27954,36679:31168,36680:31179,36681:32066,36682:32333,36683:32722,36684:33261,36685:33311,36686:33936,36687:34886,36688:35186,36689:35728,36690:36468,36691:36655,36692:36913,36693:37195,36694:37228,36695:38598,36696:37276,36697:20160,36698:20303,36699:20805,36700:21313,36701:24467,36702:25102,36703:26580,36704:27713,36705:28171,36706:29539,36707:32294,36708:37325,36709:37507,36710:21460,36711:22809,36712:23487,36713:28113,36714:31069,36715:32302,36716:31899,36717:22654,36718:29087,36719:20986,36720:34899,36721:36848,36722:20426,36723:23803,36724:26149,36725:30636,36726:31459,36727:33308,36728:39423,36729:20934,36730:24490,36731:26092,36732:26991,36733:27529,36734:28147,36736:28310,36737:28516,36738:30462,36739:32020,36740:24033,36741:36981,36742:37255,36743:38918,36744:20966,36745:21021,36746:25152,36747:26257,36748:26329,36749:28186,36750:24246,36751:32210,36752:32626,36753:26360,36754:34223,36755:34295,36756:35576,36757:21161,36758:21465,36759:22899,36760:24207,36761:24464,36762:24661,36763:37604,36764:38500,36765:20663,36766:20767,36767:21213,36768:21280,36769:21319,36770:21484,36771:21736,36772:21830,36773:21809,36774:22039,36775:22888,36776:22974,36777:23100,36778:23477,36779:23558,36780:23567,36781:23569,36782:23578,36783:24196,36784:24202,36785:24288,36786:24432,36787:25215,36788:25220,36789:25307,36790:25484,36791:25463,36792:26119,36793:26124,36794:26157,36795:26230,36796:26494,36797:26786,36798:27167,36799:27189,36800:27836,36801:28040,36802:28169,36803:28248,36804:28988,36805:28966,36806:29031,36807:30151,36808:30465,36809:30813,36810:30977,36811:31077,36812:31216,36813:31456,36814:31505,36815:31911,36816:32057,36817:32918,36818:33750,36819:33931,36820:34121,36821:34909,36822:35059,36823:35359,36824:35388,36825:35412,36826:35443,36827:35937,36828:36062,36829:37284,36830:37478,36831:37758,36832:37912,36833:38556,36834:38808,36835:19978,36836:19976,36837:19998,36838:20055,36839:20887,36840:21104,36841:22478,36842:22580,36843:22732,36844:23330,36845:24120,36846:24773,36847:25854,36848:26465,36849:26454,36850:27972,36851:29366,36852:30067,36853:31331,36854:33976,36855:35698,36856:37304,36857:37664,36858:22065,36859:22516,36860:39166,36928:25325,36929:26893,36930:27542,36931:29165,36932:32340,36933:32887,36934:33394,36935:35302,36936:39135,36937:34645,36938:36785,36939:23611,36940:20280,36941:20449,36942:20405,36943:21767,36944:23072,36945:23517,36946:23529,36947:24515,36948:24910,36949:25391,36950:26032,36951:26187,36952:26862,36953:27035,36954:28024,36955:28145,36956:30003,36957:30137,36958:30495,36959:31070,36960:31206,36961:32051,36962:33251,36963:33455,36964:34218,36965:35242,36966:35386,36967:36523,36968:36763,36969:36914,36970:37341,36971:38663,36972:20154,36973:20161,36974:20995,36975:22645,36976:22764,36977:23563,36978:29978,36979:23613,36980:33102,36981:35338,36982:36805,36983:38499,36984:38765,36985:31525,36986:35535,36987:38920,36988:37218,36989:22259,36990:21416,36992:36887,36993:21561,36994:22402,36995:24101,36996:25512,36997:27700,36998:28810,36999:30561,37e3:31883,37001:32736,37002:34928,37003:36930,37004:37204,37005:37648,37006:37656,37007:38543,37008:29790,37009:39620,37010:23815,37011:23913,37012:25968,37013:26530,37014:36264,37015:38619,37016:25454,37017:26441,37018:26905,37019:33733,37020:38935,37021:38592,37022:35070,37023:28548,37024:25722,37025:23544,37026:19990,37027:28716,37028:30045,37029:26159,37030:20932,37031:21046,37032:21218,37033:22995,37034:24449,37035:24615,37036:25104,37037:25919,37038:25972,37039:26143,37040:26228,37041:26866,37042:26646,37043:27491,37044:28165,37045:29298,37046:29983,37047:30427,37048:31934,37049:32854,37050:22768,37051:35069,37052:35199,37053:35488,37054:35475,37055:35531,37056:36893,37057:37266,37058:38738,37059:38745,37060:25993,37061:31246,37062:33030,37063:38587,37064:24109,37065:24796,37066:25114,37067:26021,37068:26132,37069:26512,37070:30707,37071:31309,37072:31821,37073:32318,37074:33034,37075:36012,37076:36196,37077:36321,37078:36447,37079:30889,37080:20999,37081:25305,37082:25509,37083:25666,37084:25240,37085:35373,37086:31363,37087:31680,37088:35500,37089:38634,37090:32118,37091:33292,37092:34633,37093:20185,37094:20808,37095:21315,37096:21344,37097:23459,37098:23554,37099:23574,37100:24029,37101:25126,37102:25159,37103:25776,37104:26643,37105:26676,37106:27849,37107:27973,37108:27927,37109:26579,37110:28508,37111:29006,37112:29053,37113:26059,37114:31359,37115:31661,37116:32218,37184:32330,37185:32680,37186:33146,37187:33307,37188:33337,37189:34214,37190:35438,37191:36046,37192:36341,37193:36984,37194:36983,37195:37549,37196:37521,37197:38275,37198:39854,37199:21069,37200:21892,37201:28472,37202:28982,37203:20840,37204:31109,37205:32341,37206:33203,37207:31950,37208:22092,37209:22609,37210:23720,37211:25514,37212:26366,37213:26365,37214:26970,37215:29401,37216:30095,37217:30094,37218:30990,37219:31062,37220:31199,37221:31895,37222:32032,37223:32068,37224:34311,37225:35380,37226:38459,37227:36961,37228:40736,37229:20711,37230:21109,37231:21452,37232:21474,37233:20489,37234:21930,37235:22766,37236:22863,37237:29245,37238:23435,37239:23652,37240:21277,37241:24803,37242:24819,37243:25436,37244:25475,37245:25407,37246:25531,37248:25805,37249:26089,37250:26361,37251:24035,37252:27085,37253:27133,37254:28437,37255:29157,37256:20105,37257:30185,37258:30456,37259:31379,37260:31967,37261:32207,37262:32156,37263:32865,37264:33609,37265:33624,37266:33900,37267:33980,37268:34299,37269:35013,37270:36208,37271:36865,37272:36973,37273:37783,37274:38684,37275:39442,37276:20687,37277:22679,37278:24974,37279:33235,37280:34101,37281:36104,37282:36896,37283:20419,37284:20596,37285:21063,37286:21363,37287:24687,37288:25417,37289:26463,37290:28204,37291:36275,37292:36895,37293:20439,37294:23646,37295:36042,37296:26063,37297:32154,37298:21330,37299:34966,37300:20854,37301:25539,37302:23384,37303:23403,37304:23562,37305:25613,37306:26449,37307:36956,37308:20182,37309:22810,37310:22826,37311:27760,37312:35409,37313:21822,37314:22549,37315:22949,37316:24816,37317:25171,37318:26561,37319:33333,37320:26965,37321:38464,37322:39364,37323:39464,37324:20307,37325:22534,37326:23550,37327:32784,37328:23729,37329:24111,37330:24453,37331:24608,37332:24907,37333:25140,37334:26367,37335:27888,37336:28382,37337:32974,37338:33151,37339:33492,37340:34955,37341:36024,37342:36864,37343:36910,37344:38538,37345:40667,37346:39899,37347:20195,37348:21488,37349:22823,37350:31532,37351:37261,37352:38988,37353:40441,37354:28381,37355:28711,37356:21331,37357:21828,37358:23429,37359:25176,37360:25246,37361:25299,37362:27810,37363:28655,37364:29730,37365:35351,37366:37944,37367:28609,37368:35582,37369:33592,37370:20967,37371:34552,37372:21482,37440:21481,37441:20294,37442:36948,37443:36784,37444:22890,37445:33073,37446:24061,37447:31466,37448:36799,37449:26842,37450:35895,37451:29432,37452:40008,37453:27197,37454:35504,37455:20025,37456:21336,37457:22022,37458:22374,37459:25285,37460:25506,37461:26086,37462:27470,37463:28129,37464:28251,37465:28845,37466:30701,37467:31471,37468:31658,37469:32187,37470:32829,37471:32966,37472:34507,37473:35477,37474:37723,37475:22243,37476:22727,37477:24382,37478:26029,37479:26262,37480:27264,37481:27573,37482:30007,37483:35527,37484:20516,37485:30693,37486:22320,37487:24347,37488:24677,37489:26234,37490:27744,37491:30196,37492:31258,37493:32622,37494:33268,37495:34584,37496:36933,37497:39347,37498:31689,37499:30044,37500:31481,37501:31569,37502:33988,37504:36880,37505:31209,37506:31378,37507:33590,37508:23265,37509:30528,37510:20013,37511:20210,37512:23449,37513:24544,37514:25277,37515:26172,37516:26609,37517:27880,37518:34411,37519:34935,37520:35387,37521:37198,37522:37619,37523:39376,37524:27159,37525:28710,37526:29482,37527:33511,37528:33879,37529:36015,37530:19969,37531:20806,37532:20939,37533:21899,37534:23541,37535:24086,37536:24115,37537:24193,37538:24340,37539:24373,37540:24427,37541:24500,37542:25074,37543:25361,37544:26274,37545:26397,37546:28526,37547:29266,37548:30010,37549:30522,37550:32884,37551:33081,37552:33144,37553:34678,37554:35519,37555:35548,37556:36229,37557:36339,37558:37530,37559:38263,37560:38914,37561:40165,37562:21189,37563:25431,37564:30452,37565:26389,37566:27784,37567:29645,37568:36035,37569:37806,37570:38515,37571:27941,37572:22684,37573:26894,37574:27084,37575:36861,37576:37786,37577:30171,37578:36890,37579:22618,37580:26626,37581:25524,37582:27131,37583:20291,37584:28460,37585:26584,37586:36795,37587:34086,37588:32180,37589:37716,37590:26943,37591:28528,37592:22378,37593:22775,37594:23340,37595:32044,37596:29226,37597:21514,37598:37347,37599:40372,37600:20141,37601:20302,37602:20572,37603:20597,37604:21059,37605:35998,37606:21576,37607:22564,37608:23450,37609:24093,37610:24213,37611:24237,37612:24311,37613:24351,37614:24716,37615:25269,37616:25402,37617:25552,37618:26799,37619:27712,37620:30855,37621:31118,37622:31243,37623:32224,37624:33351,37625:35330,37626:35558,37627:36420,37628:36883,37696:37048,37697:37165,37698:37336,37699:40718,37700:27877,37701:25688,37702:25826,37703:25973,37704:28404,37705:30340,37706:31515,37707:36969,37708:37841,37709:28346,37710:21746,37711:24505,37712:25764,37713:36685,37714:36845,37715:37444,37716:20856,37717:22635,37718:22825,37719:23637,37720:24215,37721:28155,37722:32399,37723:29980,37724:36028,37725:36578,37726:39003,37727:28857,37728:20253,37729:27583,37730:28593,37731:3e4,37732:38651,37733:20814,37734:21520,37735:22581,37736:22615,37737:22956,37738:23648,37739:24466,37740:26007,37741:26460,37742:28193,37743:30331,37744:33759,37745:36077,37746:36884,37747:37117,37748:37709,37749:30757,37750:30778,37751:21162,37752:24230,37753:22303,37754:22900,37755:24594,37756:20498,37757:20826,37758:20908,37760:20941,37761:20992,37762:21776,37763:22612,37764:22616,37765:22871,37766:23445,37767:23798,37768:23947,37769:24764,37770:25237,37771:25645,37772:26481,37773:26691,37774:26812,37775:26847,37776:30423,37777:28120,37778:28271,37779:28059,37780:28783,37781:29128,37782:24403,37783:30168,37784:31095,37785:31561,37786:31572,37787:31570,37788:31958,37789:32113,37790:21040,37791:33891,37792:34153,37793:34276,37794:35342,37795:35588,37796:35910,37797:36367,37798:36867,37799:36879,37800:37913,37801:38518,37802:38957,37803:39472,37804:38360,37805:20685,37806:21205,37807:21516,37808:22530,37809:23566,37810:24999,37811:25758,37812:27934,37813:30643,37814:31461,37815:33012,37816:33796,37817:36947,37818:37509,37819:23776,37820:40199,37821:21311,37822:24471,37823:24499,37824:28060,37825:29305,37826:30563,37827:31167,37828:31716,37829:27602,37830:29420,37831:35501,37832:26627,37833:27233,37834:20984,37835:31361,37836:26932,37837:23626,37838:40182,37839:33515,37840:23493,37841:37193,37842:28702,37843:22136,37844:23663,37845:24775,37846:25958,37847:27788,37848:35930,37849:36929,37850:38931,37851:21585,37852:26311,37853:37389,37854:22856,37855:37027,37856:20869,37857:20045,37858:20970,37859:34201,37860:35598,37861:28760,37862:25466,37863:37707,37864:26978,37865:39348,37866:32260,37867:30071,37868:21335,37869:26976,37870:36575,37871:38627,37872:27741,37873:20108,37874:23612,37875:24336,37876:36841,37877:21250,37878:36049,37879:32905,37880:34425,37881:24319,37882:26085,37883:20083,37884:20837,37952:22914,37953:23615,37954:38894,37955:20219,37956:22922,37957:24525,37958:35469,37959:28641,37960:31152,37961:31074,37962:23527,37963:33905,37964:29483,37965:29105,37966:24180,37967:24565,37968:25467,37969:25754,37970:29123,37971:31896,37972:20035,37973:24316,37974:20043,37975:22492,37976:22178,37977:24745,37978:28611,37979:32013,37980:33021,37981:33075,37982:33215,37983:36786,37984:35223,37985:34468,37986:24052,37987:25226,37988:25773,37989:35207,37990:26487,37991:27874,37992:27966,37993:29750,37994:30772,37995:23110,37996:32629,37997:33453,37998:39340,37999:20467,38e3:24259,38001:25309,38002:25490,38003:25943,38004:26479,38005:30403,38006:29260,38007:32972,38008:32954,38009:36649,38010:37197,38011:20493,38012:22521,38013:23186,38014:26757,38016:26995,38017:29028,38018:29437,38019:36023,38020:22770,38021:36064,38022:38506,38023:36889,38024:34687,38025:31204,38026:30695,38027:33833,38028:20271,38029:21093,38030:21338,38031:25293,38032:26575,38033:27850,38034:30333,38035:31636,38036:31893,38037:33334,38038:34180,38039:36843,38040:26333,38041:28448,38042:29190,38043:32283,38044:33707,38045:39361,38046:40614,38047:20989,38048:31665,38049:30834,38050:31672,38051:32903,38052:31560,38053:27368,38054:24161,38055:32908,38056:30033,38057:30048,38058:20843,38059:37474,38060:28300,38061:30330,38062:37271,38063:39658,38064:20240,38065:32624,38066:25244,38067:31567,38068:38309,38069:40169,38070:22138,38071:22617,38072:34532,38073:38588,38074:20276,38075:21028,38076:21322,38077:21453,38078:21467,38079:24070,38080:25644,38081:26001,38082:26495,38083:27710,38084:27726,38085:29256,38086:29359,38087:29677,38088:30036,38089:32321,38090:33324,38091:34281,38092:36009,38093:31684,38094:37318,38095:29033,38096:38930,38097:39151,38098:25405,38099:26217,38100:30058,38101:30436,38102:30928,38103:34115,38104:34542,38105:21290,38106:21329,38107:21542,38108:22915,38109:24199,38110:24444,38111:24754,38112:25161,38113:25209,38114:25259,38115:26e3,38116:27604,38117:27852,38118:30130,38119:30382,38120:30865,38121:31192,38122:32203,38123:32631,38124:32933,38125:34987,38126:35513,38127:36027,38128:36991,38129:38750,38130:39131,38131:27147,38132:31800,38133:20633,38134:23614,38135:24494,38136:26503,38137:27608,38138:29749,38139:30473,38140:32654,38208:40763,38209:26570,38210:31255,38211:21305,38212:30091,38213:39661,38214:24422,38215:33181,38216:33777,38217:32920,38218:24380,38219:24517,38220:30050,38221:31558,38222:36924,38223:26727,38224:23019,38225:23195,38226:32016,38227:30334,38228:35628,38229:20469,38230:24426,38231:27161,38232:27703,38233:28418,38234:29922,38235:31080,38236:34920,38237:35413,38238:35961,38239:24287,38240:25551,38241:30149,38242:31186,38243:33495,38244:37672,38245:37618,38246:33948,38247:34541,38248:39981,38249:21697,38250:24428,38251:25996,38252:27996,38253:28693,38254:36007,38255:36051,38256:38971,38257:25935,38258:29942,38259:19981,38260:20184,38261:22496,38262:22827,38263:23142,38264:23500,38265:20904,38266:24067,38267:24220,38268:24598,38269:25206,38270:25975,38272:26023,38273:26222,38274:28014,38275:29238,38276:31526,38277:33104,38278:33178,38279:33433,38280:35676,38281:36e3,38282:36070,38283:36212,38284:38428,38285:38468,38286:20398,38287:25771,38288:27494,38289:33310,38290:33889,38291:34154,38292:37096,38293:23553,38294:26963,38295:39080,38296:33914,38297:34135,38298:20239,38299:21103,38300:24489,38301:24133,38302:26381,38303:31119,38304:33145,38305:35079,38306:35206,38307:28149,38308:24343,38309:25173,38310:27832,38311:20175,38312:29289,38313:39826,38314:20998,38315:21563,38316:22132,38317:22707,38318:24996,38319:25198,38320:28954,38321:22894,38322:31881,38323:31966,38324:32027,38325:38640,38326:25991,38327:32862,38328:19993,38329:20341,38330:20853,38331:22592,38332:24163,38333:24179,38334:24330,38335:26564,38336:20006,38337:34109,38338:38281,38339:38491,38340:31859,38341:38913,38342:20731,38343:22721,38344:30294,38345:30887,38346:21029,38347:30629,38348:34065,38349:31622,38350:20559,38351:22793,38352:29255,38353:31687,38354:32232,38355:36794,38356:36820,38357:36941,38358:20415,38359:21193,38360:23081,38361:24321,38362:38829,38363:20445,38364:33303,38365:37610,38366:22275,38367:25429,38368:27497,38369:29995,38370:35036,38371:36628,38372:31298,38373:21215,38374:22675,38375:24917,38376:25098,38377:26286,38378:27597,38379:31807,38380:33769,38381:20515,38382:20472,38383:21253,38384:21574,38385:22577,38386:22857,38387:23453,38388:23792,38389:23791,38390:23849,38391:24214,38392:25265,38393:25447,38394:25918,38395:26041,38396:26379,38464:27861,38465:27873,38466:28921,38467:30770,38468:32299,38469:32990,38470:33459,38471:33804,38472:34028,38473:34562,38474:35090,38475:35370,38476:35914,38477:37030,38478:37586,38479:39165,38480:40179,38481:40300,38482:20047,38483:20129,38484:20621,38485:21078,38486:22346,38487:22952,38488:24125,38489:24536,38490:24537,38491:25151,38492:26292,38493:26395,38494:26576,38495:26834,38496:20882,38497:32033,38498:32938,38499:33192,38500:35584,38501:35980,38502:36031,38503:37502,38504:38450,38505:21536,38506:38956,38507:21271,38508:20693,38509:21340,38510:22696,38511:25778,38512:26420,38513:29287,38514:30566,38515:31302,38516:37350,38517:21187,38518:27809,38519:27526,38520:22528,38521:24140,38522:22868,38523:26412,38524:32763,38525:20961,38526:30406,38528:25705,38529:30952,38530:39764,38531:40635,38532:22475,38533:22969,38534:26151,38535:26522,38536:27598,38537:21737,38538:27097,38539:24149,38540:33180,38541:26517,38542:39850,38543:26622,38544:40018,38545:26717,38546:20134,38547:20451,38548:21448,38549:25273,38550:26411,38551:27819,38552:36804,38553:20397,38554:32365,38555:40639,38556:19975,38557:24930,38558:28288,38559:28459,38560:34067,38561:21619,38562:26410,38563:39749,38564:24051,38565:31637,38566:23724,38567:23494,38568:34588,38569:28234,38570:34001,38571:31252,38572:33032,38573:22937,38574:31885,38575:27665,38576:30496,38577:21209,38578:22818,38579:28961,38580:29279,38581:30683,38582:38695,38583:40289,38584:26891,38585:23167,38586:23064,38587:20901,38588:21517,38589:21629,38590:26126,38591:30431,38592:36855,38593:37528,38594:40180,38595:23018,38596:29277,38597:28357,38598:20813,38599:26825,38600:32191,38601:32236,38602:38754,38603:40634,38604:25720,38605:27169,38606:33538,38607:22916,38608:23391,38609:27611,38610:29467,38611:30450,38612:32178,38613:32791,38614:33945,38615:20786,38616:26408,38617:40665,38618:30446,38619:26466,38620:21247,38621:39173,38622:23588,38623:25147,38624:31870,38625:36016,38626:21839,38627:24758,38628:32011,38629:38272,38630:21249,38631:20063,38632:20918,38633:22812,38634:29242,38635:32822,38636:37326,38637:24357,38638:30690,38639:21380,38640:24441,38641:32004,38642:34220,38643:35379,38644:36493,38645:38742,38646:26611,38647:34222,38648:37971,38649:24841,38650:24840,38651:27833,38652:30290,38720:35565,38721:36664,38722:21807,38723:20305,38724:20778,38725:21191,38726:21451,38727:23461,38728:24189,38729:24736,38730:24962,38731:25558,38732:26377,38733:26586,38734:28263,38735:28044,38736:29494,38737:29495,38738:30001,38739:31056,38740:35029,38741:35480,38742:36938,38743:37009,38744:37109,38745:38596,38746:34701,38747:22805,38748:20104,38749:20313,38750:19982,38751:35465,38752:36671,38753:38928,38754:20653,38755:24188,38756:22934,38757:23481,38758:24248,38759:25562,38760:25594,38761:25793,38762:26332,38763:26954,38764:27096,38765:27915,38766:28342,38767:29076,38768:29992,38769:31407,38770:32650,38771:32768,38772:33865,38773:33993,38774:35201,38775:35617,38776:36362,38777:36965,38778:38525,38779:39178,38780:24958,38781:25233,38782:27442,38784:27779,38785:28020,38786:32716,38787:32764,38788:28096,38789:32645,38790:34746,38791:35064,38792:26469,38793:33713,38794:38972,38795:38647,38796:27931,38797:32097,38798:33853,38799:37226,38800:20081,38801:21365,38802:23888,38803:27396,38804:28651,38805:34253,38806:34349,38807:35239,38808:21033,38809:21519,38810:23653,38811:26446,38812:26792,38813:29702,38814:29827,38815:30178,38816:35023,38817:35041,38818:37324,38819:38626,38820:38520,38821:24459,38822:29575,38823:31435,38824:33870,38825:25504,38826:30053,38827:21129,38828:27969,38829:28316,38830:29705,38831:30041,38832:30827,38833:31890,38834:38534,38835:31452,38836:40845,38837:20406,38838:24942,38839:26053,38840:34396,38841:20102,38842:20142,38843:20698,38844:20001,38845:20940,38846:23534,38847:26009,38848:26753,38849:28092,38850:29471,38851:30274,38852:30637,38853:31260,38854:31975,38855:33391,38856:35538,38857:36988,38858:37327,38859:38517,38860:38936,38861:21147,38862:32209,38863:20523,38864:21400,38865:26519,38866:28107,38867:29136,38868:29747,38869:33256,38870:36650,38871:38563,38872:40023,38873:40607,38874:29792,38875:22593,38876:28057,38877:32047,38878:39006,38879:20196,38880:20278,38881:20363,38882:20919,38883:21169,38884:23994,38885:24604,38886:29618,38887:31036,38888:33491,38889:37428,38890:38583,38891:38646,38892:38666,38893:40599,38894:40802,38895:26278,38896:27508,38897:21015,38898:21155,38899:28872,38900:35010,38901:24265,38902:24651,38903:24976,38904:28451,38905:29001,38906:31806,38907:32244,38908:32879,38976:34030,38977:36899,38978:37676,38979:21570,38980:39791,38981:27347,38982:28809,38983:36034,38984:36335,38985:38706,38986:21172,38987:23105,38988:24266,38989:24324,38990:26391,38991:27004,38992:27028,38993:28010,38994:28431,38995:29282,38996:29436,38997:31725,38998:32769,38999:32894,39e3:34635,39001:37070,39002:20845,39003:40595,39004:31108,39005:32907,39006:37682,39007:35542,39008:20525,39009:21644,39010:35441,39011:27498,39012:36036,39013:33031,39014:24785,39015:26528,39016:40434,39017:20121,39018:20120,39019:39952,39020:35435,39021:34241,39022:34152,39023:26880,39024:28286,39025:30871,39026:33109,39071:24332,39072:19984,39073:19989,39074:20010,39075:20017,39076:20022,39077:20028,39078:20031,39079:20034,39080:20054,39081:20056,39082:20098,39083:20101,39084:35947,39085:20106,39086:33298,39087:24333,39088:20110,39089:20126,39090:20127,39091:20128,39092:20130,39093:20144,39094:20147,39095:20150,39096:20174,39097:20173,39098:20164,39099:20166,39100:20162,39101:20183,39102:20190,39103:20205,39104:20191,39105:20215,39106:20233,39107:20314,39108:20272,39109:20315,39110:20317,39111:20311,39112:20295,39113:20342,39114:20360,39115:20367,39116:20376,39117:20347,39118:20329,39119:20336,39120:20369,39121:20335,39122:20358,39123:20374,39124:20760,39125:20436,39126:20447,39127:20430,39128:20440,39129:20443,39130:20433,39131:20442,39132:20432,39133:20452,39134:20453,39135:20506,39136:20520,39137:20500,39138:20522,39139:20517,39140:20485,39141:20252,39142:20470,39143:20513,39144:20521,39145:20524,39146:20478,39147:20463,39148:20497,39149:20486,39150:20547,39151:20551,39152:26371,39153:20565,39154:20560,39155:20552,39156:20570,39157:20566,39158:20588,39159:20600,39160:20608,39161:20634,39162:20613,39163:20660,39164:20658,39232:20681,39233:20682,39234:20659,39235:20674,39236:20694,39237:20702,39238:20709,39239:20717,39240:20707,39241:20718,39242:20729,39243:20725,39244:20745,39245:20737,39246:20738,39247:20758,39248:20757,39249:20756,39250:20762,39251:20769,39252:20794,39253:20791,39254:20796,39255:20795,39256:20799,39257:20800,39258:20818,39259:20812,39260:20820,39261:20834,39262:31480,39263:20841,39264:20842,39265:20846,39266:20864,39267:20866,39268:22232,39269:20876,39270:20873,39271:20879,39272:20881,39273:20883,39274:20885,39275:20886,39276:20900,39277:20902,39278:20898,39279:20905,39280:20906,39281:20907,39282:20915,39283:20913,39284:20914,39285:20912,39286:20917,39287:20925,39288:20933,39289:20937,39290:20955,39291:20960,39292:34389,39293:20969,39294:20973,39296:20976,39297:20981,39298:20990,39299:20996,39300:21003,39301:21012,39302:21006,39303:21031,39304:21034,39305:21038,39306:21043,39307:21049,39308:21071,39309:21060,39310:21067,39311:21068,39312:21086,39313:21076,39314:21098,39315:21108,39316:21097,39317:21107,39318:21119,39319:21117,39320:21133,39321:21140,39322:21138,39323:21105,39324:21128,39325:21137,39326:36776,39327:36775,39328:21164,39329:21165,39330:21180,39331:21173,39332:21185,39333:21197,39334:21207,39335:21214,39336:21219,39337:21222,39338:39149,39339:21216,39340:21235,39341:21237,39342:21240,39343:21241,39344:21254,39345:21256,39346:30008,39347:21261,39348:21264,39349:21263,39350:21269,39351:21274,39352:21283,39353:21295,39354:21297,39355:21299,39356:21304,39357:21312,39358:21318,39359:21317,39360:19991,39361:21321,39362:21325,39363:20950,39364:21342,39365:21353,39366:21358,39367:22808,39368:21371,39369:21367,39370:21378,39371:21398,39372:21408,39373:21414,39374:21413,39375:21422,39376:21424,39377:21430,39378:21443,39379:31762,39380:38617,39381:21471,39382:26364,39383:29166,39384:21486,39385:21480,39386:21485,39387:21498,39388:21505,39389:21565,39390:21568,39391:21548,39392:21549,39393:21564,39394:21550,39395:21558,39396:21545,39397:21533,39398:21582,39399:21647,39400:21621,39401:21646,39402:21599,39403:21617,39404:21623,39405:21616,39406:21650,39407:21627,39408:21632,39409:21622,39410:21636,39411:21648,39412:21638,39413:21703,39414:21666,39415:21688,39416:21669,39417:21676,39418:21700,39419:21704,39420:21672,39488:21675,39489:21698,39490:21668,39491:21694,39492:21692,39493:21720,39494:21733,39495:21734,39496:21775,39497:21780,39498:21757,39499:21742,39500:21741,39501:21754,39502:21730,39503:21817,39504:21824,39505:21859,39506:21836,39507:21806,39508:21852,39509:21829,39510:21846,39511:21847,39512:21816,39513:21811,39514:21853,39515:21913,39516:21888,39517:21679,39518:21898,39519:21919,39520:21883,39521:21886,39522:21912,39523:21918,39524:21934,39525:21884,39526:21891,39527:21929,39528:21895,39529:21928,39530:21978,39531:21957,39532:21983,39533:21956,39534:21980,39535:21988,39536:21972,39537:22036,39538:22007,39539:22038,39540:22014,39541:22013,39542:22043,39543:22009,39544:22094,39545:22096,39546:29151,39547:22068,39548:22070,39549:22066,39550:22072,39552:22123,39553:22116,39554:22063,39555:22124,39556:22122,39557:22150,39558:22144,39559:22154,39560:22176,39561:22164,39562:22159,39563:22181,39564:22190,39565:22198,39566:22196,39567:22210,39568:22204,39569:22209,39570:22211,39571:22208,39572:22216,39573:22222,39574:22225,39575:22227,39576:22231,39577:22254,39578:22265,39579:22272,39580:22271,39581:22276,39582:22281,39583:22280,39584:22283,39585:22285,39586:22291,39587:22296,39588:22294,39589:21959,39590:22300,39591:22310,39592:22327,39593:22328,39594:22350,39595:22331,39596:22336,39597:22351,39598:22377,39599:22464,39600:22408,39601:22369,39602:22399,39603:22409,39604:22419,39605:22432,39606:22451,39607:22436,39608:22442,39609:22448,39610:22467,39611:22470,39612:22484,39613:22482,39614:22483,39615:22538,39616:22486,39617:22499,39618:22539,39619:22553,39620:22557,39621:22642,39622:22561,39623:22626,39624:22603,39625:22640,39626:27584,39627:22610,39628:22589,39629:22649,39630:22661,39631:22713,39632:22687,39633:22699,39634:22714,39635:22750,39636:22715,39637:22712,39638:22702,39639:22725,39640:22739,39641:22737,39642:22743,39643:22745,39644:22744,39645:22757,39646:22748,39647:22756,39648:22751,39649:22767,39650:22778,39651:22777,39652:22779,39653:22780,39654:22781,39655:22786,39656:22794,39657:22800,39658:22811,39659:26790,39660:22821,39661:22828,39662:22829,39663:22834,39664:22840,39665:22846,39666:31442,39667:22869,39668:22864,39669:22862,39670:22874,39671:22872,39672:22882,39673:22880,39674:22887,39675:22892,39676:22889,39744:22904,39745:22913,39746:22941,39747:20318,39748:20395,39749:22947,39750:22962,39751:22982,39752:23016,39753:23004,39754:22925,39755:23001,39756:23002,39757:23077,39758:23071,39759:23057,39760:23068,39761:23049,39762:23066,39763:23104,39764:23148,39765:23113,39766:23093,39767:23094,39768:23138,39769:23146,39770:23194,39771:23228,39772:23230,39773:23243,39774:23234,39775:23229,39776:23267,39777:23255,39778:23270,39779:23273,39780:23254,39781:23290,39782:23291,39783:23308,39784:23307,39785:23318,39786:23346,39787:23248,39788:23338,39789:23350,39790:23358,39791:23363,39792:23365,39793:23360,39794:23377,39795:23381,39796:23386,39797:23387,39798:23397,39799:23401,39800:23408,39801:23411,39802:23413,39803:23416,39804:25992,39805:23418,39806:23424,39808:23427,39809:23462,39810:23480,39811:23491,39812:23495,39813:23497,39814:23508,39815:23504,39816:23524,39817:23526,39818:23522,39819:23518,39820:23525,39821:23531,39822:23536,39823:23542,39824:23539,39825:23557,39826:23559,39827:23560,39828:23565,39829:23571,39830:23584,39831:23586,39832:23592,39833:23608,39834:23609,39835:23617,39836:23622,39837:23630,39838:23635,39839:23632,39840:23631,39841:23409,39842:23660,39843:23662,39844:20066,39845:23670,39846:23673,39847:23692,39848:23697,39849:23700,39850:22939,39851:23723,39852:23739,39853:23734,39854:23740,39855:23735,39856:23749,39857:23742,39858:23751,39859:23769,39860:23785,39861:23805,39862:23802,39863:23789,39864:23948,39865:23786,39866:23819,39867:23829,39868:23831,39869:23900,39870:23839,39871:23835,39872:23825,39873:23828,39874:23842,39875:23834,39876:23833,39877:23832,39878:23884,39879:23890,39880:23886,39881:23883,39882:23916,39883:23923,39884:23926,39885:23943,39886:23940,39887:23938,39888:23970,39889:23965,39890:23980,39891:23982,39892:23997,39893:23952,39894:23991,39895:23996,39896:24009,39897:24013,39898:24019,39899:24018,39900:24022,39901:24027,39902:24043,39903:24050,39904:24053,39905:24075,39906:24090,39907:24089,39908:24081,39909:24091,39910:24118,39911:24119,39912:24132,39913:24131,39914:24128,39915:24142,39916:24151,39917:24148,39918:24159,39919:24162,39920:24164,39921:24135,39922:24181,39923:24182,39924:24186,39925:40636,39926:24191,39927:24224,39928:24257,39929:24258,39930:24264,39931:24272,39932:24271,4e4:24278,40001:24291,40002:24285,40003:24282,40004:24283,40005:24290,40006:24289,40007:24296,40008:24297,40009:24300,40010:24305,40011:24307,40012:24304,40013:24308,40014:24312,40015:24318,40016:24323,40017:24329,40018:24413,40019:24412,40020:24331,40021:24337,40022:24342,40023:24361,40024:24365,40025:24376,40026:24385,40027:24392,40028:24396,40029:24398,40030:24367,40031:24401,40032:24406,40033:24407,40034:24409,40035:24417,40036:24429,40037:24435,40038:24439,40039:24451,40040:24450,40041:24447,40042:24458,40043:24456,40044:24465,40045:24455,40046:24478,40047:24473,40048:24472,40049:24480,40050:24488,40051:24493,40052:24508,40053:24534,40054:24571,40055:24548,40056:24568,40057:24561,40058:24541,40059:24755,40060:24575,40061:24609,40062:24672,40064:24601,40065:24592,40066:24617,40067:24590,40068:24625,40069:24603,40070:24597,40071:24619,40072:24614,40073:24591,40074:24634,40075:24666,40076:24641,40077:24682,40078:24695,40079:24671,40080:24650,40081:24646,40082:24653,40083:24675,40084:24643,40085:24676,40086:24642,40087:24684,40088:24683,40089:24665,40090:24705,40091:24717,40092:24807,40093:24707,40094:24730,40095:24708,40096:24731,40097:24726,40098:24727,40099:24722,40100:24743,40101:24715,40102:24801,40103:24760,40104:24800,40105:24787,40106:24756,40107:24560,40108:24765,40109:24774,40110:24757,40111:24792,40112:24909,40113:24853,40114:24838,40115:24822,40116:24823,40117:24832,40118:24820,40119:24826,40120:24835,40121:24865,40122:24827,40123:24817,40124:24845,40125:24846,40126:24903,40127:24894,40128:24872,40129:24871,40130:24906,40131:24895,40132:24892,40133:24876,40134:24884,40135:24893,40136:24898,40137:24900,40138:24947,40139:24951,40140:24920,40141:24921,40142:24922,40143:24939,40144:24948,40145:24943,40146:24933,40147:24945,40148:24927,40149:24925,40150:24915,40151:24949,40152:24985,40153:24982,40154:24967,40155:25004,40156:24980,40157:24986,40158:24970,40159:24977,40160:25003,40161:25006,40162:25036,40163:25034,40164:25033,40165:25079,40166:25032,40167:25027,40168:25030,40169:25018,40170:25035,40171:32633,40172:25037,40173:25062,40174:25059,40175:25078,40176:25082,40177:25076,40178:25087,40179:25085,40180:25084,40181:25086,40182:25088,40183:25096,40184:25097,40185:25101,40186:25100,40187:25108,40188:25115,40256:25118,40257:25121,40258:25130,40259:25134,40260:25136,40261:25138,40262:25139,40263:25153,40264:25166,40265:25182,40266:25187,40267:25179,40268:25184,40269:25192,40270:25212,40271:25218,40272:25225,40273:25214,40274:25234,40275:25235,40276:25238,40277:25300,40278:25219,40279:25236,40280:25303,40281:25297,40282:25275,40283:25295,40284:25343,40285:25286,40286:25812,40287:25288,40288:25308,40289:25292,40290:25290,40291:25282,40292:25287,40293:25243,40294:25289,40295:25356,40296:25326,40297:25329,40298:25383,40299:25346,40300:25352,40301:25327,40302:25333,40303:25424,40304:25406,40305:25421,40306:25628,40307:25423,40308:25494,40309:25486,40310:25472,40311:25515,40312:25462,40313:25507,40314:25487,40315:25481,40316:25503,40317:25525,40318:25451,40320:25449,40321:25534,40322:25577,40323:25536,40324:25542,40325:25571,40326:25545,40327:25554,40328:25590,40329:25540,40330:25622,40331:25652,40332:25606,40333:25619,40334:25638,40335:25654,40336:25885,40337:25623,40338:25640,40339:25615,40340:25703,40341:25711,40342:25718,40343:25678,40344:25898,40345:25749,40346:25747,40347:25765,40348:25769,40349:25736,40350:25788,40351:25818,40352:25810,40353:25797,40354:25799,40355:25787,40356:25816,40357:25794,40358:25841,40359:25831,40360:33289,40361:25824,40362:25825,40363:25260,40364:25827,40365:25839,40366:25900,40367:25846,40368:25844,40369:25842,40370:25850,40371:25856,40372:25853,40373:25880,40374:25884,40375:25861,40376:25892,40377:25891,40378:25899,40379:25908,40380:25909,40381:25911,40382:25910,40383:25912,40384:30027,40385:25928,40386:25942,40387:25941,40388:25933,40389:25944,40390:25950,40391:25949,40392:25970,40393:25976,40394:25986,40395:25987,40396:35722,40397:26011,40398:26015,40399:26027,40400:26039,40401:26051,40402:26054,40403:26049,40404:26052,40405:26060,40406:26066,40407:26075,40408:26073,40409:26080,40410:26081,40411:26097,40412:26482,40413:26122,40414:26115,40415:26107,40416:26483,40417:26165,40418:26166,40419:26164,40420:26140,40421:26191,40422:26180,40423:26185,40424:26177,40425:26206,40426:26205,40427:26212,40428:26215,40429:26216,40430:26207,40431:26210,40432:26224,40433:26243,40434:26248,40435:26254,40436:26249,40437:26244,40438:26264,40439:26269,40440:26305,40441:26297,40442:26313,40443:26302,40444:26300,40512:26308,40513:26296,40514:26326,40515:26330,40516:26336,40517:26175,40518:26342,40519:26345,40520:26352,40521:26357,40522:26359,40523:26383,40524:26390,40525:26398,40526:26406,40527:26407,40528:38712,40529:26414,40530:26431,40531:26422,40532:26433,40533:26424,40534:26423,40535:26438,40536:26462,40537:26464,40538:26457,40539:26467,40540:26468,40541:26505,40542:26480,40543:26537,40544:26492,40545:26474,40546:26508,40547:26507,40548:26534,40549:26529,40550:26501,40551:26551,40552:26607,40553:26548,40554:26604,40555:26547,40556:26601,40557:26552,40558:26596,40559:26590,40560:26589,40561:26594,40562:26606,40563:26553,40564:26574,40565:26566,40566:26599,40567:27292,40568:26654,40569:26694,40570:26665,40571:26688,40572:26701,40573:26674,40574:26702,40576:26803,40577:26667,40578:26713,40579:26723,40580:26743,40581:26751,40582:26783,40583:26767,40584:26797,40585:26772,40586:26781,40587:26779,40588:26755,40589:27310,40590:26809,40591:26740,40592:26805,40593:26784,40594:26810,40595:26895,40596:26765,40597:26750,40598:26881,40599:26826,40600:26888,40601:26840,40602:26914,40603:26918,40604:26849,40605:26892,40606:26829,40607:26836,40608:26855,40609:26837,40610:26934,40611:26898,40612:26884,40613:26839,40614:26851,40615:26917,40616:26873,40617:26848,40618:26863,40619:26920,40620:26922,40621:26906,40622:26915,40623:26913,40624:26822,40625:27001,40626:26999,40627:26972,40628:27e3,40629:26987,40630:26964,40631:27006,40632:26990,40633:26937,40634:26996,40635:26941,40636:26969,40637:26928,40638:26977,40639:26974,40640:26973,40641:27009,40642:26986,40643:27058,40644:27054,40645:27088,40646:27071,40647:27073,40648:27091,40649:27070,40650:27086,40651:23528,40652:27082,40653:27101,40654:27067,40655:27075,40656:27047,40657:27182,40658:27025,40659:27040,40660:27036,40661:27029,40662:27060,40663:27102,40664:27112,40665:27138,40666:27163,40667:27135,40668:27402,40669:27129,40670:27122,40671:27111,40672:27141,40673:27057,40674:27166,40675:27117,40676:27156,40677:27115,40678:27146,40679:27154,40680:27329,40681:27171,40682:27155,40683:27204,40684:27148,40685:27250,40686:27190,40687:27256,40688:27207,40689:27234,40690:27225,40691:27238,40692:27208,40693:27192,40694:27170,40695:27280,40696:27277,40697:27296,40698:27268,40699:27298,40700:27299,40768:27287,40769:34327,40770:27323,40771:27331,40772:27330,40773:27320,40774:27315,40775:27308,40776:27358,40777:27345,40778:27359,40779:27306,40780:27354,40781:27370,40782:27387,40783:27397,40784:34326,40785:27386,40786:27410,40787:27414,40788:39729,40789:27423,40790:27448,40791:27447,40792:30428,40793:27449,40794:39150,40795:27463,40796:27459,40797:27465,40798:27472,40799:27481,40800:27476,40801:27483,40802:27487,40803:27489,40804:27512,40805:27513,40806:27519,40807:27520,40808:27524,40809:27523,40810:27533,40811:27544,40812:27541,40813:27550,40814:27556,40815:27562,40816:27563,40817:27567,40818:27570,40819:27569,40820:27571,40821:27575,40822:27580,40823:27590,40824:27595,40825:27603,40826:27615,40827:27628,40828:27627,40829:27635,40830:27631,40832:40638,40833:27656,40834:27667,40835:27668,40836:27675,40837:27684,40838:27683,40839:27742,40840:27733,40841:27746,40842:27754,40843:27778,40844:27789,40845:27802,40846:27777,40847:27803,40848:27774,40849:27752,40850:27763,40851:27794,40852:27792,40853:27844,40854:27889,40855:27859,40856:27837,40857:27863,40858:27845,40859:27869,40860:27822,40861:27825,40862:27838,40863:27834,40864:27867,40865:27887,40866:27865,40867:27882,40868:27935,40869:34893,40870:27958,40871:27947,40872:27965,40873:27960,40874:27929,40875:27957,40876:27955,40877:27922,40878:27916,40879:28003,40880:28051,40881:28004,40882:27994,40883:28025,40884:27993,40885:28046,40886:28053,40887:28644,40888:28037,40889:28153,40890:28181,40891:28170,40892:28085,40893:28103,40894:28134,40895:28088,40896:28102,40897:28140,40898:28126,40899:28108,40900:28136,40901:28114,40902:28101,40903:28154,40904:28121,40905:28132,40906:28117,40907:28138,40908:28142,40909:28205,40910:28270,40911:28206,40912:28185,40913:28274,40914:28255,40915:28222,40916:28195,40917:28267,40918:28203,40919:28278,40920:28237,40921:28191,40922:28227,40923:28218,40924:28238,40925:28196,40926:28415,40927:28189,40928:28216,40929:28290,40930:28330,40931:28312,40932:28361,40933:28343,40934:28371,40935:28349,40936:28335,40937:28356,40938:28338,40939:28372,40940:28373,40941:28303,40942:28325,40943:28354,40944:28319,40945:28481,40946:28433,40947:28748,40948:28396,40949:28408,40950:28414,40951:28479,40952:28402,40953:28465,40954:28399,40955:28466,40956:28364,57408:28478,57409:28435,57410:28407,57411:28550,57412:28538,57413:28536,57414:28545,57415:28544,57416:28527,57417:28507,57418:28659,57419:28525,57420:28546,57421:28540,57422:28504,57423:28558,57424:28561,57425:28610,57426:28518,57427:28595,57428:28579,57429:28577,57430:28580,57431:28601,57432:28614,57433:28586,57434:28639,57435:28629,57436:28652,57437:28628,57438:28632,57439:28657,57440:28654,57441:28635,57442:28681,57443:28683,57444:28666,57445:28689,57446:28673,57447:28687,57448:28670,57449:28699,57450:28698,57451:28532,57452:28701,57453:28696,57454:28703,57455:28720,57456:28734,57457:28722,57458:28753,57459:28771,57460:28825,57461:28818,57462:28847,57463:28913,57464:28844,57465:28856,57466:28851,57467:28846,57468:28895,57469:28875,57470:28893,57472:28889,57473:28937,57474:28925,57475:28956,57476:28953,57477:29029,57478:29013,57479:29064,57480:29030,57481:29026,57482:29004,57483:29014,57484:29036,57485:29071,57486:29179,57487:29060,57488:29077,57489:29096,57490:29100,57491:29143,57492:29113,57493:29118,57494:29138,57495:29129,57496:29140,57497:29134,57498:29152,57499:29164,57500:29159,57501:29173,57502:29180,57503:29177,57504:29183,57505:29197,57506:29200,57507:29211,57508:29224,57509:29229,57510:29228,57511:29232,57512:29234,57513:29243,57514:29244,57515:29247,57516:29248,57517:29254,57518:29259,57519:29272,57520:29300,57521:29310,57522:29314,57523:29313,57524:29319,57525:29330,57526:29334,57527:29346,57528:29351,57529:29369,57530:29362,57531:29379,57532:29382,57533:29380,57534:29390,57535:29394,57536:29410,57537:29408,57538:29409,57539:29433,57540:29431,57541:20495,57542:29463,57543:29450,57544:29468,57545:29462,57546:29469,57547:29492,57548:29487,57549:29481,57550:29477,57551:29502,57552:29518,57553:29519,57554:40664,57555:29527,57556:29546,57557:29544,57558:29552,57559:29560,57560:29557,57561:29563,57562:29562,57563:29640,57564:29619,57565:29646,57566:29627,57567:29632,57568:29669,57569:29678,57570:29662,57571:29858,57572:29701,57573:29807,57574:29733,57575:29688,57576:29746,57577:29754,57578:29781,57579:29759,57580:29791,57581:29785,57582:29761,57583:29788,57584:29801,57585:29808,57586:29795,57587:29802,57588:29814,57589:29822,57590:29835,57591:29854,57592:29863,57593:29898,57594:29903,57595:29908,57596:29681,57664:29920,57665:29923,57666:29927,57667:29929,57668:29934,57669:29938,57670:29936,57671:29937,57672:29944,57673:29943,57674:29956,57675:29955,57676:29957,57677:29964,57678:29966,57679:29965,57680:29973,57681:29971,57682:29982,57683:29990,57684:29996,57685:30012,57686:30020,57687:30029,57688:30026,57689:30025,57690:30043,57691:30022,57692:30042,57693:30057,57694:30052,57695:30055,57696:30059,57697:30061,57698:30072,57699:30070,57700:30086,57701:30087,57702:30068,57703:30090,57704:30089,57705:30082,57706:30100,57707:30106,57708:30109,57709:30117,57710:30115,57711:30146,57712:30131,57713:30147,57714:30133,57715:30141,57716:30136,57717:30140,57718:30129,57719:30157,57720:30154,57721:30162,57722:30169,57723:30179,57724:30174,57725:30206,57726:30207,57728:30204,57729:30209,57730:30192,57731:30202,57732:30194,57733:30195,57734:30219,57735:30221,57736:30217,57737:30239,57738:30247,57739:30240,57740:30241,57741:30242,57742:30244,57743:30260,57744:30256,57745:30267,57746:30279,57747:30280,57748:30278,57749:30300,57750:30296,57751:30305,57752:30306,57753:30312,57754:30313,57755:30314,57756:30311,57757:30316,57758:30320,57759:30322,57760:30326,57761:30328,57762:30332,57763:30336,57764:30339,57765:30344,57766:30347,57767:30350,57768:30358,57769:30355,57770:30361,57771:30362,57772:30384,57773:30388,57774:30392,57775:30393,57776:30394,57777:30402,57778:30413,57779:30422,57780:30418,57781:30430,57782:30433,57783:30437,57784:30439,57785:30442,57786:34351,57787:30459,57788:30472,57789:30471,57790:30468,57791:30505,57792:30500,57793:30494,57794:30501,57795:30502,57796:30491,57797:30519,57798:30520,57799:30535,57800:30554,57801:30568,57802:30571,57803:30555,57804:30565,57805:30591,57806:30590,57807:30585,57808:30606,57809:30603,57810:30609,57811:30624,57812:30622,57813:30640,57814:30646,57815:30649,57816:30655,57817:30652,57818:30653,57819:30651,57820:30663,57821:30669,57822:30679,57823:30682,57824:30684,57825:30691,57826:30702,57827:30716,57828:30732,57829:30738,57830:31014,57831:30752,57832:31018,57833:30789,57834:30862,57835:30836,57836:30854,57837:30844,57838:30874,57839:30860,57840:30883,57841:30901,57842:30890,57843:30895,57844:30929,57845:30918,57846:30923,57847:30932,57848:30910,57849:30908,57850:30917,57851:30922,57852:30956,57920:30951,57921:30938,57922:30973,57923:30964,57924:30983,57925:30994,57926:30993,57927:31001,57928:31020,57929:31019,57930:31040,57931:31072,57932:31063,57933:31071,57934:31066,57935:31061,57936:31059,57937:31098,57938:31103,57939:31114,57940:31133,57941:31143,57942:40779,57943:31146,57944:31150,57945:31155,57946:31161,57947:31162,57948:31177,57949:31189,57950:31207,57951:31212,57952:31201,57953:31203,57954:31240,57955:31245,57956:31256,57957:31257,57958:31264,57959:31263,57960:31104,57961:31281,57962:31291,57963:31294,57964:31287,57965:31299,57966:31319,57967:31305,57968:31329,57969:31330,57970:31337,57971:40861,57972:31344,57973:31353,57974:31357,57975:31368,57976:31383,57977:31381,57978:31384,57979:31382,57980:31401,57981:31432,57982:31408,57984:31414,57985:31429,57986:31428,57987:31423,57988:36995,57989:31431,57990:31434,57991:31437,57992:31439,57993:31445,57994:31443,57995:31449,57996:31450,57997:31453,57998:31457,57999:31458,58e3:31462,58001:31469,58002:31472,58003:31490,58004:31503,58005:31498,58006:31494,58007:31539,58008:31512,58009:31513,58010:31518,58011:31541,58012:31528,58013:31542,58014:31568,58015:31610,58016:31492,58017:31565,58018:31499,58019:31564,58020:31557,58021:31605,58022:31589,58023:31604,58024:31591,58025:31600,58026:31601,58027:31596,58028:31598,58029:31645,58030:31640,58031:31647,58032:31629,58033:31644,58034:31642,58035:31627,58036:31634,58037:31631,58038:31581,58039:31641,58040:31691,58041:31681,58042:31692,58043:31695,58044:31668,58045:31686,58046:31709,58047:31721,58048:31761,58049:31764,58050:31718,58051:31717,58052:31840,58053:31744,58054:31751,58055:31763,58056:31731,58057:31735,58058:31767,58059:31757,58060:31734,58061:31779,58062:31783,58063:31786,58064:31775,58065:31799,58066:31787,58067:31805,58068:31820,58069:31811,58070:31828,58071:31823,58072:31808,58073:31824,58074:31832,58075:31839,58076:31844,58077:31830,58078:31845,58079:31852,58080:31861,58081:31875,58082:31888,58083:31908,58084:31917,58085:31906,58086:31915,58087:31905,58088:31912,58089:31923,58090:31922,58091:31921,58092:31918,58093:31929,58094:31933,58095:31936,58096:31941,58097:31938,58098:31960,58099:31954,58100:31964,58101:31970,58102:39739,58103:31983,58104:31986,58105:31988,58106:31990,58107:31994,58108:32006,58176:32002,58177:32028,58178:32021,58179:32010,58180:32069,58181:32075,58182:32046,58183:32050,58184:32063,58185:32053,58186:32070,58187:32115,58188:32086,58189:32078,58190:32114,58191:32104,58192:32110,58193:32079,58194:32099,58195:32147,58196:32137,58197:32091,58198:32143,58199:32125,58200:32155,58201:32186,58202:32174,58203:32163,58204:32181,58205:32199,58206:32189,58207:32171,58208:32317,58209:32162,58210:32175,58211:32220,58212:32184,58213:32159,58214:32176,58215:32216,58216:32221,58217:32228,58218:32222,58219:32251,58220:32242,58221:32225,58222:32261,58223:32266,58224:32291,58225:32289,58226:32274,58227:32305,58228:32287,58229:32265,58230:32267,58231:32290,58232:32326,58233:32358,58234:32315,58235:32309,58236:32313,58237:32323,58238:32311,58240:32306,58241:32314,58242:32359,58243:32349,58244:32342,58245:32350,58246:32345,58247:32346,58248:32377,58249:32362,58250:32361,58251:32380,58252:32379,58253:32387,58254:32213,58255:32381,58256:36782,58257:32383,58258:32392,58259:32393,58260:32396,58261:32402,58262:32400,58263:32403,58264:32404,58265:32406,58266:32398,58267:32411,58268:32412,58269:32568,58270:32570,58271:32581,58272:32588,58273:32589,58274:32590,58275:32592,58276:32593,58277:32597,58278:32596,58279:32600,58280:32607,58281:32608,58282:32616,58283:32617,58284:32615,58285:32632,58286:32642,58287:32646,58288:32643,58289:32648,58290:32647,58291:32652,58292:32660,58293:32670,58294:32669,58295:32666,58296:32675,58297:32687,58298:32690,58299:32697,58300:32686,58301:32694,58302:32696,58303:35697,58304:32709,58305:32710,58306:32714,58307:32725,58308:32724,58309:32737,58310:32742,58311:32745,58312:32755,58313:32761,58314:39132,58315:32774,58316:32772,58317:32779,58318:32786,58319:32792,58320:32793,58321:32796,58322:32801,58323:32808,58324:32831,58325:32827,58326:32842,58327:32838,58328:32850,58329:32856,58330:32858,58331:32863,58332:32866,58333:32872,58334:32883,58335:32882,58336:32880,58337:32886,58338:32889,58339:32893,58340:32895,58341:32900,58342:32902,58343:32901,58344:32923,58345:32915,58346:32922,58347:32941,58348:20880,58349:32940,58350:32987,58351:32997,58352:32985,58353:32989,58354:32964,58355:32986,58356:32982,58357:33033,58358:33007,58359:33009,58360:33051,58361:33065,58362:33059,58363:33071,58364:33099,58432:38539,58433:33094,58434:33086,58435:33107,58436:33105,58437:33020,58438:33137,58439:33134,58440:33125,58441:33126,58442:33140,58443:33155,58444:33160,58445:33162,58446:33152,58447:33154,58448:33184,58449:33173,58450:33188,58451:33187,58452:33119,58453:33171,58454:33193,58455:33200,58456:33205,58457:33214,58458:33208,58459:33213,58460:33216,58461:33218,58462:33210,58463:33225,58464:33229,58465:33233,58466:33241,58467:33240,58468:33224,58469:33242,58470:33247,58471:33248,58472:33255,58473:33274,58474:33275,58475:33278,58476:33281,58477:33282,58478:33285,58479:33287,58480:33290,58481:33293,58482:33296,58483:33302,58484:33321,58485:33323,58486:33336,58487:33331,58488:33344,58489:33369,58490:33368,58491:33373,58492:33370,58493:33375,58494:33380,58496:33378,58497:33384,58498:33386,58499:33387,58500:33326,58501:33393,58502:33399,58503:33400,58504:33406,58505:33421,58506:33426,58507:33451,58508:33439,58509:33467,58510:33452,58511:33505,58512:33507,58513:33503,58514:33490,58515:33524,58516:33523,58517:33530,58518:33683,58519:33539,58520:33531,58521:33529,58522:33502,58523:33542,58524:33500,58525:33545,58526:33497,58527:33589,58528:33588,58529:33558,58530:33586,58531:33585,58532:33600,58533:33593,58534:33616,58535:33605,58536:33583,58537:33579,58538:33559,58539:33560,58540:33669,58541:33690,58542:33706,58543:33695,58544:33698,58545:33686,58546:33571,58547:33678,58548:33671,58549:33674,58550:33660,58551:33717,58552:33651,58553:33653,58554:33696,58555:33673,58556:33704,58557:33780,58558:33811,58559:33771,58560:33742,58561:33789,58562:33795,58563:33752,58564:33803,58565:33729,58566:33783,58567:33799,58568:33760,58569:33778,58570:33805,58571:33826,58572:33824,58573:33725,58574:33848,58575:34054,58576:33787,58577:33901,58578:33834,58579:33852,58580:34138,58581:33924,58582:33911,58583:33899,58584:33965,58585:33902,58586:33922,58587:33897,58588:33862,58589:33836,58590:33903,58591:33913,58592:33845,58593:33994,58594:33890,58595:33977,58596:33983,58597:33951,58598:34009,58599:33997,58600:33979,58601:34010,58602:34e3,58603:33985,58604:33990,58605:34006,58606:33953,58607:34081,58608:34047,58609:34036,58610:34071,58611:34072,58612:34092,58613:34079,58614:34069,58615:34068,58616:34044,58617:34112,58618:34147,58619:34136,58620:34120,58688:34113,58689:34306,58690:34123,58691:34133,58692:34176,58693:34212,58694:34184,58695:34193,58696:34186,58697:34216,58698:34157,58699:34196,58700:34203,58701:34282,58702:34183,58703:34204,58704:34167,58705:34174,58706:34192,58707:34249,58708:34234,58709:34255,58710:34233,58711:34256,58712:34261,58713:34269,58714:34277,58715:34268,58716:34297,58717:34314,58718:34323,58719:34315,58720:34302,58721:34298,58722:34310,58723:34338,58724:34330,58725:34352,58726:34367,58727:34381,58728:20053,58729:34388,58730:34399,58731:34407,58732:34417,58733:34451,58734:34467,58735:34473,58736:34474,58737:34443,58738:34444,58739:34486,58740:34479,58741:34500,58742:34502,58743:34480,58744:34505,58745:34851,58746:34475,58747:34516,58748:34526,58749:34537,58750:34540,58752:34527,58753:34523,58754:34543,58755:34578,58756:34566,58757:34568,58758:34560,58759:34563,58760:34555,58761:34577,58762:34569,58763:34573,58764:34553,58765:34570,58766:34612,58767:34623,58768:34615,58769:34619,58770:34597,58771:34601,58772:34586,58773:34656,58774:34655,58775:34680,58776:34636,58777:34638,58778:34676,58779:34647,58780:34664,58781:34670,58782:34649,58783:34643,58784:34659,58785:34666,58786:34821,58787:34722,58788:34719,58789:34690,58790:34735,58791:34763,58792:34749,58793:34752,58794:34768,58795:38614,58796:34731,58797:34756,58798:34739,58799:34759,58800:34758,58801:34747,58802:34799,58803:34802,58804:34784,58805:34831,58806:34829,58807:34814,58808:34806,58809:34807,58810:34830,58811:34770,58812:34833,58813:34838,58814:34837,58815:34850,58816:34849,58817:34865,58818:34870,58819:34873,58820:34855,58821:34875,58822:34884,58823:34882,58824:34898,58825:34905,58826:34910,58827:34914,58828:34923,58829:34945,58830:34942,58831:34974,58832:34933,58833:34941,58834:34997,58835:34930,58836:34946,58837:34967,58838:34962,58839:34990,58840:34969,58841:34978,58842:34957,58843:34980,58844:34992,58845:35007,58846:34993,58847:35011,58848:35012,58849:35028,58850:35032,58851:35033,58852:35037,58853:35065,58854:35074,58855:35068,58856:35060,58857:35048,58858:35058,58859:35076,58860:35084,58861:35082,58862:35091,58863:35139,58864:35102,58865:35109,58866:35114,58867:35115,58868:35137,58869:35140,58870:35131,58871:35126,58872:35128,58873:35148,58874:35101,58875:35168,58876:35166,58944:35174,58945:35172,58946:35181,58947:35178,58948:35183,58949:35188,58950:35191,58951:35198,58952:35203,58953:35208,58954:35210,58955:35219,58956:35224,58957:35233,58958:35241,58959:35238,58960:35244,58961:35247,58962:35250,58963:35258,58964:35261,58965:35263,58966:35264,58967:35290,58968:35292,58969:35293,58970:35303,58971:35316,58972:35320,58973:35331,58974:35350,58975:35344,58976:35340,58977:35355,58978:35357,58979:35365,58980:35382,58981:35393,58982:35419,58983:35410,58984:35398,58985:35400,58986:35452,58987:35437,58988:35436,58989:35426,58990:35461,58991:35458,58992:35460,58993:35496,58994:35489,58995:35473,58996:35493,58997:35494,58998:35482,58999:35491,59e3:35524,59001:35533,59002:35522,59003:35546,59004:35563,59005:35571,59006:35559,59008:35556,59009:35569,59010:35604,59011:35552,59012:35554,59013:35575,59014:35550,59015:35547,59016:35596,59017:35591,59018:35610,59019:35553,59020:35606,59021:35600,59022:35607,59023:35616,59024:35635,59025:38827,59026:35622,59027:35627,59028:35646,59029:35624,59030:35649,59031:35660,59032:35663,59033:35662,59034:35657,59035:35670,59036:35675,59037:35674,59038:35691,59039:35679,59040:35692,59041:35695,59042:35700,59043:35709,59044:35712,59045:35724,59046:35726,59047:35730,59048:35731,59049:35734,59050:35737,59051:35738,59052:35898,59053:35905,59054:35903,59055:35912,59056:35916,59057:35918,59058:35920,59059:35925,59060:35938,59061:35948,59062:35960,59063:35962,59064:35970,59065:35977,59066:35973,59067:35978,59068:35981,59069:35982,59070:35988,59071:35964,59072:35992,59073:25117,59074:36013,59075:36010,59076:36029,59077:36018,59078:36019,59079:36014,59080:36022,59081:36040,59082:36033,59083:36068,59084:36067,59085:36058,59086:36093,59087:36090,59088:36091,59089:36100,59090:36101,59091:36106,59092:36103,59093:36111,59094:36109,59095:36112,59096:40782,59097:36115,59098:36045,59099:36116,59100:36118,59101:36199,59102:36205,59103:36209,59104:36211,59105:36225,59106:36249,59107:36290,59108:36286,59109:36282,59110:36303,59111:36314,59112:36310,59113:36300,59114:36315,59115:36299,59116:36330,59117:36331,59118:36319,59119:36323,59120:36348,59121:36360,59122:36361,59123:36351,59124:36381,59125:36382,59126:36368,59127:36383,59128:36418,59129:36405,59130:36400,59131:36404,59132:36426,59200:36423,59201:36425,59202:36428,59203:36432,59204:36424,59205:36441,59206:36452,59207:36448,59208:36394,59209:36451,59210:36437,59211:36470,59212:36466,59213:36476,59214:36481,59215:36487,59216:36485,59217:36484,59218:36491,59219:36490,59220:36499,59221:36497,59222:36500,59223:36505,59224:36522,59225:36513,59226:36524,59227:36528,59228:36550,59229:36529,59230:36542,59231:36549,59232:36552,59233:36555,59234:36571,59235:36579,59236:36604,59237:36603,59238:36587,59239:36606,59240:36618,59241:36613,59242:36629,59243:36626,59244:36633,59245:36627,59246:36636,59247:36639,59248:36635,59249:36620,59250:36646,59251:36659,59252:36667,59253:36665,59254:36677,59255:36674,59256:36670,59257:36684,59258:36681,59259:36678,59260:36686,59261:36695,59262:36700,59264:36706,59265:36707,59266:36708,59267:36764,59268:36767,59269:36771,59270:36781,59271:36783,59272:36791,59273:36826,59274:36837,59275:36834,59276:36842,59277:36847,59278:36999,59279:36852,59280:36869,59281:36857,59282:36858,59283:36881,59284:36885,59285:36897,59286:36877,59287:36894,59288:36886,59289:36875,59290:36903,59291:36918,59292:36917,59293:36921,59294:36856,59295:36943,59296:36944,59297:36945,59298:36946,59299:36878,59300:36937,59301:36926,59302:36950,59303:36952,59304:36958,59305:36968,59306:36975,59307:36982,59308:38568,59309:36978,59310:36994,59311:36989,59312:36993,59313:36992,59314:37002,59315:37001,59316:37007,59317:37032,59318:37039,59319:37041,59320:37045,59321:37090,59322:37092,59323:25160,59324:37083,59325:37122,59326:37138,59327:37145,59328:37170,59329:37168,59330:37194,59331:37206,59332:37208,59333:37219,59334:37221,59335:37225,59336:37235,59337:37234,59338:37259,59339:37257,59340:37250,59341:37282,59342:37291,59343:37295,59344:37290,59345:37301,59346:37300,59347:37306,59348:37312,59349:37313,59350:37321,59351:37323,59352:37328,59353:37334,59354:37343,59355:37345,59356:37339,59357:37372,59358:37365,59359:37366,59360:37406,59361:37375,59362:37396,59363:37420,59364:37397,59365:37393,59366:37470,59367:37463,59368:37445,59369:37449,59370:37476,59371:37448,59372:37525,59373:37439,59374:37451,59375:37456,59376:37532,59377:37526,59378:37523,59379:37531,59380:37466,59381:37583,59382:37561,59383:37559,59384:37609,59385:37647,59386:37626,59387:37700,59388:37678,59456:37657,59457:37666,59458:37658,59459:37667,59460:37690,59461:37685,59462:37691,59463:37724,59464:37728,59465:37756,59466:37742,59467:37718,59468:37808,59469:37804,59470:37805,59471:37780,59472:37817,59473:37846,59474:37847,59475:37864,59476:37861,59477:37848,59478:37827,59479:37853,59480:37840,59481:37832,59482:37860,59483:37914,59484:37908,59485:37907,59486:37891,59487:37895,59488:37904,59489:37942,59490:37931,59491:37941,59492:37921,59493:37946,59494:37953,59495:37970,59496:37956,59497:37979,59498:37984,59499:37986,59500:37982,59501:37994,59502:37417,59503:38e3,59504:38005,59505:38007,59506:38013,59507:37978,59508:38012,59509:38014,59510:38017,59511:38015,59512:38274,59513:38279,59514:38282,59515:38292,59516:38294,59517:38296,59518:38297,59520:38304,59521:38312,59522:38311,59523:38317,59524:38332,59525:38331,59526:38329,59527:38334,59528:38346,59529:28662,59530:38339,59531:38349,59532:38348,59533:38357,59534:38356,59535:38358,59536:38364,59537:38369,59538:38373,59539:38370,59540:38433,59541:38440,59542:38446,59543:38447,59544:38466,59545:38476,59546:38479,59547:38475,59548:38519,59549:38492,59550:38494,59551:38493,59552:38495,59553:38502,59554:38514,59555:38508,59556:38541,59557:38552,59558:38549,59559:38551,59560:38570,59561:38567,59562:38577,59563:38578,59564:38576,59565:38580,59566:38582,59567:38584,59568:38585,59569:38606,59570:38603,59571:38601,59572:38605,59573:35149,59574:38620,59575:38669,59576:38613,59577:38649,59578:38660,59579:38662,59580:38664,59581:38675,59582:38670,59583:38673,59584:38671,59585:38678,59586:38681,59587:38692,59588:38698,59589:38704,59590:38713,59591:38717,59592:38718,59593:38724,59594:38726,59595:38728,59596:38722,59597:38729,59598:38748,59599:38752,59600:38756,59601:38758,59602:38760,59603:21202,59604:38763,59605:38769,59606:38777,59607:38789,59608:38780,59609:38785,59610:38778,59611:38790,59612:38795,59613:38799,59614:38800,59615:38812,59616:38824,59617:38822,59618:38819,59619:38835,59620:38836,59621:38851,59622:38854,59623:38856,59624:38859,59625:38876,59626:38893,59627:40783,59628:38898,59629:31455,59630:38902,59631:38901,59632:38927,59633:38924,59634:38968,59635:38948,59636:38945,59637:38967,59638:38973,59639:38982,59640:38991,59641:38987,59642:39019,59643:39023,59644:39024,59712:39025,59713:39028,59714:39027,59715:39082,59716:39087,59717:39089,59718:39094,59719:39108,59720:39107,59721:39110,59722:39145,59723:39147,59724:39171,59725:39177,59726:39186,59727:39188,59728:39192,59729:39201,59730:39197,59731:39198,59732:39204,59733:39200,59734:39212,59735:39214,59736:39229,59737:39230,59738:39234,59739:39241,59740:39237,59741:39248,59742:39243,59743:39249,59744:39250,59745:39244,59746:39253,59747:39319,59748:39320,59749:39333,59750:39341,59751:39342,59752:39356,59753:39391,59754:39387,59755:39389,59756:39384,59757:39377,59758:39405,59759:39406,59760:39409,59761:39410,59762:39419,59763:39416,59764:39425,59765:39439,59766:39429,59767:39394,59768:39449,59769:39467,59770:39479,59771:39493,59772:39490,59773:39488,59774:39491,59776:39486,59777:39509,59778:39501,59779:39515,59780:39511,59781:39519,59782:39522,59783:39525,59784:39524,59785:39529,59786:39531,59787:39530,59788:39597,59789:39600,59790:39612,59791:39616,59792:39631,59793:39633,59794:39635,59795:39636,59796:39646,59797:39647,59798:39650,59799:39651,59800:39654,59801:39663,59802:39659,59803:39662,59804:39668,59805:39665,59806:39671,59807:39675,59808:39686,59809:39704,59810:39706,59811:39711,59812:39714,59813:39715,59814:39717,59815:39719,59816:39720,59817:39721,59818:39722,59819:39726,59820:39727,59821:39730,59822:39748,59823:39747,59824:39759,59825:39757,59826:39758,59827:39761,59828:39768,59829:39796,59830:39827,59831:39811,59832:39825,59833:39830,59834:39831,59835:39839,59836:39840,59837:39848,59838:39860,59839:39872,59840:39882,59841:39865,59842:39878,59843:39887,59844:39889,59845:39890,59846:39907,59847:39906,59848:39908,59849:39892,59850:39905,59851:39994,59852:39922,59853:39921,59854:39920,59855:39957,59856:39956,59857:39945,59858:39955,59859:39948,59860:39942,59861:39944,59862:39954,59863:39946,59864:39940,59865:39982,59866:39963,59867:39973,59868:39972,59869:39969,59870:39984,59871:40007,59872:39986,59873:40006,59874:39998,59875:40026,59876:40032,59877:40039,59878:40054,59879:40056,59880:40167,59881:40172,59882:40176,59883:40201,59884:40200,59885:40171,59886:40195,59887:40198,59888:40234,59889:40230,59890:40367,59891:40227,59892:40223,59893:40260,59894:40213,59895:40210,59896:40257,59897:40255,59898:40254,59899:40262,59900:40264,59968:40285,59969:40286,59970:40292,59971:40273,59972:40272,59973:40281,59974:40306,59975:40329,59976:40327,59977:40363,59978:40303,59979:40314,59980:40346,59981:40356,59982:40361,59983:40370,59984:40388,59985:40385,59986:40379,59987:40376,59988:40378,59989:40390,59990:40399,59991:40386,59992:40409,59993:40403,59994:40440,59995:40422,59996:40429,59997:40431,59998:40445,59999:40474,6e4:40475,60001:40478,60002:40565,60003:40569,60004:40573,60005:40577,60006:40584,60007:40587,60008:40588,60009:40594,60010:40597,60011:40593,60012:40605,60013:40613,60014:40617,60015:40632,60016:40618,60017:40621,60018:38753,60019:40652,60020:40654,60021:40655,60022:40656,60023:40660,60024:40668,60025:40670,60026:40669,60027:40672,60028:40677,60029:40680,60030:40687,60032:40692,60033:40694,60034:40695,60035:40697,60036:40699,60037:40700,60038:40701,60039:40711,60040:40712,60041:30391,60042:40725,60043:40737,60044:40748,60045:40766,60046:40778,60047:40786,60048:40788,60049:40803,60050:40799,60051:40800,60052:40801,60053:40806,60054:40807,60055:40812,60056:40810,60057:40823,60058:40818,60059:40822,60060:40853,60061:40860,60062:40864,60063:22575,60064:27079,60065:36953,60066:29796,60067:20956,60068:29081,60736:32394,60737:35100,60738:37704,60739:37512,60740:34012,60741:20425,60742:28859,60743:26161,60744:26824,60745:37625,60746:26363,60747:24389,60748:20008,60749:20193,60750:20220,60751:20224,60752:20227,60753:20281,60754:20310,60755:20370,60756:20362,60757:20378,60758:20372,60759:20429,60760:20544,60761:20514,60762:20479,60763:20510,60764:20550,60765:20592,60766:20546,60767:20628,60768:20724,60769:20696,60770:20810,60771:20836,60772:20893,60773:20926,60774:20972,60775:21013,60776:21148,60777:21158,60778:21184,60779:21211,60780:21248,60781:21255,60782:21284,60783:21362,60784:21395,60785:21426,60786:21469,60787:64014,60788:21660,60789:21642,60790:21673,60791:21759,60792:21894,60793:22361,60794:22373,60795:22444,60796:22472,60797:22471,60798:64015,60800:64016,60801:22686,60802:22706,60803:22795,60804:22867,60805:22875,60806:22877,60807:22883,60808:22948,60809:22970,60810:23382,60811:23488,60812:29999,60813:23512,60814:23532,60815:23582,60816:23718,60817:23738,60818:23797,60819:23847,60820:23891,60821:64017,60822:23874,60823:23917,60824:23992,60825:23993,60826:24016,60827:24353,60828:24372,60829:24423,60830:24503,60831:24542,60832:24669,60833:24709,60834:24714,60835:24798,60836:24789,60837:24864,60838:24818,60839:24849,60840:24887,60841:24880,60842:24984,60843:25107,60844:25254,60845:25589,60846:25696,60847:25757,60848:25806,60849:25934,60850:26112,60851:26133,60852:26171,60853:26121,60854:26158,60855:26142,60856:26148,60857:26213,60858:26199,60859:26201,60860:64018,60861:26227,60862:26265,60863:26272,60864:26290,60865:26303,60866:26362,60867:26382,60868:63785,60869:26470,60870:26555,60871:26706,60872:26560,60873:26625,60874:26692,60875:26831,60876:64019,60877:26984,60878:64020,60879:27032,60880:27106,60881:27184,60882:27243,60883:27206,60884:27251,60885:27262,60886:27362,60887:27364,60888:27606,60889:27711,60890:27740,60891:27782,60892:27759,60893:27866,60894:27908,60895:28039,60896:28015,60897:28054,60898:28076,60899:28111,60900:28152,60901:28146,60902:28156,60903:28217,60904:28252,60905:28199,60906:28220,60907:28351,60908:28552,60909:28597,60910:28661,60911:28677,60912:28679,60913:28712,60914:28805,60915:28843,60916:28943,60917:28932,60918:29020,60919:28998,60920:28999,60921:64021,60922:29121,60923:29182,60924:29361,60992:29374,60993:29476,60994:64022,60995:29559,60996:29629,60997:29641,60998:29654,60999:29667,61e3:29650,61001:29703,61002:29685,61003:29734,61004:29738,61005:29737,61006:29742,61007:29794,61008:29833,61009:29855,61010:29953,61011:30063,61012:30338,61013:30364,61014:30366,61015:30363,61016:30374,61017:64023,61018:30534,61019:21167,61020:30753,61021:30798,61022:30820,61023:30842,61024:31024,61025:64024,61026:64025,61027:64026,61028:31124,61029:64027,61030:31131,61031:31441,61032:31463,61033:64028,61034:31467,61035:31646,61036:64029,61037:32072,61038:32092,61039:32183,61040:32160,61041:32214,61042:32338,61043:32583,61044:32673,61045:64030,61046:33537,61047:33634,61048:33663,61049:33735,61050:33782,61051:33864,61052:33972,61053:34131,61054:34137,61056:34155,61057:64031,61058:34224,61059:64032,61060:64033,61061:34823,61062:35061,61063:35346,61064:35383,61065:35449,61066:35495,61067:35518,61068:35551,61069:64034,61070:35574,61071:35667,61072:35711,61073:36080,61074:36084,61075:36114,61076:36214,61077:64035,61078:36559,61079:64036,61080:64037,61081:36967,61082:37086,61083:64038,61084:37141,61085:37159,61086:37338,61087:37335,61088:37342,61089:37357,61090:37358,61091:37348,61092:37349,61093:37382,61094:37392,61095:37386,61096:37434,61097:37440,61098:37436,61099:37454,61100:37465,61101:37457,61102:37433,61103:37479,61104:37543,61105:37495,61106:37496,61107:37607,61108:37591,61109:37593,61110:37584,61111:64039,61112:37589,61113:37600,61114:37587,61115:37669,61116:37665,61117:37627,61118:64040,61119:37662,61120:37631,61121:37661,61122:37634,61123:37744,61124:37719,61125:37796,61126:37830,61127:37854,61128:37880,61129:37937,61130:37957,61131:37960,61132:38290,61133:63964,61134:64041,61135:38557,61136:38575,61137:38707,61138:38715,61139:38723,61140:38733,61141:38735,61142:38737,61143:38741,61144:38999,61145:39013,61146:64042,61147:64043,61148:39207,61149:64044,61150:39326,61151:39502,61152:39641,61153:39644,61154:39797,61155:39794,61156:39823,61157:39857,61158:39867,61159:39936,61160:40304,61161:40299,61162:64045,61163:40473,61164:40657,61167:8560,61168:8561,61169:8562,61170:8563,61171:8564,61172:8565,61173:8566,61174:8567,61175:8568,61176:8569,61177:65506,61178:65508,61179:65287,61180:65282,61504:57344,61505:57345,61506:57346,61507:57347,61508:57348,61509:57349,61510:57350,61511:57351,61512:57352,61513:57353,61514:57354,61515:57355,61516:57356,61517:57357,61518:57358,61519:57359,61520:57360,61521:57361,61522:57362,61523:57363,61524:57364,61525:57365,61526:57366,61527:57367,61528:57368,61529:57369,61530:57370,61531:57371,61532:57372,61533:57373,61534:57374,61535:57375,61536:57376,61537:57377,61538:57378,61539:57379,61540:57380,61541:57381,61542:57382,61543:57383,61544:57384,61545:57385,61546:57386,61547:57387,61548:57388,61549:57389,61550:57390,61551:57391,61552:57392,61553:57393,61554:57394,61555:57395,61556:57396,61557:57397,61558:57398,61559:57399,61560:57400,61561:57401,61562:57402,61563:57403,61564:57404,61565:57405,61566:57406,61568:57407,61569:57408,61570:57409,61571:57410,61572:57411,61573:57412,61574:57413,61575:57414,61576:57415,61577:57416,61578:57417,61579:57418,61580:57419,61581:57420,61582:57421,61583:57422,61584:57423,61585:57424,61586:57425,61587:57426,61588:57427,61589:57428,61590:57429,61591:57430,61592:57431,61593:57432,61594:57433,61595:57434,61596:57435,61597:57436,61598:57437,61599:57438,61600:57439,61601:57440,61602:57441,61603:57442,61604:57443,61605:57444,61606:57445,61607:57446,61608:57447,61609:57448,61610:57449,61611:57450,61612:57451,61613:57452,61614:57453,61615:57454,61616:57455,61617:57456,61618:57457,61619:57458,61620:57459,61621:57460,61622:57461,61623:57462,61624:57463,61625:57464,61626:57465,61627:57466,61628:57467,61629:57468,61630:57469,61631:57470,61632:57471,61633:57472,61634:57473,61635:57474,61636:57475,61637:57476,61638:57477,61639:57478,61640:57479,61641:57480,61642:57481,61643:57482,61644:57483,61645:57484,61646:57485,61647:57486,61648:57487,61649:57488,61650:57489,61651:57490,61652:57491,61653:57492,61654:57493,61655:57494,61656:57495,61657:57496,61658:57497,61659:57498,61660:57499,61661:57500,61662:57501,61663:57502,61664:57503,61665:57504,61666:57505,61667:57506,61668:57507,61669:57508,61670:57509,61671:57510,61672:57511,61673:57512,61674:57513,61675:57514,61676:57515,61677:57516,61678:57517,61679:57518,61680:57519,61681:57520,61682:57521,61683:57522,61684:57523,61685:57524,61686:57525,61687:57526,61688:57527,61689:57528,61690:57529,61691:57530,61692:57531,61760:57532,61761:57533,61762:57534,61763:57535,61764:57536,61765:57537,61766:57538,61767:57539,61768:57540,61769:57541,61770:57542,61771:57543,61772:57544,61773:57545,61774:57546,61775:57547,61776:57548,61777:57549,61778:57550,61779:57551,61780:57552,61781:57553,61782:57554,61783:57555,61784:57556,61785:57557,61786:57558,61787:57559,61788:57560,61789:57561,61790:57562,61791:57563,61792:57564,61793:57565,61794:57566,61795:57567,61796:57568,61797:57569,61798:57570,61799:57571,61800:57572,61801:57573,61802:57574,61803:57575,61804:57576,61805:57577,61806:57578,61807:57579,61808:57580,61809:57581,61810:57582,61811:57583,61812:57584,61813:57585,61814:57586,61815:57587,61816:57588,61817:57589,61818:57590,61819:57591,61820:57592,61821:57593,61822:57594,61824:57595,61825:57596,61826:57597,61827:57598,61828:57599,61829:57600,61830:57601,61831:57602,61832:57603,61833:57604,61834:57605,61835:57606,61836:57607,61837:57608,61838:57609,61839:57610,61840:57611,61841:57612,61842:57613,61843:57614,61844:57615,61845:57616,61846:57617,61847:57618,61848:57619,61849:57620,61850:57621,61851:57622,61852:57623,61853:57624,61854:57625,61855:57626,61856:57627,61857:57628,61858:57629,61859:57630,61860:57631,61861:57632,61862:57633,61863:57634,61864:57635,61865:57636,61866:57637,61867:57638,61868:57639,61869:57640,61870:57641,61871:57642,61872:57643,61873:57644,61874:57645,61875:57646,61876:57647,61877:57648,61878:57649,61879:57650,61880:57651,61881:57652,61882:57653,61883:57654,61884:57655,61885:57656,61886:57657,61887:57658,61888:57659,61889:57660,61890:57661,61891:57662,61892:57663,61893:57664,61894:57665,61895:57666,61896:57667,61897:57668,61898:57669,61899:57670,61900:57671,61901:57672,61902:57673,61903:57674,61904:57675,61905:57676,61906:57677,61907:57678,61908:57679,61909:57680,61910:57681,61911:57682,61912:57683,61913:57684,61914:57685,61915:57686,61916:57687,61917:57688,61918:57689,61919:57690,61920:57691,61921:57692,61922:57693,61923:57694,61924:57695,61925:57696,61926:57697,61927:57698,61928:57699,61929:57700,61930:57701,61931:57702,61932:57703,61933:57704,61934:57705,61935:57706,61936:57707,61937:57708,61938:57709,61939:57710,61940:57711,61941:57712,61942:57713,61943:57714,61944:57715,61945:57716,61946:57717,61947:57718,61948:57719,62016:57720,62017:57721,62018:57722,62019:57723,62020:57724,62021:57725,62022:57726,62023:57727,62024:57728,62025:57729,62026:57730,62027:57731,62028:57732,62029:57733,62030:57734,62031:57735,62032:57736,62033:57737,62034:57738,62035:57739,62036:57740,62037:57741,62038:57742,62039:57743,62040:57744,62041:57745,62042:57746,62043:57747,62044:57748,62045:57749,62046:57750,62047:57751,62048:57752,62049:57753,62050:57754,62051:57755,62052:57756,62053:57757,62054:57758,62055:57759,62056:57760,62057:57761,62058:57762,62059:57763,62060:57764,62061:57765,62062:57766,62063:57767,62064:57768,62065:57769,62066:57770,62067:57771,62068:57772,62069:57773,62070:57774,62071:57775,62072:57776,62073:57777,62074:57778,62075:57779,62076:57780,62077:57781,62078:57782,62080:57783,62081:57784,62082:57785,62083:57786,62084:57787,62085:57788,62086:57789,62087:57790,62088:57791,62089:57792,62090:57793,62091:57794,62092:57795,62093:57796,62094:57797,62095:57798,62096:57799,62097:57800,62098:57801,62099:57802,62100:57803,62101:57804,62102:57805,62103:57806,62104:57807,62105:57808,62106:57809,62107:57810,62108:57811,62109:57812,62110:57813,62111:57814,62112:57815,62113:57816,62114:57817,62115:57818,62116:57819,62117:57820,62118:57821,62119:57822,62120:57823,62121:57824,62122:57825,62123:57826,62124:57827,62125:57828,62126:57829,62127:57830,62128:57831,62129:57832,62130:57833,62131:57834,62132:57835,62133:57836,62134:57837,62135:57838,62136:57839,62137:57840,62138:57841,62139:57842,62140:57843,62141:57844,62142:57845,62143:57846,62144:57847,62145:57848,62146:57849,62147:57850,62148:57851,62149:57852,62150:57853,62151:57854,62152:57855,62153:57856,62154:57857,62155:57858,62156:57859,62157:57860,62158:57861,62159:57862,62160:57863,62161:57864,62162:57865,62163:57866,62164:57867,62165:57868,62166:57869,62167:57870,62168:57871,62169:57872,62170:57873,62171:57874,62172:57875,62173:57876,62174:57877,62175:57878,62176:57879,62177:57880,62178:57881,62179:57882,62180:57883,62181:57884,62182:57885,62183:57886,62184:57887,62185:57888,62186:57889,62187:57890,62188:57891,62189:57892,62190:57893,62191:57894,62192:57895,62193:57896,62194:57897,62195:57898,62196:57899,62197:57900,62198:57901,62199:57902,62200:57903,62201:57904,62202:57905,62203:57906,62204:57907,62272:57908,62273:57909,62274:57910,62275:57911,62276:57912,62277:57913,62278:57914,62279:57915,62280:57916,62281:57917,62282:57918,62283:57919,62284:57920,62285:57921,62286:57922,62287:57923,62288:57924,62289:57925,62290:57926,62291:57927,62292:57928,62293:57929,62294:57930,62295:57931,62296:57932,62297:57933,62298:57934,62299:57935,62300:57936,62301:57937,62302:57938,62303:57939,62304:57940,62305:57941,62306:57942,62307:57943,62308:57944,62309:57945,62310:57946,62311:57947,62312:57948,62313:57949,62314:57950,62315:57951,62316:57952,62317:57953,62318:57954,62319:57955,62320:57956,62321:57957,62322:57958,62323:57959,62324:57960,62325:57961,62326:57962,62327:57963,62328:57964,62329:57965,62330:57966,62331:57967,62332:57968,62333:57969,62334:57970,62336:57971,62337:57972,62338:57973,62339:57974,62340:57975,62341:57976,62342:57977,62343:57978,62344:57979,62345:57980,62346:57981,62347:57982,62348:57983,62349:57984,62350:57985,62351:57986,62352:57987,62353:57988,62354:57989,62355:57990,62356:57991,62357:57992,62358:57993,62359:57994,62360:57995,62361:57996,62362:57997,62363:57998,62364:57999,62365:58e3,62366:58001,62367:58002,62368:58003,62369:58004,62370:58005,62371:58006,62372:58007,62373:58008,62374:58009,62375:58010,62376:58011,62377:58012,62378:58013,62379:58014,62380:58015,62381:58016,62382:58017,62383:58018,62384:58019,62385:58020,62386:58021,62387:58022,62388:58023,62389:58024,62390:58025,62391:58026,62392:58027,62393:58028,62394:58029,62395:58030,62396:58031,62397:58032,62398:58033,62399:58034,62400:58035,62401:58036,62402:58037,62403:58038,62404:58039,62405:58040,62406:58041,62407:58042,62408:58043,62409:58044,62410:58045,62411:58046,62412:58047,62413:58048,62414:58049,62415:58050,62416:58051,62417:58052,62418:58053,62419:58054,62420:58055,62421:58056,62422:58057,62423:58058,62424:58059,62425:58060,62426:58061,62427:58062,62428:58063,62429:58064,62430:58065,62431:58066,62432:58067,62433:58068,62434:58069,62435:58070,62436:58071,62437:58072,62438:58073,62439:58074,62440:58075,62441:58076,62442:58077,62443:58078,62444:58079,62445:58080,62446:58081,62447:58082,62448:58083,62449:58084,62450:58085,62451:58086,62452:58087,62453:58088,62454:58089,62455:58090,62456:58091,62457:58092,62458:58093,62459:58094,62460:58095,62528:58096,62529:58097,62530:58098,62531:58099,62532:58100,62533:58101,62534:58102,62535:58103,62536:58104,62537:58105,62538:58106,62539:58107,62540:58108,62541:58109,62542:58110,62543:58111,62544:58112,62545:58113,62546:58114,62547:58115,62548:58116,62549:58117,62550:58118,62551:58119,62552:58120,62553:58121,62554:58122,62555:58123,62556:58124,62557:58125,62558:58126,62559:58127,62560:58128,62561:58129,62562:58130,62563:58131,62564:58132,62565:58133,62566:58134,62567:58135,62568:58136,62569:58137,62570:58138,62571:58139,62572:58140,62573:58141,62574:58142,62575:58143,62576:58144,62577:58145,62578:58146,62579:58147,62580:58148,62581:58149,62582:58150,62583:58151,62584:58152,62585:58153,62586:58154,62587:58155,62588:58156,62589:58157,62590:58158,62592:58159,62593:58160,62594:58161,62595:58162,62596:58163,62597:58164,62598:58165,62599:58166,62600:58167,62601:58168,62602:58169,62603:58170,62604:58171,62605:58172,62606:58173,62607:58174,62608:58175,62609:58176,62610:58177,62611:58178,62612:58179,62613:58180,62614:58181,62615:58182,62616:58183,62617:58184,62618:58185,62619:58186,62620:58187,62621:58188,62622:58189,62623:58190,62624:58191,62625:58192,62626:58193,62627:58194,62628:58195,62629:58196,62630:58197,62631:58198,62632:58199,62633:58200,62634:58201,62635:58202,62636:58203,62637:58204,62638:58205,62639:58206,62640:58207,62641:58208,62642:58209,62643:58210,62644:58211,62645:58212,62646:58213,62647:58214,62648:58215,62649:58216,62650:58217,62651:58218,62652:58219,62653:58220,62654:58221,62655:58222,62656:58223,62657:58224,62658:58225,62659:58226,62660:58227,62661:58228,62662:58229,62663:58230,62664:58231,62665:58232,62666:58233,62667:58234,62668:58235,62669:58236,62670:58237,62671:58238,62672:58239,62673:58240,62674:58241,62675:58242,62676:58243,62677:58244,62678:58245,62679:58246,62680:58247,62681:58248,62682:58249,62683:58250,62684:58251,62685:58252,62686:58253,62687:58254,62688:58255,62689:58256,62690:58257,62691:58258,62692:58259,62693:58260,62694:58261,62695:58262,62696:58263,62697:58264,62698:58265,62699:58266,62700:58267,62701:58268,62702:58269,62703:58270,62704:58271,62705:58272,62706:58273,62707:58274,62708:58275,62709:58276,62710:58277,62711:58278,62712:58279,62713:58280,62714:58281,62715:58282,62716:58283,62784:58284,62785:58285,62786:58286,62787:58287,62788:58288,62789:58289,62790:58290,62791:58291,62792:58292,62793:58293,62794:58294,62795:58295,62796:58296,62797:58297,62798:58298,62799:58299,62800:58300,62801:58301,62802:58302,62803:58303,62804:58304,62805:58305,62806:58306,62807:58307,62808:58308,62809:58309,62810:58310,62811:58311,62812:58312,62813:58313,62814:58314,62815:58315,62816:58316,62817:58317,62818:58318,62819:58319,62820:58320,62821:58321,62822:58322,62823:58323,62824:58324,62825:58325,62826:58326,62827:58327,62828:58328,62829:58329,62830:58330,62831:58331,62832:58332,62833:58333,62834:58334,62835:58335,62836:58336,62837:58337,62838:58338,62839:58339,62840:58340,62841:58341,62842:58342,62843:58343,62844:58344,62845:58345,62846:58346,62848:58347,62849:58348,62850:58349,62851:58350,62852:58351,62853:58352,62854:58353,62855:58354,62856:58355,62857:58356,62858:58357,62859:58358,62860:58359,62861:58360,62862:58361,62863:58362,62864:58363,62865:58364,62866:58365,62867:58366,62868:58367,62869:58368,62870:58369,62871:58370,62872:58371,62873:58372,62874:58373,62875:58374,62876:58375,62877:58376,62878:58377,62879:58378,62880:58379,62881:58380,62882:58381,62883:58382,62884:58383,62885:58384,62886:58385,62887:58386,62888:58387,62889:58388,62890:58389,62891:58390,62892:58391,62893:58392,62894:58393,62895:58394,62896:58395,62897:58396,62898:58397,62899:58398,62900:58399,62901:58400,62902:58401,62903:58402,62904:58403,62905:58404,62906:58405,62907:58406,62908:58407,62909:58408,62910:58409,62911:58410,62912:58411,62913:58412,62914:58413,62915:58414,62916:58415,62917:58416,62918:58417,62919:58418,62920:58419,62921:58420,62922:58421,62923:58422,62924:58423,62925:58424,62926:58425,62927:58426,62928:58427,62929:58428,62930:58429,62931:58430,62932:58431,62933:58432,62934:58433,62935:58434,62936:58435,62937:58436,62938:58437,62939:58438,62940:58439,62941:58440,62942:58441,62943:58442,62944:58443,62945:58444,62946:58445,62947:58446,62948:58447,62949:58448,62950:58449,62951:58450,62952:58451,62953:58452,62954:58453,62955:58454,62956:58455,62957:58456,62958:58457,62959:58458,62960:58459,62961:58460,62962:58461,62963:58462,62964:58463,62965:58464,62966:58465,62967:58466,62968:58467,62969:58468,62970:58469,62971:58470,62972:58471,63040:58472,63041:58473,63042:58474,63043:58475,63044:58476,63045:58477,63046:58478,63047:58479,63048:58480,63049:58481,63050:58482,63051:58483,63052:58484,63053:58485,63054:58486,63055:58487,63056:58488,63057:58489,63058:58490,63059:58491,63060:58492,63061:58493,63062:58494,63063:58495,63064:58496,63065:58497,63066:58498,63067:58499,63068:58500,63069:58501,63070:58502,63071:58503,63072:58504,63073:58505,63074:58506,63075:58507,63076:58508,63077:58509,63078:58510,63079:58511,63080:58512,63081:58513,63082:58514,63083:58515,63084:58516,63085:58517,63086:58518,63087:58519,63088:58520,63089:58521,63090:58522,63091:58523,63092:58524,63093:58525,63094:58526,63095:58527,63096:58528,63097:58529,63098:58530,63099:58531,63100:58532,63101:58533,63102:58534,63104:58535,63105:58536,63106:58537,63107:58538,63108:58539,63109:58540,63110:58541,63111:58542,63112:58543,63113:58544,63114:58545,63115:58546,63116:58547,63117:58548,63118:58549,63119:58550,63120:58551,63121:58552,63122:58553,63123:58554,63124:58555,63125:58556,63126:58557,63127:58558,63128:58559,63129:58560,63130:58561,63131:58562,63132:58563,63133:58564,63134:58565,63135:58566,63136:58567,63137:58568,63138:58569,63139:58570,63140:58571,63141:58572,63142:58573,63143:58574,63144:58575,63145:58576,63146:58577,63147:58578,63148:58579,63149:58580,63150:58581,63151:58582,63152:58583,63153:58584,63154:58585,63155:58586,63156:58587,63157:58588,63158:58589,63159:58590,63160:58591,63161:58592,63162:58593,63163:58594,63164:58595,63165:58596,63166:58597,63167:58598,63168:58599,63169:58600,63170:58601,63171:58602,63172:58603,63173:58604,63174:58605,63175:58606,63176:58607,63177:58608,63178:58609,63179:58610,63180:58611,63181:58612,63182:58613,63183:58614,63184:58615,63185:58616,63186:58617,63187:58618,63188:58619,63189:58620,63190:58621,63191:58622,63192:58623,63193:58624,63194:58625,63195:58626,63196:58627,63197:58628,63198:58629,63199:58630,63200:58631,63201:58632,63202:58633,63203:58634,63204:58635,63205:58636,63206:58637,63207:58638,63208:58639,63209:58640,63210:58641,63211:58642,63212:58643,63213:58644,63214:58645,63215:58646,63216:58647,63217:58648,63218:58649,63219:58650,63220:58651,63221:58652,63222:58653,63223:58654,63224:58655,63225:58656,63226:58657,63227:58658,63228:58659,63296:58660,63297:58661,63298:58662,63299:58663,63300:58664,63301:58665,63302:58666,63303:58667,63304:58668,63305:58669,63306:58670,63307:58671,63308:58672,63309:58673,63310:58674,63311:58675,63312:58676,63313:58677,63314:58678,63315:58679,63316:58680,63317:58681,63318:58682,63319:58683,63320:58684,63321:58685,63322:58686,63323:58687,63324:58688,63325:58689,63326:58690,63327:58691,63328:58692,63329:58693,63330:58694,63331:58695,63332:58696,63333:58697,63334:58698,63335:58699,63336:58700,63337:58701,63338:58702,63339:58703,63340:58704,63341:58705,63342:58706,63343:58707,63344:58708,63345:58709,63346:58710,63347:58711,63348:58712,63349:58713,63350:58714,63351:58715,63352:58716,63353:58717,63354:58718,63355:58719,63356:58720,63357:58721,63358:58722,63360:58723,63361:58724,63362:58725,63363:58726,63364:58727,63365:58728,63366:58729,63367:58730,63368:58731,63369:58732,63370:58733,63371:58734,63372:58735,63373:58736,63374:58737,63375:58738,63376:58739,63377:58740,63378:58741,63379:58742,63380:58743,63381:58744,63382:58745,63383:58746,63384:58747,63385:58748,63386:58749,63387:58750,63388:58751,63389:58752,63390:58753,63391:58754,63392:58755,63393:58756,63394:58757,63395:58758,63396:58759,63397:58760,63398:58761,63399:58762,63400:58763,63401:58764,63402:58765,63403:58766,63404:58767,63405:58768,63406:58769,63407:58770,63408:58771,63409:58772,63410:58773,63411:58774,63412:58775,63413:58776,63414:58777,63415:58778,63416:58779,63417:58780,63418:58781,63419:58782,63420:58783,63421:58784,63422:58785,63423:58786,63424:58787,63425:58788,63426:58789,63427:58790,63428:58791,63429:58792,63430:58793,63431:58794,63432:58795,63433:58796,63434:58797,63435:58798,63436:58799,63437:58800,63438:58801,63439:58802,63440:58803,63441:58804,63442:58805,63443:58806,63444:58807,63445:58808,63446:58809,63447:58810,63448:58811,63449:58812,63450:58813,63451:58814,63452:58815,63453:58816,63454:58817,63455:58818,63456:58819,63457:58820,63458:58821,63459:58822,63460:58823,63461:58824,63462:58825,63463:58826,63464:58827,63465:58828,63466:58829,63467:58830,63468:58831,63469:58832,63470:58833,63471:58834,63472:58835,63473:58836,63474:58837,63475:58838,63476:58839,63477:58840,63478:58841,63479:58842,63480:58843,63481:58844,63482:58845,63483:58846,63484:58847,63552:58848,63553:58849,63554:58850,63555:58851,63556:58852,63557:58853,63558:58854,63559:58855,63560:58856,63561:58857,63562:58858,63563:58859,63564:58860,63565:58861,63566:58862,63567:58863,63568:58864,63569:58865,63570:58866,63571:58867,63572:58868,63573:58869,63574:58870,63575:58871,63576:58872,63577:58873,63578:58874,63579:58875,63580:58876,63581:58877,63582:58878,63583:58879,63584:58880,63585:58881,63586:58882,63587:58883,63588:58884,63589:58885,63590:58886,63591:58887,63592:58888,63593:58889,63594:58890,63595:58891,63596:58892,63597:58893,63598:58894,63599:58895,63600:58896,63601:58897,63602:58898,63603:58899,63604:58900,63605:58901,63606:58902,63607:58903,63608:58904,63609:58905,63610:58906,63611:58907,63612:58908,63613:58909,63614:58910,63616:58911,63617:58912,63618:58913,63619:58914,63620:58915,63621:58916,63622:58917,63623:58918,63624:58919,63625:58920,63626:58921,63627:58922,63628:58923,63629:58924,63630:58925,63631:58926,63632:58927,63633:58928,63634:58929,63635:58930,63636:58931,63637:58932,63638:58933,63639:58934,63640:58935,63641:58936,63642:58937,63643:58938,63644:58939,63645:58940,63646:58941,63647:58942,63648:58943,63649:58944,63650:58945,63651:58946,63652:58947,63653:58948,63654:58949,63655:58950,63656:58951,63657:58952,63658:58953,63659:58954,63660:58955,63661:58956,63662:58957,63663:58958,63664:58959,63665:58960,63666:58961,63667:58962,63668:58963,63669:58964,63670:58965,63671:58966,63672:58967,63673:58968,63674:58969,63675:58970,63676:58971,63677:58972,63678:58973,63679:58974,63680:58975,63681:58976,63682:58977,63683:58978,63684:58979,63685:58980,63686:58981,63687:58982,63688:58983,63689:58984,63690:58985,63691:58986,63692:58987,63693:58988,63694:58989,63695:58990,63696:58991,63697:58992,63698:58993,63699:58994,63700:58995,63701:58996,63702:58997,63703:58998,63704:58999,63705:59e3,63706:59001,63707:59002,63708:59003,63709:59004,63710:59005,63711:59006,63712:59007,63713:59008,63714:59009,63715:59010,63716:59011,63717:59012,63718:59013,63719:59014,63720:59015,63721:59016,63722:59017,63723:59018,63724:59019,63725:59020,63726:59021,63727:59022,63728:59023,63729:59024,63730:59025,63731:59026,63732:59027,63733:59028,63734:59029,63735:59030,63736:59031,63737:59032,63738:59033,63739:59034,63740:59035,64064:8560,64065:8561,64066:8562,64067:8563,64068:8564,64069:8565,64070:8566,64071:8567,64072:8568,64073:8569,64074:8544,64075:8545,64076:8546,64077:8547,64078:8548,64079:8549,64080:8550,64081:8551,64082:8552,64083:8553,64084:65506,64085:65508,64086:65287,64087:65282,64088:12849,64089:8470,64090:8481,64091:8757,64092:32394,64093:35100,64094:37704,64095:37512,64096:34012,64097:20425,64098:28859,64099:26161,64100:26824,64101:37625,64102:26363,64103:24389,64104:20008,64105:20193,64106:20220,64107:20224,64108:20227,64109:20281,64110:20310,64111:20370,64112:20362,64113:20378,64114:20372,64115:20429,64116:20544,64117:20514,64118:20479,64119:20510,64120:20550,64121:20592,64122:20546,64123:20628,64124:20724,64125:20696,64126:20810,64128:20836,64129:20893,64130:20926,64131:20972,64132:21013,64133:21148,64134:21158,64135:21184,64136:21211,64137:21248,64138:21255,64139:21284,64140:21362,64141:21395,64142:21426,64143:21469,64144:64014,64145:21660,64146:21642,64147:21673,64148:21759,64149:21894,64150:22361,64151:22373,64152:22444,64153:22472,64154:22471,64155:64015,64156:64016,64157:22686,64158:22706,64159:22795,64160:22867,64161:22875,64162:22877,64163:22883,64164:22948,64165:22970,64166:23382,64167:23488,64168:29999,64169:23512,64170:23532,64171:23582,64172:23718,64173:23738,64174:23797,64175:23847,64176:23891,64177:64017,64178:23874,64179:23917,64180:23992,64181:23993,64182:24016,64183:24353,64184:24372,64185:24423,64186:24503,64187:24542,64188:24669,64189:24709,64190:24714,64191:24798,64192:24789,64193:24864,64194:24818,64195:24849,64196:24887,64197:24880,64198:24984,64199:25107,64200:25254,64201:25589,64202:25696,64203:25757,64204:25806,64205:25934,64206:26112,64207:26133,64208:26171,64209:26121,64210:26158,64211:26142,64212:26148,64213:26213,64214:26199,64215:26201,64216:64018,64217:26227,64218:26265,64219:26272,64220:26290,64221:26303,64222:26362,64223:26382,64224:63785,64225:26470,64226:26555,64227:26706,64228:26560,64229:26625,64230:26692,64231:26831,64232:64019,64233:26984,64234:64020,64235:27032,64236:27106,64237:27184,64238:27243,64239:27206,64240:27251,64241:27262,64242:27362,64243:27364,64244:27606,64245:27711,64246:27740,64247:27782,64248:27759,64249:27866,64250:27908,64251:28039,64252:28015,64320:28054,64321:28076,64322:28111,64323:28152,64324:28146,64325:28156,64326:28217,64327:28252,64328:28199,64329:28220,64330:28351,64331:28552,64332:28597,64333:28661,64334:28677,64335:28679,64336:28712,64337:28805,64338:28843,64339:28943,64340:28932,64341:29020,64342:28998,64343:28999,64344:64021,64345:29121,64346:29182,64347:29361,64348:29374,64349:29476,64350:64022,64351:29559,64352:29629,64353:29641,64354:29654,64355:29667,64356:29650,64357:29703,64358:29685,64359:29734,64360:29738,64361:29737,64362:29742,64363:29794,64364:29833,64365:29855,64366:29953,64367:30063,64368:30338,64369:30364,64370:30366,64371:30363,64372:30374,64373:64023,64374:30534,64375:21167,64376:30753,64377:30798,64378:30820,64379:30842,64380:31024,64381:64024,64382:64025,64384:64026,64385:31124,64386:64027,64387:31131,64388:31441,64389:31463,64390:64028,64391:31467,64392:31646,64393:64029,64394:32072,64395:32092,64396:32183,64397:32160,64398:32214,64399:32338,64400:32583,64401:32673,64402:64030,64403:33537,64404:33634,64405:33663,64406:33735,64407:33782,64408:33864,64409:33972,64410:34131,64411:34137,64412:34155,64413:64031,64414:34224,64415:64032,64416:64033,64417:34823,64418:35061,64419:35346,64420:35383,64421:35449,64422:35495,64423:35518,64424:35551,64425:64034,64426:35574,64427:35667,64428:35711,64429:36080,64430:36084,64431:36114,64432:36214,64433:64035,64434:36559,64435:64036,64436:64037,64437:36967,64438:37086,64439:64038,64440:37141,64441:37159,64442:37338,64443:37335,64444:37342,64445:37357,64446:37358,64447:37348,64448:37349,64449:37382,64450:37392,64451:37386,64452:37434,64453:37440,64454:37436,64455:37454,64456:37465,64457:37457,64458:37433,64459:37479,64460:37543,64461:37495,64462:37496,64463:37607,64464:37591,64465:37593,64466:37584,64467:64039,64468:37589,64469:37600,64470:37587,64471:37669,64472:37665,64473:37627,64474:64040,64475:37662,64476:37631,64477:37661,64478:37634,64479:37744,64480:37719,64481:37796,64482:37830,64483:37854,64484:37880,64485:37937,64486:37957,64487:37960,64488:38290,64489:63964,64490:64041,64491:38557,64492:38575,64493:38707,64494:38715,64495:38723,64496:38733,64497:38735,64498:38737,64499:38741,64500:38999,64501:39013,64502:64042,64503:64043,64504:39207,64505:64044,64506:39326,64507:39502,64508:39641,64576:39644,64577:39797,64578:39794,64579:39823,64580:39857,64581:39867,64582:39936,64583:40304,64584:40299,64585:64045,64586:40473,64587:40657}}s2u(e){for(var t=this.s2uTable,n="",r=0;r=0&&i<=126||i>=161&&i<=223)&&r0;){var n=this.getUint8();if(e--,0===n)break;t+=String.fromCharCode(n)}for(;e>0;)this.getUint8(),e--;return t}getSjisStringsAsUnicode(e){for(var t=[];e>0;){var n=this.getUint8();if(e--,0===n)break;t.push(n)}for(;e>0;)this.getUint8(),e--;return this.encoder.s2u(new Uint8Array(t))}getUnicodeStrings(e){for(var t="";e>0;){var n=this.getUint16();if(e-=2,0===n)break;t+=String.fromCharCode(n)}for(;e>0;)this.getUint8(),e--;return t}getTextBuffer(){var e=this.getUint32();return this.getUnicodeStrings(e)}}class i{leftToRightVector3(e){e[2]=-e[2]}leftToRightQuaternion(e){e[0]=-e[0],e[1]=-e[1]}leftToRightEuler(e){e[0]=-e[0],e[1]=-e[1]}leftToRightIndexOrder(e){var t=e[2];e[2]=e[0],e[0]=t}leftToRightVector3Range(e,t){var n=-t[2];t[2]=-e[2],e[2]=n}leftToRightEulerRange(e,t){var n=-t[0],r=-t[1];t[0]=-e[0],t[1]=-e[1],e[0]=n,e[1]=r}}t.CharsetEncoder=n,t.Parser=class{constructor(){}parsePmd(e,t){var n={},i=new r(e);n.metadata={},n.metadata.format="pmd",n.metadata.coordinateSystem="left";var s;return function(){var e=n.metadata;if(e.magic=i.getChars(3),"Pmd"!==e.magic)throw"PMD file magic is not Pmd, but "+e.magic;e.version=i.getFloat32(),e.modelName=i.getSjisStringsAsUnicode(20),e.comment=i.getSjisStringsAsUnicode(256)}(),function(){var e,t=n.metadata;t.vertexCount=i.getUint32(),n.vertices=[];for(var r=0;r0&&(s.englishModelName=i.getSjisStringsAsUnicode(20),s.englishComment=i.getSjisStringsAsUnicode(256)),function(){var e=n.metadata;if(0!==e.englishCompatibility){n.englishBoneNames=[];for(var t=0;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const{parseBuffer:n}=(()=>{var e=0,n=-3;function r(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function i(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new r,this.dtree=new r}var s=new r,a=new r,o=new Uint8Array(30),l=new Uint16Array(30),c=new Uint8Array(30),h=new Uint16Array(30),u=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new r,p=new Uint8Array(320);function f(e,t,n,r){var i,s;for(i=0;i>>=1,t}function v(e,t,n){if(!t)return n;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,r+n}function y(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>=1,++i,n+=t.table[i],r-=t.table[i]}while(r>=0);return e.tag=s,e.bitcount-=i,t.trans[n+r]}function x(e,t,n){var r,i,s,a,o,l;for(r=v(e,5,257),i=v(e,5,1),s=v(e,4,4),a=0;a<19;++a)p[a]=0;for(a=0;a8;)t.sourceIndex--,t.bitcount-=8;if((r=256*(r=t.source[t.sourceIndex+1])+t.source[t.sourceIndex])!==(65535&~(256*t.source[t.sourceIndex+3]+t.source[t.sourceIndex+2])))return n;for(t.sourceIndex+=4,i=r;i;--i)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,e}!function(e,t){var n;for(n=0;n<7;++n)e.table[n]=0;for(e.table[7]=24,e.table[8]=152,e.table[9]=112,n=0;n<24;++n)e.trans[n]=256+n;for(n=0;n<144;++n)e.trans[24+n]=n;for(n=0;n<8;++n)e.trans[168+n]=280+n;for(n=0;n<112;++n)e.trans[176+n]=144+n;for(n=0;n<5;++n)t.table[n]=0;for(t.table[5]=32,n=0;n<32;++n)t.trans[n]=n}(s,a),f(o,l,4,3),f(c,h,2,1),o[28]=0,l[28]=258;var _=function(t,r){var o,l,c=new i(t,r);do{switch(o=A(c),v(c,2,0)){case 0:l=E(c);break;case 1:l=b(c,s,a);break;case 2:x(c,c.ltree,c.dtree),l=b(c,c.ltree,c.dtree);break;default:l=n}if(l!==e)throw new Error("Data error")}while(!o);return c.destLenthis.x2&&(this.x2=e)),"number"==typeof t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))},w.prototype.addX=function(e){this.addPoint(e,null)},w.prototype.addY=function(e){this.addPoint(null,e)},w.prototype.addBezier=function(e,t,n,r,i,s,a,o){var l=[e,t],c=[n,r],h=[i,s],u=[a,o];this.addPoint(e,t),this.addPoint(a,o);for(var d=0;d<=1;d++){var p=6*l[d]-12*c[d]+6*h[d],f=-3*l[d]+9*c[d]-9*h[d]+3*u[d],m=3*c[d]-3*l[d];if(0!==f){var g=Math.pow(p,2)-4*m*f;if(!(g<0)){var A=(-p+Math.sqrt(g))/(2*f);0=0&&r>0&&(n+=" "),n+=t(i)}return n}e=void 0!==e?e:2;for(var r="",i=0;i=0&&e<=255,"Byte value should be between 0 and 255."),[e]},D.BYTE=L(1),P.CHAR=function(e){return[e.charCodeAt(0)]},D.CHAR=L(1),P.CHARARRAY=function(e){void 0===e&&(e="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],n=0;n>8&255,255&e]},D.USHORT=L(2),P.SHORT=function(e){return e>=32768&&(e=-(65536-e)),[e>>8&255,255&e]},D.SHORT=L(2),P.UINT24=function(e){return[e>>16&255,e>>8&255,255&e]},D.UINT24=L(3),P.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},D.ULONG=L(4),P.LONG=function(e){return e>=B&&(e=-(2*B-e)),[e>>24&255,e>>16&255,e>>8&255,255&e]},D.LONG=L(4),P.FIXED=P.ULONG,D.FIXED=D.ULONG,P.FWORD=P.SHORT,D.FWORD=D.SHORT,P.UFWORD=P.USHORT,D.UFWORD=D.USHORT,P.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,255&e]},D.LONGDATETIME=L(8),P.TAG=function(e){return I.argument(4===e.length,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]},D.TAG=L(4),P.Card8=P.BYTE,D.Card8=D.BYTE,P.Card16=P.USHORT,D.Card16=D.USHORT,P.OffSize=P.BYTE,D.OffSize=D.BYTE,P.SID=P.USHORT,D.SID=D.USHORT,P.NUMBER=function(e){return e>=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?P.NUMBER16(e):P.NUMBER32(e)},D.NUMBER=function(e){return P.NUMBER(e).length},P.NUMBER16=function(e){return[28,e>>8&255,255&e]},D.NUMBER16=L(3),P.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,255&e]},D.NUMBER32=L(5),P.REAL=function(e){var t=e.toString(),n=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(n){var r=parseFloat("1e"+((n[2]?+n[2]:0)+n[1].length));t=(Math.round(e*r)/r).toString()}for(var i="",s=0,a=t.length;s>8&255,t[t.length]=255&r}return t},D.UTF16=function(e){return 2*e.length};var F={"x-mac-croatian":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\u0160\u2122\xb4\xa8\u2260\u017d\xd8\u221e\xb1\u2264\u2265\u2206\xb5\u2202\u2211\u220f\u0161\u222b\xaa\xba\u03a9\u017e\xf8\xbf\xa1\xac\u221a\u0192\u2248\u0106\xab\u010c\u2026 \xc0\xc3\xd5\u0152\u0153\u0110\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\uf8ff\xa9\u2044\u20ac\u2039\u203a\xc6\xbb\u2013\xb7\u201a\u201e\u2030\xc2\u0107\xc1\u010d\xc8\xcd\xce\xcf\xcc\xd3\xd4\u0111\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u03c0\xcb\u02da\xb8\xca\xe6\u02c7","x-mac-cyrillic":"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\u0490\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e","x-mac-gaelic":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u1e02\xb1\u2264\u2265\u1e03\u010a\u010b\u1e0a\u1e0b\u1e1e\u1e1f\u0120\u0121\u1e40\xe6\xf8\u1e41\u1e56\u1e57\u027c\u0192\u017f\u1e60\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\u1e61\u1e9b\xff\u0178\u1e6a\u20ac\u2039\u203a\u0176\u0177\u1e6b\xb7\u1ef2\u1ef3\u204a\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\u2663\xd2\xda\xdb\xd9\u0131\xdd\xfd\u0174\u0175\u1e84\u1e85\u1e80\u1e81\u1e82\u1e83","x-mac-greek":"\xc4\xb9\xb2\xc9\xb3\xd6\xdc\u0385\xe0\xe2\xe4\u0384\xa8\xe7\xe9\xe8\xea\xeb\xa3\u2122\xee\xef\u2022\xbd\u2030\xf4\xf6\xa6\u20ac\xf9\xfb\xfc\u2020\u0393\u0394\u0398\u039b\u039e\u03a0\xdf\xae\xa9\u03a3\u03aa\xa7\u2260\xb0\xb7\u0391\xb1\u2264\u2265\xa5\u0392\u0395\u0396\u0397\u0399\u039a\u039c\u03a6\u03ab\u03a8\u03a9\u03ac\u039d\xac\u039f\u03a1\u2248\u03a4\xab\xbb\u2026 \u03a5\u03a7\u0386\u0388\u0153\u2013\u2015\u201c\u201d\u2018\u2019\xf7\u0389\u038a\u038c\u038e\u03ad\u03ae\u03af\u03cc\u038f\u03cd\u03b1\u03b2\u03c8\u03b4\u03b5\u03c6\u03b3\u03b7\u03b9\u03be\u03ba\u03bb\u03bc\u03bd\u03bf\u03c0\u03ce\u03c1\u03c3\u03c4\u03b8\u03c9\u03c2\u03c7\u03c5\u03b6\u03ca\u03cb\u0390\u03b0\xad","x-mac-icelandic":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xdd\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\xd0\xf0\xde\xfe\xfd\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140a\u140b\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144e\u144f\u1450\u1451\u1455\u1456\u1466\u146d\u146e\u146f\u1470\u1472\u1473\u1483\u148b\u148c\u148d\u148e\u1490\u1491\xb0\u14a1\u14a5\u14a6\u2022\xb6\u14a7\xae\xa9\u2122\u14a8\u14aa\u14ab\u14bb\u14c2\u14c3\u14c4\u14c5\u14c7\u14c8\u14d0\u14ef\u14f0\u14f1\u14f2\u14f4\u14f5\u1505\u14d5\u14d6\u14d7\u14d8\u14da\u14db\u14ea\u1528\u1529\u152a\u152b\u152d\u2026 \u152e\u153e\u1555\u1556\u1557\u2013\u2014\u201c\u201d\u2018\u2019\u1558\u1559\u155a\u155d\u1546\u1547\u1548\u1549\u154b\u154c\u1550\u157f\u1580\u1581\u1582\u1583\u1584\u1585\u158f\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15a0\u15a1\u15a2\u15a3\u15a4\u15a5\u15a6\u157c\u0141\u0142","x-mac-ce":"\xc4\u0100\u0101\xc9\u0104\xd6\xdc\xe1\u0105\u010c\xe4\u010d\u0106\u0107\xe9\u0179\u017a\u010e\xed\u010f\u0112\u0113\u0116\xf3\u0117\xf4\xf6\xf5\xfa\u011a\u011b\xfc\u2020\xb0\u0118\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\u0119\xa8\u2260\u0123\u012e\u012f\u012a\u2264\u2265\u012b\u0136\u2202\u2211\u0142\u013b\u013c\u013d\u013e\u0139\u013a\u0145\u0146\u0143\xac\u221a\u0144\u0147\u2206\xab\xbb\u2026 \u0148\u0150\xd5\u0151\u014c\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\u014d\u0154\u0155\u0158\u2039\u203a\u0159\u0156\u0157\u0160\u201a\u201e\u0161\u015a\u015b\xc1\u0164\u0165\xcd\u017d\u017e\u016a\xd3\xd4\u016b\u016e\xda\u016f\u0170\u0171\u0172\u0173\xdd\xfd\u0137\u017b\u0141\u017c\u0122\u02c7",macintosh:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-romanian":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\u0102\u0218\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\u0103\u0219\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\u2039\u203a\u021a\u021b\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-turkish":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u011e\u011f\u0130\u0131\u015e\u015f\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\uf8a0\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"};R.MACSTRING=function(e,t,n,r){var i=F[r];if(void 0!==i){for(var s="",a=0;a=-128&&e<=127}function k(e,t,n){for(var r=0,i=e.length;t>8&255,l+256&255)}return s}P.MACSTRING=function(e,t){var n=function(e){if(!U)for(var t in U={},F)U[t]=new String(t);var n=U[e];if(void 0!==n){if(O){var r=O.get(n);if(void 0!==r)return r}var i=F[e];if(void 0!==i){for(var s={},a=0;a=128&&void 0===(s=n[s]))return;r[i]=s}return r}},D.MACSTRING=function(e,t){var n=P.MACSTRING(e,t);return void 0!==n?n.length:0},P.VARDELTAS=function(e){for(var t=0,n=[];t=-128&&r<=127?G(e,t,n):z(e,t,n)}return n},P.INDEX=function(e){for(var t=1,n=[t],r=[],i=0;i>8,t[u+1]=255&d,t=t.concat(r[h])}return t},D.TABLE=function(e){for(var t=0,n=e.fields.length,r=0;r0)return new re(this.data,this.offset+t).parseStruct(e)},re.prototype.parsePointer32=function(e){var t=this.parseOffset32();if(t>0)return new re(this.data,this.offset+t).parseStruct(e)},re.prototype.parseListOfLists=function(e){for(var t=this.parseOffset16List(),n=t.length,r=this.relativeOffset,i=new Array(n),s=0;s=0;i-=1){var s=se.getUShort(e,t+4+8*i),a=se.getUShort(e,t+4+8*i+2);if(3===s&&(0===a||1===a||10===a)||0===s&&(0===a||1===a||2===a||3===a||4===a)){r=se.getULong(e,t+4+8*i+4);break}}if(-1===r)throw new Error("No valid cmap sub-tables found.");var o=new se.Parser(e,t+r);if(n.format=o.parseUShort(),12===n.format)!function(e,t){var n;t.parseUShort(),e.length=t.parseULong(),e.language=t.parseULong(),e.groupCount=n=t.parseULong(),e.glyphIndexMap={};for(var r=0;r>1,t.skip("uShort",3),e.glyphIndexMap={};for(var a=new se.Parser(n,r+i+14),o=new se.Parser(n,r+i+16+2*s),l=new se.Parser(n,r+i+16+4*s),c=new se.Parser(n,r+i+16+6*s),h=r+i+16+8*s,u=0;u0;t-=1){if(e.get(t).unicode>65535){console.log("Adding CMAP format 12 (needed!)"),n=!1;break}}var r=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:n?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:n?12:20}];n||(r=r.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),r=r.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var i=new J.Table("cmap",r);for(i.segments=[],t=0;t>4,s=15&r;if(15===i)break;if(t+=n[i],15===s)break;t+=n[s]}return parseFloat(t)}(e);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return 256*(t-247)+e.parseByte()+108;if(t>=251&&t<=254)return 256*-(t-251)-e.parseByte()-108;throw new Error("Invalid b0 "+t)}function Me(e,t,n){t=void 0!==t?t:0;var r=new se.Parser(e,t),i=[],s=[];for(n=void 0!==n?n:e.length;r.relativeOffset>1,d.length=0,f=!0}return function n(c){for(var v,y,_,S,w,M,C,T,I,B,R,P,D=0;D1&&!f&&(x=d.shift()+h,f=!0),A+=d.pop(),b(g,A);break;case 5:for(;d.length>0;)g+=d.shift(),A+=d.shift(),u.lineTo(g,A);break;case 6:for(;d.length>0&&(g+=d.shift(),u.lineTo(g,A),0!==d.length);)A+=d.shift(),u.lineTo(g,A);break;case 7:for(;d.length>0&&(A+=d.shift(),u.lineTo(g,A),0!==d.length);)g+=d.shift(),u.lineTo(g,A);break;case 8:for(;d.length>0;)r=g+d.shift(),i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+d.shift(),u.curveTo(r,i,s,a,g,A);break;case 10:w=d.pop()+l,(M=o[w])&&n(M);break;case 11:return;case 12:switch(L=c[D],D+=1,L){case 35:r=g+d.shift(),i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),C=s+d.shift(),T=a+d.shift(),I=C+d.shift(),B=T+d.shift(),R=I+d.shift(),P=B+d.shift(),g=R+d.shift(),A=P+d.shift(),d.shift(),u.curveTo(r,i,s,a,C,T),u.curveTo(I,B,R,P,g,A);break;case 34:r=g+d.shift(),i=A,s=r+d.shift(),a=i+d.shift(),C=s+d.shift(),T=a,I=C+d.shift(),B=a,R=I+d.shift(),P=A,g=R+d.shift(),u.curveTo(r,i,s,a,C,T),u.curveTo(I,B,R,P,g,A);break;case 36:r=g+d.shift(),i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),C=s+d.shift(),T=a,I=C+d.shift(),B=a,R=I+d.shift(),P=B+d.shift(),g=R+d.shift(),u.curveTo(r,i,s,a,C,T),u.curveTo(I,B,R,P,g,A);break;case 37:r=g+d.shift(),i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),C=s+d.shift(),T=a+d.shift(),I=C+d.shift(),B=T+d.shift(),R=I+d.shift(),P=B+d.shift(),Math.abs(R-g)>Math.abs(P-A)?g=R+d.shift():A=P+d.shift(),u.curveTo(r,i,s,a,C,T),u.curveTo(I,B,R,P,g,A);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+L),d.length=0}break;case 14:d.length>0&&!f&&(x=d.shift()+h,f=!0),m&&(u.closePath(),m=!1);break;case 19:case 20:E(),D+=p+7>>3;break;case 21:d.length>2&&!f&&(x=d.shift()+h,f=!0),A+=d.pop(),b(g+=d.pop(),A);break;case 22:d.length>1&&!f&&(x=d.shift()+h,f=!0),b(g+=d.pop(),A);break;case 24:for(;d.length>2;)r=g+d.shift(),i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+d.shift(),u.curveTo(r,i,s,a,g,A);g+=d.shift(),A+=d.shift(),u.lineTo(g,A);break;case 25:for(;d.length>6;)g+=d.shift(),A+=d.shift(),u.lineTo(g,A);r=g+d.shift(),i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+d.shift(),u.curveTo(r,i,s,a,g,A);break;case 26:for(d.length%2&&(g+=d.shift());d.length>0;)r=g,i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),g=s,A=a+d.shift(),u.curveTo(r,i,s,a,g,A);break;case 27:for(d.length%2&&(A+=d.shift());d.length>0;)r=g+d.shift(),i=A,s=r+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a,u.curveTo(r,i,s,a,g,A);break;case 28:v=c[D],y=c[D+1],d.push((v<<24|y<<16)>>16),D+=2;break;case 29:w=d.pop()+e.gsubrsBias,(M=e.gsubrs[w])&&n(M);break;case 30:for(;d.length>0&&(r=g,i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+(1===d.length?d.shift():0),u.curveTo(r,i,s,a,g,A),0!==d.length);)r=g+d.shift(),i=A,s=r+d.shift(),a=i+d.shift(),A=a+d.shift(),g=s+(1===d.length?d.shift():0),u.curveTo(r,i,s,a,g,A);break;case 31:for(;d.length>0&&(r=g+d.shift(),i=A,s=r+d.shift(),a=i+d.shift(),A=a+d.shift(),g=s+(1===d.length?d.shift():0),u.curveTo(r,i,s,a,g,A),0!==d.length);)r=g,i=A+d.shift(),s=r+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+(1===d.length?d.shift():0),u.curveTo(r,i,s,a,g,A);break;default:L<32?console.log("Glyph "+t.index+": unknown operator "+L):L<247?d.push(L-139):L<251?(v=c[D],D+=1,d.push(256*(L-247)+v+108)):L<255?(v=c[D],D+=1,d.push(256*-(L-251)-v-108)):(v=c[D],y=c[D+1],_=c[D+2],S=c[D+3],D+=4,d.push((v<<24|y<<16|_<<8|S)/65536))}}}(n),t.advanceWidth=x,u}function Fe(e,t){var n,r=le.indexOf(e);return r>=0&&(n=r),(r=t.indexOf(e))>=0?n=r+le.length:(n=le.length+t.length,t.push(e)),n}function Ue(e,t,n){for(var r={},i=0;i=r)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+r+")");s.push(i)}else{if(3!==o)throw new Error("CFF Table CID Font FDSelect table has unsupported format "+o);var c,h=a.parseCard16(),u=a.parseCard16();if(0!==u)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+u);for(var d=0;d=r)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+r+")");if(c>n)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+c);for(;u=1&&(n.ulCodePageRange1=r.parseULong(),n.ulCodePageRange2=r.parseULong()),n.version>=2&&(n.sxHeight=r.parseShort(),n.sCapHeight=r.parseShort(),n.usDefaultChar=r.parseUShort(),n.usBreakChar=r.parseUShort(),n.usMaxContent=r.parseUShort()),n},make:function(e){return new J.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],e)},unicodeRanges:st,getUnicodeRange:function(e){for(var t=0;t=n.begin&&e=ue.length){var a=r.parseChar();n.names.push(r.parseString(a))}break;case 2.5:n.numberOfGlyphs=r.parseUShort(),n.offset=new Array(n.numberOfGlyphs);for(var o=0;ot.value.tag?1:-1})),t.fields=t.fields.concat(r),t.fields=t.fields.concat(i),t}function At(e,t,n){for(var r=0;r0)return e.glyphs.get(i).getMetrics()}return n}function vt(e){for(var t=0,n=0;ng||void 0===t)&&g>0&&(t=g),c 123 are reserved for internal usage");p|=1<0?He.make(P):void 0,F=ot.make(),U=Ge.make(e.glyphs,{version:e.getEnglishName("version"),fullName:T,familyName:M,weightName:C,postScriptName:I,unitsPerEm:e.unitsPerEm,fontBBox:[0,y.yMin,y.ascender,y.advanceWidthMax]}),O=e.metas&&Object.keys(e.metas).length>0?dt.make(e.metas):void 0,N=[x,b,E,_,D,w,F,U,S];L&&N.push(L),e.tables.gsub&&N.push(ut.make(e.tables.gsub)),O&&N.push(O);for(var k=gt(N),G=ft(k.encode()),z=k.fields,Q=!1,V=0;V>>1,s=e[i].tag;if(s===t)return i;s>>1,s=e[i];if(s===t)return i;s>>1,a=(n=e[s]).start;if(a===t)return n;a0)return t>(n=e[r-1]).end?0:n}function _t(e,t){this.font=e,this.tableName=t}function St(e){_t.call(this,e,"gpos")}function wt(e){_t.call(this,e,"gsub")}function Mt(e,t){var n=e.length;if(n!==t.length)return!1;for(var r=0;r0?(s=e.parseByte(),0==(t&i)&&(s=-s),s=n+s):s=(t&i)>0?n:n+e.parseShort(),s}function Bt(e,t,n){var r,i,s=new se.Parser(t,n);if(e.numberOfContours=s.parseShort(),e._xMin=s.parseShort(),e._yMin=s.parseShort(),e._xMax=s.parseShort(),e._yMax=s.parseShort(),e.numberOfContours>0){for(var a=e.endPointIndices=[],o=0;o0)for(var u=s.parseByte(),d=0;d0){var p,f=[];if(c>0){for(var m=0;m=0,f.push(p);for(var g=0,A=0;A0?(2&r)>0?(b.dx=s.parseShort(),b.dy=s.parseShort()):b.matchedPoints=[s.parseUShort(),s.parseUShort()]:(2&r)>0?(b.dx=s.parseChar(),b.dy=s.parseChar()):b.matchedPoints=[s.parseByte(),s.parseByte()],(8&r)>0?b.xScale=b.yScale=s.parseF2Dot14():(64&r)>0?(b.xScale=s.parseF2Dot14(),b.yScale=s.parseF2Dot14()):(128&r)>0&&(b.xScale=s.parseF2Dot14(),b.scale01=s.parseF2Dot14(),b.scale10=s.parseF2Dot14(),b.yScale=s.parseF2Dot14()),e.components.push(b),x=!!(32&r)}if(256&r){e.instructionLength=s.parseUShort(),e.instructions=[];for(var E=0;Et.points.length-1||r.matchedPoints[1]>i.points.length-1)throw Error("Matched points out of range in "+t.name);var a=t.points[r.matchedPoints[0]],o=i.points[r.matchedPoints[1]],l={xScale:r.xScale,scale01:r.scale01,scale10:r.scale10,yScale:r.yScale,dx:0,dy:0};o=Rt([o],l)[0],l.dx=a.x-o.x,l.dy=a.y-o.y,s=Rt(i.points,l)}t.points=t.points.concat(s)}}return Pt(t.points)}_t.prototype={searchTag:xt,binSearch:bt,getTable:function(e){var t=this.font.tables[this.tableName];return!t&&e&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){var e=this.getTable();return e?e.scripts.map((function(e){return e.tag})):[]},getDefaultScriptName:function(){var e=this.getTable();if(e){for(var t=!1,n=0;n=0)return r[i].script;if(t){var s={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return r.splice(-1-i,0,s),s.script}}},getLangSysTable:function(e,t,n){var r=this.getScriptTable(e,n);if(r){if(!t||"dflt"===t||"DFLT"===t)return r.defaultLangSys;var i=xt(r.langSysRecords,t);if(i>=0)return r.langSysRecords[i].langSys;if(n){var s={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return r.langSysRecords.splice(-1-i,0,s),s.langSys}}},getFeatureTable:function(e,t,n,r){var i=this.getLangSysTable(e,t,r);if(i){for(var s,a=i.featureIndexes,o=this.font.tables[this.tableName].features,l=0;l=o[c-1].tag,"Features must be added in alphabetical order."),s={tag:n,feature:{params:0,lookupListIndexes:[]}},o.push(s),a.push(c),s.feature}}},getLookupTables:function(e,t,n,r,i){var s=this.getFeatureTable(e,t,n,i),a=[];if(s){for(var o,l=s.lookupListIndexes,c=this.font.tables[this.tableName].lookups,h=0;h=0?n:-1;case 2:var r=Et(e.ranges,t);return r?r.index+t-r.start:-1}},expandCoverage:function(e){if(1===e.format)return e.glyphs;for(var t=[],n=e.ranges,r=0;r1,'Multiple: "by" must be an array of two or more ids');var i=Ct(this.getLookupTables(n,r,e,2,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});I.assert(1===i.coverage.format,"Multiple: unable to modify coverage table format "+i.coverage.format);var s=t.sub,a=this.binSearch(i.coverage.glyphs,s);a<0&&(a=-1-a,i.coverage.glyphs.splice(a,0,s),i.sequences.splice(a,0,0)),i.sequences[a]=t.by},wt.prototype.addAlternate=function(e,t,n,r){var i=Ct(this.getLookupTables(n,r,e,3,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});I.assert(1===i.coverage.format,"Alternate: unable to modify coverage table format "+i.coverage.format);var s=t.sub,a=this.binSearch(i.coverage.glyphs,s);a<0&&(a=-1-a,i.coverage.glyphs.splice(a,0,s),i.alternateSets.splice(a,0,0)),i.alternateSets[a]=t.by},wt.prototype.addLigature=function(e,t,n,r){var i=this.getLookupTables(n,r,e,4,!0)[0],s=i.subtables[0];s||(s={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},i.subtables[0]=s),I.assert(1===s.coverage.format,"Ligature: unable to modify coverage table format "+s.coverage.format);var a=t.sub[0],o=t.sub.slice(1),l={ligGlyph:t.by,components:o},c=this.binSearch(s.coverage.glyphs,a);if(c>=0){for(var h=s.ligatureSets[c],u=0;u=176&&n<=183)i+=n-176+1;else if(n>=184&&n<=191)i+=2*(n-184+1);else if(t&&1===s&&27===n)break}while(s>0);e.ip=i}function rn(e,n){t.DEBUG&&console.log(n.step,"SVTCA["+e.axis+"]"),n.fv=n.pv=n.dpv=e}function sn(e,n){t.DEBUG&&console.log(n.step,"SPVTCA["+e.axis+"]"),n.pv=n.dpv=e}function an(e,n){t.DEBUG&&console.log(n.step,"SFVTCA["+e.axis+"]"),n.fv=e}function on(e,n){var r,i,s=n.stack,a=s.pop(),o=s.pop(),l=n.z2[a],c=n.z1[o];t.DEBUG&&console.log("SPVTL["+e+"]",a,o),e?(r=l.y-c.y,i=c.x-l.x):(r=c.x-l.x,i=c.y-l.y),n.pv=n.dpv=Kt(r,i)}function ln(e,n){var r,i,s=n.stack,a=s.pop(),o=s.pop(),l=n.z2[a],c=n.z1[o];t.DEBUG&&console.log("SFVTL["+e+"]",a,o),e?(r=l.y-c.y,i=c.x-l.x):(r=c.x-l.x,i=c.y-l.y),n.fv=Kt(r,i)}function cn(e){t.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function hn(e,n){var r=n.stack.pop(),i=n.z0[r],s=n.fv,a=n.pv;t.DEBUG&&console.log(n.step,"MDAP["+e+"]",r);var o=a.distance(i,Zt);e&&(o=n.round(o)),s.setRelative(i,Zt,o,a),s.touch(i),n.rp0=n.rp1=r}function un(e,n){var r,i,s,a=n.z2,o=a.length-2;t.DEBUG&&console.log(n.step,"IUP["+e.axis+"]");for(var l=0;l1?"loop "+(n.loop-l)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",h)}n.loop=1}function pn(e,n){var r=n.stack,i=e?n.rp1:n.rp2,s=(e?n.z0:n.z1)[i],a=n.fv,o=n.pv,l=r.pop(),c=n.z2[n.contours[l]],h=c;t.DEBUG&&console.log(n.step,"SHC["+e+"]",l);var u=o.distance(s,s,!1,!0);do{h!==s&&a.setRelative(h,h,u,o),h=h.nextPointOnContour}while(h!==c)}function fn(e,n){var r,i,s=n.stack,a=e?n.rp1:n.rp2,o=(e?n.z0:n.z1)[a],l=n.fv,c=n.pv,h=s.pop();switch(t.DEBUG&&console.log(n.step,"SHZ["+e+"]",h),h){case 0:r=n.tZone;break;case 1:r=n.gZone;break;default:throw new Error("Invalid zone")}for(var u=c.distance(o,o,!1,!0),d=r.length-2,p=0;p",l),n.stack.push(Math.round(64*l))}function yn(e,n){var r=n.stack,i=r.pop(),s=n.fv,a=n.pv,o=n.ppem,l=n.deltaBase+16*(e-1),c=n.deltaShift,h=n.z0;t.DEBUG&&console.log(n.step,"DELTAP["+e+"]",i,r);for(var u=0;u>4)===o){var f=(15&p)-8;f>=0&&f++,t.DEBUG&&console.log(n.step,"DELTAPFIX",d,"by",f*c);var m=h[d];s.setRelative(m,m,f*c,a)}}}function xn(e,n){var r=n.stack,i=r.pop();t.DEBUG&&console.log(n.step,"ROUND[]"),r.push(64*n.round(i/64))}function bn(e,n){var r=n.stack,i=r.pop(),s=n.ppem,a=n.deltaBase+16*(e-1),o=n.deltaShift;t.DEBUG&&console.log(n.step,"DELTAC["+e+"]",i,r);for(var l=0;l>4)===s){var u=(15&h)-8;u>=0&&u++;var d=u*o;t.DEBUG&&console.log(n.step,"DELTACFIX",c,"by",d),n.cvt[c]+=d}}}function En(e,n){var r,i,s=n.stack,a=s.pop(),o=s.pop(),l=n.z2[a],c=n.z1[o];t.DEBUG&&console.log(n.step,"SDPVTL["+e+"]",a,o),e?(r=l.y-c.y,i=c.x-l.x):(r=c.x-l.x,i=c.y-l.y),n.dpv=Kt(r,i)}function _n(e,n){var r=n.stack,i=n.prog,s=n.ip;t.DEBUG&&console.log(n.step,"PUSHB["+e+"]");for(var a=0;a=0?1:-1,l=Math.abs(l),e&&(h=a.cvt[d],i&&Math.abs(l-h)":"_")+(i?"R":"_")+(0===s?"Gr":1===s?"Bl":2===s?"Wh":"")+"]",e?d+"("+a.cvt[d]+","+h+")":"",p,"(d =",o,"->",c*l,")"),a.rp1=a.rp0,a.rp2=p,n&&(a.rp0=p)}function Mn(e){this.char=e,this.state={},this.activeState=null}function Cn(e,t,n){this.contextName=n,this.startIndex=e,this.endOffset=t}function Tn(e,t,n){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=n}function In(e,t){this.context=e,this.index=t,this.length=e.length,this.current=e[t],this.backtrack=e.slice(0,t),this.lookahead=e.slice(t+1)}function Bn(e){this.eventId=e,this.subscribers=[]}function Rn(e){var t=this,n=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];n.forEach((function(e){Object.defineProperty(t.events,e,{value:new Bn(e)})})),e&&n.forEach((function(n){var r=e[n];"function"==typeof r&&t.events[n].subscribe(r)}));["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach((function(e){t.events[e].subscribe(t.updateContextsRanges)}))}function Pn(e){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],Rn.call(this,e)}function Dn(e){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(e)}function Ln(e){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(e)}function Fn(e){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(e)}function Un(e){return/[A-z]/.test(e)}function On(e){this.font=e,this.features={}}function Nn(e){this.id=e.id,this.tag=e.tag,this.substitution=e.substitution}function kn(e,t){if(!e)return-1;switch(t.format){case 1:return t.glyphs.indexOf(e);case 2:for(var n=t.ranges,r=0;r=i.start&&e<=i.end){var s=e-i.start;return i.index+s}}break;default:return-1}return-1}function Gn(e,t){return-1===kn(e,t.coverage)?null:e+t.deltaGlyphId}function zn(e,t){var n=kn(e,t.coverage);return-1===n?null:t.substitute[n]}function Qn(e,t){for(var n=[],r=0;r2)){var r=this.font,i=this._prepState;if(!i||i.ppem!==n){var s=this._fpgmState;if(!s){en.prototype=$t,(s=this._fpgmState=new en("fpgm",r.tables.fpgm)).funcs=[],s.font=r,t.DEBUG&&(console.log("---EXEC FPGM---"),s.step=-1);try{Ft(s)}catch(h){return console.log("Hinting error in FPGM:"+h),void(this._errorState=3)}}en.prototype=s,(i=this._prepState=new en("prep",r.tables.prep)).ppem=n;var a=r.tables.cvt;if(a)for(var o=i.cvt=new Array(a.length),l=n/r.unitsPerEm,c=0;c1))try{return Ut(e,i)}catch(h){return this._errorState<1&&(console.log("Hinting error:"+h),console.log("Note: further hinting errors are silenced")),void(this._errorState=1)}}},Ut=function(e,n){var r,i,s,a=n.ppem/n.font.unitsPerEm,o=a,l=e.components;if(en.prototype=n,l){var c=n.font;i=[],r=[];for(var h=0;h1?"loop "+(e.loop-r)+": ":"")+"SHPIX[]",o,s),i.setRelative(l,l,s),i.touch(l)}e.loop=1},function(e){for(var n=e.stack,r=e.rp1,i=e.rp2,s=e.loop,a=e.z0[r],o=e.z1[i],l=e.fv,c=e.dpv,h=e.z2;s--;){var u=n.pop(),d=h[u];t.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-s)+": ":"")+"IP[]",u,r,"<->",i),l.interpolate(d,a,o,c),l.touch(d)}e.loop=1},mn.bind(void 0,0),mn.bind(void 0,1),function(e){for(var n=e.stack,r=e.rp0,i=e.z0[r],s=e.loop,a=e.fv,o=e.pv,l=e.z1;s--;){var c=n.pop(),h=l[c];t.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-s)+": ":"")+"ALIGNRP[]",c),a.setRelative(h,i,0,o),a.touch(h)}e.loop=1},function(e){t.DEBUG&&console.log(e.step,"RTDG[]"),e.round=Qt},gn.bind(void 0,0),gn.bind(void 0,1),function(e){var n=e.prog,r=e.ip,i=e.stack,s=n[++r];t.DEBUG&&console.log(e.step,"NPUSHB[]",s);for(var a=0;ar?1:0)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"GTEQ[]",r,i),n.push(i>=r?1:0)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"EQ[]",r,i),n.push(r===i?1:0)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"NEQ[]",r,i),n.push(r!==i?1:0)},function(e){var n=e.stack,r=n.pop();t.DEBUG&&console.log(e.step,"ODD[]",r),n.push(Math.trunc(r)%2?1:0)},function(e){var n=e.stack,r=n.pop();t.DEBUG&&console.log(e.step,"EVEN[]",r),n.push(Math.trunc(r)%2?0:1)},function(e){var n=e.stack.pop();t.DEBUG&&console.log(e.step,"IF[]",n),n||(nn(e,!0),t.DEBUG&&console.log(e.step,"EIF[]"))},function(e){t.DEBUG&&console.log(e.step,"EIF[]")},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"AND[]",r,i),n.push(r&&i?1:0)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"OR[]",r,i),n.push(r||i?1:0)},function(e){var n=e.stack,r=n.pop();t.DEBUG&&console.log(e.step,"NOT[]",r),n.push(r?0:1)},yn.bind(void 0,1),function(e){var n=e.stack.pop();t.DEBUG&&console.log(e.step,"SDB[]",n),e.deltaBase=n},function(e){var n=e.stack.pop();t.DEBUG&&console.log(e.step,"SDS[]",n),e.deltaShift=Math.pow(.5,n)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"ADD[]",r,i),n.push(i+r)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"SUB[]",r,i),n.push(i-r)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"DIV[]",r,i),n.push(64*i/r)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"MUL[]",r,i),n.push(i*r/64)},function(e){var n=e.stack,r=n.pop();t.DEBUG&&console.log(e.step,"ABS[]",r),n.push(Math.abs(r))},function(e){var n=e.stack,r=n.pop();t.DEBUG&&console.log(e.step,"NEG[]",r),n.push(-r)},function(e){var n=e.stack,r=n.pop();t.DEBUG&&console.log(e.step,"FLOOR[]",r),n.push(64*Math.floor(r/64))},function(e){var n=e.stack,r=n.pop();t.DEBUG&&console.log(e.step,"CEILING[]",r),n.push(64*Math.ceil(r/64))},xn.bind(void 0,0),xn.bind(void 0,1),xn.bind(void 0,2),xn.bind(void 0,3),void 0,void 0,void 0,void 0,function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"WCVTF[]",r,i),e.cvt[i]=r*e.ppem/e.font.unitsPerEm},yn.bind(void 0,2),yn.bind(void 0,3),bn.bind(void 0,1),bn.bind(void 0,2),bn.bind(void 0,3),function(e){var n,r=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"SROUND[]",r),e.round=Wt,192&r){case 0:n=.5;break;case 64:n=1;break;case 128:n=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=n,48&r){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*n;break;case 32:e.srPhase=.5*n;break;case 48:e.srPhase=.75*n;break;default:throw new Error("invalid SROUND value")}r&=15,e.srThreshold=0===r?0:(r/8-.5)*n},function(e){var n,r=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"S45ROUND[]",r),e.round=Wt,192&r){case 0:n=Math.sqrt(2)/2;break;case 64:n=Math.sqrt(2);break;case 128:n=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=n,48&r){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*n;break;case 32:e.srPhase=.5*n;break;case 48:e.srPhase=.75*n;break;default:throw new Error("invalid S45ROUND value")}r&=15,e.srThreshold=0===r?0:(r/8-.5)*n},void 0,void 0,function(e){t.DEBUG&&console.log(e.step,"ROFF[]"),e.round=Gt},void 0,function(e){t.DEBUG&&console.log(e.step,"RUTG[]"),e.round=Ht},function(e){t.DEBUG&&console.log(e.step,"RDTG[]"),e.round=jt},cn,cn,void 0,void 0,void 0,void 0,void 0,function(e){var n=e.stack.pop();t.DEBUG&&console.log(e.step,"SCANCTRL[]",n)},En.bind(void 0,0),En.bind(void 0,1),function(e){var n=e.stack,r=n.pop(),i=0;t.DEBUG&&console.log(e.step,"GETINFO[]",r),1&r&&(i=35),32&r&&(i|=4096),n.push(i)},void 0,function(e){var n=e.stack,r=n.pop(),i=n.pop(),s=n.pop();t.DEBUG&&console.log(e.step,"ROLL[]"),n.push(i),n.push(r),n.push(s)},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"MAX[]",r,i),n.push(Math.max(i,r))},function(e){var n=e.stack,r=n.pop(),i=n.pop();t.DEBUG&&console.log(e.step,"MIN[]",r,i),n.push(Math.min(i,r))},function(e){var n=e.stack.pop();t.DEBUG&&console.log(e.step,"SCANTYPE[]",n)},function(e){var n=e.stack.pop(),r=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"INSTCTRL[]",n,r),n){case 1:return void(e.inhibitGridFit=!!r);case 2:return void(e.ignoreCvt=!!r);default:throw new Error("invalid INSTCTRL[] selector")}},void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,_n.bind(void 0,1),_n.bind(void 0,2),_n.bind(void 0,3),_n.bind(void 0,4),_n.bind(void 0,5),_n.bind(void 0,6),_n.bind(void 0,7),_n.bind(void 0,8),Sn.bind(void 0,1),Sn.bind(void 0,2),Sn.bind(void 0,3),Sn.bind(void 0,4),Sn.bind(void 0,5),Sn.bind(void 0,6),Sn.bind(void 0,7),Sn.bind(void 0,8),wn.bind(void 0,0,0,0,0,0),wn.bind(void 0,0,0,0,0,1),wn.bind(void 0,0,0,0,0,2),wn.bind(void 0,0,0,0,0,3),wn.bind(void 0,0,0,0,1,0),wn.bind(void 0,0,0,0,1,1),wn.bind(void 0,0,0,0,1,2),wn.bind(void 0,0,0,0,1,3),wn.bind(void 0,0,0,1,0,0),wn.bind(void 0,0,0,1,0,1),wn.bind(void 0,0,0,1,0,2),wn.bind(void 0,0,0,1,0,3),wn.bind(void 0,0,0,1,1,0),wn.bind(void 0,0,0,1,1,1),wn.bind(void 0,0,0,1,1,2),wn.bind(void 0,0,0,1,1,3),wn.bind(void 0,0,1,0,0,0),wn.bind(void 0,0,1,0,0,1),wn.bind(void 0,0,1,0,0,2),wn.bind(void 0,0,1,0,0,3),wn.bind(void 0,0,1,0,1,0),wn.bind(void 0,0,1,0,1,1),wn.bind(void 0,0,1,0,1,2),wn.bind(void 0,0,1,0,1,3),wn.bind(void 0,0,1,1,0,0),wn.bind(void 0,0,1,1,0,1),wn.bind(void 0,0,1,1,0,2),wn.bind(void 0,0,1,1,0,3),wn.bind(void 0,0,1,1,1,0),wn.bind(void 0,0,1,1,1,1),wn.bind(void 0,0,1,1,1,2),wn.bind(void 0,0,1,1,1,3),wn.bind(void 0,1,0,0,0,0),wn.bind(void 0,1,0,0,0,1),wn.bind(void 0,1,0,0,0,2),wn.bind(void 0,1,0,0,0,3),wn.bind(void 0,1,0,0,1,0),wn.bind(void 0,1,0,0,1,1),wn.bind(void 0,1,0,0,1,2),wn.bind(void 0,1,0,0,1,3),wn.bind(void 0,1,0,1,0,0),wn.bind(void 0,1,0,1,0,1),wn.bind(void 0,1,0,1,0,2),wn.bind(void 0,1,0,1,0,3),wn.bind(void 0,1,0,1,1,0),wn.bind(void 0,1,0,1,1,1),wn.bind(void 0,1,0,1,1,2),wn.bind(void 0,1,0,1,1,3),wn.bind(void 0,1,1,0,0,0),wn.bind(void 0,1,1,0,0,1),wn.bind(void 0,1,1,0,0,2),wn.bind(void 0,1,1,0,0,3),wn.bind(void 0,1,1,0,1,0),wn.bind(void 0,1,1,0,1,1),wn.bind(void 0,1,1,0,1,2),wn.bind(void 0,1,1,0,1,3),wn.bind(void 0,1,1,1,0,0),wn.bind(void 0,1,1,1,0,1),wn.bind(void 0,1,1,1,0,2),wn.bind(void 0,1,1,1,0,3),wn.bind(void 0,1,1,1,1,0),wn.bind(void 0,1,1,1,1,1),wn.bind(void 0,1,1,1,1,2),wn.bind(void 0,1,1,1,1,3)],Mn.prototype.setState=function(e,t){return this.state[e]=t,this.activeState={key:e,value:this.state[e]},this.activeState},Mn.prototype.getState=function(e){return this.state[e]||null},Pn.prototype.inboundIndex=function(e){return e>=0&&e0&&e<=this.lookahead.length:return this.lookahead[e-1];default:return null}},Pn.prototype.rangeToText=function(e){if(e instanceof Cn)return this.getRangeTokens(e).map((function(e){return e.char})).join("")},Pn.prototype.getText=function(){return this.tokens.map((function(e){return e.char})).join("")},Pn.prototype.getContext=function(e){var t=this.registeredContexts[e];return t||null},Pn.prototype.on=function(e,t){var n=this.events[e];return n?n.subscribe(t):null},Pn.prototype.dispatch=function(e,t){var n=this,r=this.events[e];r instanceof Bn&&r.subscribers.forEach((function(e){e.apply(n,t||[])}))},Pn.prototype.registerContextChecker=function(e,t,n){if(this.getContext(e))return{FAIL:"context name '"+e+"' is already registered."};if("function"!=typeof t)return{FAIL:"missing context start check."};if("function"!=typeof n)return{FAIL:"missing context end check."};var r=new Tn(e,t,n);return this.registeredContexts[e]=r,this.contextCheckers.push(r),r},Pn.prototype.getRangeTokens=function(e){var t=e.startIndex+e.endOffset;return[].concat(this.tokens.slice(e.startIndex,t))},Pn.prototype.getContextRanges=function(e){var t=this.getContext(e);return t?t.ranges:{FAIL:"context checker '"+e+"' is not registered."}},Pn.prototype.resetContextsRanges=function(){var e=this.registeredContexts;for(var t in e){if(e.hasOwnProperty(t))e[t].ranges=[]}},Pn.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var e=this.tokens.map((function(e){return e.char})),t=0;t=0;n--){var r=t[n],i=Ln(r),s=Fn(r);if(!i&&!s)return!0;if(i)return!1}return!1}(a)&&(c|=1),function(e){if(Ln(e.current))return!1;for(var t=0;t=1.2&&(i.markGlyphSets=n.parsePointer(br)),i}},_r=new Array(10);_r[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();return 1===t?{posFormat:1,coverage:this.parsePointer(re.coverage),value:this.parseValueRecord()}:2===t?{posFormat:2,coverage:this.parsePointer(re.coverage),values:this.parseValueRecordList()}:void I.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")},_r[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();I.assert(1===t||2===t,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var n=this.parsePointer(re.coverage),r=this.parseUShort(),i=this.parseUShort();if(1===t)return{posFormat:t,coverage:n,valueFormat1:r,valueFormat2:i,pairSets:this.parseList(re.pointer(re.list((function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(r),value2:this.parseValueRecord(i)}}))))};if(2===t){var s=this.parsePointer(re.classDef),a=this.parsePointer(re.classDef),o=this.parseUShort(),l=this.parseUShort();return{posFormat:t,coverage:n,valueFormat1:r,valueFormat2:i,classDef1:s,classDef2:a,class1Count:o,class2Count:l,classRecords:this.parseList(o,re.list(l,(function(){return{value1:this.parseValueRecord(r),value2:this.parseValueRecord(i)}})))}}},_r[3]=function(){return{error:"GPOS Lookup 3 not supported"}},_r[4]=function(){return{error:"GPOS Lookup 4 not supported"}},_r[5]=function(){return{error:"GPOS Lookup 5 not supported"}},_r[6]=function(){return{error:"GPOS Lookup 6 not supported"}},_r[7]=function(){return{error:"GPOS Lookup 7 not supported"}},_r[8]=function(){return{error:"GPOS Lookup 8 not supported"}},_r[9]=function(){return{error:"GPOS Lookup 9 not supported"}};var Sr=new Array(10);var wr={parse:function(e,t){var n=new re(e,t=t||0),r=n.parseVersion(1);return I.argument(1===r||1.1===r,"Unsupported GPOS table version "+r),1===r?{version:r,scripts:n.parseScriptList(),features:n.parseFeatureList(),lookups:n.parseLookupList(_r)}:{version:r,scripts:n.parseScriptList(),features:n.parseFeatureList(),lookups:n.parseLookupList(_r),variations:n.parseFeatureVariationsList()}},make:function(e){return new J.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new J.ScriptList(e.scripts)},{name:"features",type:"TABLE",value:new J.FeatureList(e.features)},{name:"lookups",type:"TABLE",value:new J.LookupList(e.lookups,Sr)}])}};var Mr={parse:function(e,t){var n=new se.Parser(e,t),r=n.parseUShort();if(0===r)return function(e){var t={};e.skip("uShort");var n=e.parseUShort();I.argument(0===n,"Unsupported kern sub-table version."),e.skip("uShort",2);var r=e.parseUShort();e.skip("uShort",3);for(var i=0;i1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");var n=255&e.parseUShort();if(e.skip("uShort"),0===n){var r=e.parseUShort();e.skip("uShort",3);for(var i=0;i{"use strict";let n,r,i;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s={env:{emscripten_notify_memory_growth:function(e){i=new Uint8Array(r.exports.memory.buffer)}}};const a="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";t.ZSTDDecoder=class{init(){return n||(n="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+a).then((e=>e.arrayBuffer())).then((e=>WebAssembly.instantiate(e,s))).then(this._init):WebAssembly.instantiate(Buffer.from(a,"base64"),s).then(this._init),n)}_init(e){r=e.instance,s.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!r)throw new Error("ZSTDDecoder: Await .init() before decoding.");const n=e.byteLength,s=r.exports.malloc(n);i.set(e,s),t=t||Number(r.exports.ZSTD_findDecompressedSize(s,n));const a=r.exports.malloc(t),o=r.exports.ZSTD_decompress(a,t,s,n),l=i.slice(a,a+o);return r.exports.free(s),r.exports.free(a),l}}},94418:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.LightProbeGenerator=class{static fromCubeTexture(e){let t=0;const n=new r.Vector3,i=new r.Vector3,s=new r.Color,a=[0,0,0,0,0,0,0,0,0],o=new r.SphericalHarmonics3,l=o.coefficients;for(let h=0;h<6;h++){const o=e.image[h],c=o.width,u=o.height,d=document.createElement("canvas");d.width=c,d.height=u;const p=d.getContext("2d");p.drawImage(o,0,0,c,u);const f=p.getImageData(0,0,c,u),m=f.data,g=f.width,A=2/g;for(let v=0,y=m.length;v{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.RectAreaLightUniformsLib=class{static init(){const e=[1,0,0,2e-5,1,0,0,503905e-9,1,0,0,.00201562,1,0,0,.00453516,1,0,0,.00806253,1,0,0,.0125978,1,0,0,.018141,1,0,0,.0246924,1,0,0,.0322525,1,0,0,.0408213,1,0,0,.0503999,1,0,0,.0609894,1,0,0,.0725906,1,0,0,.0852058,1,0,0,.0988363,1,0,0,.113484,1,0,0,.129153,1,0,0,.145839,1,0,0,.163548,1,0,0,.182266,1,0,0,.201942,1,0,0,.222314,1,0,0,.241906,1,0,0,.262314,1,0,0,.285754,1,0,0,.310159,1,0,0,.335426,1,0,0,.361341,1,0,0,.387445,1,0,0,.412784,1,0,0,.438197,1,0,0,.466966,1,0,0,.49559,1,0,0,.523448,1,0,0,.549938,1,0,0,.57979,1,0,0,.608746,1,0,0,.636185,1,0,0,.664748,1,0,0,.69313,1,0,0,.71966,1,0,0,.747662,1,0,0,.774023,1,0,0,.799775,1,0,0,.825274,1,0,0,.849156,1,0,0,.873248,1,0,0,.89532,1,0,0,.917565,1,0,0,.937863,1,0,0,.958139,1,0,0,.976563,1,0,0,.994658,1,0,0,1.0112,1,0,0,1.02712,1,0,0,1.04189,1,0,0,1.05568,1,0,0,1.06877,1,0,0,1.08058,1,0,0,1.09194,1,0,0,1.10191,1,0,0,1.11161,1,0,0,1.1199,1,0,0,1.12813,.999547,-4.48815e-7,.0224417,199902e-10,.999495,-113079e-10,.0224406,503651e-9,.999496,-452317e-10,.0224406,.00201461,.999496,-101772e-9,.0224406,.00453287,.999495,-180928e-9,.0224406,.00805845,.999497,-282702e-9,.0224406,.0125914,.999496,-407096e-9,.0224406,.0181319,.999498,-554114e-9,.0224406,.02468,.999499,-723768e-9,.0224406,.0322363,.999495,-916058e-9,.0224405,.0408009,.999499,-.00113101,.0224408,.050375,.999494,-.00136863,.0224405,.0609586,.999489,-.00162896,.0224401,.0725537,.999489,-.00191201,.0224414,.0851619,.999498,-.00221787,.0224413,.0987867,.999492,-.00254642,.0224409,.113426,.999507,-.00289779,.0224417,.129088,.999494,-.0032716,.0224386,.145767,.999546,-.0036673,.0224424,.163472,.999543,-.00408166,.0224387,.182182,.999499,-.00450056,.0224338,.201843,.999503,-.00483661,.0224203,.222198,.999546,-.00452928,.022315,.241714,.999508,-.00587403,.0224329,.262184,.999509,-.00638806,.0224271,.285609,.999501,-.00691028,.0224166,.309998,.999539,-.00741979,.0223989,.335262,.999454,-.00786282,.0223675,.361154,.999529,-.00811928,.0222828,.387224,.999503,-.00799941,.0221063,.41252,.999561,-.00952753,.0223057,.438006,.999557,-.0099134,.0222065,.466735,.999541,-.0100935,.0220402,.495332,.999562,-.00996821,.0218067,.523197,.999556,-.0105031,.0217096,.550223,.999561,-.0114191,.0217215,.579498,.999588,-.0111818,.0213357,.608416,.999633,-.0107725,.0208689,.635965,.999527,-.0121671,.0210149,.664476,.999508,-.0116005,.020431,.692786,.999568,-.0115604,.0199791,.719709,.999671,-.0121117,.0197415,.74737,.999688,-.0110769,.0188846,.773692,.99962,-.0122368,.0188452,.799534,.999823,-.0110325,.0178001,.825046,.999599,-.0114923,.0174221,.849075,.999619,-.0105923,.0164345,.872999,.999613,-.0105988,.0158227,.895371,.99964,-.00979861,.0148131,.917364,.99977,-.00967238,.0140721,.938002,.999726,-.00869175,.0129543,.957917,.99973,-.00866872,.0122329,.976557,.999773,-.00731956,.0108958,.994459,.999811,-.00756027,.0102715,1.01118,.999862,-.00583732,.00878781,1.02701,.999835,-.00631438,.00827529,1.04186,.999871,-.00450785,.00674583,1.05569,.999867,-.00486079,.00621041,1.06861,.999939,-.00322072,.00478301,1.08064,.999918,-.00318199,.00406395,1.09181,1.00003,-.00193348,.00280682,1.10207,.999928,-.00153729,.00198741,1.11152,.999933,-623666e-9,917714e-9,1.12009,1,-102387e-11,9.07581e-7,1.12813,.997866,-8.96716e-7,.0448334,199584e-10,.997987,-225945e-10,.0448389,502891e-9,.997987,-903781e-10,.0448388,.00201156,.997985,-203351e-9,.0448388,.00452602,.997986,-361514e-9,.0448388,.00804629,.997987,-56487e-8,.0448389,.0125724,.997988,-813423e-9,.0448389,.0181045,.997984,-.00110718,.0448387,.0246427,.997985,-.00144616,.0448388,.0321875,.997987,-.00183038,.044839,.0407392,.997983,-.00225987,.0448387,.0502986,.997991,-.00273467,.0448389,.0608667,.997984,-.00325481,.0448384,.0724444,.998002,-.00382043,.044839,.0850348,.997997,-.00443145,.0448396,.0986372,.998007,-.00508796,.0448397,.113255,.998008,-.00578985,.04484,.128891,.998003,-.00653683,.0448384,.145548,.997983,-.00732713,.0448358,.163221,.997985,-.00815454,.0448358,.181899,.998005,-.00898985,.0448286,.201533,.998026,-.00964404,.0447934,.221821,.998055,-.00922677,.044611,.241282,.99804,-.0117361,.0448245,.261791,.998048,-.0127628,.0448159,.285181,.998088,-.0138055,.0447996,.30954,.998058,-.0148206,.0447669,.334751,.998099,-.0156998,.044697,.36061,.998116,-.0161976,.0445122,.386603,.998195,-.015945,.0441711,.411844,.998168,-.0183947,.0444255,.43773,.998184,-.0197913,.0443809,.466009,.998251,-.0201426,.0440689,.494574,.998305,-.0198847,.0435632,.522405,.998273,-.0210577,.043414,.549967,.998254,-.0227901,.0433943,.578655,.998349,-.0223108,.0426529,.60758,.99843,-.0223088,.042,.635524,.998373,-.0241141,.0418987,.663621,.998425,-.0231446,.0408118,.691906,.998504,-.0233684,.0400565,.719339,.998443,-.0241652,.0394634,.74643,.99848,-.0228715,.0380002,.773086,.998569,-.023519,.0372322,.798988,.998619,-.0223108,.0356468,.824249,.998594,-.0223105,.034523,.848808,.998622,-.0213426,.0328887,.87227,.998669,-.0207912,.0314374,.895157,.998705,-.0198416,.0296925,.916769,.998786,-.0189168,.0279634,.937773,.998888,-.0178811,.0261597,.957431,.99906,-.0166845,.0242159,.976495,.999038,-.0155464,.0222638,.994169,.999237,-.0141349,.0201967,1.01112,.999378,-.0129324,.0181744,1.02692,.999433,-.0113192,.0159898,1.04174,.999439,-.0101244,.0140385,1.05559,.999614,-.00837456,.0117826,1.06852,.999722,-.00721769,.00983745,1.08069,.999817,-.00554067,.00769002,1.09176,.99983,-.00426961,.005782,1.10211,.999964,-.00273904,.00374503,1.11152,1.00001,-.00136739,.00187176,1.12031,.999946,393227e-10,-28919e-9,1.12804,.995847,-13435e-10,.0671785,19916e-9,.995464,-338387e-10,.0671527,501622e-9,.99547,-135355e-9,.0671531,.00200649,.995471,-30455e-8,.0671532,.00451461,.99547,-541423e-9,.0671531,.008026,.995471,-84598e-8,.0671531,.0125407,.99547,-.00121823,.0671531,.0180589,.99547,-.00165817,.0671531,.0245806,.995463,-.00216583,.0671526,.0321062,.995468,-.00274127,.0671527,.0406366,.995474,-.00338447,.0671534,.0501717,.995473,-.00409554,.0671533,.0607131,.995478,-.00487451,.0671531,.0722618,.995476,-.00572148,.0671532,.0848191,.995477,-.00663658,.0671539,.0983882,.995498,-.00761986,.0671541,.112972,.995509,-.00867094,.0671542,.128568,.995509,-.00978951,.0671531,.145183,.995503,-.0109725,.0671491,.162808,.995501,-.012211,.0671465,.181441,.99553,-.0134565,.0671371,.201015,.99555,-.014391,.0670831,.221206,.99558,-.014351,.0668883,.240813,.995577,-.0173997,.0671055,.261257,.995602,-.0191111,.0671178,.284467,.995623,-.0206705,.0670946,.308765,.995658,-.022184,.0670472,.333905,.995705,-.0234832,.0669417,.359677,.995719,-.0241933,.0666714,.385554,.995786,-.0243539,.066266,.410951,.995887,-.0271866,.0664367,.437163,.995944,-.0296012,.0664931,.464842,.996004,-.0301045,.0660105,.49332,.996128,-.0298311,.0652694,.521131,.996253,-.0316426,.0650739,.549167,.996244,-.0339043,.0649433,.57737,.996309,-.033329,.0638926,.606073,.996417,-.0338935,.0630849,.634527,.996372,-.0353104,.0625083,.66256,.996542,-.0348942,.0611986,.690516,.996568,-.0351614,.060069,.718317,.996711,-.0354317,.0588522,.74528,.996671,-.0349513,.0571902,.772061,.996865,-.0345622,.0555321,.798089,.996802,-.0342566,.0537816,.823178,.996992,-.0330862,.0516095,.847949,.996944,-.0324666,.0495537,.871431,.997146,-.0309544,.0470302,.894357,.997189,-.0299372,.0446043,.916142,.997471,-.0281389,.0418812,.937193,.997515,-.0268702,.0391823,.957,.997812,-.0247166,.0361338,.975936,.998027,-.0233525,.0333945,.99391,.998233,-.0209839,.0301917,1.01075,.998481,-.0194309,.027271,1.02669,.998859,-.0169728,.0240162,1.04173,.99894,-.0152322,.0210517,1.05551,.999132,-.0127497,.0178632,1.06856,.999369,-.0108282,.014787,1.08054,.999549,-.00845886,.0116185,1.09185,.999805,-.0063937,.00867209,1.10207,.99985,-.00414582,.00566823,1.1117,.999912,-.00207443,.00277562,1.12022,1.00001,870226e-10,-53766e-9,1.12832,.991943,-178672e-11,.0893382,198384e-10,.991952,-450183e-10,.089339,499849e-9,.991956,-180074e-9,.0893394,.0019994,.991955,-405167e-9,.0893393,.00449867,.991953,-720298e-9,.0893391,.00799764,.991955,-.00112548,.0893393,.0124964,.991957,-.0016207,.0893395,.0179951,.991958,-.00220601,.0893396,.0244939,.991947,-.00288137,.0893385,.0319929,.991962,-.00364693,.0893399,.0404933,.991965,-.00450264,.0893399,.049995,.99198,-.00544862,.0893411,.0604995,.99197,-.00648491,.0893397,.0720074,.991976,-.00761164,.089341,.0845207,.99198,-.00882891,.0893405,.0980413,.991982,-.0101367,.0893396,.112571,.992008,-.011535,.0893415,.128115,.992026,-.0130228,.0893414,.144672,.992064,-.0145966,.0893418,.162241,.992041,-.0162421,.0893359,.180801,.992086,-.0178888,.0893214,.200302,.992157,-.0190368,.0892401,.220332,.992181,-.0195584,.0890525,.240144,.992175,-.0227257,.0892153,.260728,.99221,-.0254195,.089304,.283473,.99222,-.0274883,.0892703,.307673,.992317,-.0294905,.0892027,.332729,.992374,-.0311861,.0890577,.358387,.992505,-.0320656,.0886994,.384102,.992568,-.0329715,.0883198,.409767,.992675,-.036006,.0883602,.436145,.992746,-.0392897,.0884591,.463217,.992873,-.0399337,.0878287,.491557,.992934,-.040231,.0870108,.519516,.993091,-.0422013,.0865857,.547741,.993259,-.0443503,.0861937,.575792,.993455,-.0446368,.0851187,.604233,.993497,-.0454299,.0840576,.632925,.993694,-.0463296,.0829671,.660985,.993718,-.0470619,.0817185,.688714,.993973,-.0468838,.0800294,.716743,.994207,-.046705,.0781286,.74377,.994168,-.0469698,.0763337,.77042,.9945,-.0456816,.0738184,.796659,.994356,-.0455518,.0715545,.821868,.994747,-.0439488,.0686085,.846572,.994937,-.0430056,.065869,.870435,.995142,-.0413414,.0626446,.893272,.995451,-.0396521,.05929,.915376,.995445,-.0378453,.0558503,.936196,.995967,-.0355219,.0520949,.956376,.996094,-.0335146,.048377,.975327,.996622,-.030682,.0442575,.993471,.996938,-.0285504,.0404693,1.01052,.997383,-.0253399,.0360903,1.02637,.997714,-.0231651,.0322176,1.04139,.998249,-.0198138,.0278433,1.05542,.998596,-.0174337,.0238759,1.06846,.998946,-.0141349,.0195944,1.08056,.99928,-.0115603,.0156279,1.09181,.999507,-.00839065,.0114607,1.10213,.999697,-.005666,.00763325,1.11169,.999869,-.00269902,.00364946,1.12042,1.00001,623836e-10,-319288e-10,1.12832,.987221,-222675e-11,.111332,197456e-10,.98739,-561116e-10,.111351,497563e-9,.987448,-224453e-9,.111357,.00199031,.987441,-505019e-9,.111357,.0044782,.987442,-897816e-9,.111357,.00796129,.987442,-.00140284,.111357,.0124396,.987444,-.00202012,.111357,.0179132,.987442,-.00274964,.111357,.0243824,.987446,-.00359147,.111357,.0318474,.987435,-.00454562,.111356,.0403086,.987461,-.00561225,.111358,.0497678,.987458,-.00679125,.111358,.0602239,.987443,-.0080828,.111356,.0716792,.987476,-.0094872,.111358,.0841364,.98749,-.0110044,.111361,.097597,.987508,-.0126344,.111362,.112062,.987494,-.0143767,.111357,.127533,.987526,-.0162307,.111359,.144015,.987558,-.0181912,.111361,.161502,.987602,-.0202393,.111355,.179979,.987692,-.022273,.111346,.199386,.987702,-.0235306,.111215,.219183,.987789,-.0247628,.111061,.239202,.987776,-.0280668,.111171,.259957,.987856,-.0316751,.111327,.282198,.987912,-.0342468,.111282,.306294,.988,-.0367205,.111198,.331219,.988055,-.0387766,.110994,.356708,.988241,-.0397722,.110547,.382234,.988399,-.0416076,.110198,.408227,.988539,-.0448192,.110137,.434662,.988661,-.0483793,.110143,.461442,.988967,-.0495895,.109453,.489318,.989073,-.0506797,.108628,.517516,.989274,-.0526953,.108003,.545844,.989528,-.054578,.107255,.573823,.989709,-.0561503,.106294,.601944,.989991,-.056866,.104896,.630855,.990392,-.0572914,.103336,.658925,.990374,-.0586224,.10189,.686661,.990747,-.0584764,.099783,.714548,.991041,-.0582662,.0974309,.74186,.991236,-.0584118,.0951678,.768422,.991585,-.0573055,.0921581,.794817,.991984,-.0564241,.0891167,.820336,.9921,-.0553608,.085805,.84493,.992749,-.0533816,.0820354,.868961,.99288,-.0518661,.0782181,.891931,.993511,-.0492492,.0738935,.914186,.993617,-.0471956,.0696402,.93532,.99411,-.044216,.0649659,.95543,.994595,-.0416654,.0603177,.974685,.994976,-.0384314,.0553493,.992807,.995579,-.0353491,.0503942,1.00996,.996069,-.0319787,.0452123,1.02606,.996718,-.028472,.0400112,1.04114,.997173,-.0250789,.0349456,1.05517,.997818,-.0213326,.029653,1.0683,.998318,-.0178509,.024549,1.0805,.998853,-.0141118,.0194197,1.09177,.999218,-.0105914,.0143869,1.1022,.999594,-.00693474,.00943517,1.11175,.99975,-.00340478,.00464051,1.12056,1.00001,109172e-9,-112821e-9,1.12853,.983383,-266524e-11,.133358,196534e-10,.981942,-671009e-10,.133162,494804e-9,.981946,-268405e-9,.133163,.00197923,.981944,-603912e-9,.133163,.00445326,.981941,-.00107362,.133162,.00791693,.981946,-.00167755,.133163,.0123703,.981944,-.00241569,.133162,.0178135,.981945,-.00328807,.133163,.0242466,.981945,-.00429472,.133162,.03167,.981955,-.00543573,.133164,.0400846,.981951,-.00671105,.133163,.0494901,.981968,-.00812092,.133165,.0598886,.981979,-.00966541,.133166,.0712811,.981996,-.0113446,.133168,.083669,.982014,-.0131585,.133169,.0970533,.982011,-.0151073,.133167,.111438,.982062,-.0171906,.133172,.126826,.9821,-.0194067,.133175,.143215,.982149,-.0217502,.133176,.160609,.982163,-.0241945,.133173,.178981,.982247,-.0265907,.133148,.198249,.982291,-.027916,.132974,.217795,.982396,-.0299663,.132868,.238042,.982456,-.0334544,.132934,.258901,.982499,-.0378636,.133137,.280639,.982617,-.0409274,.133085,.304604,.98274,-.0438523,.132985,.329376,.982944,-.0462288,.132728,.354697,.98308,-.0475995,.132228,.380102,.983391,-.0501901,.131924,.406256,.983514,-.0535899,.131737,.432735,.98373,-.0571858,.131567,.459359,.984056,-.0592353,.130932,.486637,.984234,-.0610488,.130092,.51509,.984748,-.0630758,.12923,.543461,.985073,-.0647398,.128174,.571376,.985195,-.0671941,.127133,.599414,.985734,-.0681345,.125576,.628134,.986241,-.0686089,.123639,.656399,.986356,-.0698511,.121834,.684258,.986894,-.0700931,.119454,.711818,.987382,-.0698321,.116718,.739511,.988109,-.0693975,.113699,.766267,.988363,-.0689584,.110454,.792456,.989112,-.0672353,.106602,.81813,.989241,-.0662034,.10267,.842889,.990333,-.0638938,.0981381,.867204,.990591,-.0618534,.0935388,.89038,.991106,-.0593117,.088553,.912576,.991919,-.0562676,.0832187,.934118,.992111,-.0534085,.0778302,.954254,.992997,-.0495459,.0720453,.973722,.993317,-.0463707,.0663458,.991949,.994133,-.0421245,.0601883,1.00936,.994705,-.0384977,.0542501,1.02559,.995495,-.0340956,.0479862,1.04083,.996206,-.030105,.041887,1.05497,.996971,-.0256095,.0355355,1.06824,.997796,-.0213932,.0293655,1.08056,.998272,-.0169612,.0232926,1.09182,.998857,-.0126756,.0172786,1.10219,.99939,-.00832486,.0113156,1.11192,.999752,-.00410826,.00557892,1.12075,1,150957e-9,-119101e-9,1.12885,.975169,-309397e-11,.154669,195073e-10,.975439,-779608e-10,.154712,491534e-9,.975464,-311847e-9,.154716,.00196617,.975464,-701656e-9,.154716,.00442387,.975462,-.0012474,.154715,.0078647,.975461,-.00194906,.154715,.0122886,.975464,-.00280667,.154715,.0176959,.975468,-.00382025,.154716,.0240867,.975471,-.00498985,.154716,.0314612,.975472,-.00631541,.154717,.0398199,.975486,-.00779719,.154718,.0491639,.975489,-.00943505,.154718,.0594932,.975509,-.0112295,.154721,.0708113,.97554,-.0131802,.154724,.0831176,.975557,-.0152876,.154726,.096415,.975585,-.0175512,.154728,.110705,.975605,-.0199713,.154729,.125992,.975645,-.0225447,.154729,.142272,.975711,-.0252649,.154735,.159549,.975788,-.0280986,.154736,.177805,.975872,-.0308232,.154704,.196911,.975968,-.0324841,.154525,.216324,.976063,-.0351281,.154432,.236628,.976157,-.0388618,.15446,.257539,.976204,-.0437704,.154665,.278975,.976358,-.047514,.154652,.302606,.976571,-.0508638,.154535,.327204,.976725,-.0534995,.154221,.352276,.977013,-.0555547,.153737,.377696,.977294,-.0586728,.153403,.403855,.977602,-.0622715,.15312,.430333,.977932,-.0658166,.152755,.456855,.978241,-.0689877,.152233,.483668,.978602,-.0712805,.15132,.512097,.979234,-.0732775,.150235,.540455,.97977,-.075163,.148978,.568486,.979995,-.0778026,.147755,.596524,.98078,-.0791854,.146019,.624825,.981628,-.0799666,.143906,.653403,.982067,-.0808532,.141561,.681445,.98271,-.0816024,.139025,.708918,.983734,-.0812511,.135764,.736594,.98431,-.0806201,.132152,.763576,.985071,-.0801605,.12846,.789797,.98618,-.0784208,.124084,.815804,.986886,-.0766643,.1193,.840869,.987485,-.0747744,.114236,.864952,.988431,-.0716701,.108654,.888431,.988886,-.0691609,.102994,.910963,.990024,-.0654048,.0967278,.932629,.990401,-.0619765,.090384,.95313,.991093,-.0579296,.0837885,.972587,.992018,-.0536576,.0770171,.991184,.992536,-.0493719,.0701486,1.00863,.993421,-.0444813,.062953,1.02494,.993928,-.040008,.0560455,1.04017,.994994,-.0347982,.04856,1.05463,.995866,-.0301017,.0416152,1.06807,.996916,-.0248225,.0342597,1.08039,.997766,-.0199229,.0271668,1.09177,.998479,-.0147422,.0201387,1.10235,.99921,-.00980173,.0131944,1.11206,.999652,-.0047426,.00640712,1.12104,.999998,891673e-10,-10379e-8,1.12906,.967868,-351885e-11,.175947,193569e-10,.968001,-886733e-10,.175972,487782e-9,.96801,-354697e-9,.175973,.00195115,.968012,-798063e-9,.175974,.00439006,.968011,-.00141879,.175973,.00780461,.968011,-.00221686,.175973,.0121948,.968016,-.00319231,.175974,.0175607,.968019,-.00434515,.175974,.0239027,.968018,-.00567538,.175974,.0312208,.968033,-.00718308,.175977,.0395158,.968049,-.00886836,.175979,.0487885,.968047,-.0107312,.175978,.0590394,.968072,-.0127719,.175981,.0702705,.968108,-.0149905,.175986,.0824836,.968112,-.0173866,.175985,.0956783,.968173,-.0199611,.175993,.109862,.96827,-.0227128,.176008,.125033,.968292,-.025639,.17601,.141193,.968339,-.0287299,.176007,.158336,.968389,-.0319399,.176001,.176441,.968501,-.034941,.175962,.195359,.968646,-.0370812,.175793,.214686,.968789,-.0402329,.175708,.234973,.96886,-.0442601,.1757,.255871,.969013,-.049398,.175876,.277238,.969242,-.0539932,.17594,.300326,.969419,-.0577299,.175781,.324702,.969763,-.0605643,.175432,.349527,.970093,-.0634488,.174992,.374976,.970361,-.0670589,.174611,.401097,.970825,-.0708246,.174226,.427496,.971214,-.0742871,.173684,.453858,.971622,-.0782608,.173186,.480637,.972175,-.0813151,.172288,.508655,.972944,-.0832678,.170979,.536973,.973595,-.0855964,.169573,.565138,.974345,-.0882163,.168152,.593222,.975233,-.0901671,.166314,.621201,.976239,-.0912111,.163931,.649919,.977289,-.0916959,.161106,.678011,.978076,-.0927061,.158272,.705717,.979533,-.0925562,.15475,.733228,.980335,-.0918159,.150638,.760454,.981808,-.0908508,.146201,.786918,.983061,-.0896172,.141386,.812953,.984148,-.0871588,.135837,.838281,.985047,-.0850624,.130135,.862594,.986219,-.0818541,.123882,.88633,.987043,-.0784523,.117126,.908952,.988107,-.0749601,.110341,.930744,.988955,-.0703548,.102885,.951728,.989426,-.0662798,.0954167,.971166,.990421,-.0610834,.0876331,.989984,.991032,-.0562936,.0797785,1.00765,.992041,-.0508154,.0718166,1.02434,.992794,-.0454045,.0637125,1.03976,.993691,-.0398194,.0555338,1.05418,.994778,-.0341482,.0473388,1.06772,.995915,-.028428,.0391016,1.08028,.997109,-.022642,.0309953,1.09185,.998095,-.0168738,.0230288,1.10247,.998985,-.0111274,.0150722,1.11229,.999581,-.00543881,.00740605,1.12131,1.00003,162239e-9,-105549e-9,1.12946,.959505,-393734e-11,.196876,191893e-10,.959599,-992157e-10,.196895,483544e-9,.959641,-396868e-9,.196903,.0019342,.959599,-892948e-9,.196895,.00435193,.959603,-.00158747,.196896,.0077368,.959604,-.00248042,.196896,.0120888,.959605,-.00357184,.196896,.0174082,.959605,-.00486169,.196896,.0236949,.959613,-.00635008,.196897,.0309497,.959619,-.00803696,.196898,.0391725,.959636,-.00992255,.196901,.0483649,.959634,-.0120067,.1969,.0585266,.959675,-.0142898,.196906,.0696609,.959712,-.0167717,.196911,.0817678,.959752,-.0194524,.196918,.0948494,.959807,-.0223321,.196925,.10891,.959828,-.0254091,.196924,.123947,.959906,-.0286815,.196934,.139968,.960005,-.0321371,.196944,.156968,.960071,-.0357114,.196936,.17491,.960237,-.0389064,.196882,.193597,.960367,-.041623,.196731,.21285,.960562,-.0452655,.196654,.233075,.960735,-.0496207,.196643,.253941,.960913,-.0549379,.196774,.275278,.961121,-.0603414,.196893,.297733,.96139,-.0644244,.196717,.321877,.961818,-.067556,.196314,.346476,.962175,-.0712709,.195917,.371907,.96255,-.0752848,.1955,.397916,.963164,-.0792073,.195026,.424229,.963782,-.0828225,.194424,.450637,.964306,-.0873119,.193831,.477288,.964923,-.0911051,.192973,.504716,.966048,-.093251,.19151,.533053,.967024,-.0958983,.190013,.561366,.968038,-.09835,.188253,.589464,.969152,-.100754,.186257,.617433,.970557,-.102239,.183775,.645801,.972104,-.102767,.180645,.674278,.973203,-.103492,.177242,.702004,.975123,-.103793,.17345,.729529,.97641,-.102839,.168886,.756712,.978313,-.101687,.163892,.783801,.980036,-.100314,.158439,.809671,.981339,-.097836,.152211,.835402,.982794,-.0950006,.145679,.860081,.984123,-.0920994,.138949,.883757,.984918,-.0878641,.131283,.90685,.985999,-.083939,.123464,.928786,.987151,-.0791234,.115324,.94983,.987827,-.0739332,.106854,.96962,.988806,-.0688088,.0982691,.98861,.989588,-.0628962,.0893456,1.00667,.990438,-.0573146,.0805392,1.02344,.991506,-.0509433,.0713725,1.03933,.992492,-.0448724,.0623732,1.05378,.993663,-.0383497,.0530838,1.06747,.994956,-.0319593,.0439512,1.08007,.99634,-.025401,.0347803,1.09182,.99761,-.0189687,.0257954,1.1025,.99863,-.0124441,.0169893,1.11247,.99947,-.00614003,.00829498,1.12151,1.00008,216624e-9,-146107e-9,1.12993,.950129,-434955e-11,.217413,190081e-10,.950264,-10957e-8,.217444,47884e-8,.9503,-438299e-9,.217451,.00191543,.950246,-986124e-9,.21744,.00430951,.950246,-.00175311,.21744,.00766137,.950245,-.00273923,.21744,.011971,.950253,-.00394453,.217441,.0172385,.950258,-.00536897,.217442,.0234641,.950267,-.00701262,.217444,.030648,.950277,-.00887551,.217446,.038791,.950284,-.0109576,.217446,.0478931,.950312,-.0132591,.217451,.0579568,.950334,-.01578,.217454,.0689821,.950378,-.0185204,.217462,.0809714,.950417,-.0214803,.217467,.0939265,.950488,-.0246594,.217479,.10785,.950534,-.0280565,.217483,.122743,.950633,-.0316685,.217498,.138611,.950698,-.0354787,.217499,.155442,.950844,-.0394003,.217507,.173208,.950999,-.0426812,.217419,.191605,.951221,-.0461302,.217317,.21084,.951412,-.0502131,.217238,.230945,.951623,-.0549183,.21722,.251745,.951867,-.0604493,.217306,.273001,.952069,-.0665189,.217466,.294874,.952459,-.0709179,.217266,.318732,.952996,-.0746112,.216891,.34318,.953425,-.0789252,.216503,.36849,.953885,-.0833293,.216042,.394373,.954617,-.087371,.215469,.420505,.955429,-.0914054,.214802,.446907,.956068,-.0961671,.214146,.473522,.957094,-.10048,.213286,.50052,.958372,-.103248,.211796,.528715,.959654,-.106033,.21016,.557065,.961305,-.108384,.208149,.585286,.962785,-.111122,.206024,.613334,.964848,-.112981,.203442,.641334,.966498,-.113717,.19996,.669955,.968678,-.114121,.196105,.698094,.970489,-.114524,.191906,.725643,.972903,-.113792,.186963,.752856,.974701,-.112406,.181343,.780013,.976718,-.110685,.175185,.806268,.978905,-.108468,.168535,.832073,.980267,-.105061,.161106,.857149,.981967,-.101675,.153387,.881145,.983063,-.0974492,.145199,.904255,.984432,-.0925815,.136527,.926686,.985734,-.0877983,.127584,.947901,.986228,-.081884,.118125,.968111,.98719,-.0761208,.108594,.98719,.988228,-.0698196,.0989996,1.00559,.989046,-.0632739,.0890074,1.02246,.990242,-.056522,.0790832,1.03841,.991252,-.0495272,.0689182,1.05347,.992542,-.0425373,.0588592,1.06724,.994096,-.0353198,.0486833,1.08009,.995593,-.028235,.0385977,1.09177,.99711,-.0209511,.0286457,1.10274,.998263,-.0139289,.0188497,1.11262,.999254,-.0067359,.009208,1.12191,.999967,141846e-9,-657764e-10,1.13024,.935608,-474692e-11,.236466,187817e-10,.93996,-11971e-8,.237568,473646e-9,.939959,-478845e-9,.237567,.0018946,.939954,-.0010774,.237566,.00426284,.939956,-.00191538,.237566,.00757842,.939954,-.00299277,.237566,.0118413,.93996,-.00430961,.237567,.0170518,.939969,-.00586589,.237569,.02321,.939982,-.00766166,.237572,.0303164,.939987,-.00969686,.237572,.0383711,.939997,-.0119715,.237574,.0473751,.940031,-.0144858,.237581,.0573298,.940073,-.0172399,.237589,.0682366,.94012,-.0202335,.237598,.080097,.940162,-.0234663,.237604,.0929116,.940237,-.0269387,.237615,.106686,.940328,-.0306489,.237632,.121421,.940419,-.0345917,.237645,.137115,.940522,-.0387481,.237654,.153766,.940702,-.0429906,.237661,.17133,.940871,-.0465089,.237561,.189502,.941103,-.050531,.23748,.208616,.941369,-.0550657,.237423,.228595,.941641,-.0601337,.237399,.249287,.941903,-.0658804,.237443,.270467,.942224,-.0722674,.237597,.292024,.942633,-.0771788,.237419,.315272,.943172,-.0815623,.237068,.339579,.943691,-.0863973,.236682,.364717,.944382,-.0911536,.236213,.390435,.945392,-.0952967,.235562,.416425,.946185,-.0998948,.234832,.442772,.947212,-.104796,.234114,.469347,.948778,-.10928,.233222,.496162,.950149,-.113081,.231845,.523978,.951989,-.115893,.230005,.552295,.953921,-.11846,.227862,.580569,.955624,-.12115,.225439,.608698,.958234,-.123373,.222635,.636696,.960593,-.124519,.219093,.665208,.963201,-.124736,.214749,.693557,.965642,-.125012,.210059,.721334,.968765,-.124661,.204935,.748613,.971753,-.122996,.198661,.776224,.973751,-.120998,.191823,.802461,.976709,-.118583,.184359,.828399,.977956,-.115102,.176437,.853693,.979672,-.111077,.167681,.877962,.981816,-.10688,.158872,.901564,.98238,-.101469,.149398,.924057,.983964,-.0960013,.139436,.945751,.984933,-.0899626,.12943,.966272,.985694,-.0832973,.11894,.985741,.986822,-.0767082,.108349,1.00407,.987725,-.0693614,.0976026,1.02154,.98877,-.06211,.086652,1.03757,.990129,-.0544143,.0756182,1.05296,.991337,-.046744,.0645753,1.06683,.992978,-.0387931,.0534683,1.0798,.994676,-.030973,.0424137,1.09181,.99645,-.0230311,.0314035,1.10286,.997967,-.0152065,.0206869,1.11291,.99922,-.00744837,.010155,1.12237,1.00002,240209e-9,-752767e-10,1.13089,.922948,-515351e-11,.255626,186069e-10,.928785,-129623e-9,.257244,468009e-9,.928761,-51849e-8,.257237,.00187202,.928751,-.0011666,.257235,.00421204,.928751,-.00207395,.257234,.0074881,.928754,-.00324055,.257235,.0117002,.92876,-.00466639,.257236,.0168486,.928763,-.00635149,.257237,.0229334,.928774,-.00829584,.257239,.029955,.928791,-.0104995,.257243,.0379139,.928804,-.0129623,.257245,.0468108,.928847,-.0156846,.257255,.0566473,.92889,-.0186661,.257263,.0674246,.928924,-.0219067,.257268,.0791433,.928989,-.0254066,.257282,.0918076,.92909,-.0291651,.257301,.105419,.92918,-.0331801,.257316,.119978,.92929,-.0374469,.257332,.135491,.929453,-.041939,.257357,.151948,.929586,-.0464612,.257347,.169275,.929858,-.0503426,.257269,.187257,.930125,-.0548409,.257199,.206204,.930403,-.0598063,.257149,.22601,.930726,-.0652437,.257122,.246561,.931098,-.0712376,.257153,.267618,.931396,-.0777506,.257237,.288993,.931947,-.0832374,.257124,.311527,.932579,-.0883955,.25683,.335697,.933194,-.0937037,.256444,.360634,.934013,-.0987292,.255939,.386126,.935307,-.103215,.255282,.412018,.936374,-.108234,.254538,.438292,.93776,-.113234,.253728,.464805,.939599,-.118013,.25275,.491464,.941036,-.122661,.251404,.518751,.94337,-.125477,.249435,.547133,.945318,-.128374,.247113,.575456,.947995,-.130996,.244441,.60372,.950818,-.133438,.241352,.63174,.954378,-.135004,.237849,.659971,.957151,-.135313,.233188,.688478,.960743,-.13521,.228001,.716767,.964352,-.135007,.222249,.744349,.967273,-.133523,.21542,.771786,.969767,-.131155,.208039,.798639,.973195,-.128492,.200076,.824774,.975557,-.125094,.191451,.850222,.977692,-.120578,.18184,.874761,.98026,-.115882,.172102,.898497,.981394,-.110372,.161859,.921636,.982386,-.10415,.15108,.943467,.983783,-.0978128,.140407,.964045,.98422,-.0906171,.129058,.98398,.985447,-.0832921,.117614,1.00276,.986682,-.0754412,.10585,1.02047,.987326,-.0673885,.0940943,1.03678,.988707,-.0592565,.0822093,1.05218,.990185,-.050717,.070192,1.06652,.991866,-.0423486,.0582081,1.07965,.993897,-.0336118,.0460985,1.09188,.995841,-.0252178,.0342737,1.10307,.997605,-.0164893,.0224829,1.11324,.999037,-.00817112,.0110647,1.12262,1.00003,291686e-9,-168673e-9,1.13139,.915304,-552675e-11,.275999,183285e-10,.91668,-139285e-9,.276414,461914e-9,.916664,-55713e-8,.276409,.00184763,.916653,-.00125354,.276406,.00415715,.916651,-.00222851,.276405,.00739053,.916655,-.00348205,.276406,.0115478,.916653,-.00501414,.276405,.0166291,.916667,-.00682478,.276409,.0226346,.91668,-.00891398,.276412,.0295648,.91669,-.0112817,.276413,.0374199,.916727,-.013928,.276422,.0462016,.916759,-.0168528,.276429,.0559101,.916793,-.0200558,.276436,.0665466,.916849,-.0235373,.276448,.0781139,.916964,-.0272973,.276474,.0906156,.917047,-.0313344,.276491,.104051,.917152,-.0356465,.276511,.118424,.917286,-.0402271,.276533,.133736,.917469,-.0450408,.276564,.149978,.917686,-.0497872,.276563,.167057,.917953,-.0540937,.276493,.184846,.918228,-.0590709,.276437,.203614,.918572,-.0644277,.276398,.223212,.918918,-.0702326,.276362,.243584,.919356,-.076484,.276383,.264465,.919842,-.0830808,.276434,.285701,.920451,-.0892972,.276407,.307559,.921113,-.095016,.276128,.331501,.921881,-.100771,.275754,.356207,.923027,-.106029,.275254,.381477,.924364,-.111029,.274595,.40722,.925818,-.116345,.273841,.433385,.92746,-.121424,.272913,.459848,.929167,-.12657,.271837,.486493,.931426,-.131581,.270575,.513432,.934001,-.135038,.268512,.541502,.936296,-.138039,.266135,.569658,.939985,-.140687,.263271,.598375,.943516,-.143247,.260058,.626563,.94782,-.145135,.256138,.654711,.951023,-.145733,.251154,.683285,.955338,-.145554,.245562,.711831,.959629,-.145008,.239265,.739573,.963123,-.144003,.232064,.767027,.966742,-.141289,.224036,.794359,.969991,-.138247,.215305,.820361,.973403,-.134786,.206051,.846548,.975317,-.129966,.195914,.871541,.977647,-.12471,.185184,.895313,.980137,-.119086,.174161,.918398,.981031,-.112297,.162792,.940679,.982037,-.105372,.150952,.961991,.983164,-.097821,.138921,.981913,.983757,-.0897245,.126611,1.00109,.985036,-.0815974,.114228,1.01902,.986289,-.0727725,.101389,1.03604,.987329,-.0639323,.0886476,1.05149,.989193,-.0548109,.0756837,1.06619,.990716,-.045687,.0627581,1.07948,.992769,-.0364315,.0498337,1.09172,.99524,-.0271761,.0370305,1.1033,.997154,-.0179609,.0243959,1.11353,.998845,-.00878063,.0119567,1.12319,1.00002,259038e-9,-108146e-9,1.13177,.903945,-591681e-11,.295126,181226e-10,.903668,-148672e-9,.295037,455367e-9,.903677,-594683e-9,.29504,.00182145,.903673,-.00133805,.295039,.00409831,.903666,-.00237872,.295036,.00728584,.903668,-.00371676,.295037,.0113842,.903679,-.00535212,.29504,.0163936,.903684,-.00728479,.295041,.0223141,.903698,-.00951473,.295044,.0291462,.903718,-.0120419,.295049,.0368904,.903754,-.0148664,.295058,.0455477,.903801,-.017988,.29507,.0551194,.903851,-.0214064,.295082,.0656058,.903921,-.0251219,.295097,.0770109,.904002,-.0291337,.295116,.0893354,.904111,-.033441,.29514,.102583,.904246,-.0380415,.295169,.116755,.904408,-.0429258,.295202,.131853,.904637,-.0480468,.295245,.147869,.904821,-.0529208,.295214,.164658,.905163,-.0577748,.295185,.182274,.905469,-.0631763,.295143,.200828,.905851,-.068917,.295112,.2202,.906322,-.0750861,.295104,.240372,.906761,-.0815855,.295086,.261082,.90735,-.0882138,.295095,.282123,.908087,-.095082,.295139,.303563,.908826,-.101488,.29492,.327028,.909832,-.107577,.294577,.351464,.911393,-.113033,.294115,.376497,.912804,-.118629,.293446,.402115,.914081,-.124232,.292581,.428111,.91637,-.129399,.29166,.454442,.91814,-.134892,.290422,.481024,.921179,-.140069,.289194,.507924,.924544,-.144431,.287421,.535557,.927995,-.147498,.284867,.563984,.931556,-.150197,.281722,.5923,.935777,-.152711,.278207,.620832,.940869,-.154836,.274148,.649069,.945994,-.155912,.269057,.677746,.949634,-.155641,.262799,.706293,.955032,-.154809,.256097,.734278,.95917,-.153678,.248618,.761751,.962931,-.151253,.239794,.789032,.966045,-.147625,.230281,.815422,.96971,-.143964,.220382,.841787,.972747,-.139464,.209846,.867446,.975545,-.133459,.198189,.892004,.978381,-.127424,.186362,.915458,.979935,-.120506,.173964,.937948,.980948,-.11282,.161429,.959732,.982234,-.104941,.148557,.980118,.982767,-.0962905,.135508,.999463,.983544,-.0873625,.122338,1.01756,.984965,-.0783447,.108669,1.03492,.986233,-.0684798,.0949911,1.05087,.987796,-.0590867,.0811386,1.0656,.989885,-.0489145,.0673099,1.0794,.991821,-.0391,.0535665,1.09174,.99448,-.029087,.0397529,1.10341,.996769,-.019114,.0261463,1.11383,.998641,-.00947007,.0128731,1.1237,.999978,446316e-9,-169093e-9,1.13253,.888362,-627064e-11,.312578,178215e-10,.889988,-157791e-9,.313148,448451e-9,.889825,-631076e-9,.313092,.00179356,.88984,-.00141994,.313097,.00403554,.889828,-.0025243,.313092,.00717429,.889831,-.00394421,.313093,.0112099,.889831,-.00567962,.313093,.0161425,.889844,-.00773051,.313096,.0219724,.889858,-.0100968,.3131,.0286999,.889882,-.0127786,.313106,.0363256,.889918,-.0157757,.313116,.0448509,.889967,-.0190878,.313129,.0542758,.89003,-.022715,.313145,.0646032,.890108,-.0266566,.313165,.0758339,.890218,-.0309131,.313193,.0879729,.890351,-.0354819,.313226,.101019,.89051,-.0403613,.313263,.114979,.890672,-.0455385,.313294,.129848,.890882,-.0509444,.313333,.145616,.891189,-.0559657,.313324,.162122,.891457,-.0613123,.313281,.179524,.891856,-.0671488,.313281,.197855,.892312,-.0732732,.313268,.216991,.892819,-.0797865,.313263,.236924,.893369,-.0865269,.313247,.257433,.894045,-.0931592,.313205,.278215,.894884,-.100532,.313276,.299467,.895832,-.107716,.313205,.322276,.897043,-.114099,.312873,.34642,.898515,-.119941,.312331,.371187,.900191,-.126044,.311731,.396656,.90188,-.131808,.310859,.422488,.904359,-.137289,.309857,.448744,.906923,-.142991,.308714,.475239,.910634,-.148253,.307465,.501983,.914502,-.153332,.305774,.529254,.919046,-.156646,.303156,.557709,.923194,-.159612,.299928,.586267,.928858,-.162027,.296245,.614925,.934464,-.164203,.291832,.643187,.939824,-.165602,.286565,.671601,.944582,-.165383,.280073,.700213,.949257,-.164439,.272891,.728432,.954389,-.162953,.264771,.756082,.958595,-.161007,.255927,.78369,.962138,-.157243,.245769,.810769,.966979,-.152872,.235127,.836999,.969566,-.148209,.22347,.862684,.972372,-.142211,.211147,.887847,.975916,-.135458,.198606,.911843,.978026,-.128398,.185498,.934795,.979686,-.120313,.17171,.956787,.980748,-.11166,.158159,.978046,.981622,-.103035,.144399,.997693,.982356,-.0930328,.13001,1.01642,.983308,-.0834627,.115778,1.03366,.985037,-.0732249,.101327,1.05014,.986493,-.0628145,.086554,1.06507,.988484,-.0526556,.0720413,1.07907,.991051,-.0415744,.0571151,1.09189,.993523,-.0314275,.0426643,1.10369,.99628,-.0203603,.0279325,1.11423,.998344,-.0102446,.0138182,1.12421,.999997,42612e-8,-193628e-9,1.1333,.871555,-660007e-11,.329176,174749e-10,.875255,-166579e-9,.330571,441051e-9,.875644,-666394e-9,.330718,.00176441,.875159,-.00149903,.330536,.00396899,.87516,-.00266493,.330536,.007056,.875158,-.00416393,.330535,.0110251,.87516,-.00599598,.330535,.0158764,.875163,-.00816108,.330536,.0216101,.875174,-.0106591,.330538,.0282266,.875199,-.0134899,.330545,.0357266,.875257,-.0166538,.330563,.0441117,.875304,-.0201501,.330575,.0533821,.875373,-.0239785,.330595,.0635395,.875464,-.0281389,.330619,.0745872,.875565,-.0326301,.330645,.0865255,.875691,-.0374516,.330676,.0993599,.875897,-.0425993,.330733,.113093,.876091,-.0480576,.330776,.127722,.876353,-.0537216,.330826,.143227,.876649,-.0589807,.330809,.159462,.877034,-.0647865,.330819,.176642,.877443,-.0709789,.330817,.194702,.877956,-.0774782,.330832,.213577,.878499,-.0843175,.330822,.233246,.879144,-.0912714,.330804,.253512,.879982,-.0980824,.330766,.274137,.88097,-.105823,.330864,.295209,.882051,-.113671,.330896,.317226,.883397,-.120303,.330545,.341068,.884987,-.12667,.330068,.365613,.886789,-.133118,.329418,.390807,.889311,-.139024,.328683,.416494,.891995,-.144971,.327729,.442618,.895106,-.150747,.326521,.469131,.899527,-.156283,.325229,.495921,.90504,-.161707,.32378,.523162,.909875,-.165661,.32122,.55092,.91561,-.168755,.317942,.579928,.921225,-.171193,.313983,.608539,.927308,-.17319,.309636,.636854,.933077,-.174819,.304262,.66523,.938766,-.175002,.297563,.693609,.943667,-.173946,.289613,.722157,.949033,-.172221,.281227,.750021,.953765,-.169869,.271545,.777466,.95804,-.166578,.261034,.804853,.962302,-.161761,.249434,.831569,.966544,-.156636,.237484,.857779,.969372,-.150784,.224395,.883051,.972486,-.143672,.210786,.907864,.975853,-.135772,.196556,.931223,.977975,-.127942,.182307,.954061,.979122,-.118347,.167607,.97531,.980719,-.109112,.152739,.995666,.981223,-.0991789,.137932,1.01475,.98216,-.0883553,.122692,1.03253,.983379,-.0780825,.107493,1.04917,.985434,-.0665646,.0917791,1.06464,.987332,-.0557714,.0764949,1.07896,.990004,-.0442805,.060721,1.09199,.992975,-.0331676,.0452284,1.10393,.995811,-.0219547,.0297934,1.11476,.9982,-.0107613,.0146415,1.12484,1.00002,248678e-9,-14555e-8,1.13413,.859519,-693595e-11,.347264,171673e-10,.859843,-17503e-8,.347394,433219e-9,.859656,-700076e-9,.347319,.00173277,.859671,-.00157517,.347325,.00389875,.859669,-.00280028,.347324,.00693112,.85967,-.0043754,.347324,.01083,.859665,-.00630049,.347321,.0155954,.859685,-.0085755,.347328,.0212278,.859694,-.0112003,.347329,.0277273,.859718,-.0141747,.347336,.0350946,.85976,-.0174988,.347348,.0433314,.85982,-.0211722,.347366,.0524384,.859892,-.0251941,.347387,.0624168,.860006,-.0295649,.347422,.0732708,.860122,-.0342825,.347453,.0849999,.860282,-.0393462,.347499,.0976102,.860482,-.0447513,.347554,.111104,.860719,-.0504775,.347614,.125479,.860998,-.0563577,.347666,.140703,.861322,-.0619473,.347662,.156681,.861724,-.0681277,.347684,.173597,.862198,-.0746567,.347709,.191371,.862733,-.0815234,.347727,.209976,.863371,-.0886643,.347744,.229351,.86414,-.0957908,.347734,.24934,.865138,-.102912,.34772,.269797,.866182,-.110924,.3478,.290654,.867436,-.119223,.347911,.312074,.869087,-.126197,.347649,.335438,.870859,-.133145,.347222,.359732,.872997,-.139869,.346645,.38467,.875939,-.146089,.345935,.41019,.879012,-.152334,.345012,.436218,.883353,-.15821,.343924,.462641,.888362,-.164097,.342636,.489449,.895026,-.169528,.341351,.516629,.900753,-.174408,.339115,.544109,.906814,-.17751,.335809,.572857,.912855,-.180101,.331597,.601554,.919438,-.182116,.32698,.630198,.925962,-.183494,.321449,.658404,.931734,-.184159,.314595,.686625,.93762,-.18304,.306462,.71531,.943858,-.181323,.297514,.744272,.948662,-.178683,.287447,.771462,.953299,-.175379,.276166,.798593,.957346,-.170395,.263758,.8256,.962565,-.165042,.251019,.852575,.966075,-.158655,.237011,.878316,.969048,-.151707,.222518,.90329,.972423,-.143271,.207848,.927745,.975833,-.134824,.192463,.950859,.977629,-.125444,.1768,.972947,.978995,-.114949,.161033,.993263,.980533,-.104936,.145523,1.01337,.980745,-.0935577,.129799,1.03128,.981814,-.0822956,.113486,1.04825,.983943,-.0710082,.0972925,1.06405,.986141,-.0587931,.0808138,1.0785,.988878,-.0472755,.0644915,1.09204,.992132,-.0349128,.0478128,1.10413,.9953,-.0232407,.031621,1.11527,.998117,-.0112713,.0154935,1.12551,1.00003,339743e-9,-195763e-9,1.13504,.845441,-729126e-11,.364305,169208e-10,.843588,-183164e-9,.363506,425067e-9,.843412,-73253e-8,.36343,.00169999,.843401,-.00164818,.363426,.00382495,.843399,-.00293008,.363425,.00679993,.843401,-.00457822,.363425,.010625,.843394,-.00659249,.363421,.0153002,.843398,-.00897282,.363421,.0208258,.843415,-.0117191,.363426,.0272024,.843438,-.0148312,.363432,.0344305,.843483,-.018309,.363447,.0425116,.84356,-.0221521,.363472,.0514471,.843646,-.0263597,.363499,.061238,.843743,-.0309315,.363527,.0718873,.84388,-.0358658,.363569,.0833969,.844079,-.0411624,.363631,.0957742,.844279,-.0468128,.363688,.109015,.844549,-.0527923,.363761,.123124,.844858,-.0588204,.363817,.138044,.84522,-.0647573,.36383,.153755,.845669,-.0713181,.363879,.170394,.846155,-.0781697,.363908,.187861,.846789,-.0853913,.363969,.206176,.847502,-.0928086,.363999,.225244,.8484,-.10005,.363997,.244926,.849461,-.107615,.364008,.265188,.850562,-.115814,.364055,.28587,.851962,-.124334,.364179,.306926,.854326,-.131995,.364233,.329605,.856295,-.139338,.363856,.35359,.858857,-.146346,.363347,.37831,.862428,-.152994,.362807,.403722,.866203,-.159463,.361963,.429537,.871629,-.165623,.36112,.456,.877365,-.171649,.359917,.482773,.883744,-.177151,.35848,.509705,.890693,-.182381,.356523,.537215,.897278,-.186076,.3533,.565493,.903958,-.188602,.349095,.594293,.910908,-.190755,.344215,.623165,.918117,-.192063,.338606,.651573,.924644,-.192758,.331544,.679869,.931054,-.192238,.323163,.708668,.937303,-.190035,.313529,.737201,.943387,-.187162,.303152,.764977,.948494,-.183876,.29146,.792683,.952546,-.178901,.277917,.819228,.958077,-.173173,.264753,.846559,.962462,-.16645,.25002,.872962,.966569,-.159452,.234873,.898729,.969108,-.15074,.218752,.923126,.973072,-.141523,.202673,.947278,.975452,-.132075,.186326,.969938,.977784,-.121257,.169396,.991325,.97899,-.110182,.153044,1.01123,.979777,-.0989634,.136485,1.0299,.980865,-.0865894,.119343,1.04727,.982432,-.0746115,.102452,1.06341,.984935,-.0621822,.0852423,1.07834,.987776,-.0495694,.0678546,1.092,.99103,-.0372386,.0506917,1.1043,.99474,-.0244353,.0333316,1.11576,.997768,-.0121448,.0164348,1.12617,1.00003,31774e-8,-169504e-9,1.13598,.825551,-756799e-11,.378425,165099e-10,.82664,-190922e-9,.378923,416504e-9,.826323,-763495e-9,.378779,.0016656,.826359,-.00171789,.378795,.00374768,.82636,-.00305402,.378795,.00666259,.826368,-.00477185,.378798,.0104104,.826364,-.00687131,.378795,.0149912,.826368,-.00935232,.378795,.0204054,.826376,-.0122146,.378797,.0266532,.826399,-.0154581,.378803,.0337355,.82646,-.0190825,.378824,.0416537,.826525,-.0230873,.378846,.0504091,.826614,-.0274719,.378876,.0600032,.82674,-.0322355,.378917,.0704393,.826888,-.0373766,.378964,.0817195,.827078,-.0428936,.379024,.0938492,.827318,-.0487778,.379099,.106828,.82764,-.0549935,.379199,.120659,.827926,-.0611058,.379227,.13526,.828325,-.0675054,.379275,.150713,.828801,-.0743455,.379332,.167034,.8294,-.0815523,.379415,.184209,.830094,-.0890779,.379495,.202203,.8309,-.096736,.379555,.220945,.831943,-.104135,.379577,.240306,.833037,-.112106,.379604,.260317,.834278,-.120554,.379668,.2808,.836192,-.129128,.3799,.301654,.838671,-.137541,.380109,.323502,.840939,-.14523,.379809,.347176,.844575,-.15248,.379593,.371706,.848379,-.159607,.37909,.39688,.853616,-.166267,.378617,.422702,.858921,-.172698,.377746,.448919,.865324,-.178823,.376749,.475661,.872207,-.184542,.375363,.502599,.880018,-.189836,.373657,.529914,.88694,-.194294,.370673,.557683,.894779,-.197022,.36662,.586848,.902242,-.199108,.36138,.615831,.909914,-.200398,.355434,.644478,.917088,-.20094,.348173,.672905,.923888,-.200671,.339482,.701327,.930495,-.198773,.32956,.730101,.937247,-.195394,.318363,.758383,.943108,-.191956,.306323,.786539,.948296,-.187227,.292576,.813637,.953472,-.181165,.278234,.840793,.958485,-.174119,.263054,.867712,.962714,-.166564,.246756,.893635,.966185,-.158181,.229945,.919028,.970146,-.148275,.212633,.943413,.973491,-.138157,.195229,.966627,.975741,-.127574,.178048,.988817,.977238,-.11554,.160312,1.00924,.978411,-.10364,.142857,1.02845,.979811,-.0913122,.125317,1.04648,.98116,-.0782558,.107627,1.06284,.983543,-.0655957,.0895862,1.07798,.986789,-.0520411,.0713756,1.092,.990292,-.0389727,.053228,1.10484,.994187,-.025808,.0351945,1.11642,.997499,-.0126071,.0173198,1.12703,.999999,275604e-9,-148602e-9,1.13674,.81075,-78735e-10,.394456,161829e-10,.808692,-198293e-9,.393453,407564e-9,.80846,-792877e-9,.39334,.00162965,.808595,-.00178416,.393407,.00366711,.808597,-.00317182,.393408,.00651934,.808598,-.00495589,.393408,.0101866,.808591,-.00713627,.393403,.0146689,.808592,-.00971285,.393402,.0199667,.80861,-.0126855,.393407,.0260803,.808633,-.0160538,.393413,.0330107,.80868,-.0198175,.393429,.0407589,.808748,-.0239758,.393453,.0493264,.808854,-.0285286,.39349,.0587161,.808992,-.0334748,.39354,.0689304,.809141,-.0388116,.393588,.0799707,.809352,-.0445375,.39366,.0918432,.809608,-.0506427,.393742,.104549,.809915,-.0570708,.393834,.118085,.810253,-.0633526,.393885,.132377,.810687,-.0700966,.393953,.147537,.811233,-.0772274,.394047,.163543,.811865,-.0847629,.394148,.180394,.812648,-.0925663,.394265,.198051,.813583,-.100416,.394363,.216443,.814683,-.108119,.394402,.235502,.815948,-.11644,.394489,.255242,.817278,-.125036,.394542,.275441,.819605,-.133655,.39486,.296094,.822256,-.142682,.395248,.317309,.825349,-.150756,.395241,.340516,.829605,-.158392,.395285,.364819,.83391,-.165801,.394922,.389736,.839808,-.172677,.394691,.415409,.845708,-.179448,.394006,.441546,.853025,-.185746,.393279,.46832,.859666,-.191684,.391655,.495302,.86789,-.197146,.390068,.52262,.875845,-.201904,.38727,.550336,.882634,-.205023,.382688,.578825,.891076,-.207098,.377543,.608103,.900589,-.208474,.371752,.63723,.90791,-.209068,.364016,.665769,.915971,-.208655,.355593,.694428,.923455,-.20729,.345439,.723224,.931514,-.203821,.334099,.751925,.937885,-.19986,.321069,.780249,.943136,-.194993,.306571,.8077,.948818,-.189132,.291556,.83497,.954433,-.181617,.275745,.86188,.959078,-.173595,.258695,.888562,.962705,-.164855,.240825,.914008,.966753,-.155129,.22268,.939145,.970704,-.144241,.204542,.963393,.973367,-.133188,.185927,.985983,.975984,-.121146,.167743,1.00704,.976994,-.108366,.149218,1.02715,.978485,-.0956746,.13131,1.0455,.980074,-.0820733,.112513,1.06221,.98225,-.0684061,.0938323,1.07782,.98553,-.0549503,.0749508,1.09199,.989529,-.0407857,.055848,1.10508,.993536,-.0271978,.0368581,1.11684,.997247,-.0132716,.0181845,1.12789,1,431817e-9,-198809e-9,1.13792,.785886,-812608e-11,.405036,157669e-10,.790388,-205278e-9,.407355,398297e-9,.790145,-820824e-9,.407231,.00159263,.790135,-.00184681,.407226,.00358336,.790119,-.00328316,.407218,.00637039,.790126,-.00512988,.40722,.0099539,.79013,-.00738684,.407221,.0143339,.790135,-.0100538,.407221,.0195107,.790134,-.0131306,.407217,.0254848,.79016,-.0166169,.407224,.0322572,.790197,-.020512,.407236,.0398284,.790273,-.0248157,.407263,.0482014,.790381,-.029527,.407304,.0573777,.790521,-.0346446,.407355,.0673602,.790704,-.0401665,.40742,.0781522,.790925,-.0460896,.407499,.0897582,.791195,-.0524017,.407589,.10218,.791522,-.0590121,.407691,.11541,.791878,-.0654876,.407748,.12939,.792361,-.0725207,.407849,.144237,.792942,-.0799844,.407963,.159924,.79362,-.0877896,.408087,.176425,.794529,-.0958451,.408259,.193733,.795521,-.103827,.408362,.211756,.796778,-.111937,.408482,.230524,.798027,-.120521,.408547,.249967,.799813,-.129242,.408721,.269926,.802387,-.138048,.409148,.290338,.805279,-.147301,.409641,.311193,.809251,-.155895,.410154,.333611,.813733,-.163942,.410297,.357615,.819081,-.171666,.410373,.382339,.825427,-.178905,.410348,.407828,.83172,-.185812,.409486,.434034,.83877,-.192318,.408776,.460493,.845817,-.198249,.407176,.487346,.854664,-.204034,.405719,.514832,.863495,-.208908,.403282,.542401,.871883,-.212765,.399293,.570683,.88065,-.214911,.393803,.599947,.89004,-.216214,.387536,.62932,.898476,-.216745,.379846,.658319,.906738,-.216387,.370625,.687138,.914844,-.215053,.360139,.71601,.923877,-.212007,.348849,.745124,.931925,-.207481,.335639,.773366,.938054,-.202418,.320798,.801636,.943895,-.196507,.304772,.829055,.949468,-.189009,.288033,.856097,.955152,-.180539,.270532,.88301,.959403,-.171437,.251639,.909296,.963309,-.161661,.232563,.934868,.967399,-.150425,.213231,.959662,.972009,-.138659,.194247,.98302,.97433,-.126595,.174718,1.00517,.975823,-.113205,.155518,1.02566,.976371,-.0996096,.136709,1.04418,.978705,-.0860754,.117571,1.06146,.981477,-.0714438,.0980046,1.07777,.984263,-.0572304,.0782181,1.09214,.988423,-.0428875,.0584052,1.10553,.993,-.0282442,.038522,1.11758,.99704,-.0140183,.0190148,1.12864,.999913,369494e-9,-145203e-9,1.13901,.777662,-84153e-10,.423844,154403e-10,.770458,-211714e-9,.419915,38845e-8,.770716,-846888e-9,.420055,.00155386,.770982,-.00190567,.420202,.00349653,.770981,-.00338782,.420201,.00621606,.77098,-.00529338,.4202,.00971274,.770983,-.00762223,.4202,.0139867,.770985,-.0103741,.420198,.0190381,.770996,-.0135489,.4202,.0248677,.771029,-.0171461,.420212,.0314764,.771052,-.0211647,.420215,.0388648,.771131,-.0256048,.420245,.047036,.771235,-.0304647,.420284,.0559911,.771383,-.0357436,.420341,.0657346,.771591,-.0414392,.420423,.0762694,.771819,-.0475462,.420506,.0875984,.772123,-.0540506,.420617,.099727,.772464,-.060797,.42072,.112637,.772855,-.0675393,.420799,.126313,.773317,-.0748323,.420893,.140824,.773981,-.0825681,.421058,.15617,.774746,-.0906307,.421226,.172322,.77566,-.0988982,.421397,.189253,.776837,-.106994,.421569,.206912,.778097,-.115528,.421704,.225359,.779588,-.124317,.421849,.24447,.781574,-.133139,.422097,.264156,.784451,-.142179,.422615,.284318,.787682,-.15165,.423269,.304902,.792433,-.160771,.424396,.3265,.797359,-.169166,.424772,.35014,.803986,-.177149,.425475,.374768,.809504,-.184745,.424996,.399928,.815885,-.19173,.424247,.425796,.823513,-.198525,.423515,.452287,.832549,-.204709,.422787,.479321,.841653,-.210447,.421187,.506718,.850401,-.215501,.418519,.53432,.859854,-.219752,.414715,.56242,.869364,-.222305,.409462,.591558,.878837,-.223744,.402926,.621074,.888636,-.224065,.395043,.650538,.898132,-.223742,.38564,.679538,.907181,-.222308,.375378,.708674,.915621,-.219837,.363212,.737714,.9239,-.215233,.349313,.767014,.931644,-.209592,.334162,.795133,.938887,-.203644,.317943,.823228,.945282,-.196349,.300581,.850822,.950758,-.18742,.282195,.877594,.956146,-.177879,.262481,.904564,.960355,-.167643,.242487,.930741,.965256,-.156671,.222668,.955868,.968029,-.144123,.201907,.979869,.97251,-.131305,.18202,1.00291,.974925,-.118335,.161909,1.02392,.975402,-.103714,.142129,1.0433,.976987,-.089415,.122447,1.06089,.979677,-.0748858,.102248,1.07713,.983184,-.0596086,.0814851,1.09218,.987466,-.0447671,.0609484,1.10585,.992348,-.0295217,.0401835,1.11829,.996674,-.0143917,.0198163,1.12966,1.00003,321364e-9,-149983e-9,1.1402,.757901,-869074e-11,.436176,151011e-10,.751195,-217848e-9,.432317,378533e-9,.751178,-871373e-9,.432307,.0015141,.751195,-.00196061,.432317,.0034068,.751198,-.00348552,.432318,.00605659,.751195,-.00544599,.432315,.00946353,.751207,-.00784203,.43232,.013628,.751213,-.0106732,.43232,.0185499,.751221,-.0139393,.432319,.0242302,.751244,-.0176398,.432325,.0306694,.7513,-.0217743,.432348,.0378698,.751358,-.0263412,.432367,.0458321,.751458,-.0313396,.432404,.0545587,.751608,-.0367682,.432464,.0640543,.7518,-.0426246,.43254,.0743222,.752065,-.0489031,.432645,.0853668,.752376,-.0555828,.432762,.0971911,.752715,-.0623861,.432859,.109768,.753137,-.069415,.432958,.123126,.753676,-.0770039,.433099,.137308,.754345,-.084971,.433272,.15229,.755235,-.0932681,.433504,.168075,.756186,-.10171,.433693,.184625,.757363,-.110019,.433857,.201897,.75884,-.11887,.434102,.220014,.760467,-.127881,.434306,.238778,.762969,-.136766,.434751,.258172,.765823,-.14612,.43529,.278062,.769676,-.15566,.436236,.298437,.774909,-.165177,.437754,.319532,.77994,-.17402,.438343,.342505,.785757,-.182201,.438609,.366693,.792487,-.190104,.438762,.391668,.80038,-.197438,.438795,.417494,.808494,-.204365,.438226,.443933,.817695,-.210714,.437283,.470929,.828111,-.216651,.436087,.498569,.837901,-.221804,.433717,.526165,.847813,-.226318,.430133,.554155,.858314,-.229297,.425213,.582822,.868891,-.230999,.418576,.612847,.878941,-.231155,.410405,.642445,.888809,-.230935,.400544,.672024,.898089,-.229343,.389613,.701366,.908081,-.226886,.377197,.730763,.916819,-.222676,.363397,.759642,.924968,-.216835,.347437,.788775,.932906,-.210245,.32995,.817135,.940025,-.202992,.312262,.844912,.946101,-.19436,.293313,.872164,.952835,-.184125,.273638,.899443,.957347,-.173657,.252385,.926389,.961434,-.162204,.231038,.951947,.965522,-.14979,.209834,.976751,.969412,-.136307,.188821,1.00022,.973902,-.122527,.168013,1.02229,.974045,-.108213,.147634,1.04199,.975775,-.0927397,.12705,1.06019,.978383,-.0778212,.106309,1.07711,.98211,-.0621216,.0849279,1.09245,.986517,-.0463847,.0633519,1.10651,.991696,-.0309353,.0419698,1.11903,.996349,-.0150914,.0206272,1.13073,1.00003,442449e-9,-231396e-9,1.14146,.727498,-885074e-11,.441528,145832e-10,.730897,-223525e-9,.443589,368298e-9,.730796,-893996e-9,.443528,.00147303,.730805,-.00201149,.443533,.00331433,.730814,-.00357596,.443538,.00589222,.730815,-.00558734,.443538,.00920678,.730822,-.00804544,.44354,.0132582,.730836,-.0109501,.443545,.0180468,.730848,-.0143008,.443546,.0235732,.730871,-.0180969,.443552,.0298382,.730915,-.022338,.443567,.0368438,.730982,-.0270225,.443591,.044591,.731076,-.0321491,.443627,.0530831,.731245,-.0377166,.443699,.0623243,.73144,-.0437216,.443777,.0723181,.7317,-.0501576,.443881,.0830691,.732034,-.0569942,.444014,.0945809,.732388,-.0638756,.444113,.106825,.732853,-.071203,.444247,.119859,.733473,-.0790076,.444442,.13369,.734195,-.0871937,.444645,.148304,.735069,-.095696,.444877,.163702,.736169,-.10426,.445133,.179861,.73747,-.112853,.44537,.196778,.738991,-.12199,.445651,.214496,.740865,-.131153,.445958,.232913,.743637,-.140245,.446548,.251977,.746797,-.149722,.447246,.271551,.751517,-.159341,.448656,.291774,.756156,-.169106,.449866,.312455,.761519,-.178436,.450919,.334552,.768295,-.186904,.451776,.358491,.776613,-.195117,.452832,.383446,.783966,-.202695,.45249,.408945,.793542,-.20985,.452587,.435364,.803192,-.216403,.451852,.462336,.813892,-.22251,.450708,.48987,.824968,-.227676,.4486,.517697,.835859,-.232443,.445156,.545975,.846825,-.235775,.440351,.574483,.858085,-.237897,.433641,.604246,.868825,-.238074,.425354,.634101,.879638,-.237661,.415383,.664201,.889966,-.236186,.404136,.693918,.899479,-.233599,.390917,.723481,.908769,-.229737,.376352,.75258,.917966,-.223836,.360372,.781764,.926304,-.217067,.342551,.811139,.934626,-.209309,.324238,.839585,.941841,-.20071,.304484,.867044,.94789,-.190602,.283607,.894579,.954196,-.179253,.262205,.921743,.958383,-.167646,.239847,.948026,.963119,-.155073,.218078,.973296,.966941,-.141426,.195899,.998135,.970836,-.126849,.174121,1.02021,.973301,-.112296,.153052,1.04085,.97448,-.0964965,.131733,1.05946,.977045,-.080489,.10997,1.07693,.980751,-.064844,.0881657,1.09254,.985475,-.0481938,.0657987,1.10697,.991089,-.0319185,.0435215,1.12004,.996122,-.0158088,.0214779,1.13173,1.00001,372455e-9,-200295e-9,1.14291,.708622,-907597e-11,.45304,141962e-10,.711162,-228911e-9,.454662,358052e-9,.709812,-914446e-9,.453797,.00143034,.709865,-.00205819,.453834,.00321935,.709864,-.00365894,.453833,.00572331,.709855,-.00571692,.453826,.00894278,.709862,-.00823201,.453828,.012878,.709875,-.011204,.453832,.0175295,.709896,-.0146323,.453839,.0228978,.709925,-.0185163,.453847,.0289839,.709974,-.0228551,.453866,.0357894,.710045,-.0276473,.453892,.0433161,.710133,-.032891,.453924,.0515665,.710292,-.0385851,.453992,.0605458,.710485,-.0447254,.45407,.0702574,.710769,-.0513051,.454192,.0807077,.711106,-.0582733,.454329,.091896,.711516,-.0652866,.45446,.103814,.712071,-.0728426,.454653,.116508,.712676,-.0808307,.45484,.129968,.713476,-.0892216,.455096,.144206,.714377,-.0979047,.455346,.159212,.715579,-.106531,.455647,.174973,.716977,-.115492,.455961,.191504,.71862,-.124821,.456315,.208835,.72084,-.134079,.4568,.226869,.723786,-.143427,.457521,.245582,.727464,-.153061,.458475,.264957,.732771,-.162768,.460239,.284948,.736515,-.172627,.460899,.30522,.743519,-.182487,.463225,.326717,.750041,-.191295,.464027,.350113,.758589,-.199746,.465227,.374782,.767703,-.207584,.465877,.400226,.777484,-.214973,.465996,.426442,.788792,-.221796,.466019,.453688,.800194,-.228038,.465083,.481246,.811234,-.233346,.462506,.509086,.822859,-.238073,.459257,.537338,.835082,-.241764,.454863,.566108,.846332,-.244241,.448163,.595126,.858355,-.244736,.439709,.625574,.87034,-.244278,.429837,.65617,.881027,-.24255,.418002,.686029,.891007,-.239912,.404325,.716039,.900874,-.236133,.389222,.745518,.911072,-.230672,.373269,.775026,.920359,-.22356,.355083,.804521,.928604,-.215591,.335533,.834045,.937175,-.206503,.315278,.861612,.942825,-.196684,.293653,.889131,.949805,-.185116,.271503,.916853,.955535,-.172703,.248821,.943541,.959843,-.159978,.225591,.970132,.964393,-.146375,.202719,.994709,.968008,-.131269,.179928,1.0186,.971013,-.11569,.158007,1.03928,.973334,-.1003,.13624,1.05887,.975775,-.0833352,.1138,1.07652,.979579,-.0668981,.0913141,1.09297,.984323,-.0500902,.0683051,1.10734,.990351,-.0332377,.0451771,1.12084,.995823,-.0161491,.0221705,1.13296,1.0001,234083e-9,-108712e-9,1.14441,.683895,-924677e-11,.46015,137429e-10,.68833,-233383e-9,.463134,346865e-9,.688368,-933547e-9,.463159,.00138748,.688367,-.00210049,.463159,.00312187,.688369,-.00373415,.463159,.00555004,.688377,-.00583449,.463163,.00867216,.688386,-.00840128,.463166,.0124884,.688398,-.0114343,.463169,.0169993,.688418,-.0149329,.463175,.0222054,.688453,-.0188964,.463188,.028108,.688515,-.0233239,.463214,.0347085,.68857,-.0282136,.463231,.0420091,.688679,-.033564,.463276,.0500132,.688854,-.0393733,.463356,.0587255,.689038,-.0456354,.46343,.0681476,.689321,-.0523433,.463553,.0782897,.689662,-.059412,.463693,.0891501,.690188,-.0665736,.4639,.100735,.690755,-.0743106,.464107,.113074,.691405,-.0824722,.464329,.126161,.692198,-.0910484,.464585,.140007,.693196,-.0998778,.464893,.154612,.69454,-.108651,.465285,.169984,.695921,-.117855,.465596,.186106,.697749,-.12734,.466056,.203034,.700375,-.136714,.466771,.220703,.703395,-.146386,.467579,.239062,.707904,-.156096,.469067,.258188,.711673,-.165904,.469851,.277759,.717489,-.175812,.471815,.297935,.724051,-.185931,.47389,.318916,.731965,-.195238,.47587,.341591,.741151,-.204021,.477523,.366062,.751416,-.212113,.478881,.391396,.761848,-.21979,.479226,.417599,.771886,-.2267,.478495,.444401,.783998,-.232991,.477622,.472084,.796523,-.238645,.475833,.500193,.808851,-.243396,.472568,.52865,.821191,-.247226,.467857,.557362,.834261,-.250102,.461871,.586768,.846762,-.251056,.453543,.617085,.859867,-.250604,.443494,.647659,.871948,-.248783,.431711,.678119,.882967,-.245855,.417911,.708399,.892826,-.242168,.401993,.738256,.90332,-.237062,.385371,.767999,.913633,-.22997,.366837,.798191,.922774,-.221687,.346372,.827756,.931371,-.212345,.325682,.856425,.938929,-.20206,.303665,.884299,.944821,-.190981,.280786,.912023,.951792,-.178065,.2573,.939669,.957712,-.164634,.233448,.96655,.961912,-.150863,.209504,.992366,.966382,-.13577,.18597,1.01633,.969588,-.119593,.162905,1.03843,.971777,-.103203,.14053,1.05841,.97433,-.0865888,.117909,1.07632,.978686,-.0690829,.0944101,1.09326,.983281,-.0516568,.0705671,1.10796,.989562,-.034558,.0468592,1.12182,.995465,-.0167808,.0229846,1.1342,.999991,373016e-9,-235606e-9,1.1459,.662251,-939016e-11,.468575,132714e-10,.666634,-237624e-9,.471675,335842e-9,.666411,-950385e-9,.471516,.00134321,.666399,-.00213833,.471509,.00302221,.666386,-.0038014,.471499,.00537283,.666405,-.00593958,.471511,.00839533,.666406,-.00855253,.471508,.0120898,.666428,-.0116401,.471519,.0164569,.666444,-.0152015,.471522,.0214971,.66649,-.0192362,.471543,.027212,.666537,-.0237428,.471558,.033603,.666617,-.0287198,.471591,.0406728,.666718,-.0341647,.471631,.0484238,.666889,-.0400759,.47171,.0568621,.667104,-.0464479,.471805,.0659915,.667374,-.0532677,.471923,.0758178,.667772,-.0603805,.472098,.0863425,.668371,-.0677392,.472363,.0975917,.668971,-.0756028,.472596,.109567,.669696,-.0839293,.472869,.122272,.670481,-.0926683,.473126,.135718,.6715,-.1016,.473442,.149914,.672911,-.110566,.47389,.164882,.674512,-.119984,.474354,.180602,.67651,-.129574,.474922,.19711,.679292,-.139106,.475764,.214371,.682798,-.148993,.476886,.232405,.686955,-.158737,.478179,.251153,.691406,-.168754,.479432,.270436,.697438,-.178703,.481481,.290374,.704761,-.188955,.484143,.311044,.713599,-.198814,.487007,.333003,.723194,-.207869,.488962,.357144,.732601,-.216189,.489815,.382169,.744193,-.22398,.490888,.408227,.754907,-.231156,.490355,.434928,.767403,-.23747,.489548,.462599,.78107,-.243503,.488274,.490908,.793893,-.248114,.484843,.519421,.807296,-.25222,.4803,.548561,.820529,-.255265,.474097,.577772,.833716,-.256741,.466041,.607782,.848403,-.25637,.456547,.638807,.860755,-.254804,.443946,.670058,.874012,-.251834,.430852,.700749,.885619,-.247867,.414903,.731446,.896069,-.242634,.397276,.761191,.906266,-.236093,.378535,.791053,.916759,-.227543,.358038,.821298,.92523,-.21783,.335705,.850747,.93436,-.207534,.313797,.879258,.941631,-.195983,.289671,.907734,.947564,-.183567,.265319,.935206,.953681,-.169345,.240815,.962739,.960008,-.154909,.216119,.989227,.964145,-.140161,.192096,1.01465,.968171,-.123411,.167855,1.03737,.969859,-.106525,.144817,1.05767,.972666,-.0891023,.12149,1.0761,.977055,-.0718094,.0975306,1.09336,.982527,-.0534213,.0730217,1.10878,.989001,-.0355579,.0483366,1.12285,.99512,-.0176383,.023938,1.13548,1.00007,368831e-9,-211581e-9,1.14744,.651047,-960845e-11,.484101,12922e-9,.644145,-241347e-9,.478968,324578e-9,.64396,-965142e-9,.478831,.00129798,.64396,-.00217154,.47883,.00292046,.643968,-.00386049,.478835,.00519202,.643974,-.00603186,.478838,.0081128,.643977,-.0086854,.478836,.011683,.643982,-.0118207,.478834,.0159031,.644024,-.0154374,.478856,.0207743,.644059,-.0195343,.478868,.0262975,.644122,-.0241103,.478896,.0324747,.644207,-.0291638,.478933,.039309,.64432,-.0346919,.478981,.0468029,.644481,-.0406919,.479053,.0549614,.644722,-.047159,.479169,.0637909,.645013,-.0540748,.479302,.0732974,.645503,-.0612001,.479541,.0834898,.646117,-.0687303,.479829,.0943873,.646707,-.0767846,.480061,.105991,.647431,-.0852465,.480343,.11831,.64831,-.0940719,.48066,.131348,.649486,-.103056,.481083,.14514,.650864,-.112261,.481528,.159676,.652604,-.121852,.482102,.174979,.654825,-.131505,.482813,.191079,.657876,-.141189,.483876,.207927,.661339,-.151239,.48499,.225586,.665463,-.161091,.486279,.243947,.670542,-.171235,.487968,.262957,.677361,-.181347,.49053,.282781,.685672,-.191679,.493862,.303311,.694551,-.201781,.49699,.324607,.703753,-.211164,.498884,.347916,.713703,-.219675,.500086,.372628,.725911,-.227836,.501554,.398694,.73862,-.23533,.502193,.425529,.752118,-.241786,.501811,.453209,.76579,-.247865,.500185,.481381,.779568,-.252696,.497159,.51011,.793991,-.256802,.492765,.539322,.808182,-.259942,.486827,.569078,.821698,-.261703,.478386,.598818,.836009,-.262006,.468772,.629762,.849824,-.260333,.456352,.661366,.863888,-.257398,.442533,.69295,.876585,-.253264,.426573,.723608,.888665,-.248026,.408964,.754378,.899537,-.241487,.389677,.784761,.9094,-.233463,.368516,.814688,.920166,-.223397,.346624,.845009,.928899,-.21255,.322717,.874431,.937156,-.200869,.298698,.902922,.943861,-.188387,.273491,.931356,.949557,-.174341,.247866,.958854,.955862,-.158994,.222496,.986098,.961721,-.143664,.197522,1.01229,.965976,-.127412,.17302,1.03571,.968652,-.109798,.148954,1.05699,.971084,-.0916787,.125044,1.07587,.975584,-.0739634,.100577,1.09372,.98122,-.055322,.0753666,1.10948,.988253,-.0366825,.0498899,1.12394,.99482,-.0180389,.024611,1.13694,1.00001,229839e-9,-188283e-9,1.14919,.613867,-964198e-11,.479449,123452e-10,.621485,-244534e-9,.485399,313091e-9,.621429,-978202e-9,.485353,.00125245,.62112,-.00220004,.485114,.00281687,.621119,-.0039111,.485112,.00500783,.621122,-.00611091,.485112,.00782498,.621133,-.00879922,.485117,.0112687,.621152,-.0119756,.485125,.0153394,.621183,-.0156396,.485139,.0200382,.621227,-.0197898,.485158,.0253663,.621298,-.0244253,.485192,.0313261,.621388,-.0295441,.485233,.0379204,.621507,-.0351432,.485286,.0451523,.621693,-.0412198,.485378,.0530277,.621933,-.0477673,.485495,.0615522,.622232,-.0547574,.485635,.0707316,.622809,-.0619417,.485943,.0805883,.623407,-.069625,.486232,.0911267,.62406,-.077796,.486516,.102354,.624835,-.0863731,.486838,.114279,.625758,-.095251,.487188,.126902,.627043,-.104299,.487695,.140285,.628438,-.113724,.488163,.154397,.630325,-.123417,.488858,.169267,.632801,-.133137,.489754,.184941,.635784,-.143052,.490815,.20136,.639406,-.153132,.492048,.218643,.643872,-.163143,.49363,.236615,.6499,-.17333,.496009,.255449,.657201,-.183622,.498994,.275006,.666221,-.194019,.502888,.295354,.674419,-.204192,.505459,.316244,.683729,-.21406,.507771,.33849,.695584,-.222854,.510245,.363166,.708583,-.231315,.512293,.389071,.721233,-.238911,.512747,.415737,.735134,-.245657,.512482,.443331,.750179,-.251879,.511526,.471891,.765073,-.256911,.508935,.500892,.779794,-.261144,.504341,.530294,.794801,-.264316,.498515,.560144,.810339,-.266276,.491015,.590213,.824818,-.266981,.481126,.620865,.839375,-.265778,.468685,.652687,.853043,-.262748,.453925,.684759,.867335,-.258474,.437912,.716209,.88037,-.253187,.419648,.747508,.891711,-.246476,.39982,.77797,.902896,-.238735,.37879,.808586,.913601,-.22885,.355891,.838843,.923019,-.217656,.331773,.869014,.933432,-.205539,.307356,.898512,.939691,-.192595,.281321,.9269,.946938,-.178945,.255441,.955297,.952372,-.163587,.229013,.983231,.95909,-.147214,.203179,1.00971,.963675,-.13064,.17792,1.03438,.968247,-.113121,.152898,1.05625,.97001,-.0945824,.128712,1.07598,.974458,-.0755648,.103349,1.094,.980168,-.0571998,.0776731,1.1104,.987295,-.0377994,.0514445,1.12491,.994432,-.0186417,.025429,1.13851,.999975,542714e-9,-282356e-9,1.15108,.592656,-980249e-11,.486018,119532e-10,.598467,-247275e-9,.490781,301531e-9,.597934,-988317e-9,.490343,.00120517,.597903,-.00222366,.490319,.0027116,.597913,-.00395315,.490327,.00482077,.597919,-.00617653,.490329,.00753264,.597936,-.00889375,.490339,.0108478,.597956,-.0121043,.490347,.0147668,.597992,-.0158073,.490365,.0192905,.598032,-.0200017,.490382,.0244204,.598109,-.0246865,.49042,.0301593,.598215,-.0298594,.490474,.03651,.59833,-.0355167,.490524,.0434757,.598525,-.0416559,.490624,.0510629,.598778,-.0482692,.490753,.0592781,.599135,-.0553114,.49094,.0681304,.599802,-.062542,.491328,.0776467,.600361,-.0703638,.491598,.0878184,.60101,-.0786256,.491882,.0986573,.601811,-.0872962,.492232,.11018,.602861,-.0962284,.492684,.1224,.604167,-.10538,.493213,.135354,.605693,-.114896,.493799,.149034,.607682,-.124654,.494576,.163469,.610672,-.13456,.4959,.178747,.613313,-.144581,.496713,.194723,.617603,-.154703,.498499,.211617,.622174,-.16489,.500188,.229183,.628855,-.175164,.503072,.247786,.636963,-.185565,.506798,.267116,.644866,-.195911,.509719,.28702,.653741,-.206104,.512776,.307763,.664942,-.216447,.516812,.329631,.67633,-.22552,.519181,.353515,.690012,-.234316,.521681,.379226,.704243,-.242032,.523129,.405901,.719396,-.249172,.523768,.433585,.734471,-.255543,.522541,.462085,.750539,-.260697,.520217,.491233,.766365,-.26501,.516293,.521094,.781677,-.268409,.509708,.551014,.797132,-.270399,.501944,.581463,.812655,-.271247,.492025,.612402,.828592,-.270708,.480424,.643798,.844044,-.268085,.465955,.67682,.857305,-.263459,.448425,.708496,.87114,-.258151,.430243,.74046,.884936,-.251171,.410578,.771583,.895772,-.243305,.38862,.802234,.906961,-.234037,.365214,.833179,.917775,-.222714,.34116,.86353,.927883,-.210175,.31572,.893557,.936617,-.196925,.289159,.922976,.943384,-.182788,.261996,.951606,.949713,-.167965,.235324,.979958,.955818,-.151109,.208408,1.00765,.961344,-.133834,.182591,1.03329,.965469,-.115987,.156958,1.0557,.968693,-.09746,.132239,1.07583,.973165,-.0778514,.106195,1.09451,.979387,-.0585067,.0797669,1.11137,.98671,-.0390409,.0530263,1.12643,.994093,-.019408,.0263163,1.14016,1.00002,540029e-9,-194487e-9,1.15299,.574483,-989066e-11,.494533,114896e-10,.574478,-249127e-9,.494528,289403e-9,.574607,-996811e-9,.494637,.00115797,.574396,-.00224241,.494458,.00260498,.574377,-.00398632,.49444,.00463102,.574386,-.00622836,.494445,.00723623,.574401,-.0089683,.494453,.010421,.574419,-.0122056,.49446,.0141859,.574459,-.0159396,.494481,.0185322,.574525,-.0201692,.49452,.0234617,.574587,-.0248924,.494547,.0289762,.574697,-.0301074,.494604,.0350797,.574853,-.0358114,.494688,.0417767,.575027,-.041999,.494772,.0490718,.575294,-.0486618,.494915,.0569728,.575733,-.0557148,.495173,.0654955,.576356,-.0630489,.495537,.0746612,.576944,-.0709285,.495836,.0844615,.57765,-.0792723,.496177,.0949142,.578491,-.0880167,.496563,.10603,.579639,-.0969462,.497096,.117841,.580989,-.10622,.497684,.130367,.582587,-.115861,.498337,.143609,.584951,-.125605,.499414,.157625,.587602,-.135608,.500518,.172413,.59076,-.145742,.501767,.187999,.594992,-.155934,.503542,.20445,.600656,-.166303,.506135,.221764,.607816,-.176681,.509542,.24002,.61522,-.187071,.51263,.258992,.623702,-.197465,.516021,.278773,.634192,-.207816,.520422,.299377,.644936,-.218183,.524073,.320802,.657888,-.2278,.528049,.34384,.670666,-.236747,.52986,.36916,.685626,-.24484,.531892,.395867,.701304,-.252071,.532727,.423488,.717727,-.258714,.532146,.452201,.733914,-.264211,.529883,.481579,.750529,-.26859,.5259,.511558,.76747,-.272046,.51999,.542042,.785189,-.274225,.513083,.572799,.800954,-.275189,.502936,.603816,.816962,-.274946,.490921,.635461,.83336,-.272695,.47684,.6676,.848143,-.268223,.459405,.70051,.861818,-.262768,.440319,.732902,.876828,-.255872,.420123,.765084,.889312,-.247703,.398379,.796391,.900412,-.238381,.374496,.827333,.912251,-.227783,.349874,.858385,.921792,-.214832,.323181,.888652,.931273,-.200949,.296624,.917763,.940295,-.186537,.269211,.947878,.946812,-.171538,.241447,.977016,.953588,-.155254,.213829,1.00501,.958841,-.137156,.186807,1.03179,.963746,-.118699,.160706,1.05502,.966468,-.0998358,.135504,1.07568,.971178,-.0805186,.109131,1.09479,.97831,-.0599348,.0818293,1.1123,.985886,-.0399661,.0545872,1.12771,.994021,-.0198682,.0269405,1.14186,1.00009,271022e-9,-12989e-8,1.15514,.538716,-990918e-11,.486732,109675e-10,.550656,-250642e-9,.497518,277412e-9,.55057,-.00100265,.497441,.00110974,.550903,-.00225672,.497733,.00249779,.550568,-.00401046,.497438,.00443906,.550574,-.00626613,.49744,.00693637,.550591,-.0090226,.497449,.00998921,.550623,-.0122795,.497469,.0135984,.550667,-.0160361,.497495,.0177654,.550724,-.0202908,.497526,.0224915,.550792,-.0250421,.497557,.0277795,.550918,-.0302878,.49763,.0336334,.551058,-.0360241,.497701,.0400573,.551276,-.0422473,.497824,.0470585,.551551,-.0489441,.497977,.0546433,.552074,-.0559596,.498312,.0628367,.552681,-.0633978,.498679,.071646,.553324,-.0713176,.499031,.0810746,.554011,-.0797268,.499365,.091129,.55488,-.0885238,.499779,.101837,.556171,-.0974417,.500444,.113239,.557498,-.106841,.501025,.125316,.559299,-.116533,.501864,.138128,.561647,-.126298,.502967,.151695,.564347,-.136388,.504129,.16604,.567863,-.146576,.505713,.181207,.572569,-.156832,.507953,.197259,.578919,-.167323,.511186,.214258,.585387,-.177712,.514042,.232038,.593134,-.188184,.517484,.250733,.603295,-.198717,.522345,.270454,.613854,-.209177,.526751,.290807,.626092,-.219644,.531595,.312202,.637868,-.229494,.534721,.334435,.652458,-.238718,.538304,.359184,.666985,-.247061,.539875,.385637,.683301,-.254652,.541042,.41328,.69998,-.261376,.540735,.441903,.717824,-.267085,.539139,.471609,.734617,-.271465,.534958,.501446,.753663,-.27528,.53032,.532571,.770512,-.277617,.522134,.563641,.787356,-.278525,.51206,.595067,.806252,-.278512,.50119,.627226,.822061,-.277023,.486791,.659402,.838959,-.273175,.470467,.692874,.85379,-.267238,.450688,.725702,.868268,-.260327,.429741,.75832,.881994,-.251946,.407223,.790189,.893885,-.242432,.383214,.821625,.905118,-.231904,.357297,.853011,.916045,-.219545,.330733,.883773,.927614,-.205378,.303916,.914435,.936005,-.190388,.275941,.944502,.944533,-.1749,.247493,.974439,.950758,-.158588,.218996,1.00286,.957078,-.141027,.191559,1.0304,.962448,-.121507,.164457,1.05466,.964993,-.102068,.138636,1.0761,.970017,-.0822598,.111861,1.09541,.97661,-.062033,.0843438,1.11317,.985073,-.0409832,.0558496,1.12911,.993515,-.020146,.0275331,1.1438,1.00006,27329e-8,-107883e-9,1.15736,.525324,-999341e-11,.498153,105385e-10,.526513,-251605e-9,.499277,265329e-9,.526517,-.00100641,.499282,.0010613,.526588,-.00226466,.499337,.00238823,.526539,-.0040255,.499302,.00424535,.526547,-.00628954,.499306,.00663364,.526561,-.00905628,.499313,.00955337,.526593,-.0123253,.499334,.0130054,.526642,-.0160957,.499365,.0169911,.5267,-.0203661,.499396,.0215122,.526792,-.0251347,.499451,.0265718,.526904,-.0303985,.499511,.0321732,.527079,-.0361554,.499617,.0383231,.527285,-.0423982,.499731,.045026,.527602,-.0491121,.499924,.0522936,.528166,-.0561127,.500306,.0601528,.52879,-.0635988,.5007,.0686059,.529421,-.071581,.501048,.0776518,.530144,-.0799854,.501421,.0873148,.531062,-.0888032,.501884,.0976084,.532374,-.0977643,.50259,.108588,.533828,-.107197,.50329,.120234,.53581,-.116887,.504312,.132602,.538063,-.126755,.505365,.145721,.5409,-.136819,.506668,.159617,.544882,-.147117,.508731,.174369,.550238,-.157446,.511601,.190028,.556038,-.167988,.514431,.206587,.563031,-.178364,.517808,.224046,.571543,-.189007,.521937,.242503,.582255,-.199546,.527415,.261977,.59272,-.210084,.531682,.282162,.605648,-.220448,.537123,.303426,.61785,-.230593,.540664,.325323,.632223,-.240238,.544467,.348993,.648819,-.24887,.547594,.375462,.665825,-.256657,.54912,.403024,.683389,-.263711,.549294,.431773,.701495,-.269666,.547649,.461494,.719197,-.274169,.543786,.491623,.737906,-.278124,.538644,.522994,.756652,-.280632,.531057,.554775,.775279,-.281741,.521972,.586441,.792688,-.281652,.509613,.618596,.811894,-.280345,.496497,.651462,.827938,-.277128,.47968,.684023,.844837,-.271646,.460688,.718024,.859239,-.264397,.438872,.751207,.874088,-.256144,.41577,.784232,.887693,-.246311,.391369,.816191,.899402,-.235497,.365872,.847828,.910973,-.223631,.338618,.87934,.92204,-.209874,.310803,.910325,.930987,-.194265,.281802,.940695,.94,-.178125,.252836,.970958,.948018,-.161479,.224239,1.00078,.955141,-.144038,.195857,1.0288,.960513,-.124915,.168487,1.05371,.963964,-.104284,.141495,1.07596,.968713,-.0838732,.114437,1.09628,.975524,-.0635579,.0863105,1.11448,.98431,-.042291,.0574774,1.13069,.992916,-.0209131,.0284343,1.14568,.999926,743097e-9,-379265e-9,1.15955,.501042,-998428e-11,.498726,100306e-10,.502992,-252112e-9,.500665,253283e-9,.502417,-.00100791,.500092,.00101259,.502965,-.00226919,.500621,.00227978,.502318,-.00403109,.499994,.00405011,.502333,-.00629832,.500005,.00632868,.502362,-.00906907,.500027,.00911446,.502369,-.0123423,.500023,.0124078,.50243,-.0161178,.500066,.016211,.502493,-.0203937,.500103,.0205256,.502592,-.0251684,.500166,.0253548,.502707,-.0304389,.50023,.0307029,.502881,-.0362015,.500335,.0365753,.503124,-.0424507,.500488,.0429798,.503443,-.0491582,.500686,.0499268,.504083,-.0561476,.501155,.0574541,.504668,-.0636846,.501524,.0655408,.505319,-.0716834,.501904,.0742072,.50609,-.0800925,.502321,.0834699,.507122,-.0888425,.502896,.0933603,.508414,-.097855,.503603,.10391,.509955,-.107304,.504416,.115113,.512061,-.116921,.505565,.127054,.514419,-.12689,.506732,.139709,.517529,-.136934,.508338,.153173,.522085,-.147327,.510987,.167528,.526986,-.157612,.513527,.182708,.533122,-.168213,.516717,.198881,.540807,-.178688,.520832,.215986,.550687,-.189511,.52632,.234335,.560567,-.199998,.531009,.253375,.571698,-.210652,.535839,.273499,.584364,-.220917,.541091,.294355,.599066,-.23137,.546875,.316525,.614148,-.241206,.551306,.339671,.631157,-.250379,.555187,.36531,.647919,-.258397,.556595,.392767,.666112,-.265528,.556949,.421397,.686158,-.271827,.556617,.451433,.704838,-.27674,.552975,.482131,.723957,-.280733,.547814,.513458,.74262,-.283359,.53997,.545446,.762009,-.284541,.530422,.57775,.781314,-.284507,.518546,.610434,.799116,-.283309,.504178,.643178,.817604,-.280378,.48843,.676248,.83459,-.275619,.469457,.709698,.850974,-.26856,.447698,.744245,.866747,-.260094,.424791,.777695,.881412,-.249929,.399913,.810392,.8936,-.239137,.37308,.842872,.905943,-.226818,.345705,.874677,.916408,-.213699,.31706,.906257,.927215,-.198428,.288444,.936881,.935625,-.181643,.258329,.96795,.944076,-.164386,.228488,.998216,.951229,-.146339,.199763,1.02689,.958793,-.127709,.172153,1.0535,.963219,-.107244,.144989,1.07646,.967562,-.0857764,.11685,1.09675,.974866,-.0645377,.0880571,1.11576,.983353,-.0431732,.0587352,1.13227,.992503,-.0218356,.0294181,1.1478,1.00003,605203e-9,-231013e-9,1.16207,.482935,-101177e-10,.504695,968142e-11,.477554,-251521e-9,.499071,240676e-9,.477904,-.00100683,.499436,96342e-8,.478368,-.00226636,.499899,.0021687,.477977,-.00402719,.499513,.00385384,.477993,-.00629226,.499525,.0060221,.478011,-.00906011,.499536,.00867289,.478051,-.0123305,.499566,.0118074,.478089,-.016102,.499587,.0154269,.478171,-.0203736,.499645,.0195341,.478254,-.025143,.499692,.0241318,.47839,-.0304071,.499779,.0292247,.478588,-.0361631,.499911,.0348196,.478812,-.0424023,.500046,.0409231,.479208,-.0490724,.500326,.047552,.479841,-.0560722,.500805,.0547377,.480392,-.0636125,.501152,.0624607,.481068,-.0716134,.501561,.0707473,.481898,-.0800062,.502054,.0796118,.483022,-.0886568,.502728,.0890974,.484332,-.0977553,.503479,.0992099,.486126,-.107173,.504546,.10999,.488066,-.11677,.50557,.121476,.490521,-.126725,.506849,.133672,.494232,-.136793,.50911,.146731,.498302,-.147116,.511345,.160577,.503565,-.157446,.514344,.175335,.510902,-.168121,.518824,.191207,.519263,-.178799,.523666,.208058,.528204,-.189407,.528296,.225875,.538854,-.200145,.533724,.244782,.551278,-.210701,.539833,.264753,.565222,-.221303,.546131,.285745,.579403,-.231688,.551496,.307592,.595469,-.241718,.556809,.330582,.610929,-.250992,.559641,.354995,.629433,-.259602,.562379,.382471,.648504,-.267038,.563676,.411126,.66756,-.273388,.562092,.440924,.689143,-.278788,.560807,.472118,.709056,-.282783,.555701,.503774,.729855,-.285836,.548698,.536364,.748954,-.287078,.538544,.56895,.768373,-.287133,.526711,.601991,.78827,-.285839,.512511,.635403,.807465,-.283238,.496323,.668797,.825194,-.27906,.477638,.702584,.842203,-.272286,.456253,.736393,.857749,-.263854,.432412,.77096,.874799,-.253943,.407806,.80489,.887497,-.24237,.38033,.83771,.89966,-.230278,.352446,.870376,.911753,-.21646,.323268,.902256,.923011,-.202071,.294314,.933306,.932375,-.185519,.264104,.965177,.940537,-.167604,.234035,.996303,.948904,-.149068,.20412,1.0261,.955263,-.129539,.175431,1.05304,.960303,-.109932,.148116,1.07617,.965512,-.0880572,.119693,1.09742,.973466,-.0660548,.0901619,1.11721,.98284,-.0439228,.0599875,1.13436,.992216,-.0219588,.0298975,1.15006,.999946,119402e-9,-208547e-10,1.16471,.447827,-100414e-10,.491543,914833e-11,.454778,-251257e-9,.499172,22891e-8,.453519,-.00100342,.497787,914184e-9,.45357,-.00225776,.497847,.00205701,.453578,-.00401371,.497855,.00365705,.45357,-.00627107,.497841,.00571453,.453598,-.00902968,.497864,.00823019,.453627,-.0122888,.497882,.0112049,.453684,-.0160475,.497923,.0146405,.453764,-.0203044,.49798,.0185394,.453866,-.0250576,.498049,.0229054,.453996,-.0303028,.49813,.0277424,.454196,-.0360379,.498267,.0330587,.454457,-.0422521,.498445,.0388613,.454926,-.0488393,.498812,.0451767,.455525,-.0558653,.499272,.0520153,.456074,-.0633772,.499625,.0593754,.456752,-.0713606,.500049,.0672751,.457648,-.07971,.500615,.0757447,.458849,-.0883032,.501399,.0848231,.46029,-.0974095,.502293,.0945135,.462,-.106729,.503301,.104848,.464121,-.116354,.504533,.115884,.466889,-.126214,.506172,.127652,.470744,-.136324,.508667,.14024,.47488,-.146595,.510995,.153673,.480845,-.157027,.514832,.168053,.488262,-.167658,.519506,.183508,.496547,-.178343,.524347,.199948,.506254,-.188916,.52983,.217503,.517961,-.199975,.536357,.236272,.531484,-.210624,.543641,.256096,.545496,-.221227,.550048,.277085,.559497,-.231568,.555076,.298615,.575752,-.241698,.560541,.321547,.591999,-.251172,.564156,.345602,.610654,-.260178,.567607,.371851,.630484,-.268094,.56923,.40076,.651807,-.274661,.569779,.430801,.67239,-.280331,.566791,.461939,.693024,-.284501,.562007,.493854,.715473,-.287852,.555791,.526992,.736323,-.28929,.546345,.560102,.755771,-.289405,.534,.593543,.775424,-.2881,.519114,.627256,.795447,-.285562,.502543,.661464,.815319,-.281416,.484773,.695206,.831769,-.275523,.463445,.729044,.849464,-.267516,.440269,.764069,.866775,-.257584,.415049,.799089,.881252,-.245817,.388049,.831948,.894209,-.233127,.35889,.865526,.906922,-.219579,.329915,.89818,.919686,-.204491,.300441,.930013,.929044,-.188962,.269445,.962061,.938393,-.171079,.238402,.994214,.94661,-.15199,.208204,1.02533,.953095,-.131953,.178653,1.0529,.958644,-.111233,.150684,1.0771,.963925,-.0903098,.122359,1.09855,.971995,-.0680505,.0923342,1.11874,.981658,-.0448512,.0614195,1.13635,.991649,-.0221931,.0303582,1.15238,.999985,393403e-9,-111086e-9,1.16772,.396806,-971563e-11,.457671,842355e-11,.429186,-249421e-9,.495017,21625e-8,.429324,-998052e-9,.495173,865322e-9,.429175,-.00224487,.494999,.00194637,.429129,-.00399041,.494952,.00346004,.429153,-.00623476,.494974,.00540684,.429168,-.0089773,.494983,.00778714,.429207,-.0122175,.495012,.0106022,.429257,-.0159542,.495047,.0138535,.429338,-.0201864,.495106,.0175443,.429431,-.0249104,.495165,.0216774,.429587,-.0301252,.495279,.0262594,.429796,-.0358249,.495432,.0312968,.430065,-.0419972,.495621,.0367985,.430588,-.0485144,.496061,.042798,.43113,-.0555028,.496472,.0492914,.431743,-.0629852,.496904,.0562907,.432448,-.0709256,.497369,.0638056,.433414,-.0791942,.498032,.071885,.434638,-.0877346,.498854,.0805517,.43611,-.0968056,.499812,.0898047,.437859,-.106002,.500891,.0997142,.440017,-.115648,.502198,.110289,.443236,-.125427,.504389,.121644,.44697,-.135492,.506809,.133769,.451689,-.145746,.509858,.146787,.45811,-.156219,.514247,.160793,.465305,-.166834,.518816,.175791,.474085,-.177546,.524331,.191906,.484808,-.188262,.53104,.209199,.49732,-.199346,.538511,.227825,.509693,-.209951,.544554,.247269,.524367,-.220533,.551616,.267978,.539228,-.231082,.557368,.289672,.55644,-.241342,.563782,.31268,.574204,-.250964,.568851,.33651,.593388,-.260306,.57312,.362219,.613358,-.268667,.574916,.390322,.634512,-.275591,.575053,.420478,.65563,-.281328,.572404,.451614,.678265,-.285948,.568893,.484112,.70011,-.289408,.561878,.517348,.723005,-.291328,.55359,.551355,.743744,-.291418,.541099,.585109,.763949,-.290252,.526489,.619487,.784186,-.287648,.509496,.65404,.804304,-.283782,.491484,.688649,.823629,-.278067,.470517,.723133,.84094,-.270588,.44705,.757163,.857852,-.261188,.421252,.792816,.874934,-.249313,.394191,.827248,.888709,-.236492,.365359,.861074,.902589,-.222185,.336016,.894417,.914201,-.207314,.30527,.926825,.925978,-.191146,.274532,.9595,.93512,-.174135,.243393,.991583,.943656,-.155231,.212414,1.02356,.951719,-.134403,.182005,1.05239,.957164,-.113023,.153043,1.07754,.962656,-.0914493,.124186,1.09984,.970695,-.0694179,.0941654,1.12,.980749,-.0466199,.0629671,1.13849,.991205,-.0227032,.0311146,1.15494,.999884,632388e-9,-254483e-9,1.1706,.379821,-957289e-11,.460637,789337e-11,.405188,-247483e-9,.491396,204064e-9,.404796,-989434e-9,.490914,815853e-9,.40483,-.00222607,.490949,.00183559,.40473,-.00395723,.49084,.00326332,.404731,-.00618287,.490836,.00509945,.404768,-.00890258,.490871,.00734463,.404791,-.0121156,.490883,.00999992,.404857,-.0158214,.490938,.0130676,.404943,-.0200178,.491004,.0165503,.405059,-.0247027,.491093,.0204521,.405213,-.0298729,.491205,.0247788,.405399,-.0355226,.491333,.0295373,.405731,-.0416352,.491604,.034741,.406303,-.0480807,.492116,.0404255,.406814,-.0550458,.492506,.0465732,.407404,-.0624652,.492926,.0532058,.408149,-.0702958,.493442,.0603442,.409128,-.0784623,.494136,.0680297,.410408,-.087007,.495054,.0762786,.411813,-.0959639,.495962,.0851046,.413735,-.105075,.497257,.0945878,.416137,-.114646,.498882,.104725,.41934,-.124394,.501132,.11563,.423326,-.134328,.503883,.127325,.428419,-.14458,.50747,.139911,.43484,-.154979,.511964,.153481,.442641,-.165628,.517328,.168114,.452511,-.176365,.524258,.183995,.463473,-.187298,.531248,.200953,.475564,-.198244,.538367,.219176,.488664,-.208938,.545175,.238514,.504073,-.219599,.553227,.259129,.520832,-.230378,.560653,.280997,.538455,-.240703,.567523,.303821,.55709,-.250548,.573287,.327948,.576646,-.259964,.577795,.353362,.596705,-.268721,.580077,.380336,.618053,-.276054,.58018,.4101,.640303,-.282176,.578747,.44161,.662365,-.286931,.574294,.474106,.684542,-.290521,.567035,.507549,.707984,-.292672,.558687,.541853,.730913,-.293189,.547606,.576581,.752948,-.292199,.533471,.61172,.773452,-.289508,.516395,.646339,.794715,-.285716,.497873,.682131,.814251,-.280051,.476845,.716396,.833057,-.272873,.453449,.751503,.84959,-.263982,.427857,.786085,.867022,-.252745,.400335,.821355,.882277,-.239655,.371304,.85646,.895375,-.225386,.340397,.890828,.909347,-.209587,.310005,.923532,.921885,-.193433,.2796,.956419,.932127,-.176135,.247276,.989445,.941869,-.157872,.216186,1.02221,.949735,-.137577,.185602,1.05195,.956617,-.115285,.155767,1.07822,.961974,-.0928418,.126103,1.10149,.96972,-.0700592,.0956758,1.12207,.98012,-.0474671,.0643269,1.1408,.990825,-.0238113,.0320863,1.1577,.999876,381574e-9,-812203e-10,1.17403,.367636,-961342e-11,.469176,753287e-11,.380377,-244772e-9,.485434,191797e-9,.380416,-978857e-9,.485475,767015e-9,.380376,-.00220165,.485435,.00172522,.380419,-.00391408,.485487,.00306734,.380438,-.00611549,.485505,.00479332,.380462,-.00880558,.485525,.00690391,.380496,-.0119837,.485551,.00940039,.38056,-.0156487,.485605,.0122848,.38064,-.0197988,.485666,.0155601,.380767,-.0244324,.48577,.0192313,.380909,-.0295444,.485871,.0233032,.381142,-.0351321,.48606,.0277861,.381472,-.0411535,.486336,.0326939,.382015,-.0475408,.486833,.0380565,.382523,-.0544395,.487231,.0438615,.383129,-.061784,.487683,.0501332,.383952,-.0695085,.488313,.0568996,.38498,-.0775819,.489077,.0641952,.386331,-.0860443,.490113,.0720324,.387788,-.0948406,.491099,.0804379,.389808,-.103899,.492566,.0894899,.39252,-.113313,.494601,.0992098,.395493,-.123007,.496619,.109641,.399826,-.132859,.499912,.120919,.405341,-.143077,.504061,.133107,.411932,-.153465,.508905,.146263,.420591,-.164108,.515482,.160544,.43101,-.174893,.523191,.176123,.441881,-.185839,.53026,.192757,.453919,-.196633,.537295,.210535,.468715,-.207611,.546156,.229886,.485182,-.218517,.555173,.250543,.501926,-.229249,.562728,.27221,.51785,-.239481,.567494,.294892,.536947,-.249395,.573889,.318987,.557115,-.259,.578831,.344348,.577966,-.268075,.582055,.371223,.599489,-.276115,.583307,.399834,.62479,-.282523,.583902,.431415,.647504,-.287663,.57953,.464301,.670601,-.291538,.573103,.498123,.693539,-.293842,.563731,.532662,.717385,-.294681,.553169,.567925,.741533,-.293717,.539908,.603502,.762142,-.291156,.521902,.639074,.783014,-.28719,.502815,.674439,.805158,-.281773,.482598,.710497,.823646,-.274682,.458949,.7456,.841879,-.266184,.433129,.781085,.859515,-.255682,.406064,.816,.875335,-.242849,.376509,.851074,.890147,-.228329,.345502,.886473,.903144,-.212491,.31428,.920751,.916618,-.195695,.282994,.954606,.927953,-.178267,.251091,.988402,.937414,-.159549,.219107,1.02141,.946823,-.140022,.18896,1.05167,.954651,-.118154,.158667,1.07819,.959955,-.0946636,.128808,1.1025,.96858,-.0711792,.0973787,1.12391,.97938,-.0475046,.0650965,1.14322,.990498,-.024059,.0326267,1.16077,.999844,-512408e-10,112444e-9,1.17727,.316912,-934977e-11,.425996,695559e-11,.356423,-241372e-9,.479108,179562e-9,.356272,-965292e-9,.478897,71811e-8,.356262,-.00217182,.478894,.00161574,.356265,-.00386092,.478895,.00287261,.356278,-.0060324,.478905,.00448907,.356293,-.00868565,.478914,.00646572,.356346,-.0118207,.478965,.00880438,.356395,-.0154355,.479001,.0115066,.356484,-.019529,.479075,.0145762,.356609,-.0240991,.47918,.018018,.356766,-.0291413,.479305,.0218379,.357009,-.0346498,.479512,.0260454,.357424,-.0405462,.479909,.0306657,.357899,-.0468825,.480337,.0357054,.358424,-.0536887,.480771,.0411728,.359041,-.0609416,.481242,.0470841,.359903,-.0685239,.481943,.0534831,.360932,-.0764883,.482741,.0603795,.362196,-.0848364,.483688,.0678028,.363847,-.0935002,.484947,.0758086,.365972,-.102471,.486588,.0844173,.368741,-.111751,.488787,.0937199,.372146,-.121334,.491405,.103732,.377114,-.131147,.495604,.114608,.38226,-.141213,.499436,.126345,.389609,-.151632,.505334,.139116,.397925,-.162073,.51168,.152995,.407824,-.172819,.518876,.168071,.420014,-.183929,.527639,.184495,.434266,-.195032,.537588,.20232,.447352,-.205792,.544379,.221189,.463726,-.216704,.553422,.241616,.481406,-.227531,.562074,.263298,.498707,-.238017,.568227,.286116,.518039,-.247936,.574473,.3101,.538277,-.257437,.579191,.335401,.561166,-.266829,.584807,.362246,.583189,-.275329,.586476,.390609,.606024,-.28234,.585578,.420998,.632419,-.287924,.584496,.454357,.656128,-.291972,.577766,.488233,.679953,-.29456,.56875,.523248,.704654,-.295816,.558388,.559168,.729016,-.295157,.544826,.595326,.752062,-.292779,.528273,.631864,.773138,-.288681,.508482,.667793,.794869,-.283358,.487341,.704035,.815101,-.27608,.46354,.739925,.834212,-.26767,.438672,.775539,.852368,-.257397,.411239,.810895,.870207,-.245689,.3829,.846472,.884063,-.231452,.351496,.881788,.898284,-.215561,.31895,.917438,.912964,-.198208,.287367,.952422,.924666,-.180426,.254487,.987551,.934429,-.161525,.222226,1.02142,.943485,-.141197,.191143,1.05218,.9521,-.120085,.161112,1.07937,.957876,-.0975881,.130982,1.10403,.966943,-.0726842,.0990553,1.12616,.978313,-.0483705,.0662818,1.14619,.990048,-.0239072,.0329243,1.16413,.999984,461885e-9,-772859e-10,1.18099,.321287,-935049e-11,.455413,659662e-11,.332595,-237513e-9,.471437,167562e-9,.332729,-949964e-9,.471618,670192e-9,.332305,-.00213618,.471028,.00150712,.332326,-.00379765,.471055,.00267959,.332344,-.00593353,.471072,.00418751,.332356,-.00854349,.471077,.00603172,.332403,-.0116268,.471121,.00821362,.332461,-.0151824,.47117,.0107357,.332552,-.0192088,.471251,.0136014,.332657,-.0237024,.47133,.0168152,.332835,-.0286615,.471487,.0203853,.333083,-.0340765,.471708,.0243212,.333547,-.0398563,.47219,.0286518,.333989,-.0460916,.472587,.0333763,.334532,-.0527897,.473054,.0385084,.335167,-.0599284,.473568,.0440638,.33608,-.0673514,.474362,.0500962,.337146,-.0752237,.475231,.0566022,.338462,-.083418,.476282,.0636272,.34014,-.0919382,.477615,.0712153,.342341,-.100741,.479404,.079417,.345088,-.109905,.481618,.0882631,.349049,-.119369,.485081,.0978851,.353939,-.129033,.489317,.108336,.359893,-.139038,.494309,.119698,.366945,-.149411,.499983,.132024,.375814,-.159843,.507185,.145558,.387112,-.170664,.516392,.160433,.40023,-.181897,.526519,.176648,.412555,-.192785,.53423,.193922,.427023,-.203663,.542741,.212662,.443685,-.214695,.552066,.232944,.461499,-.225561,.560762,.254495,.480975,-.236257,.569421,.277531,.501,-.24639,.576101,.301724,.521691,-.256101,.581493,.327112,.543478,-.265289,.585221,.353917,.566094,-.273938,.587614,.381941,.589578,-.281679,.587991,.41172,.614583,-.287655,.585928,.444148,.641813,-.292228,.582092,.478617,.666189,-.295172,.57398,.51397,.690475,-.29648,.561676,.550118,.715543,-.296203,.548758,.586933,.740405,-.293999,.532792,.62384,.762183,-.28998,.512735,.660723,.786069,-.28478,.492402,.69807,.806812,-.277568,.469058,.734422,.826987,-.268951,.443017,.770946,.844588,-.259049,.415501,.80699,.863725,-.2471,.387328,.842107,.879137,-.234157,.356108,.878078,.894634,-.218719,.324315,.914058,.909162,-.201293,.291813,.949922,.92072,-.18267,.258474,.985337,.93158,-.163212,.225593,1.0205,.941238,-.142771,.193986,1.05273,.949293,-.120956,.163392,1.08075,.956226,-.0985743,.132934,1.10559,.96546,-.075118,.101255,1.12823,.977403,-.0497921,.0675441,1.149,.989648,-.0241574,.0334681,1.16765,1.00001,5762e-7,-184807e-9,1.18519,.303474,-916603e-11,.4542,61243e-10,.308894,-232869e-9,.462306,155592e-9,.309426,-931661e-9,.463093,622499e-9,.308643,-.0020949,.461933,.00139979,.308651,-.0037242,.461941,.00248874,.308662,-.00581873,.46195,.00388933,.308687,-.00837818,.461974,.00560247,.308728,-.0114016,.462011,.00762948,.308789,-.0148884,.462067,.00997326,.308882,-.0188369,.462151,.0126375,.309007,-.0232436,.462263,.0156271,.30918,-.0281054,.462417,.0189498,.309442,-.0334065,.462667,.0226167,.309901,-.0390589,.463162,.0266614,.310331,-.0452042,.463555,.0310715,.310858,-.0517735,.464019,.0358698,.311576,-.0587359,.464669,.0410848,.312436,-.0660383,.465406,.0467453,.313526,-.0737266,.466339,.0528718,.314903,-.0817574,.467504,.0595039,.316814,-.090167,.469226,.0666888,.318965,-.0987555,.470981,.0744658,.322077,-.107792,.473814,.082912,.325947,-.117098,.477241,.0920846,.331008,-.126602,.48184,.102137,.337893,-.136619,.488334,.113135,.345106,-.146838,.494415,.12511,.355111,-.157357,.503275,.138356,.365095,-.167955,.510966,.152686,.378344,-.179157,.521508,.16856,.391599,-.190143,.530455,.18561,.407786,-.20123,.541275,.204308,.425294,-.212456,.551784,.224623,.444021,-.223568,.561493,.246172,.463418,-.234154,.569886,.268979,.484077,-.244546,.577116,.293411,.505513,-.254301,.582914,.318936,.527672,-.263564,.587208,.345856,.550565,-.272332,.589277,.374054,.573656,-.280011,.588426,.403276,.59827,-.286924,.587504,.43474,.624731,-.291994,.583401,.468767,.652396,-.295159,.576997,.504411,.67732,-.296954,.565863,.54114,.703147,-.296877,.552316,.57816,.728715,-.295147,.536773,.616124,.752448,-.291275,.51771,.653885,.775169,-.285905,.496087,.691537,.799307,-.279064,.474232,.729251,.819482,-.270294,.447676,.766267,.837659,-.260032,.419656,.802616,.856903,-.248497,.391328,.838583,.873325,-.235252,.360285,.874711,.889788,-.221126,.329215,.91077,.904486,-.204304,.296392,.94653,.917711,-.185562,.262159,.983828,.928969,-.165635,.229142,1.01955,.939707,-.14442,.19673,1.05317,.948167,-.122147,.165095,1.0823,.955222,-.099098,.13451,1.10791,.964401,-.0755332,.102476,1.1312,.976605,-.0513817,.0689667,1.15218,.989085,-.0258499,.034506,1.17129,.999908,617773e-9,-271268e-9,1.18961,.285803,-905752e-11,.452348,572272e-11,.284689,-22732e-8,.450581,143626e-9,.285263,-910214e-9,.451482,575099e-9,.285302,-.00204784,.451553,.00129395,.285318,-.00364057,.451574,.0023006,.28533,-.00568813,.451585,.00359547,.285361,-.00819001,.451618,.00517934,.285397,-.0111458,.45165,.007054,.285447,-.0145536,.451688,.00922167,.285527,-.0184127,.451758,.0116869,.285688,-.0227207,.451929,.0144555,.28584,-.0274712,.452055,.0175341,.286136,-.0326278,.452369,.0209406,.286574,-.0381792,.452853,.0246965,.287012,-.0441879,.453272,.0287996,.287542,-.0506096,.453752,.033268,.288299,-.0573634,.454488,.0381504,.289186,-.0645458,.455294,.0434447,.290302,-.0720405,.456301,.0491973,.291776,-.0799046,.457648,.0554453,.29372,-.088117,.459483,.0622311,.296052,-.0965328,.461571,.0695992,.299563,-.105409,.465085,.077658,.30335,-.114553,.468506,.0864176,.309167,-.123917,.474423,.0961078,.31529,-.13381,.47995,.106643,.324163,-.144021,.488592,.118322,.333272,-.154382,.496461,.131133,.344224,-.165015,.50562,.145208,.357733,-.176168,.516719,.16073,.373046,-.187468,.528513,.177807,.38788,-.198488,.537713,.196072,.405133,-.209545,.547999,.21605,.423845,-.220724,.55759,.237484,.443777,-.231518,.566246,.26039,.464824,-.242035,.574326,.284835,.486635,-.251898,.58037,.310518,.51012,-.261304,.58568,.337678,.535301,-.270384,.590197,.366242,.559193,-.27841,.590569,.395873,.583544,-.285325,.588161,.426857,.608834,-.291113,.584249,.459477,.635753,-.294882,.57763,.494734,.664367,-.297088,.569479,.532023,.689688,-.297364,.555064,.569629,.715732,-.295949,.539522,.608124,.741307,-.292259,.521613,.646231,.764949,-.287063,.49969,.684938,.788599,-.28012,.476747,.723548,.81048,-.27153,.45116,.761135,.831372,-.261289,.424101,.798916,.850092,-.249559,.39443,.835952,.867777,-.236348,.363849,.871606,.884632,-.221569,.332477,.907843,.90047,-.20618,.300667,.944187,.914524,-.188771,.266552,.981371,.926892,-.168362,.232349,1.01841,.937951,-.146761,.199359,1.05308,.947236,-.123813,.1675,1.0839,.954367,-.099984,.136166,1.11047,.963907,-.0759278,.103808,1.13414,.976218,-.0511367,.0697061,1.15575,.988772,-.0267415,.0352529,1.17531,.999888,-520778e-9,289926e-9,1.19389,.263546,-883274e-11,.441896,526783e-11,.262352,-221849e-9,.439889,132311e-9,.262325,-886683e-9,.439848,528824e-9,.26228,-.00199476,.439765,.00118975,.262372,-.00354671,.439922,.00211568,.26239,-.00554141,.439941,.00330652,.262412,-.00797888,.439961,.00476346,.262453,-.0108584,.440002,.00648818,.262528,-.0141788,.440085,.0084835,.262615,-.017938,.440166,.0107533,.262744,-.0221346,.440291,.0133044,.262939,-.026762,.440493,.0161445,.263277,-.0317573,.440889,.0192974,.26368,-.0371832,.441338,.0227699,.264106,-.0430371,.441753,.0265698,.264624,-.0493035,.442227,.0307178,.265378,-.0558669,.442985,.0352616,.266253,-.0628718,.443795,.0401968,.267478,-.0701569,.445008,.04559,.269062,-.077845,.446599,.0514539,.270926,-.0857941,.448349,.0578382,.273693,-.0940773,.451221,.0648363,.276746,-.102704,.454097,.0724389,.281693,-.111735,.459517,.0808744,.287335,-.121004,.46531,.0901551,.29448,-.130734,.472605,.100371,.30257,-.140777,.480251,.111644,.312465,-.15111,.489444,.124111,.324856,-.16189,.500919,.137979,.33774,-.172946,.511317,.153163,.35255,-.184152,.522684,.169817,.367786,-.19522,.53248,.187886,.385474,-.20632,.543326,.207634,.404976,-.217744,.554109,.229165,.425203,-.228691,.563395,.252068,.446704,-.239299,.571565,.276471,.468951,-.249348,.577935,.302323,.493487,-.258933,.584309,.329882,.517861,-.268009,.58773,.358525,.543309,-.276238,.589612,.388585,.569704,-.28356,.589294,.419787,.594871,-.289497,.585137,.452114,.622555,-.294452,.580356,.486466,.651167,-.296918,.57185,.523079,.677332,-.297647,.558428,.5611,.703718,-.296321,.542232,.599592,.730262,-.293339,.524541,.639138,.754304,-.288036,.502691,.677978,.778051,-.281018,.479212,.716537,.801557,-.272414,.454071,.75586,.822559,-.262419,.425952,.794477,.843051,-.250702,.397313,.832664,.86232,-.237264,.366534,.869876,.879044,-.222716,.334816,.906973,.896362,-.206827,.303143,.943558,.910342,-.189659,.269699,.979759,.924119,-.171108,.236411,1.01718,.935374,-.149579,.202224,1.05289,.944295,-.126295,.16989,1.08496,.952227,-.101511,.138089,1.11256,.962041,-.0766392,.105053,1.1375,.97528,-.0511967,.070329,1.15983,.988476,-.025463,.0351268,1.17987,.999962,286808e-10,145564e-10,1.19901,.227089,-841413e-11,.404216,472707e-11,.239725,-215083e-9,.426708,120833e-9,.239904,-860718e-9,.427028,483555e-9,.239911,-.00193661,.427039,.00108806,.239914,-.00344276,.42704,.00193457,.239933,-.00537907,.427064,.00302363,.239944,-.00774482,.427065,.00435604,.239993,-.01054,.427122,.00593398,.240052,-.0137626,.427179,.00775987,.240148,-.0174115,.427279,.00983854,.240278,-.021484,.42741,.0121763,.240472,-.0259729,.427618,.0147827,.240839,-.0308131,.428086,.0176837,.241201,-.0360893,.428482,.0208775,.241626,-.0417723,.428907,.0243821,.242207,-.0478337,.42952,.0282228,.24298,-.0542199,.430332,.0324333,.243881,-.0610015,.431222,.0370252,.245123,-.0680874,.432512,.0420535,.24667,-.0755482,.434088,.0475414,.248779,-.0832873,.436323,.0535542,.251665,-.0913546,.439509,.0601716,.255305,-.0998489,.443478,.0674282,.260049,-.108576,.448713,.0754673,.266192,-.117754,.455524,.084339,.273158,-.127294,.4627,.0941683,.282131,-.137311,.472068,.10515,.293332,-.147736,.483565,.117402,.304667,-.158357,.493702,.130824,.317785,-.169274,.504708,.145724,.333245,-.180595,.517107,.16215,.349843,-.191892,.528849,.180149,.367944,-.203168,.540301,.199746,.387579,-.214443,.551514,.221047,.408247,-.225624,.560906,.243981,.43014,-.236422,.56959,.268513,.452669,-.24654,.576098,.294409,.476196,-.256157,.580925,.322002,.501157,-.265289,.584839,.351052,.527632,-.273671,.587614,.3812,.555754,-.281254,.589119,.412994,.581682,-.287448,.585204,.445498,.608196,-.292614,.579006,.479505,.635661,-.296068,.571297,.514643,.664999,-.297395,.560855,.552213,.691039,-.296645,.544525,.591365,.7179,-.293785,.526535,.630883,.744059,-.289089,.50545,.670932,.76863,-.282239,.482514,.710904,.793273,-.273688,.457246,.750259,.814731,-.26328,.428872,.78948,.835603,-.251526,.399384,.828597,.85489,-.238339,.368811,.866892,.872828,-.223607,.336617,.90563,.889462,-.207538,.303997,.943538,.904929,-.190297,.270812,.980591,.919101,-.172034,.237453,1.01935,.930536,-.152058,.204431,1.05498,.941223,-.129515,.172495,1.08717,.94982,-.104263,.140175,1.11551,.960592,-.0781944,.106465,1.14098,.974629,-.051688,.0711592,1.16418,.98811,-.0253929,.0354432,1.18465,1.00004,804378e-9,-330876e-9,1.20462,.214668,-821282e-11,.406619,433582e-11,.218053,-208144e-9,.413025,109887e-9,.217987,-832212e-9,.412901,439362e-9,.217971,-.00187246,.412876,988623e-9,.217968,-.00332855,.41286,.00175772,.217985,-.00520055,.412882,.00274729,.218014,-.00748814,.412916,.00395842,.218054,-.0101901,.412957,.00539274,.218106,-.0133057,.413005,.00705348,.218217,-.0168342,.413139,.00894581,.218338,-.0207707,.413258,.0110754,.21855,-.0251001,.413509,.0134551,.218913,-.0297861,.413992,.0161081,.219265,-.0348956,.414383,.0190307,.219696,-.0403909,.414839,.0222458,.220329,-.0462003,.415567,.025792,.220989,-.0524208,.41621,.0296637,.222027,-.058948,.417385,.0339323,.223301,-.0658208,.418779,.0386055,.224988,-.0730347,.420665,.0437355,.227211,-.0805274,.423198,.0493844,.230131,-.088395,.426566,.0556135,.233908,-.0966208,.43091,.0624829,.239092,-.105223,.437148,.0701636,.245315,-.11424,.444302,.0786949,.253166,-.12368,.453262,.0882382,.262374,-.133569,.463211,.0988682,.273145,-.143836,.474271,.110727,.285512,-.154577,.4863,.123945,.299512,-.165501,.498817,.138581,.314287,-.176698,.510341,.154676,.331083,-.188066,.522583,.172459,.349615,-.199597,.534879,.191979,.369318,-.210843,.546083,.21309,.390377,-.222068,.5562,.235998,.412411,-.233059,.564704,.260518,.435715,-.24357,.572314,.286795,.461196,-.253356,.579395,.314559,.485587,-.262362,.581985,.343581,.511908,-.270895,.584347,.374367,.539798,-.278452,.58505,.406015,.567974,-.284877,.583344,.439168,.594303,-.290124,.577348,.473005,.622951,-.294183,.570751,.508534,.652404,-.296389,.561541,.544764,.679291,-.296605,.546426,.582927,.706437,-.294095,.528599,.622681,.734485,-.28978,.508676,.663567,.758841,-.283363,.484768,.704092,.78537,-.275015,.460434,.745101,.807315,-.264689,.432166,.784712,.8271,-.252597,.401807,.824241,.849191,-.239154,.371458,.863803,.867046,-.224451,.338873,.903063,.8852,-.208342,.306175,.942763,.901771,-.190684,.272759,.981559,.915958,-.172105,.239306,1.02048,.928046,-.152214,.206071,1.05765,.939961,-.130247,.17367,1.08999,.948711,-.10672,.142201,1.11829,.959305,-.0808688,.108454,1.14467,.973009,-.0539145,.0728109,1.16839,.987631,-.0262947,.0360625,1.19004,.999978,.00132758,-559424e-9,1.21058,.193925,-793421e-11,.391974,392537e-11,.196746,-200315e-9,.397675,991033e-10,.19667,-801099e-9,.397521,396342e-9,.196633,-.00180246,.397445,891829e-9,.196654,-.00320443,.397482,.00158582,.196659,-.00500647,.39748,.00247867,.196683,-.0072086,.397506,.00357167,.196728,-.00981001,.397562,.00486675,.196792,-.0128096,.397633,.00636707,.19689,-.0162055,.397746,.00807752,.197017,-.0199943,.397884,.0100052,.19729,-.024139,.39827,.0121691,.197583,-.0286671,.398639,.0145755,.197927,-.0335858,.399034,.0172355,.198383,-.0388806,.399554,.0201718,.199002,-.0444736,.400289,.0234194,.199739,-.0504583,.401111,.026984,.200784,-.056729,.402349,.0309217,.202075,-.0633643,.403841,.0352496,.203898,-.0703247,.406076,.0400313,.206199,-.0775565,.408841,.0453282,.209252,-.085184,.41259,.0511794,.213638,-.0931994,.418288,.0577459,.21881,-.101617,.424681,.0650508,.225642,-.11052,.433429,.0732759,.233717,-.119772,.442897,.0824683,.242823,-.129505,.452888,.0927484,.254772,-.139906,.466407,.104417,.266603,-.150402,.477413,.117211,.28073,-.161395,.490519,.131598,.295399,-.172465,.50201,.147407,.312705,-.183982,.515311,.165031,.331335,-.195532,.52786,.184336,.351037,-.206971,.5392,.205361,.372175,-.218117,.54941,.228043,.394548,-.229327,.558642,.25267,.419598,-.240052,.567861,.279071,.443922,-.249937,.573332,.306882,.471495,-.259407,.58013,.33661,.496769,-.267749,.580564,.367328,.524951,-.275524,.581696,.399753,.55318,-.282148,.579885,.433134,.581577,-.287533,.575471,.467534,.609231,-.291612,.567445,.502943,.637478,-.293911,.557657,.53871,.667795,-.295096,.546535,.576568,.694272,-.294073,.529561,.614929,.722937,-.290386,.510561,.655909,.749682,-.284481,.487846,.697663,.774754,-.276188,.462487,.738515,.799301,-.266215,.43481,.779802,.820762,-.254116,.404879,.820045,.843231,-.240393,.374559,.860294,.861857,-.225503,.341582,.900965,.880815,-.209382,.308778,.941727,.89766,-.19155,.275232,.980916,.912926,-.172346,.240938,1.02162,.926391,-.151799,.207223,1.0597,.938429,-.129968,.17484,1.09291,.947834,-.10651,.142984,1.12248,.958432,-.0824098,.109902,1.149,.972402,-.0565242,.0744454,1.1733,.987191,-.028427,.0373794,1.19538,.999975,385685e-10,-4203e-8,1.21676,.178114,-766075e-11,.385418,354027e-11,.176074,-191966e-9,.381002,887135e-10,.17601,-767549e-9,.380861,354715e-9,.17598,-.00172696,.380798,798168e-9,.175994,-.00307012,.380824,.00141928,.176017,-.00479684,.380858,.00221859,.176019,-.00690648,.380839,.00319714,.176072,-.00939888,.380913,.0043572,.176131,-.0122726,.380979,.005702,.176239,-.0155264,.38112,.00723689,.176371,-.0191551,.381272,.00896907,.176638,-.023117,.381669,.0109194,.176912,-.0274633,.382015,.0130903,.177279,-.032173,.382476,.0154949,.17774,-.0372219,.383041,.0181669,.178344,-.0426132,.38378,.0211209,.179153,-.0483309,.384773,.0243899,.180197,-.0543447,.386076,.0280062,.181581,-.0607122,.387809,.032004,.18344,-.0673855,.390205,.036453,.186139,-.0743989,.393944,.0414162,.189432,-.0817731,.39832,.0469394,.193795,-.0895464,.404188,.0531442,.199641,-.0978264,.4121,.0601374,.206679,-.106499,.421425,.0680078,.214865,-.115654,.431504,.076919,.224406,-.125268,.442526,.0868835,.235876,-.135475,.455465,.0981875,.248335,-.146023,.4681,.110759,.262868,-.157016,.482069,.124885,.278962,-.168245,.496182,.140645,.295082,-.17958,.507401,.157838,.313738,-.191227,.520252,.17695,.333573,-.202718,.531708,.197817,.356433,-.214424,.544509,.220785,.378853,-.225492,.55373,.245306,.402717,-.236236,.561348,.271593,.428375,-.246568,.568538,.299776,.454724,-.255941,.573462,.329433,.482291,-.264511,.576356,.360598,.509706,-.272129,.576446,.393204,.538805,-.278979,.575298,.427227,.568919,-.284528,.572154,.462157,.596804,-.288801,.564691,.497997,.625987,-.291334,.555134,.534467,.656414,-.292722,.545051,.571736,.683916,-.292185,.528813,.610158,.711809,-.290043,.51106,.649061,.739547,-.285246,.490103,.690081,.766914,-.277647,.465523,.732554,.791375,-.267603,.437718,.773982,.814772,-.256109,.40882,.81609,.836691,-.242281,.377823,.856849,.856984,-.227155,.34496,.898363,.876332,-.210395,.311335,.939471,.894988,-.192612,.277703,.980799,.911113,-.173236,.243019,1.02215,.924092,-.152258,.209037,1.06139,.936828,-.129575,.175909,1.09635,.946869,-.10594,.143852,1.12707,.958284,-.081318,.110289,1.15419,.972325,-.0556133,.0747232,1.17909,.986878,-.0297899,.0383149,1.20163,.999936,-.00197169,912402e-9,1.22338,.151174,-720365e-11,.351531,309789e-11,.155594,-18279e-8,.361806,78608e-9,.156099,-731569e-9,.362982,314615e-9,.156053,-.00164578,.362869,707845e-9,.156093,-.0029261,.362961,.00125884,.156099,-.00457155,.362959,.00196783,.15612,-.00658224,.362982,.00283622,.156168,-.00895774,.363048,.00386625,.156221,-.0116962,.363101,.00506109,.156324,-.0147973,.363241,.00642675,.156476,-.0182503,.363448,.00797175,.156731,-.0220266,.36384,.00971484,.156994,-.026176,.364179,.0116575,.157341,-.0306701,.36462,.0138207,.157867,-.0354591,.365364,.0162356,.15846,-.0406141,.366111,.0189092,.159308,-.0460519,.367248,.021885,.160426,-.0518096,.368767,.0252004,.161877,-.0578906,.370745,.0288825,.163995,-.0642812,.373831,.0330139,.16655,-.0710067,.377366,.0376283,.170237,-.0781522,.382799,.0428493,.175096,-.0857172,.389915,.0487324,.181069,-.0938025,.398487,.0554214,.188487,-.102363,.408799,.0630189,.197029,-.111343,.419991,.071634,.206684,-.120812,.431455,.0812797,.218698,-.131033,.445746,.0923651,.230726,-.141373,.457471,.104545,.245516,-.152387,.472388,.118449,.261551,-.163628,.486671,.133923,.277437,-.174814,.49762,.150849,.296662,-.186713,.51162,.169924,.31795,-.198513,.525435,.190848,.339422,-.210119,.536267,.213504,.362143,-.221354,.545982,.237947,.387198,-.23224,.555364,.264427,.412349,-.24257,.561489,.292519,.439274,-.252284,.566903,.322561,.466779,-.261023,.569614,.353952,.496011,-.26899,.571589,.387278,.524964,-.275498,.570325,.421356,.556518,-.281449,.568792,.457314,.584363,-.285526,.560268,.493199,.614214,-.28844,.55205,.530276,.645684,-.289777,.541906,.56855,.673446,-.289722,.526464,.606927,.701924,-.287792,.509872,.645945,.73037,-.284315,.490649,.685564,.757405,-.278804,.467964,.726511,.784025,-.269543,.441468,.768601,.808255,-.258117,.41216,.811321,.830739,-.244728,.380606,.853496,.851914,-.229428,.348111,.895374,.872586,-.212508,.314732,.937674,.891581,-.194025,.280338,.979869,.907641,-.174711,.245203,1.02253,.922233,-.153509,.21077,1.06371,.935878,-.130418,.177399,1.09972,.946338,-.105558,.144507,1.13124,.957265,-.080059,.110508,1.15973,.971668,-.0539766,.0742311,1.18515,.9866,-.0277101,.0375224,1.20858,1.00021,-515531e-9,135226e-9,1.23135,.137468,-686011e-11,.345041,273315e-11,.13703,-173378e-9,.343936,690761e-10,.136986,-693048e-9,.34383,276126e-9,.136964,-.00155931,.343761,621337e-9,.137003,-.00277211,.343863,.00110494,.137012,-.00433103,.343868,.00172744,.137043,-.00623606,.343916,.00249022,.13709,-.0084868,.343986,.00339559,.137145,-.0110814,.344045,.00444687,.137242,-.0140187,.344177,.00565007,.137431,-.0172713,.344491,.00701868,.137644,-.0208605,.344805,.00856042,.13791,-.024792,.345172,.0102863,.138295,-.0290461,.345734,.0122185,.138764,-.0335957,.346371,.0143771,.139415,-.038467,.347298,.0167894,.140272,-.0436176,.348527,.0194895,.141457,-.0491016,.350276,.0225043,.14303,-.0548764,.352646,.0258962,.145289,-.0610096,.356206,.0297168,.148502,-.0674777,.361488,.0340562,.152188,-.074345,.367103,.0389534,.157359,-.0817442,.375247,.0445541,.16379,-.0896334,.385064,.0509535,.171376,-.098005,.396082,.0582611,.179901,-.106817,.407418,.06654,.189892,-.116239,.420031,.075994,.201838,-.12627,.434321,.0867239,.214311,-.136701,.447631,.0987517,.228902,-.147616,.462046,.112353,.245107,-.158871,.476942,.127605,.262292,-.170261,.490285,.144469,.281215,-.182017,.503783,.163282,.301058,-.193729,.515505,.183873,.322752,-.205512,.52682,.206466,.347547,-.217214,.539473,.231194,.370969,-.227966,.546625,.257288,.397533,-.238555,.55472,.285789,.42398,-.248278,.559468,.315746,.452928,-.257422,.564095,.347724,.482121,-.265306,.565426,.380922,.510438,-.272043,.563205,.415639,.541188,-.277614,.561087,.451702,.571667,-.281927,.554922,.48845,.602432,-.285015,.546838,.526442,.634126,-.286512,.537415,.564896,.662816,-.286388,.522906,.604037,.692411,-.284734,.507003,.643795,.720946,-.281297,.488398,.68298,.748293,-.276262,.466353,.723466,.776931,-.269978,.443573,.764565,.801065,-.260305,.415279,.805838,.825843,-.247426,.384773,.849985,.84807,-.232437,.352555,.893174,.869122,-.215806,.318642,.936564,.888963,-.197307,.28381,.980253,.905547,-.177203,.247888,1.02463,.918554,-.155542,.212904,1.06714,.931395,-.131948,.1787,1.10451,.941749,-.106723,.145902,1.13694,.954551,-.0804939,.111193,1.1666,.970279,-.0534239,.0744697,1.19249,.986117,-.0257452,.0368788,1.21665,.999938,.00190634,-.0010291,1.23981,.118493,-647439e-11,.32272,23772e-10,.118765,-163023e-9,.323456,598573e-10,.118772,-65212e-8,.323477,239447e-9,.118843,-.00146741,.323657,538881e-9,.118804,-.00260846,.323553,95826e-8,.118826,-.00407576,.323595,.00149845,.118846,-.00586826,.323617,.00216047,.118886,-.00798578,.32367,.00294679,.118947,-.0104273,.323753,.00386124,.119055,-.0131909,.323922,.00490999,.119241,-.0162444,.324251,.00610804,.11944,-.0196339,.324544,.00745805,.119739,-.0233378,.325026,.00897805,.12011,-.0273179,.325586,.0106895,.120571,-.0316143,.326231,.0126073,.12124,-.0361939,.327264,.0147654,.122162,-.0410511,.328733,.0172001,.123378,-.0462233,.330659,.0199375,.125183,-.0517109,.333754,.0230498,.127832,-.0575652,.338507,.026597,.130909,-.0637441,.343666,.0306345,.135221,-.0704302,.351063,.035273,.14082,-.0776364,.360604,.0406137,.146781,-.0852293,.369638,.0466788,.155121,-.0935351,.3827,.0537628,.16398,-.102234,.39522,.0617985,.173926,-.111465,.40793,.07097,.185137,-.121296,.42105,.0813426,.19826,-.13169,.435735,.0931596,.212938,-.142614,.450932,.106547,.229046,-.153884,.465726,.121575,.246246,-.165382,.479461,.138286,.264637,-.176806,.492106,.15666,.284959,-.188793,.504774,.17728,.308157,-.200763,.518805,.19988,.330951,-.21239,.528231,.224293,.3549,-.223521,.536376,.250541,.381502,-.234169,.544846,.278902,.409529,-.244077,.551717,.309227,.437523,-.253363,.55517,.341426,.467624,-.261659,.557772,.37518,.497268,-.268498,.556442,.41007,.528294,-.274018,.553915,.446445,.559053,-.278169,.549153,.483779,.589329,-.281229,.539878,.522249,.622503,-.282902,.53162,.561754,.652382,-.282815,.518119,.601544,.681847,-.281247,.502187,.641574,.712285,-.277986,.484824,.682633,.740094,-.273017,.463483,.723426,.768478,-.266692,.441299,.763747,.794556,-.258358,.415238,.805565,.819408,-.248807,.386912,.847254,.843411,-.236214,.356165,.891091,.862397,-.219794,.320562,.936174,.883113,-.201768,.285322,.982562,.90023,-.181672,.249713,1.02862,.915192,-.159279,.214546,1.07163,.928458,-.134725,.180285,1.10995,.94069,-.10913,.147119,1.14354,.953409,-.0821315,.112492,1.17372,.969537,-.0542677,.0752014,1.20043,.985612,-.0259096,.0370361,1.22528,.999835,.00298198,-.00151801,1.24959,.10097,-602574e-11,.300277,202619e-11,.101577,-152164e-9,.302077,511662e-10,.101572,-608889e-9,.302066,204751e-9,.101566,-.00136997,.302047,460753e-9,.101592,-.00243557,.302114,819497e-9,.101608,-.0038053,.30214,.00128154,.101627,-.00547906,.30216,.0018483,.101669,-.00745647,.302224,.00252223,.101732,-.00973615,.302318,.00330716,.101844,-.0123097,.302513,.00421061,.102025,-.0151681,.30285,.00524481,.102224,-.0183334,.303166,.0064154,.102515,-.0217819,.303654,.00774063,.102886,-.0255067,.304243,.0092398,.103395,-.029514,.305089,.0109339,.104109,-.0337912,.306301,.0128561,.105074,-.0383565,.30798,.0150338,.10654,-.0432132,.310726,.0175228,.108478,-.0484244,.314351,.0203648,.111015,-.0539339,.319032,.0236325,.114682,-.0598885,.32605,.0274188,.11911,-.0663375,.334109,.0317905,.124736,-.0733011,.344013,.0368502,.131479,-.0807744,.355358,.0427104,.139283,-.0888204,.367614,.0494788,.148054,-.0973394,.380072,.0572367,.159037,-.10665,.395678,.0662704,.169794,-.116221,.40795,.0763192,.18314,-.126632,.423546,.087956,.197515,-.137383,.438213,.101042,.213514,-.148641,.453248,.115827,.23065,-.160117,.46688,.132283,.249148,-.171807,.479962,.150644,.270219,-.183695,.494618,.171073,.292338,-.195574,.506937,.193378,.314999,-.207205,.516463,.217585,.340991,-.218955,.528123,.24428,.367982,-.229917,.537025,.272784,.39432,-.239737,.541627,.302742,.423364,-.249048,.546466,.335112,.453751,-.257329,.549466,.369032,.48416,-.264623,.549503,.404577,.515262,-.270411,.547008,.441337,.547036,-.274581,.542249,.479162,.576614,-.277266,.533015,.517904,.611143,-.279144,.525512,.558508,.640989,-.279001,.51154,.598995,.671182,-.277324,.495641,.639935,.700848,-.273908,.477526,.681017,.729862,-.269063,.457955,.722764,.758273,-.262282,.434846,.764349,.784121,-.254281,.409203,.806206,.809798,-.24505,.382694,.848617,.834953,-.233861,.354034,.892445,.856817,-.221308,.321764,.936263,.877609,-.205996,.288118,.982401,.897489,-.186702,.253277,1.02975,.913792,-.164618,.217963,1.07488,.92785,-.140023,.183221,1.11487,.940378,-.11328,.149385,1.14947,.95273,-.0853958,.114152,1.1807,.969059,-.0568698,.0769845,1.20912,.985574,-.0276502,.0381186,1.23498,.999943,.00239052,-.00126861,1.25987,.0852715,-560067e-11,.279021,171162e-11,.0854143,-140871e-9,.279483,430516e-10,.0854191,-563385e-9,.2795,172184e-9,.0854188,-.00126753,.279493,387464e-9,.0854229,-.00225337,.279501,68918e-8,.0854443,-.00352086,.279549,.00107803,.0854697,-.00506962,.279591,.00155536,.0855093,-.00689873,.279652,.00212354,.0855724,-.00900821,.279752,.00278703,.0856991,-.0113799,.280011,.0035551,.085855,-.0140314,.280297,.00443449,.0860682,-.016963,.280682,.00543636,.086344,-.0201438,.281159,.0065788,.0867426,-.0235999,.281886,.00787977,.087239,-.0273069,.282745,.0093606,.0879815,-.031269,.284139,.011056,.0891258,-.035531,.28647,.0130065,.0906909,-.0400947,.289708,.0152495,.0927624,-.0449638,.293904,.0178454,.0958376,-.0502427,.300471,.0208915,.0995827,-.0559514,.30806,.0244247,.104526,-.0622152,.317874,.0285721,.110532,-.0690046,.329332,.0334227,.117385,-.0763068,.341217,.0390466,.12522,-.084184,.353968,.0455786,.134037,-.0925248,.366797,.0530773,.144014,-.101487,.380209,.0617424,.156013,-.111273,.395956,.071777,.168872,-.121431,.41053,.0830905,.183089,-.132105,.425073,.0959341,.198763,-.143286,.439833,.110448,.216159,-.154841,.454507,.126769,.234859,-.166588,.468368,.14495,.255879,-.178626,.482846,.165233,.27677,-.190218,.493489,.187217,.301184,-.202227,.506549,.211659,.325852,-.213764,.5158,.237922,.352824,-.22487,.525442,.26632,.380882,-.235246,.532487,.296691,.410137,-.244847,.537703,.329179,.439787,-.253122,.540361,.363135,.472291,-.260517,.542734,.399222,.501856,-.266519,.538826,.436352,.534816,-.270905,.535152,.474505,.565069,-.273826,.525979,.513988,.597154,-.275333,.516394,.554852,.630473,-.275314,.506206,.596592,.660574,-.273323,.489769,.638117,.692015,-.270008,.472578,.680457,.720647,-.265001,.452134,.723008,.750528,-.258311,.430344,.765954,.777568,-.250046,.405624,.809012,.80387,-.240114,.378339,.852425,.828439,-.228737,.349877,.895346,.851472,-.216632,.318968,.940695,.873906,-.202782,.287489,.987235,.89467,-.187059,.254394,1.03348,.912281,-.168818,.221294,1.07812,.927358,-.146494,.18675,1.11928,.940385,-.120009,.152322,1.15609,.952672,-.0917183,.117514,1.18875,.968496,-.0620321,.0797405,1.21821,.985236,-.0314945,.0402383,1.24523,.99998,-575153e-9,110644e-9,1.27133,.0702429,-512222e-11,.255273,140947e-11,.0702981,-128826e-9,.255469,354488e-10,.0703691,-515562e-9,.255727,141874e-9,.0703805,-.00116,.255754,31929e-8,.0703961,-.00206224,.255813,567999e-9,.0704102,-.00322223,.255839,88871e-8,.0704298,-.00463928,.255863,.00128272,.0704759,-.00631375,.255953,.00175283,.0705434,-.00824317,.256079,.00230342,.0706693,-.010412,.25636,.0029443,.0708189,-.0128439,.256647,.00368031,.0710364,-.0155177,.257084,.00452614,.0713223,-.0184374,.257637,.00549706,.0717182,-.0216002,.258416,.00661246,.072321,-.0249966,.259699,.00790147,.0731446,-.0286566,.261475,.0093884,.0743352,-.0325888,.264132,.0111186,.0760676,-.036843,.26815,.013145,.078454,-.0414292,.273636,.0155251,.0818618,-.0464634,.281653,.0183525,.0857382,-.0519478,.289992,.0216642,.0908131,-.0579836,.30066,.0255956,.0967512,-.0645124,.312204,.0301954,.103717,-.0716505,.325001,.0356017,.111596,-.0793232,.338129,.041896,.120933,-.087645,.352853,.0492447,.130787,-.096492,.366192,.0576749,.142311,-.105973,.380864,.0673969,.155344,-.116182,.396575,.0785899,.169535,-.126815,.411443,.0912377,.185173,-.138015,.426256,.105607,.201755,-.149325,.439607,.121551,.221334,-.161207,.455467,.139608,.241461,-.173162,.469096,.159591,.26294,-.18504,.481014,.18156,.286776,-.196881,.493291,.205781,.311596,-.208311,.503556,.231819,.338667,-.219671,.513268,.260274,.366021,-.230451,.519414,.290862,.395875,-.240131,.526766,.323196,.425564,-.248566,.52905,.357071,.457094,-.256195,.530796,.393262,.488286,-.262331,.528703,.430797,.522291,-.267141,.52727,.470231,.554172,-.270411,.519848,.510477,.586427,-.271986,.510307,.551594,.619638,-.27192,.499158,.593849,.650656,-.269817,.483852,.636314,.68284,-.266267,.467515,.679679,.714356,-.26113,.44931,.723884,.742717,-.254067,.425789,.767245,.770894,-.245652,.401144,.811819,.797358,-.235554,.374224,.856315,.823377,-.223896,.346167,.901077,.847456,-.210865,.316056,.946502,.870697,-.196574,.284503,.993711,.891068,-.180814,.251628,1.04134,.909267,-.163314,.219065,1.08609,.925653,-.143304,.186446,1.12702,.940017,-.121322,.153416,1.16371,.952398,-.0973872,.120334,1.19712,.967568,-.0698785,.08352,1.22791,.984772,-.0390031,.0439209,1.25672,1.00026,-.0070087,.00315668,1.28428,.0556653,-459654e-11,.227325,112556e-11,.0565238,-116382e-9,.230826,284985e-10,.0565717,-465666e-9,.231026,114036e-9,.0565859,-.00104773,.231079,256656e-9,.0565761,-.00186255,.231025,45663e-8,.0565913,-.00291002,.231058,714664e-9,.0566108,-.00418998,.231085,.00103224,.0566532,-.00570206,.231169,.00141202,.0567473,-.00743666,.231417,.00186018,.0568567,-.00940298,.231661,.00238264,.0569859,-.0115991,.231895,.00298699,.0572221,-.0140096,.232456,.00368957,.057519,-.0166508,.233096,.00450303,.0579534,-.01951,.234094,.00544945,.0585922,-.0225991,.235629,.00655564,.0595647,-.0259416,.238106,.00785724,.0609109,-.0295661,.241557,.00939127,.0628751,-.0335126,.246652,.0112198,.0656908,-.0378604,.254091,.0134168,.0691347,-.0426543,.262666,.0160374,.0732165,-.0478967,.272029,.0191514,.0782863,-.0536716,.283007,.0228597,.0843973,-.0600683,.295732,.0272829,.0913598,-.0670095,.308779,.032484,.0994407,-.0745516,.322886,.0385886,.108189,-.082712,.336408,.0457133,.118574,-.0914927,.351692,.0539832,.129989,-.100854,.366502,.0635162,.142722,-.110837,.381675,.0744386,.156654,-.121353,.3963,.0868483,.172151,-.132414,.411477,.100963,.188712,-.143809,.42508,.116795,.208093,-.155765,.441328,.134715,.227936,-.167608,.454328,.154396,.249495,-.179579,.467235,.176179,.27362,-.191488,.480248,.200193,.296371,-.202618,.487886,.225775,.324234,-.214133,.499632,.25441,.353049,-.225212,.509532,.285077,.381785,-.234875,.514265,.317047,.414038,-.244205,.521282,.351874,.445251,-.252145,.522931,.388279,.476819,-.258433,.520947,.425825,.509209,-.263411,.517669,.465104,.542759,-.266732,.512841,.505741,.574822,-.268263,.503317,.547611,.609324,-.268489,.493035,.590953,.641772,-.266941,.478816,.63488,.674049,-.263297,.462863,.679072,.705071,-.257618,.442931,.723487,.734709,-.250625,.421299,.768708,.763704,-.24179,.397085,.814375,.791818,-.231115,.370577,.859907,.817439,-.21922,.34232,.906715,.843202,-.205658,.312627,.953943,.866639,-.190563,.280933,1.00185,.888129,-.173978,.248393,1.05105,.907239,-.155485,.216007,1.09704,.923893,-.134782,.183233,1.13857,.938882,-.11249,.150376,1.17539,.952464,-.0890706,.117177,1.20924,.968529,-.0646523,.0813095,1.24055,.984763,-.038606,.0439378,1.27018,1.00053,-.01238,.00598668,1.29873,.0437928,-409594e-11,.204012,8.79224e-7,.0440166,-103395e-9,.205049,221946e-10,.0440529,-413633e-9,.205225,887981e-10,.0440493,-930594e-9,.2052,199858e-9,.0439884,-.00165352,.204901,355495e-9,.0440716,-.0025849,.205255,556983e-9,.0440968,-.00372222,.205311,805326e-9,.0441359,-.00506478,.205391,.00110333,.0442231,-.00660384,.205638,.00145768,.0443254,-.00835246,.205877,.00187275,.0444832,-.0102992,.20627,.00235938,.0447001,-.0124449,.206796,.0029299,.0450168,-.0147935,.207593,.0036005,.0454816,-.017336,.208819,.00439246,.0462446,-.0201156,.211036,.00533864,.0473694,-.0231568,.214388,.00646984,.0490191,-.0264941,.219357,.00783856,.0512776,-.030184,.226061,.00950182,.0541279,-.0342661,.234094,.0115156,.0578989,-.0388539,.244297,.0139687,.0620835,-.0438735,.254457,.0169015,.0673497,-.04951,.266706,.0204554,.0731759,-.0556263,.278753,.0246606,.0803937,-.0624585,.29309,.0297126,.0879287,-.0697556,.305856,.0355868,.0970669,-.0778795,.321059,.0425768,.106508,-.0863541,.333873,.05056,.11776,-.0955935,.349008,.0598972,.130081,-.105438,.363776,.0706314,.144454,-.115899,.380112,.0828822,.1596,-.126827,.394843,.0967611,.176097,-.138161,.409033,.112381,.194726,-.149904,.424257,.129952,.213944,-.161675,.436945,.149333,.235516,-.173659,.450176,.170892,.260564,-.185963,.466305,.194984,.285183,-.197582,.477328,.220805,.311095,-.208697,.486566,.248694,.338924,-.219519,.494811,.279015,.369757,-.229766,.504065,.311725,.3996,-.238879,.507909,.345844,.430484,-.246802,.509805,.381749,.46413,-.253924,.511436,.420251,.497077,-.259319,.508787,.459957,.530434,-.263297,.50394,.501356,.565725,-.265619,.49804,.544252,.599254,-.265842,.487346,.587856,.631251,-.263978,.472975,.631969,.663972,-.26043,.457135,.677471,.697724,-.255358,.439844,.723744,.727725,-.248308,.417872,.770653,.756417,-.239181,.39273,.817357,.785419,-.22814,.367839,.864221,.81266,-.215681,.339449,.912701,.839391,-.201623,.309279,.962419,.86366,-.185624,.278029,1.0122,.885028,-.16797,.245294,1.06186,.904639,-.148336,.212689,1.10934,.922048,-.12637,.179616,1.15063,.936952,-.102928,.146749,1.18885,.951895,-.0785268,.112733,1.22352,.967198,-.0530153,.0760056,1.25681,.984405,-.02649,.0383183,1.28762,1.00021,70019e-8,-20039e-8,1.31656,.0325964,-355447e-11,.176706,6.55682e-7,.0329333,-899174e-10,.178527,165869e-10,.0329181,-359637e-9,.178453,663498e-10,.0329085,-808991e-9,.178383,149332e-9,.0329181,-.00143826,.178394,265873e-9,.0329425,-.00224678,.178517,416597e-9,.0329511,-.00323575,.17849,603299e-9,.033011,-.00439875,.178695,829422e-9,.0330733,-.00574059,.178843,.00109908,.0331857,-.00725896,.179176,.00141933,.0333445,-.00895289,.179618,.0017999,.0335674,-.0108219,.180238,.00225316,.033939,-.0128687,.181417,.00279765,.0345239,-.015114,.183395,.0034564,.0354458,-.017596,.186616,.00425864,.0368313,-.0203524,.191547,.00524936,.0386115,-.0234105,.197508,.00647033,.0410303,-.0268509,.205395,.00798121,.0442245,-.0307481,.215365,.0098557,.0478659,-.0350863,.225595,.0121417,.0522416,-.0399506,.236946,.0149385,.0574513,-.045357,.249442,.0183189,.0631208,-.0512863,.261222,.0223644,.0701124,-.0579273,.275418,.0272418,.0777331,-.0650652,.288989,.0329458,.0862709,-.0728813,.302546,.0396819,.096103,-.081363,.317164,.04757,.106976,-.0904463,.331733,.0567012,.119175,-.100105,.34661,.067202,.132919,-.110375,.362249,.0792588,.147727,-.121115,.376978,.0928672,.163618,-.132299,.390681,.108228,.182234,-.143887,.406571,.125502,.201809,-.155827,.42042,.144836,.225041,-.168357,.438411,.166706,.247621,-.18004,.450368,.189909,.27097,-.191536,.460083,.215251,.296658,-.203024,.469765,.243164,.325892,-.214056,.481837,.273388,.35406,-.224104,.487474,.305344,.384372,-.233489,.492773,.339741,.41749,-.241874,.498451,.376287,.45013,-.248834,.499632,.414195,.481285,-.254658,.495233,.454077,.519183,-.259367,.496401,.496352,.551544,-.261818,.487686,.538798,.587349,-.262964,.479453,.583626,.621679,-.262128,.467709,.629451,.654991,-.258998,.452123,.67566,.686873,-.254119,.433495,.723248,.719801,-.246946,.413657,.771156,.750355,-.237709,.390366,.81989,.780033,-.226549,.364947,.868601,.809254,-.214186,.337256,.920034,.836576,-.199639,.307395,.971706,.861774,-.183169,.275431,1.02479,.885707,-.165111,.243431,1.07837,.904742,-.144363,.210921,1.12783,.915604,-.121305,.17647,1.17254,.930959,-.0962119,.143106,1.21012,.948404,-.069969,.108112,1.24474,.967012,-.0427586,.0708478,1.27718,.984183,-.0147043,.032335,1.3083,.999577,.0142165,-.00726867,1.3382,.0229227,-299799e-11,.148623,4.62391e-7,.0232194,-758796e-10,.15054,117033e-10,.0232315,-303636e-9,.15063,468397e-10,.0232354,-683189e-9,.150624,105472e-9,.0232092,-.0012136,.150445,187744e-9,.0232523,-.00189765,.150679,294847e-9,.0232828,-.00273247,.150789,428013e-9,.0233371,-.00371287,.150995,591134e-9,.0234015,-.00484794,.15118,787642e-9,.023514,-.00612877,.151562,.00102547,.023679,-.00756125,.152116,.00131351,.0239559,-.00914651,.153162,.00166594,.0244334,-.010904,.155133,.00210182,.025139,-.0128615,.158035,.00264406,.0262598,-.0150628,.162751,.00332923,.0277875,-.0175532,.168944,.00419773,.0298472,-.0203981,.176835,.00530034,.0325444,-.023655,.186686,.00669777,.0355581,-.0272982,.196248,.00842661,.0392841,-.0314457,.207352,.0105854,.0436815,-.0361157,.219279,.0132458,.0485272,-.0412932,.230728,.0164736,.0541574,-.0470337,.242994,.0203715,.0609479,-.0535002,.257042,.0250953,.0685228,-.0605409,.27102,.0306856,.0768042,-.0680553,.28406,.037193,.0864844,-.0765011,.299186,.0449795,.0969415,-.0852674,.3132,.0538316,.108478,-.0947333,.327138,.0641149,.121705,-.10481,.342345,.0759185,.136743,-.115474,.358472,.0894116,.152986,-.126536,.374067,.104562,.170397,-.138061,.388267,.121632,.191392,-.150203,.406467,.140996,.211566,-.161751,.418641,.161696,.233567,-.173407,.430418,.184557,.257769,-.185397,.44277,.210092,.28531,-.197048,.457191,.237827,.311726,-.20784,.464712,.267253,.340537,-.218345,.472539,.299332,.372921,-.228306,.482331,.333988,.402924,-.236665,.484378,.369722,.434475,-.244097,.484717,.407836,.469736,-.250547,.487093,.448465,.505045,-.25511,.485575,.490263,.540262,-.258444,.481225,.534495,.576347,-.259903,.473481,.579451,.608656,-.259572,.4603,.625604,.646679,-.257908,.450341,.674511,.679902,-.253663,.431561,.723269,.714159,-.247419,.412684,.773263,.745345,-.239122,.389388,.824182,.778248,-.228837,.365361,.876634,.807208,-.216197,.337667,.92945,.835019,-.201772,.307197,.985261,.860261,-.185291,.274205,1.04299,.877601,-.165809,.240178,1.09816,.898211,-.143897,.207571,1.14694,.915789,-.119513,.174904,1.19008,.931831,-.0932919,.141423,1.2297,.949244,-.0656528,.105603,1.26553,.967527,-.0370262,.0679551,1.29986,.984139,-.00730117,.0283133,1.33252,.999713,.0234648,-.0121785,1.36397,.0152135,-245447e-11,.122795,3.04092e-7,.0151652,-615778e-10,.122399,76292e-10,.0151181,-245948e-9,.122023,304802e-10,.0151203,-553394e-9,.12203,686634e-10,.015125,-983841e-9,.122037,122463e-9,.0151427,-.00153774,.12214,192706e-9,.0151708,-.0022103,.122237,281219e-9,.0152115,-.00300741,.12238,390804e-9,.0152877,-.00392494,.1227,526317e-9,.015412,-.00496597,.123244,69443e-8,.0156201,-.00613314,.124228,90547e-8,.0159658,-.00744113,.125945,.0011732,.0165674,-.00892546,.129098,.00151888,.017487,-.010627,.133865,.00197007,.018839,-.0126043,.140682,.0025637,.020554,-.0148814,.148534,.00333637,.0226727,-.0175123,.157381,.00433738,.0251879,-.0205266,.166685,.00561664,.0283635,-.0240319,.177796,.00725563,.0318694,-.0279432,.188251,.00928811,.0361044,-.0324313,.200038,.011835,.0406656,-.0373527,.210685,.0149146,.0463846,-.0430132,.224182,.0187254,.0525696,-.0491013,.23634,.0232283,.0598083,-.0559175,.250013,.0286521,.0679437,-.0633657,.263981,.0350634,.0771181,-.0714602,.278072,.0425882,.0881273,-.0803502,.29511,.0514487,.0996628,-.0896903,.309976,.0615766,.112702,-.099644,.325611,.0732139,.126488,-.109829,.339321,.0862324,.142625,-.120859,.35574,.101275,.15953,-.131956,.369845,.117892,.176991,-.143145,.38146,.136205,.199715,-.155292,.40052,.157252,.220787,-.167066,.412055,.179966,.243697,-.178396,.423133,.204418,.272106,-.190433,.439524,.232141,.297637,-.201265,.447041,.261109,.325273,-.211834,.454488,.292627,.357219,-.221889,.465004,.326669,.387362,-.230729,.468527,.362426,.423131,-.23924,.475836,.401533,.45543,-.246067,.475017,.441902,.493393,-.251557,.478017,.484239,.526253,-.255571,.4709,.528586,.560554,-.257752,.463167,.574346,.599306,-.258076,.456452,.621655,.634541,-.256471,.443725,.670492,.668907,-.253283,.428719,.721943,.705619,-.247562,.411348,.772477,.739034,-.240626,.388939,.8264,.771408,-.231493,.36425,.881702,.803312,-.220125,.337321,.9385,.828457,-.206645,.305364,.997437,.854819,-.190664,.273715,1.05693,.878666,-.171429,.242218,1.11251,.898404,-.149235,.209556,1.16398,.917416,-.12435,.176863,1.21014,.933133,-.0972703,.142775,1.25178,.95066,-.0683607,.106735,1.29028,.968589,-.0378724,.0681609,1.32703,.984776,-.00605712,.0273966,1.36158,.99994,.0263276,-.0138124,1.3943,.00867437,-186005e-11,.0928979,1.73682e-7,.00864003,-466389e-10,.0925237,435505e-11,.00864593,-186594e-9,.0925806,174322e-10,.00864095,-419639e-9,.0924903,392862e-10,.00863851,-746272e-9,.0924589,702598e-10,.00868531,-.00116456,.0929,111188e-9,.00869667,-.00167711,.0928529,163867e-9,.00874332,-.00228051,.0930914,23104e-8,.00882709,-.00297864,.0935679,31741e-8,.00898874,-.00377557,.0946165,430186e-9,.00929346,-.00469247,.0967406,580383e-9,.00978271,-.00575491,.100084,783529e-9,.0105746,-.00701514,.105447,.00106304,.0116949,-.00851797,.112494,.00144685,.0130419,-.0102757,.119876,.00196439,.0148375,-.012381,.129034,.00266433,.0168725,-.01482,.137812,.00358364,.0193689,-.0176563,.147696,.00478132,.0222691,-.0209211,.157795,.00631721,.0256891,-.0246655,.168431,.00826346,.0294686,-.0288597,.178587,.0106714,.0340412,-.0336441,.190251,.0136629,.0393918,-.039033,.202999,.0173272,.0453947,-.0450087,.215655,.0217448,.0521936,-.0515461,.228686,.0269941,.0600279,-.058817,.242838,.033272,.0692398,-.0667228,.258145,.0406457,.0793832,-.0752401,.273565,.0492239,.0902297,-.0841851,.287735,.0590105,.102014,-.0936479,.301161,.0702021,.116054,-.103967,.317438,.0832001,.13191,-.114622,.334166,.0977951,.148239,-.125452,.348192,.113985,.165809,-.136453,.361094,.131928,.184616,-.147648,.373534,.151811,.207491,-.159607,.39101,.174476,.230106,-.171119,.402504,.198798,.257036,-.182906,.418032,.225796,.281172,-.193605,.425468,.254027,.312034,-.204771,.440379,.285713,.340402,-.214988,.445406,.319196,.370231,-.224711,.44968,.35537,.407105,-.233516,.460747,.393838,.439037,-.240801,.460624,.433747,.47781,-.24762,.465957,.477234,.510655,-.251823,.460054,.52044,.550584,-.255552,.459172,.567853,.585872,-.257036,.450311,.615943,.620466,-.257535,.437763,.667693,.660496,-.255248,.426639,.718988,.695578,-.251141,.409185,.772503,.732176,-.244718,.39015,.827023,.760782,-.236782,.362594,.885651,.79422,-.225923,.33711,.943756,.824521,-.213855,.308272,1.00874,.854964,-.197723,.278529,1.06764,.878065,-.179209,.246208,1.12836,.899834,-.157569,.21329,1.18318,.918815,-.133206,.181038,1.23161,.934934,-.106545,.146993,1.27644,.952115,-.0780574,.111175,1.31842,.96906,-.0478279,.0728553,1.35839,.985178,-.0160014,.032579,1.39697,1.00039,.0173126,-.0095256,1.43312,.00384146,-124311e-11,.0613583,7.78271e-8,.00390023,-314043e-10,.0622919,196626e-11,.00389971,-125622e-9,.0622632,787379e-11,.00389491,-282352e-9,.0620659,1778e-8,.00391618,-502512e-9,.0624687,320918e-10,.00392662,-784458e-9,.0625113,515573e-10,.00396053,-.00112907,.0628175,778668e-10,.00401911,-.00153821,.0633286,113811e-9,.00414994,-.0020208,.0646443,16445e-8,.00441223,-.00260007,.0673886,237734e-9,.00484427,-.0033097,.0716528,345929e-9,.00549109,-.00418966,.0774998,505987e-9,.00636293,-.00527331,.0844758,739208e-9,.00746566,-.00660428,.0921325,.00107347,.00876625,-.00818826,.0997067,.00153691,.0103125,-.0100811,.107433,.00217153,.0123309,-.0123643,.117088,.00303427,.0146274,-.0150007,.126438,.00416018,.0172295,-.0180531,.135672,.00561513,.0204248,-.0215962,.146244,.007478,.0241597,-.0256234,.157481,.00981046,.0284693,-.0302209,.169125,.0127148,.033445,-.0353333,.181659,.0162453,.0391251,-.0410845,.1944,.0205417,.0454721,-.0473451,.207082,.0256333,.0530983,-.0542858,.221656,.0317036,.0615356,-.0618384,.236036,.0388319,.0703363,-.0697631,.248398,.046974,.0810391,-.0784757,.263611,.0565246,.0920144,-.0873488,.275857,.0671724,.105584,-.0973652,.292555,.0798105,.119506,-.107271,.306333,.0935945,.134434,-.117608,.318888,.109106,.153399,-.128938,.337552,.127074,.171258,-.139944,.349955,.14643,.191059,-.151288,.361545,.168,.215069,-.163018,.378421,.192082,.237838,-.174226,.38879,.217838,.266965,-.186063,.405857,.246931,.292827,-.196909,.414146,.277505,.324352,-.207473,.426955,.310711,.354427,-.217713,.433429,.346794,.389854,-.227183,.443966,.385237,.420749,-.235131,.44471,.424955,.459597,-.242786,.451729,.468446,.495316,-.248767,.45072,.513422,.534903,-.253351,.450924,.560618,.572369,-.256277,.445266,.609677,.612383,-.2576,.438798,.660995,.644037,-.256931,.421693,.713807,.686749,-.254036,.4109,.767616,.719814,-.249785,.390151,.82533,.754719,-.244283,.367847,.888311,.792022,-.235076,.345013,.948177,.822404,-.225061,.316193,1.01661,.853084,-.211113,.287013,1.08075,.879871,-.19449,.255424,1.14501,.901655,-.174023,.222879,1.20203,.919957,-.1509,.18989,1.25698,.938412,-.124923,.15606,1.30588,.953471,-.0968139,.120512,1.3529,.970451,-.066734,.0828515,1.3986,.985522,-.034734,.0424458,1.44148,1.00099,-.00102222,678929e-9,1.48398,965494e-9,-6.27338e-7,.0306409,1.97672e-8,99168e-8,-158573e-10,.0314638,4.99803e-7,991068e-9,-634012e-10,.031363,200682e-11,974567e-9,-14144e-8,.03036,457312e-11,998079e-9,-252812e-9,.031496,860131e-11,.00102243,-396506e-9,.0319955,148288e-10,.00107877,-577593e-9,.0331376,249141e-10,.00121622,-816816e-9,.0359396,423011e-10,.0014455,-.00113761,.0399652,724613e-10,.00178791,-.00156959,.0450556,123929e-9,.00225668,-.00214064,.0508025,208531e-9,.00285627,-.00287655,.0568443,341969e-9,.0035991,-.00380271,.0630892,544158e-9,.00455524,-.00496264,.0702204,842423e-9,.00569143,-.0063793,.0773426,.00126704,.00716928,-.00813531,.0860839,.00186642,.00885307,-.0101946,.0944079,.00267014,.0109316,-.0126386,.103951,.00374033,.0133704,-.0154876,.113786,.0051304,.0161525,-.0187317,.123477,.00688858,.0194267,-.0224652,.133986,.00910557,.0230967,-.0265976,.143979,.0118074,.0273627,-.0312848,.154645,.0151266,.0323898,-.0365949,.166765,.0191791,.0379225,-.0422914,.177932,.0239236,.0447501,-.0487469,.19167,.0296568,.0519391,-.0556398,.203224,.0362924,.0599464,-.0631646,.215652,.0440585,.0702427,-.0714308,.232089,.0531619,.0806902,-.0800605,.245258,.0634564,.0923194,-.0892815,.258609,.0752481,.106938,-.09931,.276654,.0888914,.121238,-.109575,.289847,.104055,.138817,-.120461,.307566,.121266,.15595,-.131209,.320117,.139944,.178418,-.143049,.339677,.161591,.197875,-.154074,.349886,.184303,.224368,-.166307,.369352,.210669,.252213,-.178051,.386242,.238895,.277321,-.189335,.395294,.269182,.310332,-.200683,.412148,.302508,.338809,-.210856,.418266,.337264,.372678,-.220655,.428723,.374881,.405632,-.230053,.433887,.415656,.442293,-.237993,.439911,.457982,.477256,-.244897,.440175,.502831,.515592,-.250657,.441079,.550277,.550969,-.255459,.435219,.601102,.592883,-.257696,.432882,.651785,.629092,-.259894,.421054,.708961,.672033,-.258592,.41177,.763806,.709147,-.256525,.395267,.824249,.745367,-.254677,.375013,.8951,.784715,-.247892,.353906,.959317,.818107,-.240162,.327801,1.03153,.847895,-.229741,.298821,1.10601,.879603,-.213084,.269115,1.164,.902605,-.195242,.236606,1.22854,.922788,-.174505,.203442,1.29017,.944831,-.150169,.169594,1.34157,.959656,-.124099,.135909,1.3956,.972399,-.0960626,.0990563,1.45128,.986549,-.0657097,.0602348,1.50312,1.00013,-.0333558,.0186694,1.55364,619747e-11,-1e-7,.00778326,796756e-16,2.37499e-8,-9.99999e-8,282592e-10,1.14596e-10,100292e-11,-166369e-11,250354e-9,6.77492e-9,350752e-11,-637769e-11,357289e-9,6.31655e-8,826445e-11,-174689e-10,516179e-9,3.1851e-7,242481e-10,-450868e-10,.0010223,130577e-11,455631e-10,-89044e-9,.00144302,374587e-11,971222e-10,-178311e-9,.00241912,102584e-10,171403e-9,-313976e-9,.00354938,236481e-10,292747e-9,-520026e-9,.00513765,496014e-10,789827e-9,-.00118187,.0238621,139056e-9,.00114093,-.00171827,.0286691,244093e-9,.00176119,-.00249667,.0368565,420623e-9,.0022233,-.00333742,.0400469,65673e-8,.00343382,-.00481976,.0535751,.00109323,.00427602,-.00600755,.057099,.00155268,.00461435,-.00737637,.0551084,.00215031,.00695698,-.00971401,.0715767,.00316529,.00867619,-.0120943,.0793314,.00436995,.0106694,-.0148202,.0869391,.0058959,.0140351,-.0183501,.101572,.00798757,.0168939,-.022006,.11018,.0104233,.020197,-.0261568,.119041,.0134167,.0254702,-.0312778,.135404,.0173009,.0298384,-.0362469,.1437,.0215428,.035159,-.042237,.15512,.0268882,.0427685,-.0488711,.17128,.033235,.0494848,-.0557997,.181813,.0404443,.0592394,-.0635578,.198745,.0490043,.0681463,-.071838,.210497,.0588239,.0804753,-.0809297,.228864,.0702835,.0942205,-.0906488,.247008,.0834012,.106777,-.100216,.258812,.0975952,.124471,-.110827,.278617,.114162,.138389,-.121193,.287049,.131983,.159543,-.13253,.307151,.152541,.176432,-.143611,.31564,.174673,.201723,-.15548,.33538,.199842,.229721,-.167166,.355256,.227097,.250206,-.178238,.360047,.256014,.282118,-.189905,.378761,.28855,.312821,-.201033,.39181,.323348,.341482,-.211584,.397716,.360564,.377368,-.221314,.410141,.400004,.418229,-.230474,.423485,.442371,.444881,-.239443,.418874,.488796,.488899,-.245987,.427545,.535012,.520317,-.253948,.422147,.589678,.568566,-.256616,.42719,.637683,.599607,-.26376,.415114,.703363,.64222,-.268687,.408715,.771363,.685698,-.2694,.399722,.83574,.732327,-.266642,.388651,.897764,.769873,-.267712,.369198,.983312,.806733,-.263479,.346802,1.06222,.843466,-.254575,.321368,1.13477,.873008,-.242749,.29211,1.20712,.908438,-.22725,.262143,1.27465,.936321,-.207621,.228876,1.33203,.950353,-.187932,.19484,1.40439,.96442,-.165154,.163178,1.4732,.979856,-.139302,.127531,1.53574,.982561,-.11134,.0903457,1.59982,.996389,-.0808124,.0489007,1.6577],t=[1,0,0,0,1,791421e-36,0,0,1,104392e-29,0,0,1,349405e-26,0,0,1,109923e-23,0,0,1,947414e-22,0,0,1,359627e-20,0,0,1,772053e-19,0,0,1,108799e-17,0,0,1,110655e-16,0,0,1,865818e-16,0,0,.999998,5.45037e-10,0,0,.999994,2.85095e-9,0,0,.999989,1.26931e-8,0,0,.999973,4.89938e-8,0,0,.999947,1.66347e-7,0,0,.999894,5.02694e-7,0,0,.999798,136532e-11,0,0,.999617,335898e-11,0,0,.999234,752126e-11,0,0,.998258,152586e-10,0,0,.99504,266207e-10,0,0,.980816,236802e-10,0,0,.967553,207684e-11,0,0,.966877,403733e-11,0,0,.965752,741174e-11,0,0,.96382,127746e-10,0,0,.960306,202792e-10,0,0,.953619,280232e-10,0,0,.941103,278816e-10,0,0,.926619,160221e-10,0,0,.920983,235164e-10,0,0,.912293,311924e-10,0,.0158731,.899277,348118e-10,0,.0476191,.880884,26041e-9,0,.0793651,.870399,338726e-10,0,.111111,.856138,392906e-10,0,.142857,.837436,372874e-10,0,.174603,.820973,392558e-10,0,.206349,.803583,434658e-10,0,.238095,.782168,40256e-9,0,.269841,.764107,448159e-10,0,.301587,.743092,457627e-10,0,.333333,.721626,455314e-10,0,.365079,.700375,477335e-10,0,.396825,.677334,461072e-10,0,.428571,.655702,484393e-10,0,.460317,.632059,464583e-10,0,.492064,.610125,483923e-10,0,.52381,.58653,464342e-10,0,.555556,.564508,477033e-10,0,.587302,.541405,459263e-10,0,.619048,.519556,46412e-9,0,.650794,.497292,448913e-10,0,.68254,.475898,445789e-10,0,.714286,.454722,433496e-10,0,.746032,.434042,423054e-10,0,.777778,.414126,413737e-10,0,.809524,.394387,397265e-10,0,.84127,.375841,390709e-10,0,.873016,.357219,369938e-10,0,.904762,.340084,365618e-10,0,.936508,.322714,342533e-10,0,.968254,.306974,339596e-10,0,1,1,101524e-23,0,0,1,10292e-22,0,0,1,130908e-23,0,0,1,473331e-23,0,0,1,625319e-22,0,0,1,107932e-20,0,0,1,163779e-19,0,0,1,203198e-18,0,0,1,204717e-17,0,0,.999999,168995e-16,0,0,.999998,1.15855e-10,0,0,.999996,6.6947e-10,0,0,.999991,3.30863e-9,0,0,.999983,1.41737e-8,0,0,.999968,5.32626e-8,0,0,.99994,1.77431e-7,0,0,.999891,5.28835e-7,0,0,.999797,142169e-11,0,0,.999617,347057e-11,0,0,.999227,77231e-10,0,0,.998239,155753e-10,0,0,.994937,268495e-10,0,0,.980225,213742e-10,0,0,.967549,21631e-10,0,0,.966865,417989e-11,0,0,.965739,763341e-11,0,0,.963794,130892e-10,0,0,.960244,206456e-10,0,0,.953495,282016e-10,0,148105e-9,.940876,271581e-10,0,.002454,.926569,164159e-10,0,.00867491,.920905,239521e-10,0,.01956,.912169,315127e-10,0,.035433,.899095,346626e-10,0,.056294,.882209,290223e-10,0,.0818191,.870272,342992e-10,0,.111259,.855977,394164e-10,0,.142857,.837431,372343e-10,0,.174603,.820826,396691e-10,0,.206349,.803408,435395e-10,0,.238095,.782838,419579e-10,0,.269841,.763941,450953e-10,0,.301587,.742904,455847e-10,0,.333333,.721463,458833e-10,0,.365079,.700197,477159e-10,0,.396825,.677501,470641e-10,0,.428571,.655527,484732e-10,0,.460317,.6324,476834e-10,0,.492064,.609964,484213e-10,0,.52381,.586839,475541e-10,0,.555556,.564353,476951e-10,0,.587302,.541589,467611e-10,0,.619048,.519413,463493e-10,0,.650794,.497337,453994e-10,0,.68254,.475797,445308e-10,0,.714286,.454659,435787e-10,0,.746032,.434065,424839e-10,0,.777778,.414018,41436e-9,0,.809524,.39455,401902e-10,0,.84127,.375742,390813e-10,0,.873016,.357501,377116e-10,0,.904762,.339996,36535e-9,0,.936508,.323069,351265e-10,0,.968254,.306897,339112e-10,0,1,1,10396e-19,0,0,1,104326e-20,0,0,1,110153e-20,0,0,1,144668e-20,0,0,1,34528e-19,0,0,1,175958e-19,0,0,1,12627e-17,0,0,1,936074e-18,0,0,1,645742e-17,0,0,.999998,401228e-16,0,0,.999997,2.22338e-10,0,0,.999995,1.0967e-9,0,0,.999991,4.82132e-9,0,0,.999981,1.89434e-8,0,0,.999967,6.67716e-8,0,0,.999938,2.12066e-7,0,0,.999886,6.0977e-7,0,0,.999792,159504e-11,0,0,.999608,381191e-11,0,0,.999209,833727e-11,0,0,.998179,165288e-10,0,0,.994605,274387e-10,0,0,.979468,167316e-10,0,0,.967529,242877e-11,0,0,.966836,461696e-11,0,0,.96569,830977e-11,0,0,.963706,140427e-10,0,244659e-11,.960063,217353e-10,0,760774e-9,.953113,286606e-10,0,.00367261,.940192,247691e-10,0,.00940263,.927731,195814e-10,0,.018333,.920669,252531e-10,0,.0306825,.911799,324277e-10,0,.0465556,.89857,340982e-10,0,.0659521,.883283,319622e-10,0,.0887677,.86989,35548e-9,0,.114784,.855483,397143e-10,0,.143618,.837987,391665e-10,0,.174606,.820546,411306e-10,0,.206349,.802878,436753e-10,0,.238095,.783402,444e-7,0,.269841,.763439,458726e-10,0,.301587,.742925,467097e-10,0,.333333,.721633,478887e-10,0,.365079,.69985,481251e-10,0,.396825,.67783,491811e-10,0,.428571,.655126,488199e-10,0,.460318,.632697,496025e-10,0,.492064,.609613,48829e-9,0,.52381,.587098,492754e-10,0,.555556,.564119,482625e-10,0,.587302,.541813,482807e-10,0,.619048,.519342,471552e-10,0,.650794,.497514,466765e-10,0,.68254,.475879,455582e-10,0,.714286,.454789,446007e-10,0,.746032,.434217,435382e-10,0,.777778,.414086,421753e-10,0,.809524,.394744,412093e-10,0,.84127,.375782,396634e-10,0,.873016,.357707,386419e-10,0,.904762,.340038,370345e-10,0,.936508,.323284,359725e-10,0,.968254,.306954,3436e-8,0,1,1,599567e-19,0,0,1,600497e-19,0,0,1,614839e-19,0,0,1,686641e-19,0,0,1,972658e-19,0,0,1,221271e-18,0,0,1,833195e-18,0,0,1,403601e-17,0,0,.999999,206001e-16,0,0,.999998,1.01739e-10,0,0,.999997,4.70132e-10,0,0,.999993,2.00436e-9,0,0,.999988,7.83682e-9,0,0,.999979,2.80338e-8,0,0,.999962,9.17033e-8,0,0,.999933,2.74514e-7,0,0,.999881,7.53201e-7,0,0,.999783,189826e-11,0,0,.999594,440279e-11,0,0,.999178,93898e-10,0,0,.998073,181265e-10,0,0,.993993,280487e-10,0,0,.979982,149422e-10,0,0,.968145,378481e-11,0,0,.966786,53771e-10,0,0,.965611,947508e-11,0,388934e-10,.963557,156616e-10,0,9693e-7,.959752,235144e-10,0,.00370329,.952461,291568e-10,0,.00868428,.940193,240102e-10,0,.0161889,.929042,231235e-10,0,.0263948,.920266,273968e-10,0,.0394088,.911178,337915e-10,0,.0552818,.897873,333629e-10,0,.0740138,.884053,351405e-10,0,.0955539,.869455,378034e-10,0,.119795,.854655,399378e-10,0,.14656,.838347,419108e-10,0,.175573,.820693,440831e-10,0,.206388,.802277,445599e-10,0,.238095,.783634,472691e-10,0,.269841,.763159,476984e-10,0,.301587,.742914,491487e-10,0,.333333,.721662,502312e-10,0,.365079,.699668,502817e-10,0,.396825,.677839,51406e-9,0,.428571,.655091,511095e-10,0,.460317,.632665,516067e-10,0,.492064,.609734,512255e-10,0,.52381,.587043,510263e-10,0,.555556,.564298,50565e-9,0,.587302,.541769,497951e-10,0,.619048,.519529,492698e-10,0,.650794,.497574,482066e-10,0,.68254,.476028,473689e-10,0,.714286,.454961,461941e-10,0,.746032,.434341,450618e-10,0,.777778,.414364,438355e-10,0,.809524,.394832,424196e-10,0,.84127,.376109,412563e-10,0,.873016,.35779,396226e-10,0,.904762,.340379,384886e-10,0,.936508,.323385,368214e-10,0,.968254,.307295,356636e-10,0,1,1,106465e-17,0,0,1,106555e-17,0,0,1,107966e-17,0,0,1,114601e-17,0,0,1,137123e-17,0,0,1,21243e-16,0,0,.999999,489653e-17,0,0,.999999,160283e-16,0,0,.999998,62269e-15,0,0,.999997,2.51859e-10,0,0,.999996,9.96192e-10,0,0,.999992,3.74531e-9,0,0,.999986,1.32022e-8,0,0,.999975,4.33315e-8,0,0,.999959,1.31956e-7,0,0,.999927,3.72249e-7,0,0,.999871,9.72461e-7,0,0,.999771,235343e-11,0,0,.999572,52768e-10,0,0,.999133,109237e-10,0,0,.997912,203675e-10,0,0,.993008,279396e-10,0,0,.980645,139604e-10,0,0,.970057,646596e-11,0,0,.966717,65089e-10,0,474145e-10,.965497,111863e-10,0,89544e-8,.96334,179857e-10,0,.0032647,.959294,259045e-10,0,.0075144,.951519,292327e-10,0,.0138734,.940517,249769e-10,0,.0224952,.93014,26803e-9,0,.0334828,.91972,303656e-10,0,.0468973,.910294,353323e-10,0,.0627703,.897701,351002e-10,0,.0811019,.884522,388104e-10,0,.10186,.869489,412932e-10,0,.124985,.853983,415781e-10,0,.150372,.838425,454066e-10,0,.177868,.820656,471624e-10,0,.207245,.801875,475243e-10,0,.238143,.783521,505621e-10,0,.269841,.763131,50721e-9,0,.301587,.74261,523293e-10,0,.333333,.72148,528699e-10,0,.365079,.699696,538677e-10,0,.396825,.677592,539255e-10,0,.428571,.65525,546367e-10,0,.460317,.632452,541348e-10,0,.492064,.609903,544976e-10,0,.52381,.586928,536201e-10,0,.555556,.564464,535185e-10,0,.587302,.541801,524949e-10,0,.619048,.519681,51812e-9,0,.650794,.497685,507687e-10,0,.68254,.47622,496243e-10,0,.714286,.455135,485714e-10,0,.746032,.4346,471847e-10,0,.777778,.414564,459294e-10,0,.809524,.395165,444705e-10,0,.84127,.376333,430772e-10,0,.873016,.358197,416229e-10,0,.904762,.34064,401019e-10,0,.936508,.323816,386623e-10,0,.968254,.307581,370933e-10,0,1,1,991541e-17,0,0,1,992077e-17,0,0,1,100041e-16,0,0,1,10385e-15,0,0,1,115777e-16,0,0,1,150215e-16,0,0,.999999,254738e-16,0,0,.999999,598822e-16,0,0,.999998,1.79597e-10,0,0,.999997,6.02367e-10,0,0,.999994,2.06835e-9,0,0,.99999,6.94952e-9,0,0,.999984,2.23363e-8,0,0,.999972,6.78578e-8,0,0,.999952,1.93571e-7,0,0,.999919,5.16594e-7,0,0,.99986,128739e-11,0,0,.999753,299298e-11,0,0,.999546,648258e-11,0,0,.999074,129985e-10,0,0,.997671,232176e-10,0,0,.991504,256701e-10,0,0,.981148,131141e-10,0,0,.971965,869048e-11,0,280182e-10,.966624,808301e-11,0,695475e-9,.965344,135235e-10,0,.00265522,.963048,210592e-10,0,.00622975,.958673,287473e-10,0,.0116234,.950262,281379e-10,0,.018976,.940836,271089e-10,0,.0283844,.930996,30926e-9,0,.0399151,.919848,348359e-10,0,.0536063,.909136,366092e-10,0,.0694793,.897554,384162e-10,0,.0875342,.884691,430971e-10,0,.107749,.869414,447803e-10,0,.130087,.853462,452858e-10,0,.154481,.838187,495769e-10,0,.180833,.820381,502709e-10,0,.209005,.801844,522713e-10,0,.238791,.783061,541505e-10,0,.269869,.763205,553712e-10,0,.301587,.742362,564909e-10,0,.333333,.721393,572646e-10,0,.365079,.699676,581012e-10,0,.396825,.677395,58096e-9,0,.428571,.655208,585766e-10,0,.460317,.632451,583602e-10,0,.492064,.609839,580234e-10,0,.52381,.587093,577161e-10,0,.555556,.564467,568447e-10,0,.587302,.542043,563166e-10,0,.619048,.519826,55156e-9,0,.650794,.497952,541682e-10,0,.68254,.476477,528971e-10,0,.714286,.455412,514952e-10,0,.746032,.434926,502222e-10,0,.777778,.4149,485779e-10,0,.809524,.395552,472242e-10,0,.84127,.376712,454891e-10,0,.873016,.358622,440924e-10,0,.904762,.341048,422984e-10,0,.936508,.324262,408582e-10,0,.968254,.308013,390839e-10,0,1,1,613913e-16,0,0,1,614145e-16,0,0,1,617708e-16,0,0,1,633717e-16,0,0,1,681648e-16,0,0,1,808291e-16,0,0,1,1.14608e-10,0,0,.999998,2.10507e-10,0,0,.999997,4.99595e-10,0,0,.999995,1.39897e-9,0,0,.999994,4.19818e-9,0,0,.999988,1.27042e-8,0,0,.999979,3.75153e-8,0,0,.999965,1.06206e-7,0,0,.999945,2.85381e-7,0,0,.999908,7.23611e-7,0,0,.999846,17255e-10,0,0,.999733,386104e-11,0,0,.999511,808493e-11,0,0,.998993,156884e-10,0,0,.997326,265538e-10,0,0,.989706,206466e-10,0,0,.981713,130756e-10,0,70005e-10,.973636,106473e-10,0,464797e-9,.966509,10194e-9,0,.00201743,.965149,165881e-10,0,.00497549,.962669,249147e-10,0,.00953262,.95786,317449e-10,0,.0158211,.949334,281045e-10,0,.0239343,.941041,303263e-10,0,.0339372,.931575,356754e-10,0,.0458738,.920102,397075e-10,0,.059772,.908002,384886e-10,0,.075645,.897269,43027e-9,0,.0934929,.884559,479925e-10,0,.113302,.869161,48246e-9,0,.135045,.853342,509505e-10,0,.158678,.837633,542846e-10,0,.184136,.820252,554139e-10,0,.211325,.801872,581412e-10,0,.240113,.782418,585535e-10,0,.270306,.7631,610923e-10,0,.301594,.742183,613678e-10,0,.333333,.721098,627275e-10,0,.365079,.699512,629413e-10,0,.396825,.677372,636351e-10,0,.428571,.655059,633555e-10,0,.460317,.632567,636513e-10,0,.492064,.609784,628965e-10,0,.52381,.587237,625546e-10,0,.555556,.564525,615825e-10,0,.587302,.542181,605048e-10,0,.619048,.520017,596329e-10,0,.650794,.498204,581516e-10,0,.68254,.476742,569186e-10,0,.714286,.455803,553833e-10,0,.746032,.435251,537807e-10,0,.777778,.415374,522025e-10,0,.809524,.395921,503421e-10,0,.84127,.377253,488211e-10,0,.873016,.359021,468234e-10,0,.904762,.341637,453269e-10,0,.936508,.3247,433014e-10,0,.968254,.308625,418007e-10,0,1,1,2.86798e-10,0,0,1,2.86877e-10,0,0,1,2.88094e-10,0,0,1,2.93506e-10,0,0,1,3.09262e-10,0,0,.999999,3.48593e-10,0,0,.999999,4.44582e-10,0,0,.999998,6.88591e-10,0,0,.999996,1.34391e-9,0,0,.999993,3.17438e-9,0,0,.999989,8.35609e-9,0,0,.999983,2.28677e-8,0,0,.999974,6.23361e-8,0,0,.999959,1.65225e-7,0,0,.999936,4.19983e-7,0,0,.999896,101546e-11,0,0,.99983,232376e-11,0,0,.999709,50156e-10,0,0,.999469,10167e-9,0,0,.998886,190775e-10,0,0,.996819,300511e-10,0,0,.988837,185092e-10,0,1.68222e-7,.982178,134622e-10,0,259622e-9,.975017,125961e-10,0,.00142595,.967101,13507e-9,0,.00382273,.964905,205003e-10,0,.00764164,.96218,29546e-9,0,.0130121,.956821,343738e-10,0,.0200253,.948829,305063e-10,0,.0287452,.941092,346487e-10,0,.039218,.931883,412061e-10,0,.0514748,.920211,444651e-10,0,.0655351,.907307,431252e-10,0,.0814082,.89684,490382e-10,0,.0990939,.884119,53334e-9,0,.118583,.869148,54114e-9,0,.139856,.853377,578536e-10,0,.162882,.836753,592285e-10,0,.187615,.820063,622787e-10,0,.213991,.801694,645492e-10,0,.241918,.782116,65353e-9,0,.271267,.762673,674344e-10,0,.301847,.742133,682788e-10,0,.333333,.720779,691959e-10,0,.365079,.699386,696817e-10,0,.396826,.67732,699583e-10,0,.428572,.654888,698447e-10,0,.460318,.632499,694063e-10,0,.492064,.609825,691612e-10,0,.52381,.587287,681576e-10,0,.555556,.564743,674138e-10,0,.587302,.542409,661617e-10,0,.619048,.520282,647785e-10,0,.650794,.498506,633836e-10,0,.68254,.477102,615905e-10,0,.714286,.456167,601013e-10,0,.746032,.435728,581457e-10,0,.777778,.415809,564215e-10,0,.809524,.396517,544997e-10,0,.84127,.377737,525061e-10,0,.873016,.359698,506831e-10,0,.904762,.342164,48568e-9,0,.936508,.325417,467826e-10,0,.968254,.309186,446736e-10,0,1,1,1.09018e-9,0,0,1,1.0904e-9,0,0,1,1.09393e-9,0,0,1,1.1095e-9,0,0,1,1.154e-9,0,0,1,1.26089e-9,0,0,.999999,1.5059e-9,0,0,.999997,2.07899e-9,0,0,.999994,3.48164e-9,0,0,.999993,7.05728e-9,0,0,.999987,1.63692e-8,0,0,.999981,4.06033e-8,0,0,.999969,1.0245e-7,0,0,.999953,2.55023e-7,0,0,.999925,6.1511e-7,0,0,.999881,142218e-11,0,0,.99981,313086e-11,0,0,.99968,653119e-11,0,0,.999418,12832e-9,0,0,.998748,232497e-10,0,0,.996066,329522e-10,0,0,.988379,179613e-10,0,108799e-9,.982567,143715e-10,0,921302e-9,.976097,148096e-10,0,.00280738,.968475,178905e-10,0,.00596622,.964606,253921e-10,0,.0105284,.961564,348623e-10,0,.0165848,.955517,357612e-10,0,.0242,.948381,343493e-10,0,.03342,.941095,405849e-10,0,.0442777,.931923,475394e-10,0,.0567958,.91996,484328e-10,0,.0709879,.907419,502146e-10,0,.086861,.89618,561654e-10,0,.104415,.88337,587612e-10,0,.123643,.869046,618057e-10,0,.144531,.853278,657392e-10,0,.167057,.836091,66303e-9,0,.191188,.819644,704445e-10,0,.216878,.801246,714071e-10,0,.244062,.782031,740093e-10,0,.272649,.762066,74685e-9,0,.302509,.741964,766647e-10,0,.333442,.720554,766328e-10,0,.365079,.699098,777857e-10,0,.396826,.677189,774633e-10,0,.428572,.65484,776235e-10,0,.460318,.632496,770316e-10,0,.492064,.609908,762669e-10,0,.52381,.587312,753972e-10,0,.555556,.564938,739994e-10,0,.587302,.542577,728382e-10,0,.619048,.52062,71112e-9,0,.650794,.498819,694004e-10,0,.68254,.477555,675575e-10,0,.714286,.456568,653449e-10,0,.746032,.436278,636068e-10,0,.777778,.41637,613466e-10,0,.809524,.397144,594177e-10,0,.84127,.378412,570987e-10,0,.873016,.360376,550419e-10,0,.904762,.342906,527422e-10,0,.936508,.326136,506544e-10,0,.968254,.30997,484307e-10,0,1,1,3.54014e-9,0,0,1,3.54073e-9,0,0,1,3.54972e-9,0,0,1,3.58929e-9,0,0,1,3.70093e-9,0,0,.999999,3.96194e-9,0,0,.999998,4.53352e-9,0,0,.999997,5.78828e-9,0,0,.999994,8.63812e-9,0,0,.999991,1.53622e-8,0,0,.999985,3.16356e-8,0,0,.999977,7.12781e-8,0,0,.999964,1.66725e-7,0,0,.999945,3.90501e-7,0,0,.999912,8.95622e-7,0,0,.999866,198428e-11,0,0,.999786,421038e-11,0,0,.999647,850239e-11,0,0,.999356,162059e-10,0,0,.998563,282652e-10,0,0,.994928,336309e-10,0,244244e-10,.987999,178458e-10,0,523891e-9,.982893,159162e-10,0,.00194729,.977044,178056e-10,0,.00451099,.969972,230624e-10,0,.00835132,.964237,313922e-10,0,.013561,.960791,406145e-10,0,.0202056,.954292,372796e-10,0,.0283321,.948052,403199e-10,0,.0379739,.940938,479537e-10,0,.0491551,.931689,545292e-10,0,.0618918,.91987,54038e-9,0,.0761941,.907665,589909e-10,0,.0920672,.895281,642651e-10,0,.109511,.882621,659707e-10,0,.12852,.86873,709973e-10,0,.149085,.853008,742221e-10,0,.171189,.835944,761754e-10,0,.194809,.818949,797052e-10,0,.21991,.800951,812434e-10,0,.246447,.781847,838075e-10,0,.274352,.761649,84501e-9,0,.303535,.74152,860258e-10,0,.333857,.720495,866233e-10,0,.365104,.698742,868326e-10,0,.396826,.677096,87133e-9,0,.428572,.654782,863497e-10,0,.460318,.632335,860206e-10,0,.492064,.610031,849337e-10,0,.52381,.587457,838279e-10,0,.555556,.56513,82309e-9,0,.587302,.542877,803542e-10,0,.619048,.5209,786928e-10,0,.650794,.499291,765171e-10,0,.68254,.477971,744753e-10,0,.714286,.457221,72209e-9,0,.746032,.436803,697448e-10,0,.777778,.417083,675333e-10,0,.809524,.397749,648058e-10,0,.84127,.379177,625759e-10,0,.873016,.361061,598584e-10,0,.904762,.343713,575797e-10,0,.936508,.326894,549999e-10,0,.968254,.310816,527482e-10,0,1,1,1.0153e-8,0,0,1,1.01544e-8,0,0,1,1.01751e-8,0,0,1,1.02662e-8,0,0,1,1.0521e-8,0,0,.999999,1.11049e-8,0,0,.999999,1.23408e-8,0,0,.999996,1.4924e-8,0,0,.999992,2.04471e-8,0,0,.999989,3.26539e-8,0,0,.99998,6.03559e-8,0,0,.999971,1.23936e-7,0,0,.999955,2.69058e-7,0,0,.999933,5.93604e-7,0,0,.999901,129633e-11,0,0,.999847,275621e-11,0,0,.999761,564494e-11,0,0,.999607,110485e-10,0,0,.999282,204388e-10,0,0,.99831,341084e-10,0,2.2038e-7,.993288,294949e-10,0,242388e-9,.987855,192736e-10,0,.0012503,.983167,182383e-10,0,.0032745,.977908,218633e-10,0,.00646321,.971194,290662e-10,0,.0109133,.963867,386401e-10,0,.0166927,.95982,462827e-10,0,.0238494,.953497,420705e-10,0,.0324178,.947621,477743e-10,0,.0424225,.940611,568258e-10,0,.0538808,.931174,618061e-10,0,.0668047,.919919,627098e-10,0,.0812014,.907856,694714e-10,0,.0970745,.894509,735008e-10,0,.114424,.881954,763369e-10,0,.133246,.868309,821896e-10,0,.153534,.852511,83769e-9,0,.175275,.835821,881615e-10,0,.198453,.817981,896368e-10,0,.223042,.800504,930906e-10,0,.249009,.78141,945056e-10,0,.276304,.761427,963605e-10,0,.304862,.74094,968088e-10,0,.334584,.720233,981481e-10,0,.365322,.698592,979122e-10,0,.396826,.676763,981057e-10,0,.428571,.654808,973956e-10,0,.460318,.632326,962619e-10,0,.492064,.610049,952996e-10,0,.52381,.58763,933334e-10,0,.555556,.565261,917573e-10,0,.587302,.543244,896636e-10,0,.619048,.521273,873304e-10,0,.650794,.499818,852648e-10,0,.68254,.478536,823961e-10,0,.714286,.457826,79939e-9,0,.746032,.437549,77126e-9,0,.777778,.41776,743043e-10,0,.809524,.39863,716426e-10,0,.84127,.379954,686456e-10,0,.873016,.362025,660514e-10,0,.904762,.344581,630755e-10,0,.936508,.327909,605439e-10,0,.968254,.311736,576345e-10,0,1,1,2.63344e-8,0,0,1,2.63373e-8,0,0,1,2.63815e-8,0,0,1,2.65753e-8,0,0,1,2.71132e-8,0,0,.999999,2.83279e-8,0,0,.999997,3.0833e-8,0,0,.999995,3.58711e-8,0,0,.999992,4.61266e-8,0,0,.999985,6.7574e-8,0,0,.999977,1.1358e-7,0,0,.999966,2.13657e-7,0,0,.999948,4.31151e-7,0,0,.999923,8.96656e-7,0,0,.999884,186603e-11,0,0,.999826,381115e-11,0,0,.999732,754184e-11,0,0,.999561,143192e-10,0,0,.999191,257061e-10,0,0,.997955,405724e-10,0,744132e-10,.992228,276537e-10,0,716477e-9,.987638,208885e-10,0,.0022524,.983395,215226e-10,0,.00484816,.978614,270795e-10,0,.00860962,.972389,365282e-10,0,.0136083,.964392,474747e-10,0,.0198941,.95861,509141e-10,0,.0275023,.952806,48963e-9,0,.0364584,.94712,571119e-10,0,.04678,.940104,671704e-10,0,.0584799,.930398,687586e-10,0,.0715665,.919866,738161e-10,0,.086045,.907853,813235e-10,0,.101918,.894078,834582e-10,0,.119186,.881177,892093e-10,0,.137845,.867575,944548e-10,0,.157891,.852107,969607e-10,0,.179316,.835502,101456e-9,0,.202106,.81756,103256e-9,0,.226243,.79984,106954e-9,0,.251704,.780998,108066e-9,0,.278451,.761132,110111e-9,0,.306436,.740429,110459e-9,0,.335586,.719836,111219e-9,0,.365796,.698467,11145e-8,0,.3969,.676446,110393e-9,0,.428571,.654635,110035e-9,0,.460318,.632411,108548e-9,0,.492064,.609986,106963e-9,0,.52381,.587872,105238e-9,0,.555556,.565528,102665e-9,0,.587302,.543563,100543e-9,0,.619048,.52176,976182e-10,0,.650794,.500188,947099e-10,0,.68254,.479204,919929e-10,0,.714286,.458413,886139e-10,0,.746032,.438314,857839e-10,0,.777778,.418573,82411e-9,0,.809524,.39947,792211e-10,0,.84127,.380892,759546e-10,0,.873016,.362953,727571e-10,0,.904762,.345601,695738e-10,0,.936508,.328895,664907e-10,0,.968254,.312808,634277e-10,0,1,1,6.28647e-8,0,0,1,6.28705e-8,0,0,1,6.29587e-8,0,0,1,6.33441e-8,0,0,.999999,6.44087e-8,0,0,.999998,6.67856e-8,0,0,.999997,7.15889e-8,0,0,.999995,8.09577e-8,0,0,.999989,9.92764e-8,0,0,.999983,1.35834e-7,0,0,.999974,2.10482e-7,0,0,.999959,3.65215e-7,0,0,.999939,6.86693e-7,0,0,.999911,13472e-10,0,0,.999868,26731e-10,0,0,.999804,524756e-11,0,0,.9997,100403e-10,0,0,.99951,185019e-10,0,0,.999078,322036e-10,0,620676e-11,.997428,470002e-10,0,341552e-9,.99162,287123e-10,0,.00143727,.987479,234706e-10,0,.00349201,.983582,260083e-10,0,.0066242,.979186,337927e-10,0,.0109113,.97325,454689e-10,0,.0164064,.965221,573759e-10,0,.0231463,.957262,544114e-10,0,.0311571,.952211,587006e-10,0,.0404572,.946631,692256e-10,0,.0510592,.939391,787819e-10,0,.0629723,.929795,792368e-10,0,.0762025,.91965,875075e-10,0,.090753,.907737,950903e-10,0,.106626,.893899,972963e-10,0,.123822,.880239,10459e-8,0,.142337,.866562,107689e-9,0,.16217,.85164,113081e-9,0,.183314,.835021,116636e-9,0,.20576,.817311,120074e-9,0,.229496,.798845,121921e-9,0,.254502,.780479,12475e-8,0,.280753,.760694,125255e-9,0,.308212,.740142,126719e-9,0,.336825,.719248,12636e-8,0,.366517,.698209,126712e-9,0,.397167,.676398,125769e-9,0,.428578,.654378,124432e-9,0,.460318,.632484,123272e-9,0,.492064,.610113,12085e-8,0,.52381,.587931,118411e-9,0,.555556,.565872,11569e-8,0,.587302,.543814,112521e-9,0,.619048,.522265,109737e-9,0,.650794,.500835,106228e-9,0,.68254,.479818,102591e-9,0,.714286,.459258,991288e-10,0,.746032,.439061,952325e-10,0,.777778,.419552,91895e-9,0,.809524,.400399,879051e-10,0,.84127,.381976,844775e-10,0,.873016,.364009,806316e-10,0,.904762,.346761,771848e-10,0,.936508,.330049,735429e-10,0,.968254,.314018,702103e-10,0,1,1,1.39968e-7,0,0,1,1.39979e-7,0,0,1,1.40145e-7,0,0,1,1.4087e-7,0,0,.999999,1.42865e-7,0,0,.999998,1.47279e-7,0,0,.999997,1.56057e-7,0,0,.999992,1.7276e-7,0,0,.999989,2.04352e-7,0,0,.99998,2.6494e-7,0,0,.999969,3.83435e-7,0,0,.999953,6.18641e-7,0,0,.999929,108755e-11,0,0,.999898,201497e-11,0,0,.999849,381346e-11,0,0,.999778,719815e-11,0,0,.999661,133215e-10,0,0,.999451,238313e-10,0,0,.998936,401343e-10,0,113724e-9,.99662,517346e-10,0,820171e-9,.991094,304323e-10,0,.00238143,.987487,281757e-10,0,.00493527,.983731,320048e-10,0,.00856859,.979647,423905e-10,0,.0133393,.973837,562935e-10,0,.0192863,.96584,677442e-10,0,.0264369,.956309,623073e-10,0,.03481,.951523,704131e-10,0,.0444184,.946003,836594e-10,0,.0552713,.938454,911736e-10,0,.0673749,.929279,938264e-10,0,.0807329,.919239,103754e-9,0,.0953479,.907293,109928e-9,0,.111221,.893936,115257e-9,0,.128352,.879674,122265e-9,0,.14674,.865668,125733e-9,0,.166382,.850998,132305e-9,0,.187276,.834498,134844e-9,0,.209413,.816903,139276e-9,0,.232786,.798235,140984e-9,0,.257382,.779724,14378e-8,0,.283181,.760251,144623e-9,0,.310156,.739808,145228e-9,0,.338269,.718762,14539e-8,0,.367461,.697815,144432e-9,0,.397646,.67631,143893e-9,0,.428685,.654278,141846e-9,0,.460318,.632347,13935e-8,0,.492064,.610296,137138e-9,0,.52381,.588039,133806e-9,0,.555556,.566218,130755e-9,0,.587302,.544346,127128e-9,0,.619048,.522701,123002e-9,0,.650794,.501542,119443e-9,0,.68254,.480508,115055e-9,0,.714286,.460092,111032e-9,0,.746032,.440021,106635e-9,0,.777778,.420446,102162e-9,0,.809524,.401512,98184e-9,0,.84127,.38299,936497e-10,0,.873016,.365232,89813e-9,0,.904762,.347865,853073e-10,0,.936508,.331342,817068e-10,0,.968254,.315202,773818e-10,0,1,1,2.9368e-7,0,0,1,2.937e-7,0,0,1,2.93998e-7,0,0,1,2.95298e-7,0,0,.999999,2.98865e-7,0,0,.999998,3.067e-7,0,0,.999995,3.22082e-7,0,0,.999992,3.50767e-7,0,0,.999986,4.03538e-7,0,0,.999976,5.01372e-7,0,0,.999964,6.8562e-7,0,0,.999945,10374e-10,0,0,.999919,171269e-11,0,0,.999882,300175e-11,0,0,.999829,542144e-11,0,0,.999749,984182e-11,0,0,.99962,176213e-10,0,0,.999382,305995e-10,0,138418e-10,.998751,496686e-10,0,389844e-9,.995344,510733e-10,0,.00150343,.990768,345829e-10,0,.00352451,.987464,342841e-10,0,.00655379,.983846,399072e-10,0,.0106554,.980007,533219e-10,0,.0158723,.974494,696992e-10,0,.0222333,.96622,776754e-10,0,.029758,.956273,747718e-10,0,.0384596,.950952,864611e-10,0,.0483473,.945215,100464e-9,0,.0594266,.937287,103729e-9,0,.0717019,.928649,111665e-9,0,.0851752,.918791,12353e-8,0,.0998479,.906685,127115e-9,0,.115721,.893706,13628e-8,0,.132794,.879248,142427e-9,0,.151067,.864685,148091e-9,0,.170538,.850032,153517e-9,0,.191204,.833853,157322e-9,0,.213063,.816353,161086e-9,0,.236107,.797834,164111e-9,0,.260329,.778831,165446e-9,0,.285714,.759756,167492e-9,0,.312243,.739419,166928e-9,0,.339887,.718491,167e-6,0,.368604,.697392,165674e-9,0,.398329,.676102,163815e-9,0,.428961,.654243,162003e-9,0,.460331,.632176,158831e-9,0,.492064,.610407,155463e-9,0,.52381,.588394,152062e-9,0,.555556,.56645,147665e-9,0,.587302,.5449,14375e-8,0,.619048,.523276,138905e-9,0,.650794,.502179,134189e-9,0,.68254,.481359,129392e-9,0,.714286,.46092,124556e-9,0,.746032,.441084,11957e-8,0,.777778,.421517,114652e-9,0,.809524,.402721,109688e-9,0,.84127,.384222,104667e-9,0,.873016,.366534,999633e-10,0,.904762,.349205,950177e-10,0,.936508,.332702,907301e-10,0,.968254,.316599,859769e-10,0,1,1,5.85473e-7,0,0,1,5.85507e-7,0,0,1,5.8602e-7,0,0,.999999,5.88259e-7,0,0,.999999,5.94381e-7,0,0,.999998,6.07754e-7,0,0,.999995,6.33729e-7,0,0,.99999,6.8137e-7,0,0,.999984,7.67003e-7,0,0,.999973,9.21212e-7,0,0,.999959,120218e-11,0,0,.999936,172024e-11,0,0,.999907,268088e-11,0,0,.999866,445512e-11,0,0,.999806,768481e-11,0,0,.999716,1342e-8,0,0,.999576,232473e-10,0,0,.9993,391694e-10,0,129917e-9,.998498,608429e-10,0,845035e-9,.994132,489743e-10,0,.00237616,.99031,384644e-10,0,.00484456,.987409,421768e-10,0,.00832472,.983981,504854e-10,0,.0128643,.980268,671028e-10,0,.0184947,.974875,852749e-10,0,.025237,.966063,85531e-9,0,.0331046,.956779,900588e-10,0,.0421067,.950259,10577e-8,0,.0522487,.944239,119458e-9,0,.0635343,.936341,122164e-9,0,.0759654,.928047,134929e-9,0,.0895434,.918065,145544e-9,0,.104269,.906267,150531e-9,0,.120142,.893419,161652e-9,0,.137163,.878758,16593e-8,0,.15533,.863699,174014e-9,0,.174645,.848876,177877e-9,0,.195106,.833032,184049e-9,0,.21671,.815557,186088e-9,0,.239454,.797323,19054e-8,0,.263332,.778124,191765e-9,0,.288336,.758929,192535e-9,0,.314451,.738979,192688e-9,0,.341658,.718213,191522e-9,0,.369924,.696947,190491e-9,0,.399202,.675807,187913e-9,0,.429416,.654147,184451e-9,0,.460447,.63229,181442e-9,0,.492064,.610499,177139e-9,0,.523809,.588747,172596e-9,0,.555555,.566783,167457e-9,0,.587301,.545359,162518e-9,0,.619048,.523984,156818e-9,0,.650794,.502917,151884e-9,0,.68254,.482294,145514e-9,0,.714286,.461945,140199e-9,0,.746032,.442133,134101e-9,0,.777778,.422705,128374e-9,0,.809524,.403916,122996e-9,0,.84127,.38554,116808e-9,0,.873016,.367909,111973e-9,0,.904762,.350651,105938e-9,0,.936508,.334208,101355e-9,0,.968254,.318123,957629e-10,0,1,1,111633e-11,0,0,1,111639e-11,0,0,1,111725e-11,0,0,1,112096e-11,0,0,.999999,11311e-10,0,0,.999997,115315e-11,0,0,.999995,11956e-10,0,0,.999989,127239e-11,0,0,.999981,140772e-11,0,0,.999969,164541e-11,0,0,.999952,206607e-11,0,0,.999928,281783e-11,0,0,.999895,416835e-11,0,0,.999848,658728e-11,0,0,.999781,108648e-10,0,0,.999682,182579e-10,0,0,.999523,306003e-10,0,159122e-10,.999205,499862e-10,0,391184e-9,.998131,73306e-9,0,.00147534,.993334,513229e-10,0,.0034227,.99016,467783e-10,0,.00632232,.987321,523413e-10,0,.0102295,.984099,64267e-9,0,.0151794,.980432,843042e-10,0,.0211947,.974976,102819e-9,0,.0282899,.966429,996234e-10,0,.0364739,.957633,111074e-9,0,.0457522,.949422,128644e-9,0,.0561278,.943045,140076e-9,0,.0676023,.935448,146349e-9,0,.0801762,.927225,161854e-9,0,.0938499,.917033,169135e-9,0,.108623,.905762,179987e-9,0,.124496,.892879,189832e-9,0,.141469,.878435,195881e-9,0,.159541,.863114,20466e-8,0,.178713,.84776,209473e-9,0,.198985,.832084,214861e-9,0,.220355,.814915,217695e-9,0,.242823,.796711,220313e-9,0,.266385,.777603,22313e-8,0,.291036,.757991,222471e-9,0,.316767,.738371,222869e-9,0,.343563,.717872,221243e-9,0,.371402,.696619,218089e-9,0,.400248,.675379,21562e-8,0,.430047,.65411,21169e-8,0,.460709,.63241,206947e-9,0,.492079,.61046,201709e-9,0,.52381,.58903,196753e-9,0,.555556,.567267,189637e-9,0,.587302,.545886,184735e-9,0,.619048,.524714,177257e-9,0,.650794,.503789,171424e-9,0,.68254,.483204,164688e-9,0,.714286,.462976,157172e-9,0,.746032,.443294,151341e-9,0,.777778,.423988,143737e-9,0,.809524,.405325,138098e-9,0,.84127,.386981,130698e-9,0,.873016,.369436,125276e-9,0,.904762,.35219,118349e-9,0,.936508,.335804,11312e-8,0,.968254,.319749,106687e-9,0,1,1,204685e-11,0,0,1,204694e-11,0,0,1,204831e-11,0,0,.999999,205428e-11,0,0,.999999,207056e-11,0,0,.999997,210581e-11,0,0,.999993,21732e-10,0,0,.999987,229365e-11,0,0,.999979,250243e-11,0,0,.999965,286127e-11,0,0,.999947,348028e-11,0,0,.999918,455588e-11,0,0,.999881,643303e-11,0,0,.999828,970064e-11,0,0,.999753,153233e-10,0,0,.999642,24793e-9,0,0,.999464,402032e-10,0,122947e-9,.999089,635852e-10,0,807414e-9,.997567,857026e-10,0,.00227206,.992903,594912e-10,0,.00462812,.990011,578515e-10,0,.00794162,.987192,65399e-9,0,.0122534,.98418,819675e-10,0,.0175888,.980491,105514e-9,0,.0239635,.974779,121532e-9,0,.031387,.96675,119144e-9,0,.0398644,.958248,136125e-9,0,.0493982,.948884,155408e-9,0,.0599896,.941673,162281e-9,0,.0716382,.934521,176754e-9,0,.0843437,.926205,192873e-9,0,.0981056,.916089,200038e-9,0,.112923,.904963,213624e-9,0,.128796,.892089,221834e-9,0,.145725,.878028,232619e-9,0,.163709,.86249,238632e-9,0,.182749,.846587,247002e-9,0,.202847,.830988,250702e-9,0,.224001,.814165,255562e-9,0,.246214,.796135,257505e-9,0,.269482,.777052,258625e-9,0,.293805,.757201,258398e-9,0,.319176,.737655,256714e-9,0,.345587,.717477,255187e-9,0,.373021,.696433,251792e-9,0,.401454,.675084,247223e-9,0,.430844,.653907,242213e-9,0,.461125,.632561,237397e-9,0,.492187,.610658,229313e-9,0,.52381,.589322,224402e-9,0,.555556,.567857,216116e-9,0,.587302,.54652,209124e-9,0,.619048,.525433,201601e-9,0,.650794,.504679,192957e-9,0,.68254,.484203,186052e-9,0,.714286,.464203,177672e-9,0,.746032,.444549,170005e-9,0,.777778,.425346,162401e-9,0,.809524,.406706,1544e-7,0,.84127,.388576,147437e-9,0,.873016,.37094,139493e-9,0,.904762,.353996,133219e-9,0,.936508,.337391,125573e-9,0,.968254,.321648,119867e-9,0,1,1,362511e-11,0,0,1,362525e-11,0,0,1,362739e-11,0,0,.999999,363673e-11,0,0,.999998,366214e-11,0,0,.999996,371698e-11,0,0,.999992,382116e-11,0,0,.999986,400554e-11,0,0,.999976,432058e-11,0,0,.999961,485194e-11,0,0,.999938,574808e-11,0,0,.999908,726643e-11,0,0,.999865,984707e-11,0,0,.999807,142217e-10,0,0,.999723,215581e-10,0,0,.999602,336114e-10,0,119113e-10,.999398,527353e-10,0,355813e-9,.998946,805809e-10,0,.00137768,.996647,942908e-10,0,.00322469,.992298,668733e-10,0,.00597897,.989802,716564e-10,0,.00968903,.987019,821355e-10,0,.0143845,.984219,104555e-9,0,.0200831,.980425,131245e-9,0,.0267948,.974241,139613e-9,0,.034525,.967006,145931e-9,0,.0432757,.95893,167153e-9,0,.0530471,.949157,188146e-9,0,.0638386,.94062,194625e-9,0,.0756487,.933509,213721e-9,0,.0884762,.925088,229616e-9,0,.10232,.915178,239638e-9,0,.117178,.904093,254814e-9,0,.133051,.891337,263685e-9,0,.149939,.877326,274789e-9,0,.167841,.861794,280534e-9,0,.18676,.845758,289534e-9,0,.206696,.829792,294446e-9,0,.22765,.813037,296877e-9,0,.249625,.795285,300217e-9,0,.27262,.776323,299826e-9,0,.296636,.756673,299787e-9,0,.321671,.736856,297867e-9,0,.347718,.716883,294052e-9,0,.374768,.696089,289462e-9,0,.402804,.67505,285212e-9,0,.431796,.653509,27653e-8,0,.461695,.63258,271759e-9,0,.49242,.61104,262811e-9,0,.523822,.589567,255151e-9,0,.555556,.568322,246434e-9,0,.587302,.547235,237061e-9,0,.619048,.52616,228343e-9,0,.650794,.505716,219236e-9,0,.68254,.485274,209595e-9,0,.714286,.465411,201011e-9,0,.746032,.445854,19109e-8,0,.777778,.426911,182897e-9,0,.809524,.408222,173569e-9,0,.84127,.390307,165496e-9,0,.873016,.372624,156799e-9,0,.904762,.355804,14917e-8,0,.936508,.33924,140907e-9,0,.968254,.323534,134062e-9,0,1,1,622487e-11,0,0,1,62251e-10,0,0,1,622837e-11,0,0,.999999,624259e-11,0,0,.999998,628127e-11,0,0,.999996,636451e-11,0,0,.999991,65218e-10,0,0,.999984,679782e-11,0,0,.999973,726361e-11,0,0,.999955,803644e-11,0,0,.999931,931397e-11,0,0,.999896,114299e-10,0,0,.999847,149402e-10,0,0,.999784,207461e-10,0,0,.999692,302493e-10,0,0,.999554,454957e-10,0,997275e-10,.999326,690762e-10,0,724813e-9,.998757,101605e-9,0,.0020972,.995367,958745e-10,0,.00432324,.99209,832808e-10,0,.00746347,.989517,887601e-10,0,.0115534,.987008,10564e-8,0,.0166134,.98421,133179e-9,0,.0226552,.98021,161746e-9,0,.0296838,.973676,161821e-9,0,.0377016,.967052,178635e-9,0,.0467079,.959385,206765e-9,0,.0567013,.949461,22476e-8,0,.0676796,.939578,23574e-8,0,.0796403,.932416,25893e-8,0,.0925812,.923759,271228e-9,0,.106501,.914223,289165e-9,0,.121397,.902942,301156e-9,0,.13727,.890419,313852e-9,0,.15412,.876639,324408e-9,0,.171946,.861316,33249e-8,0,.190751,.84496,338497e-9,0,.210537,.828427,345861e-9,0,.231305,.811871,347863e-9,0,.253057,.794397,350225e-9,0,.275797,.775726,349915e-9,0,.299525,.75617,347297e-9,0,.324242,.736091,344232e-9,0,.349947,.716213,340835e-9,0,.376633,.695736,332369e-9,0,.404289,.674961,327943e-9,0,.432895,.653518,318533e-9,0,.462415,.632574,310391e-9,0,.492788,.61134,300755e-9,0,.523909,.590017,290506e-9,0,.555556,.568752,280446e-9,0,.587302,.548061,269902e-9,0,.619048,.52711,258815e-9,0,.650794,.506682,248481e-9,0,.68254,.486524,237141e-9,0,.714286,.466812,226872e-9,0,.746032,.44732,216037e-9,0,.777778,.428473,205629e-9,0,.809524,.409921,195691e-9,0,.84127,.392028,185457e-9,0,.873016,.374606,176436e-9,0,.904762,.357601,166508e-9,0,.936508,.341348,158385e-9,0,.968254,.32542,149203e-9,0,1,1,103967e-10,0,0,1,10397e-9,0,0,1,104019e-10,0,0,.999999,104231e-10,0,0,.999998,104806e-10,0,0,.999995,106042e-10,0,0,.999991,108366e-10,0,0,.999982,112415e-10,0,0,.999968,119174e-10,0,0,.99995,130227e-10,0,0,.999922,148176e-10,0,0,.999884,177303e-10,0,0,.99983,224564e-10,0,0,.999758,300966e-10,0,0,.999654,423193e-10,0,549083e-11,.999503,614848e-10,0,296087e-9,.999237,903576e-10,0,.00123144,.998491,1271e-7,0,.00295954,.994594,107754e-9,0,.00555829,.99178,103025e-9,0,.00907209,.989265,11154e-8,0,.0135257,.986998,136296e-9,0,.0189327,.984137,169154e-9,0,.0252993,.979798,196671e-9,0,.0326272,.97337,196678e-9,0,.0409157,.967239,223121e-9,0,.0501623,.959543,253809e-9,0,.0603638,.949466,265972e-9,0,.0715171,.939074,288372e-9,0,.0836187,.931118,310983e-9,0,.0966657,.922525,325561e-9,0,.110656,.912983,345725e-9,0,.125588,.901617,3556e-7,0,.141461,.889487,374012e-9,0,.158275,.875787,383445e-9,0,.176031,.860654,393972e-9,0,.19473,.844417,400311e-9,0,.214374,.82741,405004e-9,0,.234967,.810545,407378e-9,0,.256512,.793312,407351e-9,0,.279011,.774847,406563e-9,0,.302468,.755621,404903e-9,0,.326887,.735511,397486e-9,0,.352266,.715435,39357e-8,0,.378605,.695403,384739e-9,0,.405897,.674681,376108e-9,0,.43413,.65359,365997e-9,0,.463277,.632471,354957e-9,0,.493295,.61151,343593e-9,0,.524106,.59064,331841e-9,0,.555561,.569386,318891e-9,0,.587302,.548785,3072e-7,0,.619048,.528146,29361e-8,0,.650794,.507872,281709e-9,0,.68254,.487805,268627e-9,0,.714286,.468196,255887e-9,0,.746032,.448922,243997e-9,0,.777778,.430093,231662e-9,0,.809524,.411845,220339e-9,0,.84127,.393808,208694e-9,0,.873016,.376615,198045e-9,0,.904762,.359655,187375e-9,0,.936508,.343452,177371e-9,0,.968254,.32765,167525e-9,0,1,1,169351e-10,0,0,1,169356e-10,0,0,1,169427e-10,0,0,.999999,169736e-10,0,0,.999998,170575e-10,0,0,.999995,172372e-10,0,0,.99999,175739e-10,0,0,.999979,181568e-10,0,0,.999966,191206e-10,0,0,.999944,20677e-9,0,0,.999912,231644e-10,0,0,.999869,271268e-10,0,0,.999811,334272e-10,0,0,.99973,433979e-10,0,0,.999617,590083e-10,0,680315e-10,.999445,829497e-10,0,612796e-9,.999138,118019e-9,0,.00187408,.998095,156712e-9,0,.00395791,.993919,125054e-9,0,.00692144,.991333,126091e-9,0,.0107962,.989226,144912e-9,0,.0155986,.986954,175737e-9,0,.0213364,.983982,213883e-9,0,.0280114,.979128,234526e-9,0,.0356226,.973327,243725e-9,0,.0441668,.967416,2773e-7,0,.0536399,.959729,308799e-9,0,.0640376,.949758,322447e-9,0,.0753554,.939173,350021e-9,0,.0875893,.9296,370089e-9,0,.100736,.921181,391365e-9,0,.114793,.91164,413636e-9,0,.129759,.900435,427068e-9,0,.145632,.888183,441046e-9,0,.162412,.874772,454968e-9,0,.180101,.859566,461882e-9,0,.1987,.843579,471556e-9,0,.218213,.826453,474335e-9,0,.238641,.809164,477078e-9,0,.259989,.792179,47755e-8,0,.282262,.773866,472573e-9,0,.305464,.754944,469765e-9,0,.329599,.735133,462371e-9,0,.35467,.714858,453674e-9,0,.380678,.694829,443888e-9,0,.407622,.674453,432052e-9,0,.435493,.653685,420315e-9,0,.464275,.632666,406829e-9,0,.493938,.611676,392234e-9,0,.524422,.591193,379208e-9,0,.555624,.570145,36319e-8,0,.587302,.549566,349111e-9,0,.619048,.529278,334166e-9,0,.650794,.509026,318456e-9,0,.68254,.489186,30449e-8,0,.714286,.469662,289051e-9,0,.746032,.450691,275494e-9,0,.777778,.431841,261437e-9,0,.809524,.413752,247846e-9,0,.84127,.395951,235085e-9,0,.873016,.378633,222245e-9,0,.904762,.36194,210533e-9,0,.936508,.345599,198494e-9,0,.968254,.329999,188133e-9,0,1,1,269663e-10,0,0,1,26967e-9,0,0,1,269772e-10,0,0,.999999,270214e-10,0,0,.999998,271415e-10,0,0,.999994,27398e-9,0,0,.999988,278771e-10,0,0,.999977,287019e-10,0,0,.999961,300544e-10,0,0,.999937,322138e-10,0,0,.999904,356163e-10,0,0,.999854,409465e-10,0,0,.99979,492651e-10,0,0,.999699,621722e-10,0,8.8288e-7,.999572,819715e-10,0,223369e-9,.999381,111689e-9,0,.00105414,.999016,153862e-9,0,.0026493,.997437,187667e-9,0,.00508608,.993545,155672e-9,0,.00840554,.991135,161455e-9,0,.012629,.989157,188241e-9,0,.0177661,.986874,226229e-9,0,.0238198,.983714,268668e-9,0,.0307887,.978301,277109e-9,0,.0386688,.973227,303446e-9,0,.0474554,.967317,341851e-9,0,.0571428,.959477,370885e-9,0,.0677256,.950012,392753e-9,0,.0791988,.939484,42781e-8,0,.0915576,.928135,443866e-9,0,.104798,.919819,472959e-9,0,.118918,.910049,491551e-9,0,.133915,.899181,512616e-9,0,.149788,.886881,523563e-9,0,.166537,.87359,540183e-9,0,.184164,.858613,547386e-9,0,.202669,.842809,554809e-9,0,.222056,.825727,558316e-9,0,.242329,.808086,557824e-9,0,.263492,.790728,556346e-9,0,.285551,.772987,552672e-9,0,.30851,.7541,543738e-9,0,.332376,.734669,536107e-9,0,.357153,.714411,523342e-9,0,.382845,.694196,512238e-9,0,.409454,.674252,497465e-9,0,.436977,.65357,481096e-9,0,.465404,.632999,467054e-9,0,.494713,.611994,448771e-9,0,.524864,.591604,431889e-9,0,.555779,.571134,415238e-9,0,.587302,.550528,396369e-9,0,.619048,.530292,379477e-9,0,.650794,.510364,361488e-9,0,.68254,.490749,343787e-9,0,.714286,.471266,327822e-9,0,.746032,.452462,310626e-9,0,.777778,.433907,295352e-9,0,.809524,.415659,279179e-9,0,.84127,.398138,264685e-9,0,.873016,.380833,249905e-9,0,.904762,.364247,236282e-9,0,.936508,.348041,222905e-9,0,.968254,.332389,210522e-9,0,1,1,420604e-10,0,0,1,420614e-10,0,0,1,420757e-10,0,0,.999999,42138e-9,0,0,.999997,423067e-10,0,0,.999993,426668e-10,0,0,.999986,433372e-10,0,0,.999974,444857e-10,0,0,.999956,463554e-10,0,0,.99993,493105e-10,0,0,.999892,539077e-10,0,0,.999838,610005e-10,0,0,.999767,718822e-10,0,0,.999666,884581e-10,0,365471e-10,.999525,113398e-9,0,485623e-9,.999311,150043e-9,0,.00162096,.998865,200063e-9,0,.00355319,.996278,211014e-9,0,.00633818,.992956,189672e-9,0,.0100043,.991017,210262e-9,0,.0145648,.989055,244292e-9,0,.0200237,.986741,290481e-9,0,.0263798,.983288,334303e-9,0,.033629,.977784,340307e-9,0,.0417652,.973037,377864e-9,0,.0507821,.967181,4239e-7,0,.060673,.958971,443854e-9,0,.0714314,.950093,483039e-9,0,.0830518,.939552,517934e-9,0,.0955288,.927678,539449e-9,0,.108859,.918278,568604e-9,0,.123038,.908449,588505e-9,0,.138065,.897713,612473e-9,0,.153938,.885533,625575e-9,0,.170657,.872131,63854e-8,0,.188224,.857517,647034e-9,0,.20664,.841796,65209e-8,0,.225909,.824726,6544e-7,0,.246035,.807297,655744e-9,0,.267022,.789058,646716e-9,0,.288878,.77189,643898e-9,0,.311607,.753082,629973e-9,0,.335216,.7341,621564e-9,0,.359713,.714094,605171e-9,0,.385103,.693839,588752e-9,0,.41139,.673891,573294e-9,0,.438576,.653565,552682e-9,0,.466656,.633326,533446e-9,0,.495617,.612582,514635e-9,0,.525431,.59205,49303e-8,0,.556041,.571918,471842e-9,0,.587338,.551572,451713e-9,0,.619048,.531553,430049e-9,0,.650794,.51175,410445e-9,0,.68254,.49238,390098e-9,0,.714286,.473143,370033e-9,0,.746032,.45423,351205e-9,0,.777778,.435963,332049e-9,0,.809524,.41787,315021e-9,0,.84127,.400387,297315e-9,0,.873016,.383332,281385e-9,0,.904762,.366665,265397e-9,0,.936508,.350633,250601e-9,0,.968254,.334964,23589e-8,0,1,1,643736e-10,0,0,1,64375e-9,0,0,1,643947e-10,0,0,.999999,64481e-9,0,0,.999997,647143e-10,0,0,.999994,652119e-10,0,0,.999985,661359e-10,0,0,.999972,677116e-10,0,0,.999952,702599e-10,0,0,.999922,742517e-10,0,0,.99988,803906e-10,0,0,.99982,897315e-10,0,0,.999741,103838e-9,0,0,.999629,12496e-8,0,149024e-9,.999474,156161e-9,0,861027e-9,.999229,201034e-9,0,.00231198,.998662,259069e-9,0,.00458147,.995299,245439e-9,0,.00770895,.992732,24498e-8,0,.0117126,.990847,273211e-9,0,.0165989,.988911,316492e-9,0,.0223674,.98654,37161e-8,0,.0290135,.982636,410352e-9,0,.0365309,.977346,421756e-9,0,.0449117,.972909,475578e-9,0,.0541481,.966821,522482e-9,0,.0642326,.958686,545008e-9,0,.075158,.949754,589286e-9,0,.0869181,.939184,619995e-9,0,.0995074,.927505,654266e-9,0,.112922,.916606,682362e-9,0,.127157,.906707,704286e-9,0,.142212,.895937,725909e-9,0,.158085,.883913,743939e-9,0,.174776,.870642,755157e-9,0,.192287,.856241,764387e-9,0,.210619,.84069,771032e-9,0,.229775,.823728,765906e-9,0,.249761,.806481,767604e-9,0,.270582,.787924,754385e-9,0,.292243,.770588,749668e-9,0,.314753,.751991,731613e-9,0,.338118,.733407,717655e-9,0,.362347,.713688,700604e-9,0,.387447,.693595,678765e-9,0,.413424,.673426,657042e-9,0,.440284,.65359,635892e-9,0,.468027,.633576,611569e-9,0,.496645,.613144,586011e-9,0,.526122,.592711,563111e-9,0,.556417,.572722,537699e-9,0,.587451,.552762,512556e-9,0,.619048,.532985,489757e-9,0,.650794,.513219,464139e-9,0,.68254,.493992,442193e-9,0,.714286,.47509,418629e-9,0,.746032,.456287,397045e-9,0,.777778,.438152,375504e-9,0,.809524,.420294,35492e-8,0,.84127,.402749,335327e-9,0,.873016,.385879,316422e-9,0,.904762,.369352,298333e-9,0,.936508,.353301,281417e-9,0,.968254,.337781,265203e-9,0,1,1,968267e-10,0,0,1,968284e-10,0,0,1,968556e-10,0,0,.999999,969733e-10,0,0,.999997,972913e-10,0,0,.999993,979688e-10,0,0,.999984,992239e-10,0,0,.999969,101356e-9,0,0,.999946,104784e-9,0,0,.999913,110111e-9,0,0,.999868,118217e-9,0,0,.999801,130396e-9,0,0,.999712,148523e-9,0,124907e-10,.999589,175233e-9,0,355405e-9,.999416,213999e-9,0,.0013528,.999136,268529e-9,0,.00312557,.998367,333088e-9,0,.00573045,.994701,304757e-9,0,.00919397,.992497,318031e-9,0,.0135261,.990608,353863e-9,0,.0187278,.988715,409044e-9,0,.0247947,.986241,472967e-9,0,.0317196,.981696,495104e-9,0,.039494,.977097,532873e-9,0,.0481087,.972583,594447e-9,0,.0575549,.966142,636867e-9,0,.0678242,.95823,669899e-9,0,.0789089,.949677,719499e-9,0,.0908023,.939226,750584e-9,0,.103499,.927501,793183e-9,0,.116993,.915199,81995e-8,0,.131282,.90498,847654e-9,0,.146364,.894243,868929e-9,0,.162237,.882154,884278e-9,0,.178902,.869161,898108e-9,0,.196358,.854751,901254e-9,0,.21461,.839368,90679e-8,0,.23366,.822874,901541e-9,0,.253512,.805514,897297e-9,0,.274174,.78716,881856e-9,0,.29565,.769061,870032e-9,0,.31795,.751,851719e-9,0,.341081,.732614,830671e-9,0,.365053,.713171,806569e-9,0,.389874,.693472,78338e-8,0,.415553,.673528,756404e-9,0,.442098,.653397,726872e-9,0,.469512,.633781,700494e-9,0,.497794,.613877,67105e-8,0,.526935,.593506,640361e-9,0,.556908,.573667,613502e-9,0,.587657,.553932,583177e-9,0,.61906,.534345,554375e-9,0,.650794,.515042,527811e-9,0,.68254,.495674,499367e-9,0,.714286,.477132,47429e-8,0,.746032,.458609,447726e-9,0,.777778,.440354,424205e-9,0,.809524,.422765,399549e-9,0,.84127,.405472,378315e-9,0,.873016,.388482,355327e-9,0,.904762,.372191,336122e-9,0,.936508,.356099,315247e-9,0,.968254,.340737,29794e-8,0,1,1,143327e-9,0,0,1,14333e-8,0,0,1,143366e-9,0,0,.999999,143524e-9,0,0,.999996,143952e-9,0,0,.999991,144862e-9,0,0,.999981,146544e-9,0,0,.999966,149391e-9,0,0,.999941,153946e-9,0,0,.999905,160971e-9,0,0,.999852,171562e-9,0,0,.99978,18729e-8,0,0,.999681,210386e-9,0,826239e-10,.999546,243906e-9,0,664807e-9,.999352,291739e-9,0,.00196192,.999027,357419e-9,0,.00405941,.997886,422349e-9,0,.00699664,.99419,385008e-9,0,.0107896,.99214,409775e-9,0,.0154415,.990274,456418e-9,0,.0209488,.988455,527008e-9,0,.0273037,.985804,597685e-9,0,.0344969,.98103,613124e-9,0,.0425183,.976674,668321e-9,0,.0513575,.972021,736985e-9,0,.0610046,.965274,773789e-9,0,.0714508,.958046,830852e-9,0,.0826877,.949333,875766e-9,0,.0947085,.939135,917088e-9,0,.107507,.927119,952244e-9,0,.121078,.91469,990626e-9,0,.135419,.903006,.00101304,0,.150526,.892368,.00103834,0,.166399,.880231,.00105002,0,.183038,.867432,.00106331,0,.200443,.853208,.00106783,0,.218618,.837956,.00106458,0,.237566,.821772,.00105945,0,.257291,.804328,.00104685,0,.2778,.786465,.00103178,0,.2991,.768004,.00101077,0,.321199,.74972,985504e-9,0,.344106,.731682,962893e-9,0,.36783,.712813,932146e-9,0,.392383,.693139,89871e-8,0,.417774,.673566,869678e-9,0,.444013,.653483,835525e-9,0,.471107,.633891,799853e-9,0,.49906,.614433,766838e-9,0,.527869,.594586,732227e-9,0,.557517,.574769,696442e-9,0,.587966,.555149,663935e-9,0,.61913,.535898,629826e-9,0,.650794,.516753,596486e-9,0,.68254,.497816,567078e-9,0,.714286,.479034,534399e-9,0,.746032,.460975,507013e-9,0,.777778,.442935,477421e-9,0,.809524,.425263,451101e-9,0,.84127,.408248,424964e-9,0,.873016,.391339,39993e-8,0,.904762,.37513,377619e-9,0,.936508,.359172,354418e-9,0,.968254,.343876,334823e-9,0,1,1,209042e-9,0,0,1,209045e-9,0,0,1,209093e-9,0,0,.999999,209304e-9,0,0,.999996,209871e-9,0,0,.999991,211078e-9,0,0,.999979,213304e-9,0,0,.999963,217061e-9,0,0,.999933,223042e-9,0,0,.999894,232206e-9,0,0,.999837,245901e-9,0,0,.999756,266023e-9,0,102927e-11,.999648,295204e-9,0,233468e-9,.999499,336958e-9,0,.00108237,.999283,395563e-9,0,.00268832,.998896,473785e-9,0,.00511138,.997006,520008e-9,0,.00837705,.993819,497261e-9,0,.0124928,.991632,523722e-9,0,.0174561,.989875,587258e-9,0,.0232596,.988109,676329e-9,0,.0298932,.985155,747701e-9,0,.0373453,.980479,768803e-9,0,.0456045,.976271,841054e-9,0,.0546593,.971347,911469e-9,0,.0644994,.964528,953057e-9,0,.0751152,.957632,.00102221,0,.0864981,.948681,.00106122,0,.0986407,.938716,.00111857,0,.111537,.926629,.00114762,0,.125182,.914025,.00118995,0,.139571,.901026,.00121228,0,.154703,.890358,.00123946,0,.170576,.878283,.0012527,0,.18719,.865459,.00125536,0,.204547,.851407,.00126134,0,.222648,.836276,.00124759,0,.241498,.820436,.00124443,0,.261101,.803253,.00122071,0,.281465,.785562,.00120107,0,.302595,.76718,.00117762,0,.324501,.748551,.00114289,0,.347192,.730564,.00110872,0,.370679,.712253,.00107636,0,.394973,.692867,.00103646,0,.420085,.673695,996793e-9,0,.446027,.653912,95675e-8,0,.47281,.634129,916739e-9,0,.500441,.615004,874401e-9,0,.528921,.595587,833411e-9,0,.558244,.575965,794556e-9,0,.588384,.5566,75196e-8,0,.619281,.537428,716381e-9,0,.650795,.518623,676558e-9,0,.68254,.499964,64074e-8,0,.714286,.481356,605984e-9,0,.746032,.463279,570256e-9,0,.777778,.445673,540138e-9,0,.809524,.428032,507299e-9,0,.84127,.411112,479553e-9,0,.873016,.394444,450737e-9,0,.904762,.378247,424269e-9,0,.936508,.362415,399111e-9,0,.968254,.347103,375274e-9,0,1,1,300729e-9,0,0,1,300733e-9,0,0,1,300797e-9,0,0,.999998,301072e-9,0,0,.999996,301817e-9,0,0,.999989,303398e-9,0,0,.999977,306309e-9,0,0,.999958,311209e-9,0,0,.999927,318975e-9,0,0,.999884,330804e-9,0,0,.99982,34834e-8,0,0,.999733,373854e-9,0,326995e-10,.999613,410424e-9,0,477174e-9,.999447,462047e-9,0,.00161099,.999204,533322e-9,0,.00353153,.998725,624964e-9,0,.00627965,.995871,631786e-9,0,.0098693,.993194,632017e-9,0,.0143011,.991541,68923e-8,0,.019568,.989773,766892e-9,0,.0256593,.987647,863668e-9,0,.0325625,.984193,922089e-9,0,.0402647,.980016,970749e-9,0,.0487532,.975859,.00106027,0,.058016,.970514,.00112239,0,.0680419,.963625,.00117212,0,.0788208,.956959,.00125211,0,.0903439,.947956,.00129411,0,.102604,.93809,.00135879,0,.115594,.92659,.00139309,0,.129309,.913829,.00143253,0,.143745,.90005,.00145809,0,.158901,.888129,.0014748,0,.174774,.87607,.00148756,0,.191365,.863461,.00148714,0,.208674,.849594,.00148892,0,.226705,.834531,.00146496,0,.245461,.81903,.0014579,0,.264947,.802122,.00143039,0,.28517,.78445,.00139717,0,.306137,.766434,.00136312,0,.327857,.747816,.00132597,0,.350341,.729519,.00128323,0,.373598,.711454,.00123803,0,.397642,.692699,.00119097,0,.422485,.673723,.00114565,0,.448139,.654386,.00109552,0,.474619,.634673,.00104553,0,.501933,.615554,99985e-8,0,.530089,.596462,948207e-9,0,.559087,.577385,902299e-9,0,.588913,.558257,856448e-9,0,.619525,.5392,810395e-9,0,.650826,.520543,768558e-9,0,.68254,.502206,7239e-7,0,.714286,.48402,685794e-9,0,.746032,.465779,64471e-8,0,.777778,.448455,609583e-9,0,.809524,.431091,57227e-8,0,.84127,.414147,54042e-8,0,.873016,.39765,506545e-9,0,.904762,.381576,477635e-9,0,.936508,.365881,448446e-9,0,.968254,.350582,421424e-9,0,1,1,427144e-9,0,0,1,427151e-9,0,0,1,427232e-9,0,0,.999998,42759e-8,0,0,.999995,428555e-9,0,0,.999988,430603e-9,0,0,.999976,434368e-9,0,0,.999952,440688e-9,0,0,.999919,450667e-9,0,0,.999871,46578e-8,0,0,.999801,488024e-9,0,0,.999704,520092e-9,0,129791e-9,.999572,565553e-9,0,821056e-9,.999389,628906e-9,0,.00225241,.999114,714911e-9,0,.00449109,.998488,819218e-9,0,.00756249,.995234,80415e-8,0,.0114716,.993021,830181e-9,0,.0162131,.991407,902645e-9,0,.021776,.989625,996934e-9,0,.0281471,.987064,.00109707,0,.0353118,.983265,.00114353,0,.0432562,.979535,.0012272,0,.0519665,.975224,.00132642,0,.0614298,.969574,.00138092,0,.0716348,.963021,.00145896,0,.0825709,.956046,.00152834,0,.094229,.947136,.00158217,0,.106602,.937313,.0016347,0,.119682,.926073,.00168383,0,.133465,.913121,.00171627,0,.147947,.899165,.00174229,0,.163125,.885891,.00176137,0,.178998,.873783,.00176406,0,.195566,.861331,.00176156,0,.21283,.847569,.00175346,0,.230793,.832785,.00172753,0,.249459,.817442,.00170204,0,.268832,.800613,.00166576,0,.28892,.783597,.00162909,0,.30973,.76571,.0015826,0,.331271,.747021,.00153106,0,.353554,.728593,.00148036,0,.37659,.710661,.00142808,0,.400391,.692426,.00136906,0,.424973,.673623,.00131066,0,.450347,.65494,.00125569,0,.476531,.635448,.00119517,0,.503535,.616221,.00113828,0,.531372,.597531,.0010816,0,.560047,.578795,.00102673,0,.589554,.559892,970985e-9,0,.619869,.541307,919773e-9,0,.650923,.522608,868479e-9,0,.68254,.504484,82137e-8,0,.714286,.486603,772916e-9,0,.746032,.468802,730353e-9,0,.777778,.451172,684955e-9,0,.809524,.434348,647565e-9,0,.84127,.417445,605863e-9,0,.873016,.401077,571885e-9,0,.904762,.385039,536034e-9,0,.936508,.369483,504227e-9,0,.968254,.354272,473165e-9,0,1,1,599525e-9,0,0,1,599533e-9,0,0,1,599639e-9,0,0,.999998,600097e-9,0,0,.999994,601336e-9,0,0,.999987,603958e-9,0,0,.999972,608775e-9,0,0,.999949,616842e-9,0,0,.999912,629534e-9,0,0,.999857,648658e-9,0,0,.999781,676615e-9,0,538873e-11,.999674,716574e-9,0,308602e-9,.999528,772641e-9,0,.00127003,.999326,849806e-9,0,.00300783,.999009,952682e-9,0,.00556637,.998112,.00106394,0,.00895889,.994496,.00102228,0,.0131827,.992806,.00108586,0,.0182277,.991211,.0011759,0,.0240795,.989415,.00128955,0,.030723,.986499,.00139038,0,.0381418,.982679,.00144539,0,.046321,.978839,.00153954,0,.0552459,.974295,.00164417,0,.0649034,.968784,.00171517,0,.0752814,.962324,.00180282,0,.0863693,.954956,.00186387,0,.0981578,.94624,.00193817,0,.110639,.936517,.00198156,0,.123806,.925186,.00203042,0,.137655,.91252,.0020664,0,.15218,.898441,.00207822,0,.16738,.884394,.0020992,0,.183253,.871273,.00208748,0,.199799,.859057,.00208686,0,.21702,.845243,.00205519,0,.234918,.830723,.00202868,0,.253496,.815801,.00199501,0,.272761,.79914,.00194193,0,.292719,.782372,.00188824,0,.313377,.76482,.00183695,0,.334745,.746586,.00177418,0,.356833,.7281,.00170628,0,.379654,.709842,.00164063,0,.403221,.692019,.00157355,0,.427548,.67364,.00150262,0,.452651,.655277,.00143473,0,.478545,.636438,.00136371,0,.505246,.617364,.00129911,0,.532768,.598603,.00123014,0,.561122,.580195,.00116587,0,.590309,.561786,.00110398,0,.620318,.543377,.00104148,0,.651102,.525093,983984e-9,0,.682545,.506791,92667e-8,0,.714286,.489291,874326e-9,0,.746032,.471811,821734e-9,0,.777778,.454435,774698e-9,0,.809524,.437493,727302e-9,0,.84127,.420977,684039e-9,0,.873016,.404729,64373e-8,0,.904762,.388756,60285e-8,0,.936508,.373344,56765e-8,0,.968254,.358191,531929e-9,0,1,1,832169e-9,0,0,1,832178e-9,0,0,1,83231e-8,0,0,.999998,832893e-9,0,0,.999995,834465e-9,0,0,.999985,837791e-9,0,0,.999969,843893e-9,0,0,.999944,854086e-9,0,0,.999903,870071e-9,0,0,.999843,894042e-9,0,0,.999759,928865e-9,0,531805e-10,.999643,978242e-9,0,579365e-9,.99948,.00104684,0,.00182774,.999255,.00114012,0,.00387804,.998885,.00126188,0,.00675709,.997405,.00135888,0,.010468,.99424,.00133626,0,.0150018,.992458,.00140905,0,.0203443,.990929,.00152305,0,.0264786,.989116,.00165882,0,.0333875,.985624,.00174128,0,.0410536,.982003,.00182108,0,.0494609,.978336,.00194498,0,.0585941,.973184,.00202708,0,.0684396,.9678,.00212166,0,.0789851,.961348,.00221366,0,.0902199,.953841,.00228219,0,.102134,.94534,.00235662,0,.114721,.935552,.00240572,0,.127972,.924064,.00244405,0,.141884,.911827,.00247557,0,.156451,.897731,.00248374,0,.171672,.883409,.00249863,0,.187545,.868625,.00246688,0,.20407,.856529,.00246523,0,.221249,.842999,.00242368,0,.239083,.828505,.00237354,0,.257578,.813825,.00232588,0,.276738,.797813,.00226731,0,.296569,.781097,.00219704,0,.31708,.764038,.00212394,0,.338281,.746067,.00204786,0,.360181,.727687,.00196728,0,.382794,.709571,.00188779,0,.406133,.691503,.00180532,0,.430213,.673673,.00171849,0,.45505,.655732,.00164147,0,.480662,.637399,.00155858,0,.507065,.618616,.00147641,0,.534278,.60005,.00140125,0,.562313,.581713,.00132441,0,.59118,.563546,.00125014,0,.620875,.545605,.00118249,0,.651373,.527559,.0011116,0,.682593,.509764,.00104979,0,.714286,.49193,985977e-9,0,.746032,.475011,928592e-9,0,.777778,.457878,873466e-9,0,.809524,.440979,819585e-9,0,.84127,.424613,772365e-9,0,.873016,.408549,722195e-9,0,.904762,.392771,680014e-9,0,.936508,.377317,636797e-9,0,.968254,.362352,598318e-9,0,1,1,.00114313,0,0,1,.00114314,0,0,.999999,.00114331,0,0,.999998,.00114404,0,0,.999994,.00114601,0,0,.999984,.00115019,0,0,.999967,.00115784,0,0,.999937,.0011706,0,0,.999894,.00119054,0,0,.999828,.00122031,0,0,.999735,.00126331,0,169263e-9,.999606,.00132382,0,949167e-9,.999426,.0014071,0,.00249668,.999173,.00151895,0,.00486392,.99873,.00166102,0,.00806323,.996243,.0017023,0,.0120895,.993779,.00172782,0,.0169288,.9919,.0018108,0,.0225633,.990524,.00196028,0,.028974,.98868,.00212014,0,.036142,.984663,.00217598,0,.044049,.981457,.00230563,0,.0526781,.977608,.00243966,0,.0620137,.972215,.00251336,0,.0720418,.966798,.0026285,0,.0827499,.960241,.00271409,0,.0941271,.952489,.00278381,0,.106164,.944127,.00285399,0,.118852,.934282,.00290994,0,.132185,.923271,.00294558,0,.146157,.910803,.00296269,0,.160766,.896705,.00296803,0,.176007,.88238,.00296637,0,.19188,.867116,.00293163,0,.208385,.853636,.00289418,0,.225523,.840469,.00284663,0,.243296,.82639,.00278594,0,.261709,.811759,.00271618,0,.280767,.796113,.00263187,0,.300476,.779518,.00254589,0,.320845,.763142,.00246003,0,.341883,.745464,.00236529,0,.363601,.727491,.00226536,0,.386011,.709414,.00216375,0,.409128,.691396,.00207127,0,.432967,.67368,.00197106,0,.457545,.656049,.00187022,0,.482881,.638188,.00177605,0,.508992,.620177,.00168482,0,.535899,.601506,.00158909,0,.563619,.58362,.00150583,0,.592165,.565496,.00141791,0,.621544,.54789,.00133693,0,.651743,.530323,.00126038,0,.682709,.512795,.00118556,0,.714286,.495199,.00111527,0,.746032,.478101,.0010489,0,.777778,.461511,984264e-9,0,.809524,.444879,92591e-8,0,.84127,.428424,866582e-9,0,.873016,.412495,814463e-9,0,.904762,.396975,764498e-9,0,.936508,.381614,715967e-9,0,.968254,.366732,672483e-9,0,1,1,.00155501,0,0,1,.00155503,0,0,1,.00155524,0,0,.999998,.00155615,0,0,.999994,.0015586,0,0,.999983,.00156379,0,0,.999963,.0015733,0,0,.999932,.00158911,0,0,.999882,.00161376,0,0,.99981,.00165041,0,100875e-10,.999708,.00170304,0,367658e-9,.999565,.00177658,0,.0014234,.999368,.00187688,0,.00327939,.999081,.00200989,0,.00596629,.99852,.00217177,0,.0094852,.99549,.0021745,0,.013824,.993252,.00222357,0,.0189642,.991727,.00235022,0,.0248856,.989951,.00250561,0,.0315669,.988029,.00268829,0,.0389882,.984029,.0027496,0,.0471302,.980683,.00289793,0,.0559754,.976554,.00303315,0,.0655081,.97139,.00313257,0,.0757138,.965544,.00323656,0,.08658,.95912,.00333432,0,.0980954,.951183,.0034039,0,.110251,.942974,.00347515,0,.123038,.932642,.00350381,0,.13645,.922158,.00354519,0,.150482,.909404,.00353851,0,.165129,.896071,.0035435,0,.18039,.881206,.00349936,0,.196263,.866077,.00347256,0,.212748,.85093,.003415,0,.229847,.837703,.00333367,0,.247561,.823878,.003249,0,.265895,.809449,.00316347,0,.284854,.794379,.00306351,0,.304445,.778138,.0029499,0,.324675,.761997,.00284099,0,.345555,.744938,.00272104,0,.367095,.727212,.00260715,0,.389309,.709549,.00248855,0,.41221,.691704,.00236783,0,.435814,.673689,.00225178,0,.460138,.656453,.00213765,0,.485203,.639128,.00202178,0,.511028,.621512,.00191443,0,.537634,.603598,.00180977,0,.565041,.58559,.00170456,0,.593268,.567852,.00160927,0,.622327,.5503,.00151395,0,.652217,.533033,.00142499,0,.682907,.515942,.00133955,0,.714296,.498814,.0012602,0,.746032,.481595,.00118188,0,.777778,.465117,.00111171,0,.809524,.448865,.00104091,0,.84127,.432711,976618e-9,0,.873016,.416822,91859e-8,0,.904762,.401272,857704e-9,0,.936508,.386226,807172e-9,0,.968254,.371321,75464e-8,0,1,1,.00209596,0,0,1,.00209598,0,0,1,.00209624,0,0,.999997,.00209736,0,0,.999991,.00210039,0,0,.999979,.00210678,0,0,.999959,.00211847,0,0,.999925,.0021379,0,0,.99987,.00216809,0,0,.999791,.00221281,0,681487e-10,.999677,.00227669,0,658161e-9,.999521,.00236533,0,.00200635,.999301,.00248514,0,.0041779,.998977,.00264185,0,.00718648,.998191,.00281695,0,.0110239,.994801,.00278518,0,.015672,.993091,.00288774,0,.0211091,.991571,.00303931,0,.0273123,.9897,.00321643,0,.034259,.987023,.00337332,0,.0419282,.983289,.00346146,0,.0502998,.979892,.00363704,0,.0593562,.975111,.00373601,0,.069081,.970351,.0038842,0,.0794598,.964131,.00397053,0,.0904798,.957747,.00408078,0,.10213,.949536,.00413533,0,.1144,.941372,.00420305,0,.127284,.931049,.00422815,0,.140772,.920647,.00425048,0,.154862,.908033,.0042281,0,.169548,.895028,.00422026,0,.184828,.879968,.00415042,0,.200701,.864875,.00408821,0,.217167,.84918,.00400909,0,.234227,.834934,.00391178,0,.251884,.821397,.00380066,0,.270141,.807135,.00367974,0,.289004,.792363,.00355172,0,.308479,.776661,.003411,0,.328575,.760705,.00328123,0,.349301,.744408,.00314003,0,.370668,.726994,.0029906,0,.392689,.709598,.00285034,0,.415379,.692112,.00271179,0,.438754,.674435,.00257185,0,.46283,.65676,.00243425,0,.48763,.639982,.00230351,0,.513173,.622983,.0021777,0,.539482,.605471,.00204991,0,.566579,.58796,.00193759,0,.594488,.570463,.00181976,0,.623226,.553058,.00171497,0,.6528,.535894,.00161109,0,.683198,.519089,.00151394,0,.714354,.502454,.00142122,0,.746032,.485681,.00133488,0,.777778,.468935,.00124975,0,.809524,.452951,.00117309,0,.84127,.437139,.00110155,0,.873016,.421446,.00103124,0,.904762,.405951,966387e-9,0,.936508,.391003,908119e-9,0,.968254,.376198,848057e-9,0,1,1,.00280076,0,0,1,.00280078,0,0,.999999,.00280109,0,0,.999997,.00280246,0,0,.999992,.00280616,0,0,.999979,.00281396,0,0,.999956,.00282822,0,0,.999916,.00285186,0,0,.999857,.0028885,0,0,.999768,.00294259,0,196026e-9,.999645,.00301946,0,.00104842,.99947,.00312541,0,.00270199,.999229,.00326733,0,.00519449,.998852,.00344992,0,.00852602,.997558,.00361052,0,.0126804,.994417,.0035898,0,.017635,.992824,.00372393,0,.023365,.991344,.00390695,0,.0298456,.989337,.00410392,0,.0370529,.985811,.00420987,0,.0449651,.982772,.00437488,0,.0535615,.979001,.00455069,0,.0628243,.974102,.00464462,0,.0727368,.969197,.00480577,0,.0832844,.962759,.00487818,0,.0944545,.956207,.00498176,0,.106236,.947909,.00503392,0,.118619,.939596,.00507474,0,.131595,.929642,.00509798,0,.145159,.918807,.00508476,0,.159305,.906921,.00505634,0,.174028,.893312,.00498845,0,.189327,.878933,.0049133,0,.2052,.863986,.0048259,0,.221647,.847936,.00470848,0,.23867,.832253,.00456889,0,.25627,.818619,.00442726,0,.274453,.804788,.00427677,0,.293222,.790241,.00411906,0,.312585,.775162,.00394833,0,.33255,.759463,.00377366,0,.353126,.743598,.00361026,0,.374324,.72697,.00343627,0,.396158,.709646,.00326422,0,.418641,.69277,.00309717,0,.44179,.675371,.0029356,0,.465624,.657863,.00277712,0,.490163,.640772,.00261738,0,.515429,.624441,.0024737,0,.541445,.607497,.00233125,0,.568236,.590438,.00218994,0,.595828,.573224,.0020664,0,.624242,.556168,.00193526,0,.653496,.539232,.00182463,0,.683588,.522352,.00170735,0,.714482,.506172,.00160555,0,.746032,.489842,.00150451,0,.777778,.473463,.00140938,0,.809524,.457266,.00132568,0,.84127,.441609,.0012376,0,.873016,.426348,.00116265,0,.904762,.411002,.00108935,0,.936508,.396045,.00101946,0,.968254,.381448,955665e-9,0,1,1,.0037121,0,0,1,.00371213,0,0,1,.00371251,0,0,.999997,.00371417,0,0,.99999,.00371863,0,0,.999977,.00372807,0,0,.99995,.00374529,0,0,.999908,.0037738,0,0,.999843,.00381789,0,123596e-10,.999745,.00388273,0,407442e-9,.999608,.00397443,0,.0015447,.999415,.00409998,0,.00351385,.999143,.00426662,0,.0063316,.9987,.00447625,0,.00998679,.996363,.00455323,0,.0144569,.994021,.00461052,0,.0197151,.992372,.00476359,0,.0257344,.991007,.00499101,0,.0324882,.988767,.0051972,0,.0399517,.984872,.00528407,0,.0481022,.982004,.00548926,0,.0569191,.977714,.00564385,0,.0663839,.973076,.0057693,0,.0764801,.967565,.0058924,0,.0871928,.961384,.00599629,0,.0985095,.954435,.00605998,0,.110419,.946303,.0061133,0,.122912,.937662,.00612028,0,.13598,.927867,.00612209,0,.149617,.916475,.00604813,0,.163817,.90541,.00603088,0,.178577,.891591,.00592218,0,.193894,.877573,.00578854,0,.209767,.862511,.00566648,0,.226196,.846861,.00551481,0,.243182,.83068,.00533754,0,.260728,.815725,.00515487,0,.278837,.802321,.0049655,0,.297515,.787826,.00475421,0,.316768,.773454,.00456002,0,.336605,.758224,.00434727,0,.357034,.74265,.00414444,0,.378067,.726729,.00393738,0,.399717,.710155,.00373575,0,.421998,.693312,.00353736,0,.444928,.67653,.00334368,0,.468523,.659444,.00315981,0,.492806,.642051,.00297809,0,.517798,.625758,.00280592,0,.543525,.609615,.00264254,0,.570012,.592919,.00248459,0,.597288,.576298,.00233327,0,.625379,.559489,.00219519,0,.654307,.542891,.00205441,0,.684084,.526255,.00193385,0,.714693,.509853,.00180745,0,.746044,.494131,.00169817,0,.777778,.478114,.0015913,0,.809524,.462274,.00148981,0,.84127,.446412,.00139537,0,.873016,.431274,.00130984,0,.904762,.41635,.00122403,0,.936508,.401476,.00114809,0,.968254,.386993,.00107563,0,1,1,.00488216,0,0,1,.0048822,0,0,1,.00488265,0,0,.999997,.00488463,0,0,.999988,.00488999,0,0,.999974,.00490129,0,0,.999946,.00492191,0,0,.999897,.00495598,0,0,.999825,.00500855,0,744791e-10,.999718,.00508559,0,712744e-9,.999565,.005194,0,.00215249,.999352,.00534147,0,.00444576,.999046,.00553523,0,.00759218,.998492,.00577016,0,.0115714,.995564,.00578487,0,.0163557,.993339,.00586414,0,.021915,.991834,.00606002,0,.0282201,.990496,.00633312,0,.0352433,.987826,.00651941,0,.042959,.98383,.00660842,0,.0513439,.98109,.00685523,0,.0603772,.976131,.00695778,0,.0700402,.971922,.00714236,0,.0803163,.965901,.00721437,0,.0911908,.959606,.00732017,0,.102651,.952504,.00735788,0,.114686,.944365,.00738493,0,.127286,.935652,.00737969,0,.140443,.925813,.00733612,0,.154151,.914397,.00723094,0,.168405,.903257,.00714002,0,.183201,.890015,.00700149,0,.198536,.876014,.00682813,0,.214409,.861436,.00665567,0,.23082,.845752,.00644526,0,.24777,.829169,.00621635,0,.265263,.813435,.00597789,0,.283301,.799701,.00575694,0,.301889,.785726,.00549866,0,.321035,.77152,.0052503,0,.340746,.75683,.00499619,0,.361032,.741951,.0047543,0,.381904,.726367,.0045084,0,.403374,.710537,.00426784,0,.425457,.693965,.00403487,0,.448169,.677724,.0038075,0,.47153,.66117,.00359431,0,.495561,.644274,.00338354,0,.520284,.627449,.00318163,0,.545725,.611645,.00299672,0,.571911,.595614,.00281016,0,.598873,.579426,.00264252,0,.62664,.563016,.00247509,0,.655239,.546728,.00232647,0,.684692,.530539,.00217803,0,.714999,.514164,.00204216,0,.746106,.498344,.00191403,0,.777778,.482957,.00179203,0,.809524,.467336,.00167695,0,.84127,.451994,.00157567,0,.873016,.436514,.00147113,0,.904762,.42178,.00138034,0,.936508,.407271,.00129219,0,.968254,.392822,.0012098,0,1,1,.00637427,0,0,1,.00637431,0,0,.999999,.00637485,0,0,.999996,.00637721,0,0,.999987,.00638357,0,0,.999971,.006397,0,0,.999939,.00642142,0,0,.999888,.00646177,0,0,.999807,.00652387,0,207916e-9,.999689,.00661454,0,.00112051,.99952,.00674155,0,.00287719,.999283,.00691313,0,.00550145,.998936,.00713598,0,.00897928,.998165,.00738501,0,.0132829,.994847,.00734388,0,.01838,.993182,.00749991,0,.0242381,.991665,.0077246,0,.030826,.989708,.00797579,0,.0381152,.986663,.00813011,0,.0460794,.983288,.00830365,0,.0546951,.980104,.00853496,0,.0639411,.974855,.00861045,0,.0737988,.97045,.00879133,0,.0842516,.964509,.00886377,0,.0952848,.957594,.00890346,0,.106886,.950546,.00893289,0,.119044,.942225,.00890074,0,.131749,.933365,.00886826,0,.144994,.923202,.0087316,0,.158772,.912605,.00863082,0,.173078,.901099,.00847403,0,.187908,.888177,.00825838,0,.203261,.873955,.00801834,0,.219134,.860091,.00779026,0,.235527,.84434,.00752478,0,.252443,.828517,.00724074,0,.269883,.81239,.00693769,0,.287851,.79721,.00664817,0,.306352,.783489,.00634763,0,.325393,.769514,.00604221,0,.344981,.755419,.00573568,0,.365126,.741083,.00544359,0,.385839,.726059,.00515515,0,.407132,.710809,.00487139,0,.42902,.695052,.00459846,0,.45152,.678886,.00433412,0,.474651,.663042,.00407981,0,.498433,.646634,.00384264,0,.52289,.630117,.00360897,0,.548048,.613804,.00338863,0,.573936,.598338,.00318486,0,.600584,.582687,.00298377,0,.628027,.566809,.00280082,0,.656295,.550817,.00262255,0,.685417,.534937,.00245835,0,.715406,.519151,.00230574,0,.74624,.503118,.0021549,0,.777778,.487723,.00202008,0,.809524,.472725,.00189355,0,.84127,.457599,.00177108,0,.873016,.442558,.00165843,0,.904762,.427624,.00155494,0,.936508,.413171,.00145273,0,.968254,.399122,.00136454,0,1,1,.00826496,0,0,1,.00826499,0,0,1,.00826564,0,0,.999996,.00826842,0,0,.999987,.00827589,0,0,.999967,.00829167,0,0,.999933,.00832037,0,0,.999876,.00836768,0,109338e-10,.999786,.00844031,0,427145e-9,.999655,.00854603,0,.0016384,.999468,.00869337,0,.00372392,.999203,.008891,0,.00668513,.998803,.00914387,0,.0104968,.99748,.00935838,0,.015125,.994446,.00933309,0,.0205338,.99292,.00953084,0,.0266884,.991414,.0097893,0,.0335565,.989049,.0100228,0,.0411086,.98582,.0101664,0,.0493181,.982441,.0103582,0,.0581613,.978595,.0105292,0,.0676169,.973495,.0106274,0,.0776661,.968405,.0107261,0,.0882926,.962717,.0108234,0,.0994817,.955478,.0108102,0,.111221,.948275,.0107914,0,.123499,.940006,.0107161,0,.136308,.930831,.0106309,0,.149639,.920648,.0104083,0,.163485,.910205,.0102312,0,.177843,.898445,.0100051,0,.192707,.885986,.00971928,0,.208077,.872204,.00940747,0,.22395,.858436,.0091085,0,.240326,.843454,.00876595,0,.257208,.827437,.00839794,0,.274596,.811488,.00803692,0,.292496,.796039,.00767352,0,.310911,.781083,.0073097,0,.329849,.767642,.00694032,0,.349316,.753901,.00657476,0,.369323,.740131,.00622699,0,.38988,.725845,.0058838,0,.410999,.710991,.00555586,0,.432696,.696002,.00523089,0,.454987,.680461,.00492494,0,.47789,.664875,.00463464,0,.501426,.649273,.00435422,0,.52562,.63302,.0040875,0,.550498,.61705,.00384075,0,.576089,.601154,.00359557,0,.602427,.586008,.00337636,0,.629544,.570699,.00316019,0,.657479,.555166,.00296033,0,.686264,.539645,.00277552,0,.715924,.524159,.00259499,0,.746459,.508682,.00243257,0,.777789,.493163,.00227851,0,.809524,.478004,.00213083,0,.84127,.46347,.00199502,0,.873016,.448778,.00186967,0,.904762,.434105,.00174732,0,.936508,.419576,.00163861,0,.968254,.405541,.00153341,0,1,1,.0106462,0,0,1,.0106462,0,0,.999999,.010647,0,0,.999995,.0106502,0,0,.999985,.0106589,0,0,.999964,.0106773,0,0,.999925,.0107106,0,0,.999861,.0107655,0,712986e-10,.999763,.0108497,0,743959e-9,.999616,.0109716,0,.00227361,.999408,.0111408,0,.0046983,.999112,.0113659,0,.00800158,.998637,.0116475,0,.0121493,.996223,.0117231,0,.0171023,.994006,.0118064,0,.0228218,.992444,.0120254,0,.0292711,.991028,.0123314,0,.036417,.98803,.0124954,0,.0442295,.984816,.0126538,0,.0526815,.981399,.0128537,0,.0617492,.977085,.0129694,0,.0714114,.972154,.013091,0,.0816495,.966617,.0131166,0,.0924472,.960628,.0131583,0,.10379,.953295,.0131094,0,.115665,.94575,.0129966,0,.128062,.937654,.0128796,0,.140972,.927716,.0126477,0,.154387,.917932,.0123889,0,.168301,.907719,.012131,0,.182709,.89584,.0118013,0,.197608,.883526,.0114145,0,.212994,.870301,.0110075,0,.228867,.856272,.0106019,0,.245227,.842251,.0101938,0,.262074,.826466,.00973254,0,.279412,.810859,.0092846,0,.297244,.795051,.00883304,0,.315575,.780053,.00840272,0,.334412,.76575,.00796438,0,.35376,.752298,.00752526,0,.373631,.739153,.00711486,0,.394034,.725514,.00670361,0,.414983,.711473,.00632656,0,.436491,.696936,.00595206,0,.458575,.682126,.00559191,0,.481253,.667027,.00525362,0,.504547,.651875,.00493805,0,.528481,.636463,.00462848,0,.553081,.620641,.00433936,0,.578377,.604931,.00407,0,.604404,.589549,.00380864,0,.631197,.574712,.00357049,0,.658795,.559775,.00334466,0,.687238,.544514,.00312505,0,.716559,.529555,.00293199,0,.746776,.514402,.00274204,0,.777849,.499302,.00256647,0,.809524,.484114,.00239901,0,.84127,.469308,.00225148,0,.873016,.455133,.00210178,0,.904762,.440939,.0019727,0,.936508,.426627,.00184382,0,.968254,.412509,.00172548,0,1,1,.013628,0,0,1,.0136281,0,0,.999999,.0136289,0,0,.999995,.0136327,0,0,.999983,.0136427,0,0,.99996,.0136638,0,0,.999917,.0137022,0,0,.999846,.0137652,0,204597e-9,.999736,.0138615,0,.00116837,.999573,.0140007,0,.00303325,.99934,.0141927,0,.00580613,.999004,.0144457,0,.00945626,.998407,.0147489,0,.0139421,.995464,.014731,0,.0192202,.993328,.0148283,0,.0252495,.991799,.0150797,0,.0319921,.990397,.0154316,0,.0394138,.986835,.0155005,0,.0474843,.983938,.0157308,0,.0561763,.980154,.0158753,0,.0654661,.975659,.0159581,0,.0753326,.970171,.0159832,0,.0857571,.964803,.0160084,0,.0967236,.958366,.0159484,0,.108218,.950613,.0158001,0,.120227,.942874,.0155845,0,.132741,.935005,.0154292,0,.145751,.924991,.0150742,0,.159249,.914814,.0146757,0,.17323,.904743,.0143097,0,.187687,.893216,.0138695,0,.202619,.880769,.0133706,0,.218021,.868136,.0128606,0,.233894,.85469,.0123403,0,.250238,.840593,.0118091,0,.267052,.825808,.011253,0,.284341,.81009,.0107099,0,.302106,.79504,.0101636,0,.320354,.779757,.00964041,0,.33909,.764697,.00911896,0,.358322,.750913,.00859533,0,.378059,.738175,.00811592,0,.398311,.725242,.00764504,0,.41909,.711864,.00718885,0,.440412,.698009,.00675843,0,.462292,.683841,.00634984,0,.484748,.669391,.00595502,0,.507802,.654731,.00558671,0,.531477,.639805,.00523578,0,.555802,.624789,.00490834,0,.580805,.609325,.00459448,0,.606522,.593975,.00430342,0,.63299,.578983,.00403019,0,.66025,.564442,.0037707,0,.688346,.549835,.0035316,0,.717319,.535039,.00330255,0,.7472,.520403,.00308932,0,.777982,.505687,.00289335,0,.809524,.490939,.00270818,0,.84127,.476233,.0025343,0,.873016,.461624,.00237097,0,.904762,.447833,.00222065,0,.936508,.433992,.00207561,0,.968254,.420147,.00194955,0,1,1,.0173415,0,0,1,.0173416,0,0,.999999,.0173426,0,0,.999995,.0173468,0,0,.999983,.0173582,0,0,.999954,.0173822,0,0,.999908,.0174258,0,669501e-11,.999828,.0174973,0,427399e-9,.999705,.0176063,0,.00171019,.999524,.0177631,0,.0039248,.999263,.0179781,0,.00705382,.998878,.018258,0,.0110552,.998012,.0185551,0,.0158812,.994614,.0184264,0,.0214852,.993132,.0186385,0,.0278239,.991563,.0189067,0,.0348585,.989298,.0191577,0,.0425544,.986036,.0192522,0,.050881,.982558,.0194063,0,.059811,.978531,.019486,0,.0693209,.974198,.0195847,0,.0793895,.968148,.0194749,0,.0899984,.962565,.0194277,0,.101132,.956041,.0192991,0,.112775,.947749,.0189893,0,.124917,.94018,.018704,0,.137547,.93165,.0183458,0,.150655,.921798,.0178775,0,.164236,.911573,.0173618,0,.178281,.901569,.0168482,0,.192788,.890341,.016265,0,.207752,.877835,.0156199,0,.223171,.865472,.0149516,0,.239044,.852905,.0143274,0,.255371,.838906,.0136643,0,.272153,.824888,.0129903,0,.289393,.809977,.0123218,0,.307093,.794697,.0116572,0,.325259,.780028,.0110307,0,.343896,.765124,.0104236,0,.363012,.750411,.0098219,0,.382617,.737264,.00924397,0,.402719,.724799,.00868719,0,.423332,.712253,.00816476,0,.444469,.699267,.00767262,0,.466146,.685618,.00719746,0,.488383,.671736,.00673916,0,.511199,.657777,.00631937,0,.534618,.643497,.00592411,0,.558668,.62889,.00553928,0,.58338,.614299,.0051934,0,.608787,.599197,.00485985,0,.634929,.584175,.00454357,0,.661849,.569541,.00425787,0,.689594,.555193,.00397905,0,.718211,.540947,.00372364,0,.747742,.526593,.00348599,0,.778205,.512335,.00326103,0,.80953,.498017,.00305137,0,.84127,.483609,.00285485,0,.873016,.469368,.00267472,0,.904762,.455037,.00249945,0,.936508,.441493,.00234792,0,.968254,.428147,.00219936,0,1,1,.0219422,0,0,1,.0219423,0,0,.999998,.0219434,0,0,.999993,.0219481,0,0,.999981,.021961,0,0,.999949,.0219879,0,0,.999896,.0220367,0,593194e-10,.999808,.0221167,0,75364e-8,.99967,.0222383,0,.00237884,.999466,.0224125,0,.00495612,.999174,.0226495,0,.00844887,.998725,.0229525,0,.0128058,.996979,.0231123,0,.0179742,.994317,.0230742,0,.0239047,.992781,.0232895,0,.0305526,.991191,.0235734,0,.0378786,.987787,.0236152,0,.0458475,.985092,.0237994,0,.0544287,.981121,.0238553,0,.0635952,.976924,.0238706,0,.0733233,.97218,.0238704,0,.0835922,.965956,.0236598,0,.0943839,.959998,.0234735,0,.105682,.953245,.0232277,0,.117474,.944445,.0226973,0,.129747,.937087,.0223527,0,.142491,.928341,.0218144,0,.155697,.9184,.0211516,0,.169358,.907959,.0204553,0,.183469,.89808,.0197673,0,.198024,.887047,.0189915,0,.21302,.875221,.0182082,0,.228455,.86269,.0173584,0,.244329,.850735,.0165718,0,.260639,.837545,.0157524,0,.277389,.823639,.0149482,0,.29458,.809699,.0141431,0,.312216,.794797,.0133527,0,.3303,.780578,.0126193,0,.34884,.766019,.0118914,0,.367842,.751447,.0111839,0,.387315,.737275,.010514,0,.40727,.724545,.00987277,0,.427717,.712644,.00926569,0,.448671,.700432,.00869029,0,.470149,.687664,.00814691,0,.492167,.674288,.00763012,0,.514746,.660966,.00714437,0,.537911,.647264,.00668457,0,.561688,.633431,.00626581,0,.586108,.619133,.00585593,0,.611206,.604935,.00548188,0,.637022,.590236,.00513288,0,.663599,.575473,.0047906,0,.690989,.561228,.00448895,0,.719242,.547054,.00420233,0,.748411,.533175,.00392869,0,.778531,.519163,.00367445,0,.809583,.505328,.00344097,0,.84127,.491446,.00322003,0,.873016,.477356,.00301283,0,.904762,.46356,.00282592,0,.936508,.449623,.00264956,0,.968254,.436068,.00246956,0,1,1,.0276135,0,0,1,.0276136,0,0,.999998,.0276148,0,0,.999993,.0276201,0,0,.999976,.0276342,0,0,.999945,.027664,0,0,.999884,.0277179,0,18679e-8,.999784,.027806,0,.00119607,.99963,.0279394,0,.00318407,.999401,.0281295,0,.00613601,.999066,.0283858,0,.00999963,.998524,.0287027,0,.0147164,.995702,.0286256,0,.0202295,.993593,.0286733,0,.0264876,.992067,.0288989,0,.0334452,.990548,.0292135,0,.0410621,.986775,.0291296,0,.0493032,.984054,.0293099,0,.0581381,.979481,.0291881,0,.0675397,.975297,.0291598,0,.0774848,.96981,.028954,0,.0879528,.963524,.028628,0,.0989258,.957398,.0283135,0,.110388,.950088,.0278469,0,.122327,.941538,.0271798,0,.134729,.933332,.0265388,0,.147587,.924392,.0257776,0,.160889,.914581,.024916,0,.174631,.904347,.0240242,0,.188806,.894324,.0231229,0,.203409,.883724,.022153,0,.218437,.872207,.0211355,0,.233888,.859927,.0201048,0,.249761,.848373,.0191263,0,.266056,.836023,.0181306,0,.282774,.82289,.0171718,0,.299917,.809324,.0162196,0,.317488,.795361,.0152622,0,.335493,.781253,.01439,0,.353936,.767338,.013533,0,.372825,.753156,.0127244,0,.392168,.739122,.0119454,0,.411976,.725358,.0112054,0,.432259,.712949,.010487,0,.453032,.701621,.00984032,0,.47431,.689703,.00921495,0,.496111,.677216,.00862492,0,.518456,.664217,.00806882,0,.541367,.65137,.00755922,0,.564872,.638,.00705705,0,.589001,.62453,.00661266,0,.613789,.610601,.00618432,0,.639277,.59676,.00578033,0,.66551,.582433,.00540927,0,.692539,.568026,.00506104,0,.720422,.55414,.0047353,0,.749216,.540178,.00442889,0,.778974,.526513,.00414363,0,.809711,.512954,.00388237,0,.84127,.499403,.00362875,0,.873016,.486026,.00340827,0,.904762,.472345,.00318598,0,.936508,.458828,.00297635,0,.968254,.445379,.00279447,0,1,1,.0345716,0,0,1,.0345717,0,0,.999999,.034573,0,0,.999991,.0345787,0,0,.999974,.0345941,0,0,.999937,.0346263,0,188589e-11,.999869,.0346847,0,409238e-9,.999757,.0347798,0,.0017674,.999582,.0349233,0,.00413658,.999322,.0351265,0,.00747408,.998939,.0353967,0,.0117157,.998219,.0357018,0,.0167966,.994974,.0354726,0,.0226572,.993201,.0355621,0,.0292445,.991573,.0357641,0,.0365123,.989301,.0359252,0,.0444203,.985712,.0358017,0,.0529334,.982411,.0358353,0,.0620214,.977827,.035617,0,.0716574,.973278,.0354398,0,.0818186,.967397,.0350483,0,.0924846,.960696,.0344795,0,.103638,.954349,.0339861,0,.115263,.946066,.0331323,0,.127348,.938012,.032359,0,.13988,.929413,.0314413,0,.152849,.920355,.0304103,0,.166248,.910586,.0292785,0,.18007,.900609,.0281391,0,.194308,.890093,.0269103,0,.208958,.880013,.0257269,0,.224018,.869001,.0244671,0,.239485,.85751,.0232252,0,.255359,.84582,.0220117,0,.271638,.834383,.0208274,0,.288324,.822158,.0196628,0,.305419,.809056,.0185306,0,.322927,.795832,.0174174,0,.340851,.782547,.0163758,0,.359199,.7689,.015391,0,.377975,.755526,.0144488,0,.397189,.741681,.0135372,0,.416851,.728178,.0126957,0,.436971,.714642,.0118812,0,.457564,.702756,.0111165,0,.478644,.69175,.0104145,0,.500229,.680159,.00974439,0,.522339,.668073,.00911926,0,.544997,.655405,.00851393,0,.56823,.642921,.00797637,0,.592068,.629993,.00745119,0,.616546,.616828,.00696972,0,.641705,.603305,.00652425,0,.66759,.589833,.00610188,0,.694255,.575945,.00570834,0,.72176,.561745,.00533384,0,.750168,.548277,.00500001,0,.779545,.534467,.00467582,0,.809933,.521032,.00438092,0,.841272,.507877,.00410348,0,.873016,.494654,.00383618,0,.904762,.481592,.00358699,0,.936508,.468509,.00337281,0,.968254,.455293,.00316196,0,1,1,.0430698,0,0,1,.0430699,0,0,.999998,.0430713,0,0,.999991,.0430773,0,0,.99997,.0430936,0,0,.999928,.0431277,0,406396e-10,.999852,.0431893,0,744376e-9,.999724,.0432895,0,.0024806,.999527,.0434397,0,.00524779,.99923,.0436507,0,.00898164,.998783,.0439255,0,.0136083,.997507,.0441104,0,.0190582,.994418,.0438225,0,.0252694,.992864,.0439396,0,.0321879,.991127,.0440962,0,.039767,.987331,.0438408,0,.0479667,.984819,.0438991,0,.056752,.980384,.0435906,0,.0660929,.975846,.0432543,0,.075963,.970748,.0428293,0,.0863398,.964303,.042153,0,.0972035,.95772,.0414111,0,.108537,.950747,.0405893,0,.120325,.942533,.0394887,0,.132554,.934045,.0383544,0,.145215,.924942,.037057,0,.158296,.915811,.0356993,0,.17179,.90612,.0342401,0,.185691,.896434,.0328078,0,.199993,.886021,.031288,0,.214691,.876081,.0297776,0,.229782,.865608,.0282334,0,.245265,.854924,.026749,0,.261138,.843607,.02526,0,.277401,.832456,.0238214,0,.294056,.821342,.0224682,0,.311104,.809303,.0211297,0,.328548,.796468,.0198387,0,.346394,.784046,.0186227,0,.364645,.771262,.0174561,0,.38331,.758118,.0163806,0,.402396,.745075,.0153287,0,.421912,.731926,.0143647,0,.44187,.71863,.0134363,0,.462283,.705414,.0125603,0,.483165,.693792,.0117508,0,.504535,.683108,.0110016,0,.52641,.67183,.0102757,0,.548816,.66015,.00962044,0,.571776,.647907,.00898031,0,.595323,.635734,.00840811,0,.619489,.623208,.00786211,0,.644317,.610438,.00734953,0,.669852,.597345,.00687688,0,.696148,.584138,.00643469,0,.723267,.5707,.00602236,0,.75128,.556966,.0056324,0,.780258,.543607,.00528277,0,.810268,.530213,.00493999,0,.841311,.516912,.00462265,0,.873016,.503916,.0043307,0,.904762,.491146,.00406858,0,.936508,.478439,.00381436,0,.968254,.465834,.00358003,0,1,1,.0534039,0,0,1,.053404,0,0,.999998,.0534055,0,0,.999989,.0534116,0,0,.999968,.0534283,0,0,.999918,.0534633,0,155895e-9,.99983,.0535262,0,.00120914,.999685,.0536281,0,.00334944,.999461,.0537799,0,.00653077,.999119,.0539902,0,.0106718,.998582,.0542524,0,.0156907,.995919,.0540318,0,.0215147,.993735,.0538914,0,.0280801,.992126,.0539557,0,.0353323,.990266,.0540401,0,.0432247,.986317,.0536064,0,.0517172,.983213,.0534425,0,.0607754,.978303,.0528622,0,.0703698,.973665,.0523363,0,.0804742,.968091,.0516165,0,.0910667,.961026,.0505434,0,.102128,.954333,.049523,0,.113641,.946372,.0481698,0,.125591,.938254,.0467674,0,.137965,.929516,.0452341,0,.150754,.920106,.0435083,0,.163947,.910899,.0417399,0,.177537,.901532,.0399389,0,.191516,.891919,.0380901,0,.205881,.882006,.0362341,0,.220626,.871965,.0343444,0,.235749,.862145,.0324832,0,.251248,.852058,.0306681,0,.267121,.84161,.0289097,0,.283368,.830806,.0272079,0,.299992,.820476,.0256089,0,.316992,.809514,.0240394,0,.334374,.797865,.0225379,0,.35214,.785621,.0211235,0,.370296,.773765,.0197908,0,.388849,.761629,.0185235,0,.407807,.748891,.0173358,0,.427178,.736437,.0162305,0,.446974,.723707,.0151778,0,.467207,.710606,.0141791,0,.487892,.698019,.0132592,0,.509046,.686203,.0123887,0,.530687,.675692,.0115976,0,.552839,.664826,.0108325,0,.575527,.65349,.0101348,0,.59878,.641774,.00947756,0,.622634,.629794,.00886058,0,.647128,.617647,.00828526,0,.672308,.60534,.00775312,0,.698231,.592718,.00726033,0,.724958,.579746,.00679731,0,.752563,.566763,.00636111,0,.781127,.553515,.00595228,0,.810733,.540118,.00556876,0,.841426,.527325,.00523051,0,.873016,.514265,.00490712,0,.904762,.501406,.00460297,0,.936508,.488922,.00431247,0,.968254,.476541,.0040472,0,1,1,.0659184,0,0,1,.0659185,0,0,.999998,.06592,0,0,.999988,.0659259,0,0,.999963,.0659423,0,0,.999907,.0659764,0,374198e-9,.999806,.0660376,0,.00182071,.999639,.0661361,0,.0043894,.999378,.0662814,0,.00800055,.998985,.0664779,0,.0125594,.998285,.0666914,0,.0179786,.995071,.0661989,0,.0241822,.993172,.0660454,0,.031106,.991438,.0660105,0,.0386952,.988428,.0656875,0,.0469032,.985218,.0652913,0,.0556905,.981128,.0647107,0,.065023,.976015,.0638491,0,.0748717,.97097,.062993,0,.0852112,.964582,.0617927,0,.0960199,.957383,.0603626,0,.107279,.949969,.0588128,0,.118971,.941843,.0570274,0,.131084,.933624,.0551885,0,.143604,.924543,.053122,0,.156521,.914919,.0508897,0,.169825,.905773,.0486418,0,.18351,.896434,.0463364,0,.197569,.887195,.0440623,0,.211997,.877706,.0417799,0,.226789,.867719,.03945,0,.241944,.858587,.037243,0,.257458,.849317,.0350956,0,.273331,.839585,.0329852,0,.289563,.829856,.0310028,0,.306154,.819589,.0290953,0,.323108,.809714,.0272738,0,.340426,.79934,.0255631,0,.358113,.788224,.0239175,0,.376175,.776619,.0223831,0,.394616,.76521,.0209298,0,.413445,.753716,.0195786,0,.432671,.741564,.0183001,0,.452305,.729413,.0171259,0,.472358,.717146,.0159933,0,.492845,.70436,.0149495,0,.513783,.69219,.0139681,0,.535189,.680289,.0130577,0,.557087,.669611,.0122198,0,.5795,.659113,.0114174,0,.602459,.648148,.0106729,0,.625997,.636905,.00998997,0,.650154,.625154,.00934313,0,.674976,.613481,.00874839,0,.700518,.60154,.00818265,0,.726845,.58943,.00766889,0,.754032,.576828,.00717153,0,.782167,.564194,.00672696,0,.811344,.551501,.00630863,0,.841644,.538635,.00592177,0,.873016,.525724,.00554888,0,.904762,.513209,.00520225,0,.936508,.500457,.00488231,0,.968254,.48799,.00457153,0,1,1,.0810131,0,0,1,.0810133,0,0,.999997,.0810145,0,0,.999985,.08102,0,0,.999956,.0810347,0,195026e-10,.999893,.0810656,0,719316e-9,.999777,.0811205,0,.00259774,.999583,.081208,0,.00561807,.999281,.0813343,0,.00967472,.998813,.0814969,0,.0146627,.997597,.0815217,0,.0204902,.994379,.0808502,0,.0270802,.992744,.0806792,0,.0343674,.990745,.0804589,0,.0422974,.986646,.0796107,0,.0508242,.983611,.0790913,0,.0599087,.978869,.0780746,0,.0695175,.973475,.0768218,0,.0796223,.967845,.0754926,0,.0901983,.960778,.0737063,0,.101224,.953333,.0718052,0,.112682,.945274,.0695946,0,.124555,.936955,.0672492,0,.136831,.928319,.0647732,0,.149496,.919075,.0620947,0,.162542,.909114,.0591816,0,.175958,.900137,.0563917,0,.189739,.891069,.0535392,0,.203877,.882262,.0507642,0,.218368,.873232,.0479793,0,.233208,.864042,.045226,0,.248393,.855002,.0425413,0,.263923,.846569,.0400126,0,.279796,.837714,.0375269,0,.296012,.828918,.0352027,0,.312573,.819783,.0330011,0,.329479,.810129,.0308908,0,.346734,.800866,.0289112,0,.364342,.79093,.0270255,0,.382307,.780593,.0252758,0,.400637,.769511,.0236178,0,.419337,.758558,.0220652,0,.438418,.747632,.0206289,0,.457889,.736146,.0192873,0,.477761,.724093,.0180333,0,.49805,.71234,.0168264,0,.51877,.700201,.015746,0,.53994,.687949,.0147027,0,.561581,.676163,.0137512,0,.583718,.665001,.0128655,0,.60638,.65472,.0120366,0,.629599,.644213,.0112604,0,.653415,.633382,.0105413,0,.677874,.62212,.00986498,0,.70303,.610631,.00923308,0,.728948,.599078,.00864206,0,.755706,.587519,.00811784,0,.783396,.575505,.00761237,0,.812121,.563148,.00713949,0,.841989,.550828,.00668379,0,.873035,.538458,.00627715,0,.904762,.525905,.00588336,0,.936508,.513517,.00552687,0,.968254,.501395,.00519681,0,1,1,.0991506,0,0,1,.0991504,0,0,.999996,.0991515,0,0,.999984,.0991558,0,0,.999947,.0991672,0,114389e-9,.999874,.0991912,0,.00121503,.999739,.0992331,0,.00356108,.999514,.0992983,0,.00705578,.999159,.0993877,0,.011574,.998586,.0994837,0,.017003,.995731,.0988425,0,.0232484,.993384,.098276,0,.0302318,.991615,.0979269,0,.0378884,.989029,.0973432,0,.0461641,.985373,.0963539,0,.0550136,.981278,.0952306,0,.0643988,.975777,.0936233,0,.0742868,.970526,.0920219,0,.0846501,.963755,.0898912,0,.0954644,.956676,.0876064,0,.106709,.948099,.0847751,0,.118367,.939718,.0818638,0,.130423,.931305,.078857,0,.142862,.922342,.0756127,0,.155674,.912842,.0721473,0,.168849,.903304,.0686195,0,.182378,.89411,.0650589,0,.196255,.885512,.0616022,0,.210473,.877193,.0582434,0,.225027,.86877,.0548979,0,.239915,.860267,.0516095,0,.255132,.851915,.048468,0,.270678,.843912,.0454447,0,.286551,.83604,.0425612,0,.302751,.828245,.0398752,0,.31928,.820159,.0373198,0,.336138,.81167,.034916,0,.35333,.802659,.0326402,0,.370858,.793921,.0304901,0,.388728,.784713,.0284857,0,.406944,.774946,.0266186,0,.425515,.76448,.0248593,0,.444449,.753793,.0232114,0,.463756,.743506,.0217039,0,.483447,.732555,.0202841,0,.503535,.720965,.0189648,0,.524036,.709422,.0177189,0,.544968,.697756,.0165626,0,.56635,.685565,.015483,0,.588208,.673987,.0144892,0,.610569,.66244,.0135607,0,.633466,.651675,.0126956,0,.656936,.641598,.0118788,0,.681025,.63121,.0111261,0,.705788,.620514,.010437,0,.731289,.609366,.00978747,0,.757606,.598137,.00917257,0,.784834,.586966,.00859778,0,.813085,.575549,.00806803,0,.842485,.563797,.00757294,0,.87313,.551758,.00710592,0,.904762,.539894,.0066841,0,.936508,.527901,.00627901,0,.968254,.515819,.00590506,0,1,1,.120864,0,0,1,.120864,0,0,.999996,.120864,0,0,.99998,.120867,0,0,.99994,.120872,0,323781e-9,.999852,.120884,0,.00188693,.999693,.120903,0,.00473489,.999426,.120929,0,.00872704,.999002,.120955,0,.0137237,.998235,.120918,0,.0196068,.994608,.119764,0,.0262803,.992997,.119265,0,.0336657,.990968,.11863,0,.0416987,.987002,.117261,0,.0503261,.983524,.116009,0,.0595035,.97875,.114252,0,.0691935,.972652,.11193,0,.0793645,.966613,.109555,0,.0899894,.959275,.106612,0,.101045,.951272,.103375,0,.112512,.942323,.0996594,0,.124372,.933679,.0958841,0,.136611,.924822,.0919265,0,.149216,.915742,.0878061,0,.162176,.906348,.0834894,0,.175482,.896883,.079085,0,.189125,.88774,.0746745,0,.203098,.87986,.0705773,0,.217396,.871998,.0665005,0,.232015,.864325,.0625413,0,.24695,.856685,.0586781,0,.2622,.84925,.0550063,0,.277761,.841719,.0514727,0,.293634,.834755,.0481398,0,.309819,.827853,.0450172,0,.326315,.820888,.0420969,0,.343126,.813616,.0393702,0,.360254,.805767,.0367771,0,.377701,.797338,.0343274,0,.395474,.789122,.0320529,0,.413577,.780601,.0299485,0,.432018,.771424,.0279812,0,.450804,.761502,.0261054,0,.469944,.751166,.0243942,0,.489451,.741276,.0228087,0,.509337,.730898,.0213265,0,.529617,.719878,.0199307,0,.550307,.708379,.0186574,0,.571428,.697165,.0174446,0,.593003,.685554,.0163144,0,.615059,.673631,.015276,0,.637628,.662385,.0143003,0,.660746,.651059,.0134112,0,.68446,.640451,.0125794,0,.70882,.630536,.011793,0,.733893,.620316,.0110547,0,.759756,.609722,.0103668,0,.786505,.598804,.00973009,0,.814259,.587871,.00912812,0,.843157,.577121,.00858916,0,.87334,.566019,.00807333,0,.904762,.554664,.00759687,0,.936508,.543101,.00714759,0,.968254,.531558,.00673418,0,1,1,.146767,0,0,1,.146767,0,0,.999997,.146767,0,0,.999977,.146765,0,320658e-11,.999929,.146762,0,682576e-9,.999823,.146753,0,.00276402,.999633,.146735,0,.00614771,.999314,.146699,0,.0106613,.998796,.14662,0,.0161546,.997124,.146107,0,.0225063,.994062,.144857,0,.0296198,.992154,.144011,0,.037417,.989186,.142712,0,.0458348,.985279,.140926,0,.0548211,.980826,.13885,0,.0643326,.975056,.136168,0,.074333,.969005,.133217,0,.0847917,.961554,.12959,0,.0956828,.954206,.125886,0,.106984,.945046,.121335,0,.118675,.935678,.116492,0,.130741,.926748,.111635,0,.143166,.917764,.106625,0,.155939,.908358,.101325,0,.169049,.899219,.0960249,0,.182487,.890089,.0906527,0,.196245,.881488,.0853905,0,.210317,.874031,.0804177,0,.224697,.866932,.0756005,0,.23938,.859976,.0709019,0,.254364,.853375,.0664391,0,.269646,.846971,.0622012,0,.285223,.840483,.058129,0,.301096,.833969,.0542762,0,.317265,.82806,.0507042,0,.333729,.822128,.047368,0,.350491,.815989,.044272,0,.367554,.809336,.0413444,0,.38492,.802177,.038601,0,.402594,.79441,.0360227,0,.420582,.786573,.0336383,0,.438891,.778619,.0314321,0,.457527,.77,.029362,0,.476499,.760698,.0274102,0,.49582,.750932,.0256146,0,.5155,.740993,.023974,0,.535555,.731159,.0224182,0,.556,.720836,.0209889,0,.576855,.709913,.0196411,0,.598143,.698415,.0183824,0,.619888,.68745,.0172222,0,.642123,.676154,.0161509,0,.664883,.664383,.0151397,0,.688211,.6533,.0141873,0,.71216,.642072,.0133105,0,.736792,.631412,.0124932,0,.762186,.621622,.0117408,0,.788439,.611681,.0110358,0,.815672,.60142,.0103775,0,.844034,.59083,.00975623,0,.873699,.580254,.00918084,0,.904765,.569841,.00864721,0,.936508,.559224,.00815731,0,.968254,.548315,.00767924,0,1,1,.177563,0,0,1,.177563,0,0,.999994,.177562,0,0,.999972,.177555,0,664171e-10,.999914,.177536,0,.0012276,.999787,.177496,0,.00388025,.999556,.17742,0,.00783463,.999165,.177285,0,.0128953,.9985,.177037,0,.0189053,.995388,.175634,0,.025742,.993102,.174375,0,.033309,.990992,.173121,0,.0415298,.986932,.170896,0,.0503425,.982786,.16847,0,.0596964,.977592,.165455,0,.0695498,.971075,.161676,0,.0798676,.963967,.157458,0,.0906201,.956397,.152836,0,.101783,.947489,.147467,0,.113333,.937564,.14145,0,.125254,.928182,.135383,0,.137529,.919027,.129212,0,.150144,.909618,.12276,0,.163088,.900492,.116273,0,.176351,.891671,.1098,0,.189924,.883146,.103362,0,.203799,.875151,.0970799,0,.21797,.868338,.0911732,0,.232433,.862033,.0854966,0,.247182,.856107,.0800691,0,.262216,.850644,.0749618,0,.27753,.845261,.070079,0,.293124,.839885,.0654321,0,.308997,.834609,.0610975,0,.325149,.829083,.0569741,0,.341581,.82404,.0531736,0,.358294,.818968,.049665,0,.37529,.813496,.0463856,0,.392573,.807533,.0433217,0,.410148,.80099,.0404402,0,.428019,.793891,.0377578,0,.446192,.786281,.0352616,0,.464676,.778773,.0329577,0,.483478,.770737,.030808,0,.502608,.762094,.0287964,0,.522079,.752898,.0269254,0,.541905,.743306,.0251926,0,.5621,.733416,.023595,0,.582684,.723742,.0221155,0,.603677,.713542,.0207435,0,.625106,.702755,.019434,0,.646998,.691484,.0182046,0,.66939,.680531,.0170771,0,.692324,.66953,.0160339,0,.715849,.658126,.0150677,0,.740028,.646933,.0141551,0,.764937,.636107,.0133179,0,.790673,.625271,.0125284,0,.817358,.615225,.0117937,0,.84515,.605678,.0111181,0,.874244,.59583,.0104759,0,.904828,.585704,.00986672,0,.936508,.575413,.00929712,0,.968254,.565373,.00876713,0,1,1,.214058,0,0,.999999,.214058,0,0,.999994,.214055,0,0,.999966,.214039,0,259642e-9,.999893,.213998,0,.00200075,.999737,.21391,0,.00527775,.999449,.213745,0,.00983959,.99896,.213458,0,.0154755,.9979,.212855,0,.0220249,.994278,.210779,0,.0293654,.992254,.20926,0,.0374021,.98881,.206908,0,.0460604,.984715,.204009,0,.0552802,.979738,.200471,0,.0650127,.972884,.195813,0,.0752175,.965996,.190856,0,.0858612,.957974,.185077,0,.0969155,.949155,.17868,0,.108356,.939288,.171513,0,.120163,.928996,.163838,0,.132319,.919563,.156246,0,.144808,.910004,.148359,0,.157618,.900791,.140417,0,.170737,.892135,.132569,0,.184155,.883803,.124741,0,.197866,.876034,.117091,0,.211861,.869219,.109835,0,.226134,.863062,.102859,0,.240682,.857795,.0962928,0,.255499,.853009,.0900725,0,.270583,.848603,.0842101,0,.285931,.844335,.0786527,0,.301542,.840208,.0734397,0,.317415,.836035,.0685334,0,.33355,.83172,.0639275,0,.349948,.827135,.0595909,0,.36661,.822797,.0556204,0,.383539,.818387,.0519394,0,.400738,.813565,.0485317,0,.41821,.808142,.0453138,0,.435961,.802212,.0423354,0,.453997,.79573,.0395553,0,.472324,.788741,.036988,0,.490951,.781093,.0345688,0,.509887,.773597,.0323297,0,.529144,.765622,.0302719,0,.548735,.757083,.0283477,0,.568674,.747992,.0265562,0,.588979,.738591,.0248844,0,.609671,.728719,.0233342,0,.630773,.719146,.0219081,0,.652314,.709165,.0205711,0,.674328,.69875,.0193248,0,.696854,.687884,.0181582,0,.719942,.676818,.0170746,0,.743651,.666247,.0160718,0,.768057,.655284,.0151262,0,.793253,.64401,.0142561,0,.819363,.633353,.0134327,0,.846547,.622674,.012653,0,.875017,.612265,.0119354,0,.905021,.602455,.0112533,0,.936508,.593147,.0106234,0,.968254,.583592,.0100213,0,1,1,.25717,0,0,1,.25717,0,0,.999992,.257164,0,0,.999958,.257135,0,641715e-9,.999864,.25706,0,.00305314,.999666,.256897,0,.00700975,.999302,.256596,0,.0122194,.998663,.25607,0,.0184622,.995607,.254123,0,.0255773,.993094,.252081,0,.0334439,.9907,.249867,0,.0419696,.98594,.246118,0,.0510823,.981214,.242049,0,.0607242,.974966,.236869,0,.0708486,.967589,.230724,0,.081417,.95915,.223635,0,.0923974,.950257,.21596,0,.103763,.940165,.207296,0,.115491,.929396,.197901,0,.127562,.919288,.188437,0,.13996,.909428,.178762,0,.15267,.900105,.169072,0,.165679,.891418,.159478,0,.178979,.883347,.15002,0,.192558,.875992,.140813,0,.20641,.869466,.13196,0,.220529,.863699,.123501,0,.234907,.858553,.115436,0,.249542,.854379,.107901,0,.264428,.850894,.10088,0,.279564,.847632,.0942296,0,.294947,.844571,.0879861,0,.310575,.84163,.0821534,0,.326448,.838542,.0766409,0,.342566,.835412,.0715322,0,.358929,.831899,.0666883,0,.37554,.828177,.0622175,0,.392399,.82416,.0580452,0,.409511,.820393,.054267,0,.426878,.816068,.0507172,0,.444506,.811201,.0474041,0,.4624,.805785,.0443174,0,.480566,.799878,.0414562,0,.499013,.793469,.0388147,0,.517749,.786473,.0363453,0,.536785,.778874,.0340225,0,.556134,.771277,.0318599,0,.575809,.763426,.0298859,0,.595827,.755044,.0280357,0,.616207,.746161,.0262979,0,.636973,.737124,.0247295,0,.65815,.72761,.0232514,0,.679772,.717822,.0218755,0,.701876,.708279,.0205942,0,.724509,.698333,.0193947,0,.74773,.68802,.0182717,0,.771609,.677321,.0172044,0,.79624,.666504,.0162122,0,.821743,.656184,.0152924,0,.84828,.64556,.0144326,0,.876069,.634636,.0136157,0,.905404,.624124,.0128612,0,.936508,.613914,.0121435,0,.968254,.603589,.0114887,0,1,1,.307946,0,0,.999999,.307945,0,0,.999988,.307934,0,204479e-10,.999944,.307886,0,.00127833,.999824,.307756,0,.00445047,.999565,.30748,0,.00914673,.999085,.306966,0,.0150498,.998103,.306004,0,.0219367,.994249,.303028,0,.0296485,.991807,.300435,0,.038068,.987773,.296554,0,.0471062,.982673,.2916,0,.0566942,.976623,.285641,0,.0667768,.968757,.27815,0,.0773099,.959849,.269529,0,.088257,.950663,.260248,0,.0995879,.940129,.249704,0,.111277,.92895,.238291,0,.123304,.917996,.226501,0,.13565,.907813,.214669,0,.148299,.898305,.202835,0,.161237,.889626,.191158,0,.174455,.88175,.179695,0,.187941,.874715,.168548,0,.201687,.868746,.15792,0,.215687,.863703,.147807,0,.229933,.859315,.138149,0,.24442,.855538,.128993,0,.259145,.852428,.120414,0,.274103,.850168,.112498,0,.289293,.848132,.105054,0,.304711,.846291,.0981087,0,.320357,.844431,.0915942,0,.33623,.842493,.0855056,0,.35233,.840368,.0798204,0,.368658,.83798,.0745097,0,.385214,.83523,.0695424,0,.402002,.832091,.0649092,0,.419023,.828667,.0606291,0,.436282,.824805,.0566523,0,.453782,.820988,.0530229,0,.471529,.816635,.0496364,0,.489528,.811725,.0464658,0,.507788,.806316,.0435082,0,.526317,.800469,.0407873,0,.545124,.794107,.038255,0,.564221,.787218,.0358825,0,.583621,.779872,.0336785,0,.603341,.772097,.0316379,0,.623397,.764484,.0297379,0,.643812,.756428,.0279581,0,.664611,.748022,.0263153,0,.685824,.739268,.0247799,0,.707488,.73024,.0233385,0,.729646,.720893,.0220035,0,.752354,.71119,.0207555,0,.77568,.701791,.0195843,0,.799715,.692184,.0184891,0,.824574,.682258,.0174541,0,.850417,.67206,.0164873,0,.877466,.661717,.0155959,0,.90604,.651462,.0147519,0,.936528,.641467,.0139727,0,.968254,.631229,.0132363,0,1,1,.367573,0,0,.999999,.367571,0,0,.999984,.367553,0,183382e-9,.999925,.367473,0,.00225254,.999759,.367259,0,.00628165,.99941,.366801,0,.0117858,.998739,.365946,0,.0184359,.995529,.363191,0,.0260114,.992875,.360171,0,.0343581,.989135,.355981,0,.0433637,.984166,.350401,0,.0529438,.977871,.343348,0,.0630334,.96951,.334341,0,.0735805,.959964,.323862,0,.0845437,.950162,.312521,0,.095889,.938882,.299577,0,.107588,.926992,.285573,0,.119617,.915589,.271212,0,.131957,.904791,.256611,0,.144591,.895177,.242224,0,.157503,.886403,.227952,0,.170682,.878957,.214192,0,.184117,.872418,.200795,0,.197799,.867029,.188015,0,.21172,.862835,.175975,0,.225873,.859411,.164526,0,.240253,.856655,.153693,0,.254854,.854519,.14352,0,.269673,.852828,.13397,0,.284707,.851412,.124984,0,.299953,.850609,.116748,0,.315408,.849855,.10905,0,.331073,.849017,.101839,0,.346946,.848079,.0951359,0,.363028,.846911,.0888774,0,.379318,.845445,.0830375,0,.395818,.84362,.0775844,0,.41253,.841411,.0725054,0,.429457,.838768,.0677691,0,.446602,.835801,.0634016,0,.463968,.832341,.0593095,0,.481561,.828424,.0555121,0,.499386,.824312,.052024,0,.51745,.819918,.0487865,0,.535761,.815072,.0457801,0,.554328,.809863,.0430184,0,.573162,.804164,.0404245,0,.592275,.798034,.0380146,0,.611681,.791436,.0357436,0,.631398,.784498,.0336475,0,.651445,.777125,.0316666,0,.671845,.769365,.0298122,0,.692628,.761579,.0281001,0,.713827,.753746,.0265049,0,.735484,.745573,.0250067,0,.75765,.737083,.0236026,0,.78039,.728545,.0223302,0,.803789,.719691,.0211243,0,.82796,.710569,.0199983,0,.853056,.701216,.0189569,0,.879298,.692094,.0179702,0,.907014,.682909,.0170418,0,.936691,.673509,.0161732,0,.968254,.663863,.0153406,0,1,1,.437395,0,0,.999998,.437394,0,0,.99998,.437363,0,616704e-9,.999891,.437232,0,.00367925,.999656,.436877,0,.00867446,.999148,.436121,0,.0150679,.997959,.434564,0,.022531,.993464,.430134,0,.0308507,.990606,.426077,0,.0398805,.985027,.419397,0,.0495148,.978491,.41118,0,.0596749,.969643,.40048,0,.0703001,.959189,.38769,0,.0813427,.948223,.373575,0,.0927641,.935955,.357622,0,.104533,.923237,.34043,0,.116624,.911074,.322735,0,.129015,.899724,.30479,0,.141687,.890189,.287392,0,.154626,.881796,.270248,0,.167818,.874781,.253659,0,.181252,.869166,.237786,0,.194918,.864725,.222618,0,.208807,.861565,.208356,0,.222913,.859284,.194867,0,.237229,.857677,.18212,0,.25175,.856714,.17018,0,.266473,.856155,.158969,0,.281392,.8558,.148413,0,.296505,.855672,.138578,0,.311811,.855538,.129345,0,.327306,.855689,.120861,0,.342991,.855767,.112969,0,.358864,.855618,.105593,0,.374925,.85525,.0987451,0,.391176,.854583,.0923727,0,.407616,.853534,.0864143,0,.424249,.852061,.0808338,0,.441076,.850253,.0756771,0,.4581,.848004,.0708612,0,.475324,.845333,.0663784,0,.492754,.842376,.0622631,0,.510394,.838956,.0584112,0,.528251,.835121,.0548328,0,.546331,.830842,.0514838,0,.564644,.826212,.048355,0,.583198,.821522,.0454714,0,.602005,.816551,.0428263,0,.621078,.811211,.0403612,0,.640434,.805479,.038039,0,.660089,.799409,.0358739,0,.680066,.79306,.0338727,0,.70039,.786395,.0319985,0,.721094,.779416,.030241,0,.742215,.77214,.0285951,0,.7638,.764636,.0270747,0,.785912,.756836,.0256354,0,.808628,.749315,.0243027,0,.832055,.741561,.0230497,0,.856338,.733589,.0218801,0,.88169,.725479,.020784,0,.908441,.717255,.0197702,0,.937125,.708829,.0188168,0,.968254,.700191,.0179113,0,1,1,.518937,0,0,.999998,.518933,0,0,.999967,.518883,0,.00147741,.999832,.51866,0,.00573221,.999466,.518057,0,.011826,.998644,.516752,0,.0192116,.994458,.512347,0,.027573,.991223,.507675,0,.0367099,.985515,.500188,0,.046487,.978308,.490408,0,.0568071,.968359,.477357,0,.0675984,.95682,.461752,0,.0788059,.943929,.443796,0,.090386,.930224,.423893,0,.102304,.916514,.402682,0,.114532,.903653,.380914,0,.127047,.892315,.359212,0,.139828,.882942,.338102,0,.152861,.875438,.31773,0,.16613,.869642,.298186,0,.179624,.865304,.279491,0,.193332,.862382,.261804,0,.207247,.860666,.245146,0,.22136,.859788,.229406,0,.235666,.859608,.214605,0,.250158,.859912,.200691,0,.264832,.86053,.187623,0,.279684,.861368,.17539,0,.294711,.862237,.163901,0,.309911,.863127,.153175,0,.32528,.863923,.143147,0,.340819,.864567,.133781,0,.356524,.865013,.125042,0,.372397,.86539,.116952,0,.388438,.865591,.109476,0,.404645,.865517,.102542,0,.421022,.865084,.0960688,0,.437569,.864309,.0900499,0,.454287,.863151,.0844328,0,.471181,.861649,.0792218,0,.488253,.859742,.0743482,0,.505507,.857446,.0697963,0,.522947,.854757,.0655364,0,.54058,.851783,.061608,0,.558412,.848516,.0579701,0,.576449,.844897,.0545742,0,.594701,.840956,.0514167,0,.613178,.836676,.0484598,0,.631892,.832075,.0456934,0,.650856,.827191,.0431178,0,.670088,.822295,.0407718,0,.689606,.817294,.0386032,0,.709434,.812013,.0365675,0,.7296,.806465,.0346547,0,.750138,.800691,.0328717,0,.771093,.794709,.031211,0,.792519,.788493,.0296504,0,.814488,.782049,.0281782,0,.837097,.775403,.0267965,0,.860481,.76857,.0255002,0,.884842,.761536,.0242759,0,.910494,.754303,.0231142,0,.937985,.74692,.0220305,0,.968254,.739745,.0210192,0,1,1,.613914,0,0,.999996,.613907,0,963597e-10,.999942,.613814,0,.00301247,.999704,.613407,0,.00870385,.999046,.612302,0,.0160714,.995516,.608266,0,.0245899,.991726,.602863,0,.0339681,.985157,.593956,0,.0440254,.97642,.581748,0,.0546409,.964404,.565183,0,.0657284,.950601,.545273,0,.0772246,.935158,.522129,0,.0890812,.919364,.496782,0,.10126,.904754,.470571,0,.113731,.89176,.444037,0,.126469,.881492,.418322,0,.139454,.873656,.393522,0,.15267,.868053,.369795,0,.166101,.864336,.347171,0,.179736,.862259,.325737,0,.193565,.861556,.305532,0,.207578,.861776,.286416,0,.221769,.862661,.268355,0,.23613,.864015,.251334,0,.250656,.865711,.235352,0,.265343,.867519,.220302,0,.280187,.869351,.206161,0,.295183,.871144,.192908,0,.31033,.872839,.180505,0,.325624,.874307,.168848,0,.341065,.875667,.158021,0,.35665,.876758,.147877,0,.37238,.87764,.138441,0,.388253,.878237,.129627,0,.404269,.878563,.121415,0,.42043,.878572,.113741,0,.436735,.87842,.106652,0,.453187,.878057,.100097,0,.469786,.877413,.0940128,0,.486536,.87646,.0883462,0,.503439,.875233,.0830924,0,.520498,.8737,.0781975,0,.537717,.871873,.07364,0,.555102,.86978,.0694103,0,.572657,.867405,.0654696,0,.59039,.864751,.0617914,0,.608307,.861818,.0583491,0,.626419,.858645,.0551443,0,.644733,.855307,.0521894,0,.663264,.851736,.0494334,0,.682025,.847927,.0468504,0,.701032,.843888,.0444261,0,.720308,.839629,.0421497,0,.739875,.835158,.0400082,0,.759764,.830509,.0380076,0,.780014,.825714,.0361488,0,.800673,.820729,.0343956,0,.821803,.815751,.0327781,0,.843492,.810752,.031275,0,.86586,.805587,.0298542,0,.889087,.800317,.0285397,0,.913466,.79489,.0272948,0,.93952,.789314,.0261139,0,.96835,.783593,.0249938,0,1,1,.724258,0,0,.999992,.724243,0,726889e-9,.99987,.724044,0,.00569574,.999336,.72317,0,.0131702,.996271,.719432,0,.0220738,.991159,.712576,0,.0319405,.982465,.700927,0,.0425202,.97049,.684297,0,.0536599,.953973,.661244,0,.065258,.935546,.633804,0,.0772427,.916596,.603071,0,.0895616,.899353,.57105,0,.102175,.885216,.539206,0,.11505,.875076,.508714,0,.128164,.868334,.479571,0,.141495,.864414,.451796,0,.155026,.862678,.425328,0,.168745,.862835,.400352,0,.182639,.864067,.376532,0,.196699,.866086,.35391,0,.210915,.868557,.332424,0,.225282,.871271,.312053,0,.239792,.874058,.292764,0,.25444,.8768,.27453,0,.269223,.87939,.257297,0,.284135,.8819,.24114,0,.299174,.884187,.225934,0,.314337,.886262,.211669,0,.329622,.888119,.198311,0,.345026,.889709,.185783,0,.360549,.891054,.174063,0,.376189,.892196,.163143,0,.391946,.893101,.152952,0,.407819,.893803,.143475,0,.423808,.894277,.134647,0,.439914,.894532,.126434,0,.456137,.894576,.1188,0,.472479,.894393,.111694,0,.48894,.893976,.105069,0,.505523,.893346,.0989077,0,.52223,.892502,.0931724,0,.539064,.891441,.0878276,0,.556028,.890276,.082903,0,.573125,.888972,.0783505,0,.590361,.887469,.0741083,0,.607741,.885785,.0701633,0,.62527,.883914,.0664835,0,.642957,.881872,.0630567,0,.660809,.879651,.0598527,0,.678836,.877267,.0568615,0,.69705,.874717,.05406,0,.715465,.872012,.0514378,0,.734098,.869157,.0489805,0,.752968,.866155,.0466727,0,.772101,.863014,.0445056,0,.791529,.859748,.0424733,0,.81129,.856416,.0405957,0,.831438,.852958,.0388273,0,.852044,.849382,.0371619,0,.87321,.845694,.0355959,0,.89509,.841893,.0341155,0,.917932,.837981,.0327141,0,.942204,.833963,.0313856,0,.968981,.829847,.0301275,0,1,1,.85214,0,0,.999969,.852095,0,.00279627,.999483,.851408,0,.0107635,.994545,.84579,0,.0206454,.986188,.835231,0,.0315756,.969847,.814687,0,.0432021,.945951,.783735,0,.0553396,.91917,.746074,0,.0678766,.895488,.706938,0,.0807395,.878232,.669534,0,.0938767,.868252,.635168,0,.10725,.863873,.603069,0,.120832,.863369,.572514,0,.134598,.86545,.543169,0,.148533,.868803,.514578,0,.16262,.872794,.486762,0,.176849,.87702,.459811,0,.19121,.881054,.433654,0,.205694,.884974,.408574,0,.220294,.888587,.384525,0,.235005,.891877,.36156,0,.24982,.894793,.339661,0,.264737,.89743,.318913,0,.279751,.899796,.299302,0,.294859,.901943,.280843,0,.310058,.903858,.263481,0,.325346,.905574,.247197,0,.340721,.907069,.231915,0,.356181,.908379,.217614,0,.371725,.90952,.20425,0,.387353,.910483,.191758,0,.403063,.91128,.180092,0,.418854,.911936,.169222,0,.434727,.912454,.159098,0,.450682,.912835,.149668,0,.466718,.913078,.140884,0,.482837,.913192,.132709,0,.499038,.913175,.125095,0,.515324,.91304,.118012,0,.531695,.912781,.111417,0,.548153,.91241,.105281,0,.5647,.911924,.0995691,0,.581338,.911331,.0942531,0,.59807,.910637,.0893076,0,.6149,.90984,.0846998,0,.63183,.908941,.0804044,0,.648865,.907944,.0763984,0,.666011,.906857,.0726638,0,.683273,.90568,.0691783,0,.700659,.904416,.0659222,0,.718176,.903067,.0628782,0,.735834,.901637,.0600307,0,.753646,.900128,.0573647,0,.771625,.898544,.0548668,0,.78979,.89689,.052527,0,.808162,.895165,.0503306,0,.826771,.893371,.0482668,0,.845654,.891572,.0463605,0,.864863,.889763,.0445998,0,.884472,.887894,.0429451,0,.904592,.885967,.0413884,0,.925407,.883984,.0399225,0,.947271,.881945,.0385405,0,.97105,.879854,.0372362,0,1,.999804,.995833,0,0,.938155,.933611,0,.0158731,.864755,.854311,0,.0317461,.888594,.865264,0,.0476191,.905575,.863922,0,.0634921,.915125,.850558,0,.0793651,.920665,.829254,0,.0952381,.924073,.802578,0,.111111,.926304,.772211,0,.126984,.927829,.739366,0,.142857,.928924,.705033,0,.15873,.92973,.670019,0,.174603,.930339,.634993,0,.190476,.930811,.600485,0,.206349,.931191,.566897,0,.222222,.93149,.534485,0,.238095,.931737,.503429,0,.253968,.931939,.473811,0,.269841,.932108,.445668,0,.285714,.93225,.418993,0,.301587,.932371,.393762,0,.31746,.932474,.369939,0,.333333,.932562,.347479,0,.349206,.932638,.326336,0,.365079,.932703,.306462,0,.380952,.93276,.287805,0,.396825,.932809,.270313,0,.412698,.932851,.253933,0,.428571,.932887,.23861,0,.444444,.932917,.224289,0,.460317,.932943,.210917,0,.47619,.932965,.19844,0,.492063,.932982,.186807,0,.507937,.932995,.175966,0,.52381,.933005,.165869,0,.539683,.933011,.156468,0,.555556,.933013,.147719,0,.571429,.933013,.139579,0,.587302,.93301,.132007,0,.603175,.933004,.124965,0,.619048,.932994,.118416,0,.634921,.932982,.112326,0,.650794,.932968,.106663,0,.666667,.93295,.101397,0,.68254,.932931,.0964993,0,.698413,.932908,.0919438,0,.714286,.932883,.0877057,0,.730159,.932856,.0837623,0,.746032,.932827,.0800921,0,.761905,.932796,.0766754,0,.777778,.932762,.0734936,0,.793651,.932727,.0705296,0,.809524,.932689,.0677676,0,.825397,.93265,.0651929,0,.84127,.932609,.0627917,0,.857143,.932565,.0605515,0,.873016,.932521,.0584606,0,.888889,.932474,.0565082,0,.904762,.932427,.0546841,0,.920635,.932377,.0529793,0,.936508,.932326,.0513851,0,.952381,.932274,.0498936,0,.968254,.93222,.0484975,0,.984127,.932164,.0471899,0,1],n=new Float32Array(e),i=new Float32Array(t);r.UniformsLib.LTC_FLOAT_1=new r.DataTexture(n,64,64,r.RGBAFormat,r.FloatType,r.UVMapping,r.ClampToEdgeWrapping,r.ClampToEdgeWrapping,r.LinearFilter,r.NearestFilter,1),r.UniformsLib.LTC_FLOAT_2=new r.DataTexture(i,64,64,r.RGBAFormat,r.FloatType,r.UVMapping,r.ClampToEdgeWrapping,r.ClampToEdgeWrapping,r.LinearFilter,r.NearestFilter,1),r.UniformsLib.LTC_FLOAT_1.needsUpdate=!0,r.UniformsLib.LTC_FLOAT_2.needsUpdate=!0;const s=new Uint16Array(e.length);e.forEach((function(e,t){s[t]=r.DataUtils.toHalfFloat(e)}));const a=new Uint16Array(t.length);t.forEach((function(e,t){a[t]=r.DataUtils.toHalfFloat(e)})),r.UniformsLib.LTC_HALF_1=new r.DataTexture(s,64,64,r.RGBAFormat,r.HalfFloatType,r.UVMapping,r.ClampToEdgeWrapping,r.ClampToEdgeWrapping,r.LinearFilter,r.NearestFilter,1),r.UniformsLib.LTC_HALF_2=new r.DataTexture(a,64,64,r.RGBAFormat,r.HalfFloatType,r.UVMapping,r.ClampToEdgeWrapping,r.ClampToEdgeWrapping,r.LinearFilter,r.NearestFilter,1),r.UniformsLib.LTC_HALF_1.needsUpdate=!0,r.UniformsLib.LTC_HALF_2.needsUpdate=!0}}},27575:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(39867),i=n(13235),s=n(45051);class a extends r.LineSegments2{constructor(e=new i.LineGeometry,t=new s.LineMaterial({color:16777215*Math.random()})){super(e,t),this.isLine2=!0,this.type="Line2"}}t.Line2=a},13235:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(5440);class i extends r.LineSegmentsGeometry{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(e){const t=e.length-3,n=new Float32Array(2*t);for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.ShaderMaterial{constructor(e){super({type:"LineMaterial",uniforms:r.UniformsUtils.clone(r.UniformsUtils.merge([r.UniformsLib.common,r.UniformsLib.fog,{worldUnits:{value:1},linewidth:{value:1},resolution:{value:new r.Vector2(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}}])),vertexShader:"\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tuniform float linewidth;\n\t\t\t\tuniform vec2 resolution;\n\n\t\t\t\tattribute vec3 instanceStart;\n\t\t\t\tattribute vec3 instanceEnd;\n\n\t\t\t\tattribute vec3 instanceColorStart;\n\t\t\t\tattribute vec3 instanceColorEnd;\n\n\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\tvarying vec4 worldPos;\n\t\t\t\t\tvarying vec3 worldStart;\n\t\t\t\t\tvarying vec3 worldEnd;\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#else\n\n\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\tuniform float dashScale;\n\t\t\t\t\tattribute float instanceDistanceStart;\n\t\t\t\t\tattribute float instanceDistanceEnd;\n\t\t\t\t\tvarying float vLineDistance;\n\n\t\t\t\t#endif\n\n\t\t\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t\t\t// conservative estimate of the near plane\n\t\t\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#ifdef USE_COLOR\n\n\t\t\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\t\t\tvUv = uv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t\t\t// camera space\n\t\t\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\tworldStart = start.xyz;\n\t\t\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tvUv = uv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\t\t\tif ( perspective ) {\n\n\t\t\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// clip space\n\t\t\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t\t\t// ndc space\n\t\t\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t\t\t// direction\n\t\t\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t\t\t// account for clip-space aspect ratio\n\t\t\t\t\tdir.x *= aspect;\n\t\t\t\t\tdir = normalize( dir );\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\t// get the offset direction as perpendicular to the view vector\n\t\t\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\t\t\tvec3 offset;\n\t\t\t\t\t\tif ( position.y < 0.5 ) {\n\n\t\t\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// sign flip\n\t\t\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t// endcaps\n\t\t\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// adjust for linewidth\n\t\t\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t\t\t// set the world position\n\t\t\t\t\t\tworldPos = ( position.y < 0.5 ) ? start : end;\n\t\t\t\t\t\tworldPos.xyz += offset;\n\n\t\t\t\t\t\t// project the worldpos\n\t\t\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t\t\t// segments overlap neatly\n\t\t\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\t\t\tdir.x /= aspect;\n\t\t\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t\t\t// sign flip\n\t\t\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t\t\t// endcaps\n\t\t\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\t\t\toffset += - dir;\n\n\t\t\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\t\t\toffset += dir;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// adjust for linewidth\n\t\t\t\t\t\toffset *= linewidth;\n\n\t\t\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t\t\t// select end\n\t\t\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t\t\t// back to clip space\n\t\t\t\t\t\toffset *= clip.w;\n\n\t\t\t\t\t\tclip.xy += offset;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tgl_Position = clip;\n\n\t\t\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:`\n\t\t\t\tuniform vec3 diffuse;\n\t\t\t\tuniform float opacity;\n\t\t\t\tuniform float linewidth;\n\n\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\tuniform float dashOffset;\n\t\t\t\t\tuniform float dashSize;\n\t\t\t\t\tuniform float gapSize;\n\n\t\t\t\t#endif\n\n\t\t\t\tvarying float vLineDistance;\n\n\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\tvarying vec4 worldPos;\n\t\t\t\t\tvarying vec3 worldStart;\n\t\t\t\t\tvarying vec3 worldEnd;\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#else\n\n\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#endif\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\t\t\tfloat mua;\n\t\t\t\t\tfloat mub;\n\n\t\t\t\t\tvec3 p13 = p1 - p3;\n\t\t\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\t\t\tmua = numer / denom;\n\t\t\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\t\t\treturn vec2( mua, mub );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfloat alpha = opacity;\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\t\t\tfloat len = length( delta );\n\t\t\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include <${parseInt(r.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,clipping:!0}),this.isLineMaterial=!0,Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(e){!0===e?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashed:{enumerable:!0,get:function(){return Boolean("USE_DASH"in this.defines)},set(e){Boolean(e)!==Boolean("USE_DASH"in this.defines)&&(this.needsUpdate=!0),!0===e?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},alphaToCoverage:{enumerable:!0,get:function(){return Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)},set:function(e){Boolean(e)!==Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)&&(this.needsUpdate=!0),!0===e?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}}t.LineMaterial=i},39867:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(5440),s=n(45051),a=new r.Vector3,o=new r.Vector3,l=new r.Vector4,c=new r.Vector4,h=new r.Vector4,u=new r.Vector3,d=new r.Matrix4,p=new r.Line3,f=new r.Vector3,m=new r.Box3,g=new r.Sphere,A=new r.Vector4;let v,y,x,b;function E(e,t,n){return A.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),A.multiplyScalar(1/A.w),A.x=b/n.width,A.y=b/n.height,A.applyMatrix4(e.projectionMatrixInverse),A.multiplyScalar(1/A.w),Math.abs(Math.max(A.x,A.y))}class _ extends r.Mesh{constructor(e=new i.LineSegmentsGeometry,t=new s.LineMaterial({color:16777215*Math.random()})){super(e,t),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,t=e.attributes.instanceStart,n=e.attributes.instanceEnd,i=new Float32Array(2*t.count);for(let r=0,l=0,c=t.count;rA&&c.z>A)continue;if(l.z>A){const e=l.z-c.z,t=(l.z-A)/e;l.lerp(c,t)}else if(c.z>A){const e=c.z-l.z,t=(c.z-A)/e;c.lerp(l,t)}l.applyMatrix4(i),c.applyMatrix4(i),l.multiplyScalar(1/l.w),c.multiplyScalar(1/c.w),l.x*=s.x/2,l.y*=s.y/2,c.x*=s.x/2,c.y*=s.y/2,p.start.copy(l),p.start.z=0,p.end.copy(c),p.end.z=0;const t=p.closestPointToPointParameter(u,!0);p.at(t,f);const o=r.MathUtils.lerp(l.z,c.z,t),y=o>=-1&&o<=1,x=u.distanceTo(f)<.5*b;if(y&&x){p.start.fromBufferAttribute(m,h),p.end.fromBufferAttribute(g,h),p.start.applyMatrix4(a),p.end.applyMatrix4(a);const t=new r.Vector3,i=new r.Vector3;v.distanceSqToSegment(p.start,p.end,i,t),n.push({point:i,pointOnLine:t,distance:v.origin.distanceTo(i),object:e,face:null,faceIndex:h,uv:null,uv2:null})}}}(this,i,t))}}}t.LineSegments2=_},5440:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Box3,s=new r.Vector3;class a extends r.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new r.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new r.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(e){const t=this.attributes.instanceStart,n=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),n.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const n=new r.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new r.InterleavedBufferAttribute(n,3,0)),this.setAttribute("instanceEnd",new r.InterleavedBufferAttribute(n,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const n=new r.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceColorStart",new r.InterleavedBufferAttribute(n,3,0)),this.setAttribute("instanceColorEnd",new r.InterleavedBufferAttribute(n,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new r.WireframeGeometry(e.geometry)),this}fromLineSegments(e){const t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new r.Box3);const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;void 0!==e&&void 0!==t&&(this.boundingBox.setFromBufferAttribute(e),i.setFromBufferAttribute(t),this.boundingBox.union(i))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new r.Sphere),null===this.boundingBox&&this.computeBoundingBox();const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){const n=this.boundingSphere.center;this.boundingBox.getCenter(n);let r=0;for(let i=0,a=e.count;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(5440),s=n(45051),a=new r.Vector3,o=new r.Vector3;class l extends r.Mesh{constructor(e=new i.LineSegmentsGeometry,t=new s.LineMaterial({color:16777215*Math.random()})){super(e,t),this.isWireframe=!0,this.type="Wireframe"}computeLineDistances(){const e=this.geometry,t=e.attributes.instanceStart,n=e.attributes.instanceEnd,i=new Float32Array(2*t.count);for(let r=0,l=0,c=t.count;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(5440);class s extends i.LineSegmentsGeometry{constructor(e){super(),this.isWireframeGeometry2=!0,this.type="WireframeGeometry2",this.fromWireframeGeometry(new r.WireframeGeometry(e))}}t.WireframeGeometry2=s},37425:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new WeakMap;class s extends r.Loader{constructor(e){super(e),this.libraryPath="",this.libraryPending=null,this.libraryBinary=null,this.libraryConfig={},this.url="",this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.workerConfig={},this.materials=[]}setLibraryPath(e){return this.libraryPath=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,n,s){const a=new r.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),this.url=e,a.load(e,(n=>{if(i.has(n)){return i.get(n).promise.then(t).catch(s)}this.decodeObjects(n,e).then(t).catch(s)}),n,s)}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}decodeObjects(e,t){let n,r;const s=e.byteLength,a=this._getWorker(s).then((t=>(n=t,r=this.workerNextTaskID++,new Promise(((t,i)=>{n._callbacks[r]={resolve:t,reject:i},n.postMessage({type:"decode",id:r,buffer:e},[e])}))))).then((e=>this._createGeometry(e.data)));return a.catch((()=>!0)).then((()=>{n&&r&&this._releaseTask(n,r)})),i.set(e,{url:t,promise:a}),a}parse(e,t,n){this.decodeObjects(e,"").then(t).catch(n)}_compareMaterials(e){const t={};t.name=e.name,t.color={},t.color.r=e.color.r,t.color.g=e.color.g,t.color.b=e.color.b,t.type=e.type;for(let n=0;n0,opacity:1-e.transparency}),s=new r.TextureLoader;for(let r=0;r=0){const e=o[c.materialIndex];let t=this._createMaterial(e);t=this._compareMaterials(t),r=this._createObject(l,t)}else{const e=this._createMaterial();r=this._createObject(l,e)}if(void 0===r)continue;const a=e.layers[c.layerIndex];r.visible=!a||e.layers[c.layerIndex].visible,c.isInstanceDefinitionObject?n.push(r):t.add(r)}}for(let l=0;l{e.load("rhino3dm.js",t,void 0,n)})),n=new r.FileLoader(this.manager);n.setPath(this.libraryPath),n.setResponseType("arraybuffer");const i=new Promise(((e,t)=>{n.load("rhino3dm.wasm",e,void 0,t)}));this.libraryPending=Promise.all([t,i]).then((([e,t])=>{this.libraryConfig.wasmBinary=t;const n=a.toString(),r=["/* rhino3dm.js */",e,"/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r]))}))}return this.libraryPending}_getWorker(e){return this._initLibrary().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));const t=this.workerPool[this.workerPool.length-1];return t._taskLoad+=e,t}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}dispose(){for(let e=0;e0&&(u.compact(),o=u.toThreejsJSON(),g.delete()),u.delete();break;case n.ObjectType.Extrusion:u=r.getMesh(n.MeshType.Any),u&&(o=u.toThreejsJSON(),u.delete());break;case n.ObjectType.TextDot:case n.ObjectType.Light:o=i(r);break;case n.ObjectType.InstanceReference:o=i(r),o.xform=i(r.xform),o.xform.array=r.xform.toFloatArray(!0);break;case n.ObjectType.SubD:r.subdivide(3),u=n.Mesh.createFromSubDControlNet(r),u&&(o=u.toThreejsJSON(),u.delete());break;default:console.warn(`THREE.3DMLoader: TODO: Implement ${d.constructor.name}`)}if(o)return l=i(a),l.geometry=i(r),a.groupCount>0&&(l.groupIds=a.getGroupList()),a.userStringCount>0&&(l.userStrings=a.getUserStrings()),r.userStringCount>0&&(l.geometry.userStrings=r.getUserStrings()),l.drawColor=a.drawColor(t),d=d.constructor.name,d=d.substring(11,d.length),{geometry:o,attributes:l,objectType:d};console.warn(`THREE.3DMLoader: ${d.constructor.name} has no associated mesh geometry.`)}function i(e){const t={};for(const n in e){const r=e[n];"function"!=typeof r&&("object"==typeof r&&null!==r&&r.hasOwnProperty("constructor")?t[n]={name:r.constructor.name,value:r.value}:t[n]=r)}return t}function s(e,t){let r=t,i=[];const a=[];if(e instanceof n.LineCurve)return[e.pointAtStart,e.pointAtEnd];if(e instanceof n.PolylineCurve){r=e.pointCount;for(let t=0;te.pointAt(t))),i}onmessage=function(s){const a=s.data;switch(a.type){case"init":t=a.libraryConfig;const s=t.wasmBinary;let o;e=new Promise((function(e){o={wasmBinary:s,onRuntimeInitialized:e},rhino3dm(o)})).then((()=>{n=o}));break;case"decode":const l=a.buffer;e.then((()=>{const e=function(e,t){const n=new Uint8Array(t),s=e.File3dm.fromByteArray(n),a=[],o=[],l=[],c=[],h=[],u=[],d=s.objects(),p=d.count;for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(8083);class s extends r.Loader{constructor(e){super(e),this.availableExtensions=[]}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){const t=this,n=new r.TextureLoader(this.manager);function s(e){const t=[],n=(new DOMParser).parseFromString(e,"application/xml").querySelectorAll("Relationship");for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(8083);class s extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){function t(e){let t="AMF Material";const i=e.attributes.id.textContent;let s={r:1,g:1,b:1,a:1},a=null;for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{load(e,t,n,i){var s=this,a=""===s.path?r.LoaderUtils.extractUrlBase(e):s.path,o=new r.FileLoader(s.manager);o.setPath(s.path),o.setResponseType("arraybuffer"),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,(function(n){try{t(s.parse(n,a))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e,t){var n=new r.TextureLoader(this.manager);n.setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin);var i={KeyFrame:class{constructor(e,t){this.time=e,this.matrix=t.clone(),this.position=new r.Vector3,this.quaternion=new r.Quaternion,this.scale=new r.Vector3(1,1,1),this.matrix.decompose(this.position,this.quaternion,this.scale),this.clone=function(){return new i.KeyFrame(this.time,this.matrix)},this.lerp=function(e,t){var n=(t-=this.time)/(e.time-this.time),r=1-n,s=this.position,a=this.quaternion,o=e.position,l=e.quaternion;return i.KeyFrame.tempAniPos.x=s.x*r+o.x*n,i.KeyFrame.tempAniPos.y=s.y*r+o.y*n,i.KeyFrame.tempAniPos.z=s.z*r+o.z*n,i.KeyFrame.tempAniQuat.set(a.x,a.y,a.z,a.w),i.KeyFrame.tempAniQuat.slerp(l,n),i.KeyFrame.tempAniMatrix.compose(i.KeyFrame.tempAniPos,i.KeyFrame.tempAniQuat,i.KeyFrame.tempAniScale)}}}};i.KeyFrame.tempAniPos=new r.Vector3,i.KeyFrame.tempAniQuat=new r.Quaternion,i.KeyFrame.tempAniScale=new r.Vector3(1,1,1),i.KeyFrame.tempAniMatrix=new r.Matrix4,i.KeyFrameTrack=function(){this.keys=[],this.target=null,this.time=0,this.length=0,this._accelTable={},this.fps=20,this.addKey=function(e){this.keys.push(e)},this.init=function(){if(this.sortKeys(),this.keys.length>0?this.length=this.keys[this.keys.length-1].time:this.length=0,this.fps)for(let e=0;e=e/this.fps){this._accelTable[e]=t;break}}},this.parseFromThree=function(e){var t=e.fps;this.target=e.node;var n=e.hierarchy[0].keys;for(let r=0;re){t=this.keys[r],n=this.keys[r+1];break}if(this.keys[r].time4&&(n.length=4);var r=0;for(let i=0;i<4;i++)r+=n[i].w*n[i].w;r=Math.sqrt(r);for(let i=0;i<4;i++)n[i].w=n[i].w/r,e[i]=n[i].i,t[i]=n[i].w}function c(e,t){if(0==e.name.indexOf("bone_"+t))return e;for(let r in e.children){var n=c(e.children[r],t);if(n)return n}}class h{constructor(){this.mPrimitiveTypes=0,this.mNumVertices=0,this.mNumFaces=0,this.mNumBones=0,this.mMaterialIndex=0,this.mVertices=[],this.mNormals=[],this.mTangents=[],this.mBitangents=[],this.mColors=[[]],this.mTextureCoords=[[]],this.mFaces=[],this.mBones=[],this.hookupSkeletons=function(e){if(0!=this.mBones.length){for(var t=[],n=[],i=e.findNode(this.mBones[0].mName);i.mParent&&i.mParent.isBone;)i=i.mParent;var s=o(i.toTHREE(e),e);this.threeNode.add(s);for(let r=0;r0&&i.setAttribute("normal",new r.BufferAttribute(this.mNormalBuffer,3)),this.mColorBuffer&&this.mColorBuffer.length>0&&i.setAttribute("color",new r.BufferAttribute(this.mColorBuffer,4)),this.mTexCoordsBuffers[0]&&this.mTexCoordsBuffers[0].length>0&&i.setAttribute("uv",new r.BufferAttribute(new Float32Array(this.mTexCoordsBuffers[0]),2)),this.mTexCoordsBuffers[1]&&this.mTexCoordsBuffers[1].length>0&&i.setAttribute("uv1",new r.BufferAttribute(new Float32Array(this.mTexCoordsBuffers[1]),2)),this.mTangentBuffer&&this.mTangentBuffer.length>0&&i.setAttribute("tangents",new r.BufferAttribute(this.mTangentBuffer,3)),this.mBitangentBuffer&&this.mBitangentBuffer.length>0&&i.setAttribute("bitangents",new r.BufferAttribute(this.mBitangentBuffer,3)),this.mBones.length>0){var s=[],a=[];for(let e=0;e0&&(n=new r.SkinnedMesh(i,t)).normalizeSkinWeights(),this.threeNode=n,n}}}class u{constructor(){this.mNumIndices=0,this.mIndices=[]}}class d{constructor(){this.x=0,this.y=0,this.z=0,this.toTHREE=function(){return new r.Vector3(this.x,this.y,this.z)}}}class p{constructor(){this.r=0,this.g=0,this.b=0,this.a=0,this.toTHREE=function(){return new r.Color(this.r,this.g,this.b)}}}class f{constructor(){this.x=0,this.y=0,this.z=0,this.w=0,this.toTHREE=function(){return new r.Quaternion(this.x,this.y,this.z,this.w)}}}class m{constructor(){this.mVertexId=0,this.mWeight=0}}class g{constructor(){this.data=[],this.toString=function(){var e="";return this.data.forEach((function(t){e+=String.fromCharCode(t)})),e.replace(/[^\x20-\x7E]+/g,"")}}}class A{constructor(){this.mTime=0,this.mValue=null}}class v{constructor(){this.mTime=0,this.mValue=null}}class y{constructor(){this.mName="",this.mTransformation=[],this.mNumChildren=0,this.mNumMeshes=0,this.mMeshes=[],this.mChildren=[],this.toTHREE=function(e){if(this.threeNode)return this.threeNode;var t=new r.Object3D;t.name=this.mName,t.matrix=this.mTransformation.toTHREE();for(let n=0;n0)var t=this.mAnimations[0].toTHREE(this);return{object:e,animation:t}}}}class L{constructor(){this.elements=[[],[],[],[]],this.toTHREE=function(){var e=new r.Matrix4;for(let t=0;t<4;++t)for(let n=0;n<4;++n)e.elements[4*t+n]=this.elements[n][t];return e}}}var F=!0;function U(e){var t=e.getFloat32(e.readOffset,F);return e.readOffset+=4,t}function O(e){var t=e.getFloat64(e.readOffset,F);return e.readOffset+=8,t}function N(e){var t=e.getUint16(e.readOffset,F);return e.readOffset+=2,t}function k(e){var t=e.getUint32(e.readOffset,F);return e.readOffset+=4,t}function G(e){var t=e.getUint32(e.readOffset,F);return e.readOffset+=4,t}function z(e){var t=new d;return t.x=U(e),t.y=U(e),t.z=U(e),t}function Q(e){var t=new p;return t.r=U(e),t.g=U(e),t.b=U(e),t}function V(e){var t=new g,n=k(e);return e.ReadBytes(t.data,1,n),t.toString()}function H(e){var t=new m;return t.mVertexId=k(e),t.mWeight=U(e),t}function j(e){var t=new L;for(let n=0;n<4;++n)for(let r=0;r<4;++r)t.elements[n][r]=U(e);return t}function W(e){var t=new A;return t.mTime=O(e),t.mValue=z(e),t}function X(e){var t=new v;return t.mTime=O(e),t.mValue=function(e){var t=new f;return t.w=U(e),t.x=U(e),t.y=U(e),t.z=U(e),t}(e),t}function Y(e,t,n){for(let r=0;r0,ce=N(n)>0,le)throw"Shortened binaries are not supported!";if(n.Seek(256,he),n.Seek(128,he),n.Seek(64,he),ce){var r=G(n),i=n.FileSize()-n.Tell(),s=[];n.Read(s,1,i);var a=[];uncompress(a,r,s,i),oe(new ArrayBuffer(a),t)}else oe(n,t);return t.toTHREE()}(e)}}t.AssimpLoader=i},4951:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e),this.animateBonePositions=!0,this.animateBoneRotations=!0}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){function t(e,n,i){if("ENDSITE"===i.type)return;const s={time:n,position:new r.Vector3,rotation:new r.Quaternion};i.frames.push(s);const a=new r.Quaternion,o=new r.Vector3(1,0,0),l=new r.Vector3(0,1,0),c=new r.Vector3(0,0,1);for(let t=0;t{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=new WeakMap,o=class extends s.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.workerConfig=null}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerLimit=e,this}detectSupport(e){return this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}load(e,t,n,r){const i=new s.FileLoader(this.manager);i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials);const o=new s.CompressedTexture;return i.load(e,(e=>{if(a.has(e)){return a.get(e).promise.then(t).catch(r)}this._createTexture([e]).then((function(e){o.copy(e),o.needsUpdate=!0,t&&t(o)})).catch(r)}),n,r),o}parseInternalAsync(e){const{levels:t}=e,n=new Set;for(let r=0;r(n=t,r=this.workerNextTaskID++,new Promise(((t,s)=>{n._callbacks[r]={resolve:t,reject:s},n.postMessage({type:"transcode",id:r,buffers:e,taskConfig:i},e)}))))).then((e=>{const{mipmaps:t,width:n,height:r,format:i}=e,a=new s.CompressedTexture(t,n,r,i,s.UnsignedByteType);return a.minFilter=1===t.length?s.LinearFilter:s.LinearMipmapLinearFilter,a.magFilter=s.LinearFilter,a.generateMipmaps=!1,a.needsUpdate=!0,a}));return l.catch((()=>!0)).then((()=>{n&&r&&(n._taskLoad-=o,delete n._callbacks[r])})),a.set(e[0],{promise:l}),l}_initTranscoder(){if(!this.transcoderPending){const e=new s.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=new Promise(((t,n)=>{e.load("basis_transcoder.js",t,void 0,n)})),n=new s.FileLoader(this.manager);n.setPath(this.transcoderPath),n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials);const r=new Promise(((e,t)=>{n.load("basis_transcoder.wasm",e,void 0,t)}));this.transcoderPending=Promise.all([t,r]).then((([e,t])=>{const n=o.BasisWorker.toString(),r=["/* constants */","let _EngineFormat = "+JSON.stringify(o.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(o.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(o.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r])),this.transcoderBinary=t}))}return this.transcoderPending}_allocateWorker(e){return this._initTranscoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));const t=this.workerPool[this.workerPool.length-1];return t._taskLoad+=e,t}))}dispose(){for(let e=0;e{n={wasmBinary:a,onRuntimeInitialized:e},BASIS(n)})).then((()=>{n.initializeBasis()}));break;case"transcode":t.then((()=>{try{const{width:e,height:t,hasAlpha:r,mipmaps:a,format:o}=i.taskConfig.lowLevel?function(e){const{basisFormat:t,width:r,height:i,hasAlpha:a}=e,{transcoderFormat:o,engineFormat:l}=c(t,r,i,a),f=n.getBytesPerBlockOrPixel(o);h(n.isFormatSupported(o),"THREE.BasisTextureLoader: Unsupported format.");const m=[];if(t===s.ETC1S){const t=new n.LowLevelETC1SImageTranscoder,{endpointCount:r,endpointsData:i,selectorCount:s,selectorsData:l,tablesData:c}=e.globalData;try{let n;n=t.decodePalettes(r,i,s,l),h(n,"THREE.BasisTextureLoader: decodePalettes() failed."),n=t.decodeTables(c),h(n,"THREE.BasisTextureLoader: decodeTables() failed.");for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(2545);class s extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=""===s.path?r.LoaderUtils.extractUrlBase(e):s.path,o=new r.FileLoader(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,(function(n){try{t(s.parse(n,a))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e,t){function n(e,t){const n=[],r=e.childNodes;for(let i=0,s=r.length;i0&&t.push(new r.VectorKeyframeTrack(i+".position",s,a)),o.length>0&&t.push(new r.QuaternionKeyframeTrack(i+".quaternion",s,o)),l.length>0&&t.push(new r.VectorKeyframeTrack(i+".scale",s,l)),t}function S(e,t,n){let r,i,s,a=!0;for(i=0,s=e.length;i=0;){const r=e[t];if(null!==r.value[n])return r;t--}return null}function M(e,t,n){for(;t>>0));n=n.toLowerCase(),t="tga"===n?Ye:Xe;return t}(i);if(void 0!==t){const n=t.load(i),s=e.extra;if(void 0!==s&&void 0!==s.technique&&!1===c(s.technique)){const e=s.technique;n.wrapS=e.wrapU?r.RepeatWrapping:r.ClampToEdgeWrapping,n.wrapT=e.wrapV?r.RepeatWrapping:r.ClampToEdgeWrapping,n.offset.set(e.offsetU||0,e.offsetV||0),n.repeat.set(e.repeatU||1,e.repeatV||1)}else n.wrapS=r.RepeatWrapping,n.wrapT=r.RepeatWrapping;return n}return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",i),null}return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",e.id),null}s.name=e.name||"";const o=i.parameters;for(const r in o){const e=o[r];switch(r){case"diffuse":e.color&&s.color.fromArray(e.color),e.texture&&(s.map=a(e.texture));break;case"specular":e.color&&s.specular&&s.specular.fromArray(e.color),e.texture&&(s.specularMap=a(e.texture));break;case"bump":e.texture&&(s.normalMap=a(e.texture));break;case"ambient":e.texture&&(s.lightMap=a(e.texture));break;case"shininess":e.float&&s.shininess&&(s.shininess=e.float);break;case"emission":e.color&&s.emissive&&s.emissive.fromArray(e.color),e.texture&&(s.emissiveMap=a(e.texture))}}let l=o.transparent,h=o.transparency;if(void 0===h&&l&&(h={float:1}),void 0===l&&h&&(l={opaque:"A_ONE",data:{color:[1,1,1,1]}}),l&&h)if(l.data.texture)s.transparent=!0;else{const e=l.data.color;switch(l.opaque){case"A_ONE":s.opacity=e[3]*h.float;break;case"RGB_ZERO":s.opacity=1-e[0]*h.float;break;case"A_ZERO":s.opacity=1-e[3]*h.float;break;case"RGB_ONE":s.opacity=e[0]*h.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',l.opaque)}s.opacity<1&&(s.transparent=!0)}if(void 0!==i.extra&&void 0!==i.extra.technique){const e=i.extra.technique;for(const t in e){const n=e[t];switch(t){case"double_sided":s.side=1===n?r.DoubleSide:r.FrontSide;break;case"bump":s.normalMap=a(n.texture),s.normalScale=new r.Vector2(1,1)}}}return s}function J(e){return f(Ze.materials[e],K)}function Z(e){for(let t=0;t0?n+s:n;t.inputs[a]={id:e,offset:i},t.stride=Math.max(t.stride,i+1),"TEXCOORD"===n&&(t.hasUV=!0);break;case"vcount":t.vcount=o(r.textContent);break;case"p":t.p=o(r.textContent)}}return t}function he(e){let t=0;for(let n=0,r=e.length;n0&&t0&&f.setAttribute("position",new r.Float32BufferAttribute(s.array,s.stride)),a.array.length>0&&f.setAttribute("normal",new r.Float32BufferAttribute(a.array,a.stride)),c.array.length>0&&f.setAttribute("color",new r.Float32BufferAttribute(c.array,c.stride)),o.array.length>0&&f.setAttribute("uv",new r.Float32BufferAttribute(o.array,o.stride)),l.array.length>0&&f.setAttribute("uv2",new r.Float32BufferAttribute(l.array,l.stride)),h.length>0&&f.setAttribute("skinIndex",new r.Float32BufferAttribute(h,u)),d.length>0&&f.setAttribute("skinWeight",new r.Float32BufferAttribute(d,p)),i.data=f,i.type=e[0].type,i.materialKeys=m,i}function pe(e,t,n,r){const i=e.p,s=e.stride,a=e.vcount;function o(e){let t=i[e+n]*c;const s=t+c;for(;t4)for(let t=1,r=n-2;t<=r;t++){const n=e+s*t,r=e+s*(t+1);o(e+0*s),o(n),o(r)}e+=s*n}}else for(let h=0,u=i.length;h=t.limits.max&&(t.static=!0),t.middlePosition=(t.limits.min+t.limits.max)/2,t}function ye(e){const t={sid:e.getAttribute("sid"),name:e.getAttribute("name")||"",attachments:[],transforms:[]};for(let n=0;ni.limits.max||t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.CompressedTextureLoader{constructor(e){super(e)}parse(e,t){const n={mipmaps:[],width:0,height:0,format:null,mipmapCount:1};function i(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}function s(e,t,n,r){const i=n*r*4,s=new Uint8Array(e,t,i),a=new Uint8Array(i);let o=0,l=0;for(let c=0;c>8&255,f>>16&255,f>>24&255))),n;p=!0,u=64,n.format=r.RGBAFormat}var f;n.mipmapCount=1,131072&h[2]&&!1!==t&&(n.mipmapCount=Math.max(1,h[7]));const m=h[28];if(n.isCubemap=!!(512&m),n.isCubemap&&(!(1024&m)||!(2048&m)||!(4096&m)||!(8192&m)||!(16384&m)||!(32768&m)))return console.error("THREE.DDSLoader.parse: Incomplete cubemap faces"),n;n.width=h[4],n.height=h[3];let g=h[1]+4;const A=n.isCubemap?6:1;for(let r=0;r>1,1),r=Math.max(r>>1,1)}}return n}}t.DDSLoader=i},88909:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new WeakMap;class s extends r.Loader{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,n,i){const s=new r.FileLoader(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,(e=>{const n={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,n).then(t).catch(i)}),n,i)}decodeDracoFile(e,t,n,r){const i={attributeIDs:n||this.defaultAttributeIDs,attributeTypes:r||this.defaultAttributeTypes,useUniqueIDs:!!n};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(const i in t.attributeTypes){const e=t.attributeTypes[i];void 0!==e.BYTES_PER_ELEMENT&&(t.attributeTypes[i]=e.name)}const n=JSON.stringify(t);if(i.has(e)){const t=i.get(e);if(t.key===n)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let r;const s=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(s,a).then((n=>(r=n,new Promise(((n,i)=>{r._callbacks[s]={resolve:n,reject:i},r.postMessage({type:"decode",id:s,taskConfig:t,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return o.catch((()=>!0)).then((()=>{r&&s&&this._releaseTask(r,s)})),i.set(e,{key:n,promise:o}),o}_createGeometry(e){const t=new r.BufferGeometry;e.index&&t.setIndex(new r.BufferAttribute(e.index.array,1));for(let n=0;n{n.load(e,t,void 0,r)}))}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{const n=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const r=a.toString(),i=["/* draco decoder */",n,"","/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i]))})),this.decoderPending}_getWorker(e,t){return this._initDecoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));const n=this.workerPool[this.workerPool.length-1];return n._taskCosts[e]=t,n._taskLoad+=t,n}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}dispose(){for(let e=0;e{const t=e.draco,a=new t.Decoder,o=new t.DecoderBuffer;o.Init(new Int8Array(r),r.byteLength);try{const e=function(e,t,r,i){const s=i.attributeIDs,a=i.attributeTypes;let o,l;const c=t.GetEncodedGeometryType(r);if(c===e.TRIANGULAR_MESH)o=new e.Mesh,l=t.DecodeBufferToMesh(r,o);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");o=new e.PointCloud,l=t.DecodeBufferToPointCloud(r,o)}if(!l.ok()||0===o.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const h={index:null,attributes:[]};for(const u in s){const r=self[a[u]];let l,c;if(i.useUniqueIDs)c=s[u],l=t.GetAttributeByUniqueId(o,c);else{if(c=t.GetAttributeId(o,e[s[u]]),-1===c)continue;l=t.GetAttribute(o,c)}h.attributes.push(n(e,t,o,u,r,l))}c===e.TRIANGULAR_MESH&&(h.index=function(e,t,n){const r=n.num_faces(),i=3*r,s=4*i,a=e._malloc(s);t.GetTrianglesUInt32Array(n,s,a);const o=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:o,itemSize:1}}(e,t,o));return e.destroy(o),h}(t,a,o,s),r=e.attributes.map((e=>e.array.buffer));e.index&&r.push(e.index.array.buffer),self.postMessage({type:"decode",id:i.id,geometry:e},r)}catch(l){console.error(l),self.postMessage({type:"error",id:i.id,error:l.message})}finally{t.destroy(o),t.destroy(a)}}))}}}t.DRACOLoader=s},13785:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(8083),s="colorSpace"in new r.Texture;class a extends r.DataTextureLoader{constructor(e){super(e),this.type=r.HalfFloatType}parse(e){const t=65536,n=14,a=65537,o=16384,l=Math.pow(2.7182818,2.2);const c={l:0,c:0,lc:0};function h(e,t,n,r,i){for(;n>n&(1<r)return!1;h(6,d,p,e,l);var f=c.l;if(d=c.c,p=c.lc,o[i]=f,63==f){if(l.value-n.value>r)throw"Something wrong with hufUnpackEncTable";h(8,d,p,e,l);var m=c.l+6;if(d=c.c,p=c.lc,i+m>s+1)throw"Something wrong with hufUnpackEncTable";for(;m--;)o[i++]=0;i--}else if(f>=59){if(i+(m=f-59+2)>s+1)throw"Something wrong with hufUnpackEncTable";for(;m--;)o[i++]=0;i--}}!function(e){for(var t=0;t<=58;++t)u[t]=0;for(t=0;t0;--t){var r=n+u[t]>>1;u[t]=n,n=r}for(t=0;t0&&(e[t]=i|u[i]++<<6)}}(o)}function p(e){return 63&e}function f(e){return e>>6}const m={c:0,lc:0};function g(e,t,n,r){e=e<<8|H(n,r),t+=8,m.c=e,m.lc=t}const A={c:0,lc:0};function v(e,t,n,r,i,s,a,o,l,c){if(e==t){r<8&&(g(n,r,i,a),n=m.c,r=m.lc);var h=n>>(r-=8);h=new Uint8Array([h])[0];if(l.value+h>c)return!1;for(var u=o[l.value-1];h-- >0;)o[l.value++]=u}else{if(!(l.value32767?t-65536:t}const b={a:0,b:0};function E(e,t){var n=x(e),r=x(t),i=n+(1&r)+(r>>1),s=i,a=i-r;b.a=s,b.b=a}function _(e,t){var n=y(e),r=y(t),i=n-(r>>1)&65535,s=r+i-32768&65535;b.a=s,b.b=i}function S(e,t,n,r,i,s,a){for(var o,l=a<16384,c=n>i?i:n,h=1;h<=c;)h<<=1;for(o=h>>=1,h>>=1;h>=1;){for(var u,d,p,f,m=0,g=m+s*(i-o),A=s*h,v=s*o,y=r*h,x=r*o;m<=g;m+=v){for(var S=m,w=m+r*(n-o);S<=w;S+=x){var M=S+y,C=(T=S+A)+y;l?(E(e[S+t],e[T+t]),u=b.a,p=b.b,E(e[M+t],e[C+t]),d=b.a,f=b.b,E(u,d),e[S+t]=b.a,e[M+t]=b.b,E(p,f),e[T+t]=b.a,e[C+t]=b.b):(_(e[S+t],e[T+t]),u=b.a,p=b.b,_(e[M+t],e[C+t]),d=b.a,f=b.b,_(u,d),e[S+t]=b.a,e[M+t]=b.b,_(p,f),e[T+t]=b.a,e[C+t]=b.b)}if(n&h){var T=S+A;l?E(e[S+t],e[T+t]):_(e[S+t],e[T+t]),u=b.a,e[T+t]=b.b,e[S+t]=u}}if(i&h)for(S=m,w=m+r*(n-o);S<=w;S+=x){M=S+y;l?E(e[S+t],e[M+t]):_(e[S+t],e[M+t]),u=b.a,e[M+t]=b.b,e[S+t]=u}o=h,h>>=1}return m}function w(e,t,r,i,s,l){var c=r.value,h=V(t,r),u=V(t,r);r.value+=4;var y=V(t,r);if(r.value+=4,h<0||h>=a||u<0||u>=a)throw"Something wrong with HUF_ENCSIZE";var x=new Array(a),b=new Array(o);if(function(e){for(var t=0;t8*(i-(r.value-c)))throw"Something wrong with hufUncompress";!function(e,t,r,i){for(;t<=r;t++){var s=f(e[t]),a=p(e[t]);if(s>>a)throw"Invalid table entry";if(a>n){if((h=i[s>>a-n]).len)throw"Invalid table entry";if(h.lit++,h.p){var o=h.p;h.p=new Array(h.lit);for(var l=0;l0;l--){var h;if((h=i[(s<=n;)if((S=t[u>>d-n&16383]).len)d-=S.len,v(S.lit,o,u,d,r,0,s,c,h,y),u=A.c,d=A.lc;else{if(!S.p)throw"hufDecode issues";var b;for(b=0;b=E&&f(e[S.p[b]])==(u>>d-E&(1<>=_,d-=_;d>0;){var S;if(!(S=t[u<s||(t[i++]=e[n++],i>s));)t[i++]=e[r++]}function T(e){for(var t=e.byteLength,n=new Array,r=0,i=new DataView(e);t>0;){var s=i.getInt8(r++);if(s<0){t-=(o=-s)+1;for(var a=0;a>8==255?i+=255&r:(n[i]=r,i++),e.value++}function B(e,t){t[0]=q(e[0]),t[1]=q(e[1]),t[2]=q(e[5]),t[3]=q(e[6]),t[4]=q(e[14]),t[5]=q(e[15]),t[6]=q(e[27]),t[7]=q(e[28]),t[8]=q(e[2]),t[9]=q(e[4]),t[10]=q(e[7]),t[11]=q(e[13]),t[12]=q(e[16]),t[13]=q(e[26]),t[14]=q(e[29]),t[15]=q(e[42]),t[16]=q(e[3]),t[17]=q(e[8]),t[18]=q(e[12]),t[19]=q(e[17]),t[20]=q(e[25]),t[21]=q(e[30]),t[22]=q(e[41]),t[23]=q(e[43]),t[24]=q(e[9]),t[25]=q(e[11]),t[26]=q(e[18]),t[27]=q(e[24]),t[28]=q(e[31]),t[29]=q(e[40]),t[30]=q(e[44]),t[31]=q(e[53]),t[32]=q(e[10]),t[33]=q(e[19]),t[34]=q(e[23]),t[35]=q(e[32]),t[36]=q(e[39]),t[37]=q(e[45]),t[38]=q(e[52]),t[39]=q(e[54]),t[40]=q(e[20]),t[41]=q(e[22]),t[42]=q(e[33]),t[43]=q(e[38]),t[44]=q(e[46]),t[45]=q(e[51]),t[46]=q(e[55]),t[47]=q(e[60]),t[48]=q(e[21]),t[49]=q(e[34]),t[50]=q(e[37]),t[51]=q(e[47]),t[52]=q(e[50]),t[53]=q(e[56]),t[54]=q(e[59]),t[55]=q(e[61]),t[56]=q(e[35]),t[57]=q(e[36]),t[58]=q(e[48]),t[59]=q(e[49]),t[60]=q(e[57]),t[61]=q(e[58]),t[62]=q(e[62]),t[63]=q(e[63])}function R(e){const t=.5*Math.cos(.7853975),n=.5*Math.cos(3.14159/16),r=.5*Math.cos(3.14159/8),i=.5*Math.cos(3*3.14159/16),s=.5*Math.cos(.981746875),a=.5*Math.cos(3*3.14159/8),o=.5*Math.cos(1.374445625);for(var l=new Array(4),c=new Array(4),h=new Array(4),u=new Array(4),d=0;d<8;++d){var p=8*d;l[0]=r*e[p+2],l[1]=a*e[p+2],l[2]=r*e[p+6],l[3]=a*e[p+6],c[0]=n*e[p+1]+i*e[p+3]+s*e[p+5]+o*e[p+7],c[1]=i*e[p+1]-o*e[p+3]-n*e[p+5]-s*e[p+7],c[2]=s*e[p+1]-n*e[p+3]+o*e[p+5]+i*e[p+7],c[3]=o*e[p+1]-s*e[p+3]+i*e[p+5]-n*e[p+7],h[0]=t*(e[p+0]+e[p+4]),h[3]=t*(e[p+0]-e[p+4]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],u[0]=h[0]+h[1],u[1]=h[3]+h[2],u[2]=h[3]-h[2],u[3]=h[0]-h[1],e[p+0]=u[0]+c[0],e[p+1]=u[1]+c[1],e[p+2]=u[2]+c[2],e[p+3]=u[3]+c[3],e[p+4]=u[3]-c[3],e[p+5]=u[2]-c[2],e[p+6]=u[1]-c[1],e[p+7]=u[0]-c[0]}for(var f=0;f<8;++f)l[0]=r*e[16+f],l[1]=a*e[16+f],l[2]=r*e[48+f],l[3]=a*e[48+f],c[0]=n*e[8+f]+i*e[24+f]+s*e[40+f]+o*e[56+f],c[1]=i*e[8+f]-o*e[24+f]-n*e[40+f]-s*e[56+f],c[2]=s*e[8+f]-n*e[24+f]+o*e[40+f]+i*e[56+f],c[3]=o*e[8+f]-s*e[24+f]+i*e[40+f]-n*e[56+f],h[0]=t*(e[f]+e[32+f]),h[3]=t*(e[f]-e[32+f]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],u[0]=h[0]+h[1],u[1]=h[3]+h[2],u[2]=h[3]-h[2],u[3]=h[0]-h[1],e[0+f]=u[0]+c[0],e[8+f]=u[1]+c[1],e[16+f]=u[2]+c[2],e[24+f]=u[3]+c[3],e[32+f]=u[3]-c[3],e[40+f]=u[2]-c[2],e[48+f]=u[1]-c[1],e[56+f]=u[0]-c[0]}function P(e){for(var t=0;t<64;++t){var n=e[0][t],r=e[1][t],i=e[2][t];e[0][t]=n+1.5747*i,e[1][t]=n-.1873*r-.4682*i,e[2][t]=n+1.8556*r}}function D(e,t,n){for(var i=0;i<64;++i)t[n+i]=r.DataUtils.toHalfFloat(L(e[i]))}function L(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(l,Math.abs(e)-1)}function F(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function U(e){var t=e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size),n=new Uint8Array(T(t)),r=new Uint8Array(n.length);return M(n),C(n,r),new DataView(r.buffer)}function O(e){var t=e.array.slice(e.offset.value,e.offset.value+e.size),n=i.unzlibSync(t),r=new Uint8Array(n.length);return M(n),C(n,r),new DataView(r.buffer)}function N(e){for(var n=e.viewer,r={value:e.offset.value},i=new Uint16Array(e.width*e.scanlineBlockSize*(e.channels*e.type)),s=new Uint8Array(8192),a=0,o=new Array(e.channels),l=0;l=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(c<=h)for(l=0;l>3]&1<<(7&i))&&(n[r++]=i);for(var s=r-1;r0;){var l=z(t.buffer,n),c=j(t,n),h=c>>2&3,u=new Int8Array([(c>>4)-1])[0],d=j(t,n);a.push({name:l,index:u,type:d,compression:h}),o-=l.length+3}for(var p=ne.channels,f=new Array(e.channels),m=0;m=0&&(v.idx[x.index]=y),g.offset=y)}if(s.acCompressedSize>0)switch(s.acCompression){case 0:var b=new Uint16Array(s.totalAcUncompressedCount);w(e.array,t,n,s.acCompressedSize,b,s.totalAcUncompressedCount);break;case 1:var E=e.array.slice(n.value,n.value+s.totalAcUncompressedCount),_=i.unzlibSync(E);b=new Uint16Array(_.buffer);n.value+=s.totalAcUncompressedCount}if(s.dcCompressedSize>0){var S={array:e.array,offset:n,size:s.dcCompressedSize},M=new Uint16Array(O(S).buffer);n.value+=s.dcCompressedSize}if(s.rleRawSize>0){E=e.array.slice(n.value,n.value+s.rleCompressedSize);var C=T((_=i.unzlibSync(E)).buffer);n.value+=s.rleCompressedSize}var L=0,F=new Array(f.length);for(m=0;m>10,n=1023&e;return(e>>15?-1:1)*(t?31===t?n?NaN:1/0:Math.pow(2,t-15)*(1+n/1024):n/1024*6103515625e-14)}function K(e,t){var n=e.getUint16(t.value,!0);return t.value+=2,n}function J(e,t){return q(K(e,t))}function Z(e,t,n,r,i){return"string"===r||"stringvector"===r||"iccProfile"===r?function(e,t,n){var r=(new TextDecoder).decode(new Uint8Array(e).slice(t.value,t.value+n));return t.value=t.value+n,r}(t,n,i):"chlist"===r?function(e,t,n,r){for(var i=n.value,s=[];n.valuere.height?re.height-e:re.scanlineBlockSize;const t=re.size=re.height)break;for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(8083),s=n(98001);let a,o,l;class c extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=""===s.path?r.LoaderUtils.extractUrlBase(e):s.path,o=new r.FileLoader(this.manager);o.setPath(s.path),o.setResponseType("arraybuffer"),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,(function(n){try{t(s.parse(n,a))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e,t){if(function(e){const t="Kaydara FBX Binary \0";return e.byteLength>=t.length&&t===M(e,0,t.length)}(e))a=(new f).parse(e);else{const t=M(e);if(!function(e){const t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"];let n=0;function r(t){const r=e[t-1];return e=e.slice(n+t),n++,r}for(let i=0;i0,s="string"==typeof i.Content&&""!==i.Content;if(e||s){const e=this.parseImage(n[r]);t[i.RelativeFilename||i.Filename]=e}}}}for(const n in e){const r=e[n];void 0!==t[r]?e[n]=t[r]:e[n]=e[n].split("\\").pop()}return e}parseImage(e){const t=e.Content,n=e.RelativeFilename||e.Filename,r=n.slice(n.lastIndexOf(".")+1).toLowerCase();let i;switch(r){case"bmp":i="image/bmp";break;case"jpg":case"jpeg":i="image/jpeg";break;case"png":i="image/png";break;case"tif":i="image/tiff";break;case"tga":null===this.manager.getHandler(".tga")&&console.warn("FBXLoader: TGA loader not found, skipping ",n),i="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+r+'" is not supported.')}if("string"==typeof t)return"data:"+i+";base64,"+t;{const e=new Uint8Array(t);return window.URL.createObjectURL(new Blob([e],{type:i}))}}parseTextures(e){const t=new Map;if("Texture"in a.Objects){const n=a.Objects.Texture;for(const r in n){const i=this.parseTexture(n[r],e);t.set(parseInt(r),i)}}return t}parseTexture(e,t){const n=this.loadTexture(e,t);n.ID=e.id,n.name=e.attrName;const i=e.WrapModeU,s=e.WrapModeV,a=void 0!==i?i.value:0,o=void 0!==s?s.value:0;if(n.wrapS=0===a?r.RepeatWrapping:r.ClampToEdgeWrapping,n.wrapT=0===o?r.RepeatWrapping:r.ClampToEdgeWrapping,"Scaling"in e){const t=e.Scaling.value;n.repeat.x=t[0],n.repeat.y=t[1]}return n}loadTexture(e,t){let n;const i=this.textureLoader.path,s=o.get(e.id).children;let a;void 0!==s&&s.length>0&&void 0!==t[s[0].ID]&&(n=t[s[0].ID],0!==n.indexOf("blob:")&&0!==n.indexOf("data:")||this.textureLoader.setPath(void 0));const l=e.FileName.slice(-3).toLowerCase();if("tga"===l){const t=this.manager.getHandler(".tga");null===t?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",e.RelativeFilename),a=new r.Texture):(t.setPath(this.textureLoader.path),a=t.load(n))}else"psd"===l?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",e.RelativeFilename),a=new r.Texture):a=this.textureLoader.load(n);return this.textureLoader.setPath(i),a}parseMaterials(e){const t=new Map;if("Material"in a.Objects){const n=a.Objects.Material;for(const r in n){const i=this.parseMaterial(n[r],e);null!==i&&t.set(parseInt(r),i)}}return t}parseMaterial(e,t){const n=e.id,i=e.attrName;let s=e.ShadingModel;if("object"==typeof s&&(s=s.value),!o.has(n))return null;const a=this.parseParameters(e,t,n);let l;switch(s.toLowerCase()){case"phong":l=new r.MeshPhongMaterial;break;case"lambert":l=new r.MeshLambertMaterial;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',s),l=new r.MeshPhongMaterial}return l.setValues(a),l.name=i,l}parseParameters(e,t,n){const i={};e.BumpFactor&&(i.bumpScale=e.BumpFactor.value),e.Diffuse?i.color=(new r.Color).fromArray(e.Diffuse.value):!e.DiffuseColor||"Color"!==e.DiffuseColor.type&&"ColorRGB"!==e.DiffuseColor.type||(i.color=(new r.Color).fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(i.displacementScale=e.DisplacementFactor.value),e.Emissive?i.emissive=(new r.Color).fromArray(e.Emissive.value):!e.EmissiveColor||"Color"!==e.EmissiveColor.type&&"ColorRGB"!==e.EmissiveColor.type||(i.emissive=(new r.Color).fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(i.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(i.opacity=parseFloat(e.Opacity.value)),i.opacity<1&&(i.transparent=!0),e.ReflectionFactor&&(i.reflectivity=e.ReflectionFactor.value),e.Shininess&&(i.shininess=e.Shininess.value),e.Specular?i.specular=(new r.Color).fromArray(e.Specular.value):e.SpecularColor&&"Color"===e.SpecularColor.type&&(i.specular=(new r.Color).fromArray(e.SpecularColor.value));const s=this;return o.get(n).children.forEach((function(e){const n=e.relationship;switch(n){case"Bump":i.bumpMap=s.getTexture(t,e.ID);break;case"Maya|TEX_ao_map":i.aoMap=s.getTexture(t,e.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":i.map=s.getTexture(t,e.ID),void 0!==i.map&&("colorSpace"in i.map?i.map.colorSpace="srgb":i.map.encoding=3001);break;case"DisplacementColor":i.displacementMap=s.getTexture(t,e.ID);break;case"EmissiveColor":i.emissiveMap=s.getTexture(t,e.ID),void 0!==i.emissiveMap&&("colorSpace"in i.emissiveMap?i.emissiveMap.colorSpace="srgb":i.emissiveMap.encoding=3001);break;case"NormalMap":case"Maya|TEX_normal_map":i.normalMap=s.getTexture(t,e.ID);break;case"ReflectionColor":i.envMap=s.getTexture(t,e.ID),void 0!==i.envMap&&(i.envMap.mapping=r.EquirectangularReflectionMapping,"colorSpace"in i.envMap?i.envMap.colorSpace="srgb":i.envMap.encoding=3001);break;case"SpecularColor":i.specularMap=s.getTexture(t,e.ID),void 0!==i.specularMap&&("colorSpace"in i.specularMap?i.specularMap.colorSpace="srgb":i.specularMap.encoding=3001);break;case"TransparentColor":case"TransparencyFactor":i.alphaMap=s.getTexture(t,e.ID),i.transparent=!0;break;default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",n)}})),i}getTexture(e,t){return"LayeredTexture"in a.Objects&&t in a.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=o.get(t).children[0].ID),e.get(t)}parseDeformers(){const e={},t={};if("Deformer"in a.Objects){const n=a.Objects.Deformer;for(const r in n){const i=n[r],s=o.get(parseInt(r));if("Skin"===i.attrType){const t=this.parseSkeleton(s,n);t.ID=r,s.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),t.geometryID=s.parents[0].ID,e[r]=t}else if("BlendShape"===i.attrType){const e={id:r};e.rawTargets=this.parseMorphTargets(s,n),e.id=r,s.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[r]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){const n=[];return e.children.forEach((function(e){const i=t[e.ID];if("Cluster"!==i.attrType)return;const s={ID:e.ID,indices:[],weights:[],transformLink:(new r.Matrix4).fromArray(i.TransformLink.a)};"Indexes"in i&&(s.indices=i.Indexes.a,s.weights=i.Weights.a),n.push(s)})),{rawBones:n,bones:[]}}parseMorphTargets(e,t){const n=[];for(let r=0;r1?a=o:o.length>0?a=o[0]:(a=new r.MeshPhongMaterial({color:13421772}),o.push(a)),"color"in s.attributes&&o.forEach((function(e){e.vertexColors=!0})),s.FBX_Deformer?(i=new r.SkinnedMesh(s,a),i.normalizeSkinWeights()):i=new r.Mesh(s,a),i}createCurve(e,t){const n=e.children.reduce((function(e,n){return t.has(n.ID)&&(e=t.get(n.ID)),e}),null),i=new r.LineBasicMaterial({color:3342591,linewidth:1});return new r.Line(n,i)}getTransformData(e,t){const n={};"InheritType"in t&&(n.inheritType=parseInt(t.InheritType.value)),n.eulerOrder="RotationOrder"in t?S(t.RotationOrder.value):"ZYX","Lcl_Translation"in t&&(n.translation=t.Lcl_Translation.value),"PreRotation"in t&&(n.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(n.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(n.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(n.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(n.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(n.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(n.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(n.rotationPivot=t.RotationPivot.value),e.userData.transformData=n}setLookAtProperties(e,t){if("LookAtProperty"in t){o.get(e.ID).children.forEach((function(t){if("LookAtProperty"===t.relationship){const n=a.Objects.Model[t.ID];if("Lcl_Translation"in n){const t=n.Lcl_Translation.value;void 0!==e.target?(e.target.position.fromArray(t),l.add(e.target)):e.lookAt((new r.Vector3).fromArray(t))}}}))}}bindSkeleton(e,t,n){const i=this.parsePoseNodes();for(const s in e){const a=e[s];o.get(parseInt(a.ID)).parents.forEach((function(e){if(t.has(e.ID)){const t=e.ID;o.get(t).parents.forEach((function(e){if(n.has(e.ID)){n.get(e.ID).bind(new r.Skeleton(a.bones),i[e.ID])}}))}}))}}parsePoseNodes(){const e={};if("Pose"in a.Objects){const t=a.Objects.Pose;for(const n in t)if("BindPose"===t[n].attrType&&t[n].NbPoseNodes>0){const i=t[n].PoseNode;Array.isArray(i)?i.forEach((function(t){e[t.Node]=(new r.Matrix4).fromArray(t.Matrix.a)})):e[i.Node]=(new r.Matrix4).fromArray(i.Matrix.a)}}return e}createAmbientLight(){if("GlobalSettings"in a&&"AmbientColor"in a.GlobalSettings){const e=a.GlobalSettings.AmbientColor.value,t=e[0],n=e[1],i=e[2];if(0!==t||0!==n||0!==i){const e=new r.Color(t,n,i);l.add(new r.AmbientLight(e,1))}}}}class u{parse(e){const t=new Map;if("Geometry"in a.Objects){const n=a.Objects.Geometry;for(const r in n){const i=o.get(parseInt(r)),s=this.parseGeometry(i,n[r],e);t.set(parseInt(r),s)}}return t}parseGeometry(e,t,n){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,n);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,n){const r=n.skeletons,i=[],s=e.parents.map((function(e){return a.Objects.Model[e.ID]}));if(0===s.length)return;const o=e.children.reduce((function(e,t){return void 0!==r[t.ID]&&(e=r[t.ID]),e}),null);e.children.forEach((function(e){void 0!==n.morphTargets[e.ID]&&i.push(n.morphTargets[e.ID])}));const l=s[0],c={};"RotationOrder"in l&&(c.eulerOrder=S(l.RotationOrder.value)),"InheritType"in l&&(c.inheritType=parseInt(l.InheritType.value)),"GeometricTranslation"in l&&(c.translation=l.GeometricTranslation.value),"GeometricRotation"in l&&(c.rotation=l.GeometricRotation.value),"GeometricScaling"in l&&(c.scale=l.GeometricScaling.value);const h=_(c);return this.genGeometry(t,o,i,h)}genGeometry(e,t,n,i){const s=new r.BufferGeometry;e.attrName&&(s.name=e.attrName);const a=this.parseGeoNode(e,t),o=this.genBuffers(a),l=new r.Float32BufferAttribute(o.vertex,3);if(l.applyMatrix4(i),s.setAttribute("position",l),o.colors.length>0&&s.setAttribute("color",new r.Float32BufferAttribute(o.colors,3)),t&&(s.setAttribute("skinIndex",new r.Uint16BufferAttribute(o.weightsIndices,4)),s.setAttribute("skinWeight",new r.Float32BufferAttribute(o.vertexWeights,4)),s.FBX_Deformer=t),o.normal.length>0){const e=(new r.Matrix3).getNormalMatrix(i),t=new r.Float32BufferAttribute(o.normal,3);t.applyNormalMatrix(e),s.setAttribute("normal",t)}if(o.uvs.forEach((function(e,t){let n="uv"+(t+1).toString();0===t&&(n="uv"),s.setAttribute(n,new r.Float32BufferAttribute(o.uvs[t],2))})),a.material&&"AllSame"!==a.material.mappingType){let e=o.materialIndex[0],t=0;if(o.materialIndex.forEach((function(n,r){n!==e&&(s.addGroup(t,r-t,e),e=n,t=r)})),s.groups.length>0){const t=s.groups[s.groups.length-1],n=t.start+t.count;n!==o.materialIndex.length&&s.addGroup(n,o.materialIndex.length-n,e)}0===s.groups.length&&s.addGroup(0,o.materialIndex.length,o.materialIndex[0])}return this.addMorphTargets(s,e,n,i),s}parseGeoNode(e,t){const n={};if(n.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],n.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(n.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(n.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(n.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){n.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&n.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return n.weightTable={},null!==t&&(n.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(r,i){void 0===n.weightTable[r]&&(n.weightTable[r]=[]),n.weightTable[r].push({id:t,weight:e.weights[i]})}))}))),n}genBuffers(e){const t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]};let n=0,r=0,i=!1,s=[],a=[],o=[],l=[],c=[],h=[];const u=this;return e.vertexIndices.forEach((function(d,p){let f,m=!1;d<0&&(d^=-1,m=!0);let g=[],A=[];if(s.push(3*d,3*d+1,3*d+2),e.color){const t=x(p,n,d,e.color);o.push(t[0],t[1],t[2])}if(e.skeleton){if(void 0!==e.weightTable[d]&&e.weightTable[d].forEach((function(e){A.push(e.weight),g.push(e.id)})),A.length>4){i||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),i=!0);const e=[0,0,0,0],t=[0,0,0,0];A.forEach((function(n,r){let i=n,s=g[r];t.forEach((function(t,n,r){if(i>t){r[n]=i,i=t;const a=e[n];e[n]=s,s=a}}))})),g=e,A=t}for(;A.length<4;)A.push(0),g.push(0);for(let e=0;e<4;++e)c.push(A[e]),h.push(g[e])}if(e.normal){const t=x(p,n,d,e.normal);a.push(t[0],t[1],t[2])}e.material&&"AllSame"!==e.material.mappingType&&(f=x(p,n,d,e.material)[0]),e.uv&&e.uv.forEach((function(e,t){const r=x(p,n,d,e);void 0===l[t]&&(l[t]=[]),l[t].push(r[0]),l[t].push(r[1])})),r++,m&&(u.genFace(t,e,s,f,a,o,l,c,h,r),n++,r=0,s=[],a=[],o=[],l=[],c=[],h=[])})),t}genFace(e,t,n,r,i,s,a,o,l,c){for(let h=2;h1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");const s=e.get(i[0].ID);n[r]={name:t[r].attrName,layer:s}}return n}addClip(e){let t=[];const n=this;return e.layer.forEach((function(e){t=t.concat(n.generateTracks(e))})),new r.AnimationClip(e.name,-1,t)}generateTracks(e){const t=[];let n=new r.Vector3,i=new r.Quaternion,s=new r.Vector3;if(e.transform&&e.transform.decompose(n,i,s),n=n.toArray(),i=(new r.Euler).setFromQuaternion(i,e.eulerOrder).toArray(),s=s.toArray(),void 0!==e.T&&Object.keys(e.T.curves).length>0){const r=this.generateVectorTrack(e.modelName,e.T.curves,n,"position");void 0!==r&&t.push(r)}if(void 0!==e.R&&Object.keys(e.R.curves).length>0){const n=this.generateRotationTrack(e.modelName,e.R.curves,i,e.preRotation,e.postRotation,e.eulerOrder);void 0!==n&&t.push(n)}if(void 0!==e.S&&Object.keys(e.S.curves).length>0){const n=this.generateVectorTrack(e.modelName,e.S.curves,s,"scale");void 0!==n&&t.push(n)}if(void 0!==e.DeformPercent){const n=this.generateMorphTrack(e);void 0!==n&&t.push(n)}return t}generateVectorTrack(e,t,n,i){const s=this.getTimesForAllAxes(t),a=this.getKeyframeTrackValues(s,t,n);return new r.VectorKeyframeTrack(e+"."+i,s,a)}generateRotationTrack(e,t,n,i,s,a){void 0!==t.x&&(this.interpolateRotations(t.x),t.x.values=t.x.values.map(r.MathUtils.degToRad)),void 0!==t.y&&(this.interpolateRotations(t.y),t.y.values=t.y.values.map(r.MathUtils.degToRad)),void 0!==t.z&&(this.interpolateRotations(t.z),t.z.values=t.z.values.map(r.MathUtils.degToRad));const o=this.getTimesForAllAxes(t),l=this.getKeyframeTrackValues(o,t,n);void 0!==i&&((i=i.map(r.MathUtils.degToRad)).push(a),i=(new r.Euler).fromArray(i),i=(new r.Quaternion).setFromEuler(i)),void 0!==s&&((s=s.map(r.MathUtils.degToRad)).push(a),s=(new r.Euler).fromArray(s),s=(new r.Quaternion).setFromEuler(s).invert());const c=new r.Quaternion,h=new r.Euler,u=[];for(let r=0;r1){let e=1,n=t[0];for(let r=1;r=180){const s=i/180,a=r/s;let o=n+a;const l=e.times[t-1],c=(e.times[t]-l)/s;let h=l+c;const u=[],d=[];for(;h1&&(n=e[1].replace(/^(\w+)::/,""),r=e[2]),{id:t,name:n,type:r}}parseNodeProperty(e,t,n){let r=t[1].replace(/^"/,"").replace(/"$/,"").trim(),i=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===r&&","===i&&(i=n.replace(/"/g,"").replace(/,$/,"").trim());const s=this.getCurrentNode();if("Properties70"!==s.name){if("C"===r){const e=i.split(",").slice(1),t=parseInt(e[0]),n=parseInt(e[1]);let a=i.split(",").slice(3);a=a.map((function(e){return e.trim().replace(/^"/,"")})),r="connections",i=[t,n],function(e,t){for(let n=0,r=e.length,i=t.length;n=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){const n={},r=t>=7500?e.getUint64():e.getUint32(),i=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();const s=e.getUint8(),a=e.getString(s);if(0===r)return null;const o=[];for(let u=0;u0?o[0]:"",c=o.length>1?o[1]:"",h=o.length>2?o[2]:"";for(n.singleProperty=1===i&&e.getOffset()===r;r>e.getOffset();){const r=this.parseNode(e,t);null!==r&&this.parseSubNode(a,n,r)}return n.propertyList=o,"number"==typeof l&&(n.id=l),""!==c&&(n.attrName=c),""!==h&&(n.attrType=h),""!==a&&(n.name=a),n}parseSubNode(e,t,n){if(!0===n.singleProperty){const e=n.propertyList[0];Array.isArray(e)?(t[n.name]=n,n.a=e):t[n.name]=e}else if("Connections"===e&&"C"===n.name){const e=[];n.propertyList.forEach((function(t,n){0!==n&&e.push(t)})),void 0===t.connections&&(t.connections=[]),t.connections.push(e)}else if("Properties70"===n.name){Object.keys(n).forEach((function(e){t[e]=n[e]}))}else if("Properties70"===e&&"P"===n.name){let e=n.propertyList[0],r=n.propertyList[1];const i=n.propertyList[2],s=n.propertyList[3];let a;0===e.indexOf("Lcl ")&&(e=e.replace("Lcl ","Lcl_")),0===r.indexOf("Lcl ")&&(r=r.replace("Lcl ","Lcl_")),a="Color"===r||"ColorRGB"===r||"Vector"===r||"Vector3D"===r||0===r.indexOf("Lcl_")?[n.propertyList[4],n.propertyList[5],n.propertyList[6]]:n.propertyList[4],t[e]={type:r,type2:i,flag:s,value:a}}else void 0===t[n.name]?"number"==typeof n.id?(t[n.name]={},t[n.name][n.id]=n):t[n.name]=n:"PoseNode"===n.name?(Array.isArray(t[n.name])||(t[n.name]=[t[n.name]]),t[n.name].push(n)):void 0===t[n.name][n.id]&&(t[n.name][n.id]=n)}parseProperty(e){const t=e.getString(1);let n;switch(t){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return n=e.getUint32(),e.getArrayBuffer(n);case"S":return n=e.getUint32(),e.getString(n);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":const r=e.getUint32(),s=e.getUint32(),a=e.getUint32();if(0===s)switch(t){case"b":case"c":return e.getBooleanArray(r);case"d":return e.getFloat64Array(r);case"f":return e.getFloat32Array(r);case"i":return e.getInt32Array(r);case"l":return e.getInt64Array(r)}const o=i.unzlibSync(new Uint8Array(e.getArrayBuffer(a))),l=new m(o.buffer);switch(t){case"b":case"c":return l.getBooleanArray(r);case"d":return l.getFloat64Array(r);case"f":return l.getFloat32Array(r);case"i":return l.getInt32Array(r);case"l":return l.getInt64Array(r)}default:throw new Error("THREE.FBXLoader: Unknown property type "+t)}}}class m{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return 1==(1&this.getUint8())}getBooleanArray(e){const t=[];for(let n=0;n=0&&(t=t.slice(0,n)),r.LoaderUtils.decodeText(new Uint8Array(t))}}class g{add(e,t){this[e]=t}}function A(e){const t=e.match(/FBXVersion: (\d+)/);if(t){return parseInt(t[1])}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function v(e){return e/46186158e3}const y=[];function x(e,t,n,r){let i;switch(r.mappingType){case"ByPolygonVertex":i=e;break;case"ByPolygon":i=t;break;case"ByVertice":i=n;break;case"AllSame":i=r.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+r.mappingType)}"IndexToDirect"===r.referenceType&&(i=r.indices[i]);const s=i*r.dataSize,a=s+r.dataSize;return function(e,t,n,r){for(let i=n,s=0;i{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);class a extends s.Loader{constructor(e){super(e)}load(e,t,n,r){const i=new s.FileLoader(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{if("string"!=typeof e)throw new Error("unsupported data type");const n=JSON.parse(e),r=this.parse(n);t&&t(r)}),n,r)}loadAsync(e,t){return super.loadAsync(e,t)}parse(e){return new o(e)}}class o{constructor(e){i(this,"data"),this.data=e}generateShapes(e,t=100,n){const r=[],i={letterSpacing:0,lineHeight:1,...n},s=function(e,t,n,r){const i=Array.from(e),s=t/n.resolution,a=(n.boundingBox.yMax-n.boundingBox.yMin+n.underlineThickness)*s,o=[];let c=0,h=0;for(let u=0;u{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e),this.splitLayer=!1}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){let t,n={x:0,y:0,z:0,e:0,f:0,extruding:!1,relative:!1},i=[];const s=new r.LineBasicMaterial({color:16711680});s.name="path";const a=new r.LineBasicMaterial({color:65280});function o(e){t={vertex:[],pathVertex:[],z:e.z},i.push(t)}function l(e,t){return n.relative?t:t-e}function c(e,t){return n.relative?e+t:t}a.name="extruded";let h=e.replace(/;.+/g,"").split("\n");for(let r=0;r0&&(e.extruding=l(n.e,e.e)>0,null!=t&&e.z==t.z||o(e)),u=n,d=e,void 0===t&&o(u),n.extruding?(t.vertex.push(u.x,u.y,u.z),t.vertex.push(d.x,d.y,d.z)):(t.pathVertex.push(u.x,u.y,u.z),t.pathVertex.push(d.x,d.y,d.z)),n=e}else if("G2"===i||"G3"===i);else if("G90"===i)n.relative=!1;else if("G91"===i)n.relative=!0;else if("G92"===i){let e=n;e.x=void 0!==s.x?s.x:e.x,e.y=void 0!==s.y?s.y:e.y,e.z=void 0!==s.z?s.z:e.z,e.e=void 0!==s.e?s.e:e.e,n=e}}var u,d;function p(e,t,n){let i=new r.BufferGeometry;i.setAttribute("position",new r.Float32BufferAttribute(e,3));let o=new r.LineSegments(i,t?a:s);o.name="layer"+n,f.add(o)}const f=new r.Group;if(f.name="gcode",this.splitLayer)for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(66552),s=n(65236);class a extends r.Loader{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register((function(e){return new d(e)})),this.register((function(e){return new x(e)})),this.register((function(e){return new b(e)})),this.register((function(e){return new E(e)})),this.register((function(e){return new f(e)})),this.register((function(e){return new m(e)})),this.register((function(e){return new g(e)})),this.register((function(e){return new A(e)})),this.register((function(e){return new u(e)})),this.register((function(e){return new v(e)})),this.register((function(e){return new p(e)})),this.register((function(e){return new y(e)})),this.register((function(e){return new c(e)})),this.register((function(e){return new _(e)})),this.register((function(e){return new S(e)}))}load(e,t,n,i){const s=this;let a;a=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:r.LoaderUtils.extractUrlBase(e),this.manager.itemStart(e);const o=function(t){i?i(t):console.error(t),s.manager.itemError(e),s.manager.itemEnd(e)},l=new r.FileLoader(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,(function(n){try{s.parse(n,a,(function(n){t(n),s.manager.itemEnd(e)}),o)}catch(r){o(r)}}),n,o)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,n,i){let s;const a={},o={};if("string"==typeof e)s=JSON.parse(e);else if(e instanceof ArrayBuffer){if(r.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4)))===w){try{a[l.KHR_BINARY_GLTF]=new T(e)}catch(u){return void(i&&i(u))}s=JSON.parse(a[l.KHR_BINARY_GLTF].content)}else s=JSON.parse(r.LoaderUtils.decodeText(new Uint8Array(e)))}else s=e;if(void 0===s.asset||s.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const c=new $(s,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let r=0;r=0&&void 0===o[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}c.setExtensions(a),c.setPlugins(o),c.parse(n,i)}parseAsync(e,t){const n=this;return new Promise((function(r,i){n.parse(e,t,r,i)}))}}function o(){let e={};return{get:function(t){return e[t]},add:function(t,n){e[t]=n},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const l={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class c{constructor(e){this.parser=e,this.name=l.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let n=0,r=t.length;n=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,i.source,s)}}class b{constructor(e){this.parser=e,this.name=l.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;const s=i.extensions[t],a=r.images[s.source];let o=n.textureLoader;if(a.uri){const e=n.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(i){if(i)return n.loadTextureImage(e,s.source,o);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return n.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class E{constructor(e){this.parser=e,this.name=l.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,n=this.parser,r=n.json,i=r.textures[e];if(!i.extensions||!i.extensions[t])return null;const s=i.extensions[t],a=r.images[s.source];let o=n.textureLoader;if(a.uri){const e=n.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(i){if(i)return n.loadTextureImage(e,s.source,o);if(r.extensionsRequired&&r.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return n.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class _{constructor(e){this.name=l.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,n=t.bufferViews[e];if(n.extensions&&n.extensions[this.name]){const e=n.extensions[this.name],r=this.parser.getDependency("buffer",e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then((function(t){const n=e.byteOffset||0,r=e.byteLength||0,s=e.count,a=e.byteStride,o=new Uint8Array(t,n,r);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(s,a,o,e.mode,e.filter).then((function(e){return e.buffer})):i.ready.then((function(){const t=new ArrayBuffer(s*a);return i.decodeGltfBuffer(new Uint8Array(t),s,a,o,e.mode,e.filter),t}))}))}return null}}class S{constructor(e){this.name=l.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,n=t.nodes[e];if(!n.extensions||!n.extensions[this.name]||void 0===n.mesh)return null;const i=t.meshes[n.mesh];for(const r of i.primitives)if(r.mode!==F.TRIANGLES&&r.mode!==F.TRIANGLE_STRIP&&r.mode!==F.TRIANGLE_FAN&&void 0!==r.mode)return null;const s=n.extensions[this.name].attributes,a=[],o={};for(const r in s)a.push(this.parser.getDependency("accessor",s[r]).then((e=>(o[r]=e,o[r]))));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then((e=>{const t=e.pop(),n=t.isGroup?t.children:[t],i=e[0].count,s=[];for(const a of n){const e=new r.Matrix4,t=new r.Vector3,n=new r.Quaternion,l=new r.Vector3(1,1,1),c=new r.InstancedMesh(a.geometry,a.material,i);for(let r=0;r=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},z={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Q={CUBICSPLINE:void 0,LINEAR:r.InterpolateLinear,STEP:r.InterpolateDiscrete},V="OPAQUE",H="MASK",j="BLEND";function W(e,t,n){for(const r in n.extensions)void 0===e[r]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[r]=n.extensions[r])}function X(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function Y(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let n=0,r=t.weights.length;n-1,s=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||n||i&&s<98?this.textureLoader=new r.TextureLoader(this.options.manager):this.textureLoader=new r.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new r.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const n=this,r=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([n.getDependencies("scene"),n.getDependencies("animation"),n.getDependencies("camera")])})).then((function(t){const s={scene:t[0][r.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:r.asset,parser:n,userData:{}};W(i,s,r),X(s,r),Promise.all(n._invokeAll((function(e){return e.afterRoot&&e.afterRoot(s)}))).then((function(){e(s)}))})).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],n=this.json.meshes||[];for(let r=0,i=t.length;r{const n=this.associations.get(e);null!=n&&this.associations.set(t,n);for(const[r,s]of e.children.entries())i(s,t.children[r])};return i(n,r),r.name+="_instance_"+e.uses[t]++,r}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let n=0;n=2&&f.setY(t,u[e*a+1]),a>=3&&f.setZ(t,u[e*a+2]),a>=4&&f.setW(t,u[e*a+3]),a>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return f}))}loadTexture(e){const t=this.json,n=this.options,r=t.textures[e].source,i=t.images[r];let s=this.textureLoader;if(i.uri){const e=n.manager.getHandler(i.uri);null!==e&&(s=e)}return this.loadTextureImage(e,r,s)}loadTextureImage(e,t,n){const i=this,s=this.json,a=s.textures[e],o=s.images[t],l=(o.uri||o.bufferView)+":"+a.sampler;if(this.textureCache[l])return this.textureCache[l];const c=this.loadImageSource(t,n).then((function(t){t.flipY=!1,t.name=a.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);const n=(s.samplers||{})[a.sampler]||{};return t.magFilter=O[n.magFilter]||r.LinearFilter,t.minFilter=O[n.minFilter]||r.LinearMipmapLinearFilter,t.wrapS=N[n.wrapS]||r.RepeatWrapping,t.wrapT=N[n.wrapT]||r.RepeatWrapping,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[l]=c,c}loadImageSource(e,t){const n=this,i=this.json,s=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const a=i.images[e],o=self.URL||self.webkitURL;let l=a.uri||"",c=!1;if(void 0!==a.bufferView)l=n.getDependency("bufferView",a.bufferView).then((function(e){c=!0;const t=new Blob([e],{type:a.mimeType});return l=o.createObjectURL(t),l}));else if(void 0===a.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const h=Promise.resolve(l).then((function(e){return new Promise((function(n,i){let a=n;!0===t.isImageBitmapLoader&&(a=function(e){const t=new r.Texture(e);t.needsUpdate=!0,n(t)}),t.load(r.LoaderUtils.resolveURL(e,s.path),a,void 0,i)}))})).then((function(e){var t;return!0===c&&o.revokeObjectURL(l),e.userData.mimeType=a.mimeType||((t=a.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",l),e}));return this.sourceCache[e]=h,h}assignTexture(e,t,n,r){const i=this;return this.getDependency("texture",n.index).then((function(s){if(!s)return null;if(void 0!==n.texCoord&&n.texCoord>0&&((s=s.clone()).channel=n.texCoord),i.extensions[l.KHR_TEXTURE_TRANSFORM]){const e=void 0!==n.extensions?n.extensions[l.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=i.associations.get(s);s=i.extensions[l.KHR_TEXTURE_TRANSFORM].extendTexture(s,e),i.associations.set(s,t)}}return void 0!==r&&("colorSpace"in s?s.colorSpace=3001===r?"srgb":"srgb-linear":s.encoding=r),e[t]=s,s}))}assignFinalMaterial(e){const t=e.geometry;let n=e.material;const i=void 0===t.attributes.tangent,s=void 0!==t.attributes.color,a=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new r.PointsMaterial,r.Material.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,t.sizeAttenuation=!1,this.cache.add(e,t)),n=t}else if(e.isLine){const e="LineBasicMaterial:"+n.uuid;let t=this.cache.get(e);t||(t=new r.LineBasicMaterial,r.Material.prototype.copy.call(t,n),t.color.copy(n.color),t.map=n.map,this.cache.add(e,t)),n=t}if(i||s||a){let e="ClonedMaterial:"+n.uuid+":";i&&(e+="derivative-tangents:"),s&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=n.clone(),s&&(t.vertexColors=!0),a&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(n))),n=t}e.material=n}getMaterialType(){return r.MeshStandardMaterial}loadMaterial(e){const t=this,n=this.json,i=this.extensions,s=n.materials[e];let a;const o={},c=[];if((s.extensions||{})[l.KHR_MATERIALS_UNLIT]){const e=i[l.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),c.push(e.extendParams(o,s,t))}else{const n=s.pbrMetallicRoughness||{};if(o.color=new r.Color(1,1,1),o.opacity=1,Array.isArray(n.baseColorFactor)){const e=n.baseColorFactor;o.color.fromArray(e),o.opacity=e[3]}void 0!==n.baseColorTexture&&c.push(t.assignTexture(o,"map",n.baseColorTexture,3001)),o.metalness=void 0!==n.metallicFactor?n.metallicFactor:1,o.roughness=void 0!==n.roughnessFactor?n.roughnessFactor:1,void 0!==n.metallicRoughnessTexture&&(c.push(t.assignTexture(o,"metalnessMap",n.metallicRoughnessTexture)),c.push(t.assignTexture(o,"roughnessMap",n.metallicRoughnessTexture))),a=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),c.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)}))))}!0===s.doubleSided&&(o.side=r.DoubleSide);const h=s.alphaMode||V;if(h===j?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,h===H&&(o.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&a!==r.MeshBasicMaterial&&(c.push(t.assignTexture(o,"normalMap",s.normalTexture)),o.normalScale=new r.Vector2(1,1),void 0!==s.normalTexture.scale)){const e=s.normalTexture.scale;o.normalScale.set(e,e)}return void 0!==s.occlusionTexture&&a!==r.MeshBasicMaterial&&(c.push(t.assignTexture(o,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(o.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&a!==r.MeshBasicMaterial&&(o.emissive=(new r.Color).fromArray(s.emissiveFactor)),void 0!==s.emissiveTexture&&a!==r.MeshBasicMaterial&&c.push(t.assignTexture(o,"emissiveMap",s.emissiveTexture,3001)),Promise.all(c).then((function(){const n=new a(o);return s.name&&(n.name=s.name),X(n,s),t.associations.set(n,{materials:e}),s.extensions&&W(i,n,s),n}))}createUniqueName(e){const t=r.PropertyBinding.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,n=this.extensions,i=this.primitiveCache;function s(e){return n[l.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(n){return ee(n,e,t)}))}const a=[];for(let o=0,c=e.length;o0&&Y(p,a),p.name=t.createUniqueName(a.name||"mesh_"+e),X(p,a),u.extensions&&W(s,p,u),t.assignFinalMaterial(p),h.push(p)}for(let r=0,i=h.length;r1?new r.Group:1===t.length?t[0]:new r.Object3D,o!==t[0])for(let e=0,n=t.length;e{const t=new Map;for(const[n,s]of i.associations)(n instanceof r.Material||n instanceof r.Texture)&&t.set(n,s);return e.traverse((e=>{const n=i.associations.get(e);null!=n&&t.set(e,n)})),t})(s),s}))}}function ee(e,t,n){const i=t.attributes,s=[];function a(t,r){return n.getDependency("accessor",t).then((function(t){e.setAttribute(r,t)}))}for(const r in i){const t=G[r]||r.toLowerCase();t in e.attributes||s.push(a(i[r],t))}if(void 0!==t.indices&&!e.index){const r=n.getDependency("accessor",t.indices).then((function(t){e.setIndex(t)}));s.push(r)}return X(e,t),function(e,t,n){const i=t.attributes,s=new r.Box3;if(void 0===i.POSITION)return;{const e=n.json.accessors[i.POSITION],t=e.min,a=e.max;if(void 0===t||void 0===a)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(s.set(new r.Vector3(t[0],t[1],t[2]),new r.Vector3(a[0],a[1],a[2])),e.normalized){const t=J(U[e.componentType]);s.min.multiplyScalar(t),s.max.multiplyScalar(t)}}const a=t.targets;if(void 0!==a){const e=new r.Vector3,t=new r.Vector3;for(let r=0,i=a.length;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(31150);class s extends r.Loader{constructor(e){super(e),this.hdrLoader=new i.RGBELoader,this.type=r.HalfFloatType}load(e,t,n,i){Array.isArray(e)||(console.warn("THREE.HDRCubeTextureLoader signature has changed. Use .setDataType() instead."),this.setDataType(e),e=t,t=n,n=i,i=arguments[4]);const s=new r.CubeTexture;switch(s.type=this.type,s.type){case r.FloatType:case r.HalfFloatType:"colorSpace"in s?s.colorSpace="srgb-linear":s.encoding=3e3,s.minFilter=r.LinearFilter,s.magFilter=r.LinearFilter,s.generateMipmaps=!1}const a=this;let o=0;function l(t,n,i,l){new r.FileLoader(a.manager).setPath(a.path).setResponseType("arraybuffer").setWithCredentials(a.withCredentials).load(e[t],(function(e){o++;const i=a.hdrLoader.parse(e);if(i){if(void 0!==i.data){const e=new r.DataTexture(i.data,i.width,i.height);e.type=s.type,e.encoding=s.encoding,e.format=s.format,e.minFilter=s.minFilter,e.magFilter=s.magFilter,e.generateMipmaps=s.generateMipmaps,s.images[t]=e}6===o&&(s.needsUpdate=!0,n&&n(s))}}),i,l)}for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(16354),s=n(8083);class a extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){const t=new r.LoadingManager;t.setURLModifier((function(e){const t=function(e){for(const t in n)if(t.substr(-e.length)===e)return n[t]}(e);if(t){console.log("Loading",e);const n=new Blob([t.buffer],{type:"application/octet-stream"});return URL.createObjectURL(n)}return e}));const n=s.unzipSync(new Uint8Array(e));if(n["doc.kml"]){const e=(new DOMParser).parseFromString(fflate.strFromU8(n["doc.kml"]),"application/xml").querySelector("Placemark Model Link href");if(e){return new i.ColladaLoader(t).parse(fflate.strFromU8(n[e.textContent]))}}else{console.warn("KMZLoader: Missing doc.kml file.");for(const e in n){if("dae"===e.split(".").pop().toLowerCase()){return new i.ColladaLoader(t).parse(fflate.strFromU8(n[e]))}}}return console.error("KMZLoader: Couldn't find .dae file."),{scene:new r.Group}}}t.KMZLoader=a},8117:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(83088),o=n(29234),l=n(12258),c=n(84951),h=n(79836),u=new WeakMap;let d,p=0;const f=class extends s.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new a.WorkerPool,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}detectSupport(e){return this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},e.capabilities.isWebGL2&&(this.workerConfig.etc1Supported=!1),this}init(){if(!this.transcoderPending){const e=new s.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),n=new s.FileLoader(this.manager);n.setPath(this.transcoderPath),n.setResponseType("arraybuffer"),n.setWithCredentials(this.withCredentials);const r=n.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,r]).then((([e,t])=>{const n=f.BasisWorker.toString(),r=["/* constants */","let _EngineFormat = "+JSON.stringify(f.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(f.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(f.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([r])),this.transcoderBinary=t,this.workerPool.setWorkerCreator((()=>{const e=new Worker(this.workerSourceURL),t=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:t},[t]),e}))})),p>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),p++}return this.transcoderPending}load(e,t,n,r){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const i=new s.FileLoader(this.manager);i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{if(u.has(e)){return u.get(e).promise.then(t).catch(r)}this._createTexture(e).then((e=>t?t(e):null)).catch(r)}),n,r)}_createTextureFrom(e,t){const{mipmaps:n,width:r,height:i,format:a,type:l,error:h,dfdTransferFn:u,dfdFlags:d}=e;if("error"===l)return Promise.reject(h);const p=t.layerCount>1?new c.CompressedArrayTexture(n,r,i,t.layerCount,a,s.UnsignedByteType):new s.CompressedTexture(n,r,i,a,s.UnsignedByteType);return p.minFilter=1===n.length?s.LinearFilter:s.LinearMipmapLinearFilter,p.magFilter=s.LinearFilter,p.generateMipmaps=!1,p.needsUpdate=!0,"colorSpace"in p?p.colorSpace=u===o.KHR_DF_TRANSFER_SRGB?"srgb":"srgb-linear":p.encoding=u===o.KHR_DF_TRANSFER_SRGB?3001:3e3,p.premultiplyAlpha=!!(d&o.KHR_DF_FLAG_ALPHA_PREMULTIPLIED),p}async _createTexture(e,t={}){const n=o.read(new Uint8Array(e));if(n.vkFormat!==o.VK_FORMAT_UNDEFINED)return async function(e){const{vkFormat:t,pixelWidth:n,pixelHeight:r,pixelDepth:i}=e;if(void 0===g[t])throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");const a=e.levels[0];let c,u;if(e.supercompressionScheme===o.KHR_SUPERCOMPRESSION_NONE)c=a.levelData;else{if(e.supercompressionScheme!==o.KHR_SUPERCOMPRESSION_ZSTD)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");d||(d=new Promise((async e=>{const t=new l.ZSTDDecoder;await t.init(),e(t)}))),c=(await d).decode(a.levelData,a.uncompressedByteLength)}u=A[t]===s.FloatType?new Float32Array(c.buffer,c.byteOffset,c.byteLength/Float32Array.BYTES_PER_ELEMENT):A[t]===s.HalfFloatType?new Uint16Array(c.buffer,c.byteOffset,c.byteLength/Uint16Array.BYTES_PER_ELEMENT):c;const p=0===i?new s.DataTexture(u,n,r):new h.Data3DTexture(u,n,r,i);return p.type=A[t],p.format=g[t],p.encoding=v[t]||3e3,p.needsUpdate=!0,Promise.resolve(p)}(n);const r=t,i=this.init().then((()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:r},[e]))).then((e=>this._createTextureFrom(e.data,n)));return u.set(e,{promise:i}),i}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),p--,this}};let m=f;i(m,"BasisFormat",{ETC1S:0,UASTC_4x4:1}),i(m,"TranscoderFormat",{ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16}),i(m,"EngineFormat",{RGBAFormat:s.RGBAFormat,RGBA_ASTC_4x4_Format:s.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:s.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:s.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:s.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:s.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:s.RGB_ETC1_Format,RGB_ETC2_Format:s.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:s.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:s.RGB_S3TC_DXT1_Format}),i(m,"BasisWorker",(function(){let e,t,n;const r=_EngineFormat,i=_TranscoderFormat,s=_BasisFormat;self.addEventListener("message",(function(a){const u=a.data;switch(u.type){case"init":e=u.config,d=u.transcoderBinary,t=new Promise((e=>{n={wasmBinary:d,onRuntimeInitialized:e},BASIS(n)})).then((()=>{n.initializeBasis(),void 0===n.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:a,hasAlpha:d,mipmaps:p,format:f,dfdTransferFn:m,dfdFlags:g}=function(t){const a=new n.KTX2File(new Uint8Array(t));function u(){a.close(),a.delete()}if(!a.isValid())throw u(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const d=a.isUASTC()?s.UASTC_4x4:s.ETC1S,p=a.getWidth(),f=a.getHeight(),m=a.getLayers()||1,g=a.getLevels(),A=a.getHasAlpha(),v=a.getDFDTransferFunc(),y=a.getDFDFlags(),{transcoderFormat:x,engineFormat:b}=function(t,n,a,h){let u,d;const p=t===s.ETC1S?o:l;for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.CompressedTextureLoader{constructor(e){super(e)}parse(e,t){const n=new s(e,1);return{mipmaps:n.mipmaps(t),width:n.pixelWidth,height:n.pixelHeight,format:n.glInternalFormat,isCubemap:6===n.numberOfFaces,mipmapCount:n.numberOfMipmapLevels}}}class s{constructor(e,t){this.arrayBuffer=e;const n=new Uint8Array(this.arrayBuffer,0,12);if(171!==n[0]||75!==n[1]||84!==n[2]||88!==n[3]||32!==n[4]||49!==n[5]||49!==n[6]||187!==n[7]||13!==n[8]||10!==n[9]||26!==n[10]||10!==n[11])return void console.error("texture missing KTX identifier");const r=Uint32Array.BYTES_PER_ELEMENT,i=new DataView(this.arrayBuffer,12,13*r),s=67305985===i.getUint32(0,!0);this.glType=i.getUint32(1*r,s),this.glTypeSize=i.getUint32(2*r,s),this.glFormat=i.getUint32(3*r,s),this.glInternalFormat=i.getUint32(4*r,s),this.glBaseInternalFormat=i.getUint32(5*r,s),this.pixelWidth=i.getUint32(6*r,s),this.pixelHeight=i.getUint32(7*r,s),this.pixelDepth=i.getUint32(8*r,s),this.numberOfArrayElements=i.getUint32(9*r,s),this.numberOfFaces=i.getUint32(10*r,s),this.numberOfMipmapLevels=i.getUint32(11*r,s),this.bytesOfKeyValueData=i.getUint32(12*r,s),0===this.glType?(this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),0!==this.pixelHeight&&0===this.pixelDepth?0===this.numberOfArrayElements?this.numberOfFaces===t?this.loadType=0:console.warn("number of faces expected"+t+", but found "+this.numberOfFaces):console.warn("texture arrays not currently supported"):console.warn("only 2D textures currently supported")):console.warn("only compressed formats currently supported")}mipmaps(e){const t=[];let n=64+this.bytesOfKeyValueData,r=this.pixelWidth,i=this.pixelHeight;const s=e?this.numberOfMipmapLevels:1;for(let a=0;a{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i="16",s="24",a=new r.Vector3,o=new r.Vector3;class l extends r.ShaderMaterial{constructor(e){super({uniforms:r.UniformsUtils.merge([r.UniformsLib.fog,{diffuse:{value:new r.Color},opacity:{value:1}}]),vertexShader:"\n attribute vec3 control0;\n attribute vec3 control1;\n attribute vec3 direction;\n varying float discardFlag;\n\n #include \n #include \n #include \n #include \n #include \n\n void main() {\n #include \n\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n\n // Transform the line segment ends and control points into camera clip space\n vec4 c0 = projectionMatrix * modelViewMatrix * vec4(control0, 1.0);\n vec4 c1 = projectionMatrix * modelViewMatrix * vec4(control1, 1.0);\n vec4 p0 = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 p1 = projectionMatrix * modelViewMatrix * vec4(position + direction, 1.0);\n\n c0.xy /= c0.w;\n c1.xy /= c1.w;\n p0.xy /= p0.w;\n p1.xy /= p1.w;\n\n // Get the direction of the segment and an orthogonal vector\n vec2 dir = p1.xy - p0.xy;\n vec2 norm = vec2(-dir.y, dir.x);\n\n // Get control point directions from the line\n vec2 c0dir = c0.xy - p1.xy;\n vec2 c1dir = c1.xy - p1.xy;\n\n // If the vectors to the controls points are pointed in different directions away\n // from the line segment then the line should not be drawn.\n float d0 = dot(normalize(norm), normalize(c0dir));\n float d1 = dot(normalize(norm), normalize(c1dir));\n discardFlag = float(sign(d0) != sign(d1));\n\n #include \n #include \n #include \n }\n ",fragmentShader:`\n uniform vec3 diffuse;\n uniform float opacity;\n varying float discardFlag;\n\n #include \n #include \n #include \n #include \n #include \n\n void main() {\n if (discardFlag > 0.5) discard;\n\n #include \n vec3 outgoingLight = vec3(0.0);\n vec4 diffuseColor = vec4(diffuse, opacity);\n #include \n #include \n outgoingLight = diffuseColor.rgb; // simple shader\n gl_FragColor = vec4(outgoingLight, diffuseColor.a);\n #include \n #include <${parseInt(r.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n #include \n #include \n }\n `}),Object.defineProperties(this,{opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},color:{get:function(){return this.uniforms.diffuse.value}}}),this.setValues(e),this.isLDrawConditionalLineMaterial=!0}}class c extends r.LineSegments{constructor(e,t){super(e,t),this.isConditionalLine=!0}}const h=new r.Ray;function u(e){return"Part"===e||"Unofficial_Part"===e}class d{constructor(e,t){this.line=e,this.lineLength=e.length,this.currentCharIndex=0,this.currentChar=" ",this.lineNumber=t}seekNonSpace(){for(;this.currentCharIndex=this.lineLength}setToEnd(){this.currentCharIndex=this.lineLength}getLineNumberString(){return this.lineNumber>=0?" at line "+this.lineNumber:""}}class p{constructor(e){this.loader=e,this._cache={}}cloneResult(e){const t={};return t.faces=e.faces.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone())),normals:e.normals.map((()=>null)),faceNormal:null}))),t.conditionalSegments=e.conditionalSegments.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone())),controlPoints:e.controlPoints.map((e=>e.clone()))}))),t.lineSegments=e.lineSegments.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone()))}))),t.type=e.type,t.category=e.category,t.keywords=e.keywords,t.subobjects=e.subobjects,t.totalFaces=e.totalFaces,t.startingConstructionStep=e.startingConstructionStep,t.materials=e.materials,t.group=null,t}async fetchData(e){let t=!1,n=0;for(;6!==n;){let s=e;switch(n){case 0:n+=1;break;case 1:s="parts/"+s,n+=1;break;case 2:s="p/"+s,n+=1;break;case 3:s="models/"+s,n+=1;break;case 4:s=e.substring(0,e.lastIndexOf("/")+1)+s,n+=1;break;case 5:t?n=6:(s=e=e.toLowerCase(),t=!0,n=0)}const a=this.loader,o=new r.FileLoader(a.manager);o.setPath(a.partsLibraryPath),o.setRequestHeader(a.requestHeader),o.setWithCredentials(a.withCredentials);try{return await o.loadAsync(s)}catch(i){continue}}throw new Error('LDrawLoader: Subobject "'+e+'" could not be loaded.')}parse(e,t=null){const n=this.loader,i=[],s=[],a=[],o=[],l={},c=e=>l[e]||null;let h="Model",u=null,p=null,f=0;-1!==e.indexOf("\r\n")&&(e=e.replace(/\r\n/g,"\n"));const m=e.split("\n"),g=m.length;let A=!1,v=null,y=null,x=!1,b=!0,E=!1,_=!0,S=!1;for(let w=0;w0&&(p||(p=[]),e.forEach((function(e){p.push(e.trim())})));break;case"FILE":w>0&&(A=!0,v=t.getRemainingString(),y="",x=!1,b=!0);break;case"BFC":for(;!t.isAtTheEnd();){const e=t.getToken();switch(e){case"CERTIFY":case"NOCERTIFY":x="CERTIFY"===e,b=!0;break;case"CW":case"CCW":b="CCW"===e;break;case"INVERTNEXT":E=!0;break;case"CLIP":case"NOCLIP":_="CLIP"===e;break;default:console.warn('THREE.LDrawLoader: BFC directive "'+e+'" is unknown.')}}break;case"STEP":S=!0}break;case"1":C=t.getToken(),M=c(C);const d=parseFloat(t.getToken()),m=parseFloat(t.getToken()),O=parseFloat(t.getToken()),N=parseFloat(t.getToken()),k=parseFloat(t.getToken()),G=parseFloat(t.getToken()),z=parseFloat(t.getToken()),Q=parseFloat(t.getToken()),V=parseFloat(t.getToken()),H=parseFloat(t.getToken()),j=parseFloat(t.getToken()),W=parseFloat(t.getToken()),X=(new r.Matrix4).set(N,k,G,d,z,Q,V,m,H,j,W,O,0,0,0,1);let Y=t.getRemainingString().trim().replace(/\\/g,"/");n.fileMap[Y]?Y=n.fileMap[Y]:Y.startsWith("s/")?Y="parts/"+Y:Y.startsWith("48/")&&(Y="p/"+Y),o.push({material:M,colorCode:C,matrix:X,fileName:Y,inverted:E,startingConstructionStep:S}),E=!1;break;case"2":C=t.getToken(),M=c(C),R=t.getVector(),P=t.getVector(),T={material:M,colorCode:C,vertices:[R,P]},s.push(T);break;case"5":C=t.getToken(),M=c(C),R=t.getVector(),P=t.getVector(),F=t.getVector(),U=t.getVector(),T={material:M,colorCode:C,vertices:[R,P],controlPoints:[F,U]},a.push(T);break;case"3":C=t.getToken(),M=c(C),I=b,B=!x||!_,!0===I?(R=t.getVector(),P=t.getVector(),D=t.getVector()):(D=t.getVector(),P=t.getVector(),R=t.getVector()),i.push({material:M,colorCode:C,faceNormal:null,vertices:[R,P,D],normals:[null,null,null]}),f++,!0===B&&(i.push({material:M,colorCode:C,faceNormal:null,vertices:[D,P,R],normals:[null,null,null]}),f++);break;case"4":C=t.getToken(),M=c(C),I=b,B=!x||!_,!0===I?(R=t.getVector(),P=t.getVector(),D=t.getVector(),L=t.getVector()):(L=t.getVector(),D=t.getVector(),P=t.getVector(),R=t.getVector()),i.push({material:M,colorCode:C,faceNormal:null,vertices:[R,P,D,L],normals:[null,null,null,null]}),f+=2,!0===B&&(i.push({material:M,colorCode:C,faceNormal:null,vertices:[L,D,P,R],normals:[null,null,null,null]}),f+=2);break;default:throw new Error('LDrawLoader: Unknown line type "'+g+'"'+t.getLineNumberString()+".")}}return A&&this.setData(v,y),{faces:i,conditionalSegments:a,lineSegments:s,type:h,category:u,keywords:p,subobjects:o,totalFaces:f,startingConstructionStep:S,materials:l,fileName:t,group:null}}getData(e,t=!0){const n=e.toLowerCase(),r=this._cache[n];return null===r||r instanceof Promise?null:t?this.cloneResult(r):r}async ensureDataLoaded(e){const t=e.toLowerCase();t in this._cache||(this._cache[t]=this.fetchData(e).then((n=>{const r=this.parse(n,e);return this._cache[t]=r,r}))),await this._cache[t]}setData(e,t){const n=e.toLowerCase();this._cache[n]=this.parse(t,e)}}function f(e,t,n,r){return(!r&&e===i||r&&e===s)&&(e=t),n[e]||null}class m{constructor(e){this.loader=e,this.parseCache=new p(e),this._cache={}}async processIntoMesh(e){const t=this.loader,n=this.parseCache,l=new Set,c=async(e,a=null)=>{const o=e.subobjects,h=[];for(let t=0,r=o.length;t{const t=n.getData(e.fileName,!1);return r=t.type,/primitive/i.test(r)||"Subpart"===r?c(n.getData(e.fileName),e):this.loadModel(e.fileName).catch((e=>(console.warn(e),null)));var r}));h.push(r)}const u=new r.Group;u.userData.category=e.category,u.userData.keywords=e.keywords,e.group=u;const d=await Promise.all(h);for(let n=0,r=d.length;n1;!function(e){for(let t=0,n=e.length;tc&&([a,c]=[c,a]),n.distances.push(a,c)}}for(let r=0,f=e.length;rs&&([i,s]=[s,i]);let a=!1;for(let e=0,o=r.length;e=r[e]&&s<=r[e+1]){a=!0;break}if(a)continue}}const A={index:r,tri:t};d[g]=A}}for(;;){let e=null;for(const n in d){e=d[n];break}if(null===e)break;const t=[e];for(;t.length>0;){const e=t.pop().tri,n=e.vertices,i=e.normals,s=e.faceNormal,o=n.length;for(let l=0;l0&&u.add(A(e.faces,3,!1,e.totalFaces)),e.lineSegments.length>0&&u.add(A(e.lineSegments,2)),e.conditionalSegments.length>0&&u.add(A(e.conditionalSegments,2,!0)),u}hasCachedModel(e){return null!==e&&e.toLowerCase()in this._cache}async getCachedModel(e){if(null!==e&&this.hasCachedModel(e)){const t=e.toLowerCase();return(await this._cache[t]).clone()}return null}async loadModel(e){const t=this.parseCache,n=e.toLowerCase();if(this.hasCachedModel(e))return this.getCachedModel(e);{await t.ensureDataLoaded(e);const r=t.getData(e),i=this.processIntoMesh(r);if(this.hasCachedModel(e))return this.getCachedModel(e);u(r.type)&&(this._cache[n]=i);return(await i).clone()}}async parseModel(e){const t=this.parseCache.parse(e);return u(t.type)&&this.hasCachedModel(t.fileName)?this.getCachedModel(t.fileName):this.processIntoMesh(t)}}function g(e,t){return e.colorCode===t.colorCode?0:e.colorCode0&&d.addGroup(f,1/0,h.length-1),d.setAttribute("position",new r.BufferAttribute(s,3)),null!==l&&d.setAttribute("normal",new r.BufferAttribute(l,3));let v=null;if(2===t?v=n?new c(d,1===h.length?h[0]:h):new r.LineSegments(d,1===h.length?h[0]:h):3===t&&(v=new r.Mesh(d,1===h.length?h[0]:h)),n){v.isConditionalLine=!0;const t=new Float32Array(3*e.length*2),n=new Float32Array(3*e.length*2),i=new Float32Array(3*e.length*2);for(let r=0,s=e.length;r{this.partsCache.parseModel(e,this.materialLibrary).then((e=>{this.applyMaterialsToMesh(e,i,this.materialLibrary,!0),this.computeConstructionSteps(e),t(e)})).catch(s)}),n,s)}parse(e,t){this.partsCache.parseModel(e,this.materialLibrary).then((e=>{this.computeConstructionSteps(e),t(e)}))}setMaterials(e){this.materialLibrary={},this.materials=[];for(let t=0,n=e.length;t{if(e.isMesh||e.isLineSegments)if(Array.isArray(e.material))for(let t=0,n=e.material.length;t{e.isGroup&&(e.userData.startingConstructionStep&&t++,e.userData.constructionStep=t)})),e.userData.numConstructionSteps=t+1}}t.LDrawLoader=v},7472:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(79836);class s extends r.Loader{load(e,t,n,i){const s=new r.FileLoader(this.manager);s.setPath(this.path),s.setResponseType("text"),s.load(e,(n=>{try{t(this.parse(n))}catch(r){i?i(r):console.error(r),this.manager.itemError(e)}}),n,i)}parse(e){const t=(e=e.replace(/^#.*?(\n|\r)/gm,"").replace(/^\s*?(\n|\r)/gm,"").trim()).split(/[\n\r]+/g),n=t[0].trim().split(/\s+/g).map((e=>parseFloat(e))),s=n[1]-n[0],a=n.length;for(let r=1,i=n.length;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(79836);class s extends r.Loader{load(e,t,n,i){const s=new r.FileLoader(this.manager);s.setPath(this.path),s.setResponseType("text"),s.load(e,(n=>{try{t(this.parse(n))}catch(r){i?i(r):console.error(r),this.manager.itemError(e)}}),n,i)}parse(e){e=e.replace(/^#.*?(\n|\r)/gm,"").replace(/^\s*?(\n|\r)/gm,"").trim();let t=null,n=null;const s=new r.Vector3(0,0,0),a=new r.Vector3(1,1,1),o=e.split(/[\n\r]+/g);let l=null,c=0;for(let r=0,i=o.length;r1||o<0||h>1||h<0||u>1||u<0)throw new Error("LUTCubeLoader : Non normalized values not supported.");l[c+0]=255*o,l[c+1]=255*h,l[c+2]=255*u,l[c+3]=255,c+=4}}const h=new r.DataTexture;h.image.data=l,h.image.width=n,h.image.height=n*n,h.type=r.UnsignedByteType,h.magFilter=r.LinearFilter,h.minFilter=r.LinearFilter,h.wrapS=r.ClampToEdgeWrapping,h.wrapT=r.ClampToEdgeWrapping,h.generateMipmaps=!1,h.needsUpdate=!0;const u=new i.Data3DTexture;return u.image.data=l,u.image.width=n,u.image.height=n,u.image.depth=n,u.type=r.UnsignedByteType,u.magFilter=r.LinearFilter,u.minFilter=r.LinearFilter,u.wrapS=r.ClampToEdgeWrapping,u.wrapT=r.ClampToEdgeWrapping,u.wrapR=r.ClampToEdgeWrapping,u.generateMipmaps=!1,u.needsUpdate=!0,{title:t,size:n,domainMin:s,domainMax:a,texture:h,texture3D:u}}}t.LUTCubeLoader=s},18113:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(40876);let s;class a extends r.Loader{constructor(e,t={}){super(e),this.resourcePath=void 0!==t.resourcePath?t.resourcePath:""}load(e,t,n,i){const s=this,a=""===s.path?function(e,t){const n=e.indexOf(t);return-1===n?"./":e.substr(0,n)}(e,"Objects"):s.path,o=e.split(a).pop().split(".")[0],l=new r.FileLoader(this.manager);l.setPath(s.path),l.setResponseType("arraybuffer"),l.load(e,(function(n){try{t(s.parse(n,a,o))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e,t,n){s=(new i.IFFParser).parse(e);const a=new r.TextureLoader(this.manager).setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin);return new o(a).parse(n)}}class o{constructor(e){this.textureLoader=e}parse(e){return this.materials=new l(this.textureLoader).parse(),this.defaultLayerName=e,this.meshes=this.parseLayers(),{materials:this.materials,meshes:this.meshes}}parseLayers(){const e=[],t=[],n=new c,r=this;return s.layers.forEach((function(i){const s=n.parse(i.geometry,i),a=r.parseMesh(s,i);e[i.number]=a,-1===i.parent?t.push(a):e[i.parent].add(a)})),this.applyPivots(t),t}parseMesh(e,t){let n;const i=this.getMaterials(e.userData.matNames,t.geometry.type);return this.duplicateUVs(e,i),n="points"===t.geometry.type?new r.Points(e,i):"lines"===t.geometry.type?new r.LineSegments(e,i):new r.Mesh(e,i),t.name?n.name=t.name:n.name=this.defaultLayerName+"_layer_"+t.number,n.userData.pivot=t.pivot,n}applyPivots(e){e.forEach((function(e){e.traverse((function(e){const t=e.userData.pivot;if(e.position.x+=t[0],e.position.y+=t[1],e.position.z+=t[2],e.parent){const t=e.parent.userData.pivot;e.position.x-=t[0],e.position.y-=t[1],e.position.z-=t[2]}}))}))}getMaterials(e,t){const n=[],i=this;e.forEach((function(e,t){n[t]=i.getMaterialByName(e)})),"points"!==t&&"lines"!==t||n.forEach((function(e,i){const s={color:e.color};"points"===t?(s.size=.1,s.map=e.map,s.morphTargets=e.morphTargets,n[i]=new r.PointsMaterial(s)):"lines"===t&&(n[i]=new r.LineBasicMaterial(s))}));const s=n.filter(Boolean);return 1===s.length?s[0]:n}getMaterialByName(e){return this.materials.filter((function(t){return t.name===e}))[0]}duplicateUVs(e,t){let n=!1;Array.isArray(t)?t.forEach((function(e){e.aoMap&&(n=!0)})):t.aoMap&&(n=!0),n&&e.setAttribute("uv2",new r.BufferAttribute(e.attributes.uv.array,2))}}class l{constructor(e){this.textureLoader=e}parse(){const e=[];this.textures={};for(const t in s.materials)"LWO3"===s.format?e.push(this.parseMaterial(s.materials[t],t,s.textures)):"LWO2"===s.format&&e.push(this.parseMaterialLwo2(s.materials[t],t,s.textures));return e}parseMaterial(e,t,n){let r={name:t,side:this.getSide(e.attributes),flatShading:this.getSmooth(e.attributes)};const i=this.parseConnections(e.connections,e.nodes),s=this.parseTextureNodes(i.maps);this.parseAttributeImageMaps(i.attributes,n,s,e.maps);const a=this.parseAttributes(i.attributes,s);this.parseEnvMap(i,s,a),r=Object.assign(s,r),r=Object.assign(r,a);return new(this.getMaterialType(i.attributes))(r)}parseMaterialLwo2(e,t){let n={name:t,side:this.getSide(e.attributes),flatShading:this.getSmooth(e.attributes)};const i=this.parseAttributes(e.attributes,{});return n=Object.assign(n,i),new r.MeshPhongMaterial(n)}getSide(e){if(!e.side)return r.BackSide;switch(e.side){case 0:case 1:return r.BackSide;case 2:return r.FrontSide;case 3:return r.DoubleSide}}getSmooth(e){return!e.smooth||!e.smooth}parseConnections(e,t){const n={maps:{}},r=e.inputName,i=e.inputNodeName,s=e.nodeName,a=this;return r.forEach((function(e,r){if("Material"===e){const e=a.getNodeByRefName(i[r],t);n.attributes=e.attributes,n.envMap=e.fileName,n.name=i[r]}})),s.forEach((function(e,s){e===n.name&&(n.maps[r[s]]=a.getNodeByRefName(i[s],t))})),n}getNodeByRefName(e,t){for(const n in t)if(t[n].refName===e)return t[n]}parseTextureNodes(e){const t={};for(const n in e){const i=e[n],s=i.fileName;if(!s)return;const a=this.loadTexture(s);switch(void 0!==i.widthWrappingMode&&(a.wrapS=this.getWrappingType(i.widthWrappingMode)),void 0!==i.heightWrappingMode&&(a.wrapT=this.getWrappingType(i.heightWrappingMode)),n){case"Color":t.map=a;break;case"Roughness":t.roughnessMap=a,t.roughness=.5;break;case"Specular":t.specularMap=a,t.specular=16777215;break;case"Luminous":t.emissiveMap=a,t.emissive=8421504;break;case"Luminous Color":t.emissive=8421504;break;case"Metallic":t.metalnessMap=a,t.metalness=.5;break;case"Transparency":case"Alpha":t.alphaMap=a,t.transparent=!0;break;case"Normal":t.normalMap=a,void 0!==i.amplitude&&(t.normalScale=new r.Vector2(i.amplitude,i.amplitude));break;case"Bump":t.bumpMap=a}}return t.roughnessMap&&t.specularMap&&delete t.specularMap,t}parseAttributeImageMaps(e,t,n){for(const r in e){const i=e[r];if(i.maps){const e=i.maps[0],s=this.getTexturePathByIndex(e.imageIndex,t);if(!s)return;const a=this.loadTexture(s);switch(void 0!==e.wrap&&(a.wrapS=this.getWrappingType(e.wrap.w)),void 0!==e.wrap&&(a.wrapT=this.getWrappingType(e.wrap.h)),r){case"Color":n.map=a;break;case"Diffuse":n.aoMap=a;break;case"Roughness":n.roughnessMap=a,n.roughness=1;break;case"Specular":n.specularMap=a,n.specular=16777215;break;case"Luminosity":n.emissiveMap=a,n.emissive=8421504;break;case"Metallic":n.metalnessMap=a,n.metalness=1;break;case"Transparency":case"Alpha":n.alphaMap=a,n.transparent=!0;break;case"Normal":n.normalMap=a;break;case"Bump":n.bumpMap=a}}}}parseAttributes(e,t){const n={};return e.Color&&!t.map?n.color=(new r.Color).fromArray(e.Color.value):n.color=new r.Color,e.Transparency&&0!==e.Transparency.value&&(n.opacity=1-e.Transparency.value,n.transparent=!0),e["Bump Height"]&&(n.bumpScale=.1*e["Bump Height"].value),e["Refraction Index"]&&(n.refractionRatio=1/e["Refraction Index"].value),this.parsePhysicalAttributes(n,e,t),this.parseStandardAttributes(n,e,t),this.parsePhongAttributes(n,e,t),n}parsePhysicalAttributes(e,t){t.Clearcoat&&t.Clearcoat.value>0&&(e.clearcoat=t.Clearcoat.value,t["Clearcoat Gloss"]&&(e.clearcoatRoughness=.5*(1-t["Clearcoat Gloss"].value)))}parseStandardAttributes(e,t,n){t.Luminous&&(e.emissiveIntensity=t.Luminous.value,t["Luminous Color"]&&!n.emissive?e.emissive=(new r.Color).fromArray(t["Luminous Color"].value):e.emissive=new r.Color(8421504)),t.Roughness&&!n.roughnessMap&&(e.roughness=t.Roughness.value),t.Metallic&&!n.metalnessMap&&(e.metalness=t.Metallic.value)}parsePhongAttributes(e,t,n){t.Diffuse&&e.color.multiplyScalar(t.Diffuse.value),t.Reflection&&(e.reflectivity=t.Reflection.value,e.combine=r.AddOperation),t.Luminosity&&(e.emissiveIntensity=t.Luminosity.value,n.emissiveMap||n.map?e.emissive=new r.Color(8421504):e.emissive=e.color),t.Roughness||!t.Specular||n.specularMap||(t["Color Highlight"]?e.specular=(new r.Color).setScalar(t.Specular.value).lerp(e.color.clone().multiplyScalar(t.Specular.value),t["Color Highlight"].value):e.specular=(new r.Color).setScalar(t.Specular.value)),e.specular&&t.Glossiness&&(e.shininess=7+Math.pow(2,12*t.Glossiness.value+2))}parseEnvMap(e,t,n){if(e.envMap){const i=this.loadTexture(e.envMap);n.transparent&&n.opacity<.999?(i.mapping=r.EquirectangularRefractionMapping,void 0!==n.reflectivity&&(delete n.reflectivity,delete n.combine),void 0!==n.metalness&&delete n.metalness):i.mapping=r.EquirectangularReflectionMapping,t.envMap=i}}getTexturePathByIndex(e){let t="";return s.textures?(s.textures.forEach((function(n){n.index===e&&(t=n.fileName)})),t):t}loadTexture(e){if(!e)return null;return this.textureLoader.load(e,void 0,void 0,(function(){console.warn("LWOLoader: non-standard resource hierarchy. Use `resourcePath` parameter to specify root content directory.")}))}getWrappingType(e){switch(e){case 0:return console.warn('LWOLoader: "Reset" texture wrapping type is not supported in three.js'),r.ClampToEdgeWrapping;case 1:return r.RepeatWrapping;case 2:return r.MirroredRepeatWrapping;case 3:return r.ClampToEdgeWrapping}}getMaterialType(e){return e.Clearcoat&&e.Clearcoat.value>0?r.MeshPhysicalMaterial:e.Roughness?r.MeshStandardMaterial:r.MeshPhongMaterial}}class c{parse(e,t){const n=new r.BufferGeometry;n.setAttribute("position",new r.Float32BufferAttribute(e.points,3));const i=this.splitIndices(e.vertexIndices,e.polygonDimensions);return n.setIndex(i),this.parseGroups(n,e),n.computeVertexNormals(),this.parseUVs(n,t,i),this.parseMorphTargets(n,t,i),n.translate(-t.pivot[0],-t.pivot[1],-t.pivot[2]),n}splitIndices(e,t){const n=[];let r=0;return t.forEach((function(t){if(t<4)for(let i=0;i4){for(let i=1;i0){let t;l[n[h]]?t=l[n[h]]:(t=o,l[n[h]]=o,r[o]=n[h]),e.addGroup(u,d,t)}e.userData.matNames=r}splitMaterialIndices(e,t){const n=[];return e.forEach((function(e,r){if(e<=3)n.push(t[2*r],t[2*r+1]);else if(4===e)n.push(t[2*r],t[2*r+1],t[2*r],t[2*r+1]);else for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(47132);class s extends r.Loader{setQuality(e){this._quality=e}load(e,t,n,s){const a=this._quality||1,o=new r.CanvasTexture;o.minFilter=r.NearestFilter;const l=new r.FileLoader(this.manager);return l.setPath(this.path),l.setWithCredentials(this.withCredentials),l.load(e,(function(e){const n=JSON.parse(e),r=document.createElement("div");r.style.width=n.w+"px",r.style.height=n.h+"px",document.body.appendChild(r);const s=i.loadAnimation({container:r,animType:"canvas",loop:!0,autoplay:!0,animationData:n,rendererSettings:{dpr:a}});o.animation=s,o.image=s.container,s.addEventListener("enterFrame",(function(){o.needsUpdate=!0})),r.style.display="none",void 0!==t&&t(o)}),n,s),o}}t.LottieLoader=s},28057:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=[[-.525731,0,.850651],[-.442863,.238856,.864188],[-.295242,0,.955423],[-.309017,.5,.809017],[-.16246,.262866,.951056],[0,0,1],[0,.850651,.525731],[-.147621,.716567,.681718],[.147621,.716567,.681718],[0,.525731,.850651],[.309017,.5,.809017],[.525731,0,.850651],[.295242,0,.955423],[.442863,.238856,.864188],[.16246,.262866,.951056],[-.681718,.147621,.716567],[-.809017,.309017,.5],[-.587785,.425325,.688191],[-.850651,.525731,0],[-.864188,.442863,.238856],[-.716567,.681718,.147621],[-.688191,.587785,.425325],[-.5,.809017,.309017],[-.238856,.864188,.442863],[-.425325,.688191,.587785],[-.716567,.681718,-.147621],[-.5,.809017,-.309017],[-.525731,.850651,0],[0,.850651,-.525731],[-.238856,.864188,-.442863],[0,.955423,-.295242],[-.262866,.951056,-.16246],[0,1,0],[0,.955423,.295242],[-.262866,.951056,.16246],[.238856,.864188,.442863],[.262866,.951056,.16246],[.5,.809017,.309017],[.238856,.864188,-.442863],[.262866,.951056,-.16246],[.5,.809017,-.309017],[.850651,.525731,0],[.716567,.681718,.147621],[.716567,.681718,-.147621],[.525731,.850651,0],[.425325,.688191,.587785],[.864188,.442863,.238856],[.688191,.587785,.425325],[.809017,.309017,.5],[.681718,.147621,.716567],[.587785,.425325,.688191],[.955423,.295242,0],[1,0,0],[.951056,.16246,.262866],[.850651,-.525731,0],[.955423,-.295242,0],[.864188,-.442863,.238856],[.951056,-.16246,.262866],[.809017,-.309017,.5],[.681718,-.147621,.716567],[.850651,0,.525731],[.864188,.442863,-.238856],[.809017,.309017,-.5],[.951056,.16246,-.262866],[.525731,0,-.850651],[.681718,.147621,-.716567],[.681718,-.147621,-.716567],[.850651,0,-.525731],[.809017,-.309017,-.5],[.864188,-.442863,-.238856],[.951056,-.16246,-.262866],[.147621,.716567,-.681718],[.309017,.5,-.809017],[.425325,.688191,-.587785],[.442863,.238856,-.864188],[.587785,.425325,-.688191],[.688191,.587785,-.425325],[-.147621,.716567,-.681718],[-.309017,.5,-.809017],[0,.525731,-.850651],[-.525731,0,-.850651],[-.442863,.238856,-.864188],[-.295242,0,-.955423],[-.16246,.262866,-.951056],[0,0,-1],[.295242,0,-.955423],[.16246,.262866,-.951056],[-.442863,-.238856,-.864188],[-.309017,-.5,-.809017],[-.16246,-.262866,-.951056],[0,-.850651,-.525731],[-.147621,-.716567,-.681718],[.147621,-.716567,-.681718],[0,-.525731,-.850651],[.309017,-.5,-.809017],[.442863,-.238856,-.864188],[.16246,-.262866,-.951056],[.238856,-.864188,-.442863],[.5,-.809017,-.309017],[.425325,-.688191,-.587785],[.716567,-.681718,-.147621],[.688191,-.587785,-.425325],[.587785,-.425325,-.688191],[0,-.955423,-.295242],[0,-1,0],[.262866,-.951056,-.16246],[0,-.850651,.525731],[0,-.955423,.295242],[.238856,-.864188,.442863],[.262866,-.951056,.16246],[.5,-.809017,.309017],[.716567,-.681718,.147621],[.525731,-.850651,0],[-.238856,-.864188,-.442863],[-.5,-.809017,-.309017],[-.262866,-.951056,-.16246],[-.850651,-.525731,0],[-.716567,-.681718,-.147621],[-.716567,-.681718,.147621],[-.525731,-.850651,0],[-.5,-.809017,.309017],[-.238856,-.864188,.442863],[-.262866,-.951056,.16246],[-.864188,-.442863,.238856],[-.809017,-.309017,.5],[-.688191,-.587785,.425325],[-.681718,-.147621,.716567],[-.442863,-.238856,.864188],[-.587785,-.425325,.688191],[-.309017,-.5,.809017],[-.147621,-.716567,.681718],[-.425325,-.688191,.587785],[-.16246,-.262866,.951056],[.442863,-.238856,.864188],[.16246,-.262866,.951056],[.309017,-.5,.809017],[.147621,-.716567,.681718],[0,-.525731,.850651],[.425325,-.688191,.587785],[.587785,-.425325,.688191],[.688191,-.587785,.425325],[-.955423,.295242,0],[-.951056,.16246,.262866],[-1,0,0],[-.850651,0,.525731],[-.955423,-.295242,0],[-.951056,-.16246,.262866],[-.864188,.442863,-.238856],[-.951056,.16246,-.262866],[-.809017,.309017,-.5],[-.864188,-.442863,-.238856],[-.951056,-.16246,-.262866],[-.809017,-.309017,-.5],[-.681718,.147621,-.716567],[-.681718,-.147621,-.716567],[-.850651,0,-.525731],[-.688191,.587785,-.425325],[-.587785,.425325,-.688191],[-.425325,.688191,-.587785],[-.425325,-.688191,-.587785],[-.587785,-.425325,-.688191],[-.688191,-.587785,-.425325]];class s extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){const t=new DataView(e),n={},s=["ident","version","skinwidth","skinheight","framesize","num_skins","num_vertices","num_st","num_tris","num_glcmds","num_frames","offset_skins","offset_st","offset_tris","offset_frames","offset_glcmds","offset_end"];for(let r=0;r0){const n=[];for(let t=0,r=c.length;t0){const n=[];for(let t=0,r=c.length;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new r.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.load(e,(function(e){t(s.parse(e))}),n,i)}parse(e){const t=new DataView(e),n=t.getUint32(0),i=t.getUint32(4);let s=8;const a=new Float32Array(n),o=new Float32Array(n*n).fill(0);for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(2545),s=n(62717);class a extends r.Loader{constructor(e){super(e),this.loader=new r.FileLoader(this.manager),this.parser=null,this.meshBuilder=new l(this.manager),this.animationBuilder=new u}setAnimationPath(e){return this.animationPath=e,this}load(e,t,n,i){const s=this.meshBuilder.setCrossOrigin(this.crossOrigin);let a;a=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:r.LoaderUtils.extractUrlBase(e);const o=this._extractExtension(e).toLowerCase();"pmd"===o||"pmx"===o?this["pmd"===o?"loadPMD":"loadPMX"](e,(function(e){t(s.build(e,a,n,i))}),n,i):i&&i(new Error("THREE.MMDLoader: Unknown model file extension ."+o+"."))}loadAnimation(e,t,n,r,i){const s=this.animationBuilder;this.loadVMD(e,(function(e){n(t.isCamera?s.buildCameraAnimation(e):s.build(e,t))}),r,i)}loadWithAnimation(e,t,n,r,i){const s=this;this.load(e,(function(e){s.loadAnimation(t,e,(function(t){n({mesh:e,animation:t})}),r,i)}),r,i)}loadPMD(e,t,n,r){const i=this._getParser();this.loader.setMimeType(void 0).setPath(this.path).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials).load(e,(function(e){t(i.parsePmd(e,!0))}),n,r)}loadPMX(e,t,n,r){const i=this._getParser();this.loader.setMimeType(void 0).setPath(this.path).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials).load(e,(function(e){t(i.parsePmx(e,!0))}),n,r)}loadVMD(e,t,n,r){const i=Array.isArray(e)?e:[e],s=[],a=i.length,o=this._getParser();this.loader.setMimeType(void 0).setPath(this.animationPath).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials);for(let l=0,c=i.length;l=e?s.skinIndices[e]:0);for(let e=0;e<4;e++)c.push(s.skinWeights.length-1>=e?s.skinWeights[e]:0)}for(let r=0;r=0&&(s.limitation=new r.Vector3(1,0,0)),n.links.push(s)}d.push(n)}else for(let x=0;x0,o.morphTargets=t.morphTargets.length>0,o.fog=!0,o.blending=r.CustomBlending,o.blendSrc=r.SrcAlphaFactor,o.blendDst=r.OneMinusSrcAlphaFactor,o.blendSrcAlpha=r.SrcAlphaFactor,o.blendDstAlpha=r.DstAlphaFactor,"pmx"===e.metadata.format&&1==(1&a.flag)?o.side=r.DoubleSide:o.side=1===o.opacity?r.FrontSide:r.DoubleSide,"pmd"===e.metadata.format){if(a.fileName){const e=a.fileName.split("*");if(o.map=this._loadTexture(e[0],i),e.length>1){const t=e[1].slice(-4).toLowerCase();o.envMap=this._loadTexture(e[1],i),o.combine=".sph"===t?r.MultiplyOperation:r.AddOperation}}const t=-1===a.toonIndex?"toon00.bmp":e.toonTextures[a.toonIndex].fileName;o.gradientMap=this._loadTexture(t,i,{isToonTexture:!0,isDefaultToonTexture:this._isDefaultToonTexture(t)}),o.userData.outlineParameters={thickness:1===a.edgeFlag?.003:0,color:[0,0,0],alpha:1,visible:1===a.edgeFlag}}else{let t,n;-1!==a.textureIndex&&(o.map=this._loadTexture(e.textures[a.textureIndex],i)),-1===a.envTextureIndex||1!==a.envFlag&&2!=a.envFlag||(o.envMap=this._loadTexture(e.textures[a.envTextureIndex],i),o.combine=1===a.envFlag?r.MultiplyOperation:r.AddOperation),-1===a.toonIndex||0!==a.toonFlag?(t="toon"+("0"+(a.toonIndex+1)).slice(-2)+".bmp",n=!0):(t=e.textures[a.toonIndex],n=!1),o.gradientMap=this._loadTexture(t,i,{isToonTexture:!0,isDefaultToonTexture:n}),o.userData.outlineParameters={thickness:a.edgeSize/300,color:a.edgeColor.slice(0,3),alpha:a.edgeColor[3],visible:0!=(16&a.flag)&&a.edgeSize>0}}void 0!==o.map&&(o.transparent||this._checkImageTransparency(o.map,t,s),o.emissive.multiplyScalar(.2)),n.push(new r.MeshToonMaterial(o))}if("pmx"===e.metadata.format){let t=function(e,t){for(let n=0,r=e.length;n2){n=n.slice(),r=r.slice(),i=i.slice();const e=r.length/n.length,t=i.length/n.length;let s=1;for(let a=2,o=n.length;as){n[s]=n[a];for(let t=0;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=""===this.path?r.LoaderUtils.extractUrlBase(e):this.path,o=new r.FileLoader(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,(function(n){try{t(s.parse(n,a))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}setMaterialOptions(e){return this.materialOptions=e,this}parse(e,t){const n=e.split("\n");let r={};const i=/\s+/,a={};for(let s=0;s=0?e.substring(0,t):e;o=o.toLowerCase();let l=t>=0?e.substring(t+1):"";if(l=l.trim(),"newmtl"===o)r={name:l},a[l]=r;else if("ka"===o||"kd"===o||"ks"===o||"ke"===o){const e=l.split(i,3);r[o]=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])]}else r[o]=l}const o=new s(this.resourcePath||t,this.materialOptions);return o.setCrossOrigin(this.crossOrigin),o.setManager(this.manager),o.setMaterials(a),o}}class s{constructor(e="",t={}){this.baseUrl=e,this.options=t,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.crossOrigin="anonymous",this.side=void 0!==this.options.side?this.options.side:r.FrontSide,this.wrap=void 0!==this.options.wrap?this.options.wrap:r.RepeatWrapping}setCrossOrigin(e){return this.crossOrigin=e,this}setManager(e){this.manager=e}setMaterials(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}}convert(e){if(!this.options)return e;const t={};for(const n in e){const r=e[n],i={};t[n]=i;for(const e in r){let t=!0,n=r[e];const s=e.toLowerCase();switch(s){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(n=[n[0]/255,n[1]/255,n[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===n[0]&&0===n[1]&&0===n[2]&&(t=!1)}t&&(i[s]=n)}}return t}preload(){for(const e in this.materialsInfo)this.create(e)}getIndex(e){return this.nameLookup[e]}getAsArray(){let e=0;for(const t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray}create(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]}createMaterial_(e){const t=this,n=this.materialsInfo[e],i={name:e,side:this.side};function s(e,n){if(i[e])return;const r=t.getTextureParams(n,i),s=t.loadTexture((a=t.baseUrl,"string"!=typeof(o=r.url)||""===o?"":/^https?:\/\//i.test(o)?o:a+o));var a,o;s.repeat.copy(r.scale),s.offset.copy(r.offset),s.wrapS=t.wrap,s.wrapT=t.wrap,i[e]=s}for(const a in n){const e=n[a];let t;if(""!==e)switch(a.toLowerCase()){case"kd":i.color=(new r.Color).fromArray(e);break;case"ks":i.specular=(new r.Color).fromArray(e);break;case"ke":i.emissive=(new r.Color).fromArray(e);break;case"map_kd":s("map",e);break;case"map_ks":s("specularMap",e);break;case"map_ke":s("emissiveMap",e);break;case"norm":s("normalMap",e);break;case"map_bump":case"bump":s("bumpMap",e);break;case"map_d":s("alphaMap",e),i.transparent=!0;break;case"ns":i.shininess=parseFloat(e);break;case"d":t=parseFloat(e),t<1&&(i.opacity=t,i.transparent=!0);break;case"tr":t=parseFloat(e),this.options&&this.options.invertTrProperty&&(t=1-t),t>0&&(i.opacity=1-t,i.transparent=!0)}}return this.materials[e]=new r.MeshPhongMaterial(i),this.materials[e]}getTextureParams(e,t){const n={scale:new r.Vector2(1,1),offset:new r.Vector2(0,0)},i=e.split(/\s+/);let s;return s=i.indexOf("-bm"),s>=0&&(t.bumpScale=parseFloat(i[s+1]),i.splice(s,2)),s=i.indexOf("-s"),s>=0&&(n.scale.set(parseFloat(i[s+1]),parseFloat(i[s+2])),i.splice(s,4)),s=i.indexOf("-o"),s>=0&&(n.offset.set(parseFloat(i[s+1]),parseFloat(i[s+2])),i.splice(s,4)),n.url=i.join(" ").trim(),n}loadTexture(e,t,n,i,s){const a=void 0!==this.manager?this.manager:r.DefaultLoadingManager;let o=a.getHandler(e);null===o&&(o=new r.TextureLoader(a)),o.setCrossOrigin&&o.setCrossOrigin(this.crossOrigin);const l=o.load(e,n,i,s);return void 0!==t&&(l.mapping=t),l}}t.MTLLoader=i},78798:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(8083),s=n(61350);class a extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){let t=e,n=0;const a=new Int8Array(new Int16Array([1]).buffer)[0]>0,l={};const c=function(e,r){null==r&&(r=1);let i=1,s=Uint8Array;switch(e){case"uchar":break;case"schar":s=Int8Array;break;case"ushort":s=Uint16Array,i=2;break;case"sshort":s=Int16Array,i=2;break;case"uint":s=Uint32Array,i=4;break;case"sint":s=Int32Array,i=4;break;case"float":s=Float32Array,i=4;break;case"complex":case"double":s=Float64Array,i=8}let o=new s(t.slice(n,n+=r*i));return true!=a&&(o=function(e,t){const n=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let r=0;ri;e--,i++){const t=n[i];n[i]=n[e],n[e]=t}return e}(o,i)),1==r?o[0]:o}("uchar",e.byteLength),h=c.length;let u,d=null,p=0;for(u=1;u13)&&32!==r?i+=String.fromCharCode(r):(""!==i&&(o[c]=h(i,a),c++),i="");return""!==i&&(o[c]=h(i,a),c++),o}(t);else if("raw"===l.encoding){const e=new Uint8Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=/^[og]\s*(.+)?/,s=/^mtllib /,a=/^usemtl /,o=/^usemap /,l=new r.Vector3,c=new r.Vector3,h=new r.Vector3,u=new r.Vector3,d=new r.Vector3;function p(){const e={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);const n=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(e,t){const n=this._finalize(!1);n&&(n.inherited||n.groupCount<=0)&&this.materials.splice(n.index,1);const r={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==n?n.smooth:this.smooth,groupStart:void 0!==n?n.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){const t={index:"number"==typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(r),r},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){const t=this.currentMaterial();if(t&&-1===t.groupEnd&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(let n=this.materials.length-1;n>=0;n--)this.materials[n].groupCount<=0&&this.materials.splice(n,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},n&&n.name&&"function"==typeof n.clone){const e=n.clone(0);e.inherited=!0,this.object.materials.push(e)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){const n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseNormalIndex:function(e,t){const n=parseInt(e,10);return 3*(n>=0?n-1:n+t/3)},parseUVIndex:function(e,t){const n=parseInt(e,10);return 2*(n>=0?n-1:n+t/2)},addVertex:function(e,t,n){const r=this.vertices,i=this.object.geometry.vertices;i.push(r[e+0],r[e+1],r[e+2]),i.push(r[t+0],r[t+1],r[t+2]),i.push(r[n+0],r[n+1],r[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 r=this.normals,i=this.object.geometry.normals;i.push(r[e+0],r[e+1],r[e+2]),i.push(r[t+0],r[t+1],r[t+2]),i.push(r[n+0],r[n+1],r[n+2])},addFaceNormal:function(e,t,n){const r=this.vertices,i=this.object.geometry.normals;l.fromArray(r,e),c.fromArray(r,t),h.fromArray(r,n),d.subVectors(h,c),u.subVectors(l,c),d.cross(u),d.normalize(),i.push(d.x,d.y,d.z),i.push(d.x,d.y,d.z),i.push(d.x,d.y,d.z)},addColor:function(e,t,n){const r=this.colors,i=this.object.geometry.colors;void 0!==r[e]&&i.push(r[e+0],r[e+1],r[e+2]),void 0!==r[t]&&i.push(r[t+0],r[t+1],r[t+2]),void 0!==r[n]&&i.push(r[n+0],r[n+1],r[n+2])},addUV:function(e,t,n){const r=this.uvs,i=this.object.geometry.uvs;i.push(r[e+0],r[e+1]),i.push(r[t+0],r[t+1]),i.push(r[n+0],r[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,r,i,s,a,o,l){const c=this.vertices.length;let h=this.parseVertexIndex(e,c),u=this.parseVertexIndex(t,c),d=this.parseVertexIndex(n,c);if(this.addVertex(h,u,d),this.addColor(h,u,d),void 0!==a&&""!==a){const e=this.normals.length;h=this.parseNormalIndex(a,e),u=this.parseNormalIndex(o,e),d=this.parseNormalIndex(l,e),this.addNormal(h,u,d)}else this.addFaceNormal(h,u,d);if(void 0!==r&&""!==r){const e=this.uvs.length;h=this.parseUVIndex(r,e),u=this.parseUVIndex(i,e),d=this.parseUVIndex(s,e),this.addUV(h,u,d),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,r=e.length;n=7?t.colors.push(parseFloat(e[4]),parseFloat(e[5]),parseFloat(e[6])):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(e[1]),parseFloat(e[2]),parseFloat(e[3]));break;case"vt":t.uvs.push(parseFloat(e[1]),parseFloat(e[2]))}}else if("f"===c){const e=l.substr(1).trim().split(/\s+/),n=[];for(let t=0,i=e.length;t0){const e=r.split("/");n.push(e)}}const r=n[0];for(let i=1,s=n.length-1;i1){const e=u[1].trim().toLowerCase();t.object.smooth="0"!==e&&"off"!==e}else t.object.smooth=!0;const e=t.object.currentMaterial();e&&(e.smooth=t.object.smooth)}else{if("\0"===l)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+l+'"')}t.finalize();const f=new r.Group;f.materialLibraries=[].concat(t.materialLibraries);if(!0===!(1===t.objects.length&&0===t.objects[0].geometry.vertices.length))for(let i=0,s=t.objects.length;i0&&c.setAttribute("normal",new r.Float32BufferAttribute(n.normals,3)),n.colors.length>0&&(l=!0,c.setAttribute("color",new r.Float32BufferAttribute(n.colors,3))),!0===n.hasUVIndices&&c.setAttribute("uv",new r.Float32BufferAttribute(n.uvs,2));const h=[];for(let i=0,d=s.length;i1){for(let e=0,t=s.length;e0){const e=new r.PointsMaterial({size:1,sizeAttenuation:!1}),n=new r.BufferGeometry;n.setAttribute("position",new r.Float32BufferAttribute(t.vertices,3)),t.colors.length>0&&void 0!==t.colors[0]&&(n.setAttribute("color",new r.Float32BufferAttribute(t.colors,3)),e.vertexColors=!0);const i=new r.Points(n,e);f.add(i)}return f}}t.OBJLoader=f},26386:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e),this.littleEndian=!0}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n,e))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e,t){const n=r.LoaderUtils.decodeText(new Uint8Array(e)),i=function(e){const t={},n=e.search(/[\r\n]DATA\s(\S*)\s/i),r=/[\r\n]DATA\s(\S*)\s/i.exec(e.substr(n-1));if(t.data=r[1],t.headerLen=r[0].length+n,t.str=e.substr(0,t.headerLen),t.str=t.str.replace(/\#.*/gi,""),t.version=/VERSION (.*)/i.exec(t.str),t.fields=/FIELDS (.*)/i.exec(t.str),t.size=/SIZE (.*)/i.exec(t.str),t.type=/TYPE (.*)/i.exec(t.str),t.count=/COUNT (.*)/i.exec(t.str),t.width=/WIDTH (.*)/i.exec(t.str),t.height=/HEIGHT (.*)/i.exec(t.str),t.viewpoint=/VIEWPOINT (.*)/i.exec(t.str),t.points=/POINTS (.*)/i.exec(t.str),null!==t.version&&(t.version=parseFloat(t.version[1])),null!==t.fields&&(t.fields=t.fields[1].split(" ")),null!==t.type&&(t.type=t.type[1].split(" ")),null!==t.width&&(t.width=parseInt(t.width[1])),null!==t.height&&(t.height=parseInt(t.height[1])),null!==t.viewpoint&&(t.viewpoint=t.viewpoint[1]),null!==t.points&&(t.points=parseInt(t.points[1],10)),null===t.points&&(t.points=t.width*t.height),null!==t.size&&(t.size=t.size[1].split(" ").map((function(e){return parseInt(e,10)}))),null!==t.count)t.count=t.count[1].split(" ").map((function(e){return parseInt(e,10)}));else{t.count=[];for(let e=0,n=t.fields.length;e>16&255,i=t>>8&255,s=t>>0&255;o.push(n/255,i/255,s/255)}void 0!==e.normal_x&&(a.push(parseFloat(r[e.normal_x])),a.push(parseFloat(r[e.normal_y])),a.push(parseFloat(r[e.normal_z])))}}if("binary_compressed"===i.data){const t=new Uint32Array(e.slice(i.headerLen,i.headerLen+8)),n=t[0],r=t[1],l=function(e,t){const n=e.length,r=new Uint8Array(t);let i,s,a,o=0,l=0;do{if(i=e[o++],i<32){if(i++,l+i>t)throw new Error("Output buffer is not large enough");if(o+i>n)throw new Error("Invalid compressed data");do{r[l++]=e[o++]}while(--i)}else{if(s=i>>5,a=l-((31&i)<<8)-1,o>=n)throw new Error("Invalid compressed data");if(7===s&&(s+=e[o++],o>=n))throw new Error("Invalid compressed data");if(a-=e[o++],l+s+2>t)throw new Error("Output buffer is not large enough");if(a<0)throw new Error("Invalid compressed data");if(a>=l)throw new Error("Invalid compressed data");do{r[l++]=r[a++]}while(2+--s)}}while(o0&&l.setAttribute("position",new r.Float32BufferAttribute(s,3)),a.length>0&&l.setAttribute("normal",new r.Float32BufferAttribute(a,3)),o.length>0&&l.setAttribute("color",new r.Float32BufferAttribute(o,3)),l.computeBoundingSphere();const c=new r.PointsMaterial({size:.005});o.length>0?c.vertexColors=!0:c.color.setHex(16777215*Math.random());const h=new r.Points(l,c);let u=t.split("").reverse().join("");return u=/([^\/]*)/.exec(u),u=u[1].split("").reverse().join(""),h.name=u,h}}t.PCDLoader=i},67071:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){function t(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function n(e,t,n,r){const i=parseInt(c[r].substr(e,t));if(i){const e=(s=n,l=i,"s"+Math.min(s,l)+"e"+Math.max(s,l));void 0===o[e]&&(a.push([n-1,i-1,1]),o[e]=a.length-1)}var s,l}const i={h:[255,255,255],he:[217,255,255],li:[204,128,255],be:[194,255,0],b:[255,181,181],c:[144,144,144],n:[48,80,248],o:[255,13,13],f:[144,224,80],ne:[179,227,245],na:[171,92,242],mg:[138,255,0],al:[191,166,166],si:[240,200,160],p:[255,128,0],s:[255,255,48],cl:[31,240,31],ar:[128,209,227],k:[143,64,212],ca:[61,255,0],sc:[230,230,230],ti:[191,194,199],v:[166,166,171],cr:[138,153,199],mn:[156,122,199],fe:[224,102,51],co:[240,144,160],ni:[80,208,80],cu:[200,128,51],zn:[125,128,176],ga:[194,143,143],ge:[102,143,143],as:[189,128,227],se:[255,161,0],br:[166,41,41],kr:[92,184,209],rb:[112,46,176],sr:[0,255,0],y:[148,255,255],zr:[148,224,224],nb:[115,194,201],mo:[84,181,181],tc:[59,158,158],ru:[36,143,143],rh:[10,125,140],pd:[0,105,133],ag:[192,192,192],cd:[255,217,143],in:[166,117,115],sn:[102,128,128],sb:[158,99,181],te:[212,122,0],i:[148,0,148],xe:[66,158,176],cs:[87,23,143],ba:[0,201,0],la:[112,212,255],ce:[255,255,199],pr:[217,255,199],nd:[199,255,199],pm:[163,255,199],sm:[143,255,199],eu:[97,255,199],gd:[69,255,199],tb:[48,255,199],dy:[31,255,199],ho:[0,255,156],er:[0,230,117],tm:[0,212,82],yb:[0,191,56],lu:[0,171,36],hf:[77,194,255],ta:[77,166,255],w:[33,148,214],re:[38,125,171],os:[38,102,150],ir:[23,84,135],pt:[208,208,224],au:[255,209,35],hg:[184,184,208],tl:[166,84,77],pb:[87,89,97],bi:[158,79,181],po:[171,92,0],at:[117,79,69],rn:[66,130,150],fr:[66,0,102],ra:[0,125,0],ac:[112,171,250],th:[0,186,255],pa:[0,161,255],u:[0,143,255],np:[0,128,255],pu:[0,107,255],am:[84,92,242],cm:[120,92,227],bk:[138,79,227],cf:[161,54,212],es:[179,31,212],fm:[179,31,186],md:[179,13,166],no:[189,13,135],lr:[199,0,102],rf:[204,0,89],db:[209,0,79],sg:[217,0,69],bh:[224,0,56],hs:[230,0,46],mt:[235,0,38],ds:[235,0,38],rg:[235,0,38],cn:[235,0,38],uut:[235,0,38],uuq:[235,0,38],uup:[235,0,38],uuh:[235,0,38],uus:[235,0,38],uuo:[235,0,38]},s=[],a=[],o={},l={},c=e.split("\n");for(let r=0,u=c.length;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e),this.propertyNameMapping={}}load(e,t,n,i){const s=this,a=new r.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}setPropertyNameMapping(e){this.propertyNameMapping=e}parse(e){function t(e){let t="",n=0;const r=/ply([\s\S]*)end_header\r?\n/.exec(e);null!==r&&(t=r[1],n=new Blob([r[0]]).size);const i={comments:[],elements:[],headerLength:n,objInfo:""},s=t.split("\n");let a;function o(e,t){const n={type:e[0]};return"list"===n.type?(n.name=e[3],n.countType=e[1],n.itemType=e[2]):n.name=e[1],n.name in t&&(n.name=t[n.name]),n}for(let l=0;l=t.elements[c].count&&(c++,h=0);const r=i(t.elements[c].properties,e);o(n,t.elements[c].name,r),h++}return a(n)}function a(e){let t=new r.BufferGeometry;return e.indices.length>0&&t.setIndex(e.indices),t.setAttribute("position",new r.Float32BufferAttribute(e.vertices,3)),e.normals.length>0&&t.setAttribute("normal",new r.Float32BufferAttribute(e.normals,3)),e.uvs.length>0&&t.setAttribute("uv",new r.Float32BufferAttribute(e.uvs,2)),e.colors.length>0&&t.setAttribute("color",new r.Float32BufferAttribute(e.colors,3)),e.faceVertexUvs.length>0&&(t=t.toNonIndexed(),t.setAttribute("uv",new r.Float32BufferAttribute(e.faceVertexUvs,2))),t.computeBoundingSphere(),t}function o(e,t,n){if("vertex"===t)e.vertices.push(n.x,n.y,n.z),"nx"in n&&"ny"in n&&"nz"in n&&e.normals.push(n.nx,n.ny,n.nz),"s"in n&&"t"in n&&e.uvs.push(n.s,n.t),"red"in n&&"green"in n&&"blue"in n&&e.colors.push(n.red/255,n.green/255,n.blue/255);else if("face"===t){const t=n.vertex_indices||n.vertex_index,r=n.texcoord;3===t.length?(e.indices.push(t[0],t[1],t[2]),r&&6===r.length&&(e.faceVertexUvs.push(r[0],r[1]),e.faceVertexUvs.push(r[2],r[3]),e.faceVertexUvs.push(r[4],r[5]))):4===t.length&&(e.indices.push(t[0],t[1],t[3]),e.indices.push(t[1],t[2],t[3]))}}function l(e,t,n,r){switch(n){case"int8":case"char":return[e.getInt8(t),1];case"uint8":case"uchar":return[e.getUint8(t),1];case"int16":case"short":return[e.getInt16(t,r),2];case"uint16":case"ushort":return[e.getUint16(t,r),2];case"int32":case"int":return[e.getInt32(t,r),4];case"uint32":case"uint":return[e.getUint32(t,r),4];case"float32":case"float":return[e.getFloat32(t,r),4];case"float64":case"double":return[e.getFloat64(t,r),8]}}function c(e,t,n,r){const i={};let s,a=0;for(let o=0;o{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);let i=null;function s(){if(null===i){const e=new ArrayBuffer(2),t=new Uint8Array(e),n=new Uint16Array(e);t[0]=170,t[1]=187,i=43707===n[0]}return i}const a=[null,Float32Array,null,Int8Array,Int16Array,null,Int32Array,Uint8Array,Uint16Array,null,Uint32Array],o={Uint16Array:"getUint16",Uint32Array:"getUint32",Int16Array:"getInt16",Int32Array:"getInt32",Float32Array:"getFloat32",Float64Array:"getFloat64"};function l(e,t,n,r,i){const a=t.BYTES_PER_ELEMENT;let l;if(i===s()||1===a)l=new t(e,n,r);else{const s=new DataView(e,n,r*a),c=o[t.name],h=!i;l=new t(r);for(let e=0;e>7&1),s=r>>6&1,o=1==(r>>5&1),c=31&r;let h=0,u=0;if(o?(h=(t[2]<<16)+(t[3]<<8)+t[4],u=(t[5]<<16)+(t[6]<<8)+t[7]):(h=t[2]+(t[3]<<8)+(t[4]<<16),u=t[5]+(t[6]<<8)+(t[7]<<16)),0===n)throw new Error("PRWM decoder: Invalid format version: 0");if(1!==n)throw new Error("PRWM decoder: Unsupported format version: "+n);if(!i){if(0!==s)throw new Error("PRWM decoder: Indices type must be set to 0 for non-indexed geometries");if(0!==u)throw new Error("PRWM decoder: Number of indices must be set to 0 for non-indexed geometries")}let d=8;const p={};for(let m=0;m>7&1,s=1+(r>>4&3),c=a[15&r];d++,d=4*Math.ceil(d/4);const u=l(e,c,d,s*h,o);d+=c.BYTES_PER_ELEMENT*s*h,p[n]={type:i,cardinality:s,values:u}}d=4*Math.ceil(d/4);let f=null;return i&&(f=l(e,1===s?Uint32Array:Uint16Array,d,u,o)),{version:n,attributes:p,indices:f}}(e),n=Object.keys(t.attributes),i=new r.BufferGeometry;for(let s=0;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.CompressedTextureLoader{constructor(e){super(e)}parse(e,t){const n=new Uint32Array(e,0,13),i={buffer:e,header:n,loadMipmaps:t};return 55727696===n[0]?function(e){const t=e.header;let n,i;const a=t[12],o=t[2],l=t[6],c=t[7],h=t[10],u=t[11];switch(o){case 0:n=2,i=r.RGB_PVRTC_2BPPV1_Format;break;case 1:n=2,i=r.RGBA_PVRTC_2BPPV1_Format;break;case 2:n=4,i=r.RGB_PVRTC_4BPPV1_Format;break;case 3:n=4,i=r.RGBA_PVRTC_4BPPV1_Format;break;default:console.error("THREE.PVRLoader: Unsupported PVR format:",o)}return e.dataPtr=52+a,e.bpp=n,e.format=i,e.width=c,e.height=l,e.numSurfaces=h,e.numMipmaps=u,e.isCubemap=6===h,s(e)}(i):559044176===n[11]?function(e){const t=e.header,n=t[0],i=t[1],a=t[2],o=t[3],l=t[4],c=t[10],h=t[12],u=24,d=255&l;let p,f;const m=c>0;25===d?(f=m?r.RGBA_PVRTC_4BPPV1_Format:r.RGB_PVRTC_4BPPV1_Format,p=4):d===u?(f=m?r.RGBA_PVRTC_2BPPV1_Format:r.RGB_PVRTC_2BPPV1_Format,p=2):console.error("THREE.PVRLoader: Unknown PVR format:",d);return e.dataPtr=n,e.bpp=p,e.format=f,e.width=a,e.height=i,e.numSurfaces=h,e.numMipmaps=o+1,e.isCubemap=6===h,s(e)}(i):void console.error("THREE.PVRLoader: Unknown PVR format.")}}function s(e){const t={mipmaps:[],width:e.width,height:e.height,format:e.format,mipmapCount:e.numMipmaps,isCubemap:e.isCubemap},n=e.buffer;let r=e.dataPtr,i=0,s=0,a=0,o=0,l=0,c=0;const h=e.bpp,u=e.numSurfaces;2===h?(a=8,o=4):(a=4,o=4),s=a*o*h/8,t.mipmaps.length=e.numMipmaps*u;let d=0;for(;d>d,p=e.height>>d;l=h/a,c=p/o,l<2&&(l=2),c<2&&(c=2),i=l*c*s;for(let s=0;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.DataTextureLoader{constructor(e){super(e),this.type=r.HalfFloatType}parse(e){const t=function(e,t){switch(e){case 1:console.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:console.error("THREE.RGBELoader: Error: "+(t||""))}return-1},n=function(e,t,n){t=t||1024;let r=e.pos,i=-1,s=0,a="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(r,r+128)));for(;0>(i=o.indexOf("\n"))&&s=e.byteLength||!(l=n(e)))return t(1,"no header found");if(!(c=l.match(/^#\?(\S+)/)))return t(3,"bad initial token");for(o.valid|=1,o.programtype=c[1],o.string+=l+"\n";l=n(e),!1!==l;)if(o.string+=l+"\n","#"!==l.charAt(0)){if((c=l.match(r))&&(o.gamma=parseFloat(c[1])),(c=l.match(i))&&(o.exposure=parseFloat(c[1])),(c=l.match(s))&&(o.valid|=2,o.format=c[1]),(c=l.match(a))&&(o.valid|=4,o.height=parseInt(c[1],10),o.width=parseInt(c[2],10)),2&o.valid&&4&o.valid)break}else o.comments+=l+"\n";return 2&o.valid?4&o.valid?o:t(3,"missing image size specifier"):t(3,"missing format specifier")}(a);if(-1!==o){const e=o.width,n=o.height,l=function(e,n,r){const i=n;if(i<8||i>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);if(i!==(e[2]<<8|e[3]))return t(3,"wrong scanline width");const s=new Uint8Array(4*n*r);if(!s.length)return t(4,"unable to allocate buffer space");let a=0,o=0;const l=4*i,c=new Uint8Array(4),h=new Uint8Array(l);let u=r;for(;u>0&&oe.byteLength)return t(1);if(c[0]=e[o++],c[1]=e[o++],c[2]=e[o++],c[3]=e[o++],2!=c[0]||2!=c[1]||(c[2]<<8|c[3])!=i)return t(3,"bad rgbe scanline format");let n,r=0;for(;r128;if(i&&(n-=128),0===n||r+n>l)return t(3,"bad scanline data");if(i){const t=e[o++];for(let e=0;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);let i;class s extends r.DataTextureLoader{constructor(e){super(e),this.type=r.HalfFloatType,this.maxRange=7}setDataType(e){return this.type=e,this}setMaxRange(e){return this.maxRange=e,this}loadCubemap(e,t,n,i){const s=new r.CubeTexture;let a=0;const o=this;function l(n){o.load(e[n],(function(e){s.images[n]=e,a++,6===a&&(s.needsUpdate=!0,t&&t(s))}),void 0,i)}for(let r=0;r>3)]>>7-((7&f)<<0)&1);l[x]=b[C],l[x+1]=b[C+1],l[x+2]=b[C+2],l[x+3]=T<_?E[T]:255}}if(2==u)for(S=0;S>2)]>>6-((3&f)<<1)&3),l[x]=b[C],l[x+1]=b[C+1],l[x+2]=b[C+2],l[x+3]=T<_?E[T]:255;if(4==u)for(S=0;S>1)]>>4-((1&f)<<2)&15),l[x]=b[C],l[x+1]=b[C+1],l[x+2]=b[C+2],l[x+3]=T<_?E[T]:255;if(8==u)for(f=0;f>>3)]>>>7-(7&D)&1))==255*A?0:255;c[P+D]=L<<24|I<<16|I<<8|I}else if(2==u)for(D=0;D>>2)]>>>6-((3&D)<<1)&3))==85*A?0:255,c[P+D]=L<<24|I<<16|I<<8|I;else if(4==u)for(D=0;D>>1)]>>>4-((1&D)<<2)&15))==17*A?0:255,c[P+D]=L<<24|I<<16|I<<8|I;else if(8==u)for(D=0;D>>2<<5));0==a;)if(a=g(e,f,1),o=g(e,f+1,2),f+=3,0!=o){if(_&&(t=n.H.W(t,p+(1<<17))),1==o&&(r=E.J,i=E.h,u=511,d=31),2==o){l=A(e,f,5)+257,c=A(e,f+5,5)+1,h=A(e,f+10,4)+4,f+=14;for(var S=1,w=0;w<38;w+=2)E.Q[w]=0,E.Q[w+1]=0;for(w=0;wS&&(S=M)}f+=3*h,y(E.Q,S),x(E.Q,S,E.u),r=E.w,i=E.d,f=v(E.u,(1<>>4;if(B>>>8==0)t[p++]=B;else{if(256==B)break;var R=p+B-254;if(B>264){var P=E.q[B-257];R=p+(P>>>3)+A(e,f,7&P),f+=7&P}var D=i[b(e,f)&d];f+=15&D;var L=D>>>4,F=E.c[L],U=(F>>>4)+g(e,f,15&F);for(f+=15&F;p>>3),N=e[O-4]|e[O-3]<<8;_&&(t=n.H.W(t,p+N)),t.set(new s(e.buffer,e.byteOffset+O,N),p),f=O+N<<3,p+=N}return t.length==p?t:t.slice(0,p)},n.H.W=function(e,t){var n=e.length;if(t<=n)return e;var r=new Uint8Array(n<<1);return r.set(e,0),r},n.H.R=function(e,t,r,i,s,a){for(var o=n.H.e,l=n.H.Z,c=0;c>>4;if(u<=15)a[c]=u,c++;else{var d=0,p=0;16==u?(p=3+o(i,s,2),s+=2,d=a[c-1]):17==u?(p=3+o(i,s,3),s+=3):18==u&&(p=11+o(i,s,7),s+=7);for(var f=c+p;c>>1;si&&(i=o),s++}for(;s>1,l=e[a+1],c=o<<4|l,h=t-l,u=e[a]<>>15-t]=c,u++},n.H.l=function(e,t){for(var r=n.H.m.r,i=15-t,s=0;s>>i}},n.H.M=function(e,t,n){n<<=7&t;var r=t>>>3;e[r]|=n,e[r+1]|=n>>>8},n.H.I=function(e,t,n){n<<=7&t;var r=t>>>3;e[r]|=n,e[r+1]|=n>>>8,e[r+2]|=n>>>16},n.H.e=function(e,t,n){return(e[t>>>3]|e[1+(t>>>3)]<<8)>>>(7&t)&(1<>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)&(1<>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)},n.H.i=function(e,t){return(e[t>>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16|e[3+(t>>>3)]<<24)>>>(7&t)},n.H.m=(e=Uint16Array,t=Uint32Array,{K:new e(16),j:new e(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new e(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new t(32),J:new e(512),_:[],h:new e(32),$:[],w:new e(32768),C:[],v:[],d:new e(32768),D:[],u:new e(512),Q:[],r:new e(32768),s:new t(286),Y:new t(30),a:new t(19),t:new t(15e3),k:new e(65536),g:new e(32768)}),function(){for(var e=n.H.m,t=0;t<32768;t++){var r=t;r=(4278255360&(r=(4042322160&(r=(3435973836&(r=(2863311530&r)>>>1|(1431655765&r)<<1))>>>2|(858993459&r)<<2))>>>4|(252645135&r)<<4))>>>8|(16711935&r)<<8,e.r[t]=(r>>>16|r<<16)>>>17}function i(e,t,n){for(;0!=t--;)e.push(0,n)}for(t=0;t<32;t++)e.q[t]=e.S[t]<<3|e.T[t],e.c[t]=e.p[t]<<4|e.z[t];i(e._,144,8),i(e._,112,9),i(e._,24,7),i(e._,8,8),n.H.n(e._,9),n.H.A(e._,9,e.J),n.H.l(e._,9),i(e.$,32,5),n.H.n(e.$,5),n.H.A(e.$,5,e.h),n.H.l(e.$,5),i(e.Q,19,0),i(e.C,286,0),i(e.D,30,0),i(e.v,320,0)}(),n.H.N),i.decode._readInterlace=function(e,t){for(var n=t.width,r=t.height,s=i.decode._getBPP(t),a=s>>3,o=Math.ceil(n*s/8),l=new Uint8Array(r*o),c=0,h=[0,0,4,0,2,0,1],u=[0,4,0,2,0,1,0],d=[8,8,8,4,4,2,2],p=[8,8,4,4,2,2,1],f=0;f<7;){for(var m=d[f],g=p[f],A=0,v=0,y=h[f];y>3])>>7-(7&M)&1,l[S*o+(w>>3)]|=E<<7-((7&w)<<0)),2==s&&(E=(E=e[M>>3])>>6-(7&M)&3,l[S*o+(w>>2)]|=E<<6-((3&w)<<1)),4==s&&(E=(E=e[M>>3])>>4-(7&M)&15,l[S*o+(w>>1)]|=E<<4-((1&w)<<2)),s>=8)for(var C=S*o+w*a,T=0;T>3)+T];M+=s,w+=g}_++,S+=m}A*v!=0&&(c+=v*(1+b)),f+=1}return l},i.decode._getBPP=function(e){return[1,null,3,1,2,null,4][e.ctype]*e.depth},i.decode._filterZero=function(e,t,n,r,s){var a=i.decode._getBPP(t),o=Math.ceil(r*a/8),l=i.decode._paeth;a=Math.ceil(a/8);var c,h,u=e[n],d=0;if(u>1&&(e[n]=[0,0,1][u-2]),3==u)for(d=a;d>>1)&255;for(var p=0;p>>1);for(;d>>1)}else{for(;d>8&255,e[t+1]=255&n},readUint:function(e,t){return 16777216*e[t]+(e[t+1]<<16|e[t+2]<<8|e[t+3])},writeUint:function(e,t,n){e[t]=n>>24&255,e[t+1]=n>>16&255,e[t+2]=n>>8&255,e[t+3]=255&n},readASCII:function(e,t,n){for(var r="",i=0;i=0&&o>=0?(u=p*t+f<<2,d=(o+p)*i+a+f<<2):(u=(-o+p)*t-a+f<<2,d=p*i+f<<2),0==l)r[d]=e[u],r[d+1]=e[u+1],r[d+2]=e[u+2],r[d+3]=e[u+3];else if(1==l){var m=e[u+3]*(1/255),g=e[u]*m,A=e[u+1]*m,v=e[u+2]*m,y=r[d+3]*(1/255),x=r[d]*y,b=r[d+1]*y,E=r[d+2]*y,_=1-m,S=m+y*_,w=0==S?0:1/S;r[d+3]=255*S,r[d+0]=(g+x*_)*w,r[d+1]=(A+b*_)*w,r[d+2]=(v+E*_)*w}else if(2==l)m=e[u+3],g=e[u],A=e[u+1],v=e[u+2],y=r[d+3],x=r[d],b=r[d+1],E=r[d+2],m==y&&g==x&&A==b&&v==E?(r[d]=0,r[d+1]=0,r[d+2]=0,r[d+3]=0):(r[d]=g,r[d+1]=A,r[d+2]=v,r[d+3]=m);else if(3==l){if(m=e[u+3],g=e[u],A=e[u+1],v=e[u+2],y=r[d+3],x=r[d],b=r[d+1],E=r[d+2],m==y&&g==x&&A==b&&v==E)continue;if(m<220&&y>20)return!1}return!0}}();const t=i.decode(e),n=i.toRGBA8(t)[0],s=new Uint8Array(n),a=t.width*t.height*4,o=this.type===r.HalfFloatType?new Uint16Array(a):new Float32Array(a);for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new r.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){function t(e,t,n){for(let r=0,i=e.length;r>5&31)/31,a=(n>>10&31)/31):(i=l,s=c,a=h)}for(let l=1;l<=3;l++){const c=e+12*l,h=3*r*3+3*(l-1);f[h]=t.getFloat32(c,!0),f[h+1]=t.getFloat32(c+4,!0),f[h+2]=t.getFloat32(c+8,!0),m[h]=n,m[h+1]=u,m[h+2]=p,d&&(o[h]=i,o[h+1]=s,o[h+2]=a)}}return p.setAttribute("position",new r.BufferAttribute(f,3)),p.setAttribute("normal",new r.BufferAttribute(m,3)),d&&(p.setAttribute("color",new r.BufferAttribute(o,3)),p.hasColors=!0,p.alpha=u),p}(n):function(e){const t=new r.BufferGeometry,n=/solid([\s\S]*?)endsolid/g,i=/facet([\s\S]*?)endfacet/g;let s=0;const a=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,o=new RegExp("vertex"+a+a+a,"g"),l=new RegExp("normal"+a+a+a,"g"),c=[],h=[],u=new r.Vector3;let d,p=0,f=0,m=0;for(;null!==(d=n.exec(e));){f=m;const e=d[0];for(;null!==(d=i.exec(e));){let e=0,t=0;const n=d[0];for(;null!==(d=l.exec(n));)u.x=parseFloat(d[1]),u.y=parseFloat(d[2]),u.z=parseFloat(d[3]),t++;for(;null!==(d=o.exec(n));)c.push(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3])),h.push(u.x,u.y,u.z),e++,m++;1!==t&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+s),3!==e&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+s),s++}const n=f,r=m-f;t.addGroup(n,r,p),p++}return t.setAttribute("position",new r.Float32BufferAttribute(c,3)),t.setAttribute("normal",new r.Float32BufferAttribute(h,3)),t}("string"!=typeof(i=e)?r.LoaderUtils.decodeText(new Uint8Array(i)):i);var i}}t.STLLoader=i},49935:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){const t=this;function n(e,t,n,r,s,a,o,l){if(0==t||0==n)return void e.lineTo(l.x,l.y);r=r*Math.PI/180,t=Math.abs(t),n=Math.abs(n);const c=(o.x-l.x)/2,h=(o.y-l.y)/2,u=Math.cos(r)*c+Math.sin(r)*h,d=-Math.sin(r)*c+Math.cos(r)*h;let p=t*t,f=n*n;const m=u*u,g=d*d,A=m/p+g/f;if(A>1){const e=Math.sqrt(A);p=(t*=e)*t,f=(n*=e)*n}const v=p*g+f*m,y=(p*f-v)/v;let x=Math.sqrt(Math.max(0,y));s===a&&(x=-x);const b=x*t*d/n,E=-x*n*u/t,_=Math.cos(r)*b-Math.sin(r)*E+(o.x+l.x)/2,S=Math.sin(r)*b+Math.cos(r)*E+(o.y+l.y)/2,w=i(1,0,(u-b)/t,(d-E)/n),M=i((u-b)/t,(d-E)/n,(-u-b)/t,(-d-E)/n)%(2*Math.PI);e.currentPath.absellipse(_,S,t,n,w,w+M,0===a,r)}function i(e,t,n,r){const i=e*n+t*r,s=Math.sqrt(e*e+t*t)*Math.sqrt(n*n+r*r);let a=Math.acos(Math.max(-1,Math.min(1,i/s)));return e*r-t*n<0&&(a=-a),a}function s(e,t){t=Object.assign({},t);let n={};if(e.hasAttribute("class")){const t=e.getAttribute("class").split(/\s/).filter(Boolean).map((e=>e.trim()));for(let e=0;e=0;e--){const i=r[e].trim();if(""===i)continue;const s=i.indexOf("("),a=i.length;if(s>0&&s=1){const e=t[0];let r=e;t.length>=2&&(r=t[1]),n.translate(e,r)}break;case"rotate":if(t.length>=1){let e=0,r=0,i=0;e=-t[0]*Math.PI/180,t.length>=3&&(r=t[1],i=t[2]),A.identity().translate(-r,-i),v.identity().rotate(e),y.multiplyMatrices(v,A),A.identity().translate(r,i),n.multiplyMatrices(A,y)}break;case"scale":if(t.length>=1){const e=t[0];let r=e;t.length>=2&&(r=t[1]),n.scale(e,r)}break;case"skewX":1===t.length&&n.set(1,Math.tan(t[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===t.length&&n.set(1,0,0,Math.tan(t[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===t.length&&n.set(t[0],t[2],t[4],t[1],t[3],t[5],0,0,1)}}t.premultiply(n)}}return t}(e);m.length>0&&t.premultiply(m[m.length-1]);return E.copy(t),m.push(t),t}(t);let c=!0,_=null;switch(t.nodeName){case"svg":break;case"style":!function(e){if(!e.sheet||!e.sheet.cssRules||!e.sheet.cssRules.length)return;for(let t=0;te.trim()));for(let e=0;e0&&(i.copy(l),t.currentPath.currentPoint.copy(i),c=!0);break;default:console.warn(e)}h=!1}return t}(t));break;case"rect":i=s(t,i),_=function(e){const t=h(e.getAttribute("x")||0),n=h(e.getAttribute("y")||0),i=h(e.getAttribute("rx")||e.getAttribute("ry")||0),s=h(e.getAttribute("ry")||e.getAttribute("rx")||0),a=h(e.getAttribute("width")),o=h(e.getAttribute("height")),l=.448084975506,c=new r.ShapePath;c.moveTo(t+i,n),c.lineTo(t+a-i,n),(0!==i||0!==s)&&c.bezierCurveTo(t+a-i*l,n,t+a,n+s*l,t+a,n+s);c.lineTo(t+a,n+o-s),(0!==i||0!==s)&&c.bezierCurveTo(t+a,n+o-s*l,t+a-i*l,n+o,t+a-i,n+o);c.lineTo(t+i,n+o),(0!==i||0!==s)&&c.bezierCurveTo(t+i*l,n+o,t,n+o-s*l,t,n+o-s);c.lineTo(t,n+s),(0!==i||0!==s)&&c.bezierCurveTo(t,n+s*l,t+i*l,n,t+i,n);return c}(t);break;case"polygon":i=s(t,i),_=function(e){function t(e,t,n){const r=h(t),a=h(n);0===s?i.moveTo(r,a):i.lineTo(r,a),s++}const n=/(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g,i=new r.ShapePath;let s=0;return e.getAttribute("points").replace(n,t),i.currentPath.autoClose=!0,i}(t);break;case"polyline":i=s(t,i),_=function(e){function t(e,t,n){const r=h(t),a=h(n);0===s?i.moveTo(r,a):i.lineTo(r,a),s++}const n=/(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g,i=new r.ShapePath;let s=0;return e.getAttribute("points").replace(n,t),i.currentPath.autoClose=!1,i}(t);break;case"circle":i=s(t,i),_=function(e){const t=h(e.getAttribute("cx")||0),n=h(e.getAttribute("cy")||0),i=h(e.getAttribute("r")||0),s=new r.Path;s.absarc(t,n,i,0,2*Math.PI);const a=new r.ShapePath;return a.subPaths.push(s),a}(t);break;case"ellipse":i=s(t,i),_=function(e){const t=h(e.getAttribute("cx")||0),n=h(e.getAttribute("cy")||0),i=h(e.getAttribute("rx")||0),s=h(e.getAttribute("ry")||0),a=new r.Path;a.absellipse(t,n,i,s,0,2*Math.PI);const o=new r.ShapePath;return o.subPaths.push(a),o}(t);break;case"line":i=s(t,i),_=function(e){const t=h(e.getAttribute("x1")||0),n=h(e.getAttribute("y1")||0),i=h(e.getAttribute("x2")||0),s=h(e.getAttribute("y2")||0),a=new r.ShapePath;return a.moveTo(t,n),a.lineTo(i,s),a.currentPath.autoClose=!1,a}(t);break;case"defs":case"mask":c=!1;break;case"use":i=s(t,i);const l=t.href.baseVal.substring(1),u=t.viewportElement.getElementById(l);u?e(u,i):console.warn("SVGLoader: 'use node' references non-existent node id: "+l)}if(_&&(void 0!==i.fill&&"none"!==i.fill&&_.color.setStyle(i.fill),function(e,t){function n(e){b.set(e.x,e.y,1).applyMatrix3(t),e.set(b.x,b.y)}const r=function(e){return 0!==e.elements[1]||0!==e.elements[3]}(t),i=e.subPaths;for(let s=0,a=i.length;s0?E.copy(m[m.length-1]):E.identity())}(_.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4});return{paths:p,xml:_.documentElement}}static createShapes(e){const t=999999999,n=0,i=1,s=2,a=3,o=4,l=5,c=6,h={loc:n,t:0};function u(e,t,r,i){const a=e.x,o=t.x,l=r.x,c=i.x,u=e.y,p=t.y,f=r.y,m=i.y,g=(c-l)*(u-f)-(m-f)*(a-l),A=(m-f)*(o-a)-(c-l)*(p-u),v=g/A,y=((o-a)*(u-f)-(p-u)*(a-l))/A;if(0===A&&0!==g||v<=0||v>=1||y<0||y>1)return null;if(0===g&&0===A){for(let l=0;l<2;l++){if(d(0===l?r:i,e,t),h.loc==n){const e=0===l?r:i;return{x:e.x,y:e.y,t:h.t}}if(h.loc==s){return{x:+(a+h.t*(o-a)).toPrecision(10),y:+(u+h.t*(p-u)).toPrecision(10),t:h.t}}}return null}for(let s=0;s<2;s++)if(d(0===s?r:i,e,t),h.loc==n){const e=0===s?r:i;return{x:e.x,y:e.y,t:h.t}}return{x:+(a+v*(o-a)).toPrecision(10),y:+(u+v*(p-u)).toPrecision(10),t:v}}function d(e,t,r){const u=r.x-t.x,d=r.y-t.y,p=e.x-t.x,f=e.y-t.y,m=u*f-p*d;if(e.x===t.x&&e.y===t.y)return h.loc=n,void(h.t=0);if(e.x===r.x&&e.y===r.y)return h.loc=i,void(h.t=1);if(m<-Number.EPSILON)return void(h.loc=a);if(m>Number.EPSILON)return void(h.loc=o);if(u*p<0||d*f<0)return void(h.loc=l);if(Math.sqrt(u*u+d*d){if(t.boundingBox.containsPoint(i)){(function(e,t){const n=[],i=[];for(let s=1;se.t<=s.t+Number.EPSILON&&e.t>=s.t-Number.EPSILON))&&(n.push(s),i.push(new r.Vector2(s.x,s.y)))}}return i})(e,t.points).forEach((e=>{s.push({identifier:t.identifier,isCW:t.isCW,point:e})}))}})),s.sort(((e,t)=>e.point.x-t.point.x)),s}let f=0,m=t,g=-999999999,A=e.subPaths.map((e=>{const n=e.getPoints();let i=-999999999,s=t,a=-999999999,o=t;for(let t=0;ti&&(i=e.y),e.ya&&(a=e.x),e.x=o&&(m=o-1),{curves:e.curves,points:n,isCW:r.ShapeUtils.isClockWise(n),identifier:f++,boundingBox:new r.Box2(new r.Vector2(o,s),new r.Vector2(a,i))}}));A=A.filter((e=>e.points.length>1));const v=A.map((t=>function(e,t,n,i,s){null!=s&&""!==s||(s="nonzero");const a=new r.Vector2;e.boundingBox.getCenter(a);const o=p([new r.Vector2(n,a.y),new r.Vector2(i,a.y)],e.boundingBox,t);o.sort(((e,t)=>e.point.x-t.point.x));const l=[],c=[];o.forEach((t=>{t.identifier===e.identifier?l.push(t):c.push(t)}));const h=l[0].point.x,u=[];let d=0;for(;d0&&u[u.length-1]===c[d].identifier?u.pop():u.push(c[d].identifier),d++;if(u.push(e.identifier),"evenodd"===s){const t=u.length%2==0,n=u[u.length-2];return{identifier:e.identifier,isHole:t,for:n}}if("nonzero"===s){let n=!0,r=null,i=null;for(let e=0;e{if(!v[e.identifier].isHole){const t=new r.Shape;t.curves=e.curves;v.filter((t=>t.isHole&&t.for===e.identifier)).forEach((e=>{const n=A[e.identifier],i=new r.Path;i.curves=n.curves,t.holes.push(i)})),y.push(t)}})),y}static getStrokeStyle(e,t,n,r,i){return{strokeColor:t=void 0!==t?t:"#000",strokeWidth:e=void 0!==e?e:1,strokeLineJoin:n=void 0!==n?n:"miter",strokeLineCap:r=void 0!==r?r:"butt",strokeMiterLimit:i=void 0!==i?i:4}}static pointsToStroke(e,t,n,s){const a=[],o=[],l=[];if(0===i.pointsToStrokeWithBuffers(e,t,n,s,a,o,l))return null;const c=new r.BufferGeometry;return c.setAttribute("position",new r.Float32BufferAttribute(a,3)),c.setAttribute("normal",new r.Float32BufferAttribute(o,3)),c.setAttribute("uv",new r.Float32BufferAttribute(l,2)),c}static pointsToStrokeWithBuffers(e,t,n,i,s,a,o,l){const c=new r.Vector2,h=new r.Vector2,u=new r.Vector2,d=new r.Vector2,p=new r.Vector2,f=new r.Vector2,m=new r.Vector2,g=new r.Vector2,A=new r.Vector2,v=new r.Vector2,y=new r.Vector2,x=new r.Vector2,b=new r.Vector2,E=new r.Vector2,_=new r.Vector2,S=new r.Vector2,w=new r.Vector2;n=void 0!==n?n:12,i=void 0!==i?i:.001,l=void 0!==l?l:0;const M=(e=function(e){let t=!1;for(let r=1,s=e.length-1;r=i&&n.push(e[r]);return n.push(e[e.length-1]),n}(e)).length;if(M<2)return 0;const C=e[0].equals(e[M-1]);let T,I,B=e[0];const R=t.strokeWidth/2,P=1/(M-1);let D,L,F,U,O=0,N=!1,k=0,G=3*l,z=2*l;Q(e[0],e[1],c).multiplyScalar(R),g.copy(e[0]).sub(c),A.copy(e[0]).add(c),v.copy(g),y.copy(A);for(let r=1;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{constructor(e){super(e),this.debug=!1,this.group=null,this.position=0,this.materials=[],this.meshes=[]}load(e,t,n,i){const s=this,a=""===this.path?r.LoaderUtils.extractUrlBase(e):this.path,o=new r.FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,(function(n){try{t(s.parse(n,a))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e,t){this.group=new r.Group,this.position=0,this.materials=[],this.meshes=[],this.readFile(e,t);for(let n=0;n=t.end)return 0;this.position=t.cur;try{const n=this.readChunk(e);return t.cur+=n.size,n.id}catch(n){return this.debugMessage("Unable to read chunk at "+this.position),0}}resetPosition(){this.position-=6}readByte(e){const t=e.getUint8(this.position,!0);return this.position+=1,t}readFloat(e){try{const t=e.getFloat32(this.position,!0);return this.position+=4,t}catch(t){this.debugMessage(t+" "+this.position+" "+e.byteLength)}}readInt(e){const t=e.getInt32(this.position,!0);return this.position+=4,t}readShort(e){const t=e.getInt16(this.position,!0);return this.position+=2,t}readDWord(e){const t=e.getUint32(this.position,!0);return this.position+=4,t}readWord(e){const t=e.getUint16(this.position,!0);return this.position+=2,t}readString(e,t){let n="";for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.DataTextureLoader{constructor(e){super(e)}parse(e){const t=0,n=1,i=2,s=3,a=9,o=10,l=11,c=48,h=4,u=0,d=1,p=2,f=3;e.length<19&&console.error("THREE.TGALoader: Not enough data to contain header.");let m=0;const g=new Uint8Array(e),A={id_length:g[m++],colormap_type:g[m++],image_type:g[m++],colormap_index:g[m++]|g[m++]<<8,colormap_length:g[m++]|g[m++]<<8,colormap_size:g[m++],origin:[g[m++]|g[m++]<<8,g[m++]|g[m++]<<8],width:g[m++]|g[m++]<<8,height:g[m++]|g[m++]<<8,pixel_size:g[m++],flags:g[m++]};!function(e){switch(e.image_type){case n:case a:(e.colormap_length>256||24!==e.colormap_size||1!==e.colormap_type)&&console.error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case i:case s:case o:case l:e.colormap_type&&console.error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case t:console.error("THREE.TGALoader: No data.");default:console.error('THREE.TGALoader: Invalid type "%s".',e.image_type)}(e.width<=0||e.height<=0)&&console.error("THREE.TGALoader: Invalid image size."),8!==e.pixel_size&&16!==e.pixel_size&&24!==e.pixel_size&&32!==e.pixel_size&&console.error('THREE.TGALoader: Invalid pixel size "%s".',e.pixel_size)}(A),A.id_length+m>e.length&&console.error("THREE.TGALoader: No data."),m+=A.id_length;let v=!1,y=!1,x=!1;switch(A.image_type){case a:v=!0,y=!0;break;case n:y=!0;break;case o:v=!0;break;case i:break;case l:v=!0,x=!0;break;case s:x=!0}const b=new Uint8Array(A.width*A.height*4),E=function(e,t,n,r,i){let s,a;const o=n.pixel_size>>3,l=n.width*n.height*o;if(t&&(a=i.subarray(r,r+=n.colormap_length*(n.colormap_size>>3))),e){let e,t,n;s=new Uint8Array(l);let a=0;const c=new Uint8Array(o);for(;a>h){default:case p:s=0,o=1,m=t,a=0,l=1,g=n;break;case u:s=0,o=1,m=t,a=n-1,l=-1,g=-1;break;case f:s=t-1,o=-1,m=-1,a=0,l=1,g=n;break;case d:s=t-1,o=-1,m=-1,a=n-1,l=-1,g=-1}if(x)switch(A.pixel_size){case 8:!function(e,t,n,r,i,s,a,o){let l,c,h,u=0;const d=A.width;for(h=t;h!==r;h+=n)for(c=i;c!==a;c+=s,u++)l=o[u],e[4*(c+d*h)+0]=l,e[4*(c+d*h)+1]=l,e[4*(c+d*h)+2]=l,e[4*(c+d*h)+3]=255}(e,a,l,g,s,o,m,r);break;case 16:!function(e,t,n,r,i,s,a,o){let l,c,h=0;const u=A.width;for(c=t;c!==r;c+=n)for(l=i;l!==a;l+=s,h+=2)e[4*(l+u*c)+0]=o[h+0],e[4*(l+u*c)+1]=o[h+0],e[4*(l+u*c)+2]=o[h+0],e[4*(l+u*c)+3]=o[h+1]}(e,a,l,g,s,o,m,r);break;default:console.error("THREE.TGALoader: Format not supported.")}else switch(A.pixel_size){case 8:!function(e,t,n,r,i,s,a,o,l){const c=l;let h,u,d,p=0;const f=A.width;for(d=t;d!==r;d+=n)for(u=i;u!==a;u+=s,p++)h=o[p],e[4*(u+f*d)+3]=255,e[4*(u+f*d)+2]=c[3*h+0],e[4*(u+f*d)+1]=c[3*h+1],e[4*(u+f*d)+0]=c[3*h+2]}(e,a,l,g,s,o,m,r,i);break;case 16:!function(e,t,n,r,i,s,a,o){let l,c,h,u=0;const d=A.width;for(h=t;h!==r;h+=n)for(c=i;c!==a;c+=s,u+=2)l=o[u+0]+(o[u+1]<<8),e[4*(c+d*h)+0]=(31744&l)>>7,e[4*(c+d*h)+1]=(992&l)>>2,e[4*(c+d*h)+2]=(31&l)>>3,e[4*(c+d*h)+3]=32768&l?0:255}(e,a,l,g,s,o,m,r);break;case 24:!function(e,t,n,r,i,s,a,o){let l,c,h=0;const u=A.width;for(c=t;c!==r;c+=n)for(l=i;l!==a;l+=s,h+=3)e[4*(l+u*c)+3]=255,e[4*(l+u*c)+2]=o[h+0],e[4*(l+u*c)+1]=o[h+1],e[4*(l+u*c)+0]=o[h+2]}(e,a,l,g,s,o,m,r);break;case 32:!function(e,t,n,r,i,s,a,o){let l,c,h=0;const u=A.width;for(c=t;c!==r;c+=n)for(l=i;l!==a;l+=s,h+=4)e[4*(l+u*c)+2]=o[h+0],e[4*(l+u*c)+1]=o[h+1],e[4*(l+u*c)+0]=o[h+2],e[4*(l+u*c)+3]=o[h+3]}(e,a,l,g,s,o,m,r);break;default:console.error("THREE.TGALoader: Format not supported.")}}(b,A.width,A.height,E.pixel_data,E.palettes),{data:b,width:A.width,height:A.height,flipY:!0,generateMipmaps:!0,minFilter:r.LinearMipmapLinearFilter}}}t.TGALoader=i},60716:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(55599);class s extends r.Loader{constructor(e){super(e),this.reversed=!1}load(e,t,n,s){const a=this,o=new r.FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,(function(n){try{t(i.parse(n))}catch(r){s?s(r):console.error(r),a.manager.itemError(e)}}),n,s)}parse(e){function t(e){const t=[];let n;e.forEach((function(e){"m"===e.type.toLowerCase()?(n=[e],t.push(n)):"z"!==e.type.toLowerCase()&&n.push(e)}));const r=[];return t.forEach((function(e){const t={type:"m",x:e[e.length-1].x,y:e[e.length-1].y};r.push(t);for(let n=e.length-1;n>0;n--){const t=e[n],i={type:t.type};void 0!==t.x2&&void 0!==t.y2?(i.x1=t.x2,i.y1=t.y2,i.x2=t.x1,i.y2=t.y1):void 0!==t.x1&&void 0!==t.y1&&(i.x1=t.x1,i.y1=t.y1),i.x=e[n-1].x,i.y=e[n-1].y,r.push(i)}})),r}return function(e,n){const r=Math.round,i={},s=1e5/(72*(e.unitsPerEm||2048)),a=e.encoding.cmap.glyphIndexMap,o=Object.keys(a);for(let l=0;l{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(8083);class s extends r.Loader{load(e,t,n,i){const s=this,a=new r.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setWithCredentials(this.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){const t=new r.Group,n=i.unzipSync(new Uint8Array(e.slice(16))),s=JSON.parse(i.strFromU8(n["metadata.json"])),o=new DataView(n["data.sketch"].buffer),l=o.getInt32(16,!0),c={};let u=20;for(let r=0;r0&&(s+=4),(i&e)>0&&(a+=4)}u=u+28+s+4;const l=o.getInt32(u,!0),h=new Float32Array(3*l),d=new Float32Array(4*l);u+=4;for(let c=0,p=0;c({Light:{uniforms:{mainTex:{value:(new r.TextureLoader).setPath("./textures/tiltbrush/").loader.load("Light.webp")},alphaTest:{value:.067},emission_gain:{value:.45},alpha:{value:1}},vertexShader:`\n\t\t\tprecision highp float;\n\t\t\tprecision highp int;\n\n\t\t\tattribute vec2 uv;\n\t\t\tattribute vec4 color;\n\t\t\tattribute vec3 position;\n\n\t\t\tuniform mat4 modelMatrix;\n\t\t\tuniform mat4 modelViewMatrix;\n\t\t\tuniform mat4 projectionMatrix;\n\t\t\tuniform mat4 viewMatrix;\n\t\t\tuniform mat3 normalMatrix;\n\t\t\tuniform vec3 cameraPosition;\n\n\t\t\tvarying vec2 vUv;\n\t\t\tvarying vec3 vColor;\n\n\t\t\t${l.LinearToSrgb}\n\t\t\t${l.hsv}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvUv = uv;\n\n\t\t\t\tvColor = lookup(color.rgb);\n\n\t\t\t\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t}\n\t\t`,fragmentShader:`\n\t\t\tprecision highp float;\n\t\t\tprecision highp int;\n\n\t\t\tuniform float emission_gain;\n\n\t\t\tuniform sampler2D mainTex;\n\t\t\tuniform float alphaTest;\n\n\t\t\tvarying vec2 vUv;\n\t\t\tvarying vec3 vColor;\n\n\t\t\t${l.BloomColor}\n\t\t\t${l.SrgbToLinear}\n\n\t\t\tvoid main(){\n\t\t\t\tvec4 col = texture2D(mainTex, vUv);\n\t\t\t\tvec3 color = vColor;\n\t\t\t\tcolor = BloomColor(color, emission_gain);\n\t\t\t\tcolor = color * col.rgb;\n\t\t\t\tcolor = color * col.a;\n\t\t\t\tcolor = SrgbToLinear(color);\n\t\t\t\tgl_FragColor = vec4(color, 1.0);\n\t\t\t}\n\t\t`,side:2,transparent:!0,depthFunc:2,depthWrite:!0,depthTest:!1,blending:5,blendDst:201,blendDstAlpha:201,blendEquation:100,blendEquationAlpha:100,blendSrc:201,blendSrcAlpha:201}});function h(e){return"Light"===o[e]?new r.RawShaderMaterial(c().Light):new r.MeshBasicMaterial({vertexColors:!0,side:r.DoubleSide})}t.TiltLoader=s},21847:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(79836);class s extends r.Loader{load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){const t=new DataView(e),n=t.getUint32(0,!0),r=t.getUint32(4,!0);if(542658390!==n||150!==r)return void console.error("Not a valid VOX file");const i=[0,4294967295,4291624959,4288282623,4284940287,4281597951,4278255615,4294954239,4291611903,4288269567,4284927231,4281584895,4278242559,4294941183,4291598847,4288256511,4284914175,4281571839,4278229503,4294928127,4291585791,4288243455,4284901119,4281558783,4278216447,4294915071,4291572735,4288230399,4284888063,4281545727,4278203391,4294902015,4291559679,4288217343,4284875007,4281532671,4278190335,4294967244,4291624908,4288282572,4284940236,4281597900,4278255564,4294954188,4291611852,4288269516,4284927180,4281584844,4278242508,4294941132,4291598796,4288256460,4284914124,4281571788,4278229452,4294928076,4291585740,4288243404,4284901068,4281558732,4278216396,4294915020,4291572684,4288230348,4284888012,4281545676,4278203340,4294901964,4291559628,4288217292,4284874956,4281532620,4278190284,4294967193,4291624857,4288282521,4284940185,4281597849,4278255513,4294954137,4291611801,4288269465,4284927129,4281584793,4278242457,4294941081,4291598745,4288256409,4284914073,4281571737,4278229401,4294928025,4291585689,4288243353,4284901017,4281558681,4278216345,4294914969,4291572633,4288230297,4284887961,4281545625,4278203289,4294901913,4291559577,4288217241,4284874905,4281532569,4278190233,4294967142,4291624806,4288282470,4284940134,4281597798,4278255462,4294954086,4291611750,4288269414,4284927078,4281584742,4278242406,4294941030,4291598694,4288256358,4284914022,4281571686,4278229350,4294927974,4291585638,4288243302,4284900966,4281558630,4278216294,4294914918,4291572582,4288230246,4284887910,4281545574,4278203238,4294901862,4291559526,4288217190,4284874854,4281532518,4278190182,4294967091,4291624755,4288282419,4284940083,4281597747,4278255411,4294954035,4291611699,4288269363,4284927027,4281584691,4278242355,4294940979,4291598643,4288256307,4284913971,4281571635,4278229299,4294927923,4291585587,4288243251,4284900915,4281558579,4278216243,4294914867,4291572531,4288230195,4284887859,4281545523,4278203187,4294901811,4291559475,4288217139,4284874803,4281532467,4278190131,4294967040,4291624704,4288282368,4284940032,4281597696,4278255360,4294953984,4291611648,4288269312,4284926976,4281584640,4278242304,4294940928,4291598592,4288256256,4284913920,4281571584,4278229248,4294927872,4291585536,4288243200,4284900864,4281558528,4278216192,4294914816,4291572480,4288230144,4284887808,4281545472,4278203136,4294901760,4291559424,4288217088,4284874752,4281532416,4278190318,4278190301,4278190267,4278190250,4278190216,4278190199,4278190165,4278190148,4278190114,4278190097,4278251008,4278246656,4278237952,4278233600,4278224896,4278220544,4278211840,4278207488,4278198784,4278194432,4293787648,4292673536,4290445312,4289331200,4287102976,4285988864,4283760640,4282646528,4280418304,4279304192,4293848814,4292730333,4290493371,4289374890,4287137928,4286019447,4283782485,4282664004,4280427042,4279308561];let s,a=8;const o=[];for(;a>0&255)/255,x=(v>>8&255)/255,b=(v>>16&255)/255;(y>0||x>0||b>0)&&(A=!0);const E=e+s*f+a*m;0!==g[E+1]&&e!==n.x-1||p(l,e,a,-s,y,x,b),0!==g[E-1]&&0!==e||p(o,e,a,-s,y,x,b),0!==g[E+f]&&s!==n.y-1||p(h,e,a,-s,y,x,b),0!==g[E-f]&&0!==s||p(c,e,a,-s,y,x,b),0!==g[E+m]&&a!==n.z-1||p(d,e,a,-s,y,x,b),0!==g[E-m]&&0!==a||p(u,e,a,-s,y,x,b)}const v=new r.BufferGeometry;v.setAttribute("position",new r.Float32BufferAttribute(s,3)),v.computeVertexNormals();const y=new r.MeshStandardMaterial;A&&(v.setAttribute("color",new r.Float32BufferAttribute(a,3)),y.vertexColors=!0),super(v,y)}}class o extends i.Data3DTexture{constructor(e){const t=e.data,n=e.size,i=n.x,s=n.x*n.y,a=new Uint8Array(n.x*n.y*n.z);for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(94479);class s extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=""===s.path?r.LoaderUtils.extractUrlBase(e):s.path,o=new r.FileLoader(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,(function(n){try{t(s.parse(n,a))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e,t){const n={};function s(e){e.DEF&&(n[e.DEF]=e);const t=e.fields;for(let n=0,r=t.length;n3?(L(e,l,s,D(a),!0),n.vertexColors=!0):n.color.setRGB(a[0],a[1],a[2]);const i=new r.Mesh(e,n);t.add(i)}if(i&&i.length>0){const e=new r.SphereGeometry(l,32,16,0,2*Math.PI,.5*Math.PI,1.5*Math.PI),s=new r.MeshBasicMaterial({fog:!1,side:r.BackSide,vertexColors:!0,depthWrite:!1,depthTest:!1});L(e,l,n,D(i),!1);const a=new r.Mesh(e,s);t.add(a)}return t.renderOrder=-1/0,t}(e);break;case"Shape":n=function(e){const t=e.fields;let n,i,s=new r.MeshBasicMaterial({color:0});for(let r=0,a=t.length;r0&&(n.transparent=!0)}else n=new r.MeshBasicMaterial({color:0});break;case"texture":const e=o[0];null!==e&&("ImageTexture"!==e.name&&"PixelTexture"!==e.name||(n.map=h(e)));break;case"textureTransform":null!==o[0]&&(t=h(o[0]));break;default:console.warn("THREE.VRMLLoader: Unknown field:",a)}}if(n.map){if(n.map.__type){switch(n.map.__type){case c.INTENSITY_ALPHA:n.opacity=1;break;case c.RGB:n.color.set(16777215);break;case c.RGBA:n.color.set(16777215),n.opacity=1}delete n.map.__type}t&&(n.map.center.copy(t.center),n.map.rotation=t.rotation,n.map.repeat.copy(t.scale),n.map.offset.copy(t.translation))}return n}(e);break;case"Material":n=function(e){const t={},n=e.fields;for(let i=0,s=n.length;i0){b=w(x,f(a,u),t,3)}else b=T(x,new r.Float32BufferAttribute(t,3));else if(a&&a.length>0){b=M(x,m(g(t,a),o))}else{b=M(x,m(t,o))}if(i)if(!0===v)if(l&&l.length>0){E=w(x,f(l,u),i,3)}else E=T(x,new r.Float32BufferAttribute(i,3));else if(l&&l.length>0){E=M(x,m(g(i,l),o))}else{E=M(x,m(i,o))}else E=R(x,n,p);if(s)if(c&&c.length>0){_=w(x,f(c,u),s,2)}else _=T(x,new r.Float32BufferAttribute(s,2));const S=new r.BufferGeometry,C=T(x,new r.Float32BufferAttribute(n,3));S.setAttribute("position",C),S.setAttribute("normal",E),b&&S.setAttribute("color",b);_&&S.setAttribute("uv",_);return S._solid=d,S._type="mesh",S}(e);break;case"IndexedLineSet":n=function(e){let t,n,i,s,a=!0;const o=e.fields;for(let r=0,p=o.length;r0){l=w(c,A(i),t,3)}else l=T(c,new r.Float32BufferAttribute(t,3));else if(i.length>0){l=C(c,v(g(t,i),s))}else{l=C(c,v(t,s))}const u=new r.BufferGeometry,d=T(c,new r.Float32BufferAttribute(n,3));u.setAttribute("position",d),l&&u.setAttribute("color",l);return u._type="line",u}(e);break;case"PointSet":n=function(e){let t,n;const i=e.fields;for(let r=0,a=i.length;r=s)&&(i+=3,r=i+1)}return n}function m(e,t){const n=[];let r=0;for(let i=0,s=t.length;i=s)&&(i+=3,r++)}return n}function g(e,t){const n=[];for(let r=0,i=t.length;r=r)&&(n+=2)}return t}function v(e,t){const n=[];let r=0;for(let i=0,s=t.length;i=s)&&(i+=2,r++)}return n}const y=new r.Vector3,x=new r.Vector3,b=new r.Vector3,E=new r.Vector2,_=new r.Vector2,S=new r.Vector2;function w(e,t,n,i){const s=[];for(let r=0,a=e.length;ri.y){o=Math.abs(e.y-u.y)/Math.abs(e.y-i.y);break}}else if(u.y>=e.y&&u.y0)throw console.error(r.errors),Error("THREE.VRMLLoader: Parsing errors detected.");return s.visit(c)}(e))}}class a{constructor(e){this.lexer=new i.Lexer(e)}lex(e){const t=this.lexer.tokenize(e);if(t.errors.length>0)throw console.error(t.errors),Error("THREE.VRMLLexer: Lexing errors detected.");return t}}class o extends i.CstParser{constructor(e){super(e);const t=this,n=e.Version,r=e.LCurly,i=e.RCurly,s=e.LSquare,a=e.RSquare,o=e.Identifier,l=e.RouteIdentifier,c=e.StringLiteral,h=e.HexLiteral,u=e.NumberLiteral,d=e.TrueLiteral,p=e.FalseLiteral,f=e.NullLiteral,m=e.DEF,g=e.USE,A=e.ROUTE,v=e.TO,y=e.NodeName;t.RULE("vrml",(function(){t.SUBRULE(t.version),t.AT_LEAST_ONE((function(){t.SUBRULE(t.node)})),t.MANY((function(){t.SUBRULE(t.route)}))})),t.RULE("version",(function(){t.CONSUME(n)})),t.RULE("node",(function(){t.OPTION((function(){t.SUBRULE(t.def)})),t.CONSUME(y),t.CONSUME(r),t.MANY((function(){t.SUBRULE(t.field)})),t.CONSUME(i)})),t.RULE("field",(function(){t.CONSUME(o),t.OR2([{ALT:function(){t.SUBRULE(t.singleFieldValue)}},{ALT:function(){t.SUBRULE(t.multiFieldValue)}}])})),t.RULE("def",(function(){t.CONSUME(m),t.OR([{ALT:function(){t.CONSUME(o)}},{ALT:function(){t.CONSUME(y)}}])})),t.RULE("use",(function(){t.CONSUME(g),t.OR([{ALT:function(){t.CONSUME(o)}},{ALT:function(){t.CONSUME(y)}}])})),t.RULE("singleFieldValue",(function(){t.AT_LEAST_ONE((function(){t.OR([{ALT:function(){t.SUBRULE(t.node)}},{ALT:function(){t.SUBRULE(t.use)}},{ALT:function(){t.CONSUME(c)}},{ALT:function(){t.CONSUME(h)}},{ALT:function(){t.CONSUME(u)}},{ALT:function(){t.CONSUME(d)}},{ALT:function(){t.CONSUME(p)}},{ALT:function(){t.CONSUME(f)}}])}))})),t.RULE("multiFieldValue",(function(){t.CONSUME(s),t.MANY((function(){t.OR([{ALT:function(){t.SUBRULE(t.node)}},{ALT:function(){t.SUBRULE(t.use)}},{ALT:function(){t.CONSUME(c)}},{ALT:function(){t.CONSUME(h)}},{ALT:function(){t.CONSUME(u)}},{ALT:function(){t.CONSUME(f)}}])})),t.CONSUME(a)})),t.RULE("route",(function(){t.CONSUME(A),t.CONSUME(l),t.CONSUME(v),t.CONSUME2(l)})),this.performSelfAnalysis()}}class l{constructor(e,t,n){this.a=e,this.b=t,this.c=n,this.normal=new r.Vector3}}const c={INTENSITY:1,INTENSITY_ALPHA:2,RGB:3,RGBA:4};t.VRMLLoader=s},7955:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(20614);class s extends r.Loader{constructor(e){super(e),this.gltfLoader=new i.GLTFLoader(e)}load(e,t,n,r){const i=this;this.gltfLoader.load(e,(function(n){try{i.parse(n,t)}catch(s){r?r(s):console.error(s),i.manager.itemError(e)}}),n,r)}setDRACOLoader(e){return this.gltfLoader.setDRACOLoader(e),this}parse(e,t){t(e)}}t.VRMLoader=s},39142:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(8083);class s extends r.Loader{constructor(e){super(e)}load(e,t,n,i){const s=this,a=new r.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){function t(e,t){const n=e.length,r=new Float32Array(n+t.length);return r.set(e),r.set(t,n),r}var n=r.LoaderUtils.decodeText(new Uint8Array(e,0,250)).split("\n");return-1!==n[0].indexOf("xml")?function(e){function n(e){var t,n,r,i,s,a,o="undefined"!=typeof Uint8Array?Uint8Array:Array,l=[],c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=64;for(t=0;t0)throw new Error("Invalid string. Length must be a multiple of 4");a=new o(3*h/4-(s="="===e[h-2]?2:"="===e[h-1]?1:0)),r=s>0?h-4:h;var u=0;for(t=0,n=0;t>16,a[u++]=(65280&i)>>8,a[u++]=255&i;return 2===s?(i=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===s&&(i=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function s(e,r){var s,a,l,c,h=0;if("UInt64"===o.attributes.header_type?h=8:"UInt32"===o.attributes.header_type&&(h=4),"binary"===e.attributes.format&&r){var u,d,p,f,m,g;if("Float32"===e.attributes.type)var A=new Float32Array;else"Int64"===e.attributes.type&&(A=new Int32Array);d=(u=n(e["#text"]))[0];for(var v=1;v0?3-f%3:0,(m=[]).push(g),p=3*h,v=0;v0){n.attributes={};for(var r=0;r0&&(A[v].text=s(A[v],d)),v++;switch(p[f]){case"PointData":var x=parseInt(u.attributes.NumberOfPoints),b=g.attributes.Normals;if(x>0)for(var E=0,_=A.length;E<_;E++)if(b===A[E].attributes.Name){var S=A[E].attributes.NumberOfComponents;(c=new Float32Array(x*S)).set(A[E].text,0)}break;case"Points":(x=parseInt(u.attributes.NumberOfPoints))>0&&(S=g.DataArray.attributes.NumberOfComponents,(l=new Float32Array(x*S)).set(g.DataArray.text,0));break;case"Strips":var w=parseInt(u.attributes.NumberOfStrips);if(w>0){var M=new Int32Array(g.DataArray[0].text.length),C=new Int32Array(g.DataArray[1].text.length);M.set(g.DataArray[0].text,0),C.set(g.DataArray[1].text,0);var T=w+M.length;h=new Uint32Array(3*T-9*w);var I=0;for(E=0,_=w;E<_;E++){for(var B=[],R=0,P=C[E],D=0;R0&&(D=C[E-1]);var L=0;for(P=C[E],D=0;L0&&(D=C[E-1])}}break;case"Polys":var F=parseInt(u.attributes.NumberOfPolys);if(F>0){M=new Int32Array(g.DataArray[0].text.length),C=new Int32Array(g.DataArray[1].text.length),M.set(g.DataArray[0].text,0),C.set(g.DataArray[1].text,0),T=F+M.length,h=new Uint32Array(3*T-9*F),I=0;var U=0;for(E=0,_=F,D=0;E<_;){var O=[];for(R=0,P=C[E];R=3)for(var D=parseInt(P[0]),L=1,F=0;F=3)for(F=0;F=c.byteLength)break}var _=new r.BufferGeometry;return _.setIndex(new r.BufferAttribute(p,1)),_.setAttribute("position",new r.BufferAttribute(u,3)),d.length===u.length&&_.setAttribute("normal",new r.BufferAttribute(d,3)),_}(e)}}t.VTKLoader=s},56668:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);var s,a,o,l,c,h,u=(s=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},a=function(){function e(e,t){for(let r=0;r1&&void 0!==arguments[1]?arguments[1]:0;t-1&&n<2))break;var r=-1;t=(r=e.indexOf("\r\n",t))>0?r+2:(r=e.indexOf("\r",t))>0?r+1:e.indexOf("\n",t)+1}return e.substr(t)}},{key:"_readLine",value:function(e){for(var t=0;;){var n=-1;if(-1===(n=e.indexOf("//",t))&&(n=e.indexOf("#",t)),!(n>-1&&n<2))break;var r=-1;t=(r=e.indexOf("\r\n",t))>0?r+2:(r=e.indexOf("\r",t))>0?r+1:e.indexOf("\n",t)+1}return e.substr(t)}},{key:"_isBinary",value:function(e){var t=new DataView(e);if(84+50*t.getUint32(80,!0)===t.byteLength)return!0;var n=t.byteLength;for(let r=0;r127)return!0;return!1}},{key:"_ensureBinary",value:function(e){if("string"==typeof e){var t=new Uint8Array(e.length);for(let n=0;n0&&i>r)){n=-1===r?this._data.length:i+1;break}var a={children:[]},o=this._readLine(this._data.substr(n,r-n-1)).trim(),l=o.split(/ /g);if(l.length>0?(a.type=l[0],l.length>=2?a.name=l[1]:a.name=l[0]+this.Hierarchies.children.length):(a.name=o,a.type=""),"Animation"===a.type){a.data=this._data.substr(s,i-s).trim();var c=this._hierarchieParse(a,i+1);n=c.end,a.children=c.parent.children}else{var h=this._data.lastIndexOf(";",s>0?Math.min(s,i):i);if(a.data=this._data.substr(r,h-r).trim(),s<=0||i0||!this._currentObject.worked?setTimeout((function(){e._mainloop()}),1):setTimeout((function(){e.onLoad({models:e.Meshes,animations:e.animations})}),1)}},{key:"_mainProc",value:function(){for(var e=!1;;){if(!this._currentObject.worked){switch(this._currentObject.type){case"template":case"VertexDuplicationIndices":break;case"AnimTicksPerSecond":this.animTicksPerSecond=parseInt(this._currentObject.data);break;case"Frame":this._setFrame();break;case"FrameTransformMatrix":this._setFrameTransformMatrix();break;case"Mesh":this._changeRoot(),this._currentGeo={},this._currentGeo.name=this._currentObject.name.trim(),this._currentGeo.parentName=this._getParentName(this._currentObject).trim(),this._currentGeo.VertexSetedBoneCount=[],this._currentGeo.GeometryData={vertices:[],normals:[],uvs:[],skinIndices:[],skinWeights:[],indices:[],materialIndices:[]},this._currentGeo.Materials=[],this._currentGeo.normalVectors=[],this._currentGeo.BoneInfs=[],this._currentGeo.baseFrame=this._currentFrame,this._makeBoneFrom_CurrentFrame(),this._readVertexDatas(),e=!0;break;case"MeshNormals":this._readVertexDatas();break;case"MeshTextureCoords":this._setMeshTextureCoords();break;case"MeshMaterialList":this._setMeshMaterialList();break;case"Material":this._setMaterial();break;case"SkinWeights":this._setSkinWeights();break;case"AnimationSet":this._changeRoot(),this._currentAnime={},this._currentAnime.name=this._currentObject.name.trim(),this._currentAnime.AnimeFrames=[];break;case"Animation":this._currentAnimeFrames&&this._currentAnime.AnimeFrames.push(this._currentAnimeFrames),this._currentAnimeFrames=new l,this._currentAnimeFrames.boneName=this._currentObject.data.trim();break;case"AnimationKey":this._readAnimationKey(),e=!0}this._currentObject.worked=!0}if(this._currentObject.children.length>0){if(this._currentObject=this._currentObject.children.shift(),this.debug&&console.log("processing "+this._currentObject.name),e)break}else if(this._currentObject.worked&&this._currentObject.parent&&!this._currentObject.parent.parent&&this._changeRoot(),this._currentObject.parent?this._currentObject=this._currentObject.parent:e=!0,e)break}}},{key:"_changeRoot",value:function(){null!=this._currentGeo&&this._currentGeo.name&&this._makeOutputGeometry(),this._currentGeo={},null!=this._currentAnime&&this._currentAnime.name&&(this._currentAnimeFrames&&(this._currentAnime.AnimeFrames.push(this._currentAnimeFrames),this._currentAnimeFrames=null),this._makeOutputAnimation()),this._currentAnime={}}},{key:"_getParentName",value:function(e){return e.parent?e.parent.name?e.parent.name:this._getParentName(e.parent):""}},{key:"_setFrame",value:function(){this._nowFrameName=this._currentObject.name.trim(),this._currentFrame={},this._currentFrame.name=this._nowFrameName,this._currentFrame.children=[],this._currentObject.parent&&this._currentObject.parent.name&&(this._currentFrame.parentName=this._currentObject.parent.name),this.frameHierarchie.push(this._nowFrameName),this.HieStack[this._nowFrameName]=this._currentFrame}},{key:"_setFrameTransformMatrix",value:function(){this._currentFrame.FrameTransformMatrix=new r.Matrix4;var e=this._currentObject.data.split(",");this._ParseMatrixData(this._currentFrame.FrameTransformMatrix,e),this._makeBoneFrom_CurrentFrame()}},{key:"_makeBoneFrom_CurrentFrame",value:function(){if(this._currentFrame.FrameTransformMatrix){var e=new r.Bone;if(e.name=this._currentFrame.name,e.applyMatrix4(this._currentFrame.FrameTransformMatrix),e.matrixWorld=e.matrix,e.FrameTransformMatrix=this._currentFrame.FrameTransformMatrix,this._currentFrame.putBone=e,this._currentFrame.parentName)for(let e in this.HieStack)this.HieStack[e].name===this._currentFrame.parentName&&this.HieStack[e].putBone.add(this._currentFrame.putBone)}}},{key:"_readVertexDatas",value:function(){for(var e=0,t=0,n=0,r=0;;){var i=!1;if(0===n)e=this._readInt1(e).endRead,n=1,(r=this._currentObject.data.indexOf(";;",e)+1)<=0&&(r=this._currentObject.data.length);else{var s=0;switch(t){case 0:s=this._currentObject.data.indexOf(",",e)+1;break;case 1:s=this._currentObject.data.indexOf(";,",e)+1}switch((0===s||s>r)&&(s=r,n=0,i=!0),this._currentObject.type){case"Mesh":switch(t){case 0:this._readVertex1(this._currentObject.data.substr(e,s-e));break;case 1:this._readFace1(this._currentObject.data.substr(e,s-e))}break;case"MeshNormals":0===t&&this._readNormalVector1(this._currentObject.data.substr(e,s-e))}e=s+1,i&&t++}if(e>=this._currentObject.data.length)break}}},{key:"_readInt1",value:function(e){var t=this._currentObject.data.indexOf(";",e);return{refI:parseInt(this._currentObject.data.substr(e,t-e)),endRead:t+1}}},{key:"_readVertex1",value:function(e){var t=this._readLine(e.trim()).substr(0,e.length-2).split(";");this._currentGeo.GeometryData.vertices.push(parseFloat(t[0]),parseFloat(t[1]),parseFloat(t[2])),this._currentGeo.GeometryData.skinIndices.push(0,0,0,0),this._currentGeo.GeometryData.skinWeights.push(1,0,0,0),this._currentGeo.VertexSetedBoneCount.push(0)}},{key:"_readFace1",value:function(e){var t=this._readLine(e.trim()).substr(2,e.length-4).split(",");this._currentGeo.GeometryData.indices.push(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10))}},{key:"_readNormalVector1",value:function(e){var t=this._readLine(e.trim()).substr(0,e.length-2).split(";");this._currentGeo.GeometryData.normals.push(parseFloat(t[0]),parseFloat(t[1]),parseFloat(t[2]))}},{key:"_buildGeometry",value:function(){var e=new r.BufferGeometry,t=[],n=[],i=[],s=[],a=[],o=this._currentGeo.GeometryData;for(let r=0,u=o.indices.length;r=this._currentObject.data.length)break}}},{key:"_setMeshMaterialList",value:function(){for(var e=0,t=0,n=0;;){if(n<2)e=this._readInt1(e).endRead,n++;else{var r=this._currentObject.data.indexOf(";",e);-1===r&&(r=this._currentObject.data.length,t=3,n=0);var i=this._currentObject.data.substr(e,r-e),s=this._readLine(i.trim()).split(",");for(let e=0;e=this._currentObject.data.length||t>=3)break}}},{key:"_setMaterial",value:function(){var e=new r.MeshPhongMaterial({color:16777215*Math.random()});e.side=r.FrontSide,e.name=this._currentObject.name;var t=0,n=this._currentObject.data.indexOf(";;",t),i=this._currentObject.data.substr(t,n-t),s=this._readLine(i.trim()).split(";");e.color.r=parseFloat(s[0]),e.color.g=parseFloat(s[1]),e.color.b=parseFloat(s[2]),t=n+2,n=this._currentObject.data.indexOf(";",t),i=this._currentObject.data.substr(t,n-t),e.shininess=parseFloat(this._readLine(i)),t=n+1,n=this._currentObject.data.indexOf(";;",t),i=this._currentObject.data.substr(t,n-t);var a=this._readLine(i.trim()).split(";");e.specular.r=parseFloat(a[0]),e.specular.g=parseFloat(a[1]),e.specular.b=parseFloat(a[2]),t=n+2,-1===(n=this._currentObject.data.indexOf(";;",t))&&(n=this._currentObject.data.length),i=this._currentObject.data.substr(t,n-t);var o=this._readLine(i.trim()).split(";");e.emissive.r=parseFloat(o[0]),e.emissive.g=parseFloat(o[1]),e.emissive.b=parseFloat(o[2]);for(var l=null;this._currentObject.children.length>0;){l=this._currentObject.children.shift(),this.debug&&console.log("processing "+l.name);var c=l.data.substr(1,l.data.length-2);switch(l.type){case"TextureFilename":e.map=this.texloader.load(c);break;case"BumpMapFilename":e.bumpMap=this.texloader.load(c),e.bumpScale=.05;break;case"NormalMapFilename":e.normalMap=this.texloader.load(c),e.normalScale=new r.Vector2(2,2);break;case"EmissiveMapFilename":e.emissiveMap=this.texloader.load(c);break;case"LightMapFilename":e.lightMap=this.texloader.load(c)}}this._currentGeo.Materials.push(e)}},{key:"_setSkinWeights",value:function(){var e=new o,t=0,n=this._currentObject.data.indexOf(";",t),i=this._currentObject.data.substr(t,n-t);t=n+1,e.boneName=i.substr(1,i.length-2),e.BoneIndex=this._currentGeo.BoneInfs.length,t=(n=this._currentObject.data.indexOf(";",t))+1,n=this._currentObject.data.indexOf(";",t),i=this._currentObject.data.substr(t,n-t);var s=this._readLine(i.trim()).split(",");for(let r=0;r0)for(let e=0;e0){var t=[];this._makePutBoneList(this._currentGeo.baseFrame.parentName,t);for(let e=0;e4&&console.log("warn! over 4 bone weight! :"+i)}}for(let e=0;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Loader{load(e,t,n,i){const s=this,a=new r.FileLoader(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(n){try{t(s.parse(n))}catch(r){i?i(r):console.error(r),s.manager.itemError(e)}}),n,i)}parse(e){const t=e.split("\n"),n=[],i=[];for(let r of t){if(r=r.trim(),"#"===r.charAt(0))continue;const e=r.split(/\s+/);3===e.length&&(n.push(parseFloat(e[0])),n.push(parseFloat(e[1])),n.push(parseFloat(e[2]))),6===e.length&&(n.push(parseFloat(e[0])),n.push(parseFloat(e[1])),n.push(parseFloat(e[2])),i.push(parseFloat(e[3])/255),i.push(parseFloat(e[4])/255),i.push(parseFloat(e[5])/255))}const s=new r.BufferGeometry;return s.setAttribute("position",new r.Float32BufferAttribute(n,3)),i.length>0&&s.setAttribute("color",new r.Float32BufferAttribute(i,3)),s}}t.XYZLoader=i},40876:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(90153),i=n(30997);class s{constructor(e){this.dv=new DataView(e),this.offset=0,this._textDecoder=new TextDecoder,this._bytes=new Uint8Array(e)}size(){return this.dv.buffer.byteLength}setOffset(e){e>0&&e=this.size()}skip(e){this.offset+=e}getUint8(){var e=this.dv.getUint8(this.offset);return this.offset+=1,e}getUint16(){var e=this.dv.getUint16(this.offset);return this.offset+=2,e}getInt32(){var e=this.dv.getInt32(this.offset,!1);return this.offset+=4,e}getUint32(){var e=this.dv.getUint32(this.offset,!1);return this.offset+=4,e}getUint64(){return 4294967296*this.getUint32()+this.getUint32()}getFloat32(){var e=this.dv.getFloat32(this.offset,!1);return this.offset+=4,e}getFloat32Array(e){for(var t=[],n=0;n ( ${this.dataOffset+this.length} )`,0==this.node?" {":"",this.skipped?"SKIPPED":"",0==this.node&&this.skipped?"}":""),0!=this.node||this.skipped||(this.depth+=1,this.formList.push(this.dataOffset+this.length)),this.skipped=!1}}closeForms(){if(this.active)for(var e=this.formList.length-1;e>=0;e--)this.offset>=this.formList[e]&&(this.depth-=1,console.log("| ".repeat(this.depth)+"}"),this.formList.splice(-1,1))}}function o(e){return e.length+1+((e.length+1)%2?1:0)}t.IFFParser=class{constructor(){this.debugger=new a}parse(e){if(this.reader=new s(e),this.tree={materials:{},layers:[],tags:[],textures:[]},this.currentLayer=this.tree,this.currentForm=this.tree,this.parseTopForm(),void 0!==this.tree.format){if("LWO2"===this.tree.format)for(this.parser=new r.LWO2Parser(this);!this.reader.endOfFile();)this.parser.parseBlock();else if("LWO3"===this.tree.format)for(this.parser=new i.LWO3Parser(this);!this.reader.endOfFile();)this.parser.parseBlock();return this.debugger.offset=this.reader.offset,this.debugger.closeForms(),this.tree}}parseTopForm(){if(this.debugger.offset=this.reader.offset,"FORM"===this.reader.getIDTag()){var e=this.reader.getUint32();this.debugger.dataOffset=this.reader.offset,this.debugger.length=e;var t=this.reader.getIDTag();("LWO2"===t||"LWO3"===t)&&(this.tree.format=t),this.debugger.node=0,this.debugger.nodeID=t,this.debugger.log()}else console.warn("LWOLoader: Top-level FORM missing.")}parseForm(e){var t=this.reader.getIDTag();switch(t){case"ISEQ":case"ANIM":case"STCC":case"VPVL":case"VPRM":case"NROT":case"WRPW":case"WRPH":case"FUNC":case"FALL":case"OPAC":case"GRAD":case"ENVS":case"VMOP":case"VMBG":case"OMAX":case"STEX":case"CKBG":case"CKEY":case"VMLA":case"VMLB":this.debugger.skipped=!0,this.skipForm(e);break;case"META":case"NNDS":case"NODS":case"NDTA":case"ADAT":case"AOVS":case"BLOK":case"IBGC":case"IOPC":case"IIMG":case"TXTR":this.debugger.length=4,this.debugger.skipped=!0;break;case"IFAL":case"ISCL":case"IPOS":case"IROT":case"IBMP":case"IUTD":case"IVTD":this.parseTextureNodeAttribute(t);break;case"ENVL":this.parseEnvelope(e);break;case"CLIP":"LWO2"===this.tree.format?this.parseForm(e):this.parseClip(e);break;case"STIL":this.parseImage();break;case"XREF":this.reader.skip(8),this.currentForm.referenceTexture={index:this.reader.getUint32(),refName:this.reader.getString()};break;case"IMST":this.parseImageStateForm(e);break;case"SURF":this.parseSurfaceForm(e);break;case"VALU":this.parseValueForm(e);break;case"NTAG":this.parseSubNode(e);break;case"ATTR":case"SATR":this.setupForm("attributes",e);break;case"NCON":this.parseConnections(e);break;case"SSHA":this.parentForm=this.currentForm,this.currentForm=this.currentSurface,this.setupForm("surfaceShader",e);break;case"SSHD":this.setupForm("surfaceShaderData",e);break;case"ENTR":this.parseEntryForm(e);break;case"IMAP":this.parseImageMap(e);break;case"TAMP":this.parseXVAL("amplitude",e);break;case"TMAP":this.setupForm("textureMap",e);break;case"CNTR":this.parseXVAL3("center",e);break;case"SIZE":this.parseXVAL3("scale",e);break;case"ROTA":this.parseXVAL3("rotation",e);break;default:this.parseUnknownForm(t,e)}this.debugger.node=0,this.debugger.nodeID=t,this.debugger.log()}setupForm(e,t){this.currentForm||(this.currentForm=this.currentNode),this.currentFormEnd=this.reader.offset+t,this.parentForm=this.currentForm,this.currentForm[e]?(console.warn("LWOLoader: form already exists on parent: ",e,this.currentForm),this.currentForm=this.currentForm[e]):(this.currentForm[e]={},this.currentForm=this.currentForm[e])}skipForm(e){this.reader.skip(e-4)}parseUnknownForm(e,t){var n,r,i;console.warn("LWOLoader: unknown FORM encountered: "+e,t),n=this.reader.dv.buffer,r=this.reader.offset,i=t-4,console.log((new TextDecoder).decode(new Uint8Array(n,r,i))),this.reader.skip(t-4)}parseSurfaceForm(e){this.reader.skip(8);var t=this.reader.getString(),n={attributes:{},connections:{},name:t,inputName:t,nodes:{},source:this.reader.getString()};this.tree.materials[t]=n,this.currentSurface=n,this.parentForm=this.tree.materials,this.currentForm=n,this.currentFormEnd=this.reader.offset+e}parseSurfaceLwo2(e){var t=this.reader.getString(),n={attributes:{},connections:{},name:t,nodes:{},source:this.reader.getString()};this.tree.materials[t]=n,this.currentSurface=n,this.parentForm=this.tree.materials,this.currentForm=n,this.currentFormEnd=this.reader.offset+e}parseSubNode(e){this.reader.skip(8);var t={name:this.reader.getString()};this.currentForm=t,this.currentNode=t,this.currentFormEnd=this.reader.offset+e}parseConnections(e){this.currentFormEnd=this.reader.offset+e,this.parentForm=this.currentForm,this.currentForm=this.currentSurface.connections}parseEntryForm(e){this.reader.skip(8);var t=this.reader.getString();this.currentForm=this.currentNode.attributes,this.setupForm(t,e)}parseValueForm(){this.reader.skip(8);var e=this.reader.getString();"double"===e?this.currentForm.value=this.reader.getUint64():"int"===e?this.currentForm.value=this.reader.getUint32():"vparam"===e?(this.reader.skip(24),this.currentForm.value=this.reader.getFloat64()):"vparam3"===e&&(this.reader.skip(24),this.currentForm.value=this.reader.getFloat64Array(3))}parseImageStateForm(){this.reader.skip(8),this.currentForm.mipMapLevel=this.reader.getFloat32()}parseImageMap(e){this.currentFormEnd=this.reader.offset+e,this.parentForm=this.currentForm,this.currentForm.maps||(this.currentForm.maps=[]);var t={};this.currentForm.maps.push(t),this.currentForm=t,this.reader.skip(10)}parseTextureNodeAttribute(e){switch(this.reader.skip(28),this.reader.skip(20),e){case"ISCL":this.currentNode.scale=this.reader.getFloat32Array(3);break;case"IPOS":this.currentNode.position=this.reader.getFloat32Array(3);break;case"IROT":this.currentNode.rotation=this.reader.getFloat32Array(3);break;case"IFAL":this.currentNode.falloff=this.reader.getFloat32Array(3);break;case"IBMP":this.currentNode.amplitude=this.reader.getFloat32();break;case"IUTD":this.currentNode.uTiles=this.reader.getFloat32();break;case"IVTD":this.currentNode.vTiles=this.reader.getFloat32()}this.reader.skip(2)}parseEnvelope(e){this.reader.skip(e-4)}parseClip(e){if("FORM"===this.reader.getIDTag())return this.reader.skip(16),void(this.currentNode.fileName=this.reader.getString());this.reader.setOffset(this.reader.offset-4),this.currentFormEnd=this.reader.offset+e,this.parentForm=this.currentForm,this.reader.skip(8);var t={index:this.reader.getUint32()};this.tree.textures.push(t),this.currentForm=t}parseClipLwo2(e){for(var t={index:this.reader.getUint32(),fileName:""};;){var n=this.reader.getIDTag(),r=this.reader.getUint16();if("STIL"===n){t.fileName=this.reader.getString();break}if(r>=e)break}this.tree.textures.push(t),this.currentForm=t}parseImage(){this.reader.skip(8),this.currentForm.fileName=this.reader.getString()}parseXVAL(e,t){var n=this.reader.offset+t-4;this.reader.skip(8),this.currentForm[e]=this.reader.getFloat32(),this.reader.setOffset(n)}parseXVAL3(e,t){var n=this.reader.offset+t-4;this.reader.skip(8),this.currentForm[e]={x:this.reader.getFloat32(),y:this.reader.getFloat32(),z:this.reader.getFloat32()},this.reader.setOffset(n)}parseObjectTag(){this.tree.objectTags||(this.tree.objectTags={}),this.tree.objectTags[this.reader.getIDTag()]={tagString:this.reader.getString()}}parseLayer(e){var t={number:this.reader.getUint16(),flags:this.reader.getUint16(),pivot:this.reader.getFloat32Array(3),name:this.reader.getString()};this.tree.layers.push(t),this.currentLayer=t;var n=16+o(this.currentLayer.name);this.currentLayer.parent=n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.LWO2Parser=class{constructor(e){this.IFF=e}parseBlock(){this.IFF.debugger.offset=this.IFF.reader.offset,this.IFF.debugger.closeForms();const e=this.IFF.reader.getIDTag();let t=this.IFF.reader.getUint32();switch(t>this.IFF.reader.dv.byteLength-this.IFF.reader.offset&&(this.IFF.reader.offset-=4,t=this.IFF.reader.getUint16()),this.IFF.debugger.dataOffset=this.IFF.reader.offset,this.IFF.debugger.length=t,e){case"FORM":this.IFF.parseForm(t);break;case"ICON":case"VMPA":case"BBOX":case"NORM":case"PRE ":case"POST":case"KEY ":case"SPAN":case"TIME":case"CLRS":case"CLRA":case"FILT":case"DITH":case"CONT":case"BRIT":case"SATR":case"HUE ":case"GAMM":case"NEGA":case"IFLT":case"PFLT":case"PROJ":case"AXIS":case"AAST":case"PIXB":case"AUVO":case"STCK":case"PROC":case"VALU":case"FUNC":case"PNAM":case"INAM":case"GRST":case"GREN":case"GRPT":case"FKEY":case"IKEY":case"CSYS":case"OPAQ":case"CMAP":case"NLOC":case"NZOM":case"NVER":case"NSRV":case"NVSK":case"NCRD":case"WRPW":case"WRPH":case"NMOD":case"NSEL":case"NPRW":case"NPLA":case"NODS":case"VERS":case"ENUM":case"TAG ":case"OPAC":case"CGMD":case"CGTY":case"CGST":case"CGEN":case"CGTS":case"CGTE":case"OSMP":case"OMDE":case"OUTR":case"FLAG":case"TRNL":case"GLOW":case"GVAL":case"SHRP":case"RFOP":case"RSAN":case"TROP":case"RBLR":case"TBLR":case"CLRH":case"CLRF":case"ADTR":case"LINE":case"ALPH":case"VCOL":case"ENAB":case"TMAP":this.IFF.debugger.skipped=!0,this.IFF.reader.skip(t);break;case"SURF":this.IFF.parseSurfaceLwo2(t);break;case"CLIP":this.IFF.parseClipLwo2(t);break;case"IPIX":case"IMIP":case"IMOD":case"AMOD":case"IINV":case"INCR":case"IAXS":case"IFOT":case"ITIM":case"IWRL":case"IUTI":case"IINX":case"IINY":case"IINZ":case"IREF":4===t?this.IFF.currentNode[e]=this.IFF.reader.getInt32():this.IFF.reader.skip(t);break;case"OTAG":this.IFF.parseObjectTag();break;case"LAYR":this.IFF.parseLayer(t);break;case"PNTS":this.IFF.parsePoints(t);break;case"VMAP":this.IFF.parseVertexMapping(t);break;case"AUVU":case"AUVN":this.IFF.reader.skip(t-1),this.IFF.reader.getVariableLengthIndex();break;case"POLS":this.IFF.parsePolygonList(t);break;case"TAGS":this.IFF.parseTagStrings(t);break;case"PTAG":this.IFF.parsePolygonTagMapping(t);break;case"VMAD":this.IFF.parseVertexMapping(t,!0);break;case"DESC":this.IFF.currentForm.description=this.IFF.reader.getString();break;case"TEXT":case"CMNT":case"NCOM":this.IFF.currentForm.comment=this.IFF.reader.getString();break;case"NAME":this.IFF.currentForm.channelName=this.IFF.reader.getString();break;case"WRAP":this.IFF.currentForm.wrap={w:this.IFF.reader.getUint16(),h:this.IFF.reader.getUint16()};break;case"IMAG":const n=this.IFF.reader.getVariableLengthIndex();this.IFF.currentForm.imageIndex=n;break;case"OREF":this.IFF.currentForm.referenceObject=this.IFF.reader.getString();break;case"ROID":this.IFF.currentForm.referenceObjectID=this.IFF.reader.getUint32();break;case"SSHN":this.IFF.currentSurface.surfaceShaderName=this.IFF.reader.getString();break;case"AOVN":this.IFF.currentSurface.surfaceCustomAOVName=this.IFF.reader.getString();break;case"NSTA":this.IFF.currentForm.disabled=this.IFF.reader.getUint16();break;case"NRNM":this.IFF.currentForm.realName=this.IFF.reader.getString();break;case"NNME":this.IFF.currentForm.refName=this.IFF.reader.getString(),this.IFF.currentSurface.nodes[this.IFF.currentForm.refName]=this.IFF.currentForm;break;case"INME":this.IFF.currentForm.nodeName||(this.IFF.currentForm.nodeName=[]),this.IFF.currentForm.nodeName.push(this.IFF.reader.getString());break;case"IINN":this.IFF.currentForm.inputNodeName||(this.IFF.currentForm.inputNodeName=[]),this.IFF.currentForm.inputNodeName.push(this.IFF.reader.getString());break;case"IINM":this.IFF.currentForm.inputName||(this.IFF.currentForm.inputName=[]),this.IFF.currentForm.inputName.push(this.IFF.reader.getString());break;case"IONM":this.IFF.currentForm.inputOutputName||(this.IFF.currentForm.inputOutputName=[]),this.IFF.currentForm.inputOutputName.push(this.IFF.reader.getString());break;case"FNAM":this.IFF.currentForm.fileName=this.IFF.reader.getString();break;case"CHAN":4===t?this.IFF.currentForm.textureChannel=this.IFF.reader.getIDTag():this.IFF.reader.skip(t);break;case"SMAN":const r=this.IFF.reader.getFloat32();this.IFF.currentSurface.attributes.smooth=!(r<0);break;case"COLR":this.IFF.currentSurface.attributes.Color={value:this.IFF.reader.getFloat32Array(3)},this.IFF.reader.skip(2);break;case"LUMI":this.IFF.currentSurface.attributes.Luminosity={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"SPEC":this.IFF.currentSurface.attributes.Specular={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"DIFF":this.IFF.currentSurface.attributes.Diffuse={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"REFL":this.IFF.currentSurface.attributes.Reflection={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"GLOS":this.IFF.currentSurface.attributes.Glossiness={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"TRAN":this.IFF.currentSurface.attributes.opacity=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"BUMP":this.IFF.currentSurface.attributes.bumpStrength=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"SIDE":this.IFF.currentSurface.attributes.side=this.IFF.reader.getUint16();break;case"RIMG":this.IFF.currentSurface.attributes.reflectionMap=this.IFF.reader.getVariableLengthIndex();break;case"RIND":this.IFF.currentSurface.attributes.refractiveIndex=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"TIMG":this.IFF.currentSurface.attributes.refractionMap=this.IFF.reader.getVariableLengthIndex();break;case"IMAP":this.IFF.reader.skip(2);break;case"IUVI":this.IFF.currentNode.UVChannel=this.IFF.reader.getString(t);break;case"IUTL":this.IFF.currentNode.widthWrappingMode=this.IFF.reader.getUint32();break;case"IVTL":this.IFF.currentNode.heightWrappingMode=this.IFF.reader.getUint32();break;case"BLOK":break;default:this.IFF.parseUnknownCHUNK(e,t)}"FORM"!=e&&(this.IFF.debugger.node=1,this.IFF.debugger.nodeID=e,this.IFF.debugger.log()),this.IFF.reader.offset>=this.IFF.currentFormEnd&&(this.IFF.currentForm=this.IFF.parentForm)}}},30997:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.LWO3Parser=class{constructor(e){this.IFF=e}parseBlock(){this.IFF.debugger.offset=this.IFF.reader.offset,this.IFF.debugger.closeForms();const e=this.IFF.reader.getIDTag(),t=this.IFF.reader.getUint32();switch(this.IFF.debugger.dataOffset=this.IFF.reader.offset,this.IFF.debugger.length=t,e){case"FORM":this.IFF.parseForm(t);break;case"ICON":case"VMPA":case"BBOX":case"NORM":case"PRE ":case"POST":case"KEY ":case"SPAN":case"TIME":case"CLRS":case"CLRA":case"FILT":case"DITH":case"CONT":case"BRIT":case"SATR":case"HUE ":case"GAMM":case"NEGA":case"IFLT":case"PFLT":case"PROJ":case"AXIS":case"AAST":case"PIXB":case"STCK":case"VALU":case"PNAM":case"INAM":case"GRST":case"GREN":case"GRPT":case"FKEY":case"IKEY":case"CSYS":case"OPAQ":case"CMAP":case"NLOC":case"NZOM":case"NVER":case"NSRV":case"NCRD":case"NMOD":case"NSEL":case"NPRW":case"NPLA":case"VERS":case"ENUM":case"TAG ":case"CGMD":case"CGTY":case"CGST":case"CGEN":case"CGTS":case"CGTE":case"OSMP":case"OMDE":case"OUTR":case"FLAG":case"TRNL":case"SHRP":case"RFOP":case"RSAN":case"TROP":case"RBLR":case"TBLR":case"CLRH":case"CLRF":case"ADTR":case"GLOW":case"LINE":case"ALPH":case"VCOL":case"ENAB":this.IFF.debugger.skipped=!0,this.IFF.reader.skip(t);break;case"IPIX":case"IMIP":case"IMOD":case"AMOD":case"IINV":case"INCR":case"IAXS":case"IFOT":case"ITIM":case"IWRL":case"IUTI":case"IINX":case"IINY":case"IINZ":case"IREF":4===t?this.IFF.currentNode[e]=this.IFF.reader.getInt32():this.IFF.reader.skip(t);break;case"OTAG":this.IFF.parseObjectTag();break;case"LAYR":this.IFF.parseLayer(t);break;case"PNTS":this.IFF.parsePoints(t);break;case"VMAP":this.IFF.parseVertexMapping(t);break;case"POLS":this.IFF.parsePolygonList(t);break;case"TAGS":this.IFF.parseTagStrings(t);break;case"PTAG":this.IFF.parsePolygonTagMapping(t);break;case"VMAD":this.IFF.parseVertexMapping(t,!0);break;case"DESC":this.IFF.currentForm.description=this.IFF.reader.getString();break;case"TEXT":case"CMNT":case"NCOM":this.IFF.currentForm.comment=this.IFF.reader.getString();break;case"NAME":this.IFF.currentForm.channelName=this.IFF.reader.getString();break;case"WRAP":this.IFF.currentForm.wrap={w:this.IFF.reader.getUint16(),h:this.IFF.reader.getUint16()};break;case"IMAG":const n=this.IFF.reader.getVariableLengthIndex();this.IFF.currentForm.imageIndex=n;break;case"OREF":this.IFF.currentForm.referenceObject=this.IFF.reader.getString();break;case"ROID":this.IFF.currentForm.referenceObjectID=this.IFF.reader.getUint32();break;case"SSHN":this.IFF.currentSurface.surfaceShaderName=this.IFF.reader.getString();break;case"AOVN":this.IFF.currentSurface.surfaceCustomAOVName=this.IFF.reader.getString();break;case"NSTA":this.IFF.currentForm.disabled=this.IFF.reader.getUint16();break;case"NRNM":this.IFF.currentForm.realName=this.IFF.reader.getString();break;case"NNME":this.IFF.currentForm.refName=this.IFF.reader.getString(),this.IFF.currentSurface.nodes[this.IFF.currentForm.refName]=this.IFF.currentForm;break;case"INME":this.IFF.currentForm.nodeName||(this.IFF.currentForm.nodeName=[]),this.IFF.currentForm.nodeName.push(this.IFF.reader.getString());break;case"IINN":this.IFF.currentForm.inputNodeName||(this.IFF.currentForm.inputNodeName=[]),this.IFF.currentForm.inputNodeName.push(this.IFF.reader.getString());break;case"IINM":this.IFF.currentForm.inputName||(this.IFF.currentForm.inputName=[]),this.IFF.currentForm.inputName.push(this.IFF.reader.getString());break;case"IONM":this.IFF.currentForm.inputOutputName||(this.IFF.currentForm.inputOutputName=[]),this.IFF.currentForm.inputOutputName.push(this.IFF.reader.getString());break;case"FNAM":this.IFF.currentForm.fileName=this.IFF.reader.getString();break;case"CHAN":4===t?this.IFF.currentForm.textureChannel=this.IFF.reader.getIDTag():this.IFF.reader.skip(t);break;case"SMAN":const r=this.IFF.reader.getFloat32();this.IFF.currentSurface.attributes.smooth=!(r<0);break;case"COLR":this.IFF.currentSurface.attributes.Color={value:this.IFF.reader.getFloat32Array(3)},this.IFF.reader.skip(2);break;case"LUMI":this.IFF.currentSurface.attributes.Luminosity={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"SPEC":this.IFF.currentSurface.attributes.Specular={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"DIFF":this.IFF.currentSurface.attributes.Diffuse={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"REFL":this.IFF.currentSurface.attributes.Reflection={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"GLOS":this.IFF.currentSurface.attributes.Glossiness={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"TRAN":this.IFF.currentSurface.attributes.opacity=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"BUMP":this.IFF.currentSurface.attributes.bumpStrength=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"SIDE":this.IFF.currentSurface.attributes.side=this.IFF.reader.getUint16();break;case"RIMG":this.IFF.currentSurface.attributes.reflectionMap=this.IFF.reader.getVariableLengthIndex();break;case"RIND":this.IFF.currentSurface.attributes.refractiveIndex=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"TIMG":this.IFF.currentSurface.attributes.refractionMap=this.IFF.reader.getVariableLengthIndex();break;case"IMAP":this.IFF.currentSurface.attributes.imageMapIndex=this.IFF.reader.getUint32();break;case"IUVI":this.IFF.currentNode.UVChannel=this.IFF.reader.getString(t);break;case"IUTL":this.IFF.currentNode.widthWrappingMode=this.IFF.reader.getUint32();break;case"IVTL":this.IFF.currentNode.heightWrappingMode=this.IFF.reader.getUint32();break;default:this.IFF.parseUnknownCHUNK(e,t)}"FORM"!=e&&(this.IFF.debugger.node=1,this.IFF.debugger.nodeID=e,this.IFF.debugger.log()),this.IFF.reader.offset>=this.IFF.currentFormEnd&&(this.IFF.currentForm=this.IFF.parentForm)}}},84145:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Vector3,s=new r.Vector3,a=new r.Vector3;class o{constructor(e=new r.Vector3(0,0,0),t=new r.Vector3(0,1,0),n=1){this.start=e,this.end=t,this.radius=n}clone(){return new o(this.start.clone(),this.end.clone(),this.radius)}set(e,t,n){this.start.copy(e),this.end.copy(t),this.radius=n}copy(e){this.start.copy(e.start),this.end.copy(e.end),this.radius=e.radius}getCenter(e){return e.copy(this.end).add(this.start).multiplyScalar(.5)}translate(e){this.start.add(e),this.end.add(e)}checkAABBAxis(e,t,n,r,i,s,a,o,l){return(i-e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={};t.ColorConverter=class{static setHSV(e,t,n,i){return t=r.MathUtils.euclideanModulo(t,1),n=r.MathUtils.clamp(n,0,1),i=r.MathUtils.clamp(i,0,1),e.setHSL(t,n*i/((t=(2-n)*i)<1?t:2-t),.5*t)}static getHSV(e,t){return e.getHSL(i),i.s*=i.l<.5?i.l:1-i.l,t.h=i.h,t.s=2*i.s/(i.l+i.s),t.v=i.l+i.s,t}static setCMYK(e,t,n,r,i){const s=(1-t)*(1-i),a=(1-n)*(1-i),o=(1-r)*(1-i);return e.setRGB(s,a,o)}static getCMYK(e,t){const n=e.r,r=e.g,i=e.b,s=1-Math.max(n,r,i),a=(1-n-s)/(1-s),o=(1-r-s)/(1-s),l=(1-i-s)/(1-s);return t.c=a,t.m=o,t.y=l,t.k=s,t}}},90515:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Vector3,s=new r.Line3,a=new r.Plane,o=new r.Vector3,l=new r.Triangle;class c{constructor(){this.normal=new r.Vector3,this.midpoint=new r.Vector3,this.area=0,this.constant=0,this.outside=null,this.mark=0,this.edge=null}static create(e,t,n){const r=new c,i=new h(e,r),s=new h(t,r),a=new h(n,r);return i.next=a.prev=s,s.next=i.prev=a,a.next=s.prev=i,r.edge=i,r.compute()}getEdge(e){let t=this.edge;for(;e>0;)t=t.next,e--;for(;e<0;)t=t.prev,e++;return t}compute(){const e=this.edge.tail(),t=this.edge.head(),n=this.edge.next.head();return l.set(e.point,t.point,n.point),l.getNormal(this.normal),l.getMidpoint(this.midpoint),this.area=l.getArea(),this.constant=this.normal.dot(this.midpoint),this}distanceToPoint(e){return this.normal.dot(e)-this.constant}}class h{constructor(e,t){this.vertex=e,this.prev=null,this.next=null,this.twin=null,this.face=t}head(){return this.vertex}tail(){return this.prev?this.prev.vertex:null}length(){const e=this.head(),t=this.tail();return null!==t?t.point.distanceTo(e.point):-1}lengthSquared(){const e=this.head(),t=this.tail();return null!==t?t.point.distanceToSquared(e.point):-1}setTwin(e){return this.twin=e,e.twin=this,this}}class u{constructor(e){this.point=e,this.prev=null,this.next=null,this.face=null}}class d{constructor(){this.head=null,this.tail=null}first(){return this.head}last(){return this.tail}clear(){return this.head=this.tail=null,this}insertBefore(e,t){return t.prev=e.prev,t.next=e,null===t.prev?this.head=t:t.prev.next=t,e.prev=t,this}insertAfter(e,t){return t.prev=e,t.next=e.next,null===t.next?this.tail=t:t.next.prev=t,e.next=t,this}append(e){return null===this.head?this.head=e:this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e,this}appendChain(e){for(null===this.head?this.head=e:this.tail.next=e,e.prev=this.tail;null!==e.next;)e=e.next;return this.tail=e,this}remove(e){return null===e.prev?this.head=e.next:e.prev.next=e.next,null===e.next?this.tail=e.prev:e.next.prev=e.prev,this}removeSubList(e,t){return null===e.prev?this.head=t.next:e.prev.next=t.next,null===t.next?this.tail=e.prev:t.next.prev=e.prev,this}isEmpty(){return null===this.head}}t.ConvexHull=class{constructor(){this.tolerance=-1,this.faces=[],this.newFaces=[],this.assigned=new d,this.unassigned=new d,this.vertices=[]}setFromPoints(e){if(e.length>=4){this.makeEmpty();for(let t=0,n=e.length;tthis.tolerance)return!1}return!0}intersectRay(e,t){const n=this.faces;let r=-1/0,i=1/0;for(let s=0,a=n.length;s0&&o>=0)return null;const l=0!==o?-a/o:0;if(!(l<=0)&&(o>0?i=Math.min(l,i):r=Math.max(l,r),r>i))return null}return r!==-1/0?e.at(r,t):e.at(i,t),t}intersectsRay(e){return null!==this.intersectRay(e,i)}makeEmpty(){return this.faces=[],this.vertices=[],this}addVertexToFace(e,t){return e.face=t,null===t.outside?this.assigned.append(e):this.assigned.insertBefore(t.outside,e),t.outside=e,this}removeVertexFromFace(e,t){return e===t.outside&&(null!==e.next&&e.next.face===t?t.outside=e.next:t.outside=null),this.assigned.remove(e),this}removeAllVerticesFromFace(e){if(null!==e.outside){const t=e.outside;let n=e.outside;for(;null!==n.next&&n.next.face===e;)n=n.next;return this.assigned.removeSubList(t,n),t.prev=n.next=null,e.outside=null,t}}deleteFaceVertices(e,t){const n=this.removeAllVerticesFromFace(e);if(void 0!==n)if(void 0===t)this.unassigned.appendChain(n);else{let e=n;do{const n=e.next;t.distanceToPoint(e.point)>this.tolerance?this.addVertexToFace(e,t):this.unassigned.append(e),e=n}while(null!==e)}return this}resolveUnassignedPoints(e){if(!1===this.unassigned.isEmpty()){let t=this.unassigned.first();do{const n=t.next;let r=this.tolerance,i=null;for(let s=0;sr&&(r=e,i=n),r>1e3*this.tolerance)break}}null!==i&&this.addVertexToFace(t,i),t=n}while(null!==t)}return this}computeExtremes(){const e=new r.Vector3,t=new r.Vector3,n=[],i=[];for(let r=0;r<3;r++)n[r]=i[r]=this.vertices[0];e.copy(this.vertices[0].point),t.copy(this.vertices[0].point);for(let r=0,s=this.vertices.length;rt.getComponent(e)&&(t.setComponent(e,a.getComponent(e)),i[e]=s)}return this.tolerance=3*Number.EPSILON*(Math.max(Math.abs(e.x),Math.abs(t.x))+Math.max(Math.abs(e.y),Math.abs(t.y))+Math.max(Math.abs(e.z),Math.abs(t.z))),{min:n,max:i}}computeInitialHull(){const e=this.vertices,t=this.computeExtremes(),n=t.min,r=t.max;let i=0,l=0;for(let s=0;s<3;s++){const e=r[s].point.getComponent(s)-n[s].point.getComponent(s);e>i&&(i=e,l=s)}const h=n[l],u=r[l];let d,p;i=0,s.set(h.point,u.point);for(let a=0,c=this.vertices.length;ai&&(i=e,d=t)}}i=-1,a.setFromCoplanarPoints(h.point,u.point,d.point);for(let s=0,o=this.vertices.length;si&&(i=e,p=t)}}const f=[];if(a.distanceToPoint(p.point)<0){f.push(c.create(h,u,d),c.create(p,u,h),c.create(p,d,u),c.create(p,h,d));for(let e=0;e<3;e++){const t=(e+1)%3;f[e+1].getEdge(2).setTwin(f[0].getEdge(t)),f[e+1].getEdge(1).setTwin(f[t+1].getEdge(0))}}else{f.push(c.create(h,d,u),c.create(p,h,u),c.create(p,u,d),c.create(p,d,h));for(let e=0;e<3;e++){const t=(e+1)%3;f[e+1].getEdge(2).setTwin(f[0].getEdge((3-e)%3)),f[e+1].getEdge(0).setTwin(f[t+1].getEdge(1))}}for(let s=0;s<4;s++)this.faces.push(f[s]);for(let s=0,a=e.length;si&&(i=r,e=this.faces[n])}null!==e&&this.addVertexToFace(t,e)}}return this}reindexFaces(){const e=[];for(let t=0;tt&&(t=i,e=r),r=r.next}while(null!==r&&r.face===n);return e}}computeHorizon(e,t,n,r){let i;this.deleteFaceVertices(n),n.mark=1,i=null===t?t=n.getEdge(0):t.next;do{const t=i.twin,n=t.face;0===n.mark&&(n.distanceToPoint(e)>this.tolerance?this.computeHorizon(e,t,n,r):r.push(i)),i=i.next}while(i!==t);return this}addAdjoiningFace(e,t){const n=c.create(e,t.tail(),t.head());return this.faces.push(n),n.getEdge(-1).setTwin(t.twin),n.getEdge(0)}addNewFaces(e,t){this.newFaces=[];let n=null,r=null;for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=function(){const e=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];for(let t=0;t<256;t++)e[256+t]=e[t];return e}();function r(e){return e*e*e*(e*(6*e-15)+10)}function i(e,t,n){return t+e*(n-t)}function s(e,t,n,r){const i=15&e,s=i<8?t:n,a=i<4?n:12==i||14==i?t:r;return(0==(1&i)?s:-s)+(0==(2&i)?a:-a)}t.ImprovedNoise=class{noise(e,t,a){const o=Math.floor(e),l=Math.floor(t),c=Math.floor(a),h=255&o,u=255&l,d=255&c,p=(e-=o)-1,f=(t-=l)-1,m=(a-=c)-1,g=r(e),A=r(t),v=r(a),y=n[h]+u,x=n[y]+d,b=n[y+1]+d,E=n[h+1]+u,_=n[E]+d,S=n[E+1]+d;return i(v,i(A,i(g,s(n[x],e,t,a),s(n[_],p,t,a)),i(g,s(n[b],e,f,a),s(n[S],p,f,a))),i(A,i(g,s(n[x+1],e,t,m),s(n[_+1],p,t,m)),i(g,s(n[b+1],e,f,m),s(n[S+1],p,f,m))))}}},83828:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);const i={rainbow:[[0,255],[.2,65535],[.5,65280],[.8,16776960],[1,16711680]],cooltowarm:[[0,3952322],[.2,10206463],[.5,14474460],[.8,16163717],[1,11797542]],blackbody:[[0,0],[.2,7864320],[.5,15086080],[.8,16776960],[1,16777215]],grayscale:[[0,0],[.2,4210752],[.5,8355712],[.8,12566463],[1,16777215]]};t.ColorMapKeywords=i,t.Lut=class{constructor(e,t=32){this.isLut=!0,this.lut=[],this.map=[],this.n=0,this.minV=0,this.maxV=1,this.setColorMap(e,t)}set(e){return!0===e.isLut&&this.copy(e),this}setMin(e){return this.minV=e,this}setMax(e){return this.maxV=e,this}setColorMap(e,t=32){this.map=i[e]||i.rainbow,this.n=t;const n=1/this.n,s=new r.Color,a=new r.Color;this.lut.length=0,this.lut.push(new r.Color(this.map[0][1]));for(let i=1;ithis.map[t][0]&&e<=this.map[t+1][0]){const n=this.map[t][0],i=this.map[t+1][0];s.setHex(this.map[t][1],"linear-srgb"),a.setHex(this.map[t+1][1],"linear-srgb");const o=(new r.Color).lerpColors(s,a,(e-n)/(i-n));this.lut.push(o)}}return this.lut.push(new r.Color(this.map[this.map.length-1][1])),this}copy(e){return this.lut=e.lut,this.map=e.map,this.n=e.n,this.minV=e.minV,this.maxV=e.maxV,this}getColor(e){e=((e=r.MathUtils.clamp(e,this.minV,this.maxV))-this.minV)/(this.maxV-this.minV);const t=Math.round(e*this.n);return this.lut[t]}addColorMap(e,t){return i[e]=t,this}createCanvas(){const e=document.createElement("canvas");return e.width=1,e.height=this.n,this.updateCanvas(e),e}updateCanvas(e){const t=e.getContext("2d",{alpha:!1}),n=t.getImageData(0,0,1,this.n),i=n.data;let s=0;const a=1/this.n,o=new r.Color,l=new r.Color,c=new r.Color;for(let r=1;r>=0;r-=a)for(let e=this.map.length-1;e>=0;e--)if(r=this.map[e-1][0]){const t=this.map[e-1][0],n=this.map[e][0];o.setHex(this.map[e-1][1],"linear-srgb"),l.setHex(this.map[e][1],"linear-srgb"),c.lerpColors(o,l,(r-t)/(n-t)),i[4*s]=Math.round(255*c.r),i[4*s+1]=Math.round(255*c.g),i[4*s+2]=Math.round(255*c.b),i[4*s+3]=255,s+=1}return t.putImageData(n,0,0),e}}},17570:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Triangle,s=new r.Vector3;t.MeshSurfaceSampler=class{constructor(e){let t=e.geometry;t.index&&(console.warn("THREE.MeshSurfaceSampler: Converting geometry to non-indexed BufferGeometry."),t=t.toNonIndexed()),this.geometry=t,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.colorAttribute=this.geometry.getAttribute("color"),this.weightAttribute=null,this.distribution=null}setWeightAttribute(e){return this.weightAttribute=e?this.geometry.getAttribute(e):null,this}build(){const e=this.positionAttribute,t=this.weightAttribute,n=new Float32Array(e.count/3);for(let s=0;se){i=s;break}e1&&(a=1-a,o=1-o),i.a.fromBufferAttribute(this.positionAttribute,3*e),i.b.fromBufferAttribute(this.positionAttribute,3*e+1),i.c.fromBufferAttribute(this.positionAttribute,3*e+2),t.set(0,0,0).addScaledVector(i.a,a).addScaledVector(i.b,o).addScaledVector(i.c,1-(a+o)),void 0!==n&&i.getNormal(n),void 0!==r&&void 0!==this.colorAttribute&&(i.a.fromBufferAttribute(this.colorAttribute,3*e),i.b.fromBufferAttribute(this.colorAttribute,3*e+1),i.c.fromBufferAttribute(this.colorAttribute,3*e+2),s.set(0,0,0).addScaledVector(i.a,a).addScaledVector(i.b,o).addScaledVector(i.c,1-(a+o)),r.r=s.x,r.g=s.y,r.b=s.z),this}}},17458:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={c:null,u:[new r.Vector3,new r.Vector3,new r.Vector3],e:[]},s={c:null,u:[new r.Vector3,new r.Vector3,new r.Vector3],e:[]},a=[[],[],[]],o=[[],[],[]],l=[],c=new r.Vector3,h=new r.Vector3,u=new r.Vector3,d=new r.Vector3,p=new r.Vector3,f=new r.Vector3,m=new r.Matrix3,g=new r.Box3,A=new r.Matrix4,v=new r.Matrix4,y=new r.Ray;class x{constructor(e=new r.Vector3,t=new r.Vector3,n=new r.Matrix3){this.center=e,this.halfSize=t,this.rotation=n}set(e,t,n){return this.center=e,this.halfSize=t,this.rotation=n,this}copy(e){return this.center.copy(e.center),this.halfSize.copy(e.halfSize),this.rotation.copy(e.rotation),this}clone(){return(new this.constructor).copy(this)}getSize(e){return e.copy(this.halfSize).multiplyScalar(2)}clampPoint(e,t){const n=this.halfSize;d.subVectors(e,this.center),this.rotation.extractBasis(c,h,u),t.copy(this.center);const i=r.MathUtils.clamp(d.dot(c),-n.x,n.x);t.add(c.multiplyScalar(i));const s=r.MathUtils.clamp(d.dot(h),-n.y,n.y);t.add(h.multiplyScalar(s));const a=r.MathUtils.clamp(d.dot(u),-n.z,n.z);return t.add(u.multiplyScalar(a)),t}containsPoint(e){return d.subVectors(e,this.center),this.rotation.extractBasis(c,h,u),Math.abs(d.dot(c))<=this.halfSize.x&&Math.abs(d.dot(h))<=this.halfSize.y&&Math.abs(d.dot(u))<=this.halfSize.z}intersectsBox3(e){return this.intersectsOBB(b.fromBox3(e))}intersectsSphere(e){return this.clampPoint(e.center,f),f.distanceToSquared(e.center)<=e.radius*e.radius}intersectsOBB(e,t=Number.EPSILON){i.c=this.center,i.e[0]=this.halfSize.x,i.e[1]=this.halfSize.y,i.e[2]=this.halfSize.z,this.rotation.extractBasis(i.u[0],i.u[1],i.u[2]),s.c=e.center,s.e[0]=e.halfSize.x,s.e[1]=e.halfSize.y,s.e[2]=e.halfSize.z,e.rotation.extractBasis(s.u[0],s.u[1],s.u[2]);for(let o=0;o<3;o++)for(let e=0;e<3;e++)a[o][e]=i.u[o].dot(s.u[e]);d.subVectors(s.c,i.c),l[0]=d.dot(i.u[0]),l[1]=d.dot(i.u[1]),l[2]=d.dot(i.u[2]);for(let i=0;i<3;i++)for(let e=0;e<3;e++)o[i][e]=Math.abs(a[i][e])+t;let n,r;for(let a=0;a<3;a++)if(n=i.e[a],r=s.e[0]*o[a][0]+s.e[1]*o[a][1]+s.e[2]*o[a][2],Math.abs(l[a])>n+r)return!1;for(let c=0;c<3;c++)if(n=i.e[0]*o[0][c]+i.e[1]*o[1][c]+i.e[2]*o[2][c],r=s.e[c],Math.abs(l[0]*a[0][c]+l[1]*a[1][c]+l[2]*a[2][c])>n+r)return!1;return n=i.e[1]*o[2][0]+i.e[2]*o[1][0],r=s.e[1]*o[0][2]+s.e[2]*o[0][1],!(Math.abs(l[2]*a[1][0]-l[1]*a[2][0])>n+r)&&(n=i.e[1]*o[2][1]+i.e[2]*o[1][1],r=s.e[0]*o[0][2]+s.e[2]*o[0][0],!(Math.abs(l[2]*a[1][1]-l[1]*a[2][1])>n+r)&&(n=i.e[1]*o[2][2]+i.e[2]*o[1][2],r=s.e[0]*o[0][1]+s.e[1]*o[0][0],!(Math.abs(l[2]*a[1][2]-l[1]*a[2][2])>n+r)&&(n=i.e[0]*o[2][0]+i.e[2]*o[0][0],r=s.e[1]*o[1][2]+s.e[2]*o[1][1],!(Math.abs(l[0]*a[2][0]-l[2]*a[0][0])>n+r)&&(n=i.e[0]*o[2][1]+i.e[2]*o[0][1],r=s.e[0]*o[1][2]+s.e[2]*o[1][0],!(Math.abs(l[0]*a[2][1]-l[2]*a[0][1])>n+r)&&(n=i.e[0]*o[2][2]+i.e[2]*o[0][2],r=s.e[0]*o[1][1]+s.e[1]*o[1][0],!(Math.abs(l[0]*a[2][2]-l[2]*a[0][2])>n+r)&&(n=i.e[0]*o[1][0]+i.e[1]*o[0][0],r=s.e[1]*o[2][2]+s.e[2]*o[2][1],!(Math.abs(l[1]*a[0][0]-l[0]*a[1][0])>n+r)&&(n=i.e[0]*o[1][1]+i.e[1]*o[0][1],r=s.e[0]*o[2][2]+s.e[2]*o[2][0],!(Math.abs(l[1]*a[0][1]-l[0]*a[1][1])>n+r)&&(n=i.e[0]*o[1][2]+i.e[1]*o[0][2],r=s.e[0]*o[2][1]+s.e[1]*o[2][0],!(Math.abs(l[1]*a[0][2]-l[0]*a[1][2])>n+r)))))))))}intersectsPlane(e){this.rotation.extractBasis(c,h,u);const t=this.halfSize.x*Math.abs(e.normal.dot(c))+this.halfSize.y*Math.abs(e.normal.dot(h))+this.halfSize.z*Math.abs(e.normal.dot(u)),n=e.normal.dot(this.center)-e.constant;return Math.abs(n)<=t}intersectRay(e,t){return this.getSize(p),g.setFromCenterAndSize(d.set(0,0,0),p),A.setFromMatrix3(this.rotation),A.setPosition(this.center),v.copy(A).invert(),y.copy(e).applyMatrix4(v),y.intersectBox(g,t)?t.applyMatrix4(A):null}intersectsRay(e){return null!==this.intersectRay(e,d)}fromBox3(e){return e.getCenter(this.center),e.getSize(this.halfSize).multiplyScalar(.5),this.rotation.identity(),this}equals(e){return e.center.equals(this.center)&&e.halfSize.equals(this.halfSize)&&e.rotation.equals(this.rotation)}applyMatrix4(e){const t=e.elements;let n=d.set(t[0],t[1],t[2]).length();const r=d.set(t[4],t[5],t[6]).length(),i=d.set(t[8],t[9],t[10]).length();e.determinant()<0&&(n=-n),m.setFromMatrix4(e);const s=1/n,a=1/r,o=1/i;return m.elements[0]*=s,m.elements[1]*=s,m.elements[2]*=s,m.elements[3]*=a,m.elements[4]*=a,m.elements[5]*=a,m.elements[6]*=o,m.elements[7]*=o,m.elements[8]*=o,this.rotation.multiply(m),this.halfSize.x*=n,this.halfSize.y*=r,this.halfSize.z*=i,d.setFromMatrixPosition(e),this.center.add(d),this}}const b=new x;t.OBB=x},30252:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(84145),s=new r.Vector3,a=new r.Vector3,o=new r.Plane,l=new r.Line3,c=new r.Line3,h=new r.Sphere,u=new i.Capsule;class d{constructor(e){this.triangles=[],this.box=e,this.subTrees=[]}addTriangle(e){return this.bounds||(this.bounds=new r.Box3),this.bounds.min.x=Math.min(this.bounds.min.x,e.a.x,e.b.x,e.c.x),this.bounds.min.y=Math.min(this.bounds.min.y,e.a.y,e.b.y,e.c.y),this.bounds.min.z=Math.min(this.bounds.min.z,e.a.z,e.b.z,e.c.z),this.bounds.max.x=Math.max(this.bounds.max.x,e.a.x,e.b.x,e.c.x),this.bounds.max.y=Math.max(this.bounds.max.y,e.a.y,e.b.y,e.c.y),this.bounds.max.z=Math.max(this.bounds.max.z,e.a.z,e.b.z,e.c.z),this.triangles.push(e),this}calcBox(){return this.box=this.bounds.clone(),this.box.min.x-=.01,this.box.min.y-=.01,this.box.min.z-=.01,this}split(e){if(!this.box)return;const t=[],n=a.copy(this.box.max).sub(this.box.min).multiplyScalar(.5);for(let a=0;a<2;a++)for(let e=0;e<2;e++)for(let i=0;i<2;i++){const o=new r.Box3,l=s.set(a,e,i);o.min.copy(this.box.min).add(l.multiply(n)),o.max.copy(o.min).add(n),t.push(new d(o))}let i;for(;i=this.triangles.pop();)for(let e=0;e8&&e<16&&t[r].split(e+1),0!==n&&this.subTrees.push(t[r])}return this}build(){return this.calcBox(),this.split(0),this}getRayTriangles(e,t){for(let n=0;n0)for(let e=0;e0&&r>0||n<-e.radius&&r<-e.radius)return!1;const i=Math.abs(n/(Math.abs(n)+Math.abs(r))),a=s.copy(e.start).lerp(e.end,i);if(t.containsPoint(a))return{normal:o.normal.clone(),point:a.clone(),depth:Math.abs(Math.min(n,r))};const h=e.radius*e.radius,u=l.set(e.start,e.end),d=[[t.a,t.b],[t.b,t.c],[t.c,t.a]];for(let s=0;s0)for(let e=0;e0)for(let e=0;es&&(r=o.clone().add(e.origin),i=s,n=t[a])}}return i<1e100&&{distance:i,triangle:n,position:r}}fromGraphNode(e){return e.updateWorldMatrix(!0,!0),e.traverse((e=>{if(!0===e.isMesh){let t,n=!1;null!==e.geometry.index?(n=!0,t=e.geometry.toNonIndexed()):t=e.geometry;const i=t.getAttribute("position");for(let s=0;s{"use strict";var n=Object.defineProperty,r=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.SimplexNoise=class{constructor(e=Math){r(this,"grad3",[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]]),r(this,"grad4",[[0,1,1,1],[0,1,1,-1],[0,1,-1,1],[0,1,-1,-1],[0,-1,1,1],[0,-1,1,-1],[0,-1,-1,1],[0,-1,-1,-1],[1,0,1,1],[1,0,1,-1],[1,0,-1,1],[1,0,-1,-1],[-1,0,1,1],[-1,0,1,-1],[-1,0,-1,1],[-1,0,-1,-1],[1,1,0,1],[1,1,0,-1],[1,-1,0,1],[1,-1,0,-1],[-1,1,0,1],[-1,1,0,-1],[-1,-1,0,1],[-1,-1,0,-1],[1,1,1,0],[1,1,-1,0],[1,-1,1,0],[1,-1,-1,0],[-1,1,1,0],[-1,1,-1,0],[-1,-1,1,0],[-1,-1,-1,0]]),r(this,"p",[]),r(this,"perm",[]),r(this,"simplex",[[0,1,2,3],[0,1,3,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]),r(this,"dot",((e,t,n)=>e[0]*t+e[1]*n)),r(this,"dot3",((e,t,n,r)=>e[0]*t+e[1]*n+e[2]*r)),r(this,"dot4",((e,t,n,r,i)=>e[0]*t+e[1]*n+e[2]*r+e[3]*i)),r(this,"noise",((e,t)=>{let n,r,i;const s=(e+t)*(.5*(Math.sqrt(3)-1)),a=Math.floor(e+s),o=Math.floor(t+s),l=(3-Math.sqrt(3))/6,c=(a+o)*l,h=e-(a-c),u=t-(o-c);let d=0,p=1;h>u&&(d=1,p=0);const f=h-d+l,m=u-p+l,g=h-1+2*l,A=u-1+2*l,v=255&a,y=255&o,x=this.perm[v+this.perm[y]]%12,b=this.perm[v+d+this.perm[y+p]]%12,E=this.perm[v+1+this.perm[y+1]]%12;let _=.5-h*h-u*u;_<0?n=0:(_*=_,n=_*_*this.dot(this.grad3[x],h,u));let S=.5-f*f-m*m;S<0?r=0:(S*=S,r=S*S*this.dot(this.grad3[b],f,m));let w=.5-g*g-A*A;return w<0?i=0:(w*=w,i=w*w*this.dot(this.grad3[E],g,A)),70*(n+r+i)})),r(this,"noise3d",((e,t,n)=>{let r,i,s,a;const o=(e+t+n)*(1/3),l=Math.floor(e+o),c=Math.floor(t+o),h=Math.floor(n+o),u=1/6,d=(l+c+h)*u,p=e-(l-d),f=t-(c-d),m=n-(h-d);let g,A,v,y,x,b;p>=f?f>=m?(g=1,A=0,v=0,y=1,x=1,b=0):p>=m?(g=1,A=0,v=0,y=1,x=0,b=1):(g=0,A=0,v=1,y=1,x=0,b=1):f{const i=this.grad4,s=this.simplex,a=this.perm,o=(Math.sqrt(5)-1)/4,l=(5-Math.sqrt(5))/20;let c,h,u,d,p;const f=(e+t+n+r)*o,m=Math.floor(e+f),g=Math.floor(t+f),A=Math.floor(n+f),v=Math.floor(r+f),y=(m+g+A+v)*l,x=e-(m-y),b=t-(g-y),E=n-(A-y),_=r-(v-y),S=(x>b?32:0)+(x>E?16:0)+(b>E?8:0)+(x>_?4:0)+(b>_?2:0)+(E>_?1:0);let w,M,C,T,I,B,R,P,D,L,F,U;w=s[S][0]>=3?1:0,M=s[S][1]>=3?1:0,C=s[S][2]>=3?1:0,T=s[S][3]>=3?1:0,I=s[S][0]>=2?1:0,B=s[S][1]>=2?1:0,R=s[S][2]>=2?1:0,P=s[S][3]>=2?1:0,D=s[S][0]>=1?1:0,L=s[S][1]>=1?1:0,F=s[S][2]>=1?1:0,U=s[S][3]>=1?1:0;const O=x-w+l,N=b-M+l,k=E-C+l,G=_-T+l,z=x-I+2*l,Q=b-B+2*l,V=E-R+2*l,H=_-P+2*l,j=x-D+3*l,W=b-L+3*l,X=E-F+3*l,Y=_-U+3*l,q=x-1+4*l,K=b-1+4*l,J=E-1+4*l,Z=_-1+4*l,$=255&m,ee=255&g,te=255&A,ne=255&v,re=a[$+a[ee+a[te+a[ne]]]]%32,ie=a[$+w+a[ee+M+a[te+C+a[ne+T]]]]%32,se=a[$+I+a[ee+B+a[te+R+a[ne+P]]]]%32,ae=a[$+D+a[ee+L+a[te+F+a[ne+U]]]]%32,oe=a[$+1+a[ee+1+a[te+1+a[ne+1]]]]%32;let le=.6-x*x-b*b-E*E-_*_;le<0?c=0:(le*=le,c=le*le*this.dot4(i[re],x,b,E,_));let ce=.6-O*O-N*N-k*k-G*G;ce<0?h=0:(ce*=ce,h=ce*ce*this.dot4(i[ie],O,N,k,G));let he=.6-z*z-Q*Q-V*V-H*H;he<0?u=0:(he*=he,u=he*he*this.dot4(i[se],z,Q,V,H));let ue=.6-j*j-W*W-X*X-Y*Y;ue<0?d=0:(ue*=ue,d=ue*ue*this.dot4(i[ae],j,W,X,Y));let de=.6-q*q-K*K-J*J-Z*Z;return de<0?p=0:(de*=de,p=de*de*this.dot4(i[oe],q,K,J,Z)),27*(c+h+u+d+p)}));for(let t=0;t<256;t++)this.p[t]=Math.floor(256*e.random());for(let t=0;t<512;t++)this.perm[t]=this.p[255&t]}}},30864:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(92018),s=new r.Vector3;class a{constructor(e=1.4,t=1e-4){this.minSizeForBreak=e,this.smallDelta=t,this.tempLine1=new r.Line3,this.tempPlane1=new r.Plane,this.tempPlane2=new r.Plane,this.tempPlane_Cut=new r.Plane,this.tempCM1=new r.Vector3,this.tempCM2=new r.Vector3,this.tempVector3=new r.Vector3,this.tempVector3_2=new r.Vector3,this.tempVector3_3=new r.Vector3,this.tempVector3_P0=new r.Vector3,this.tempVector3_P1=new r.Vector3,this.tempVector3_P2=new r.Vector3,this.tempVector3_N0=new r.Vector3,this.tempVector3_N1=new r.Vector3,this.tempVector3_AB=new r.Vector3,this.tempVector3_CB=new r.Vector3,this.tempResultObjects={object1:null,object2:null},this.segments=[];for(let n=0;n<900;n++)this.segments[n]=!1}prepareBreakableObject(e,t,n,r,i){const s=e.userData;s.mass=t,s.velocity=n.clone(),s.angularVelocity=r.clone(),s.breakable=i}subdivideByImpact(e,t,n,r,i){const s=[],a=this.tempPlane1,o=this.tempPlane2;this.tempVector3.addVectors(t,n),a.setFromCoplanarPoints(t,e.position,this.tempVector3);const l=i+r,c=this;return function i(h,u,d,p){if(Math.random()<.05*p||p>l)return void s.push(h);let f=Math.PI;0===p?(o.normal.copy(a.normal),o.constant=a.constant):p<=r?(f=(d-u)*(.2+.6*Math.random())+u,c.tempVector3_2.copy(e.position).sub(t).applyAxisAngle(n,f).add(t),o.setFromCoplanarPoints(t,c.tempVector3,c.tempVector3_2)):(f=(.5*(1&p)+.2*(2-Math.random()))*Math.PI,c.tempVector3_2.copy(t).sub(h.position).applyAxisAngle(n,f).add(h.position),c.tempVector3_3.copy(n).add(h.position),o.setFromCoplanarPoints(h.position,c.tempVector3_3,c.tempVector3_2)),c.cutByPlane(h,o,c.tempResultObjects);const m=c.tempResultObjects.object1,g=c.tempResultObjects.object2;m&&i(m,u,f,p+1),g&&i(g,f,d,p+1)}(e,0,2*Math.PI,0),s}cutByPlane(e,t,n){const s=e.geometry,o=s.attributes.position.array,l=s.attributes.normal.array,c=o.length/3;let h=c/3,u=s.getIndex();function d(e,t){const n=3*e+t;return u?u[n]:n}u&&(u=u.array,h=u.length/3);const p=[],f=[],m=this.smallDelta,g=c*c;for(let r=0;rm?(h=2,f.push(A.clone())):u<-m?(h=1,p.push(A.clone())):(h=3,p.push(A.clone()),f.push(A.clone()));let d=0;if(u=b.distanceToPoint(v),u>m?(d=2,f.push(v.clone())):u<-m?(d=1,p.push(v.clone())):(d=3,p.push(v.clone()),f.push(v.clone())),1===h&&2===d||2===h&&1===d){this.tempLine1.start.copy(A),this.tempLine1.end.copy(v);let e=new r.Vector3;if(e=b.intersectLine(this.tempLine1,e),null===e)return console.error("Internal error: segment does not intersect plane."),n.segmentedObject1=null,n.segmentedObject2=null,0;p.push(e),f.push(e.clone())}}}const E=.5*e.userData.mass;this.tempCM1.set(0,0,0);let _=0;const S=p.length;if(S>0){for(let e=0;e0){for(let e=0;e4&&(C=new r.Mesh(new i.ConvexGeometry(p),e.material),C.position.copy(this.tempCM1),C.quaternion.copy(e.quaternion),this.prepareBreakableObject(C,E,e.userData.velocity,e.userData.angularVelocity,2*_>this.minSizeForBreak),I++),M>4&&(T=new r.Mesh(new i.ConvexGeometry(f),e.material),T.position.copy(this.tempCM2),T.quaternion.copy(e.quaternion),this.prepareBreakableObject(T,E,e.userData.velocity,e.userData.angularVelocity,2*w>this.minSizeForBreak),I++),n.object1=C,n.object2=T,I}static transformFreeVector(e,t){const n=e.x,r=e.y,i=e.z,s=t.elements;return e.x=s[0]*n+s[4]*r+s[8]*i,e.y=s[1]*n+s[5]*r+s[9]*i,e.z=s[2]*n+s[6]*r+s[10]*i,e}static transformFreeVectorInverse(e,t){const n=e.x,r=e.y,i=e.z,s=t.elements;return e.x=s[0]*n+s[1]*r+s[2]*i,e.y=s[4]*n+s[5]*r+s[6]*i,e.z=s[8]*n+s[9]*r+s[10]*i,e}static transformTiedVectorInverse(e,t){const n=e.x,r=e.y,i=e.z,s=t.elements;return e.x=s[0]*n+s[1]*r+s[2]*i-s[12],e.y=s[4]*n+s[5]*r+s[6]*i-s[13],e.z=s[8]*n+s[9]*r+s[10]*i-s[14],e}static transformPlaneToLocalSpace(e,t,n){n.normal.copy(e.normal),n.constant=e.constant;const r=a.transformTiedVectorInverse(e.coplanarPoint(s),t);a.transformFreeVectorInverse(n.normal,t),n.constant=-r.dot(n.normal)}}t.ConvexObjectBreaker=a},58532:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.GPUComputationRenderer=class{constructor(e,t,n){this.variables=[],this.currentTextureIndex=0;let i=r.FloatType;const s=new r.Scene,a=new r.Camera;a.position.z=1;const o={passThruTexture:{value:null}},l=u("uniform sampler2D passThruTexture;\n\nvoid main() {\n\n\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\n\tgl_FragColor = texture2D( passThruTexture, uv );\n\n}\n",o),c=new r.Mesh(new r.PlaneGeometry(2,2),l);function h(n){n.defines.resolution="vec2( "+e.toFixed(1)+", "+t.toFixed(1)+" )"}function u(e,t){t=t||{};const n=new r.ShaderMaterial({uniforms:t,vertexShader:"void main()\t{\n\n\tgl_Position = vec4( position, 1.0 );\n\n}\n",fragmentShader:e});return h(n),n}s.add(c),this.setDataType=function(e){return i=e,this},this.addVariable=function(e,t,n){const i={name:e,initialValueTexture:n,material:this.createShaderMaterial(t),dependencies:null,renderTargets:[],wrapS:null,wrapT:null,minFilter:r.NearestFilter,magFilter:r.NearestFilter};return this.variables.push(i),i},this.setVariableDependencies=function(e,t){e.dependencies=t},this.init=function(){if(!1===n.capabilities.isWebGL2&&!1===n.extensions.has("OES_texture_float"))return"No OES_texture_float support for float textures.";if(0===n.capabilities.maxVertexTextures)return"No support for vertex shader textures.";for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Vector3,s=new r.Quaternion,a=new r.Vector3,o=new r.Vector3,l=new r.Quaternion,c=new r.Vector3;class h extends r.Object3D{constructor(){super()}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(null!==this.parent?(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorld.decompose(o,l,c),this.matrix.decompose(i,s,a),this.matrixWorld.compose(o,s,c)):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);for(let t=0,n=this.children.length;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(28057);t.MD2Character=class{constructor(){this.scale=1,this.animationFPS=6,this.root=new r.Object3D,this.meshBody=null,this.meshWeapon=null,this.skinsBody=[],this.skinsWeapon=[],this.weapons=[],this.activeAnimation=null,this.mixer=null,this.onLoadComplete=function(){},this.loadCounter=0}loadParts(e){const t=this;function n(e,t){const n=new r.MeshLambertMaterial({color:16755200,wireframe:!0,morphTargets:!0,morphNormals:!0}),i=new r.MeshLambertMaterial({color:16777215,wireframe:!1,map:t,morphTargets:!0,morphNormals:!0}),s=new r.Mesh(e,i);return s.rotation.y=-Math.PI/2,s.castShadow=!0,s.receiveShadow=!0,s.materialTexture=i,s.materialWireframe=n,s}function s(e,t){const n=new r.TextureLoader,i=[];for(let s=0;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(28057),s=n(46863);t.MD2CharacterComplex=class{constructor(){this.scale=1,this.animationFPS=6,this.transitionFrames=15,this.maxSpeed=275,this.maxReverseSpeed=-275,this.frontAcceleration=600,this.backAcceleration=600,this.frontDecceleration=600,this.angularSpeed=2.5,this.root=new r.Object3D,this.meshBody=null,this.meshWeapon=null,this.controls=null,this.skinsBody=[],this.skinsWeapon=[],this.weapons=[],this.currentSkin=void 0,this.onLoadComplete=function(){},this.meshes=[],this.animations={},this.loadCounter=0,this.speed=0,this.bodyOrientation=0,this.walkSpeed=this.maxSpeed,this.crouchSpeed=.5*this.maxSpeed,this.activeAnimation=null,this.oldAnimation=null}enableShadows(e){for(let t=0;t0&&(t=(this.transitionFrames-this.blendCounter)/this.transitionFrames,this.blendCounter-=1),this.meshBody&&(this.meshBody.update(e),this.meshBody.setAnimationWeight(this.activeAnimation,t),this.meshBody.setAnimationWeight(this.oldAnimation,1-t)),this.meshWeapon&&(this.meshWeapon.update(e),this.meshWeapon.setAnimationWeight(this.activeAnimation,t),this.meshWeapon.setAnimationWeight(this.oldAnimation,1-t))}updateBehaviors(){const e=this.controls,t=this.animations;let n,r;e.crouch?(n=t.crouchMove,r=t.crouchIdle):(n=t.move,r=t.idle),e.jump&&(n=t.jump,r=t.jump),e.attack&&(e.crouch?(n=t.crouchAttack,r=t.crouchAttack):(n=t.attack,r=t.attack)),(e.moveForward||e.moveBackward||e.moveLeft||e.moveRight)&&this.activeAnimation!==n&&this.setAnimation(n),Math.abs(this.speed)<.2*this.maxSpeed&&!(e.moveLeft||e.moveRight||e.moveForward||e.moveBackward)&&this.activeAnimation!==r&&this.setAnimation(r),e.moveForward&&(this.meshBody&&(this.meshBody.setAnimationDirectionForward(this.activeAnimation),this.meshBody.setAnimationDirectionForward(this.oldAnimation)),this.meshWeapon&&(this.meshWeapon.setAnimationDirectionForward(this.activeAnimation),this.meshWeapon.setAnimationDirectionForward(this.oldAnimation))),e.moveBackward&&(this.meshBody&&(this.meshBody.setAnimationDirectionBackward(this.activeAnimation),this.meshBody.setAnimationDirectionBackward(this.oldAnimation)),this.meshWeapon&&(this.meshWeapon.setAnimationDirectionBackward(this.activeAnimation),this.meshWeapon.setAnimationDirectionBackward(this.oldAnimation)))}updateMovementModel(e){function t(e){return 1===e?1:1-Math.pow(2,-10*e)}const n=this.controls;n.crouch?this.maxSpeed=this.crouchSpeed:this.maxSpeed=this.walkSpeed,this.maxReverseSpeed=-this.maxSpeed,n.moveForward&&(this.speed=r.MathUtils.clamp(this.speed+e*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),n.moveBackward&&(this.speed=r.MathUtils.clamp(this.speed-e*this.backAcceleration,this.maxReverseSpeed,this.maxSpeed));if(n.moveLeft&&(this.bodyOrientation+=e*this.angularSpeed,this.speed=r.MathUtils.clamp(this.speed+1*e*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),n.moveRight&&(this.bodyOrientation-=e*this.angularSpeed,this.speed=r.MathUtils.clamp(this.speed+1*e*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),!n.moveForward&&!n.moveBackward)if(this.speed>0){const n=t(this.speed/this.maxSpeed);this.speed=r.MathUtils.clamp(this.speed-n*e*this.frontDecceleration,0,this.maxSpeed)}else{const n=t(this.speed/this.maxReverseSpeed);this.speed=r.MathUtils.clamp(this.speed+n*e*this.backAcceleration,this.maxReverseSpeed,0)}const i=this.speed*e;this.root.position.x+=Math.sin(this.bodyOrientation)*i,this.root.position.z+=Math.cos(this.bodyOrientation)*i,this.root.rotation.y=this.bodyOrientation}_createPart(e,t){const n=new r.MeshLambertMaterial({color:16755200,wireframe:!0,morphTargets:!0,morphNormals:!0}),i=new r.MeshLambertMaterial({color:16777215,wireframe:!1,map:t,morphTargets:!0,morphNormals:!0}),a=new s.MorphBlendMesh(e,i);return a.rotation.y=-Math.PI/2,a.materialTexture=i,a.materialWireframe=n,a.autoCreateAnimations(this.animationFPS),a}}},73653:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Mesh{constructor(e,t){super(e,t),this.type="MorphAnimMesh",this.mixer=new r.AnimationMixer(this),this.activeAction=null}setDirectionForward(){this.mixer.timeScale=1}setDirectionBackward(){this.mixer.timeScale=-1}playAnimation(e,t){this.activeAction&&(this.activeAction.stop(),this.activeAction=null);const n=r.AnimationClip.findByName(this,e);if(!n)throw new Error("THREE.MorphAnimMesh: animations["+e+"] undefined in .playAnimation()");{const e=this.mixer.clipAction(n);e.timeScale=n.tracks.length*t/n.duration,this.activeAction=e.play()}}updateAnimation(e){this.mixer.update(e)}copy(e,t){return super.copy(e,t),this.mixer=new r.AnimationMixer(this),this}}t.MorphAnimMesh=i},46863:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Mesh{constructor(e,t){super(e,t),this.animationsMap={},this.animationsList=[];const n=Object.keys(this.morphTargetDictionary).length,r="__default",i=n-1,s=n/1;this.createAnimation(r,0,i,s),this.setAnimationWeight(r,1)}createAnimation(e,t,n,r){const i={start:t,end:n,length:n-t+1,fps:r,duration:(n-t)/r,lastFrame:0,currentFrame:0,active:!1,time:0,direction:1,weight:1,directionBackwards:!1,mirroredLoop:!1};this.animationsMap[e]=i,this.animationsList.push(i)}autoCreateAnimations(e){const t=/([a-z]+)_?(\d+)/i;let n;const r={};let i=0;for(const s in this.morphTargetDictionary){const e=s.match(t);if(e&&e.length>1){const t=e[1];r[t]||(r[t]={start:1/0,end:-1/0});const s=r[t];is.end&&(s.end=i),n||(n=t)}i++}for(const s in r){const t=r[s];this.createAnimation(s,t.start,t.end,e)}this.firstAnimation=n}setAnimationDirectionForward(e){const t=this.animationsMap[e];t&&(t.direction=1,t.directionBackwards=!1)}setAnimationDirectionBackward(e){const t=this.animationsMap[e];t&&(t.direction=-1,t.directionBackwards=!0)}setAnimationFPS(e,t){const n=this.animationsMap[e];n&&(n.fps=t,n.duration=(n.end-n.start)/n.fps)}setAnimationDuration(e,t){const n=this.animationsMap[e];n&&(n.duration=t,n.fps=(n.end-n.start)/n.duration)}setAnimationWeight(e,t){const n=this.animationsMap[e];n&&(n.weight=t)}setAnimationTime(e,t){const n=this.animationsMap[e];n&&(n.time=t)}getAnimationTime(e){let t=0;const n=this.animationsMap[e];return n&&(t=n.time),t}getAnimationDuration(e){let t=-1;const n=this.animationsMap[e];return n&&(t=n.duration),t}playAnimation(e){const t=this.animationsMap[e];t?(t.time=0,t.active=!0):console.warn("THREE.MorphBlendMesh: animation["+e+"] undefined in .playAnimation()")}stopAnimation(e){const t=this.animationsMap[e];t&&(t.active=!1)}update(e){for(let t=0,n=this.animationsList.length;tn.duration||n.time<0)&&(n.direction*=-1,n.time>n.duration&&(n.time=n.duration,n.directionBackwards=!0),n.time<0&&(n.time=0,n.directionBackwards=!1)):(n.time=n.time%n.duration,n.time<0&&(n.time+=n.duration));const s=n.start+r.MathUtils.clamp(Math.floor(n.time/i),0,n.length-1),a=n.weight;s!==n.currentFrame&&(this.morphTargetInfluences[n.lastFrame]=0,this.morphTargetInfluences[n.currentFrame]=1*a,this.morphTargetInfluences[s]=0,n.lastFrame=n.currentFrame,n.currentFrame=s);let o=n.time%i/i;n.directionBackwards&&(o=1-o),n.currentFrame!==n.lastFrame?(this.morphTargetInfluences[n.currentFrame]=o*a,this.morphTargetInfluences[n.lastFrame]=(1-o)*a):this.morphTargetInfluences[n.currentFrame]=a}}}t.MorphBlendMesh=i},29667:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(85581);t.ProgressiveLightMap=class{constructor(e,t=1024){this.renderer=e,this.res=t,this.lightMapContainers=[],this.compiled=!1,this.scene=new r.Scene,this.scene.background=null,this.tinyTarget=new r.WebGLRenderTarget(1,1),this.buffer1Active=!1,this.firstUpdate=!0,this.warned=!1;const n=/(Android|iPad|iPhone|iPod)/g.test(navigator.userAgent)?alfFloatType:r.FloatType;this.progressiveLightMap1=new r.WebGLRenderTarget(this.res,this.res,{type:n}),this.progressiveLightMap2=new r.WebGLRenderTarget(this.res,this.res,{type:n}),this.uvMat=new r.MeshPhongMaterial,this.uvMat.uniforms={},this.uvMat.onBeforeCompile=e=>{e.vertexShader="#define USE_LIGHTMAP\n"+e.vertexShader.slice(0,-1)+"\tgl_Position = vec4((uv2 - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv2;\n"+e.fragmentShader.slice(0,t)+"\tuniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv2).rgb;\n\t\t\t\tgl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/averagingWindow);\n\t\t\t}",e.uniforms.previousShadowMap={value:this.progressiveLightMap1.texture},e.uniforms.averagingWindow={value:100},this.uvMat.uniforms=e.uniforms,this.uvMat.userData.shader=e,this.compiled=!0}}addObjectsToLightMap(e){this.uv_boxes=[];const t=3/this.res;for(let r=0;r{const i=e[r.index].geometry.getAttribute("uv").clone();for(let e=0;e{r.vertexShader="#define USE_UV\n"+r.vertexShader.slice(0,-1)+"\tgl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const i=r.fragmentShader.indexOf("void main() {");r.fragmentShader="#define USE_UV\n"+r.fragmentShader.slice(0,i)+"\tuniform sampler2D previousShadowMap;\n\tuniform float pixelOffset;\n"+r.fragmentShader.slice(i-1,-1)+"\tgl_FragColor.rgb = (\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, 0.0 )).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( 0.0 , pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( 0.0 , -pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, 0.0 )).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, -pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, -pixelOffset)).rgb)/8.0;\n\t\t}",r.uniforms.previousShadowMap={value:t.texture},r.uniforms.pixelOffset={value:.5/e},n.uniforms=r.uniforms,n.userData.shader=r,this.compiled=!0},this.blurringPlane=new r.Mesh(new r.PlaneGeometry(1,1),n),this.blurringPlane.name="Blurring Plane",this.blurringPlane.frustumCulled=!1,this.blurringPlane.renderOrder=0,this.blurringPlane.material.depthWrite=!1,this.scene.add(this.blurringPlane)}}},91248:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.BufferGeometry{constructor(e,t){super();const n=[],i=[],s=[],a=[1,1,1],o=[1,1,0],l=new r.Vector3(0,1,0),c=new r.Vector3,h=new r.Vector3,u=new r.Quaternion,d=new r.Quaternion;d.setFromAxisAngle(l,Math.PI/2);const p=new r.Vector3,f=new r.Vector3;f.copy(e.getPointAt(0));const m=[new r.Vector3(-.225,0,0),new r.Vector3(0,-.05,0),new r.Vector3(0,-.175,0),new r.Vector3(0,-.05,0),new r.Vector3(.225,0,0),new r.Vector3(0,-.175,0)],g=2*Math.PI;let A=5;const v=[];for(let D=0;D=0;r--)x.copy(e[r]),x.applyQuaternion(u),x.add(p),n.push(x.x,x.y,x.z),i.push(b.x,b.y,b.z),s.push(t[0],t[1],t[2])}const _=new r.Vector3,S=new r.Vector3,w=new r.Vector3,M=new r.Vector3,C=new r.Vector3,T=new r.Vector3,I=new r.Vector3,B=new r.Vector3;function R(e,t,r){for(let a=0,o=e.length;a10?(b.set(-.75,-.35,0),b.applyQuaternion(s),b.add(o),E.set(.75,-.35,0),E.applyQuaternion(s),E.add(o),x(c,b,E),b.set(-.7,-.3,0),b.applyQuaternion(s),b.add(o),E.set(-.7,-o.y,0),E.applyQuaternion(s),E.add(o),x(h,b,E),b.set(.7,-.3,0),b.applyQuaternion(s),b.add(o),E.set(.7,-o.y,0),E.applyQuaternion(s),E.add(o),x(u,b,E)):(b.set(0,-.2,0),b.applyQuaternion(s),b.add(o),E.set(0,-o.y,0),E.applyQuaternion(s),E.add(o),x(u,b,E))}this.setAttribute("position",new r.BufferAttribute(new Float32Array(n),3)),this.setAttribute("normal",new r.BufferAttribute(new Float32Array(i),3))}}class a extends r.BufferGeometry{constructor(e,t){super();const n=[],i=new r.Vector3(0,1,0),s=new r.Vector3,a=new r.Quaternion,o=new r.Quaternion;o.setFromAxisAngle(i,Math.PI/2);const l=new r.Vector3,c=new r.Vector3;c.copy(e.getPointAt(0)),c.y=0;const h=new r.Vector3,u=new r.Vector3,d=new r.Vector3,p=new r.Vector3;for(let r=1;r<=t;r++){l.copy(e.getPointAt(r/t)),l.y=0,s.subVectors(l,c);const f=Math.atan2(s.x,s.z);a.setFromAxisAngle(i,f),h.set(-.3,0,0),h.applyQuaternion(a),h.add(l),u.set(.3,0,0),u.applyQuaternion(a),u.add(l),d.set(.3,0,0),d.applyQuaternion(o),d.add(c),p.set(-.3,0,0),p.applyQuaternion(o),p.add(c),n.push(h.x,h.y,h.z),n.push(u.x,u.y,u.z),n.push(p.x,p.y,p.z),n.push(u.x,u.y,u.z),n.push(d.x,d.y,d.z),n.push(p.x,p.y,p.z),c.copy(l),o.copy(a)}this.setAttribute("position",new r.BufferAttribute(new Float32Array(n),3))}}class o extends r.BufferGeometry{constructor(){super();const e=[];for(let t=0;t<100;t++){const t=800*Math.random()-400,n=50*Math.random()+50,r=800*Math.random()-400,i=40*Math.random()+20;e.push(t-i,n,r-i),e.push(t+i,n,r-i),e.push(t-i,n,r+i),e.push(t+i,n,r-i),e.push(t+i,n,r+i),e.push(t-i,n,r+i)}this.setAttribute("position",new r.BufferAttribute(new Float32Array(e),3))}}class l extends r.BufferGeometry{constructor(e){super();const t=[],n=[],i=new r.Raycaster;i.ray.direction.set(0,-1,0);const s=new r.Color;for(let r=0;r<2e3;r++){const r=500*Math.random()-250,a=500*Math.random()-250;i.ray.origin.set(r,50,a);const o=i.intersectObject(e);if(0===o.length)continue;const l=o[0].point.y,c=5*Math.random()+.5;let h=Math.random()*Math.PI*2;t.push(r+Math.sin(h),l,a+Math.cos(h)),t.push(r,l+c,a),t.push(r+Math.sin(h+Math.PI),l,a+Math.cos(h+Math.PI)),h+=Math.PI/2,t.push(r+Math.sin(h),l,a+Math.cos(h)),t.push(r,l+c,a),t.push(r+Math.sin(h+Math.PI),l,a+Math.cos(h+Math.PI));const u=.1*Math.random();for(let e=0;e<6;e++)s.setRGB(.2+u,.4+u,0,"srgb"),n.push(s.r,s.g,s.b)}this.setAttribute("position",new r.BufferAttribute(new Float32Array(t),3)),this.setAttribute("color",new r.BufferAttribute(new Float32Array(n),3))}}t.RollerCoasterGeometry=i,t.RollerCoasterLiftersGeometry=s,t.RollerCoasterShadowGeometry=a,t.SkyGeometry=o,t.TreesGeometry=l},90648:(e,t)=>{"use strict";var n=Object.defineProperty,r=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function i(){!1===document.hidden&&this.reset()}t.Timer=class{constructor(){r(this,"_previousTime"),r(this,"_currentTime"),r(this,"_delta"),r(this,"_elapsed"),r(this,"_timescale"),r(this,"_useFixedDelta"),r(this,"_fixedDelta"),r(this,"_usePageVisibilityAPI"),r(this,"_pageVisibilityHandler"),this._previousTime=0,this._currentTime=0,this._delta=0,this._elapsed=0,this._timescale=1,this._useFixedDelta=!1,this._fixedDelta=16.67,this._usePageVisibilityAPI="undefined"!=typeof document&&void 0!==document.hidden}connect(){return this._usePageVisibilityAPI&&(this._pageVisibilityHandler=i.bind(this),document.addEventListener("visibilitychange",this._pageVisibilityHandler,!1)),this}dispose(){return this._usePageVisibilityAPI&&this._pageVisibilityHandler&&document.removeEventListener("visibilitychange",this._pageVisibilityHandler),this}disableFixedDelta(){return this._useFixedDelta=!1,this}enableFixedDelta(){return this._useFixedDelta=!0,this}getDelta(){return this._delta/1e3}getElapsedTime(){return this._elapsed/1e3}getFixedDelta(){return this._fixedDelta/1e3}getTimescale(){return this._timescale}reset(){return this._currentTime=this._now(),this}setFixedDelta(e){return this._fixedDelta=1e3*e,this}setTimescale(e){return this._timescale=e,this}update(){return!0===this._useFixedDelta?this._delta=this._fixedDelta:(this._previousTime=this._currentTime,this._currentTime=this._now(),this._delta=this._currentTime-this._previousTime),this._delta*=this._timescale,this._elapsed+=this._delta,this}get elapsedTime(){return this.getElapsedTime()}_now(){return("undefined"==typeof performance?Date:performance).now()}}},70599:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.TubePainter=function(){const e=3e6,t=new r.BufferAttribute(new Float32Array(e),3);t.usage=r.DynamicDrawUsage;const n=new r.BufferAttribute(new Float32Array(e),3);n.usage=r.DynamicDrawUsage;const i=new r.BufferAttribute(new Float32Array(e),3);i.usage=r.DynamicDrawUsage;const s=new r.BufferGeometry;s.setAttribute("position",t),s.setAttribute("normal",n),s.setAttribute("color",i),s.drawRange.count=0;const a=new r.MeshStandardMaterial({vertexColors:!0}),o=new r.Mesh(s,a);o.frustumCulled=!1;const l=new r.Vector3,c=new r.Vector3,h=new r.Vector3,u=new r.Vector3,d=new r.Color(16777215);let p=1;function f(e,a,o,f){if(0===e.distanceToSquared(a))return;let m=s.drawRange.count;const g=function(e){const t=2*Math.PI,n=[],i=.01*e;for(let s=0;s<10;s++){const e=s/10*t;n.push(new r.Vector3(Math.sin(e)*i,Math.cos(e)*i,0))}return n}(p);for(let r=0,s=g.length;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(94117);t.Volume=class{constructor(e,t,n,i,s){if(void 0!==e){switch(this.xLength=Number(e)||1,this.yLength=Number(t)||1,this.zLength=Number(n)||1,this.axisOrder=["x","y","z"],i){case"Uint8":case"uint8":case"uchar":case"unsigned char":case"uint8_t":default:this.data=new Uint8Array(s);break;case"Int8":case"int8":case"signed char":case"int8_t":this.data=new Int8Array(s);break;case"Int16":case"int16":case"short":case"short int":case"signed short":case"signed short int":case"int16_t":this.data=new Int16Array(s);break;case"Uint16":case"uint16":case"ushort":case"unsigned short":case"unsigned short int":case"uint16_t":this.data=new Uint16Array(s);break;case"Int32":case"int32":case"int":case"signed int":case"int32_t":this.data=new Int32Array(s);break;case"Uint32":case"uint32":case"uint":case"unsigned int":case"uint32_t":this.data=new Uint32Array(s);break;case"longlong":case"long long":case"long long int":case"signed long long":case"signed long long int":case"int64":case"int64_t":case"ulonglong":case"unsigned long long":case"unsigned long long int":case"uint64":case"uint64_t":throw new Error("Error in Volume constructor : this type is not supported in JavaScript");case"Float32":case"float32":case"float":this.data=new Float32Array(s);break;case"Float64":case"float64":case"double":this.data=new Float64Array(s)}if(this.data.length!==this.xLength*this.yLength*this.zLength)throw new Error("Error in Volume constructor, lengths are not matching arrayBuffer size")}this.spacing=[1,1,1],this.offset=[0,0,0],this.matrix=new r.Matrix3,this.matrix.identity();let a=-1/0;Object.defineProperty(this,"lowerThreshold",{get:function(){return a},set:function(e){a=e,this.sliceList.forEach((function(e){e.geometryNeedsUpdate=!0}))}});let o=1/0;Object.defineProperty(this,"upperThreshold",{get:function(){return o},set:function(e){o=e,this.sliceList.forEach((function(e){e.geometryNeedsUpdate=!0}))}}),this.sliceList=[],this.segmentation=!1}getData(e,t,n){return this.data[n*this.xLength*this.yLength+t*this.xLength+e]}access(e,t,n){return n*this.xLength*this.yLength+t*this.xLength+e}reverseAccess(e){const t=Math.floor(e/(this.yLength*this.xLength)),n=Math.floor((e-t*this.yLength*this.xLength)/this.xLength);return[e-t*this.yLength*this.xLength-n*this.xLength,n,t]}map(e,t){const n=this.data.length;t=t||this;for(let r=0;r.9})),y=[l,c,o].find((function(e){return Math.abs(e.dot(A[1]))>.9})),x=[l,c,o].find((function(e){return Math.abs(e.dot(A[2]))>.9}));return{iLength:p,jLength:f,sliceAccess:function(e,t){const n=v===o?a:"i"===v.arglet?e:t,r=y===o?a:"i"===y.arglet?e:t,i=x===o?a:"i"===x.arglet?e:t,s=v.dot(A[0])>0?n:u.xLength-1-n,l=y.dot(A[1])>0?r:u.yLength-1-r,c=x.dot(A[2])>0?i:u.zLength-1-i;return u.access(s,l,c)},matrix:h,planeWidth:m,planeHeight:g}}extractSlice(e,t){const n=new i.VolumeSlice(this,t,e);return this.sliceList.push(n),n}repaintAllSlices(){return this.sliceList.forEach((function(e){e.repaint()})),this}computeMinMax(){let e=1/0,t=-1/0;const n=this.data.length;let r=0;for(r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.VolumeSlice=class{constructor(e,t,n){const i=this;this.volume=e,t=t||0,Object.defineProperty(this,"index",{get:function(){return t},set:function(e){return t=e,i.geometryNeedsUpdate=!0,t}}),this.axis=n||"z",this.canvas=document.createElement("canvas"),this.canvasBuffer=document.createElement("canvas"),this.updateGeometry();const s=new r.Texture(this.canvas);s.minFilter=r.LinearFilter,s.wrapS=s.wrapT=r.ClampToEdgeWrapping,"colorSpace"in s?s.colorSpace="srgb":s.encoding=3001;const a=new r.MeshBasicMaterial({map:s,side:r.DoubleSide,transparent:!0});this.mesh=new r.Mesh(this.geometry,a),this.mesh.matrixAutoUpdate=!1,this.geometryNeedsUpdate=!0,this.repaint()}repaint(){this.geometryNeedsUpdate&&this.updateGeometry();const e=this.iLength,t=this.jLength,n=this.sliceAccess,r=this.volume,i=this.canvasBuffer,s=this.ctxBuffer,a=s.getImageData(0,0,e,t),o=a.data,l=r.data,c=r.upperThreshold,h=r.lowerThreshold,u=r.windowLow,d=r.windowHigh;let p=0;if("label"===r.dataType)for(let f=0;f=this.colorMap.length?e%this.colorMap.length+1:e;const r=this.colorMap[e];o[4*p]=r>>24&255,o[4*p+1]=r>>16&255,o[4*p+2]=r>>8&255,o[4*p+3]=255&r,p++}else for(let f=0;f=e&&h<=e?r:0,e=Math.floor(255*(e-u)/(d-u)),e=e>255?255:e<0?0:0|e,o[4*p]=e,o[4*p+1]=e,o[4*p+2]=e,o[4*p+3]=r,p++}s.putImageData(a,0,0),this.ctx.drawImage(i,0,0,e,t,0,0,this.canvas.width,this.canvas.height),this.mesh.material.map.needsUpdate=!0}updateGeometry(){const e=this.volume.extractPerpendicularPlane(this.axis,this.index);this.sliceAccess=e.sliceAccess,this.jLength=e.jLength,this.iLength=e.iLength,this.matrix=e.matrix,this.canvas.width=e.planeWidth,this.canvas.height=e.planeHeight,this.canvasBuffer.width=this.iLength,this.canvasBuffer.height=this.jLength,this.ctx=this.canvas.getContext("2d"),this.ctxBuffer=this.canvasBuffer.getContext("2d"),this.geometry&&this.geometry.dispose(),this.geometry=new r.PlaneGeometry(e.planeWidth,e.planeHeight),this.mesh&&(this.mesh.geometry=this.geometry,this.mesh.matrix.identity(),this.mesh.applyMatrix4(this.matrix)),this.geometryNeedsUpdate=!1}}},17101:(e,t)=>{"use strict";let n,r;function i(e){const t={1:window.WebGLRenderingContext,2:window.WebGL2RenderingContext},n=document.createElement("div");n.id="webglmessage",n.style.fontFamily="monospace",n.style.fontSize="13px",n.style.fontWeight="normal",n.style.textAlign="center",n.style.background="#fff",n.style.color="#000",n.style.padding="1.5em",n.style.width="400px",n.style.margin="5em auto 0";let r='Your $0 does not seem to support $1';return r=t[e]?r.replace("$0","graphics card"):r.replace("$0","browser"),r=r.replace("$1",{1:"WebGL",2:"WebGL 2"}[e]),n.innerHTML=r,n}Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getErrorMessage=i,t.getWebGL2ErrorMessage=function(){return i(2)},t.getWebGLErrorMessage=function(){return i(1)},t.isWebGL2Available=function(){var e;if(void 0!==r)return r;try{let t;const n=document.createElement("canvas");return r=!(!window.WebGL2RenderingContext||!(t=n.getContext("webgl2"))),t&&(null==(e=t.getExtension("WEBGL_lose_context"))||e.loseContext()),r}catch(t){return r=!1}},t.isWebGLAvailable=function(){var e;if(void 0!==n)return n;try{let t;const r=document.createElement("canvas");return n=!(!window.WebGLRenderingContext||!(t=r.getContext("webgl"))),t&&(null==(e=t.getExtension("WEBGL_lose_context"))||e.loseContext()),n}catch(t){return n=!1}}},29022:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=1024,o=(e=1)=>{const t=new Float32Array(4096*e*4),n=new s.DataTexture(t,a,4*e,s.RGBAFormat,s.FloatType);return n.wrapS=s.RepeatWrapping,n.wrapT=s.RepeatWrapping,n.magFilter=s.NearestFilter,n.needsUpdate=!0,n},l=(e,t,n=0)=>{const r=Math.floor(1024);t.arcLengthDivisions=r/2,t.updateArcLengths();const i=t.getSpacedPoints(r),s=t.computeFrenetFrames(r,!0);for(let o=0;o{const a=e.image,{data:o}=a,l=4096*s;o[4*t+l+0]=n,o[4*t+l+1]=r,o[4*t+l+2]=i,o[4*t+l+3]=1},h=e=>({spineTexture:{value:e},pathOffset:{type:"f",value:0},pathSegment:{type:"f",value:1},spineOffset:{type:"f",value:161},spineLength:{type:"f",value:400},flow:{type:"i",value:1}});function u(e,t,n=1){e.__ok||(e.__ok=!0,e.onBeforeCompile=e=>{if(e.__modified)return;e.__modified=!0,Object.assign(e.uniforms,t);const r=`\n\t\tuniform sampler2D spineTexture;\n\t\tuniform float pathOffset;\n\t\tuniform float pathSegment;\n\t\tuniform float spineOffset;\n\t\tuniform float spineLength;\n\t\tuniform int flow;\n\n\t\tfloat textureLayers = ${4*n}.;\n\t\tfloat textureStacks = 1.;\n\n\t\t${e.vertexShader}\n\t\t`.replace("#include ","").replace("#include ","").replace("#include ","").replace(/void\s*main\s*\(\)\s*\{/,"\n void main() {\n #include \n\n vec4 worldPos = modelMatrix * vec4(position, 1.);\n\n bool bend = flow > 0;\n float xWeight = bend ? 0. : 1.;\n\n #ifdef USE_INSTANCING\n float pathOffsetFromInstanceMatrix = instanceMatrix[3][2];\n float spineLengthFromInstanceMatrix = instanceMatrix[3][0];\n float spinePortion = bend ? (worldPos.x + spineOffset) / spineLengthFromInstanceMatrix : 0.;\n float mt = (spinePortion * pathSegment + pathOffset + pathOffsetFromInstanceMatrix)*textureStacks;\n #else\n float spinePortion = bend ? (worldPos.x + spineOffset) / spineLength : 0.;\n float mt = (spinePortion * pathSegment + pathOffset)*textureStacks;\n #endif\n\n mt = mod(mt, textureStacks);\n float rowOffset = floor(mt);\n\n #ifdef USE_INSTANCING\n rowOffset += instanceMatrix[3][1] * 4.;\n #endif\n\n vec3 spinePos = texture2D(spineTexture, vec2(mt, (0. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 a = texture2D(spineTexture, vec2(mt, (1. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 b = texture2D(spineTexture, vec2(mt, (2. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 c = texture2D(spineTexture, vec2(mt, (3. + rowOffset + 0.5) / textureLayers)).xyz;\n mat3 basis = mat3(a, b, c);\n\n vec3 transformed = basis\n * vec3(worldPos.x * xWeight, worldPos.y * 1., worldPos.z * 1.)\n + spinePos;\n\n vec3 transformedNormal = normalMatrix * (basis * objectNormal);\n\t\t\t").replace("#include ","vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\n\t\t\t\tgl_Position = projectionMatrix * mvPosition;");e.vertexShader=r})}class d{constructor(e,t=1){i(this,"curveArray"),i(this,"curveLengthArray"),i(this,"object3D"),i(this,"splineTexure"),i(this,"uniforms");const n=e.clone(),r=o(t),a=h(r);n.traverse((e=>{(e instanceof s.Mesh||e instanceof s.InstancedMesh)&&(e.material=e.material.clone(),u(e.material,a,t))})),this.curveArray=new Array(t),this.curveLengthArray=new Array(t),this.object3D=n,this.splineTexure=r,this.uniforms=a}updateCurve(e,t){if(e>=this.curveArray.length)throw Error("Index out of range for Flow");const n=t.getLength();this.uniforms.spineLength.value=n,this.curveLengthArray[e]=n,this.curveArray[e]=t,l(this.splineTexure,t,e)}moveAlongCurve(e){this.uniforms.pathOffset.value+=e}}const p=new s.Matrix4;t.Flow=d,t.InstancedFlow=class extends d{constructor(e,t,n,r){const a=new s.InstancedMesh(n,r,e);a.instanceMatrix.setUsage(s.DynamicDrawUsage),a.frustumCulled=!1,super(a,t),i(this,"offsets"),i(this,"whichCurve"),this.offsets=new Array(e).fill(0),this.whichCurve=new Array(e).fill(0)}writeChanges(e){p.makeTranslation(this.curveLengthArray[this.whichCurve[e]],this.whichCurve[e],this.offsets[e]),this.object3D.setMatrixAt(e,p),this.object3D.instanceMatrix.needsUpdate=!0}moveIndividualAlongCurve(e,t){this.offsets[e]+=t,this.writeChanges(e)}setCurve(e,t){if(isNaN(t))throw Error("curve index being set is Not a Number (NaN)");this.whichCurve[e]=t,this.writeChanges(e)}},t.getUniforms=h,t.initSplineTexture=o,t.modifyShader=u,t.updateSplineTexture=l},80101:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(66552);t.EdgeSplitModifier=class{constructor(){i(this,"A",new s.Vector3),i(this,"B",new s.Vector3),i(this,"C",new s.Vector3),i(this,"positions",[]),i(this,"normals",new Float32Array),i(this,"indexes",[]),i(this,"pointToIndexMap",[]),i(this,"splitIndexes",[]),i(this,"oldNormals",[]),i(this,"computeNormals",(()=>{this.normals=new Float32Array(3*this.indexes.length);for(let e=0;e{this.pointToIndexMap=Array(this.positions.length/3);for(let e=0;e{this.A.set(this.normals[3*n],this.normals[3*n+1],this.normals[3*n+2]).normalize();const r={splitGroup:[],currentGroup:[n]};for(let i of e)i!==n&&(this.B.set(this.normals[3*i],this.normals[3*i+1],this.normals[3*i+2]).normalize(),this.B.dot(this.A){if(0===e.length)return;const r=[];for(let s of e)r.push(this.edgeSplitToGroups(e,t,s));let i=r[0];for(let s of r)s.currentGroup.length>i.currentGroup.length&&(i=s);null!=n&&this.splitIndexes.push({original:n,indexes:i.currentGroup}),i.splitGroup.length&&this.edgeSplit(i.splitGroup,t,n||i.currentGroup[0])})),i(this,"modify",((e,t,n=!0)=>{let r=!1;if(e.attributes.normal&&(r=!0,e=e.clone(),!0===n&&null!==e.index&&(this.oldNormals=e.attributes.normal.array),e.deleteAttribute("normal")),null==e.index){if(void 0===a)throw"THREE.EdgeSplitModifier relies on BufferGeometryUtils";e=a.mergeVertices(e)}this.indexes=e.index.array,this.positions=e.getAttribute("position").array,this.computeNormals(),this.mapPositionsToIndexes(),this.splitIndexes=[];for(let s of this.pointToIndexMap)this.edgeSplit(s,Math.cos(t)-.001);const i={};for(let a of Object.keys(e.attributes)){const t=e.attributes[a],n=new t.array.constructor((this.indexes.length+this.splitIndexes.length)*t.itemSize);n.set(t.array),i[a]=new s.BufferAttribute(n,t.itemSize,t.normalized)}const o=new Uint32Array(this.indexes.length);o.set(this.indexes);for(let s=0;s{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(66552),o=new s.Vector3,l=new s.Vector3;function c(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class h{constructor(e,t){i(this,"position"),i(this,"id"),i(this,"faces"),i(this,"neighbors"),i(this,"collapseCost"),i(this,"collapseNeighbor"),i(this,"minCost",0),i(this,"totalCost",0),i(this,"costCount",0),this.position=e,this.id=t,this.faces=[],this.neighbors=[],this.collapseCost=0,this.collapseNeighbor=null}addUniqueNeighbor(e){var t,n;t=this.neighbors,n=e,-1===t.indexOf(n)&&t.push(n)}removeIfNonNeighbor(e){const t=this.neighbors,n=this.faces,r=t.indexOf(e);if(-1!==r){for(let t=0;t{const n=t.position.distanceTo(e.position);let r=0;const i=[];let s,a,o,l=e.faces.length;for(s=0;s{if(0===e.neighbors.length)return e.collapseNeighbor=null,void(e.collapseCost=-.01);e.collapseCost=1e5,e.collapseNeighbor=null;for(let t=0;t{c(t,e),e.v1&&c(e.v1.faces,e),e.v2&&c(e.v2.faces,e),e.v3&&c(e.v3.faces,e);const n=[e.v1,e.v2,e.v3];let r,i;for(let s=0;s<3;s++)r=n[s],i=n[(s+1)%3],r&&i&&(r.removeIfNonNeighbor(i),i.removeIfNonNeighbor(r))})),i(this,"collapse",((e,t,n,r)=>{if(!r)return void this.removeVertex(n,e);let i;const s=[];for(i=0;i=0;i--)n.faces[i].hasVertex(r)&&this.removeFace(n.faces[i],t);for(i=n.faces.length-1;i>=0;i--)n.faces[i].replaceVertex(n,r);for(this.removeVertex(n,e),i=0;i{let t=e[0];for(let n=0;n{const n=(e=e.clone()).attributes;for(let s in n)"position"!==s&&e.deleteAttribute(s);const r=[],i=[],o=(e=a.mergeVertices(e)).getAttribute("position");for(let a=0;a{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);t.TessellateModifier=class{constructor(e=.1,t=6){i(this,"maxEdgeLength"),i(this,"maxIterations"),i(this,"modify",(e=>{null!==e.index&&(e=e.toNonIndexed());const t=this.maxIterations,n=this.maxEdgeLength*this.maxEdgeLength,r=new s.Vector3,i=new s.Vector3,a=new s.Vector3,o=new s.Vector3,l=[r,i,a,o],c=new s.Vector3,h=new s.Vector3,u=new s.Vector3,d=new s.Vector3,p=[c,h,u,d],f=new s.Color,m=new s.Color,g=new s.Color,A=new s.Color,v=[f,m,g,A],y=new s.Vector2,x=new s.Vector2,b=new s.Vector2,E=new s.Vector2,_=[y,x,b,E],S=new s.Vector2,w=new s.Vector2,M=new s.Vector2,C=new s.Vector2,T=[S,w,M,C],I=e.attributes,B=void 0!==I.normal,R=void 0!==I.color,P=void 0!==I.uv,D=void 0!==I.uv2;let L=I.position.array,F=B?I.normal.array:null,U=R?I.color.array:null,O=P?I.uv.array:null,N=D?I.uv2.array:null,k=L,G=F,z=U,Q=O,V=N,H=0,j=!0;function W(e,t,n){const r=l[e],i=l[t],s=l[n];if(k.push(r.x,r.y,r.z),k.push(i.x,i.y,i.z),k.push(s.x,s.y,s.z),B){const r=p[e],i=p[t],s=p[n];G.push(r.x,r.y,r.z),G.push(i.x,i.y,i.z),G.push(s.x,s.y,s.z)}if(R){const r=v[e],i=v[t],s=v[n];z.push(r.r,r.g,r.b),z.push(i.r,i.g,i.b),z.push(s.r,s.g,s.b)}if(P){const r=_[e],i=_[t],s=_[n];Q.push(r.x,r.y),Q.push(i.x,i.y),Q.push(s.x,s.y)}if(D){const r=T[e],i=T[t],s=T[n];V.push(r.x,r.y),V.push(i.x,i.y),V.push(s.x,s.y)}}for(;j&&Hn||l>n||p>n?(j=!0,s>=l&&s>=p?(o.lerpVectors(r,i,.5),B&&d.lerpVectors(c,h,.5),R&&A.lerpColors(f,m,.5),P&&E.lerpVectors(y,x,.5),D&&C.lerpVectors(S,w,.5),W(0,3,2),W(3,1,2)):l>=s&&l>=p?(o.lerpVectors(i,a,.5),B&&d.lerpVectors(h,u,.5),R&&A.lerpColors(m,g,.5),P&&E.lerpVectors(x,b,.5),D&&C.lerpVectors(w,M,.5),W(0,1,3),W(3,2,0)):(o.lerpVectors(r,a,.5),B&&d.lerpVectors(c,u,.5),R&&A.lerpColors(f,g,.5),P&&E.lerpVectors(y,b,.5),D&&C.lerpVectors(S,M,.5),W(0,1,3),W(3,1,2))):W(0,1,2)}}const X=new s.BufferGeometry;return X.setAttribute("position",new s.Float32BufferAttribute(k,3)),B&&X.setAttribute("normal",new s.Float32BufferAttribute(G,3)),R&&X.setAttribute("color",new s.Float32BufferAttribute(z,3)),P&&X.setAttribute("uv",new s.Float32BufferAttribute(Q,2)),D&&X.setAttribute("uv2",new s.Float32BufferAttribute(V,2)),X})),this.maxEdgeLength=e,this.maxIterations=t}}},89930:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a="_batch_id_",o=new s.Matrix4,l=(new s.Matrix4).set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),c=`\n#ifdef BATCHING\n\tattribute float ${a};\n\tuniform highp sampler2D batchingTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\n\t}\n#endif\n`,h=`\n#ifdef BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( ${a} );\n#endif\n`;function u(e,t,n=0){const r=t.itemSize;if(e.isInterleavedBufferAttribute||e.array.constructor!==t.array.constructor){const i=e.count;for(let s=0;s","#include \n"+c).replace("#include ","#include \n"+h).replace("#include ","#include \n\n#ifdef BATCHING\n\tobjectNormal = vec4( batchingMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( batchingMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif\n").replace("#include ","#include \n\n#ifdef BATCHING\n\ttransformed = ( batchingMatrix * vec4( transformed, 1.0 ) ).xyz;\n#endif\n");for(const t in n)e.uniforms[t]=n[t];t.call(this,e,r)},e.defines=e.defines||{},e.defines.BATCHING=!1}_initializeGeometry(e){const t=this.geometry,n=this._maxVertexCount,r=this._maxGeometryCount,i=this._maxIndexCount;if(!1===this._geometryInitialized){for(const r in e.attributes){const i=e.getAttribute(r),{array:s,itemSize:a,normalized:o}=i,l=new s.constructor(n*a),c=new i.constructor(l,a,o);c.setUsage(i.usage),t.setAttribute(r,c)}if(null!==e.getIndex()){const e=n>65536?new Uint32Array(i):new Uint16Array(i);t.setIndex(new s.BufferAttribute(e,1))}const o=r>65536?new Uint32Array(n):new Uint16Array(n);t.setAttribute(a,new s.BufferAttribute(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(a))throw new Error(`BatchedMesh: Geometry cannot use attribute "${a}"`);const t=this.geometry;if(Boolean(e.getIndex())!==Boolean(t.getIndex()))throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const n in t.attributes){if(n===a)continue;if(!e.hasAttribute(n))throw new Error(`BatchedMesh: Added geometry missing "${n}". All geometries must have consistent attributes.`);const r=e.getAttribute(n),i=t.getAttribute(n);if(r.itemSize!==i.itemSize||r.normalized!==i.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}getGeometryCount(){return this._geometryCount}getVertexCount(){const e=this._reservedRanges;if(0===e.length)return 0;{const t=e[e.length-1];return t.vertexStart+t.vertexCount}}getIndexCount(){const e=this._reservedRanges;if(null===this.geometry.getIndex()||0===e.length)return 0;{const t=e[e.length-1];return t.indexStart+t.indexCount}}addGeometry(e,t=-1,n=-1){if(this._initializeGeometry(e),this._validateGeometry(e),this._geometryCount>=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let i=null;const l=this._reservedRanges;if(0!==this._geometryCount&&(i=l[l.length-1]),r.vertexCount=-1===t?e.getAttribute("position").count:t,r.vertexStart=null===i?0:i.vertexStart+i.vertexCount,null!==e.getIndex()&&(r.indexCount=-1===n?e.getIndex().count:n,r.indexStart=null===i?0:i.indexStart+i.indexCount),-1!==r.indexStart&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const c=this._indexCounts,h=this._indexStarts,u=this._vertexCounts,d=this._vertexStarts,p=this._visible,f=this._active,m=this._matricesTexture,g=this._matrices,A=this._matricesTexture.image.data;p.push(!0),f.push(!0);const v=this._geometryCount;this._geometryCount++,g.push(new s.Matrix4),o.toArray(A,16*v),m.needsUpdate=!0,l.push(r),d.push(r.vertexStart),u.push(r.vertexCount),null!==e.getIndex()&&(h.push(r.indexCount),c.push(r.indexCount));const y=this.geometry.getAttribute(a);for(let s=0;s=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const n=this._reservedRanges[e];if(null!==t.getIndex()&&t.getIndex().count>n.indexCount||t.attributes.position.count>n.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const r=this.geometry,i=t.getAttribute("position"),s=null!==r.getIndex(),o=r.getIndex(),l=t.getIndex(),c=n.vertexStart,h=n.vertexCount;for(const d in r.attributes){if(d===a)continue;const e=t.getAttribute(d),n=r.getAttribute(d);u(e,n,c);const i=e.itemSize;for(let t=e.count,r=h;t=t.length||!1===t[e]||(t[e]=!1,l.toArray(r,16*e),n.needsUpdate=!0),this}optimize(){throw new Error("BatchedMesh: Optimize function not implemented.")}setMatrixAt(e,t){const n=this._visible,r=this._active,i=this._matricesTexture,s=this._matrices,a=i.image.data;return e>=s.length||!1===r[e]||(!0===n[e]&&(t.toArray(a,16*e),i.needsUpdate=!0),s[e].copy(t)),this}getMatrixAt(e,t){const n=this._matrices,r=this._active;return e>=n.length||!1===r[e]?t:t.copy(n[e])}setVisibleAt(e,t){const n=this._visible,r=this._active,i=this._matricesTexture,s=this._matrices,a=i.image.data;return e>=n.length||!1===r[e]||n[e]===t||(!0===t?s[e].toArray(a,16*e):l.toArray(a,16*e),i.needsUpdate=!0,n[e]=t),this}getVisibleAt(e){const t=this._visible,n=this._active;return!(e>=t.length||!1===n[e])&&t[e]}raycast(){console.warn("BatchedMesh: Raycast function not implemented.")}copy(){throw new Error("BatchedMesh: Copy function not implemented.")}toJSON(){throw new Error("BatchedMesh: toJSON function not implemented.")}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}}t.BatchedMesh=d},29888:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Mesh{constructor(e,t){var n,i;const s=(a=e)&&a.isCubeTexture;var a;const o=(null!=(i=s?null==(n=e.image[0])?void 0:n.width:e.image.width)?i:1024)/4,l=Math.floor(Math.log2(o)),c=Math.pow(2,l),h=[s?"#define ENVMAP_TYPE_CUBE":"","#define CUBEUV_TEXEL_WIDTH "+1/(3*Math.max(c,112)),"#define CUBEUV_TEXEL_HEIGHT "+1/(4*c),`#define CUBEUV_MAX_MIP ${l}.0`].join("\n")+`\n #define ENVMAP_TYPE_CUBE_UV\n varying vec3 vWorldPosition;\n uniform float radius;\n uniform float height;\n uniform float angle;\n #ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube map;\n #else\n uniform sampler2D map;\n #endif\n // From: https://www.shadertoy.com/view/4tsBD7\n float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) \n {\n float d = dot ( rd, n );\n \n if( d > 0.0 ) { return 1e6; }\n \n vec3 o = ro - c;\n float t = - dot( n, o ) / d;\n vec3 q = o + rd * t;\n \n return ( dot( q, q ) < r * r ) ? t : 1e6;\n }\n // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm\n float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) \n {\n vec3 oc = ro - ce;\n float b = dot( oc, rd );\n float c = dot( oc, oc ) - ra * ra;\n float h = b * b - c;\n \n if( h < 0.0 ) { return -1.0; }\n \n h = sqrt( h );\n \n return - b + h;\n }\n vec3 project() \n {\n vec3 p = normalize( vWorldPosition );\n vec3 camPos = cameraPosition;\n camPos.y -= height;\n float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius );\n if( intersection > 0.0 ) {\n \n vec3 h = vec3( 0.0, - height, 0.0 );\n float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius );\n p = ( camPos + min( intersection, intersection2 ) * p ) / radius;\n } else {\n p = vec3( 0.0, 1.0, 0.0 );\n }\n return p;\n }\n #include \n #include \n void main() \n {\n vec3 projectedWorldPosition = project();\n \n #ifdef ENVMAP_TYPE_CUBE\n vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb;\n #else\n vec3 direction = normalize( projectedWorldPosition );\n vec2 uv = equirectUv( direction );\n vec3 outcolor = texture2D( map, uv ).rgb;\n #endif\n gl_FragColor = vec4( outcolor, 1.0 );\n #include \n #include <${parseInt(r.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `,u={map:{value:e},height:{value:(null==t?void 0:t.height)||15},radius:{value:(null==t?void 0:t.radius)||100}};super(new r.IcosahedronGeometry(1,16),new r.ShaderMaterial({uniforms:u,fragmentShader:h,vertexShader:"\n varying vec3 vWorldPosition;\n void main() \n {\n vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) );\n vWorldPosition = worldPosition.xyz;\n \n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n ",side:r.DoubleSide}))}set radius(e){this.material.uniforms.radius.value=e}get radius(){return this.material.uniforms.radius.value}set height(e){this.material.uniforms.height.value=e}get height(){return this.material.uniforms.height.value}}t.GroundProjectedEnv=i},17564:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=new s.BufferGeometry,o=new Float32Array([-1,-1,0,0,0,1,-1,0,1,0,1,1,0,1,1,-1,1,0,0,1]),l=new s.InterleavedBuffer(o,5);a.setIndex([0,1,2,0,2,3]),a.setAttribute("position",new s.InterleavedBufferAttribute(l,3,0,!1)),a.setAttribute("uv",new s.InterleavedBufferAttribute(l,2,3,!1));const c=class extends s.Mesh{constructor(){super(c.Geometry,new s.MeshBasicMaterial({opacity:0,transparent:!0})),this.isLensflare=!0,this.type="Lensflare",this.frustumCulled=!1,this.renderOrder=1/0;const e=new s.Vector3,t=new s.Vector3,n=new s.DataTexture(new Uint8Array(768),16,16,s.RGBAFormat);n.minFilter=s.NearestFilter,n.magFilter=s.NearestFilter,n.wrapS=s.ClampToEdgeWrapping,n.wrapT=s.ClampToEdgeWrapping;const r=new s.DataTexture(new Uint8Array(768),16,16,s.RGBAFormat);r.minFilter=s.NearestFilter,r.magFilter=s.NearestFilter,r.wrapS=s.ClampToEdgeWrapping,r.wrapT=s.ClampToEdgeWrapping;const i=c.Geometry,a=new s.RawShaderMaterial({uniforms:{scale:{value:null},screenPosition:{value:null}},vertexShader:"\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform vec3 screenPosition;\n\t\t\t\tuniform vec2 scale;\n\n\t\t\t\tattribute vec3 position;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\n\n\t\t\t\t}",fragmentShader:"\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 );\n\n\t\t\t\t}",depthTest:!0,depthWrite:!1,transparent:!1}),o=new s.RawShaderMaterial({uniforms:{map:{value:n},scale:{value:null},screenPosition:{value:null}},vertexShader:"\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform vec3 screenPosition;\n\t\t\t\tuniform vec2 scale;\n\n\t\t\t\tattribute vec3 position;\n\t\t\t\tattribute vec2 uv;\n\n\t\t\t\tvarying vec2 vUV;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUV = uv;\n\n\t\t\t\t\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\n\n\t\t\t\t}",fragmentShader:"\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform sampler2D map;\n\n\t\t\t\tvarying vec2 vUV;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = texture2D( map, vUV );\n\n\t\t\t\t}",depthTest:!1,depthWrite:!1,transparent:!1}),l=new s.Mesh(i,a),h=[],d=u.Shader,p=new s.RawShaderMaterial({uniforms:{map:{value:null},occlusionMap:{value:r},color:{value:new s.Color(16777215)},scale:{value:new s.Vector2},screenPosition:{value:new s.Vector3}},vertexShader:d.vertexShader,fragmentShader:d.fragmentShader,blending:s.AdditiveBlending,transparent:!0,depthWrite:!1}),f=new s.Mesh(i,p);this.addElement=function(e){h.push(e)};const m=new s.Vector2,g=new s.Vector2,A=new s.Box2,v=new s.Vector4;this.onBeforeRender=function(s,c,u){s.getCurrentViewport(v);const d=v.w/v.z,y=v.z/2,x=v.w/2;let b=16/v.w;if(m.set(b*d,b),A.min.set(v.x,v.y),A.max.set(v.x+(v.z-16),v.y+(v.w-16)),t.setFromMatrixPosition(this.matrixWorld),t.applyMatrix4(u.matrixWorldInverse),!(t.z>0)&&(e.copy(t).applyMatrix4(u.projectionMatrix),g.x=v.x+e.x*y+y-8,g.y=v.y+e.y*x+x-8,A.containsPoint(g))){s.copyFramebufferToTexture(g,n);let t=a.uniforms;t.scale.value=m,t.screenPosition.value=e,s.renderBufferDirect(u,null,i,a,l,null),s.copyFramebufferToTexture(g,r),t=o.uniforms,t.scale.value=m,t.screenPosition.value=e,s.renderBufferDirect(u,null,i,o,l,null);const c=2*-e.x,d=2*-e.y;for(let n=0,r=h.length;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(42095);class s extends r.Object3D{constructor(e={}){super(),this.isLightningStorm=!0,this.stormParams=e,e.size=void 0!==e.size?e.size:1e3,e.minHeight=void 0!==e.minHeight?e.minHeight:80,e.maxHeight=void 0!==e.maxHeight?e.maxHeight:100,e.maxSlope=void 0!==e.maxSlope?e.maxSlope:1.1,e.maxLightnings=void 0!==e.maxLightnings?e.maxLightnings:3,e.lightningMinPeriod=void 0!==e.lightningMinPeriod?e.lightningMinPeriod:3,e.lightningMaxPeriod=void 0!==e.lightningMaxPeriod?e.lightningMaxPeriod:7,e.lightningMinDuration=void 0!==e.lightningMinDuration?e.lightningMinDuration:1,e.lightningMaxDuration=void 0!==e.lightningMaxDuration?e.lightningMaxDuration:2.5,this.lightningParameters=i.LightningStrike.copyParameters(e.lightningParameters,e.lightningParameters),this.lightningParameters.isEternal=!1,this.lightningMaterial=void 0!==e.lightningMaterial?e.lightningMaterial:new r.MeshBasicMaterial({color:11599871}),void 0!==e.onRayPosition?this.onRayPosition=e.onRayPosition:this.onRayPosition=function(t,n){n.set((Math.random()-.5)*e.size,0,(Math.random()-.5)*e.size);const i=r.MathUtils.lerp(e.minHeight,e.maxHeight,Math.random());t.set(e.maxSlope*(2*Math.random()-1),1,e.maxSlope*(2*Math.random()-1)).multiplyScalar(i).add(n)},this.onLightningDown=e.onLightningDown,this.inited=!1,this.nextLightningTime=0,this.lightningsMeshes=[],this.deadLightningsMeshes=[];for(let t=0;t=this.nextLightningTime){const t=this.deadLightningsMeshes.pop();if(t){const n=i.LightningStrike.copyParameters(t.geometry.rayParameters,this.lightningParameters);n.birthTime=e,n.deathTime=e+r.MathUtils.lerp(this.stormParams.lightningMinDuration,this.stormParams.lightningMaxDuration,Math.random()),this.onRayPosition(n.sourceOffset,n.destOffset),n.noiseSeed=Math.random(),this.add(t),this.lightningsMeshes.push(t)}this.nextLightningTime=this.getNextLightningTime(e)}let t=0,n=this.lightningsMeshes.length;for(;ta&&this.onLightningDown&&this.onLightningDown(s),s.state===i.LightningStrike.RAY_EXTINGUISHED?(this.lightningsMeshes.splice(this.lightningsMeshes.indexOf(r),1),this.deadLightningsMeshes.push(r),this.remove(r),n--):t++}}getNextLightningTime(e){return e+r.MathUtils.lerp(this.stormParams.lightningMinPeriod,this.stormParams.lightningMaxPeriod,Math.random())/(this.stormParams.maxLightnings+1)}copy(e,t){return super.copy(e,t),this.stormParams.size=e.stormParams.size,this.stormParams.minHeight=e.stormParams.minHeight,this.stormParams.maxHeight=e.stormParams.maxHeight,this.stormParams.maxSlope=e.stormParams.maxSlope,this.stormParams.maxLightnings=e.stormParams.maxLightnings,this.stormParams.lightningMinPeriod=e.stormParams.lightningMinPeriod,this.stormParams.lightningMaxPeriod=e.stormParams.lightningMaxPeriod,this.stormParams.lightningMinDuration=e.stormParams.lightningMinDuration,this.stormParams.lightningMaxDuration=e.stormParams.lightningMaxDuration,this.lightningParameters=i.LightningStrike.copyParameters({},e.lightningParameters),this.lightningMaterial=e.stormParams.lightningMaterial,this.onLightningDown=e.onLightningDown,this}clone(){return new this.constructor(this.stormParams).copy(this)}}t.LightningStorm=s},14514:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Mesh{constructor(e,t,n=!1,i=!1,o=1e4){const l=new r.BufferGeometry;super(l,t),this.isMarchingCubes=!0;const c=this,h=new Float32Array(36),u=new Float32Array(36),d=new Float32Array(36);function p(e,t,n){return e+(t-e)*n}function f(e,t,n,r,i,s,a,o,l,f){const m=(n-a)/(o-a),g=c.normal_cache;h[t+0]=r+m*c.delta,h[t+1]=i,h[t+2]=s,u[t+0]=p(g[e+0],g[e+3],m),u[t+1]=p(g[e+1],g[e+4],m),u[t+2]=p(g[e+2],g[e+5],m),d[t+0]=p(c.palette[3*l+0],c.palette[3*f+0],m),d[t+1]=p(c.palette[3*l+1],c.palette[3*f+1],m),d[t+2]=p(c.palette[3*l+2],c.palette[3*f+2],m)}function m(e,t,n,r,i,s,a,o,l,f){const m=(n-a)/(o-a),g=c.normal_cache;h[t+0]=r,h[t+1]=i+m*c.delta,h[t+2]=s;const A=e+3*c.yd;u[t+0]=p(g[e+0],g[A+0],m),u[t+1]=p(g[e+1],g[A+1],m),u[t+2]=p(g[e+2],g[A+2],m),d[t+0]=p(c.palette[3*l+0],c.palette[3*f+0],m),d[t+1]=p(c.palette[3*l+1],c.palette[3*f+1],m),d[t+2]=p(c.palette[3*l+2],c.palette[3*f+2],m)}function g(e,t,n,r,i,s,a,o,l,f){const m=(n-a)/(o-a),g=c.normal_cache;h[t+0]=r,h[t+1]=i,h[t+2]=s+m*c.delta;const A=e+3*c.zd;u[t+0]=p(g[e+0],g[A+0],m),u[t+1]=p(g[e+1],g[A+1],m),u[t+2]=p(g[e+2],g[A+2],m),d[t+0]=p(c.palette[3*l+0],c.palette[3*f+0],m),d[t+1]=p(c.palette[3*l+1],c.palette[3*f+1],m),d[t+2]=p(c.palette[3*l+2],c.palette[3*f+2],m)}function A(e){const t=3*e;0===c.normal_cache[t]&&(c.normal_cache[t+0]=c.field[e-1]-c.field[e+1],c.normal_cache[t+1]=c.field[e-c.yd]-c.field[e+c.yd],c.normal_cache[t+2]=c.field[e-c.zd]-c.field[e+c.zd])}function v(e,t,n,r,i){const o=r+1,l=r+c.yd,p=r+c.zd,v=o+c.yd,x=o+c.zd,b=r+c.yd+c.zd,E=o+c.yd+c.zd;let _=0;const S=c.field[r],w=c.field[o],M=c.field[l],C=c.field[v],T=c.field[p],I=c.field[x],B=c.field[b],R=c.field[E];Sthis.size-1&&(m=this.size-1);let g=Math.floor(d-h);g<1&&(g=1);let A=Math.floor(d+h);A>this.size-1&&(A=this.size-1);let v=Math.floor(p-h);v<1&&(v=1);let y,x,b,E,_,S,w,M,C,T,I,B=Math.floor(p+h);for(B>this.size-1&&(B=this.size-1),b=f;b0){this.field[E+y]+=I*o;const e=Math.sqrt((y-p)*(y-p)+(x-d)*(x-d)+(b-u)*(b-u))/h,t=1-e*e*e*(e*(6*e-15)+10);this.palette[3*(E+y)+0]+=c.r*t,this.palette[3*(E+y)+1]+=c.g*t,this.palette[3*(E+y)+2]+=c.b*t}},this.addPlaneX=function(e,t){const n=this.size,r=this.yd,i=this.zd,s=this.field;let a,o,l,c,h,u,d,p=n*Math.sqrt(e/t);for(p>n&&(p=n),a=0;a0)for(o=0;on&&(f=n),o=0;o0)for(d=o*r,a=0;an&&(f=n),l=0;l0)for(d=i*l,o=0;o=r))for(let t=-1;t<=1;t+=2){const s=t+a;if(!(s<0||s>=r))for(let t=-1;t<=1;t+=2){const a=t+o;if(a<0||a>=r)continue;h++,c+=e*(n[i*a+r*s+l]-c)/h}}}t[l]=c}},this.reset=function(){for(let e=0;eo&&console.warn("THREE.MarchingCubes: Geometry buffers too small for rendering. Please create an instance with a higher poly count.")},this.init(e)}}const s=new Int32Array([0,265,515,778,1030,1295,1541,1804,2060,2309,2575,2822,3082,3331,3593,3840,400,153,915,666,1430,1183,1941,1692,2460,2197,2975,2710,3482,3219,3993,3728,560,825,51,314,1590,1855,1077,1340,2620,2869,2111,2358,3642,3891,3129,3376,928,681,419,170,1958,1711,1445,1196,2988,2725,2479,2214,4010,3747,3497,3232,1120,1385,1635,1898,102,367,613,876,3180,3429,3695,3942,2154,2403,2665,2912,1520,1273,2035,1786,502,255,1013,764,3580,3317,4095,3830,2554,2291,3065,2800,1616,1881,1107,1370,598,863,85,348,3676,3925,3167,3414,2650,2899,2137,2384,1984,1737,1475,1226,966,719,453,204,4044,3781,3535,3270,3018,2755,2505,2240,2240,2505,2755,3018,3270,3535,3781,4044,204,453,719,966,1226,1475,1737,1984,2384,2137,2899,2650,3414,3167,3925,3676,348,85,863,598,1370,1107,1881,1616,2800,3065,2291,2554,3830,4095,3317,3580,764,1013,255,502,1786,2035,1273,1520,2912,2665,2403,2154,3942,3695,3429,3180,876,613,367,102,1898,1635,1385,1120,3232,3497,3747,4010,2214,2479,2725,2988,1196,1445,1711,1958,170,419,681,928,3376,3129,3891,3642,2358,2111,2869,2620,1340,1077,1855,1590,314,51,825,560,3728,3993,3219,3482,2710,2975,2197,2460,1692,1941,1183,1430,666,915,153,400,3840,3593,3331,3082,2822,2575,2309,2060,1804,1541,1295,1030,778,515,265,0]),a=new Int32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,9,8,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,2,10,0,2,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,8,3,2,10,8,10,9,8,-1,-1,-1,-1,-1,-1,-1,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,8,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,11,2,1,9,11,9,8,11,-1,-1,-1,-1,-1,-1,-1,3,10,1,11,10,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,10,1,0,8,10,8,11,10,-1,-1,-1,-1,-1,-1,-1,3,9,0,3,11,9,11,10,9,-1,-1,-1,-1,-1,-1,-1,9,8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,7,3,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,1,9,4,7,1,7,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,4,7,3,0,4,1,2,10,-1,-1,-1,-1,-1,-1,-1,9,2,10,9,0,2,8,4,7,-1,-1,-1,-1,-1,-1,-1,2,10,9,2,9,7,2,7,3,7,9,4,-1,-1,-1,-1,8,4,7,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,4,7,11,2,4,2,0,4,-1,-1,-1,-1,-1,-1,-1,9,0,1,8,4,7,2,3,11,-1,-1,-1,-1,-1,-1,-1,4,7,11,9,4,11,9,11,2,9,2,1,-1,-1,-1,-1,3,10,1,3,11,10,7,8,4,-1,-1,-1,-1,-1,-1,-1,1,11,10,1,4,11,1,0,4,7,11,4,-1,-1,-1,-1,4,7,8,9,0,11,9,11,10,11,0,3,-1,-1,-1,-1,4,7,11,4,11,9,9,11,10,-1,-1,-1,-1,-1,-1,-1,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,5,4,1,5,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,5,4,8,3,5,3,1,5,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,10,4,9,5,-1,-1,-1,-1,-1,-1,-1,5,2,10,5,4,2,4,0,2,-1,-1,-1,-1,-1,-1,-1,2,10,5,3,2,5,3,5,4,3,4,8,-1,-1,-1,-1,9,5,4,2,3,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,0,8,11,4,9,5,-1,-1,-1,-1,-1,-1,-1,0,5,4,0,1,5,2,3,11,-1,-1,-1,-1,-1,-1,-1,2,1,5,2,5,8,2,8,11,4,8,5,-1,-1,-1,-1,10,3,11,10,1,3,9,5,4,-1,-1,-1,-1,-1,-1,-1,4,9,5,0,8,1,8,10,1,8,11,10,-1,-1,-1,-1,5,4,0,5,0,11,5,11,10,11,0,3,-1,-1,-1,-1,5,4,8,5,8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,9,7,8,5,7,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,3,0,9,5,3,5,7,3,-1,-1,-1,-1,-1,-1,-1,0,7,8,0,1,7,1,5,7,-1,-1,-1,-1,-1,-1,-1,1,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,7,8,9,5,7,10,1,2,-1,-1,-1,-1,-1,-1,-1,10,1,2,9,5,0,5,3,0,5,7,3,-1,-1,-1,-1,8,0,2,8,2,5,8,5,7,10,5,2,-1,-1,-1,-1,2,10,5,2,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,7,9,5,7,8,9,3,11,2,-1,-1,-1,-1,-1,-1,-1,9,5,7,9,7,2,9,2,0,2,7,11,-1,-1,-1,-1,2,3,11,0,1,8,1,7,8,1,5,7,-1,-1,-1,-1,11,2,1,11,1,7,7,1,5,-1,-1,-1,-1,-1,-1,-1,9,5,8,8,5,7,10,1,3,10,3,11,-1,-1,-1,-1,5,7,0,5,0,9,7,11,0,1,0,10,11,10,0,-1,11,10,0,11,0,3,10,5,0,8,0,7,5,7,0,-1,11,10,5,7,11,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,6,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,0,1,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,1,9,8,5,10,6,-1,-1,-1,-1,-1,-1,-1,1,6,5,2,6,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,6,5,1,2,6,3,0,8,-1,-1,-1,-1,-1,-1,-1,9,6,5,9,0,6,0,2,6,-1,-1,-1,-1,-1,-1,-1,5,9,8,5,8,2,5,2,6,3,2,8,-1,-1,-1,-1,2,3,11,10,6,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,0,8,11,2,0,10,6,5,-1,-1,-1,-1,-1,-1,-1,0,1,9,2,3,11,5,10,6,-1,-1,-1,-1,-1,-1,-1,5,10,6,1,9,2,9,11,2,9,8,11,-1,-1,-1,-1,6,3,11,6,5,3,5,1,3,-1,-1,-1,-1,-1,-1,-1,0,8,11,0,11,5,0,5,1,5,11,6,-1,-1,-1,-1,3,11,6,0,3,6,0,6,5,0,5,9,-1,-1,-1,-1,6,5,9,6,9,11,11,9,8,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,4,7,3,6,5,10,-1,-1,-1,-1,-1,-1,-1,1,9,0,5,10,6,8,4,7,-1,-1,-1,-1,-1,-1,-1,10,6,5,1,9,7,1,7,3,7,9,4,-1,-1,-1,-1,6,1,2,6,5,1,4,7,8,-1,-1,-1,-1,-1,-1,-1,1,2,5,5,2,6,3,0,4,3,4,7,-1,-1,-1,-1,8,4,7,9,0,5,0,6,5,0,2,6,-1,-1,-1,-1,7,3,9,7,9,4,3,2,9,5,9,6,2,6,9,-1,3,11,2,7,8,4,10,6,5,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,2,4,2,0,2,7,11,-1,-1,-1,-1,0,1,9,4,7,8,2,3,11,5,10,6,-1,-1,-1,-1,9,2,1,9,11,2,9,4,11,7,11,4,5,10,6,-1,8,4,7,3,11,5,3,5,1,5,11,6,-1,-1,-1,-1,5,1,11,5,11,6,1,0,11,7,11,4,0,4,11,-1,0,5,9,0,6,5,0,3,6,11,6,3,8,4,7,-1,6,5,9,6,9,11,4,7,9,7,11,9,-1,-1,-1,-1,10,4,9,6,4,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,10,6,4,9,10,0,8,3,-1,-1,-1,-1,-1,-1,-1,10,0,1,10,6,0,6,4,0,-1,-1,-1,-1,-1,-1,-1,8,3,1,8,1,6,8,6,4,6,1,10,-1,-1,-1,-1,1,4,9,1,2,4,2,6,4,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,9,2,4,9,2,6,4,-1,-1,-1,-1,0,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,3,2,8,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,10,4,9,10,6,4,11,2,3,-1,-1,-1,-1,-1,-1,-1,0,8,2,2,8,11,4,9,10,4,10,6,-1,-1,-1,-1,3,11,2,0,1,6,0,6,4,6,1,10,-1,-1,-1,-1,6,4,1,6,1,10,4,8,1,2,1,11,8,11,1,-1,9,6,4,9,3,6,9,1,3,11,6,3,-1,-1,-1,-1,8,11,1,8,1,0,11,6,1,9,1,4,6,4,1,-1,3,11,6,3,6,0,0,6,4,-1,-1,-1,-1,-1,-1,-1,6,4,8,11,6,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,10,6,7,8,10,8,9,10,-1,-1,-1,-1,-1,-1,-1,0,7,3,0,10,7,0,9,10,6,7,10,-1,-1,-1,-1,10,6,7,1,10,7,1,7,8,1,8,0,-1,-1,-1,-1,10,6,7,10,7,1,1,7,3,-1,-1,-1,-1,-1,-1,-1,1,2,6,1,6,8,1,8,9,8,6,7,-1,-1,-1,-1,2,6,9,2,9,1,6,7,9,0,9,3,7,3,9,-1,7,8,0,7,0,6,6,0,2,-1,-1,-1,-1,-1,-1,-1,7,3,2,6,7,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,11,10,6,8,10,8,9,8,6,7,-1,-1,-1,-1,2,0,7,2,7,11,0,9,7,6,7,10,9,10,7,-1,1,8,0,1,7,8,1,10,7,6,7,10,2,3,11,-1,11,2,1,11,1,7,10,6,1,6,7,1,-1,-1,-1,-1,8,9,6,8,6,7,9,1,6,11,6,3,1,3,6,-1,0,9,1,11,6,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,0,7,0,6,3,11,0,11,6,0,-1,-1,-1,-1,7,11,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,1,9,8,3,1,11,7,6,-1,-1,-1,-1,-1,-1,-1,10,1,2,6,11,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,3,0,8,6,11,7,-1,-1,-1,-1,-1,-1,-1,2,9,0,2,10,9,6,11,7,-1,-1,-1,-1,-1,-1,-1,6,11,7,2,10,3,10,8,3,10,9,8,-1,-1,-1,-1,7,2,3,6,2,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,0,8,7,6,0,6,2,0,-1,-1,-1,-1,-1,-1,-1,2,7,6,2,3,7,0,1,9,-1,-1,-1,-1,-1,-1,-1,1,6,2,1,8,6,1,9,8,8,7,6,-1,-1,-1,-1,10,7,6,10,1,7,1,3,7,-1,-1,-1,-1,-1,-1,-1,10,7,6,1,7,10,1,8,7,1,0,8,-1,-1,-1,-1,0,3,7,0,7,10,0,10,9,6,10,7,-1,-1,-1,-1,7,6,10,7,10,8,8,10,9,-1,-1,-1,-1,-1,-1,-1,6,8,4,11,8,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,6,11,3,0,6,0,4,6,-1,-1,-1,-1,-1,-1,-1,8,6,11,8,4,6,9,0,1,-1,-1,-1,-1,-1,-1,-1,9,4,6,9,6,3,9,3,1,11,3,6,-1,-1,-1,-1,6,8,4,6,11,8,2,10,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,3,0,11,0,6,11,0,4,6,-1,-1,-1,-1,4,11,8,4,6,11,0,2,9,2,10,9,-1,-1,-1,-1,10,9,3,10,3,2,9,4,3,11,3,6,4,6,3,-1,8,2,3,8,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,0,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,4,2,4,6,4,3,8,-1,-1,-1,-1,1,9,4,1,4,2,2,4,6,-1,-1,-1,-1,-1,-1,-1,8,1,3,8,6,1,8,4,6,6,10,1,-1,-1,-1,-1,10,1,0,10,0,6,6,0,4,-1,-1,-1,-1,-1,-1,-1,4,6,3,4,3,8,6,10,3,0,3,9,10,9,3,-1,10,9,4,6,10,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,5,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,5,11,7,6,-1,-1,-1,-1,-1,-1,-1,5,0,1,5,4,0,7,6,11,-1,-1,-1,-1,-1,-1,-1,11,7,6,8,3,4,3,5,4,3,1,5,-1,-1,-1,-1,9,5,4,10,1,2,7,6,11,-1,-1,-1,-1,-1,-1,-1,6,11,7,1,2,10,0,8,3,4,9,5,-1,-1,-1,-1,7,6,11,5,4,10,4,2,10,4,0,2,-1,-1,-1,-1,3,4,8,3,5,4,3,2,5,10,5,2,11,7,6,-1,7,2,3,7,6,2,5,4,9,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,6,0,6,2,6,8,7,-1,-1,-1,-1,3,6,2,3,7,6,1,5,0,5,4,0,-1,-1,-1,-1,6,2,8,6,8,7,2,1,8,4,8,5,1,5,8,-1,9,5,4,10,1,6,1,7,6,1,3,7,-1,-1,-1,-1,1,6,10,1,7,6,1,0,7,8,7,0,9,5,4,-1,4,0,10,4,10,5,0,3,10,6,10,7,3,7,10,-1,7,6,10,7,10,8,5,4,10,4,8,10,-1,-1,-1,-1,6,9,5,6,11,9,11,8,9,-1,-1,-1,-1,-1,-1,-1,3,6,11,0,6,3,0,5,6,0,9,5,-1,-1,-1,-1,0,11,8,0,5,11,0,1,5,5,6,11,-1,-1,-1,-1,6,11,3,6,3,5,5,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,11,9,11,8,11,5,6,-1,-1,-1,-1,0,11,3,0,6,11,0,9,6,5,6,9,1,2,10,-1,11,8,5,11,5,6,8,0,5,10,5,2,0,2,5,-1,6,11,3,6,3,5,2,10,3,10,5,3,-1,-1,-1,-1,5,8,9,5,2,8,5,6,2,3,8,2,-1,-1,-1,-1,9,5,6,9,6,0,0,6,2,-1,-1,-1,-1,-1,-1,-1,1,5,8,1,8,0,5,6,8,3,8,2,6,2,8,-1,1,5,6,2,1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,3,6,1,6,10,3,8,6,5,6,9,8,9,6,-1,10,1,0,10,0,6,9,5,0,5,6,0,-1,-1,-1,-1,0,3,8,5,6,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,7,5,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,11,7,5,8,3,0,-1,-1,-1,-1,-1,-1,-1,5,11,7,5,10,11,1,9,0,-1,-1,-1,-1,-1,-1,-1,10,7,5,10,11,7,9,8,1,8,3,1,-1,-1,-1,-1,11,1,2,11,7,1,7,5,1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,7,1,7,5,7,2,11,-1,-1,-1,-1,9,7,5,9,2,7,9,0,2,2,11,7,-1,-1,-1,-1,7,5,2,7,2,11,5,9,2,3,2,8,9,8,2,-1,2,5,10,2,3,5,3,7,5,-1,-1,-1,-1,-1,-1,-1,8,2,0,8,5,2,8,7,5,10,2,5,-1,-1,-1,-1,9,0,1,5,10,3,5,3,7,3,10,2,-1,-1,-1,-1,9,8,2,9,2,1,8,7,2,10,2,5,7,5,2,-1,1,3,5,3,7,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,7,0,7,1,1,7,5,-1,-1,-1,-1,-1,-1,-1,9,0,3,9,3,5,5,3,7,-1,-1,-1,-1,-1,-1,-1,9,8,7,5,9,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,8,4,5,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,5,0,4,5,11,0,5,10,11,11,3,0,-1,-1,-1,-1,0,1,9,8,4,10,8,10,11,10,4,5,-1,-1,-1,-1,10,11,4,10,4,5,11,3,4,9,4,1,3,1,4,-1,2,5,1,2,8,5,2,11,8,4,5,8,-1,-1,-1,-1,0,4,11,0,11,3,4,5,11,2,11,1,5,1,11,-1,0,2,5,0,5,9,2,11,5,4,5,8,11,8,5,-1,9,4,5,2,11,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,5,10,3,5,2,3,4,5,3,8,4,-1,-1,-1,-1,5,10,2,5,2,4,4,2,0,-1,-1,-1,-1,-1,-1,-1,3,10,2,3,5,10,3,8,5,4,5,8,0,1,9,-1,5,10,2,5,2,4,1,9,2,9,4,2,-1,-1,-1,-1,8,4,5,8,5,3,3,5,1,-1,-1,-1,-1,-1,-1,-1,0,4,5,1,0,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,4,5,8,5,3,9,0,5,0,3,5,-1,-1,-1,-1,9,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,11,7,4,9,11,9,10,11,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,7,9,11,7,9,10,11,-1,-1,-1,-1,1,10,11,1,11,4,1,4,0,7,4,11,-1,-1,-1,-1,3,1,4,3,4,8,1,10,4,7,4,11,10,11,4,-1,4,11,7,9,11,4,9,2,11,9,1,2,-1,-1,-1,-1,9,7,4,9,11,7,9,1,11,2,11,1,0,8,3,-1,11,7,4,11,4,2,2,4,0,-1,-1,-1,-1,-1,-1,-1,11,7,4,11,4,2,8,3,4,3,2,4,-1,-1,-1,-1,2,9,10,2,7,9,2,3,7,7,4,9,-1,-1,-1,-1,9,10,7,9,7,4,10,2,7,8,7,0,2,0,7,-1,3,7,10,3,10,2,7,4,10,1,10,0,4,0,10,-1,1,10,2,8,7,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,7,1,3,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,0,8,1,8,7,1,-1,-1,-1,-1,4,0,3,7,4,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,8,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,11,9,10,-1,-1,-1,-1,-1,-1,-1,0,1,10,0,10,8,8,10,11,-1,-1,-1,-1,-1,-1,-1,3,1,10,11,3,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,11,1,11,9,9,11,8,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,1,2,9,2,11,9,-1,-1,-1,-1,0,2,11,8,0,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,2,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,10,8,9,-1,-1,-1,-1,-1,-1,-1,9,10,2,0,9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,0,1,8,1,10,8,-1,-1,-1,-1,1,10,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,3,8,9,1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,9,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,3,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]);t.MarchingCubes=i,t.edgeTable=s,t.triTable=a},75488:(e,t,n)=>{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=n(85232),s=n(65236),a=class extends i.Mesh{constructor(e,t={}){super(e),this.isReflector=!0,this.type="Reflector",this.camera=new i.PerspectiveCamera;const n=this,r=void 0!==t.color?new i.Color(t.color):new i.Color(8355711),s=t.textureWidth||512,o=t.textureHeight||512,l=t.clipBias||0,c=t.shader||a.ReflectorShader,h=void 0!==t.multisample?t.multisample:4,u=new i.Plane,d=new i.Vector3,p=new i.Vector3,f=new i.Vector3,m=new i.Matrix4,g=new i.Vector3(0,0,-1),A=new i.Vector4,v=new i.Vector3,y=new i.Vector3,x=new i.Vector4,b=new i.Matrix4,E=this.camera,_=new i.WebGLRenderTarget(s,o,{samples:h,type:i.HalfFloatType}),S=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(c.uniforms),fragmentShader:c.fragmentShader,vertexShader:c.vertexShader});S.uniforms.tDiffuse.value=_.texture,S.uniforms.color.value=r,S.uniforms.textureMatrix.value=b,this.material=S,this.onBeforeRender=function(e,t,r){if(p.setFromMatrixPosition(n.matrixWorld),f.setFromMatrixPosition(r.matrixWorld),m.extractRotation(n.matrixWorld),d.set(0,0,1),d.applyMatrix4(m),v.subVectors(p,f),v.dot(d)>0)return;v.reflect(d).negate(),v.add(p),m.extractRotation(r.matrixWorld),g.set(0,0,-1),g.applyMatrix4(m),g.add(f),y.subVectors(p,g),y.reflect(d).negate(),y.add(p),E.position.copy(v),E.up.set(0,1,0),E.up.applyMatrix4(m),E.up.reflect(d),E.lookAt(y),E.far=r.far,E.updateMatrixWorld(),E.projectionMatrix.copy(r.projectionMatrix),b.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),b.multiply(E.projectionMatrix),b.multiply(E.matrixWorldInverse),b.multiply(n.matrixWorld),u.setFromNormalAndCoplanarPoint(d,p),u.applyMatrix4(E.matrixWorldInverse),A.set(u.normal.x,u.normal.y,u.normal.z,u.constant);const s=E.projectionMatrix;x.x=(Math.sign(A.x)+s.elements[8])/s.elements[0],x.y=(Math.sign(A.y)+s.elements[9])/s.elements[5],x.z=-1,x.w=(1+s.elements[10])/s.elements[14],A.multiplyScalar(2/A.dot(x)),s.elements[2]=A.x,s.elements[6]=A.y,s.elements[10]=A.z+1-l,s.elements[14]=A.w,n.visible=!1;const a=e.getRenderTarget(),o=e.xr.enabled,c=e.shadowMap.autoUpdate,h=e.toneMapping;let S=!1;S="outputColorSpace"in e?"srgb"===e.outputColorSpace:3001===e.outputEncoding,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,"outputColorSpace"in e?e.outputColorSpace="linear-srgb":e.outputEncoding=3e3,e.toneMapping=i.NoToneMapping,e.setRenderTarget(_),e.state.buffers.depth.setMask(!0),!1===e.autoClear&&e.clear(),e.render(t,E),e.xr.enabled=o,e.shadowMap.autoUpdate=c,e.toneMapping=h,"outputColorSpace"in e?e.outputColorSpace=S?"srgb":"srgb-linear":e.outputEncoding=S?3001:3e3,e.setRenderTarget(a);const w=r.viewport;void 0!==w&&e.state.viewport(w),n.visible=!0},this.getRenderTarget=function(){return _},this.dispose=function(){_.dispose(),n.material.dispose()}}};let o=a;var l,c,h;l=o,c="ReflectorShader",h={uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:"\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\t#include \n\t\t#include \n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t#include \n\n\t\t}",fragmentShader:`\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\t\tvarying vec4 vUv;\n\n\t\t#include \n\n\t\tfloat blendOverlay( float base, float blend ) {\n\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\n\t\t}\n\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include \n\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\n\t\t\t#include \n\t\t\t#include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n\n\t\t}`},((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(l,"symbol"!=typeof c?c+"":c,h),t.Reflector=o},92664:(e,t,n)=>{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=n(85232),s=class extends i.Mesh{constructor(e,t={}){super(e),this.isReflectorForSSRPass=!0,this.type="ReflectorForSSRPass";const n=this,r=void 0!==t.color?new i.Color(t.color):new i.Color(8355711),a=t.textureWidth||512,o=t.textureHeight||512,l=t.clipBias||0,c=t.shader||s.ReflectorShader,h=!0===t.useDepthTexture,u=new i.Vector3(0,1,0),d=new i.Vector3,p=new i.Vector3;n.needsUpdate=!1,n.maxDistance=s.ReflectorShader.uniforms.maxDistance.value,n.opacity=s.ReflectorShader.uniforms.opacity.value,n.color=r,n.resolution=t.resolution||new i.Vector2(window.innerWidth,window.innerHeight),n._distanceAttenuation=s.ReflectorShader.defines.DISTANCE_ATTENUATION,Object.defineProperty(n,"distanceAttenuation",{get:()=>n._distanceAttenuation,set(e){n._distanceAttenuation!==e&&(n._distanceAttenuation=e,n.material.defines.DISTANCE_ATTENUATION=e,n.material.needsUpdate=!0)}}),n._fresnel=s.ReflectorShader.defines.FRESNEL,Object.defineProperty(n,"fresnel",{get:()=>n._fresnel,set(e){n._fresnel!==e&&(n._fresnel=e,n.material.defines.FRESNEL=e,n.material.needsUpdate=!0)}});const f=new i.Vector3,m=new i.Vector3,g=new i.Vector3,A=new i.Matrix4,v=new i.Vector3(0,0,-1),y=new i.Vector3,x=new i.Vector3,b=new i.Matrix4,E=new i.PerspectiveCamera;let _;h&&(_=new i.DepthTexture,_.type=i.UnsignedShortType,_.minFilter=i.NearestFilter,_.magFilter=i.NearestFilter);const S={depthTexture:h?_:null,type:i.HalfFloatType},w=new i.WebGLRenderTarget(a,o,S),M=new i.ShaderMaterial({transparent:h,defines:Object.assign({},s.ReflectorShader.defines,{useDepthTexture:h}),uniforms:i.UniformsUtils.clone(c.uniforms),fragmentShader:c.fragmentShader,vertexShader:c.vertexShader});M.uniforms.tDiffuse.value=w.texture,M.uniforms.color.value=n.color,M.uniforms.textureMatrix.value=b,h&&(M.uniforms.tDepth.value=w.depthTexture),this.material=M;const C=[new i.Plane(new i.Vector3(0,1,0),l)];this.doRender=function(e,t,r){if(M.uniforms.maxDistance.value=n.maxDistance,M.uniforms.color.value=n.color,M.uniforms.opacity.value=n.opacity,d.copy(r.position).normalize(),p.copy(d).reflect(u),M.uniforms.fresnelCoe.value=(d.dot(p)+1)/2,m.setFromMatrixPosition(n.matrixWorld),g.setFromMatrixPosition(r.matrixWorld),A.extractRotation(n.matrixWorld),f.set(0,0,1),f.applyMatrix4(A),y.subVectors(m,g),y.dot(f)>0)return;y.reflect(f).negate(),y.add(m),A.extractRotation(r.matrixWorld),v.set(0,0,-1),v.applyMatrix4(A),v.add(g),x.subVectors(m,v),x.reflect(f).negate(),x.add(m),E.position.copy(y),E.up.set(0,1,0),E.up.applyMatrix4(A),E.up.reflect(f),E.lookAt(x),E.far=r.far,E.updateMatrixWorld(),E.projectionMatrix.copy(r.projectionMatrix),M.uniforms.virtualCameraNear.value=r.near,M.uniforms.virtualCameraFar.value=r.far,M.uniforms.virtualCameraMatrixWorld.value=E.matrixWorld,M.uniforms.virtualCameraProjectionMatrix.value=r.projectionMatrix,M.uniforms.virtualCameraProjectionMatrixInverse.value=r.projectionMatrixInverse,M.uniforms.resolution.value=n.resolution,b.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),b.multiply(E.projectionMatrix),b.multiply(E.matrixWorldInverse),b.multiply(n.matrixWorld);const i=e.getRenderTarget(),s=e.xr.enabled,a=e.shadowMap.autoUpdate,o=e.clippingPlanes;e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,e.clippingPlanes=C,e.setRenderTarget(w),e.state.buffers.depth.setMask(!0),!1===e.autoClear&&e.clear(),e.render(t,E),e.xr.enabled=s,e.shadowMap.autoUpdate=a,e.clippingPlanes=o,e.setRenderTarget(i);const l=r.viewport;void 0!==l&&e.state.viewport(l)},this.getRenderTarget=function(){return w}}};let a=s;var o,l,c;o=a,l="ReflectorShader",c={defines:{DISTANCE_ATTENUATION:!0,FRESNEL:!0},uniforms:{color:{value:null},tDiffuse:{value:null},tDepth:{value:null},textureMatrix:{value:new i.Matrix4},maxDistance:{value:180},opacity:{value:.5},fresnelCoe:{value:null},virtualCameraNear:{value:null},virtualCameraFar:{value:null},virtualCameraProjectionMatrix:{value:new i.Matrix4},virtualCameraMatrixWorld:{value:new i.Matrix4},virtualCameraProjectionMatrixInverse:{value:new i.Matrix4},resolution:{value:new i.Vector2}},vertexShader:"\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\t\tuniform float maxDistance;\n\t\tuniform float opacity;\n\t\tuniform float fresnelCoe;\n\t\tuniform float virtualCameraNear;\n\t\tuniform float virtualCameraFar;\n\t\tuniform mat4 virtualCameraProjectionMatrix;\n\t\tuniform mat4 virtualCameraProjectionMatrixInverse;\n\t\tuniform mat4 virtualCameraMatrixWorld;\n\t\tuniform vec2 resolution;\n\t\tvarying vec4 vUv;\n\t\t#include \n\t\tfloat blendOverlay( float base, float blend ) {\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\t\t}\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\treturn perspectiveDepthToViewZ( depth, virtualCameraNear, virtualCameraFar );\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( virtualCameraProjectionMatrixInverse * clipPosition ).xyz;//view\n\t\t}\n\t\tvoid main() {\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\t#ifdef useDepthTexture\n\t\t\t\tvec2 uv=(gl_FragCoord.xy-.5)/resolution.xy;\n\t\t\t\tuv.x=1.-uv.x;\n\t\t\t\tfloat depth = texture2DProj( tDepth, vUv ).r;\n\t\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\t\tfloat clipW = virtualCameraProjectionMatrix[2][3] * viewZ+virtualCameraProjectionMatrix[3][3];\n\t\t\t\tvec3 viewPosition=getViewPosition( uv, depth, clipW );\n\t\t\t\tvec3 worldPosition=(virtualCameraMatrixWorld*vec4(viewPosition,1)).xyz;\n\t\t\t\tif(worldPosition.y>maxDistance) discard;\n\t\t\t\tfloat op=opacity;\n\t\t\t\t#ifdef DISTANCE_ATTENUATION\n\t\t\t\t\tfloat ratio=1.-(worldPosition.y/maxDistance);\n\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t#endif\n\t\t\t\t#ifdef FRESNEL\n\t\t\t\t\top*=fresnelCoe;\n\t\t\t\t#endif\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), op );\n\t\t\t#else\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\t\t\t#endif\n\t\t}\n\t"},((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(o,"symbol"!=typeof l?l+"":l,c),t.ReflectorForSSRPass=a},91909:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(75488);class i extends r.Reflector{constructor(e,t){super(e,t),this.geometry.setDrawRange(0,0)}}t.ReflectorRTT=i},86307:(e,t,n)=>{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=n(85232),s=n(65236),a=class extends i.Mesh{constructor(e,t={}){super(e),this.isRefractor=!0,this.type="Refractor",this.camera=new i.PerspectiveCamera;const n=this,r=void 0!==t.color?new i.Color(t.color):new i.Color(8355711),s=t.textureWidth||512,o=t.textureHeight||512,l=t.clipBias||0,c=t.shader||a.RefractorShader,h=void 0!==t.multisample?t.multisample:4,u=this.camera;u.matrixAutoUpdate=!1,u.userData.refractor=!0;const d=new i.Plane,p=new i.Matrix4,f=new i.WebGLRenderTarget(s,o,{samples:h,type:i.HalfFloatType});this.material=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(c.uniforms),vertexShader:c.vertexShader,fragmentShader:c.fragmentShader,transparent:!0}),this.material.uniforms.color.value=r,this.material.uniforms.tDiffuse.value=f.texture,this.material.uniforms.textureMatrix.value=p;const m=function(){const e=new i.Vector3,t=new i.Vector3,r=new i.Matrix4,s=new i.Vector3,a=new i.Vector3;return function(i){return e.setFromMatrixPosition(n.matrixWorld),t.setFromMatrixPosition(i.matrixWorld),s.subVectors(e,t),r.extractRotation(n.matrixWorld),a.set(0,0,1),a.applyMatrix4(r),s.dot(a)<0}}(),g=function(){const e=new i.Vector3,t=new i.Vector3,r=new i.Quaternion,s=new i.Vector3;return function(){n.matrixWorld.decompose(t,r,s),e.set(0,0,1).applyQuaternion(r).normalize(),e.negate(),d.setFromNormalAndCoplanarPoint(e,t)}}(),A=function(){const e=new i.Plane,t=new i.Vector4,n=new i.Vector4;return function(r){u.matrixWorld.copy(r.matrixWorld),u.matrixWorldInverse.copy(u.matrixWorld).invert(),u.projectionMatrix.copy(r.projectionMatrix),u.far=r.far,e.copy(d),e.applyMatrix4(u.matrixWorldInverse),t.set(e.normal.x,e.normal.y,e.normal.z,e.constant);const i=u.projectionMatrix;n.x=(Math.sign(t.x)+i.elements[8])/i.elements[0],n.y=(Math.sign(t.y)+i.elements[9])/i.elements[5],n.z=-1,n.w=(1+i.elements[10])/i.elements[14],t.multiplyScalar(2/t.dot(n)),i.elements[2]=t.x,i.elements[6]=t.y,i.elements[10]=t.z+1-l,i.elements[14]=t.w}}();this.onBeforeRender=function(e,t,r){!0!==r.userData.refractor&&!0!=!m(r)&&(g(),function(e){p.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),p.multiply(e.projectionMatrix),p.multiply(e.matrixWorldInverse),p.multiply(n.matrixWorld)}(r),A(r),function(e,t,r){n.visible=!1;const s=e.getRenderTarget(),a=e.xr.enabled,o=e.shadowMap.autoUpdate,l=e.toneMapping;let c=!1;c="outputColorSpace"in e?"srgb"===e.outputColorSpace:3001===e.outputEncoding,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,"outputColorSpace"in e?e.outputColorSpace="linear-srgb":e.outputEncoding=3e3,e.toneMapping=i.NoToneMapping,e.setRenderTarget(f),!1===e.autoClear&&e.clear(),e.render(t,u),e.xr.enabled=a,e.shadowMap.autoUpdate=o,e.toneMapping=l,e.setRenderTarget(s),"outputColorSpace"in e?e.outputColorSpace=c?"srgb":"srgb-linear":e.outputEncoding=c?3001:3e3;const h=r.viewport;void 0!==h&&e.state.viewport(h),n.visible=!0}(e,t,r))},this.getRenderTarget=function(){return f},this.dispose=function(){f.dispose(),n.material.dispose()}}};let o=a;var l,c,h;l=o,c="RefractorShader",h={uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:"\n\n\t\tuniform mat4 textureMatrix;\n\n\t\tvarying vec4 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:`\n\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec4 vUv;\n\n\t\tfloat blendOverlay( float base, float blend ) {\n\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\n\t\t}\n\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\n\t\t\t#include \n\t\t\t#include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n\n\t\t}`},((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(l,"symbol"!=typeof c?c+"":c,h),t.Refractor=o},16558:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Matrix4;class s extends r.Mesh{constructor(e){const t=new r.MeshBasicMaterial({color:0,transparent:!0,opacity:.6,depthWrite:!1,stencilWrite:!0,stencilFunc:r.EqualStencilFunc,stencilRef:0,stencilZPass:r.IncrementStencilOp});super(e.geometry,t),this.isShadowMesh=!0,this.meshMatrix=e.matrixWorld,this.frustumCulled=!1,this.matrixAutoUpdate=!1}update(e,t){const n=e.normal.x*t.x+e.normal.y*t.y+e.normal.z*t.z+-e.constant*t.w,r=i.elements;r[0]=n-t.x*e.normal.x,r[4]=-t.x*e.normal.y,r[8]=-t.x*e.normal.z,r[12]=-t.x*-e.constant,r[1]=-t.y*e.normal.x,r[5]=n-t.y*e.normal.y,r[9]=-t.y*e.normal.z,r[13]=-t.y*-e.constant,r[2]=-t.z*e.normal.x,r[6]=-t.z*e.normal.y,r[10]=n-t.z*e.normal.z,r[14]=-t.z*-e.constant,r[3]=-t.w*e.normal.x,r[7]=-t.w*e.normal.y,r[11]=-t.w*e.normal.z,r[15]=n-t.w*-e.constant,this.matrix.multiplyMatrices(i,this.meshMatrix)}}t.ShadowMesh=s},79047:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(65236),o={uniforms:{turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new s.Vector3},up:{value:new s.Vector3(0,1,0)}},vertexShader:"\n uniform vec3 sunPosition;\n uniform float rayleigh;\n uniform float turbidity;\n uniform float mieCoefficient;\n uniform vec3 up;\n\n varying vec3 vWorldPosition;\n varying vec3 vSunDirection;\n varying float vSunfade;\n varying vec3 vBetaR;\n varying vec3 vBetaM;\n varying float vSunE;\n\n // constants for atmospheric scattering\n const float e = 2.71828182845904523536028747135266249775724709369995957;\n const float pi = 3.141592653589793238462643383279502884197169;\n\n // wavelength of used primaries, according to preetham\n const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 );\n // this pre-calcuation replaces older TotalRayleigh(vec3 lambda) function:\n // (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn))\n const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 );\n\n // mie stuff\n // K coefficient for the primaries\n const float v = 4.0;\n const vec3 K = vec3( 0.686, 0.678, 0.666 );\n // MieConst = pi * pow( ( 2.0 * pi ) / lambda, vec3( v - 2.0 ) ) * K\n const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 );\n\n // earth shadow hack\n // cutoffAngle = pi / 1.95;\n const float cutoffAngle = 1.6110731556870734;\n const float steepness = 1.5;\n const float EE = 1000.0;\n\n float sunIntensity( float zenithAngleCos ) {\n zenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 );\n return EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) );\n }\n\n vec3 totalMie( float T ) {\n float c = ( 0.2 * T ) * 10E-18;\n return 0.434 * c * MieConst;\n }\n\n void main() {\n\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n gl_Position.z = gl_Position.w; // set z to camera.far\n\n vSunDirection = normalize( sunPosition );\n\n vSunE = sunIntensity( dot( vSunDirection, up ) );\n\n vSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 );\n\n float rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) );\n\n // extinction (absorbtion + out scattering)\n // rayleigh coefficients\n vBetaR = totalRayleigh * rayleighCoefficient;\n\n // mie coefficients\n vBetaM = totalMie( turbidity ) * mieCoefficient;\n\n }\n ",fragmentShader:`\n varying vec3 vWorldPosition;\n varying vec3 vSunDirection;\n varying float vSunfade;\n varying vec3 vBetaR;\n varying vec3 vBetaM;\n varying float vSunE;\n\n uniform float mieDirectionalG;\n uniform vec3 up;\n\n const vec3 cameraPos = vec3( 0.0, 0.0, 0.0 );\n\n // constants for atmospheric scattering\n const float pi = 3.141592653589793238462643383279502884197169;\n\n const float n = 1.0003; // refractive index of air\n const float N = 2.545E25; // number of molecules per unit volume for air at 288.15K and 1013mb (sea level -45 celsius)\n\n // optical length at zenith for molecules\n const float rayleighZenithLength = 8.4E3;\n const float mieZenithLength = 1.25E3;\n // 66 arc seconds -> degrees, and the cosine of that\n const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;\n\n // 3.0 / ( 16.0 * pi )\n const float THREE_OVER_SIXTEENPI = 0.05968310365946075;\n // 1.0 / ( 4.0 * pi )\n const float ONE_OVER_FOURPI = 0.07957747154594767;\n\n float rayleighPhase( float cosTheta ) {\n return THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) );\n }\n\n float hgPhase( float cosTheta, float g ) {\n float g2 = pow( g, 2.0 );\n float inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 );\n return ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse );\n }\n\n void main() {\n\n vec3 direction = normalize( vWorldPosition - cameraPos );\n\n // optical length\n // cutoff angle at 90 to avoid singularity in next formula.\n float zenithAngle = acos( max( 0.0, dot( up, direction ) ) );\n float inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) );\n float sR = rayleighZenithLength * inverse;\n float sM = mieZenithLength * inverse;\n\n // combined extinction factor\n vec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) );\n\n // in scattering\n float cosTheta = dot( direction, vSunDirection );\n\n float rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 );\n vec3 betaRTheta = vBetaR * rPhase;\n\n float mPhase = hgPhase( cosTheta, mieDirectionalG );\n vec3 betaMTheta = vBetaM * mPhase;\n\n vec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) );\n Lin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) );\n\n // nightsky\n float theta = acos( direction.y ); // elevation --\x3e y-axis, [-pi/2, pi/2]\n float phi = atan( direction.z, direction.x ); // azimuth --\x3e x-axis [-pi/2, pi/2]\n vec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 );\n vec3 L0 = vec3( 0.1 ) * Fex;\n\n // composition + solar disc\n float sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta );\n L0 += ( vSunE * 19000.0 * Fex ) * sundisk;\n\n vec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 );\n\n vec3 retColor = pow( texColor, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) );\n\n gl_FragColor = vec4( retColor, 1.0 );\n\n #include \n #include <${a.version>=154?"colorspace_fragment":"encodings_fragment"}>\n\n }\n `},l=new s.ShaderMaterial({name:"SkyShader",fragmentShader:o.fragmentShader,vertexShader:o.vertexShader,uniforms:s.UniformsUtils.clone(o.uniforms),side:s.BackSide,depthWrite:!1});class c extends s.Mesh{constructor(){super(new s.BoxGeometry(1,1,1),l)}}i(c,"SkyShader",o),i(c,"material",l),t.Sky=c},52359:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Mesh{constructor(e,t={}){super(e),this.isWater=!0;const n=this,i=void 0!==t.textureWidth?t.textureWidth:512,s=void 0!==t.textureHeight?t.textureHeight:512,a=void 0!==t.clipBias?t.clipBias:0,o=void 0!==t.alpha?t.alpha:1,l=void 0!==t.time?t.time:0,c=void 0!==t.waterNormals?t.waterNormals:null,h=void 0!==t.sunDirection?t.sunDirection:new r.Vector3(.70707,.70707,0),u=new r.Color(void 0!==t.sunColor?t.sunColor:16777215),d=new r.Color(void 0!==t.waterColor?t.waterColor:8355711),p=void 0!==t.eye?t.eye:new r.Vector3(0,0,0),f=void 0!==t.distortionScale?t.distortionScale:20,m=void 0!==t.side?t.side:r.FrontSide,g=void 0!==t.fog&&t.fog,A=new r.Plane,v=new r.Vector3,y=new r.Vector3,x=new r.Vector3,b=new r.Matrix4,E=new r.Vector3(0,0,-1),_=new r.Vector4,S=new r.Vector3,w=new r.Vector3,M=new r.Vector4,C=new r.Matrix4,T=new r.PerspectiveCamera,I=new r.WebGLRenderTarget(i,s),B={uniforms:r.UniformsUtils.merge([r.UniformsLib.fog,r.UniformsLib.lights,{normalSampler:{value:null},mirrorSampler:{value:null},alpha:{value:1},time:{value:0},size:{value:1},distortionScale:{value:20},textureMatrix:{value:new r.Matrix4},sunColor:{value:new r.Color(8355711)},sunDirection:{value:new r.Vector3(.70707,.70707,0)},eye:{value:new r.Vector3},waterColor:{value:new r.Color(5592405)}}]),vertexShader:"\n\t\t\t\tuniform mat4 textureMatrix;\n\t\t\t\tuniform float time;\n\n\t\t\t\tvarying vec4 mirrorCoord;\n\t\t\t\tvarying vec4 worldPosition;\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\t\t\t\t\tmirrorCoord = modelMatrix * vec4( position, 1.0 );\n\t\t\t\t\tworldPosition = mirrorCoord.xyzw;\n\t\t\t\t\tmirrorCoord = textureMatrix * mirrorCoord;\n\t\t\t\t\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t}",fragmentShader:`\n\t\t\t\tuniform sampler2D mirrorSampler;\n\t\t\t\tuniform float alpha;\n\t\t\t\tuniform float time;\n\t\t\t\tuniform float size;\n\t\t\t\tuniform float distortionScale;\n\t\t\t\tuniform sampler2D normalSampler;\n\t\t\t\tuniform vec3 sunColor;\n\t\t\t\tuniform vec3 sunDirection;\n\t\t\t\tuniform vec3 eye;\n\t\t\t\tuniform vec3 waterColor;\n\n\t\t\t\tvarying vec4 mirrorCoord;\n\t\t\t\tvarying vec4 worldPosition;\n\n\t\t\t\tvec4 getNoise( vec2 uv ) {\n\t\t\t\t\tvec2 uv0 = ( uv / 103.0 ) + vec2(time / 17.0, time / 29.0);\n\t\t\t\t\tvec2 uv1 = uv / 107.0-vec2( time / -19.0, time / 31.0 );\n\t\t\t\t\tvec2 uv2 = uv / vec2( 8907.0, 9803.0 ) + vec2( time / 101.0, time / 97.0 );\n\t\t\t\t\tvec2 uv3 = uv / vec2( 1091.0, 1027.0 ) - vec2( time / 109.0, time / -113.0 );\n\t\t\t\t\tvec4 noise = texture2D( normalSampler, uv0 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv1 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv2 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv3 );\n\t\t\t\t\treturn noise * 0.5 - 1.0;\n\t\t\t\t}\n\n\t\t\t\tvoid sunLight( const vec3 surfaceNormal, const vec3 eyeDirection, float shiny, float spec, float diffuse, inout vec3 diffuseColor, inout vec3 specularColor ) {\n\t\t\t\t\tvec3 reflection = normalize( reflect( -sunDirection, surfaceNormal ) );\n\t\t\t\t\tfloat direction = max( 0.0, dot( eyeDirection, reflection ) );\n\t\t\t\t\tspecularColor += pow( direction, shiny ) * sunColor * spec;\n\t\t\t\t\tdiffuseColor += max( dot( sunDirection, surfaceNormal ), 0.0 ) * sunColor * diffuse;\n\t\t\t\t}\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\t\t\t\t\tvec4 noise = getNoise( worldPosition.xz * size );\n\t\t\t\t\tvec3 surfaceNormal = normalize( noise.xzy * vec3( 1.5, 1.0, 1.5 ) );\n\n\t\t\t\t\tvec3 diffuseLight = vec3(0.0);\n\t\t\t\t\tvec3 specularLight = vec3(0.0);\n\n\t\t\t\t\tvec3 worldToEye = eye-worldPosition.xyz;\n\t\t\t\t\tvec3 eyeDirection = normalize( worldToEye );\n\t\t\t\t\tsunLight( surfaceNormal, eyeDirection, 100.0, 2.0, 0.5, diffuseLight, specularLight );\n\n\t\t\t\t\tfloat distance = length(worldToEye);\n\n\t\t\t\t\tvec2 distortion = surfaceNormal.xz * ( 0.001 + 1.0 / distance ) * distortionScale;\n\t\t\t\t\tvec3 reflectionSample = vec3( texture2D( mirrorSampler, mirrorCoord.xy / mirrorCoord.w + distortion ) );\n\n\t\t\t\t\tfloat theta = max( dot( eyeDirection, surfaceNormal ), 0.0 );\n\t\t\t\t\tfloat rf0 = 0.3;\n\t\t\t\t\tfloat reflectance = rf0 + ( 1.0 - rf0 ) * pow( ( 1.0 - theta ), 5.0 );\n\t\t\t\t\tvec3 scatter = max( 0.0, dot( surfaceNormal, eyeDirection ) ) * waterColor;\n\t\t\t\t\tvec3 albedo = mix( ( sunColor * diffuseLight * 0.3 + scatter ) * getShadowMask(), ( vec3( 0.1 ) + reflectionSample * 0.9 + reflectionSample * specularLight ), reflectance);\n\t\t\t\t\tvec3 outgoingLight = albedo;\n\t\t\t\t\tgl_FragColor = vec4( outgoingLight, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include <${parseInt(r.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n\t\t\t\t\t#include \t\n\t\t\t\t}`},R=new r.ShaderMaterial({fragmentShader:B.fragmentShader,vertexShader:B.vertexShader,uniforms:r.UniformsUtils.clone(B.uniforms),lights:!0,side:m,fog:g});R.uniforms.mirrorSampler.value=I.texture,R.uniforms.textureMatrix.value=C,R.uniforms.alpha.value=o,R.uniforms.time.value=l,R.uniforms.normalSampler.value=c,R.uniforms.sunColor.value=u,R.uniforms.waterColor.value=d,R.uniforms.sunDirection.value=h,R.uniforms.distortionScale.value=f,R.uniforms.eye.value=p,n.material=R,n.onBeforeRender=function(e,t,r){if(y.setFromMatrixPosition(n.matrixWorld),x.setFromMatrixPosition(r.matrixWorld),b.extractRotation(n.matrixWorld),v.set(0,0,1),v.applyMatrix4(b),S.subVectors(y,x),S.dot(v)>0)return;S.reflect(v).negate(),S.add(y),b.extractRotation(r.matrixWorld),E.set(0,0,-1),E.applyMatrix4(b),E.add(x),w.subVectors(y,E),w.reflect(v).negate(),w.add(y),T.position.copy(S),T.up.set(0,1,0),T.up.applyMatrix4(b),T.up.reflect(v),T.lookAt(w),T.far=r.far,T.updateMatrixWorld(),T.projectionMatrix.copy(r.projectionMatrix),C.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),C.multiply(T.projectionMatrix),C.multiply(T.matrixWorldInverse),A.setFromNormalAndCoplanarPoint(v,y),A.applyMatrix4(T.matrixWorldInverse),_.set(A.normal.x,A.normal.y,A.normal.z,A.constant);const i=T.projectionMatrix;M.x=(Math.sign(_.x)+i.elements[8])/i.elements[0],M.y=(Math.sign(_.y)+i.elements[9])/i.elements[5],M.z=-1,M.w=(1+i.elements[10])/i.elements[14],_.multiplyScalar(2/_.dot(M)),i.elements[2]=_.x,i.elements[6]=_.y,i.elements[10]=_.z+1-a,i.elements[14]=_.w,p.setFromMatrixPosition(r.matrixWorld);const s=e.getRenderTarget(),o=e.xr.enabled,l=e.shadowMap.autoUpdate;n.visible=!1,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,e.setRenderTarget(I),e.state.buffers.depth.setMask(!0),!1===e.autoClear&&e.clear(),e.render(t,T),n.visible=!0,e.xr.enabled=o,e.shadowMap.autoUpdate=l,e.setRenderTarget(s);const c=r.viewport;void 0!==c&&e.state.viewport(c)}}}t.Water=i},95034:(e,t,n)=>{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=n(85232),s=n(75488),a=n(86307),o=n(65236),l=class extends i.Mesh{constructor(e,t={}){super(e),this.isWater=!0,this.type="Water";const n=this,r=void 0!==t.color?new i.Color(t.color):new i.Color(16777215),o=t.textureWidth||512,c=t.textureHeight||512,h=t.clipBias||0,u=t.flowDirection||new i.Vector2(1,0),d=t.flowSpeed||.03,p=t.reflectivity||.02,f=t.scale||1,m=t.shader||l.WaterShader,g=void 0!==t.encoding?t.encoding:3e3,A=t.flowMap||void 0,v=t.normalMap0,y=t.normalMap1,x=.15,b=.075,E=new i.Matrix4,_=new i.Clock;if(void 0===s.Reflector)return void console.error("THREE.Water: Required component Reflector not found.");if(void 0===a.Refractor)return void console.error("THREE.Water: Required component Refractor not found.");const S=new s.Reflector(e,{textureWidth:o,textureHeight:c,clipBias:h,encoding:g}),w=new a.Refractor(e,{textureWidth:o,textureHeight:c,clipBias:h,encoding:g});S.matrixAutoUpdate=!1,w.matrixAutoUpdate=!1,this.material=new i.ShaderMaterial({uniforms:i.UniformsUtils.merge([i.UniformsLib.fog,m.uniforms]),vertexShader:m.vertexShader,fragmentShader:m.fragmentShader,transparent:!0,fog:!0}),void 0!==A?(this.material.defines.USE_FLOWMAP="",this.material.uniforms.tFlowMap={type:"t",value:A}):this.material.uniforms.flowDirection={type:"v2",value:u},v.wrapS=v.wrapT=i.RepeatWrapping,y.wrapS=y.wrapT=i.RepeatWrapping,this.material.uniforms.tReflectionMap.value=S.getRenderTarget().texture,this.material.uniforms.tRefractionMap.value=w.getRenderTarget().texture,this.material.uniforms.tNormalMap0.value=v,this.material.uniforms.tNormalMap1.value=y,this.material.uniforms.color.value=r,this.material.uniforms.reflectivity.value=p,this.material.uniforms.textureMatrix.value=E,this.material.uniforms.config.value.x=0,this.material.uniforms.config.value.y=b,this.material.uniforms.config.value.z=b,this.material.uniforms.config.value.w=f,this.onBeforeRender=function(e,t,r){!function(e){E.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),E.multiply(e.projectionMatrix),E.multiply(e.matrixWorldInverse),E.multiply(n.matrixWorld)}(r),function(){const e=_.getDelta(),t=n.material.uniforms.config;t.value.x+=d*e,t.value.y=t.value.x+b,t.value.x>=x?(t.value.x=0,t.value.y=b):t.value.y>=x&&(t.value.y=t.value.y-x)}(),n.visible=!1,S.matrixWorld.copy(n.matrixWorld),w.matrixWorld.copy(n.matrixWorld),S.onBeforeRender(e,t,r),w.onBeforeRender(e,t,r),n.visible=!0}}};let c=l;var h,u,d;h=c,u="WaterShader",d={uniforms:{color:{value:null},reflectivity:{value:0},tReflectionMap:{value:null},tRefractionMap:{value:null},tNormalMap0:{value:null},tNormalMap1:{value:null},textureMatrix:{value:null},config:{value:new i.Vector4}},vertexShader:"\n\n\t\t#include \n\t\t#include \n\t\t#include \n\n\t\tuniform mat4 textureMatrix;\n\n\t\tvarying vec4 vCoord;\n\t\tvarying vec2 vUv;\n\t\tvarying vec3 vToEye;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tvCoord = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\t\t\tvToEye = cameraPosition - worldPosition.xyz;\n\n\t\t\tvec4 mvPosition = viewMatrix * worldPosition; // used in fog_vertex\n\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t#include \n\t\t\t#include \n\n\t\t}",fragmentShader:`\n\n\t\t#include \n\t\t#include \n\t\t#include \n\n\t\tuniform sampler2D tReflectionMap;\n\t\tuniform sampler2D tRefractionMap;\n\t\tuniform sampler2D tNormalMap0;\n\t\tuniform sampler2D tNormalMap1;\n\n\t\t#ifdef USE_FLOWMAP\n\t\t\tuniform sampler2D tFlowMap;\n\t\t#else\n\t\t\tuniform vec2 flowDirection;\n\t\t#endif\n\n\t\tuniform vec3 color;\n\t\tuniform float reflectivity;\n\t\tuniform vec4 config;\n\n\t\tvarying vec4 vCoord;\n\t\tvarying vec2 vUv;\n\t\tvarying vec3 vToEye;\n\n\t\tvoid main() {\n\n\t\t\t#include \n\n\t\t\tfloat flowMapOffset0 = config.x;\n\t\t\tfloat flowMapOffset1 = config.y;\n\t\t\tfloat halfCycle = config.z;\n\t\t\tfloat scale = config.w;\n\n\t\t\tvec3 toEye = normalize( vToEye );\n\n\t\t\t// determine flow direction\n\t\t\tvec2 flow;\n\t\t\t#ifdef USE_FLOWMAP\n\t\t\t\tflow = texture2D( tFlowMap, vUv ).rg * 2.0 - 1.0;\n\t\t\t#else\n\t\t\t\tflow = flowDirection;\n\t\t\t#endif\n\t\t\tflow.x *= - 1.0;\n\n\t\t\t// sample normal maps (distort uvs with flowdata)\n\t\t\tvec4 normalColor0 = texture2D( tNormalMap0, ( vUv * scale ) + flow * flowMapOffset0 );\n\t\t\tvec4 normalColor1 = texture2D( tNormalMap1, ( vUv * scale ) + flow * flowMapOffset1 );\n\n\t\t\t// linear interpolate to get the final normal color\n\t\t\tfloat flowLerp = abs( halfCycle - flowMapOffset0 ) / halfCycle;\n\t\t\tvec4 normalColor = mix( normalColor0, normalColor1, flowLerp );\n\n\t\t\t// calculate normal vector\n\t\t\tvec3 normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n\n\t\t\t// calculate the fresnel term to blend reflection and refraction maps\n\t\t\tfloat theta = max( dot( toEye, normal ), 0.0 );\n\t\t\tfloat reflectance = reflectivity + ( 1.0 - reflectivity ) * pow( ( 1.0 - theta ), 5.0 );\n\n\t\t\t// calculate final uv coords\n\t\t\tvec3 coord = vCoord.xyz / vCoord.w;\n\t\t\tvec2 uv = coord.xy + coord.z * normal.xz * 0.05;\n\n\t\t\tvec4 reflectColor = texture2D( tReflectionMap, vec2( 1.0 - uv.x, uv.y ) );\n\t\t\tvec4 refractColor = texture2D( tRefractionMap, uv );\n\n\t\t\t// multiply water color with the mix of both textures\n\t\t\tgl_FragColor = vec4( color, 1.0 ) * mix( refractColor, reflectColor, reflectance );\n\n\t\t\t#include \n\t\t\t#include <${o.version>=154?"colorspace_fragment":"encodings_fragment"}>\n\t\t\t#include \n\n\t\t}`},((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(h,"symbol"!=typeof u?u+"":u,d),t.Water2=c},49693:(e,t)=>{"use strict";function n(e,t,n,r){const i=t.x(),s=t.y(),a=t.z(),o=t.w(),l=i+i,c=s+s,h=a+a,u=i*l,d=i*c,p=i*h,f=s*c,m=s*h,g=a*h,A=o*l,v=o*c,y=o*h;n[r+0]=1-(f+g),n[r+1]=d+y,n[r+2]=p-v,n[r+3]=0,n[r+4]=d-y,n[r+5]=1-(u+g),n[r+6]=m+A,n[r+7]=0,n[r+8]=p+v,n[r+9]=m-A,n[r+10]=1-(u+f),n[r+11]=0,n[r+12]=e.x(),n[r+13]=e.y(),n[r+14]=e.z(),n[r+15]=1}Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.AmmoPhysics=async function(){if("Ammo"in window==!1)return void console.error("AmmoPhysics: Couldn't find Ammo.js");const e=await Ammo(),t=new e.btDefaultCollisionConfiguration,r=new e.btCollisionDispatcher(t),i=new e.btDbvtBroadphase,s=new e.btSequentialImpulseConstraintSolver,a=new e.btDiscreteDynamicsWorld(r,i,s,t);a.setGravity(new e.btVector3(0,-9.8,0));const o=new e.btTransform,l=[],c=new WeakMap;let h=0;return setInterval((function(){const e=performance.now();if(h>0){const t=(e-h)/1e3;a.stepSimulation(t,10)}h=e;for(let t=0,r=l.length;t0&&(t.instanceMatrix.setUsage(35048),l.push(t),c.set(t,s))}(t,n,r):t.isMesh&&function(t,n,r){const i=t.position,s=t.quaternion,o=new e.btTransform;o.setIdentity(),o.setOrigin(new e.btVector3(i.x,i.y,i.z)),o.setRotation(new e.btQuaternion(s.x,s.y,s.z,s.w));const h=new e.btDefaultMotionState(o),u=new e.btVector3(0,0,0);r.calculateLocalInertia(n,u);const d=new e.btRigidBodyConstructionInfo(n,h,r,u),p=new e.btRigidBody(d);a.addRigidBody(p),n>0&&(l.push(t),c.set(t,p))}(t,n,r))},setMeshPosition:function(t,n,r=0){if(t.isInstancedMesh){const i=c.get(t)[r];i.setAngularVelocity(new e.btVector3(0,0,0)),i.setLinearVelocity(new e.btVector3(0,0,0)),o.setIdentity(),o.setOrigin(new e.btVector3(n.x,n.y,n.z)),i.setWorldTransform(o)}else if(t.isMesh){const r=c.get(t);r.setAngularVelocity(new e.btVector3(0,0,0)),r.setLinearVelocity(new e.btVector3(0,0,0)),o.setIdentity(),o.setOrigin(new e.btVector3(n.x,n.y,n.z)),r.setWorldTransform(o)}}}}},69265:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(49190),s=n(83453),a=n(48123),o=n(51867);class l extends i.Pass{constructor(e,t){super(),this.resolution=void 0!==t?t:256,this.needsInit=!0,this.adaptive=void 0===e||!!e,this.luminanceRT=null,this.previousLuminanceRT=null,this.currentLuminanceRT=null;const n=s.CopyShader;this.copyUniforms=r.UniformsUtils.clone(n.uniforms),this.materialCopy=new r.ShaderMaterial({uniforms:this.copyUniforms,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,blending:r.NoBlending,depthTest:!1}),this.materialLuminance=new r.ShaderMaterial({uniforms:r.UniformsUtils.clone(a.LuminosityShader.uniforms),vertexShader:a.LuminosityShader.vertexShader,fragmentShader:a.LuminosityShader.fragmentShader,blending:r.NoBlending}),this.adaptLuminanceShader={defines:{MIP_LEVEL_1X1:(Math.log(this.resolution)/Math.log(2)).toFixed(1)},uniforms:{lastLum:{value:null},currentLum:{value:null},minLuminance:{value:.01},delta:{value:.016},tau:{value:1}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D lastLum;\n\t\t\t\tuniform sampler2D currentLum;\n\t\t\t\tuniform float minLuminance;\n\t\t\t\tuniform float delta;\n\t\t\t\tuniform float tau;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec4 lastLum = texture2D( lastLum, vUv, MIP_LEVEL_1X1 );\n\t\t\t\t\tvec4 currentLum = texture2D( currentLum, vUv, MIP_LEVEL_1X1 );\n\n\t\t\t\t\tfloat fLastLum = max( minLuminance, lastLum.r );\n\t\t\t\t\tfloat fCurrentLum = max( minLuminance, currentLum.r );\n\n\t\t\t\t\t//The adaption seems to work better in extreme lighting differences\n\t\t\t\t\t//if the input luminance is squared.\n\t\t\t\t\tfCurrentLum *= fCurrentLum;\n\n\t\t\t\t\t// Adapt the luminance using Pattanaik's technique\n\t\t\t\t\tfloat fAdaptedLum = fLastLum + (fCurrentLum - fLastLum) * (1.0 - exp(-delta * tau));\n\t\t\t\t\t// \"fAdaptedLum = sqrt(fAdaptedLum);\n\t\t\t\t\tgl_FragColor.r = fAdaptedLum;\n\t\t\t\t}"},this.materialAdaptiveLum=new r.ShaderMaterial({uniforms:r.UniformsUtils.clone(this.adaptLuminanceShader.uniforms),vertexShader:this.adaptLuminanceShader.vertexShader,fragmentShader:this.adaptLuminanceShader.fragmentShader,defines:Object.assign({},this.adaptLuminanceShader.defines),blending:r.NoBlending}),this.materialToneMap=new r.ShaderMaterial({uniforms:r.UniformsUtils.clone(o.ToneMapShader.uniforms),vertexShader:o.ToneMapShader.vertexShader,fragmentShader:o.ToneMapShader.fragmentShader,blending:r.NoBlending}),this.fsQuad=new i.FullScreenQuad(null)}render(e,t,n,r){this.needsInit&&(this.reset(e),this.luminanceRT.texture.type=n.texture.type,this.previousLuminanceRT.texture.type=n.texture.type,this.currentLuminanceRT.texture.type=n.texture.type,this.needsInit=!1),this.adaptive&&(this.fsQuad.material=this.materialLuminance,this.materialLuminance.uniforms.tDiffuse.value=n.texture,e.setRenderTarget(this.currentLuminanceRT),this.fsQuad.render(e),this.fsQuad.material=this.materialAdaptiveLum,this.materialAdaptiveLum.uniforms.delta.value=r,this.materialAdaptiveLum.uniforms.lastLum.value=this.previousLuminanceRT.texture,this.materialAdaptiveLum.uniforms.currentLum.value=this.currentLuminanceRT.texture,e.setRenderTarget(this.luminanceRT),this.fsQuad.render(e),this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.luminanceRT.texture,e.setRenderTarget(this.previousLuminanceRT),this.fsQuad.render(e)),this.fsQuad.material=this.materialToneMap,this.materialToneMap.uniforms.tDiffuse.value=n.texture,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}reset(){this.luminanceRT&&this.luminanceRT.dispose(),this.currentLuminanceRT&&this.currentLuminanceRT.dispose(),this.previousLuminanceRT&&this.previousLuminanceRT.dispose(),this.luminanceRT=new r.WebGLRenderTarget(this.resolution,this.resolution),this.luminanceRT.texture.name="AdaptiveToneMappingPass.l",this.luminanceRT.texture.generateMipmaps=!1,this.previousLuminanceRT=new r.WebGLRenderTarget(this.resolution,this.resolution),this.previousLuminanceRT.texture.name="AdaptiveToneMappingPass.pl",this.previousLuminanceRT.texture.generateMipmaps=!1;const e={minFilter:r.LinearMipmapLinearFilter,generateMipmaps:!0};this.currentLuminanceRT=new r.WebGLRenderTarget(this.resolution,this.resolution,e),this.currentLuminanceRT.texture.name="AdaptiveToneMappingPass.cl",this.adaptive&&(this.materialToneMap.defines.ADAPTED_LUMINANCE="",this.materialToneMap.uniforms.luminanceMap.value=this.luminanceRT.texture),this.fsQuad.material=new r.MeshBasicMaterial({color:7829367}),this.materialLuminance.needsUpdate=!0,this.materialAdaptiveLum.needsUpdate=!0,this.materialToneMap.needsUpdate=!0}setAdaptive(e){e?(this.adaptive=!0,this.materialToneMap.defines.ADAPTED_LUMINANCE="",this.materialToneMap.uniforms.luminanceMap.value=this.luminanceRT.texture):(this.adaptive=!1,delete this.materialToneMap.defines.ADAPTED_LUMINANCE,this.materialToneMap.uniforms.luminanceMap.value=null),this.materialToneMap.needsUpdate=!0}setAdaptionRate(e){e&&(this.materialAdaptiveLum.uniforms.tau.value=Math.abs(e))}setMinLuminance(e){e&&(this.materialToneMap.uniforms.minLuminance.value=e,this.materialAdaptiveLum.uniforms.minLuminance.value=e)}setMaxLuminance(e){e&&(this.materialToneMap.uniforms.maxLuminance.value=e)}setAverageLuminance(e){e&&(this.materialToneMap.uniforms.averageLuminance.value=e)}setMiddleGrey(e){e&&(this.materialToneMap.uniforms.middleGrey.value=e)}dispose(){this.luminanceRT&&this.luminanceRT.dispose(),this.previousLuminanceRT&&this.previousLuminanceRT.dispose(),this.currentLuminanceRT&&this.currentLuminanceRT.dispose(),this.materialLuminance&&this.materialLuminance.dispose(),this.materialAdaptiveLum&&this.materialAdaptiveLum.dispose(),this.materialCopy&&this.materialCopy.dispose(),this.materialToneMap&&this.materialToneMap.dispose()}}t.AdaptiveToneMappingPass=l},23918:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(49190),o=n(70382);class l extends a.Pass{constructor(e=.96,t=o.AfterimageShader){super(),i(this,"shader"),i(this,"uniforms"),i(this,"textureComp"),i(this,"textureOld"),i(this,"shaderMaterial"),i(this,"compFsQuad"),i(this,"copyFsQuad"),this.shader=t,this.uniforms=s.UniformsUtils.clone(t.uniforms),this.uniforms.damp.value=e,this.textureComp=new s.WebGLRenderTarget(window.innerWidth,window.innerHeight,{minFilter:s.LinearFilter,magFilter:s.NearestFilter,format:s.RGBAFormat}),this.textureOld=new s.WebGLRenderTarget(window.innerWidth,window.innerHeight,{minFilter:s.LinearFilter,magFilter:s.NearestFilter,format:s.RGBAFormat}),this.shaderMaterial=new s.ShaderMaterial({uniforms:this.uniforms,vertexShader:this.shader.vertexShader,fragmentShader:this.shader.fragmentShader}),this.compFsQuad=new a.FullScreenQuad(this.shaderMaterial);let n=new s.MeshBasicMaterial;this.copyFsQuad=new a.FullScreenQuad(n)}render(e,t,n){this.uniforms.tOld.value=this.textureOld.texture,this.uniforms.tNew.value=n.texture,e.setRenderTarget(this.textureComp),this.compFsQuad.render(e),this.copyFsQuad.material.map=this.textureComp.texture,this.renderToScreen?(e.setRenderTarget(null),this.copyFsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.copyFsQuad.render(e));let r=this.textureOld;this.textureOld=this.textureComp,this.textureComp=r}setSize(e,t){this.textureComp.setSize(e,t),this.textureOld.setSize(e,t)}}t.AfterimagePass=l},62788:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190),a=n(85232),o=n(59564);class l extends s.Pass{constructor(e=1,t=25,n=4,r=256){super(),i(this,"renderTargetX"),i(this,"renderTargetY"),i(this,"materialCombine"),i(this,"materialConvolution"),i(this,"fsQuad"),i(this,"combineUniforms"),i(this,"convolutionUniforms"),i(this,"blurX",new a.Vector2(.001953125,0)),i(this,"blurY",new a.Vector2(0,.001953125)),this.renderTargetX=new a.WebGLRenderTarget(r,r),this.renderTargetX.texture.name="BloomPass.x",this.renderTargetY=new a.WebGLRenderTarget(r,r),this.renderTargetY.texture.name="BloomPass.y",this.combineUniforms=a.UniformsUtils.clone(c.uniforms),this.combineUniforms.strength.value=e,this.materialCombine=new a.ShaderMaterial({uniforms:this.combineUniforms,vertexShader:c.vertexShader,fragmentShader:c.fragmentShader,blending:a.AdditiveBlending,transparent:!0}),void 0===o.ConvolutionShader&&console.error("BloomPass relies on ConvolutionShader");const l=o.ConvolutionShader;this.convolutionUniforms=a.UniformsUtils.clone(l.uniforms),this.convolutionUniforms.uImageIncrement.value=this.blurX,this.convolutionUniforms.cKernel.value=o.ConvolutionShader.buildKernel(n),this.materialConvolution=new a.ShaderMaterial({uniforms:this.convolutionUniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader,defines:{KERNEL_SIZE_FLOAT:t.toFixed(1),KERNEL_SIZE_INT:t.toFixed(0)}}),this.needsSwap=!1,this.fsQuad=new s.FullScreenQuad(this.materialConvolution)}render(e,t,n,r,i){i&&e.state.buffers.stencil.setTest(!1),this.fsQuad.material=this.materialConvolution,this.convolutionUniforms.tDiffuse.value=n.texture,this.convolutionUniforms.uImageIncrement.value=this.blurX,e.setRenderTarget(this.renderTargetX),e.clear(),this.fsQuad.render(e),this.convolutionUniforms.tDiffuse.value=this.renderTargetX.texture,this.convolutionUniforms.uImageIncrement.value=this.blurY,e.setRenderTarget(this.renderTargetY),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.materialCombine,this.combineUniforms.tDiffuse.value=this.renderTargetY.texture,i&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(n),this.clear&&e.clear(),this.fsQuad.render(e)}}const c={uniforms:{tDiffuse:{value:null},strength:{value:1}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform float strength;\n uniform sampler2D tDiffuse;\n varying vec2 vUv;\n void main() {\n vec4 texel = texture2D( tDiffuse, vUv );\n gl_FragColor = strength * texel;\n }"};t.BloomPass=l},98263:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190),a=n(85232),o=n(73500);class l extends s.Pass{constructor(e,t,n){super(),i(this,"scene"),i(this,"camera"),i(this,"renderTargetDepth"),i(this,"materialDepth"),i(this,"materialBokeh"),i(this,"fsQuad"),i(this,"_oldClearColor"),i(this,"uniforms"),this.scene=e,this.camera=t;const r=void 0!==n.focus?n.focus:1,l=void 0!==n.aspect?n.aspect:t.aspect,c=void 0!==n.aperture?n.aperture:.025,h=void 0!==n.maxblur?n.maxblur:1,u=n.width||window.innerWidth||1,d=n.height||window.innerHeight||1;this.renderTargetDepth=new a.WebGLRenderTarget(u,d,{minFilter:a.NearestFilter,magFilter:a.NearestFilter}),this.renderTargetDepth.texture.name="BokehPass.depth",this.materialDepth=new a.MeshDepthMaterial,this.materialDepth.depthPacking=a.RGBADepthPacking,this.materialDepth.blending=a.NoBlending,void 0===o.BokehShader&&console.error("BokehPass relies on BokehShader");const p=o.BokehShader,f=a.UniformsUtils.clone(p.uniforms);f.tDepth.value=this.renderTargetDepth.texture,f.focus.value=r,f.aspect.value=l,f.aperture.value=c,f.maxblur.value=h,f.nearClip.value=t.near,f.farClip.value=t.far,this.materialBokeh=new a.ShaderMaterial({defines:Object.assign({},p.defines),uniforms:f,vertexShader:p.vertexShader,fragmentShader:p.fragmentShader}),this.uniforms=f,this.needsSwap=!1,this.fsQuad=new s.FullScreenQuad(this.materialBokeh),this._oldClearColor=new a.Color}render(e,t,n){this.scene.overrideMaterial=this.materialDepth,e.getClearColor(this._oldClearColor);const r=e.getClearAlpha(),i=e.autoClear;e.autoClear=!1,e.setClearColor(16777215),e.setClearAlpha(1),e.setRenderTarget(this.renderTargetDepth),e.clear(),e.render(this.scene,this.camera),this.uniforms.tColor.value=n.texture,this.uniforms.nearClip.value=this.camera.near,this.uniforms.farClip.value=this.camera.far,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),e.clear(),this.fsQuad.render(e)),this.scene.overrideMaterial=null,e.setClearColor(this._oldClearColor),e.setClearAlpha(r),e.autoClear=i}}t.BokehPass=l},51761:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190),a=n(85232);class o extends s.Pass{constructor(e,t){super(),i(this,"clearColor"),i(this,"clearAlpha"),i(this,"_oldClearColor"),this.needsSwap=!1,this.clearColor=void 0!==e?e:0,this.clearAlpha=void 0!==t?t:0,this._oldClearColor=new a.Color}render(e,t,n){let r;this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),e.setRenderTarget(this.renderToScreen?null:n),e.clear(),this.clearColor&&e.setClearColor(this._oldClearColor,r)}}t.ClearPass=o},72449:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(49190);class s extends i.Pass{constructor(e,t,n=1){super(),this.camera=e,this.needsSwap=!1,this.cubeShader=r.ShaderLib.cube,this.cubeMesh=new r.Mesh(new r.BoxGeometry(10,10,10),new r.ShaderMaterial({uniforms:r.UniformsUtils.clone(this.cubeShader.uniforms),vertexShader:this.cubeShader.vertexShader,fragmentShader:this.cubeShader.fragmentShader,depthTest:!1,depthWrite:!1,side:r.BackSide})),Object.defineProperty(this.cubeMesh.material,"envMap",{get:function(){return this.uniforms.tCube.value}}),this.tCube=t,this.opacity=n,this.cubeScene=new r.Scene,this.cubeCamera=new r.PerspectiveCamera,this.cubeScene.add(this.cubeMesh)}render(e,t,n){const r=e.autoClear;e.autoClear=!1,this.cubeCamera.projectionMatrix.copy(this.camera.projectionMatrix),this.cubeCamera.quaternion.setFromRotationMatrix(this.camera.matrixWorld),this.cubeMesh.material.uniforms.tCube.value=this.tCube,this.cubeMesh.material.uniforms.tFlip.value=this.tCube.isCubeTexture&&!1===this.tCube.isRenderTargetTexture?-1:1,this.cubeMesh.material.uniforms.opacity.value=this.opacity,this.cubeMesh.material.transparent=this.opacity<1,e.setRenderTarget(this.renderToScreen?null:n),this.clear&&e.clear(),e.render(this.cubeScene,this.cubeCamera),e.autoClear=r}dispose(){this.cubeMesh.geometry.dispose(),this.cubeMesh.material.dispose()}}t.CubeTexturePass=s},17214:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190),a=n(85232),o=n(15479);class l extends s.Pass{constructor(e,t,n){super(),i(this,"material"),i(this,"fsQuad"),i(this,"uniforms"),void 0===o.DotScreenShader&&console.error("THREE.DotScreenPass relies on THREE.DotScreenShader");const r=o.DotScreenShader;this.uniforms=a.UniformsUtils.clone(r.uniforms),void 0!==e&&this.uniforms.center.value.copy(e),void 0!==t&&(this.uniforms.angle.value=t),void 0!==n&&(this.uniforms.scale.value=n),this.material=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:r.vertexShader,fragmentShader:r.fragmentShader}),this.fsQuad=new s.FullScreenQuad(this.material)}render(e,t,n){this.uniforms.tDiffuse.value=n.texture,this.uniforms.tSize.value.set(n.width,n.height),this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}}t.DotScreenPass=l},1258:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(83453),o=n(18921),l=n(81362);t.EffectComposer=class{constructor(e,t){if(i(this,"renderer"),i(this,"_pixelRatio"),i(this,"_width"),i(this,"_height"),i(this,"renderTarget1"),i(this,"renderTarget2"),i(this,"writeBuffer"),i(this,"readBuffer"),i(this,"renderToScreen"),i(this,"passes",[]),i(this,"copyPass"),i(this,"clock"),this.renderer=e,void 0===t){const n={minFilter:s.LinearFilter,magFilter:s.LinearFilter,format:s.RGBAFormat},r=e.getSize(new s.Vector2);this._pixelRatio=e.getPixelRatio(),this._width=r.width,this._height=r.height,(t=new s.WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio,n)).texture.name="EffectComposer.rt1"}else this._pixelRatio=1,this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,void 0===a.CopyShader&&console.error("THREE.EffectComposer relies on CopyShader"),void 0===o.ShaderPass&&console.error("THREE.EffectComposer relies on ShaderPass"),this.copyPass=new o.ShaderPass(a.CopyShader),this.copyPass.material.blending=s.NoBlending,this.clock=new s.Clock}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190),a=n(85232),o=n(29076);class l extends s.Pass{constructor(e,t,n,r){super(),i(this,"material"),i(this,"fsQuad"),i(this,"uniforms"),void 0===o.FilmShader&&console.error("THREE.FilmPass relies on FilmShader");const l=o.FilmShader;this.uniforms=a.UniformsUtils.clone(l.uniforms),this.material=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader}),void 0!==r&&(this.uniforms.grayscale.value=r),void 0!==e&&(this.uniforms.nIntensity.value=e),void 0!==t&&(this.uniforms.sIntensity.value=t),void 0!==n&&(this.uniforms.sCount.value=n),this.fsQuad=new s.FullScreenQuad(this.material)}render(e,t,n,r){this.uniforms.tDiffuse.value=n.texture,this.uniforms.time.value+=r,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}}t.FilmPass=l},88511:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190),a=n(85232),o=n(59305);class l extends s.Pass{constructor(e=64){super(),i(this,"material"),i(this,"fsQuad"),i(this,"goWild"),i(this,"curF"),i(this,"randX"),i(this,"uniforms"),this.uniforms=a.UniformsUtils.clone(o.DigitalGlitch.uniforms),this.uniforms.tDisp.value=this.generateHeightmap(e),this.material=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:o.DigitalGlitch.vertexShader,fragmentShader:o.DigitalGlitch.fragmentShader}),this.fsQuad=new s.FullScreenQuad(this.material),this.goWild=!1,this.curF=0,this.generateTrigger()}render(e,t,n){!1===e.capabilities.isWebGL2&&(this.uniforms.tDisp.value.format=a.LuminanceFormat),this.uniforms.tDiffuse.value=n.texture,this.uniforms.seed.value=Math.random(),this.uniforms.byp.value=0,this.curF%this.randX==0||1==this.goWild?(this.uniforms.amount.value=Math.random()/30,this.uniforms.angle.value=a.MathUtils.randFloat(-Math.PI,Math.PI),this.uniforms.seed_x.value=a.MathUtils.randFloat(-1,1),this.uniforms.seed_y.value=a.MathUtils.randFloat(-1,1),this.uniforms.distortion_x.value=a.MathUtils.randFloat(0,1),this.uniforms.distortion_y.value=a.MathUtils.randFloat(0,1),this.curF=0,this.generateTrigger()):this.curF%this.randX{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190),a=n(85232),o=n(79169);class l extends s.Pass{constructor(e,t,n){super(),i(this,"material"),i(this,"fsQuad"),i(this,"uniforms"),void 0===o.HalftoneShader&&console.error("THREE.HalftonePass requires HalftoneShader"),this.uniforms=a.UniformsUtils.clone(o.HalftoneShader.uniforms),this.material=new a.ShaderMaterial({uniforms:this.uniforms,fragmentShader:o.HalftoneShader.fragmentShader,vertexShader:o.HalftoneShader.vertexShader}),this.uniforms.width.value=e,this.uniforms.height.value=t;for(const r in n)n.hasOwnProperty(r)&&this.uniforms.hasOwnProperty(r)&&(this.uniforms[r].value=n[r]);this.fsQuad=new s.FullScreenQuad(this.material)}render(e,t,n){this.material.uniforms.tDiffuse.value=n.texture,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}setSize(e,t){this.uniforms.width.value=e,this.uniforms.height.value=t}}t.HalftonePass=l},834:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(18921),i={defines:{USE_3DTEXTURE:1},uniforms:{lut3d:{value:null},lut:{value:null},lutSize:{value:0},tDiffuse:{value:null},intensity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}\n\n\t",fragmentShader:"\n\n\t\tuniform float lutSize;\n\t\t#if USE_3DTEXTURE\n\t\tprecision highp sampler3D;\n\t\tuniform sampler3D lut3d;\n\t\t#else\n\t\tuniform sampler2D lut;\n\n\t\tvec3 lutLookup( sampler2D tex, float size, vec3 rgb ) {\n\n\t\t\tfloat sliceHeight = 1.0 / size;\n\t\t\tfloat yPixelHeight = 1.0 / ( size * size );\n\n\t\t\t// Get the slices on either side of the sample\n\t\t\tfloat slice = rgb.b * size;\n\t\t\tfloat interp = fract( slice );\n\t\t\tfloat slice0 = slice - interp;\n\t\t\tfloat centeredInterp = interp - 0.5;\n\n\t\t\tfloat slice1 = slice0 + sign( centeredInterp );\n\n\t\t\t// Pull y sample in by half a pixel in each direction to avoid color\n\t\t\t// bleeding from adjacent slices.\n\t\t\tfloat greenOffset = clamp( rgb.g * sliceHeight, yPixelHeight * 0.5, sliceHeight - yPixelHeight * 0.5 );\n\n\t\t\tvec2 uv0 = vec2(\n\t\t\t\trgb.r,\n\t\t\t\tslice0 * sliceHeight + greenOffset\n\t\t\t);\n\t\t\tvec2 uv1 = vec2(\n\t\t\t\trgb.r,\n\t\t\t\tslice1 * sliceHeight + greenOffset\n\t\t\t);\n\n\t\t\tvec3 sample0 = texture2D( tex, uv0 ).rgb;\n\t\t\tvec3 sample1 = texture2D( tex, uv1 ).rgb;\n\n\t\t\treturn mix( sample0, sample1, abs( centeredInterp ) );\n\n\t\t}\n\t\t#endif\n\n\t\tvarying vec2 vUv;\n\t\tuniform float intensity;\n\t\tuniform sampler2D tDiffuse;\n\t\tvoid main() {\n\n\t\t\tvec4 val = texture2D( tDiffuse, vUv );\n\t\t\tvec4 lutVal;\n\n\t\t\t// pull the sample in by half a pixel so the sample begins\n\t\t\t// at the center of the edge pixels.\n\t\t\tfloat pixelWidth = 1.0 / lutSize;\n\t\t\tfloat halfPixelWidth = 0.5 / lutSize;\n\t\t\tvec3 uvw = vec3( halfPixelWidth ) + val.rgb * ( 1.0 - pixelWidth );\n\n\t\t\t#if USE_3DTEXTURE\n\n\t\t\tlutVal = vec4( texture( lut3d, uvw ).rgb, val.a );\n\n\t\t\t#else\n\n\t\t\tlutVal = vec4( lutLookup( lut, lutSize, uvw ), val.a );\n\n\t\t\t#endif\n\n\t\t\tgl_FragColor = vec4( mix( val, lutVal, intensity ) );\n\n\t\t}\n\n\t"};class s extends r.ShaderPass{set lut(e){const t=this.material;if(e!==this.lut&&(t.uniforms.lut3d.value=null,t.uniforms.lut.value=null,e)){const n=e.isData3DTexture?1:0;n!==t.defines.USE_3DTEXTURE&&(t.defines.USE_3DTEXTURE=n,t.needsUpdate=!0),t.uniforms.lutSize.value=e.image.width,e.isData3DTexture?t.uniforms.lut3d.value=e:t.uniforms.lut.value=e}}get lut(){return this.material.uniforms.lut.value||this.material.uniforms.lut3d.value}set intensity(e){this.material.uniforms.intensity.value=e}get intensity(){return this.material.uniforms.intensity.value}constructor(e={}){super(i),this.lut=e.lut||null,this.intensity="intensity"in e?e.intensity:1}}t.LUTPass=s},81362:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190);class a extends s.Pass{constructor(e,t){super(),i(this,"scene"),i(this,"camera"),i(this,"inverse"),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,n){const r=e.getContext(),i=e.state;let s,a;i.buffers.color.setMask(!1),i.buffers.depth.setMask(!1),i.buffers.color.setLocked(!0),i.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),i.buffers.stencil.setTest(!0),i.buffers.stencil.setOp(r.REPLACE,r.REPLACE,r.REPLACE),i.buffers.stencil.setFunc(r.ALWAYS,s,4294967295),i.buffers.stencil.setClear(a),i.buffers.stencil.setLocked(!0),e.setRenderTarget(n),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),i.buffers.color.setLocked(!1),i.buffers.depth.setLocked(!1),i.buffers.stencil.setLocked(!1),i.buffers.stencil.setFunc(r.EQUAL,1,4294967295),i.buffers.stencil.setOp(r.KEEP,r.KEEP,r.KEEP),i.buffers.stencil.setLocked(!0)}}class o extends s.Pass{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}t.ClearMaskPass=o,t.MaskPass=a},79666:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(49190),a=n(85232),o=n(83453);class l extends s.Pass{constructor(e,t,n,r){super(),i(this,"renderScene"),i(this,"renderCamera"),i(this,"selectedObjects"),i(this,"visibleEdgeColor"),i(this,"hiddenEdgeColor"),i(this,"edgeGlow"),i(this,"usePatternTexture"),i(this,"edgeThickness"),i(this,"edgeStrength"),i(this,"downSampleRatio"),i(this,"pulsePeriod"),i(this,"resolution"),i(this,"renderTargetMaskBuffer"),i(this,"depthMaterial"),i(this,"prepareMaskMaterial"),i(this,"renderTargetDepthBuffer"),i(this,"renderTargetMaskDownSampleBuffer"),i(this,"renderTargetBlurBuffer1"),i(this,"renderTargetBlurBuffer2"),i(this,"edgeDetectionMaterial"),i(this,"renderTargetEdgeBuffer1"),i(this,"renderTargetEdgeBuffer2"),i(this,"separableBlurMaterial1"),i(this,"separableBlurMaterial2"),i(this,"overlayMaterial"),i(this,"materialCopy"),i(this,"oldClearAlpha"),i(this,"fsQuad"),i(this,"tempPulseColor1"),i(this,"tempPulseColor2"),i(this,"textureMatrix"),i(this,"patternTexture"),i(this,"_visibilityCache"),i(this,"_oldClearColor"),i(this,"copyUniforms"),i(this,"BlurDirectionX",new a.Vector2(1,0)),i(this,"BlurDirectionY",new a.Vector2(0,1)),this.renderScene=t,this.renderCamera=n,this.selectedObjects=void 0!==r?r:[],this.visibleEdgeColor=new a.Color(1,1,1),this.hiddenEdgeColor=new a.Color(.1,.04,.02),this.edgeGlow=0,this.usePatternTexture=!1,this.edgeThickness=1,this.edgeStrength=3,this.downSampleRatio=2,this.pulsePeriod=0,this._visibilityCache=new Map,this.resolution=void 0!==e?new a.Vector2(e.x,e.y):new a.Vector2(256,256);const l=Math.round(this.resolution.x/this.downSampleRatio),c=Math.round(this.resolution.y/this.downSampleRatio);this.renderTargetMaskBuffer=new a.WebGLRenderTarget(this.resolution.x,this.resolution.y),this.renderTargetMaskBuffer.texture.name="OutlinePass.mask",this.renderTargetMaskBuffer.texture.generateMipmaps=!1,this.depthMaterial=new a.MeshDepthMaterial,this.depthMaterial.side=a.DoubleSide,this.depthMaterial.depthPacking=a.RGBADepthPacking,this.depthMaterial.blending=a.NoBlending,this.prepareMaskMaterial=this.getPrepareMaskMaterial(),this.prepareMaskMaterial.side=a.DoubleSide,this.prepareMaskMaterial.fragmentShader=function(e,t){const n=t.isPerspectiveCamera?"perspective":"orthographic";return e.replace(/DEPTH_TO_VIEW_Z/g,n+"DepthToViewZ")}(this.prepareMaskMaterial.fragmentShader,this.renderCamera),this.renderTargetDepthBuffer=new a.WebGLRenderTarget(this.resolution.x,this.resolution.y),this.renderTargetDepthBuffer.texture.name="OutlinePass.depth",this.renderTargetDepthBuffer.texture.generateMipmaps=!1,this.renderTargetMaskDownSampleBuffer=new a.WebGLRenderTarget(l,c),this.renderTargetMaskDownSampleBuffer.texture.name="OutlinePass.depthDownSample",this.renderTargetMaskDownSampleBuffer.texture.generateMipmaps=!1,this.renderTargetBlurBuffer1=new a.WebGLRenderTarget(l,c),this.renderTargetBlurBuffer1.texture.name="OutlinePass.blur1",this.renderTargetBlurBuffer1.texture.generateMipmaps=!1,this.renderTargetBlurBuffer2=new a.WebGLRenderTarget(Math.round(l/2),Math.round(c/2)),this.renderTargetBlurBuffer2.texture.name="OutlinePass.blur2",this.renderTargetBlurBuffer2.texture.generateMipmaps=!1,this.edgeDetectionMaterial=this.getEdgeDetectionMaterial(),this.renderTargetEdgeBuffer1=new a.WebGLRenderTarget(l,c),this.renderTargetEdgeBuffer1.texture.name="OutlinePass.edge1",this.renderTargetEdgeBuffer1.texture.generateMipmaps=!1,this.renderTargetEdgeBuffer2=new a.WebGLRenderTarget(Math.round(l/2),Math.round(c/2)),this.renderTargetEdgeBuffer2.texture.name="OutlinePass.edge2",this.renderTargetEdgeBuffer2.texture.generateMipmaps=!1;this.separableBlurMaterial1=this.getSeperableBlurMaterial(4),this.separableBlurMaterial1.uniforms.texSize.value.set(l,c),this.separableBlurMaterial1.uniforms.kernelRadius.value=1,this.separableBlurMaterial2=this.getSeperableBlurMaterial(4),this.separableBlurMaterial2.uniforms.texSize.value.set(Math.round(l/2),Math.round(c/2)),this.separableBlurMaterial2.uniforms.kernelRadius.value=4,this.overlayMaterial=this.getOverlayMaterial(),void 0===o.CopyShader&&console.error("THREE.OutlinePass relies on CopyShader");const h=o.CopyShader;this.copyUniforms=a.UniformsUtils.clone(h.uniforms),this.copyUniforms.opacity.value=1,this.materialCopy=new a.ShaderMaterial({uniforms:this.copyUniforms,vertexShader:h.vertexShader,fragmentShader:h.fragmentShader,blending:a.NoBlending,depthTest:!1,depthWrite:!1,transparent:!0}),this.enabled=!0,this.needsSwap=!1,this._oldClearColor=new a.Color,this.oldClearAlpha=1,this.fsQuad=new s.FullScreenQuad(this.materialCopy),this.tempPulseColor1=new a.Color,this.tempPulseColor2=new a.Color,this.textureMatrix=new a.Matrix4}dispose(){this.renderTargetMaskBuffer.dispose(),this.renderTargetDepthBuffer.dispose(),this.renderTargetMaskDownSampleBuffer.dispose(),this.renderTargetBlurBuffer1.dispose(),this.renderTargetBlurBuffer2.dispose(),this.renderTargetEdgeBuffer1.dispose(),this.renderTargetEdgeBuffer2.dispose()}setSize(e,t){this.renderTargetMaskBuffer.setSize(e,t),this.renderTargetDepthBuffer.setSize(e,t);let n=Math.round(e/this.downSampleRatio),r=Math.round(t/this.downSampleRatio);this.renderTargetMaskDownSampleBuffer.setSize(n,r),this.renderTargetBlurBuffer1.setSize(n,r),this.renderTargetEdgeBuffer1.setSize(n,r),this.separableBlurMaterial1.uniforms.texSize.value.set(n,r),n=Math.round(n/2),r=Math.round(r/2),this.renderTargetBlurBuffer2.setSize(n,r),this.renderTargetEdgeBuffer2.setSize(n,r),this.separableBlurMaterial2.uniforms.texSize.value.set(n,r)}changeVisibilityOfSelectedObjects(e){const t=this._visibilityCache;function n(n){n.isMesh&&(!0===e?n.visible=t.get(n):(t.set(n,n.visible),n.visible=e))}for(let r=0;r0){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const t=e.autoClear;e.autoClear=!1,i&&e.state.buffers.stencil.setTest(!1),e.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);const r=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,e.setRenderTarget(this.renderTargetDepthBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,e.setRenderTarget(this.renderTargetMaskBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=r,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,e.setRenderTarget(this.renderTargetMaskDownSampleBuffer),e.clear(),this.fsQuad.render(e),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){const e=.625+.75*Math.cos(.01*performance.now()/this.pulsePeriod)/2;this.tempPulseColor1.multiplyScalar(e),this.tempPulseColor2.multiplyScalar(e)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=this.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,e.setRenderTarget(this.renderTargetBlurBuffer1),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=this.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=this.BlurDirectionX,e.setRenderTarget(this.renderTargetBlurBuffer2),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=this.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer2),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,i&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(n),this.fsQuad.render(e),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=t}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=n.texture,e.setRenderTarget(null),this.fsQuad.render(e))}getPrepareMaskMaterial(){return new a.ShaderMaterial({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new a.Vector2(.5,.5)},textureMatrix:{value:null}},vertexShader:"#include \n\t\t\t\t#include \n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tuniform mat4 textureMatrix;\n\t\t\t\tvoid main() {\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\tvPosition = mvPosition;\n\t\t\t\t\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n\t\t\t\t\tprojTexCoord = textureMatrix * worldPosition;\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tuniform sampler2D depthTexture;\n\t\t\t\tuniform vec2 cameraNearFar;\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\n\t\t\t\t\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\n\t\t\t\t\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\n\t\t\t\t\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\n\t\t\t\t}"})}getEdgeDetectionMaterial(){return new a.ShaderMaterial({uniforms:{maskTexture:{value:null},texSize:{value:new a.Vector2(.5,.5)},visibleEdgeColor:{value:new a.Vector3(1,1,1)},hiddenEdgeColor:{value:new a.Vector3(1,1,1)}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec3 visibleEdgeColor;\n\t\t\t\tuniform vec3 hiddenEdgeColor;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\n\t\t\t\t\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\n\t\t\t\t\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\n\t\t\t\t\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\n\t\t\t\t\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\n\t\t\t\t\tfloat diff1 = (c1.r - c2.r)*0.5;\n\t\t\t\t\tfloat diff2 = (c3.r - c4.r)*0.5;\n\t\t\t\t\tfloat d = length( vec2(diff1, diff2) );\n\t\t\t\t\tfloat a1 = min(c1.g, c2.g);\n\t\t\t\t\tfloat a2 = min(c3.g, c4.g);\n\t\t\t\t\tfloat visibilityFactor = min(a1, a2);\n\t\t\t\t\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\n\t\t\t\t\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\n\t\t\t\t}"})}getSeperableBlurMaterial(e){return new a.ShaderMaterial({defines:{MAX_RADIUS:e},uniforms:{colorTexture:{value:null},texSize:{value:new a.Vector2(.5,.5)},direction:{value:new a.Vector2(.5,.5)},kernelRadius:{value:1}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float kernelRadius;\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, kernelRadius);\n\t\t\t\t\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\n\t\t\t\t\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\n\t\t\t\t\tvec2 uvOffset = delta;\n\t\t\t\t\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat w = gaussianPdf(uvOffset.x, kernelRadius);\n\t\t\t\t\t\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\n\t\t\t\t\t\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\n\t\t\t\t\t\tdiffuseSum += ((sample1 + sample2) * w);\n\t\t\t\t\t\tweightSum += (2.0 * w);\n\t\t\t\t\t\tuvOffset += delta;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = diffuseSum/weightSum;\n\t\t\t\t}"})}getOverlayMaterial(){return new a.ShaderMaterial({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform sampler2D edgeTexture1;\n\t\t\t\tuniform sampler2D edgeTexture2;\n\t\t\t\tuniform sampler2D patternTexture;\n\t\t\t\tuniform float edgeStrength;\n\t\t\t\tuniform float edgeGlow;\n\t\t\t\tuniform bool usePatternTexture;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\n\t\t\t\t\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\n\t\t\t\t\tvec4 maskColor = texture2D(maskTexture, vUv);\n\t\t\t\t\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\n\t\t\t\t\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\n\t\t\t\t\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\n\t\t\t\t\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\n\t\t\t\t\tif(usePatternTexture)\n\t\t\t\t\t\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\n\t\t\t\t\tgl_FragColor = finalColor;\n\t\t\t\t}",blending:a.AdditiveBlending,depthTest:!1,depthWrite:!1,transparent:!0})}}t.OutlinePass=l},49190:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);t.FullScreenQuad=class{constructor(e){i(this,"camera",new s.OrthographicCamera(-1,1,1,-1,0,1)),i(this,"geometry",new s.PlaneGeometry(2,2)),i(this,"mesh"),this.mesh=new s.Mesh(this.geometry,e)}get material(){return this.mesh.material}set material(e){this.mesh.material=e}dispose(){this.mesh.geometry.dispose()}render(e){e.render(this.mesh,this.camera)}},t.Pass=class{constructor(){i(this,"enabled",!0),i(this,"needsSwap",!0),i(this,"clear",!1),i(this,"renderToScreen",!1)}setSize(e,t){}render(e,t,n,r,i){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}},27251:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(49190);class o extends a.Pass{constructor(e,t,n,r,a=0){super(),i(this,"scene"),i(this,"camera"),i(this,"overrideMaterial"),i(this,"clearColor"),i(this,"clearAlpha"),i(this,"clearDepth",!1),i(this,"_oldClearColor",new s.Color),this.scene=e,this.camera=t,this.overrideMaterial=n,this.clearColor=r,this.clearAlpha=a,this.clear=!0,this.needsSwap=!1}render(e,t,n){let r,i=e.autoClear;e.autoClear=!1;let s=null;void 0!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),r=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:n),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor&&e.setClearColor(this._oldClearColor,r),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=s),e.autoClear=i}}t.RenderPass=o},17497:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(49190);class s extends i.Pass{constructor(e,t,n,s,o={}){var l,c;super(),this.pixelSize=t,this.resolution=new r.Vector2,this.renderResolution=new r.Vector2,this.setSize(e.x,e.y),this.fsQuad=new i.FullScreenQuad(this.material()),this.scene=n,this.camera=s,this.normalEdgeStrength=null!=(l=o.normalEdgeStrength)?l:.3,this.depthEdgeStrength=null!=(c=o.depthEdgeStrength)?c:.4,this.rgbRenderTarget=a(this.renderResolution,r.RGBAFormat,!0),this.normalRenderTarget=a(this.renderResolution,r.RGBAFormat,!1),this.normalMaterial=new r.MeshNormalMaterial}dispose(){this.rgbRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.fsQuad.dispose()}setSize(e,t){var n,r,i;this.resolution.set(e,t),this.renderResolution.set(e/this.pixelSize|0,t/this.pixelSize|0);const{x:s,y:a}=this.renderResolution;null==(n=this.rgbRenderTarget)||n.setSize(s,a),null==(r=this.normalRenderTarget)||r.setSize(s,a),null==(i=this.fsQuad)||i.material.uniforms.resolution.value.set(s,a,1/s,1/a)}setPixelSize(e){this.pixelSize=e,this.setSize(this.resolution.x,this.resolution.y)}render(e,t){const n=this.fsQuad.material.uniforms;n.normalEdgeStrength.value=this.normalEdgeStrength,n.depthEdgeStrength.value=this.depthEdgeStrength,e.setRenderTarget(this.rgbRenderTarget),e.render(this.scene,this.camera);const r=this.scene.overrideMaterial;e.setRenderTarget(this.normalRenderTarget),this.scene.overrideMaterial=this.normalMaterial,e.render(this.scene,this.camera),this.scene.overrideMaterial=r,n.tDiffuse.value=this.rgbRenderTarget.texture,n.tDepth.value=this.rgbRenderTarget.depthTexture,n.tNormal.value=this.normalRenderTarget.texture,this.renderToScreen?e.setRenderTarget(null):(e.setRenderTarget(t),this.clear&&e.clear()),this.fsQuad.render(e)}material(){return new r.ShaderMaterial({uniforms:{tDiffuse:{value:null},tDepth:{value:null},tNormal:{value:null},resolution:{value:new r.Vector4(this.renderResolution.x,this.renderResolution.y,1/this.renderResolution.x,1/this.renderResolution.y)},normalEdgeStrength:{value:0},depthEdgeStrength:{value:0}},vertexShader:"\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}\n\t\t\t\t",fragmentShader:"\n\t\t\t\tuniform sampler2D tDiffuse;\n\t\t\t\tuniform sampler2D tDepth;\n\t\t\t\tuniform sampler2D tNormal;\n\t\t\t\tuniform vec4 resolution;\n\t\t\t\tuniform float normalEdgeStrength;\n\t\t\t\tuniform float depthEdgeStrength;\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\tfloat getDepth(int x, int y) {\n\n\t\t\t\t\treturn texture2D( tDepth, vUv + vec2(x, y) * resolution.zw ).r;\n\n\t\t\t\t}\n\n\t\t\t\tvec3 getNormal(int x, int y) {\n\n\t\t\t\t\treturn texture2D( tNormal, vUv + vec2(x, y) * resolution.zw ).rgb * 2.0 - 1.0;\n\n\t\t\t\t}\n\n\t\t\t\tfloat depthEdgeIndicator(float depth, vec3 normal) {\n\n\t\t\t\t\tfloat diff = 0.0;\n\t\t\t\t\tdiff += clamp(getDepth(1, 0) - depth, 0.0, 1.0);\n\t\t\t\t\tdiff += clamp(getDepth(-1, 0) - depth, 0.0, 1.0);\n\t\t\t\t\tdiff += clamp(getDepth(0, 1) - depth, 0.0, 1.0);\n\t\t\t\t\tdiff += clamp(getDepth(0, -1) - depth, 0.0, 1.0);\n\t\t\t\t\treturn floor(smoothstep(0.01, 0.02, diff) * 2.) / 2.;\n\n\t\t\t\t}\n\n\t\t\t\tfloat neighborNormalEdgeIndicator(int x, int y, float depth, vec3 normal) {\n\n\t\t\t\t\tfloat depthDiff = getDepth(x, y) - depth;\n\t\t\t\t\tvec3 neighborNormal = getNormal(x, y);\n\t\t\t\t\t\n\t\t\t\t\t// Edge pixels should yield to faces who's normals are closer to the bias normal.\n\t\t\t\t\tvec3 normalEdgeBias = vec3(1., 1., 1.); // This should probably be a parameter.\n\t\t\t\t\tfloat normalDiff = dot(normal - neighborNormal, normalEdgeBias);\n\t\t\t\t\tfloat normalIndicator = clamp(smoothstep(-.01, .01, normalDiff), 0.0, 1.0);\n\t\t\t\t\t\n\t\t\t\t\t// Only the shallower pixel should detect the normal edge.\n\t\t\t\t\tfloat depthIndicator = clamp(sign(depthDiff * .25 + .0025), 0.0, 1.0);\n\n\t\t\t\t\treturn (1.0 - dot(normal, neighborNormal)) * depthIndicator * normalIndicator;\n\n\t\t\t\t}\n\n\t\t\t\tfloat normalEdgeIndicator(float depth, vec3 normal) {\n\t\t\t\t\t\n\t\t\t\t\tfloat indicator = 0.0;\n\n\t\t\t\t\tindicator += neighborNormalEdgeIndicator(0, -1, depth, normal);\n\t\t\t\t\tindicator += neighborNormalEdgeIndicator(0, 1, depth, normal);\n\t\t\t\t\tindicator += neighborNormalEdgeIndicator(-1, 0, depth, normal);\n\t\t\t\t\tindicator += neighborNormalEdgeIndicator(1, 0, depth, normal);\n\n\t\t\t\t\treturn step(0.1, indicator);\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\n\t\t\t\t\tfloat depth = 0.0;\n\t\t\t\t\tvec3 normal = vec3(0.0);\n\n\t\t\t\t\tif (depthEdgeStrength > 0.0 || normalEdgeStrength > 0.0) {\n\n\t\t\t\t\t\tdepth = getDepth(0, 0);\n\t\t\t\t\t\tnormal = getNormal(0, 0);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat dei = 0.0;\n\t\t\t\t\tif (depthEdgeStrength > 0.0) \n\t\t\t\t\t\tdei = depthEdgeIndicator(depth, normal);\n\n\t\t\t\t\tfloat nei = 0.0; \n\t\t\t\t\tif (normalEdgeStrength > 0.0) \n\t\t\t\t\t\tnei = normalEdgeIndicator(depth, normal);\n\n\t\t\t\t\tfloat Strength = dei > 0.0 ? (1.0 - depthEdgeStrength * dei) : (1.0 + normalEdgeStrength * nei);\n\n\t\t\t\t\tgl_FragColor = texel * Strength;\n\n\t\t\t\t}\n\t\t\t\t"})}}function a(e,t,n){const i=new r.WebGLRenderTarget(e.x,e.y,n?{depthTexture:new r.DepthTexture(e.x,e.y),depthBuffer:!0}:void 0);return i.texture.format=t,i.texture.minFilter=r.NearestFilter,i.texture.magFilter=r.NearestFilter,i.texture.generateMipmaps=!1,i.stencilBuffer=!1,i}t.RenderPixelatedPass=s},96665:(e,t,n)=>{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=n(85232),s=n(49190),a=n(24730),o=n(86170),l=n(83453),c=n(65149);class h extends s.Pass{constructor(e,t,n=!1,r=!1,h=new i.Vector2(256,256)){let u;super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.supportsDepthTextureExtension=n,this.supportsNormalTexture=r,this.originalClearColor=new i.Color,this._oldClearColor=new i.Color,this.oldClearAlpha=1,this.params={output:0,saoBias:.5,saoIntensity:.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:!0,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:.01},this.resolution=new i.Vector2(h.x,h.y),this.saoRenderTarget=new i.WebGLRenderTarget(this.resolution.x,this.resolution.y,{type:i.HalfFloatType}),this.blurIntermediateRenderTarget=this.saoRenderTarget.clone(),this.beautyRenderTarget=this.saoRenderTarget.clone(),this.normalRenderTarget=new i.WebGLRenderTarget(this.resolution.x,this.resolution.y,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.HalfFloatType}),this.depthRenderTarget=this.normalRenderTarget.clone(),this.supportsDepthTextureExtension&&(u=new i.DepthTexture,u.type=i.UnsignedShortType,this.beautyRenderTarget.depthTexture=u,this.beautyRenderTarget.depthBuffer=!0),this.depthMaterial=new i.MeshDepthMaterial,this.depthMaterial.depthPacking=i.RGBADepthPacking,this.depthMaterial.blending=i.NoBlending,this.normalMaterial=new i.MeshNormalMaterial,this.normalMaterial.blending=i.NoBlending,this.saoMaterial=new i.ShaderMaterial({defines:Object.assign({},a.SAOShader.defines),fragmentShader:a.SAOShader.fragmentShader,vertexShader:a.SAOShader.vertexShader,uniforms:i.UniformsUtils.clone(a.SAOShader.uniforms)}),this.saoMaterial.extensions.derivatives=!0,this.saoMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.saoMaterial.defines.NORMAL_TEXTURE=this.supportsNormalTexture?1:0,this.saoMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.saoMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?u:this.depthRenderTarget.texture,this.saoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.saoMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.blending=i.NoBlending,this.vBlurMaterial=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(o.DepthLimitedBlurShader.uniforms),defines:Object.assign({},o.DepthLimitedBlurShader.defines),vertexShader:o.DepthLimitedBlurShader.vertexShader,fragmentShader:o.DepthLimitedBlurShader.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.vBlurMaterial.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.vBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?u:this.depthRenderTarget.texture,this.vBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.vBlurMaterial.blending=i.NoBlending,this.hBlurMaterial=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(o.DepthLimitedBlurShader.uniforms),defines:Object.assign({},o.DepthLimitedBlurShader.defines),vertexShader:o.DepthLimitedBlurShader.vertexShader,fragmentShader:o.DepthLimitedBlurShader.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.hBlurMaterial.uniforms.tDiffuse.value=this.blurIntermediateRenderTarget.texture,this.hBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?u:this.depthRenderTarget.texture,this.hBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.hBlurMaterial.blending=i.NoBlending,this.materialCopy=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(l.CopyShader.uniforms),vertexShader:l.CopyShader.vertexShader,fragmentShader:l.CopyShader.fragmentShader,blending:i.NoBlending}),this.materialCopy.transparent=!0,this.materialCopy.depthTest=!1,this.materialCopy.depthWrite=!1,this.materialCopy.blending=i.CustomBlending,this.materialCopy.blendSrc=i.DstColorFactor,this.materialCopy.blendDst=i.ZeroFactor,this.materialCopy.blendEquation=i.AddEquation,this.materialCopy.blendSrcAlpha=i.DstAlphaFactor,this.materialCopy.blendDstAlpha=i.ZeroFactor,this.materialCopy.blendEquationAlpha=i.AddEquation,this.depthCopy=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(c.UnpackDepthRGBAShader.uniforms),vertexShader:c.UnpackDepthRGBAShader.vertexShader,fragmentShader:c.UnpackDepthRGBAShader.fragmentShader,blending:i.NoBlending}),this.fsQuad=new s.FullScreenQuad(null)}render(e,t,n){if(this.renderToScreen&&(this.materialCopy.blending=i.NoBlending,this.materialCopy.uniforms.tDiffuse.value=n.texture,this.materialCopy.needsUpdate=!0,this.renderPass(e,this.materialCopy,null)),1===this.params.output)return;e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const r=e.autoClear;e.autoClear=!1,e.setRenderTarget(this.depthRenderTarget),e.clear(),this.saoMaterial.uniforms.bias.value=this.params.saoBias,this.saoMaterial.uniforms.intensity.value=this.params.saoIntensity,this.saoMaterial.uniforms.scale.value=this.params.saoScale,this.saoMaterial.uniforms.kernelRadius.value=this.params.saoKernelRadius,this.saoMaterial.uniforms.minResolution.value=this.params.saoMinResolution,this.saoMaterial.uniforms.cameraNear.value=this.camera.near,this.saoMaterial.uniforms.cameraFar.value=this.camera.far;const s=this.params.saoBlurDepthCutoff*(this.camera.far-this.camera.near);this.vBlurMaterial.uniforms.depthCutoff.value=s,this.hBlurMaterial.uniforms.depthCutoff.value=s,this.vBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.vBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.hBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.hBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.params.saoBlurRadius=Math.floor(this.params.saoBlurRadius),this.prevStdDev===this.params.saoBlurStdDev&&this.prevNumSamples===this.params.saoBlurRadius||(o.BlurShaderUtils.configure(this.vBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new i.Vector2(0,1)),o.BlurShaderUtils.configure(this.hBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new i.Vector2(1,0)),this.prevStdDev=this.params.saoBlurStdDev,this.prevNumSamples=this.params.saoBlurRadius),e.setClearColor(0),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.supportsDepthTextureExtension||this.renderOverride(e,this.depthMaterial,this.depthRenderTarget,0,1),this.supportsNormalTexture&&this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.renderPass(e,this.saoMaterial,this.saoRenderTarget,16777215,1),this.params.saoBlur&&(this.renderPass(e,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1),this.renderPass(e,this.hBlurMaterial,this.saoRenderTarget,16777215,1));let a=this.materialCopy;3===this.params.output?this.supportsDepthTextureExtension?(this.materialCopy.uniforms.tDiffuse.value=this.beautyRenderTarget.depthTexture,this.materialCopy.needsUpdate=!0):(this.depthCopy.uniforms.tDiffuse.value=this.depthRenderTarget.texture,this.depthCopy.needsUpdate=!0,a=this.depthCopy):4===this.params.output?(this.materialCopy.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.materialCopy.needsUpdate=!0):(this.materialCopy.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.materialCopy.needsUpdate=!0),0===this.params.output?a.blending=i.CustomBlending:a.blending=i.NoBlending,this.renderPass(e,a,this.renderToScreen?null:n),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=r}renderPass(e,t,n,r,i){e.getClearColor(this.originalClearColor);const s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,null!=r&&(e.setClearColor(r),e.setClearAlpha(i||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderOverride(e,t,n,r,i){e.getClearColor(this.originalClearColor);const s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,r=t.clearColor||r,i=t.clearAlpha||i,null!=r&&(e.setClearColor(r),e.setClearAlpha(i||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}setSize(e,t){this.beautyRenderTarget.setSize(e,t),this.saoRenderTarget.setSize(e,t),this.blurIntermediateRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.depthRenderTarget.setSize(e,t),this.saoMaterial.uniforms.size.value.set(e,t),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.uniforms.size.value.set(e,t),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.uniforms.size.value.set(e,t),this.hBlurMaterial.needsUpdate=!0}dispose(){this.saoRenderTarget.dispose(),this.blurIntermediateRenderTarget.dispose(),this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.depthRenderTarget.dispose(),this.depthMaterial.dispose(),this.normalMaterial.dispose(),this.saoMaterial.dispose(),this.vBlurMaterial.dispose(),this.hBlurMaterial.dispose(),this.materialCopy.dispose(),this.depthCopy.dispose(),this.fsQuad.dispose()}}var u;((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(h,"symbol"!=typeof(u="OUTPUT")?u+"":u,{Beauty:1,Default:0,SAO:2,Depth:3,Normal:4}),t.SAOPass=h},7679:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(49190),s=n(27407);class a extends i.Pass{constructor(e,t){super(),this.edgesRT=new r.WebGLRenderTarget(e,t,{depthBuffer:!1}),this.edgesRT.texture.name="SMAAPass.edges",this.weightsRT=new r.WebGLRenderTarget(e,t,{depthBuffer:!1}),this.weightsRT.texture.name="SMAAPass.weights";const n=this,a=new Image;a.src=this.getAreaTexture(),a.onload=function(){n.areaTexture.needsUpdate=!0},this.areaTexture=new r.Texture,this.areaTexture.name="SMAAPass.area",this.areaTexture.image=a,this.areaTexture.minFilter=r.LinearFilter,this.areaTexture.generateMipmaps=!1,this.areaTexture.flipY=!1;const o=new Image;o.src=this.getSearchTexture(),o.onload=function(){n.searchTexture.needsUpdate=!0},this.searchTexture=new r.Texture,this.searchTexture.name="SMAAPass.search",this.searchTexture.image=o,this.searchTexture.magFilter=r.NearestFilter,this.searchTexture.minFilter=r.NearestFilter,this.searchTexture.generateMipmaps=!1,this.searchTexture.flipY=!1,void 0===s.SMAAEdgesShader&&console.error("THREE.SMAAPass relies on SMAAShader"),this.uniformsEdges=r.UniformsUtils.clone(s.SMAAEdgesShader.uniforms),this.uniformsEdges.resolution.value.set(1/e,1/t),this.materialEdges=new r.ShaderMaterial({defines:Object.assign({},s.SMAAEdgesShader.defines),uniforms:this.uniformsEdges,vertexShader:s.SMAAEdgesShader.vertexShader,fragmentShader:s.SMAAEdgesShader.fragmentShader}),this.uniformsWeights=r.UniformsUtils.clone(s.SMAAWeightsShader.uniforms),this.uniformsWeights.resolution.value.set(1/e,1/t),this.uniformsWeights.tDiffuse.value=this.edgesRT.texture,this.uniformsWeights.tArea.value=this.areaTexture,this.uniformsWeights.tSearch.value=this.searchTexture,this.materialWeights=new r.ShaderMaterial({defines:Object.assign({},s.SMAAWeightsShader.defines),uniforms:this.uniformsWeights,vertexShader:s.SMAAWeightsShader.vertexShader,fragmentShader:s.SMAAWeightsShader.fragmentShader}),this.uniformsBlend=r.UniformsUtils.clone(s.SMAABlendShader.uniforms),this.uniformsBlend.resolution.value.set(1/e,1/t),this.uniformsBlend.tDiffuse.value=this.weightsRT.texture,this.materialBlend=new r.ShaderMaterial({uniforms:this.uniformsBlend,vertexShader:s.SMAABlendShader.vertexShader,fragmentShader:s.SMAABlendShader.fragmentShader}),this.needsSwap=!1,this.fsQuad=new i.FullScreenQuad(null)}render(e,t,n){this.uniformsEdges.tDiffuse.value=n.texture,this.fsQuad.material=this.materialEdges,e.setRenderTarget(this.edgesRT),this.clear&&e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.materialWeights,e.setRenderTarget(this.weightsRT),this.clear&&e.clear(),this.fsQuad.render(e),this.uniformsBlend.tColor.value=n.texture,this.fsQuad.material=this.materialBlend,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}setSize(e,t){this.edgesRT.setSize(e,t),this.weightsRT.setSize(e,t),this.materialEdges.uniforms.resolution.value.set(1/e,1/t),this.materialWeights.uniforms.resolution.value.set(1/e,1/t),this.materialBlend.uniforms.resolution.value.set(1/e,1/t)}getAreaTexture(){return"data:image/png;base64,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"}getSearchTexture(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAhCAAAAABIXyLAAAAAOElEQVRIx2NgGAWjYBSMglEwEICREYRgFBZBqDCSLA2MGPUIVQETE9iNUAqLR5gIeoQKRgwXjwAAGn4AtaFeYLEAAAAASUVORK5CYII="}}t.SMAAPass=a},44652:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(49190),s=n(83453);class a extends i.Pass{constructor(e,t,n,a){super(),this.scene=e,this.camera=t,this.sampleLevel=4,this.unbiased=!0,this.clearColor=void 0!==n?n:0,this.clearAlpha=void 0!==a?a:0,this._oldClearColor=new r.Color;const o=s.CopyShader;this.copyUniforms=r.UniformsUtils.clone(o.uniforms),this.copyMaterial=new r.ShaderMaterial({uniforms:this.copyUniforms,vertexShader:o.vertexShader,fragmentShader:o.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,premultipliedAlpha:!0,blending:r.AdditiveBlending}),this.fsQuad=new i.FullScreenQuad(this.copyMaterial)}dispose(){this.sampleRenderTarget&&(this.sampleRenderTarget.dispose(),this.sampleRenderTarget=null),this.copyMaterial.dispose(),this.fsQuad.dispose()}setSize(e,t){this.sampleRenderTarget&&this.sampleRenderTarget.setSize(e,t)}render(e,t,n){this.sampleRenderTarget||(this.sampleRenderTarget=new r.WebGLRenderTarget(n.width,n.height,{type:r.HalfFloatType}),this.sampleRenderTarget.texture.name="SSAARenderPass.sample");const i=o[Math.max(0,Math.min(this.sampleLevel,5))],s=e.autoClear;e.autoClear=!1,e.getClearColor(this._oldClearColor);const a=e.getClearAlpha(),l=1/i.length;this.copyUniforms.tDiffuse.value=this.sampleRenderTarget.texture;const c={fullWidth:n.width,fullHeight:n.height,offsetX:0,offsetY:0,width:n.width,height:n.height},h=Object.assign({},this.camera.view);h.enabled&&Object.assign(c,h);for(let r=0;r{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=n(85232),s=n(49190),a=n(84181),o=n(48463),l=n(83453),c=class extends s.Pass{constructor(e,t,n,r){super(),this.width=void 0!==n?n:512,this.height=void 0!==r?r:512,this.clear=!0,this.camera=t,this.scene=e,this.kernelRadius=8,this.kernelSize=32,this.kernel=[],this.noiseTexture=null,this.output=0,this.minDistance=.005,this.maxDistance=.1,this._visibilityCache=new Map,this.generateSampleKernel(),this.generateRandomKernelRotations();const a=new i.DepthTexture;a.format=i.DepthStencilFormat,a.type=i.UnsignedInt248Type,this.beautyRenderTarget=new i.WebGLRenderTarget(this.width,this.height),this.normalRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,depthTexture:a}),this.ssaoRenderTarget=new i.WebGLRenderTarget(this.width,this.height),this.blurRenderTarget=this.ssaoRenderTarget.clone(),void 0===o.SSAOShader&&console.error("THREE.SSAOPass: The pass relies on SSAOShader."),this.ssaoMaterial=new i.ShaderMaterial({defines:Object.assign({},o.SSAOShader.defines),uniforms:i.UniformsUtils.clone(o.SSAOShader.uniforms),vertexShader:o.SSAOShader.vertexShader,fragmentShader:o.SSAOShader.fragmentShader,blending:i.NoBlending}),this.ssaoMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssaoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssaoMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.ssaoMaterial.uniforms.tNoise.value=this.noiseTexture,this.ssaoMaterial.uniforms.kernel.value=this.kernel,this.ssaoMaterial.uniforms.cameraNear.value=this.camera.near,this.ssaoMaterial.uniforms.cameraFar.value=this.camera.far,this.ssaoMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new i.MeshNormalMaterial,this.normalMaterial.blending=i.NoBlending,this.blurMaterial=new i.ShaderMaterial({defines:Object.assign({},o.SSAOBlurShader.defines),uniforms:i.UniformsUtils.clone(o.SSAOBlurShader.uniforms),vertexShader:o.SSAOBlurShader.vertexShader,fragmentShader:o.SSAOBlurShader.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new i.ShaderMaterial({defines:Object.assign({},o.SSAODepthShader.defines),uniforms:i.UniformsUtils.clone(o.SSAODepthShader.uniforms),vertexShader:o.SSAODepthShader.vertexShader,fragmentShader:o.SSAODepthShader.fragmentShader,blending:i.NoBlending}),this.depthRenderMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(l.CopyShader.uniforms),vertexShader:l.CopyShader.vertexShader,fragmentShader:l.CopyShader.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:i.DstColorFactor,blendDst:i.ZeroFactor,blendEquation:i.AddEquation,blendSrcAlpha:i.DstAlphaFactor,blendDstAlpha:i.ZeroFactor,blendEquationAlpha:i.AddEquation}),this.fsQuad=new s.FullScreenQuad(null),this.originalClearColor=new i.Color}dispose(){this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.ssaoRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.normalMaterial.dispose(),this.blurMaterial.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()}render(e,t){switch(!1===e.capabilities.isWebGL2&&(this.noiseTexture.format=i.LuminanceFormat),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.overrideVisibility(),this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.restoreVisibility(),this.ssaoMaterial.uniforms.kernelRadius.value=this.kernelRadius,this.ssaoMaterial.uniforms.minDistance.value=this.minDistance,this.ssaoMaterial.uniforms.maxDistance.value=this.maxDistance,this.renderPass(e,this.ssaoMaterial,this.ssaoRenderTarget),this.renderPass(e,this.blurMaterial,this.blurRenderTarget),this.output){case c.OUTPUT.SSAO:this.copyMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Blur:this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Depth:this.renderPass(e,this.depthRenderMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Default:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=i.CustomBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;default:console.warn("THREE.SSAOPass: Unknown output type.")}}renderPass(e,t,n,r,i){e.getClearColor(this.originalClearColor);const s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,null!=r&&(e.setClearColor(r),e.setClearAlpha(i||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderOverride(e,t,n,r,i){e.getClearColor(this.originalClearColor);const s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,r=t.clearColor||r,i=t.clearAlpha||i,null!=r&&(e.setClearColor(r),e.setClearAlpha(i||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}setSize(e,t){this.width=e,this.height=t,this.beautyRenderTarget.setSize(e,t),this.ssaoRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.ssaoMaterial.uniforms.resolution.value.set(e,t),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t)}generateSampleKernel(){const e=this.kernelSize,t=this.kernel;for(let n=0;n{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(h,"symbol"!=typeof(u="OUTPUT")?u+"":u,{Default:0,SSAO:1,Blur:2,Beauty:3,Depth:4,Normal:5}),t.SSAOPass=h},18526:(e,t,n)=>{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=n(85232),s=n(49190),a=n(30424),o=n(83453),l=class extends s.Pass{constructor({renderer:e,scene:t,camera:n,width:r,height:l,selects:c,bouncing:h=!1,groundReflector:u}){super(),this.width=void 0!==r?r:512,this.height=void 0!==l?l:512,this.clear=!0,this.renderer=e,this.scene=t,this.camera=n,this.groundReflector=u,this.opacity=a.SSRShader.uniforms.opacity.value,this.output=0,this.maxDistance=a.SSRShader.uniforms.maxDistance.value,this.thickness=a.SSRShader.uniforms.thickness.value,this.tempColor=new i.Color,this._selects=c,this.selective=Array.isArray(this._selects),Object.defineProperty(this,"selects",{get(){return this._selects},set(e){this._selects!==e&&(this._selects=e,Array.isArray(e)?(this.selective=!0,this.ssrMaterial.defines.SELECTIVE=!0,this.ssrMaterial.needsUpdate=!0):(this.selective=!1,this.ssrMaterial.defines.SELECTIVE=!1,this.ssrMaterial.needsUpdate=!0))}}),this._bouncing=h,Object.defineProperty(this,"bouncing",{get(){return this._bouncing},set(e){this._bouncing!==e&&(this._bouncing=e,this.ssrMaterial.uniforms.tDiffuse.value=e?this.prevRenderTarget.texture:this.beautyRenderTarget.texture)}}),this.blur=!0,this._distanceAttenuation=a.SSRShader.defines.DISTANCE_ATTENUATION,Object.defineProperty(this,"distanceAttenuation",{get(){return this._distanceAttenuation},set(e){this._distanceAttenuation!==e&&(this._distanceAttenuation=e,this.ssrMaterial.defines.DISTANCE_ATTENUATION=e,this.ssrMaterial.needsUpdate=!0)}}),this._fresnel=a.SSRShader.defines.FRESNEL,Object.defineProperty(this,"fresnel",{get(){return this._fresnel},set(e){this._fresnel!==e&&(this._fresnel=e,this.ssrMaterial.defines.FRESNEL=e,this.ssrMaterial.needsUpdate=!0)}}),this._infiniteThick=a.SSRShader.defines.INFINITE_THICK,Object.defineProperty(this,"infiniteThick",{get(){return this._infiniteThick},set(e){this._infiniteThick!==e&&(this._infiniteThick=e,this.ssrMaterial.defines.INFINITE_THICK=e,this.ssrMaterial.needsUpdate=!0)}});const d=new i.DepthTexture;d.type=i.UnsignedShortType,d.minFilter=i.NearestFilter,d.magFilter=i.NearestFilter,this.beautyRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.HalfFloatType,depthTexture:d,depthBuffer:!0}),this.prevRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),this.normalRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.HalfFloatType}),this.metalnessRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.HalfFloatType}),this.ssrRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),this.blurRenderTarget=this.ssrRenderTarget.clone(),this.blurRenderTarget2=this.ssrRenderTarget.clone(),this.ssrMaterial=new i.ShaderMaterial({defines:Object.assign({},a.SSRShader.defines,{MAX_STEP:Math.sqrt(this.width*this.width+this.height*this.height)}),uniforms:i.UniformsUtils.clone(a.SSRShader.uniforms),vertexShader:a.SSRShader.vertexShader,fragmentShader:a.SSRShader.fragmentShader,blending:i.NoBlending}),this.ssrMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssrMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssrMaterial.defines.SELECTIVE=this.selective,this.ssrMaterial.needsUpdate=!0,this.ssrMaterial.uniforms.tMetalness.value=this.metalnessRenderTarget.texture,this.ssrMaterial.uniforms.tDepth.value=this.beautyRenderTarget.depthTexture,this.ssrMaterial.uniforms.cameraNear.value=this.camera.near,this.ssrMaterial.uniforms.cameraFar.value=this.camera.far,this.ssrMaterial.uniforms.thickness.value=this.thickness,this.ssrMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssrMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssrMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new i.MeshNormalMaterial,this.normalMaterial.blending=i.NoBlending,this.metalnessOnMaterial=new i.MeshBasicMaterial({color:"white"}),this.metalnessOffMaterial=new i.MeshBasicMaterial({color:"black"}),this.blurMaterial=new i.ShaderMaterial({defines:Object.assign({},a.SSRBlurShader.defines),uniforms:i.UniformsUtils.clone(a.SSRBlurShader.uniforms),vertexShader:a.SSRBlurShader.vertexShader,fragmentShader:a.SSRBlurShader.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.blurMaterial2=new i.ShaderMaterial({defines:Object.assign({},a.SSRBlurShader.defines),uniforms:i.UniformsUtils.clone(a.SSRBlurShader.uniforms),vertexShader:a.SSRBlurShader.vertexShader,fragmentShader:a.SSRBlurShader.fragmentShader}),this.blurMaterial2.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.blurMaterial2.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new i.ShaderMaterial({defines:Object.assign({},a.SSRDepthShader.defines),uniforms:i.UniformsUtils.clone(a.SSRDepthShader.uniforms),vertexShader:a.SSRDepthShader.vertexShader,fragmentShader:a.SSRDepthShader.fragmentShader,blending:i.NoBlending}),this.depthRenderMaterial.uniforms.tDepth.value=this.beautyRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(o.CopyShader.uniforms),vertexShader:o.CopyShader.vertexShader,fragmentShader:o.CopyShader.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:i.SrcAlphaFactor,blendDst:i.OneMinusSrcAlphaFactor,blendEquation:i.AddEquation,blendSrcAlpha:i.SrcAlphaFactor,blendDstAlpha:i.OneMinusSrcAlphaFactor,blendEquationAlpha:i.AddEquation}),this.fsQuad=new s.FullScreenQuad(null),this.originalClearColor=new i.Color}dispose(){this.beautyRenderTarget.dispose(),this.prevRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.metalnessRenderTarget.dispose(),this.ssrRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.blurRenderTarget2.dispose(),this.normalMaterial.dispose(),this.metalnessOnMaterial.dispose(),this.metalnessOffMaterial.dispose(),this.blurMaterial.dispose(),this.blurMaterial2.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()}render(e,t){switch(e.setRenderTarget(this.beautyRenderTarget),e.clear(),this.groundReflector&&(this.groundReflector.visible=!1,this.groundReflector.doRender(this.renderer,this.scene,this.camera),this.groundReflector.visible=!0),e.render(this.scene,this.camera),this.groundReflector&&(this.groundReflector.visible=!1),this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,0,0),this.selective&&this.renderMetalness(e,this.metalnessOnMaterial,this.metalnessRenderTarget,0,0),this.ssrMaterial.uniforms.opacity.value=this.opacity,this.ssrMaterial.uniforms.maxDistance.value=this.maxDistance,this.ssrMaterial.uniforms.thickness.value=this.thickness,this.renderPass(e,this.ssrMaterial,this.ssrRenderTarget),this.blur&&(this.renderPass(e,this.blurMaterial,this.blurRenderTarget),this.renderPass(e,this.blurMaterial2,this.blurRenderTarget2)),this.output){case l.OUTPUT.Default:this.bouncing?(this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.prevRenderTarget),this.blur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=i.NormalBlending,this.renderPass(e,this.copyMaterial,this.prevRenderTarget),this.copyMaterial.uniforms.tDiffuse.value=this.prevRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t)):(this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.blur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=i.NormalBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t));break;case l.OUTPUT.SSR:this.blur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.bouncing&&(this.blur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.prevRenderTarget),this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=i.NormalBlending,this.renderPass(e,this.copyMaterial,this.prevRenderTarget));break;case l.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case l.OUTPUT.Depth:this.renderPass(e,this.depthRenderMaterial,this.renderToScreen?null:t);break;case l.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case l.OUTPUT.Metalness:this.copyMaterial.uniforms.tDiffuse.value=this.metalnessRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;default:console.warn("THREE.SSRPass: Unknown output type.")}}renderPass(e,t,n,r,i){this.originalClearColor.copy(e.getClearColor(this.tempColor));const s=e.getClearAlpha(this.tempColor),a=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,null!=r&&(e.setClearColor(r),e.setClearAlpha(i||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderOverride(e,t,n,r,i){this.originalClearColor.copy(e.getClearColor(this.tempColor));const s=e.getClearAlpha(this.tempColor),a=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,r=t.clearColor||r,i=t.clearAlpha||i,null!=r&&(e.setClearColor(r),e.setClearAlpha(i||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderMetalness(e,t,n,r,i){this.originalClearColor.copy(e.getClearColor(this.tempColor));const s=e.getClearAlpha(this.tempColor),a=e.autoClear;e.setRenderTarget(n),e.autoClear=!1,r=t.clearColor||r,i=t.clearAlpha||i,null!=r&&(e.setClearColor(r),e.setClearAlpha(i||0),e.clear()),this.scene.traverseVisible((e=>{e._SSRPassBackupMaterial=e.material,this._selects.includes(e)?e.material=this.metalnessOnMaterial:e.material=this.metalnessOffMaterial})),e.render(this.scene,this.camera),this.scene.traverseVisible((e=>{e.material=e._SSRPassBackupMaterial})),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}setSize(e,t){this.width=e,this.height=t,this.ssrMaterial.defines.MAX_STEP=Math.sqrt(e*e+t*t),this.ssrMaterial.needsUpdate=!0,this.beautyRenderTarget.setSize(e,t),this.prevRenderTarget.setSize(e,t),this.ssrRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.metalnessRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.blurRenderTarget2.setSize(e,t),this.ssrMaterial.uniforms.resolution.value.set(e,t),this.ssrMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssrMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t),this.blurMaterial2.uniforms.resolution.value.set(e,t)}};let c=l;var h;((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(c,"symbol"!=typeof(h="OUTPUT")?h+"":h,{Default:0,SSR:1,Beauty:3,Depth:4,Normal:5,Metalness:7}),t.SSRPass=c},64753:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(49190),s=n(83453);class a extends i.Pass{constructor(e){super(),void 0===s.CopyShader&&console.error("THREE.SavePass relies on CopyShader");const t=s.CopyShader;this.textureID="tDiffuse",this.uniforms=r.UniformsUtils.clone(t.uniforms),this.material=new r.ShaderMaterial({uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,blending:r.NoBlending}),this.renderTarget=e,void 0===this.renderTarget&&(this.renderTarget=new r.WebGLRenderTarget(window.innerWidth,window.innerHeight),this.renderTarget.texture.name="SavePass.rt"),this.needsSwap=!1,this.fsQuad=new i.FullScreenQuad(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),e.setRenderTarget(this.renderTarget),this.clear&&e.clear(),this.fsQuad.render(e)}}t.SavePass=a},18921:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(49190);class o extends a.Pass{constructor(e,t="tDiffuse"){super(),i(this,"textureID"),i(this,"uniforms"),i(this,"material"),i(this,"fsQuad"),this.textureID=t,e instanceof s.ShaderMaterial?(this.uniforms=e.uniforms,this.material=e):(this.uniforms=s.UniformsUtils.clone(e.uniforms),this.material=new s.ShaderMaterial({defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new a.FullScreenQuad(this.material)}render(e,t,n){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=n.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}}t.ShaderPass=o},98060:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(44652);class s extends i.SSAARenderPass{constructor(e,t,n,r){super(e,t,n,r),this.sampleLevel=0,this.accumulate=!1,this.accumulateIndex=-1}render(e,t,n,i){if(!1===this.accumulate)return super.render(e,t,n,i),void(this.accumulateIndex=-1);const s=a[5];void 0===this.sampleRenderTarget&&(this.sampleRenderTarget=new r.WebGLRenderTarget(n.width,n.height,{type:r.HalfFloatType}),this.sampleRenderTarget.texture.name="TAARenderPass.sample"),void 0===this.holdRenderTarget&&(this.holdRenderTarget=new r.WebGLRenderTarget(n.width,n.height,{type:r.HalfFloatType}),this.holdRenderTarget.texture.name="TAARenderPass.hold"),-1===this.accumulateIndex&&(super.render(e,this.holdRenderTarget,n,i),this.accumulateIndex=0);const o=e.autoClear;e.autoClear=!1,e.getClearColor(this._oldClearColor);const l=e.getClearAlpha(),c=1/s.length;if(this.accumulateIndex>=0&&this.accumulateIndex=s.length)break}this.camera.clearViewOffset&&this.camera.clearViewOffset()}e.setClearColor(this.clearColor,this.clearAlpha);const h=this.accumulateIndex*c;h>0&&(this.copyUniforms.opacity.value=1,this.copyUniforms.tDiffuse.value=this.sampleRenderTarget.texture,e.setRenderTarget(t),e.clear(),this.fsQuad.render(e)),h<1&&(this.copyUniforms.opacity.value=1-h,this.copyUniforms.tDiffuse.value=this.holdRenderTarget.texture,e.setRenderTarget(t),this.fsQuad.render(e)),e.autoClear=o,e.setClearColor(this._oldClearColor,l)}dispose(){super.dispose(),void 0!==this.sampleRenderTarget&&this.sampleRenderTarget.dispose(),void 0!==this.holdRenderTarget&&this.holdRenderTarget.dispose()}}const a=[[[0,0]],[[4,4],[-4,-4]],[[-2,-6],[6,-2],[-6,2],[2,6]],[[1,-3],[-1,3],[5,1],[-3,-5],[-5,5],[-7,-1],[3,7],[7,-7]],[[1,1],[-1,-3],[-3,2],[4,-1],[-5,-2],[2,5],[5,3],[3,-5],[-2,6],[0,-7],[-4,-6],[-6,4],[-8,0],[7,-4],[6,7],[-7,-8]],[[-4,-7],[-7,-5],[-3,-5],[-5,-4],[-1,-4],[-2,-2],[-6,-1],[-4,0],[-7,1],[-1,2],[-6,3],[-3,3],[-7,6],[-3,6],[-5,7],[-1,7],[5,-7],[1,-6],[6,-5],[4,-4],[2,-3],[7,-2],[1,-1],[4,-1],[2,1],[6,2],[0,4],[4,4],[2,5],[7,5],[5,6],[3,7]]];t.TAARenderPass=s},70866:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(49190),s=n(83453);class a extends i.Pass{constructor(e,t){super();const n=s.CopyShader;this.map=e,this.opacity=void 0!==t?t:1,this.uniforms=r.UniformsUtils.clone(n.uniforms),this.material=new r.ShaderMaterial({uniforms:this.uniforms,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,depthTest:!1,depthWrite:!1,premultipliedAlpha:!0}),this.needsSwap=!1,this.fsQuad=new i.FullScreenQuad(null)}render(e,t,n){const r=e.autoClear;e.autoClear=!1,this.fsQuad.material=this.material,this.uniforms.opacity.value=this.opacity,this.uniforms.tDiffuse.value=this.map,this.material.transparent=this.opacity<1,e.setRenderTarget(this.renderToScreen?null:n),this.clear&&e.clear(),this.fsQuad.render(e),e.autoClear=r}dispose(){this.material.dispose(),this.fsQuad.dispose()}}t.TexturePass=a},24064:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(49190),o=n(83453),l=n(78440),c=class extends a.Pass{constructor(e,t,n,r){super(),this.strength=void 0!==t?t:1,this.radius=n,this.threshold=r,this.resolution=void 0!==e?new s.Vector2(e.x,e.y):new s.Vector2(256,256),this.clearColor=new s.Color(0,0,0),this.renderTargetsHorizontal=[],this.renderTargetsVertical=[],this.nMips=5;let i=Math.round(this.resolution.x/2),c=Math.round(this.resolution.y/2);this.renderTargetBright=new s.WebGLRenderTarget(i,c,{type:s.HalfFloatType}),this.renderTargetBright.texture.name="UnrealBloomPass.bright",this.renderTargetBright.texture.generateMipmaps=!1;for(let a=0;a\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat fSigma = float(SIGMA);\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, fSigma);\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, fSigma);\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new s.ShaderMaterial({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}};let h=c;i(h,"BlurDirectionX",new s.Vector2(1,0)),i(h,"BlurDirectionY",new s.Vector2(0,1)),t.UnrealBloomPass=h},4437:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(49190);class o extends a.Pass{constructor(){super(),i(this,"material"),i(this,"fsQuad"),i(this,"factor"),i(this,"time"),i(this,"uniforms"),this.uniforms=s.UniformsUtils.clone({tex:{value:null},time:{value:0},factor:{value:0},resolution:{value:new s.Vector2(64,64)}}),this.material=new s.ShaderMaterial({uniforms:this.uniforms,vertexShader:"\n varying vec2 vUv;\n void main(){ \n vUv = uv; \n vec4 modelViewPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewPosition;\n }",fragmentShader:"\n uniform float time;\n uniform float factor;\n uniform vec2 resolution;\n uniform sampler2D tex;\n varying vec2 vUv;\n void main() { \n vec2 uv1 = vUv;\n vec2 uv = gl_FragCoord.xy/resolution.xy;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = uv1.y * frequency + time * .7; \n float y = uv1.x * frequency + time * .3;\n uv1.x += cos(x+y) * amplitude * cos(y);\n uv1.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(tex, uv1);\n gl_FragColor = rgba;\n }"}),this.fsQuad=new a.FullScreenQuad(this.material),this.factor=0,this.time=0}render(e,t,n){this.uniforms.tex.value=n.texture,this.uniforms.time.value=this.time,this.uniforms.factor.value=this.factor,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}}t.WaterPass=o},58688:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i extends r.Object3D{constructor(e=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new r.Vector2(.5,.5),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this.center=e.center,this}}const s=new r.Vector3,a=new r.Matrix4,o=new r.Matrix4,l=new r.Vector3,c=new r.Vector3;t.CSS2DObject=i,t.CSS2DRenderer=class{constructor(e={}){const t=this;let n,r,i,h;const u={objects:new WeakMap},d=void 0!==e.element?e.element:document.createElement("div");function p(e,n,r){if(e.isCSS2DObject){s.setFromMatrixPosition(e.matrixWorld),s.applyMatrix4(o);const a=!0===e.visible&&s.z>=-1&&s.z<=1&&!0===e.layers.test(r.layers);if(e.element.style.display=!0===a?"":"none",!0===a){e.onBeforeRender(t,n,r);const a=e.element;a.style.transform="translate("+-100*e.center.x+"%,"+-100*e.center.y+"%)translate("+(s.x*i+i)+"px,"+(-s.y*h+h)+"px)",a.parentNode!==d&&d.appendChild(a),e.onAfterRender(t,n,r)}const l={distanceToCameraSquared:f(r,e)};u.objects.set(e,l)}for(let t=0,i=e.children.length;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Vector3,s=new r.Quaternion,a=new r.Vector3;class o extends r.Object3D{constructor(e=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this}}const l=new r.Matrix4,c=new r.Matrix4;t.CSS3DObject=o,t.CSS3DRenderer=class{constructor(e={}){const t=this;let n,r,o,h;const u={camera:{style:""},objects:new WeakMap},d=void 0!==e.element?e.element:document.createElement("div");d.style.overflow="hidden",this.domElement=d;const p=document.createElement("div");p.style.transformOrigin="0 0",p.style.pointerEvents="none",d.appendChild(p);const f=document.createElement("div");function m(e){return Math.abs(e)<1e-10?0:e}function g(e){const t=e.elements;return"matrix3d("+m(t[0])+","+m(-t[1])+","+m(t[2])+","+m(t[3])+","+m(t[4])+","+m(-t[5])+","+m(t[6])+","+m(t[7])+","+m(t[8])+","+m(-t[9])+","+m(t[10])+","+m(t[11])+","+m(t[12])+","+m(-t[13])+","+m(t[14])+","+m(t[15])+")"}function A(e){const t=e.elements;return"translate(-50%,-50%)"+("matrix3d("+m(t[0])+","+m(t[1])+","+m(t[2])+","+m(t[3])+","+m(-t[4])+","+m(-t[5])+","+m(-t[6])+","+m(-t[7])+","+m(t[8])+","+m(t[9])+","+m(t[10])+","+m(t[11])+","+m(t[12])+","+m(t[13])+","+m(t[14])+","+m(t[15])+")")}function v(e,n,r,o){if(e.isCSS3DObject){const o=!0===e.visible&&!0===e.layers.test(r.layers);if(e.element.style.display=!0===o?"":"none",!0===o){let o;e.onBeforeRender(t,n,r),e.isCSS3DSprite?(l.copy(r.matrixWorldInverse),l.transpose(),0!==e.rotation2D&&l.multiply(c.makeRotationZ(e.rotation2D)),e.matrixWorld.decompose(i,s,a),l.setPosition(i),l.scale(a),l.elements[3]=0,l.elements[7]=0,l.elements[11]=0,l.elements[15]=1,o=A(l)):o=A(e.matrixWorld);const h=e.element,d=u.objects.get(e);if(void 0===d||d.style!==o){h.style.transform=o;const t={style:o};u.objects.set(e,t)}h.parentNode!==f&&f.appendChild(h),e.onAfterRender(t,n,r)}}for(let t=0,i=e.children.length;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i{constructor(){this.id=0,this.object=null,this.z=0,this.renderOrder=0}}class s{constructor(){this.id=0,this.v1=new a,this.v2=new a,this.v3=new a,this.normalModel=new r.Vector3,this.vertexNormalsModel=[new r.Vector3,new r.Vector3,new r.Vector3],this.vertexNormalsLength=0,this.color=new r.Color,this.material=null,this.uvs=[new r.Vector2,new r.Vector2,new r.Vector2],this.z=0,this.renderOrder=0}}class a{constructor(){this.position=new r.Vector3,this.positionWorld=new r.Vector3,this.positionScreen=new r.Vector4,this.visible=!0}copy(e){this.positionWorld.copy(e.positionWorld),this.positionScreen.copy(e.positionScreen)}}class o{constructor(){this.id=0,this.v1=new a,this.v2=new a,this.vertexColors=[new r.Color,new r.Color],this.material=null,this.z=0,this.renderOrder=0}}class l{constructor(){this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new r.Vector2,this.material=null,this.renderOrder=0}}t.Projector=class{constructor(){let e,t,n,c,h,u,d,p,f,m,g,A=0,v=0,y=0,x=0,b=0;const E={objects:[],lights:[],elements:[]},_=new r.Vector3,S=new r.Vector4,w=new r.Box3(new r.Vector3(-1,-1,-1),new r.Vector3(1,1,1)),M=new r.Box3,C=new Array(3),T=new r.Matrix4,I=new r.Matrix4,B=new r.Matrix4,R=new r.Frustum,P=[],D=[],L=[],F=[],U=[];const O=new function(){const e=[],t=[],i=[];let l=null;const f=new r.Matrix3;function m(e){const t=e.position,n=e.positionWorld,r=e.positionScreen;n.copy(t).applyMatrix4(g),r.copy(n).applyMatrix4(I);const i=1/r.w;r.x*=i,r.y*=i,r.z*=i,e.visible=r.x>=-1&&r.x<=1&&r.y>=-1&&r.y<=1&&r.z>=-1&&r.z<=1}function A(e,t,n){return!0===e.visible||!0===t.visible||!0===n.visible||(C[0]=e.positionScreen,C[1]=t.positionScreen,C[2]=n.positionScreen,w.intersectsBox(M.setFromPoints(C)))}function b(e,t,n){return(n.positionScreen.x-e.positionScreen.x)*(t.positionScreen.y-e.positionScreen.y)-(n.positionScreen.y-e.positionScreen.y)*(t.positionScreen.x-e.positionScreen.x)<0}return{setObject:function(n){l=n,f.getNormalMatrix(l.matrixWorld),e.length=0,t.length=0,i.length=0},projectVertex:m,checkTriangleVisibility:A,checkBackfaceCulling:b,pushVertex:function(e,t,r){n=function(){if(c===v){const e=new a;return D.push(e),v++,c++,e}return D[c++]}(),n.position.set(e,t,r),m(n)},pushNormal:function(t,n,r){e.push(t,n,r)},pushColor:function(e,n,r){t.push(e,n,r)},pushUv:function(e,t){i.push(e,t)},pushLine:function(e,n){const r=D[e],i=D[n];r.positionScreen.copy(r.position).applyMatrix4(B),i.positionScreen.copy(i.position).applyMatrix4(B),!0===function(e,t){let n=0,r=1;const i=e.z+e.w,s=t.z+t.w,a=-e.z+e.w,o=-t.z+t.w;return i>=0&&s>=0&&a>=0&&o>=0||!(i<0&&s<0||a<0&&o<0)&&(i<0?n=Math.max(n,i/(i-s)):s<0&&(r=Math.min(r,i/(i-s))),a<0?n=Math.max(n,a/(a-o)):o<0&&(r=Math.min(r,a/(a-o))),!(r=-1&&e.z<=1&&(f=function(){if(m===b){const e=new l;return U.push(e),b++,m++,e}return U[m++]}(),f.id=t.id,f.x=e.x*r,f.y=e.y*r,f.z=e.z,f.renderOrder=t.renderOrder,f.object=t,f.rotation=t.rotation,f.scale.x=t.scale.x*Math.abs(f.x-(e.x+n.projectionMatrix.elements[0])/(e.w+n.projectionMatrix.elements[12])),f.scale.y=t.scale.y*Math.abs(f.y-(e.y+n.projectionMatrix.elements[5])/(e.w+n.projectionMatrix.elements[13])),f.material=t.material,E.elements.push(f))}function z(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id!==t.id?e.id-t.id:0}this.projectScene=function(e,n,r,i){u=0,p=0,m=0,E.elements.length=0,!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===n.parent&&!0===n.matrixWorldAutoUpdate&&n.updateMatrixWorld(),T.copy(n.matrixWorldInverse),I.multiplyMatrices(n.projectionMatrix,T),R.setFromProjectionMatrix(I),t=0,E.objects.length=0,E.lights.length=0,N(e),!0===r&&E.objects.sort(z);const s=E.objects;for(let t=0,a=s.length;t0)for(let r=0;r0)for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(35404);class s extends r.Object3D{constructor(e){super(),this.isSVGObject=!0,this.node=e}}t.SVGObject=s,t.SVGRenderer=class{constructor(){let e,t,n,s,a,o,l,c,h,u,d,p,f,m=0,g=null,A=1;const v=this,y=new r.Box2,x=new r.Box2,b=new r.Color,E=new r.Color,_=new r.Color,S=new r.Color,w=new r.Color,M=new r.Color,C=new r.Vector3,T=new r.Vector3,I=new r.Vector3,B=new r.Matrix3,R=new r.Matrix4,P=new r.Matrix4,D=[],L=new i.Projector,F=document.createElementNS("http://www.w3.org/2000/svg","svg");function U(){for(m=0;F.childNodes.length>0;)F.removeChild(F.childNodes[0])}function O(e){return null!==g?e.toFixed(g):e}function N(e,t,n){let r=t.scale.x*o,i=t.scale.y*l;n.isPointsMaterial&&(r*=n.size,i*=n.size);const s="M"+O(e.x-.5*r)+","+O(e.y-.5*i)+"h"+O(r)+"v"+O(i)+"h"+O(-r)+"z";let a="";(n.isSpriteMaterial||n.isPointsMaterial)&&(a="fill:"+n.color.getStyle()+";fill-opacity:"+n.opacity),Q(a,s)}function k(e,t,n){const r="M"+O(e.positionScreen.x)+","+O(e.positionScreen.y)+"L"+O(t.positionScreen.x)+","+O(t.positionScreen.y);if(n.isLineBasicMaterial){let e="fill:none;stroke:"+n.color.getStyle()+";stroke-opacity:"+n.opacity+";stroke-width:"+n.linewidth+";stroke-linecap:"+n.linecap;n.isLineDashedMaterial&&(e=e+";stroke-dasharray:"+n.dashSize+","+n.gapSize),Q(e,r)}}function G(e,t,r,i,s){v.info.render.vertices+=3,v.info.render.faces++;const a="M"+O(e.positionScreen.x)+","+O(e.positionScreen.y)+"L"+O(t.positionScreen.x)+","+O(t.positionScreen.y)+"L"+O(r.positionScreen.x)+","+O(r.positionScreen.y)+"z";let o="";s.isMeshBasicMaterial?(b.copy(s.color),s.vertexColors&&b.multiply(i.color)):s.isMeshLambertMaterial||s.isMeshPhongMaterial||s.isMeshStandardMaterial?(E.copy(s.color),s.vertexColors&&E.multiply(i.color),b.copy(_),T.copy(e.positionWorld).add(t.positionWorld).add(r.positionWorld).divideScalar(3),function(e,t,n,r){for(let i=0,s=e.length;i1)continue;if(h.positionScreen.z<-1||h.positionScreen.z>1)continue;if(u.positionScreen.z<-1||u.positionScreen.z>1)continue;c.positionScreen.x*=o,c.positionScreen.y*=-l,h.positionScreen.x*=o,h.positionScreen.y*=-l,u.positionScreen.x*=o,u.positionScreen.y*=-l,this.overdraw>0&&(z(c.positionScreen,h.positionScreen,this.overdraw),z(h.positionScreen,u.positionScreen,this.overdraw),z(u.positionScreen,c.positionScreen,this.overdraw)),x.setFromPoints([c.positionScreen,h.positionScreen,u.positionScreen]),!0===y.intersectsBox(x)&&G(c,h,u,n,r)}}V(),s.traverseVisible((function(e){if(e.isSVGObject){if(C.setFromMatrixPosition(e.matrixWorld),C.applyMatrix4(P),C.z<-1||C.z>1)return;const t=C.x*o,n=-C.y*l,r=e.node;r.setAttribute("transform","translate("+t+","+n+")"),F.appendChild(r)}}))}}}},42333:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},exposure:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define saturate(a) clamp( a, 0.0, 1.0 )","uniform sampler2D tDiffuse;","uniform float exposure;","varying vec2 vUv;","vec3 RRTAndODTFit( vec3 v ) {","\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;","\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;","\treturn a / b;","}","vec3 ACESFilmicToneMapping( vec3 color ) {","\tconst mat3 ACESInputMat = mat3(","\t\tvec3( 0.59719, 0.07600, 0.02840 ),","\t\tvec3( 0.35458, 0.90834, 0.13383 ),","\t\tvec3( 0.04823, 0.01566, 0.83777 )","\t);","\tconst mat3 ACESOutputMat = mat3(","\t\tvec3( 1.60475, -0.10208, -0.00327 ),","\t\tvec3( -0.53108, 1.10813, -0.07276 ),","\t\tvec3( -0.07367, -0.00605, 1.07602 )","\t);","\tcolor = ACESInputMat * color;","\tcolor = RRTAndODTFit( color );","\tcolor = ACESOutputMat * color;","\treturn saturate( color );","}","void main() {","\tvec4 tex = texture2D( tDiffuse, vUv );","\ttex.rgb *= exposure / 0.6;","\tgl_FragColor = vec4( ACESFilmicToneMapping( tex.rgb ), tex.a );","}"].join("\n")};t.ACESFilmicToneMappingShader=n},70382:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{damp:{value:.96},tOld:{value:null},tNew:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float damp;","uniform sampler2D tOld;","uniform sampler2D tNew;","varying vec2 vUv;","vec4 when_gt( vec4 x, float y ) {","\treturn max( sign( x - y ), 0.0 );","}","void main() {","\tvec4 texelOld = texture2D( tOld, vUv );","\tvec4 texelNew = texture2D( tNew, vUv );","\ttexelOld *= damp * when_gt( texelOld, 0.1 );","\tgl_FragColor = max(texelNew, texelOld);","}"].join("\n")};t.AfterimageShader=n},17853:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{},vertexShader:["void main() {","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["void main() {","\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 );","}"].join("\n")};t.BasicShader=n},18260:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 base = texture2D( tDiffuse, vUv );","\tvec3 lumCoeff = vec3( 0.25, 0.65, 0.1 );","\tfloat lum = dot( lumCoeff, base.rgb );","\tvec3 blend = vec3( lum );","\tfloat L = min( 1.0, max( 0.0, 10.0 * ( lum - 0.45 ) ) );","\tvec3 result1 = 2.0 * base.rgb * blend;","\tvec3 result2 = 1.0 - 2.0 * ( 1.0 - blend ) * ( 1.0 - base.rgb );","\tvec3 newColor = mix( result1, result2, L );","\tfloat A2 = opacity * base.a;","\tvec3 mixRGB = A2 * newColor.rgb;","\tmixRGB += ( ( 1.0 - A2 ) * base.rgb );","\tgl_FragColor = vec4( mixRGB, base.a );","}"].join("\n")};t.BleachBypassShader=n},69556:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse1:{value:null},tDiffuse2:{value:null},mixRatio:{value:.5},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform float mixRatio;","uniform sampler2D tDiffuse1;","uniform sampler2D tDiffuse2;","varying vec2 vUv;","void main() {","\tvec4 texel1 = texture2D( tDiffuse1, vUv );","\tvec4 texel2 = texture2D( tDiffuse2, vUv );","\tgl_FragColor = opacity * mix( texel1, texel2, mixRatio );","}"].join("\n")};t.BlendShader=n},73500:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={defines:{DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tColor:{value:null},tDepth:{value:null},focus:{value:1},aspect:{value:1},aperture:{value:.025},maxblur:{value:.01},nearClip:{value:1},farClip:{value:1e3}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","varying vec2 vUv;","uniform sampler2D tColor;","uniform sampler2D tDepth;","uniform float maxblur;","uniform float aperture;","uniform float nearClip;","uniform float farClip;","uniform float focus;","uniform float aspect;","#include ","float getDepth( const in vec2 screenPosition ) {","\t#if DEPTH_PACKING == 1","\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );","\t#else","\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","float getViewZ( const in float depth ) {","\t#if PERSPECTIVE_CAMERA == 1","\treturn perspectiveDepthToViewZ( depth, nearClip, farClip );","\t#else","\treturn orthographicDepthToViewZ( depth, nearClip, farClip );","\t#endif","}","void main() {","\tvec2 aspectcorrect = vec2( 1.0, aspect );","\tfloat viewZ = getViewZ( getDepth( vUv ) );","\tfloat factor = ( focus + viewZ );","\tvec2 dofblur = vec2 ( clamp( factor * aperture, -maxblur, maxblur ) );","\tvec2 dofblur9 = dofblur * 0.9;","\tvec2 dofblur7 = dofblur * 0.7;","\tvec2 dofblur4 = dofblur * 0.4;","\tvec4 col = vec4( 0.0 );","\tcol += texture2D( tColor, vUv.xy );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.4, 0.0 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur4 );","\tgl_FragColor = col / 41.0;","\tgl_FragColor.a = 1.0;","}"].join("\n")};t.BokehShader=n},67971:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{textureWidth:{value:1},textureHeight:{value:1},focalDepth:{value:1},focalLength:{value:24},fstop:{value:.9},tColor:{value:null},tDepth:{value:null},maxblur:{value:1},showFocus:{value:0},manualdof:{value:0},vignetting:{value:0},depthblur:{value:0},threshold:{value:.5},gain:{value:2},bias:{value:.5},fringe:{value:.7},znear:{value:.1},zfar:{value:100},noise:{value:1},dithering:{value:1e-4},pentagon:{value:0},shaderFocus:{value:1},focusCoords:{value:new(n(85232).Vector2)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","varying vec2 vUv;","uniform sampler2D tColor;","uniform sampler2D tDepth;","uniform float textureWidth;","uniform float textureHeight;","uniform float focalDepth; //focal distance value in meters, but you may use autofocus option below","uniform float focalLength; //focal length in mm","uniform float fstop; //f-stop value","uniform bool showFocus; //show debug focus point and focal range (red = focal point, green = focal range)","/*","make sure that these two values are the same for your camera, otherwise distances will be wrong.","*/","uniform float znear; // camera clipping start","uniform float zfar; // camera clipping end","//------------------------------------------","//user variables","const int samples = SAMPLES; //samples on the first ring","const int rings = RINGS; //ring count","const int maxringsamples = rings * samples;","uniform bool manualdof; // manual dof calculation","float ndofstart = 1.0; // near dof blur start","float ndofdist = 2.0; // near dof blur falloff distance","float fdofstart = 1.0; // far dof blur start","float fdofdist = 3.0; // far dof blur falloff distance","float CoC = 0.03; //circle of confusion size in mm (35mm film = 0.03mm)","uniform bool vignetting; // use optical lens vignetting","float vignout = 1.3; // vignetting outer border","float vignin = 0.0; // vignetting inner border","float vignfade = 22.0; // f-stops till vignete fades","uniform bool shaderFocus;","// disable if you use external focalDepth value","uniform vec2 focusCoords;","// autofocus point on screen (0.0,0.0 - left lower corner, 1.0,1.0 - upper right)","// if center of screen use vec2(0.5, 0.5);","uniform float maxblur;","//clamp value of max blur (0.0 = no blur, 1.0 default)","uniform float threshold; // highlight threshold;","uniform float gain; // highlight gain;","uniform float bias; // bokeh edge bias","uniform float fringe; // bokeh chromatic aberration / fringing","uniform bool noise; //use noise instead of pattern for sample dithering","uniform float dithering;","uniform bool depthblur; // blur the depth buffer","float dbsize = 1.25; // depth blur size","/*","next part is experimental","not looking good with small sample and ring count","looks okay starting from samples = 4, rings = 4","*/","uniform bool pentagon; //use pentagon as bokeh shape?","float feather = 0.4; //pentagon shape feather","//------------------------------------------","float penta(vec2 coords) {","\t//pentagonal shape","\tfloat scale = float(rings) - 1.3;","\tvec4 HS0 = vec4( 1.0, 0.0, 0.0, 1.0);","\tvec4 HS1 = vec4( 0.309016994, 0.951056516, 0.0, 1.0);","\tvec4 HS2 = vec4(-0.809016994, 0.587785252, 0.0, 1.0);","\tvec4 HS3 = vec4(-0.809016994,-0.587785252, 0.0, 1.0);","\tvec4 HS4 = vec4( 0.309016994,-0.951056516, 0.0, 1.0);","\tvec4 HS5 = vec4( 0.0 ,0.0 , 1.0, 1.0);","\tvec4 one = vec4( 1.0 );","\tvec4 P = vec4((coords),vec2(scale, scale));","\tvec4 dist = vec4(0.0);","\tfloat inorout = -4.0;","\tdist.x = dot( P, HS0 );","\tdist.y = dot( P, HS1 );","\tdist.z = dot( P, HS2 );","\tdist.w = dot( P, HS3 );","\tdist = smoothstep( -feather, feather, dist );","\tinorout += dot( dist, one );","\tdist.x = dot( P, HS4 );","\tdist.y = HS5.w - abs( P.z );","\tdist = smoothstep( -feather, feather, dist );","\tinorout += dist.x;","\treturn clamp( inorout, 0.0, 1.0 );","}","float bdepth(vec2 coords) {","\t// Depth buffer blur","\tfloat d = 0.0;","\tfloat kernel[9];","\tvec2 offset[9];","\tvec2 wh = vec2(1.0/textureWidth,1.0/textureHeight) * dbsize;","\toffset[0] = vec2(-wh.x,-wh.y);","\toffset[1] = vec2( 0.0, -wh.y);","\toffset[2] = vec2( wh.x -wh.y);","\toffset[3] = vec2(-wh.x, 0.0);","\toffset[4] = vec2( 0.0, 0.0);","\toffset[5] = vec2( wh.x, 0.0);","\toffset[6] = vec2(-wh.x, wh.y);","\toffset[7] = vec2( 0.0, wh.y);","\toffset[8] = vec2( wh.x, wh.y);","\tkernel[0] = 1.0/16.0; kernel[1] = 2.0/16.0; kernel[2] = 1.0/16.0;","\tkernel[3] = 2.0/16.0; kernel[4] = 4.0/16.0; kernel[5] = 2.0/16.0;","\tkernel[6] = 1.0/16.0; kernel[7] = 2.0/16.0; kernel[8] = 1.0/16.0;","\tfor( int i=0; i<9; i++ ) {","\t\tfloat tmp = texture2D(tDepth, coords + offset[i]).r;","\t\td += tmp * kernel[i];","\t}","\treturn d;","}","vec3 color(vec2 coords,float blur) {","\t//processing the sample","\tvec3 col = vec3(0.0);","\tvec2 texel = vec2(1.0/textureWidth,1.0/textureHeight);","\tcol.r = texture2D(tColor,coords + vec2(0.0,1.0)*texel*fringe*blur).r;","\tcol.g = texture2D(tColor,coords + vec2(-0.866,-0.5)*texel*fringe*blur).g;","\tcol.b = texture2D(tColor,coords + vec2(0.866,-0.5)*texel*fringe*blur).b;","\tvec3 lumcoeff = vec3(0.299,0.587,0.114);","\tfloat lum = dot(col.rgb, lumcoeff);","\tfloat thresh = max((lum-threshold)*gain, 0.0);","\treturn col+mix(vec3(0.0),col,thresh*blur);","}","vec3 debugFocus(vec3 col, float blur, float depth) {","\tfloat edge = 0.002*depth; //distance based edge smoothing","\tfloat m = clamp(smoothstep(0.0,edge,blur),0.0,1.0);","\tfloat e = clamp(smoothstep(1.0-edge,1.0,blur),0.0,1.0);","\tcol = mix(col,vec3(1.0,0.5,0.0),(1.0-m)*0.6);","\tcol = mix(col,vec3(0.0,0.5,1.0),((1.0-e)-(1.0-m))*0.2);","\treturn col;","}","float linearize(float depth) {","\treturn -zfar * znear / (depth * (zfar - znear) - zfar);","}","float vignette() {","\tfloat dist = distance(vUv.xy, vec2(0.5,0.5));","\tdist = smoothstep(vignout+(fstop/vignfade), vignin+(fstop/vignfade), dist);","\treturn clamp(dist,0.0,1.0);","}","float gather(float i, float j, int ringsamples, inout vec3 col, float w, float h, float blur) {","\tfloat rings2 = float(rings);","\tfloat step = PI*2.0 / float(ringsamples);","\tfloat pw = cos(j*step)*i;","\tfloat ph = sin(j*step)*i;","\tfloat p = 1.0;","\tif (pentagon) {","\t\tp = penta(vec2(pw,ph));","\t}","\tcol += color(vUv.xy + vec2(pw*w,ph*h), blur) * mix(1.0, i/rings2, bias) * p;","\treturn 1.0 * mix(1.0, i /rings2, bias) * p;","}","void main() {","\t//scene depth calculation","\tfloat depth = linearize(texture2D(tDepth,vUv.xy).x);","\t// Blur depth?","\tif ( depthblur ) {","\t\tdepth = linearize(bdepth(vUv.xy));","\t}","\t//focal plane calculation","\tfloat fDepth = focalDepth;","\tif (shaderFocus) {","\t\tfDepth = linearize(texture2D(tDepth,focusCoords).x);","\t}","\t// dof blur factor calculation","\tfloat blur = 0.0;","\tif (manualdof) {","\t\tfloat a = depth-fDepth; // Focal plane","\t\tfloat b = (a-fdofstart)/fdofdist; // Far DoF","\t\tfloat c = (-a-ndofstart)/ndofdist; // Near Dof","\t\tblur = (a>0.0) ? b : c;","\t} else {","\t\tfloat f = focalLength; // focal length in mm","\t\tfloat d = fDepth*1000.0; // focal plane in mm","\t\tfloat o = depth*1000.0; // depth in mm","\t\tfloat a = (o*f)/(o-f);","\t\tfloat b = (d*f)/(d-f);","\t\tfloat c = (d-f)/(d*fstop*CoC);","\t\tblur = abs(a-b)*c;","\t}","\tblur = clamp(blur,0.0,1.0);","\t// calculation of pattern for dithering","\tvec2 noise = vec2(rand(vUv.xy), rand( vUv.xy + vec2( 0.4, 0.6 ) ) )*dithering*blur;","\t// getting blur x and y step factor","\tfloat w = (1.0/textureWidth)*blur*maxblur+noise.x;","\tfloat h = (1.0/textureHeight)*blur*maxblur+noise.y;","\t// calculation of final color","\tvec3 col = vec3(0.0);","\tif(blur < 0.05) {","\t\t//some optimization thingy","\t\tcol = texture2D(tColor, vUv.xy).rgb;","\t} else {","\t\tcol = texture2D(tColor, vUv.xy).rgb;","\t\tfloat s = 1.0;","\t\tint ringsamples;","\t\tfor (int i = 1; i <= rings; i++) {","\t\t\t/*unboxstart*/","\t\t\tringsamples = i * samples;","\t\t\tfor (int j = 0 ; j < maxringsamples ; j++) {","\t\t\t\tif (j >= ringsamples) break;","\t\t\t\ts += gather(float(i), float(j), ringsamples, col, w, h, blur);","\t\t\t}","\t\t\t/*unboxend*/","\t\t}","\t\tcol /= s; //divide by sample count","\t}","\tif (showFocus) {","\t\tcol = debugFocus(col, blur, depth);","\t}","\tif (vignetting) {","\t\tcol *= vignette();","\t}","\tgl_FragColor.rgb = col;","\tgl_FragColor.a = 1.0;","} "].join("\n")},i={uniforms:{mNear:{value:1},mFar:{value:1e3}},vertexShader:["varying float vViewZDepth;","void main() {","\t#include ","\t#include ","\tvViewZDepth = - mvPosition.z;","}"].join("\n"),fragmentShader:["uniform float mNear;","uniform float mFar;","varying float vViewZDepth;","void main() {","\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );","\tgl_FragColor = vec4( vec3( color ), 1.0 );","} "].join("\n")};t.BokehDepthShader=i,t.BokehShader2=r},49890:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},brightness:{value:0},contrast:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float brightness;","uniform float contrast;","varying vec2 vUv;","void main() {","\tgl_FragColor = texture2D( tDiffuse, vUv );","\tgl_FragColor.rgb += brightness;","\tif (contrast > 0.0) {","\t\tgl_FragColor.rgb = (gl_FragColor.rgb - 0.5) / (1.0 - contrast) + 0.5;","\t} else {","\t\tgl_FragColor.rgb = (gl_FragColor.rgb - 0.5) * (1.0 + contrast) + 0.5;","\t}","}"].join("\n")};t.BrightnessContrastShader=n},67618:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={uniforms:{tDiffuse:{value:null},powRGB:{value:new r.Vector3(2,2,2)},mulRGB:{value:new r.Vector3(1,1,1)},addRGB:{value:new r.Vector3(0,0,0)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform vec3 powRGB;","uniform vec3 mulRGB;","uniform vec3 addRGB;","varying vec2 vUv;","void main() {","\tgl_FragColor = texture2D( tDiffuse, vUv );","\tgl_FragColor.rgb = mulRGB * pow( ( gl_FragColor.rgb + addRGB ), powRGB );","}"].join("\n")};t.ColorCorrectionShader=i},2474:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},color:{value:new(n(85232).Color)(16777215)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform vec3 color;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tvec3 luma = vec3( 0.299, 0.587, 0.114 );","\tfloat v = dot( texel.xyz, luma );","\tgl_FragColor = vec4( v * color, texel.w );","}"].join("\n")};t.ColorifyShader=r},59564:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={defines:{KERNEL_SIZE_FLOAT:"25.0",KERNEL_SIZE_INT:"25"},uniforms:{tDiffuse:{value:null},uImageIncrement:{value:new(n(85232).Vector2)(.001953125,0)},cKernel:{value:[]}},vertexShader:["uniform vec2 uImageIncrement;","varying vec2 vUv;","void main() {","\tvUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float cKernel[ KERNEL_SIZE_INT ];","uniform sampler2D tDiffuse;","uniform vec2 uImageIncrement;","varying vec2 vUv;","void main() {","\tvec2 imageCoord = vUv;","\tvec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );","\tfor( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {","\t\tsum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];","\t\timageCoord += uImageIncrement;","\t}","\tgl_FragColor = sum;","}"].join("\n"),buildKernel:function(e){const t=Math.min(2*Math.ceil(3*e)+1,25),n=.5*(t-1),r=new Array(t);let i=0;for(let o=0;o{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tgl_FragColor = opacity * texel;","}"].join("\n")};t.CopyShader=n},55175:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tColor:{value:null},tDepth:{value:null},focus:{value:1},maxblur:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float focus;","uniform float maxblur;","uniform sampler2D tColor;","uniform sampler2D tDepth;","varying vec2 vUv;","void main() {","\tvec4 depth = texture2D( tDepth, vUv );","\tfloat factor = depth.x - focus;","\tvec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );","\tgl_FragColor = col;","\tgl_FragColor.a = 1.0;","}"].join("\n")};t.DOFMipMapShader=n},86170:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={defines:{KERNEL_RADIUS:4,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDiffuse:{value:null},size:{value:new r.Vector2(512,512)},sampleUvOffsets:{value:[new r.Vector2(0,0)]},sampleWeights:{value:[1]},tDepth:{value:null},cameraNear:{value:10},cameraFar:{value:1e3},depthCutoff:{value:10}},vertexShader:["#include ","uniform vec2 size;","varying vec2 vUv;","varying vec2 vInvSize;","void main() {","\tvUv = uv;","\tvInvSize = 1.0 / size;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","#include ","uniform sampler2D tDiffuse;","uniform sampler2D tDepth;","uniform float cameraNear;","uniform float cameraFar;","uniform float depthCutoff;","uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];","uniform float sampleWeights[ KERNEL_RADIUS + 1 ];","varying vec2 vUv;","varying vec2 vInvSize;","float getDepth( const in vec2 screenPosition ) {","\t#if DEPTH_PACKING == 1","\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );","\t#else","\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","float getViewZ( const in float depth ) {","\t#if PERSPECTIVE_CAMERA == 1","\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );","\t#else","\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );","\t#endif","}","void main() {","\tfloat depth = getDepth( vUv );","\tif( depth >= ( 1.0 - EPSILON ) ) {","\t\tdiscard;","\t}","\tfloat centerViewZ = -getViewZ( depth );","\tbool rBreak = false, lBreak = false;","\tfloat weightSum = sampleWeights[0];","\tvec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;","\tfor( int i = 1; i <= KERNEL_RADIUS; i ++ ) {","\t\tfloat sampleWeight = sampleWeights[i];","\t\tvec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;","\t\tvec2 sampleUv = vUv + sampleUvOffset;","\t\tfloat viewZ = -getViewZ( getDepth( sampleUv ) );","\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;","\t\tif( ! rBreak ) {","\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;","\t\t\tweightSum += sampleWeight;","\t\t}","\t\tsampleUv = vUv - sampleUvOffset;","\t\tviewZ = -getViewZ( getDepth( sampleUv ) );","\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;","\t\tif( ! lBreak ) {","\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;","\t\t\tweightSum += sampleWeight;","\t\t}","\t}","\tgl_FragColor = diffuseSum / weightSum;","}"].join("\n")},s={createSampleWeights:(e,t)=>{const n=[];for(let s=0;s<=e;s++)n.push((r=s,i=t,Math.exp(-r*r/(i*i*2))/(Math.sqrt(2*Math.PI)*i)));var r,i;return n},createSampleOffsets:(e,t)=>{const n=[];for(let r=0;r<=e;r++)n.push(t.clone().multiplyScalar(r));return n},configure:(e,t,n,r)=>{e.defines.KERNEL_RADIUS=t,e.uniforms.sampleUvOffsets.value=s.createSampleOffsets(t,r),e.uniforms.sampleWeights.value=s.createSampleWeights(t,n),e.needsUpdate=!0}};t.BlurShaderUtils=s,t.DepthLimitedBlurShader=i},59305:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},tDisp:{value:null},byp:{value:0},amount:{value:.08},angle:{value:.02},seed:{value:.02},seed_x:{value:.02},seed_y:{value:.02},distortion_x:{value:.5},distortion_y:{value:.6},col_s:{value:.05}},vertexShader:"varying vec2 vUv;\n void main() {\n \t vUv = uv;\n \t gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"uniform int byp; //should we apply the glitch ?\n uniform sampler2D tDiffuse;\n uniform sampler2D tDisp;\n uniform float amount;\n uniform float angle;\n uniform float seed;\n uniform float seed_x;\n uniform float seed_y;\n uniform float distortion_x;\n uniform float distortion_y;\n uniform float col_s;\n\n varying vec2 vUv;\n\n float rand(vec2 co){\n \t return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);\n }\n\n void main() {\n \tif(byp<1) {\n \t\tvec2 p = vUv;\n \t\tfloat xs = floor(gl_FragCoord.x / 0.5);\n \t\tfloat ys = floor(gl_FragCoord.y / 0.5);\n //based on staffantans glitch shader for unity https://github.com/staffantan/unityglitch\n \t\tvec4 normal = texture2D (tDisp, p*seed*seed);\n \t\tif(p.ydistortion_x-col_s*seed) {\n \t\t\tif(seed_x>0.){\n \t\t\t\tp.y = 1. - (p.y + distortion_y);\n \t\t\t}\n \t\t\telse {\n \t\t\t\tp.y = distortion_y;\n \t\t\t}\n \t\t}\n \t\tif(p.xdistortion_y-col_s*seed) {\n \t\t\tif(seed_y>0.){\n \t\t\t\tp.x=distortion_x;\n \t\t\t}\n \t\t\telse {\n \t\t\t\tp.x = 1. - (p.x + distortion_x);\n \t\t\t}\n \t\t}\n \t\tp.x+=normal.x*seed_x*(seed/5.);\n \t\tp.y+=normal.y*seed_y*(seed/5.);\n //base from RGB shift shader\n \t\tvec2 offset = amount * vec2( cos(angle), sin(angle));\n \t\tvec4 cr = texture2D(tDiffuse, p + offset);\n \t\tvec4 cga = texture2D(tDiffuse, p);\n \t\tvec4 cb = texture2D(tDiffuse, p - offset);\n \t\tgl_FragColor = vec4(cr.r, cga.g, cb.b, cga.a);\n //add noise\n \t\tvec4 snow = 200.*amount*vec4(rand(vec2(xs * seed,ys * seed*50.))*0.2);\n \t\tgl_FragColor = gl_FragColor+ snow;\n \t}\n \telse {\n \t\tgl_FragColor=texture2D (tDiffuse, vUv);\n \t}\n }"};t.DigitalGlitch=n},15479:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={uniforms:{tDiffuse:{value:null},tSize:{value:new r.Vector2(256,256)},center:{value:new r.Vector2(.5,.5)},angle:{value:1.57},scale:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform vec2 center;","uniform float angle;","uniform float scale;","uniform vec2 tSize;","uniform sampler2D tDiffuse;","varying vec2 vUv;","float pattern() {","\tfloat s = sin( angle ), c = cos( angle );","\tvec2 tex = vUv * tSize - center;","\tvec2 point = vec2( c * tex.x - s * tex.y, s * tex.x + c * tex.y ) * scale;","\treturn ( sin( point.x ) * sin( point.y ) ) * 4.0;","}","void main() {","\tvec4 color = texture2D( tDiffuse, vUv );","\tfloat average = ( color.r + color.g + color.b ) / 3.0;","\tgl_FragColor = vec4( vec3( average * 10.0 - 5.0 + pattern() ), color.a );","}"].join("\n")};t.DotScreenShader=i},85832:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},resolution:{value:new(n(85232).Vector2)(1/1024,1/512)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["precision highp float;","","uniform sampler2D tDiffuse;","","uniform vec2 resolution;","","varying vec2 vUv;","","// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)","","//----------------------------------------------------------------------------------","// File: es3-keplerFXAAassetsshaders/FXAA_DefaultES.frag","// SDK Version: v3.00","// Email: gameworks@nvidia.com","// Site: http://developer.nvidia.com/","//","// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.","//","// Redistribution and use in source and binary forms, with or without","// modification, are permitted provided that the following conditions","// are met:","// * Redistributions of source code must retain the above copyright","// notice, this list of conditions and the following disclaimer.","// * Redistributions in binary form must reproduce the above copyright","// notice, this list of conditions and the following disclaimer in the","// documentation and/or other materials provided with the distribution.","// * Neither the name of NVIDIA CORPORATION nor the names of its","// contributors may be used to endorse or promote products derived","// from this software without specific prior written permission.","//","// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY","// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE","// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR","// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR","// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,","// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,","// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR","// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY","// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT","// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE","// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.","//","//----------------------------------------------------------------------------------","","#define FXAA_PC 1","#define FXAA_GLSL_100 1","#define FXAA_QUALITY_PRESET 12","","#define FXAA_GREEN_AS_LUMA 1","","/*--------------------------------------------------------------------------*/","#ifndef FXAA_PC_CONSOLE"," //"," // The console algorithm for PC is included"," // for developers targeting really low spec machines."," // Likely better to just run FXAA_PC, and use a really low preset."," //"," #define FXAA_PC_CONSOLE 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_GLSL_120"," #define FXAA_GLSL_120 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_GLSL_130"," #define FXAA_GLSL_130 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_HLSL_3"," #define FXAA_HLSL_3 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_HLSL_4"," #define FXAA_HLSL_4 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_HLSL_5"," #define FXAA_HLSL_5 0","#endif","/*==========================================================================*/","#ifndef FXAA_GREEN_AS_LUMA"," //"," // For those using non-linear color,"," // and either not able to get luma in alpha, or not wanting to,"," // this enables FXAA to run using green as a proxy for luma."," // So with this enabled, no need to pack luma in alpha."," //"," // This will turn off AA on anything which lacks some amount of green."," // Pure red and blue or combination of only R and B, will get no AA."," //"," // Might want to lower the settings for both,"," // fxaaConsoleEdgeThresholdMin"," // fxaaQualityEdgeThresholdMin"," // In order to insure AA does not get turned off on colors"," // which contain a minor amount of green."," //"," // 1 = On."," // 0 = Off."," //"," #define FXAA_GREEN_AS_LUMA 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_EARLY_EXIT"," //"," // Controls algorithm's early exit path."," // On PS3 turning this ON adds 2 cycles to the shader."," // On 360 turning this OFF adds 10ths of a millisecond to the shader."," // Turning this off on console will result in a more blurry image."," // So this defaults to on."," //"," // 1 = On."," // 0 = Off."," //"," #define FXAA_EARLY_EXIT 1","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_DISCARD"," //"," // Only valid for PC OpenGL currently."," // Probably will not work when FXAA_GREEN_AS_LUMA = 1."," //"," // 1 = Use discard on pixels which don't need AA."," // For APIs which enable concurrent TEX+ROP from same surface."," // 0 = Return unchanged color on pixels which don't need AA."," //"," #define FXAA_DISCARD 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_FAST_PIXEL_OFFSET"," //"," // Used for GLSL 120 only."," //"," // 1 = GL API supports fast pixel offsets"," // 0 = do not use fast pixel offsets"," //"," #ifdef GL_EXT_gpu_shader4"," #define FXAA_FAST_PIXEL_OFFSET 1"," #endif"," #ifdef GL_NV_gpu_shader5"," #define FXAA_FAST_PIXEL_OFFSET 1"," #endif"," #ifdef GL_ARB_gpu_shader5"," #define FXAA_FAST_PIXEL_OFFSET 1"," #endif"," #ifndef FXAA_FAST_PIXEL_OFFSET"," #define FXAA_FAST_PIXEL_OFFSET 0"," #endif","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_GATHER4_ALPHA"," //"," // 1 = API supports gather4 on alpha channel."," // 0 = API does not support gather4 on alpha channel."," //"," #if (FXAA_HLSL_5 == 1)"," #define FXAA_GATHER4_ALPHA 1"," #endif"," #ifdef GL_ARB_gpu_shader5"," #define FXAA_GATHER4_ALPHA 1"," #endif"," #ifdef GL_NV_gpu_shader5"," #define FXAA_GATHER4_ALPHA 1"," #endif"," #ifndef FXAA_GATHER4_ALPHA"," #define FXAA_GATHER4_ALPHA 0"," #endif","#endif","","","/*============================================================================"," FXAA QUALITY - TUNING KNOBS","------------------------------------------------------------------------------","NOTE the other tuning knobs are now in the shader function inputs!","============================================================================*/","#ifndef FXAA_QUALITY_PRESET"," //"," // Choose the quality preset."," // This needs to be compiled into the shader as it effects code."," // Best option to include multiple presets is to"," // in each shader define the preset, then include this file."," //"," // OPTIONS"," // -----------------------------------------------------------------------"," // 10 to 15 - default medium dither (10=fastest, 15=highest quality)"," // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)"," // 39 - no dither, very expensive"," //"," // NOTES"," // -----------------------------------------------------------------------"," // 12 = slightly faster then FXAA 3.9 and higher edge quality (default)"," // 13 = about same speed as FXAA 3.9 and better than 12"," // 23 = closest to FXAA 3.9 visually and performance wise"," // _ = the lowest digit is directly related to performance"," // _ = the highest digit is directly related to style"," //"," #define FXAA_QUALITY_PRESET 12","#endif","","","/*============================================================================",""," FXAA QUALITY - PRESETS","","============================================================================*/","","/*============================================================================"," FXAA QUALITY - MEDIUM DITHER PRESETS","============================================================================*/","#if (FXAA_QUALITY_PRESET == 10)"," #define FXAA_QUALITY_PS 3"," #define FXAA_QUALITY_P0 1.5"," #define FXAA_QUALITY_P1 3.0"," #define FXAA_QUALITY_P2 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 11)"," #define FXAA_QUALITY_PS 4"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 3.0"," #define FXAA_QUALITY_P3 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 12)"," #define FXAA_QUALITY_PS 5"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 4.0"," #define FXAA_QUALITY_P4 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 13)"," #define FXAA_QUALITY_PS 6"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 4.0"," #define FXAA_QUALITY_P5 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 14)"," #define FXAA_QUALITY_PS 7"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 4.0"," #define FXAA_QUALITY_P6 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 15)"," #define FXAA_QUALITY_PS 8"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 4.0"," #define FXAA_QUALITY_P7 12.0","#endif","","/*============================================================================"," FXAA QUALITY - LOW DITHER PRESETS","============================================================================*/","#if (FXAA_QUALITY_PRESET == 20)"," #define FXAA_QUALITY_PS 3"," #define FXAA_QUALITY_P0 1.5"," #define FXAA_QUALITY_P1 2.0"," #define FXAA_QUALITY_P2 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 21)"," #define FXAA_QUALITY_PS 4"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 22)"," #define FXAA_QUALITY_PS 5"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 23)"," #define FXAA_QUALITY_PS 6"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 24)"," #define FXAA_QUALITY_PS 7"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 3.0"," #define FXAA_QUALITY_P6 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 25)"," #define FXAA_QUALITY_PS 8"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 4.0"," #define FXAA_QUALITY_P7 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 26)"," #define FXAA_QUALITY_PS 9"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 4.0"," #define FXAA_QUALITY_P8 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 27)"," #define FXAA_QUALITY_PS 10"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 2.0"," #define FXAA_QUALITY_P8 4.0"," #define FXAA_QUALITY_P9 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 28)"," #define FXAA_QUALITY_PS 11"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 2.0"," #define FXAA_QUALITY_P8 2.0"," #define FXAA_QUALITY_P9 4.0"," #define FXAA_QUALITY_P10 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 29)"," #define FXAA_QUALITY_PS 12"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 2.0"," #define FXAA_QUALITY_P8 2.0"," #define FXAA_QUALITY_P9 2.0"," #define FXAA_QUALITY_P10 4.0"," #define FXAA_QUALITY_P11 8.0","#endif","","/*============================================================================"," FXAA QUALITY - EXTREME QUALITY","============================================================================*/","#if (FXAA_QUALITY_PRESET == 39)"," #define FXAA_QUALITY_PS 12"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.0"," #define FXAA_QUALITY_P2 1.0"," #define FXAA_QUALITY_P3 1.0"," #define FXAA_QUALITY_P4 1.0"," #define FXAA_QUALITY_P5 1.5"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 2.0"," #define FXAA_QUALITY_P8 2.0"," #define FXAA_QUALITY_P9 2.0"," #define FXAA_QUALITY_P10 4.0"," #define FXAA_QUALITY_P11 8.0","#endif","","","","/*============================================================================",""," API PORTING","","============================================================================*/","#if (FXAA_GLSL_100 == 1) || (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1)"," #define FxaaBool bool"," #define FxaaDiscard discard"," #define FxaaFloat float"," #define FxaaFloat2 vec2"," #define FxaaFloat3 vec3"," #define FxaaFloat4 vec4"," #define FxaaHalf float"," #define FxaaHalf2 vec2"," #define FxaaHalf3 vec3"," #define FxaaHalf4 vec4"," #define FxaaInt2 ivec2"," #define FxaaSat(x) clamp(x, 0.0, 1.0)"," #define FxaaTex sampler2D","#else"," #define FxaaBool bool"," #define FxaaDiscard clip(-1)"," #define FxaaFloat float"," #define FxaaFloat2 float2"," #define FxaaFloat3 float3"," #define FxaaFloat4 float4"," #define FxaaHalf half"," #define FxaaHalf2 half2"," #define FxaaHalf3 half3"," #define FxaaHalf4 half4"," #define FxaaSat(x) saturate(x)","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_GLSL_100 == 1)"," #define FxaaTexTop(t, p) texture2D(t, p, 0.0)"," #define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), 0.0)","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_GLSL_120 == 1)"," // Requires,"," // #version 120"," // And at least,"," // #extension GL_EXT_gpu_shader4 : enable"," // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9)"," #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)"," #if (FXAA_FAST_PIXEL_OFFSET == 1)"," #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o)"," #else"," #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)"," #endif"," #if (FXAA_GATHER4_ALPHA == 1)"," // use #extension GL_ARB_gpu_shader5 : enable"," #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)"," #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)"," #define FxaaTexGreen4(t, p) textureGather(t, p, 1)"," #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)"," #endif","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_GLSL_130 == 1)",' // Requires "#version 130" or better'," #define FxaaTexTop(t, p) textureLod(t, p, 0.0)"," #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)"," #if (FXAA_GATHER4_ALPHA == 1)"," // use #extension GL_ARB_gpu_shader5 : enable"," #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)"," #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)"," #define FxaaTexGreen4(t, p) textureGather(t, p, 1)"," #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)"," #endif","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_HLSL_3 == 1)"," #define FxaaInt2 float2"," #define FxaaTex sampler2D"," #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0))"," #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0))","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_HLSL_4 == 1)"," #define FxaaInt2 int2"," struct FxaaTex { SamplerState smpl; Texture2D tex; };"," #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)"," #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_HLSL_5 == 1)"," #define FxaaInt2 int2"," struct FxaaTex { SamplerState smpl; Texture2D tex; };"," #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)"," #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)"," #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p)"," #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o)"," #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p)"," #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o)","#endif","","","/*============================================================================"," GREEN AS LUMA OPTION SUPPORT FUNCTION","============================================================================*/","#if (FXAA_GREEN_AS_LUMA == 0)"," FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; }","#else"," FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }","#endif","","","","","/*============================================================================",""," FXAA3 QUALITY - PC","","============================================================================*/","#if (FXAA_PC == 1)","/*--------------------------------------------------------------------------*/","FxaaFloat4 FxaaPixelShader("," //"," // Use noperspective interpolation here (turn off perspective interpolation)."," // {xy} = center of pixel"," FxaaFloat2 pos,"," //"," // Used only for FXAA Console, and not used on the 360 version."," // Use noperspective interpolation here (turn off perspective interpolation)."," // {xy_} = upper left of pixel"," // {_zw} = lower right of pixel"," FxaaFloat4 fxaaConsolePosPos,"," //"," // Input color texture."," // {rgb_} = color in linear or perceptual color space"," // if (FXAA_GREEN_AS_LUMA == 0)"," // {__a} = luma in perceptual color space (not linear)"," FxaaTex tex,"," //"," // Only used on the optimized 360 version of FXAA Console.",' // For everything but 360, just use the same input here as for "tex".'," // For 360, same texture, just alias with a 2nd sampler."," // This sampler needs to have an exponent bias of -1."," FxaaTex fxaaConsole360TexExpBiasNegOne,"," //"," // Only used on the optimized 360 version of FXAA Console.",' // For everything but 360, just use the same input here as for "tex".'," // For 360, same texture, just alias with a 3nd sampler."," // This sampler needs to have an exponent bias of -2."," FxaaTex fxaaConsole360TexExpBiasNegTwo,"," //"," // Only used on FXAA Quality."," // This must be from a constant/uniform."," // {x_} = 1.0/screenWidthInPixels"," // {_y} = 1.0/screenHeightInPixels"," FxaaFloat2 fxaaQualityRcpFrame,"," //"," // Only used on FXAA Console."," // This must be from a constant/uniform."," // This effects sub-pixel AA quality and inversely sharpness."," // Where N ranges between,"," // N = 0.50 (default)"," // N = 0.33 (sharper)"," // {x__} = -N/screenWidthInPixels"," // {_y_} = -N/screenHeightInPixels"," // {_z_} = N/screenWidthInPixels"," // {__w} = N/screenHeightInPixels"," FxaaFloat4 fxaaConsoleRcpFrameOpt,"," //"," // Only used on FXAA Console."," // Not used on 360, but used on PS3 and PC."," // This must be from a constant/uniform."," // {x__} = -2.0/screenWidthInPixels"," // {_y_} = -2.0/screenHeightInPixels"," // {_z_} = 2.0/screenWidthInPixels"," // {__w} = 2.0/screenHeightInPixels"," FxaaFloat4 fxaaConsoleRcpFrameOpt2,"," //"," // Only used on FXAA Console."," // Only used on 360 in place of fxaaConsoleRcpFrameOpt2."," // This must be from a constant/uniform."," // {x__} = 8.0/screenWidthInPixels"," // {_y_} = 8.0/screenHeightInPixels"," // {_z_} = -4.0/screenWidthInPixels"," // {__w} = -4.0/screenHeightInPixels"," FxaaFloat4 fxaaConsole360RcpFrameOpt2,"," //"," // Only used on FXAA Quality."," // This used to be the FXAA_QUALITY_SUBPIX define."," // It is here now to allow easier tuning."," // Choose the amount of sub-pixel aliasing removal."," // This can effect sharpness."," // 1.00 - upper limit (softer)"," // 0.75 - default amount of filtering"," // 0.50 - lower limit (sharper, less sub-pixel aliasing removal)"," // 0.25 - almost off"," // 0.00 - completely off"," FxaaFloat fxaaQualitySubpix,"," //"," // Only used on FXAA Quality."," // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define."," // It is here now to allow easier tuning."," // The minimum amount of local contrast required to apply algorithm."," // 0.333 - too little (faster)"," // 0.250 - low quality"," // 0.166 - default"," // 0.125 - high quality"," // 0.063 - overkill (slower)"," FxaaFloat fxaaQualityEdgeThreshold,"," //"," // Only used on FXAA Quality."," // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define."," // It is here now to allow easier tuning."," // Trims the algorithm from processing darks."," // 0.0833 - upper limit (default, the start of visible unfiltered edges)"," // 0.0625 - high quality (faster)"," // 0.0312 - visible limit (slower)"," // Special notes when using FXAA_GREEN_AS_LUMA,"," // Likely want to set this to zero."," // As colors that are mostly not-green"," // will appear very dark in the green channel!"," // Tune by looking at mostly non-green content,"," // then start at zero and increase until aliasing is a problem."," FxaaFloat fxaaQualityEdgeThresholdMin,"," //"," // Only used on FXAA Console."," // This used to be the FXAA_CONSOLE_EDGE_SHARPNESS define."," // It is here now to allow easier tuning."," // This does not effect PS3, as this needs to be compiled in."," // Use FXAA_CONSOLE_PS3_EDGE_SHARPNESS for PS3."," // Due to the PS3 being ALU bound,"," // there are only three safe values here: 2 and 4 and 8."," // These options use the shaders ability to a free *|/ by 2|4|8."," // For all other platforms can be a non-power of two."," // 8.0 is sharper (default!!!)"," // 4.0 is softer"," // 2.0 is really soft (good only for vector graphics inputs)"," FxaaFloat fxaaConsoleEdgeSharpness,"," //"," // Only used on FXAA Console."," // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD define."," // It is here now to allow easier tuning."," // This does not effect PS3, as this needs to be compiled in."," // Use FXAA_CONSOLE_PS3_EDGE_THRESHOLD for PS3."," // Due to the PS3 being ALU bound,"," // there are only two safe values here: 1/4 and 1/8."," // These options use the shaders ability to a free *|/ by 2|4|8."," // The console setting has a different mapping than the quality setting."," // Other platforms can use other values."," // 0.125 leaves less aliasing, but is softer (default!!!)"," // 0.25 leaves more aliasing, and is sharper"," FxaaFloat fxaaConsoleEdgeThreshold,"," //"," // Only used on FXAA Console."," // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD_MIN define."," // It is here now to allow easier tuning."," // Trims the algorithm from processing darks."," // The console setting has a different mapping than the quality setting."," // This only applies when FXAA_EARLY_EXIT is 1."," // This does not apply to PS3,"," // PS3 was simplified to avoid more shader instructions."," // 0.06 - faster but more aliasing in darks"," // 0.05 - default"," // 0.04 - slower and less aliasing in darks"," // Special notes when using FXAA_GREEN_AS_LUMA,"," // Likely want to set this to zero."," // As colors that are mostly not-green"," // will appear very dark in the green channel!"," // Tune by looking at mostly non-green content,"," // then start at zero and increase until aliasing is a problem."," FxaaFloat fxaaConsoleEdgeThresholdMin,"," //"," // Extra constants for 360 FXAA Console only."," // Use zeros or anything else for other platforms."," // These must be in physical constant registers and NOT immediates."," // Immediates will result in compiler un-optimizing."," // {xyzw} = float4(1.0, -1.0, 0.25, -0.25)"," FxaaFloat4 fxaaConsole360ConstDir",") {","/*--------------------------------------------------------------------------*/"," FxaaFloat2 posM;"," posM.x = pos.x;"," posM.y = pos.y;"," #if (FXAA_GATHER4_ALPHA == 1)"," #if (FXAA_DISCARD == 0)"," FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);"," #if (FXAA_GREEN_AS_LUMA == 0)"," #define lumaM rgbyM.w"," #else"," #define lumaM rgbyM.y"," #endif"," #endif"," #if (FXAA_GREEN_AS_LUMA == 0)"," FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM);"," FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1));"," #else"," FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM);"," FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1));"," #endif"," #if (FXAA_DISCARD == 1)"," #define lumaM luma4A.w"," #endif"," #define lumaE luma4A.z"," #define lumaS luma4A.x"," #define lumaSE luma4A.y"," #define lumaNW luma4B.w"," #define lumaN luma4B.z"," #define lumaW luma4B.x"," #else"," FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);"," #if (FXAA_GREEN_AS_LUMA == 0)"," #define lumaM rgbyM.w"," #else"," #define lumaM rgbyM.y"," #endif"," #if (FXAA_GLSL_100 == 1)"," FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0, 1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 0.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0,-1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 0.0), fxaaQualityRcpFrame.xy));"," #else"," FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));"," #endif"," #endif","/*--------------------------------------------------------------------------*/"," FxaaFloat maxSM = max(lumaS, lumaM);"," FxaaFloat minSM = min(lumaS, lumaM);"," FxaaFloat maxESM = max(lumaE, maxSM);"," FxaaFloat minESM = min(lumaE, minSM);"," FxaaFloat maxWN = max(lumaN, lumaW);"," FxaaFloat minWN = min(lumaN, lumaW);"," FxaaFloat rangeMax = max(maxWN, maxESM);"," FxaaFloat rangeMin = min(minWN, minESM);"," FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;"," FxaaFloat range = rangeMax - rangeMin;"," FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);"," FxaaBool earlyExit = range < rangeMaxClamped;","/*--------------------------------------------------------------------------*/"," if(earlyExit)"," #if (FXAA_DISCARD == 1)"," FxaaDiscard;"," #else"," return rgbyM;"," #endif","/*--------------------------------------------------------------------------*/"," #if (FXAA_GATHER4_ALPHA == 0)"," #if (FXAA_GLSL_100 == 1)"," FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0,-1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0,-1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 1.0), fxaaQualityRcpFrame.xy));"," #else"," FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));"," #endif"," #else"," FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));"," #endif","/*--------------------------------------------------------------------------*/"," FxaaFloat lumaNS = lumaN + lumaS;"," FxaaFloat lumaWE = lumaW + lumaE;"," FxaaFloat subpixRcpRange = 1.0/range;"," FxaaFloat subpixNSWE = lumaNS + lumaWE;"," FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;"," FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;","/*--------------------------------------------------------------------------*/"," FxaaFloat lumaNESE = lumaNE + lumaSE;"," FxaaFloat lumaNWNE = lumaNW + lumaNE;"," FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;"," FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;","/*--------------------------------------------------------------------------*/"," FxaaFloat lumaNWSW = lumaNW + lumaSW;"," FxaaFloat lumaSWSE = lumaSW + lumaSE;"," FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);"," FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);"," FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;"," FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;"," FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;"," FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;","/*--------------------------------------------------------------------------*/"," FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;"," FxaaFloat lengthSign = fxaaQualityRcpFrame.x;"," FxaaBool horzSpan = edgeHorz >= edgeVert;"," FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;","/*--------------------------------------------------------------------------*/"," if(!horzSpan) lumaN = lumaW;"," if(!horzSpan) lumaS = lumaE;"," if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;"," FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;","/*--------------------------------------------------------------------------*/"," FxaaFloat gradientN = lumaN - lumaM;"," FxaaFloat gradientS = lumaS - lumaM;"," FxaaFloat lumaNN = lumaN + lumaM;"," FxaaFloat lumaSS = lumaS + lumaM;"," FxaaBool pairN = abs(gradientN) >= abs(gradientS);"," FxaaFloat gradient = max(abs(gradientN), abs(gradientS));"," if(pairN) lengthSign = -lengthSign;"," FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);","/*--------------------------------------------------------------------------*/"," FxaaFloat2 posB;"," posB.x = posM.x;"," posB.y = posM.y;"," FxaaFloat2 offNP;"," offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;"," offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;"," if(!horzSpan) posB.x += lengthSign * 0.5;"," if( horzSpan) posB.y += lengthSign * 0.5;","/*--------------------------------------------------------------------------*/"," FxaaFloat2 posN;"," posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;"," posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;"," FxaaFloat2 posP;"," posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;"," posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;"," FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;"," FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));"," FxaaFloat subpixE = subpixC * subpixC;"," FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));","/*--------------------------------------------------------------------------*/"," if(!pairN) lumaNN = lumaSS;"," FxaaFloat gradientScaled = gradient * 1.0/4.0;"," FxaaFloat lumaMM = lumaM - lumaNN * 0.5;"," FxaaFloat subpixF = subpixD * subpixE;"," FxaaBool lumaMLTZero = lumaMM < 0.0;","/*--------------------------------------------------------------------------*/"," lumaEndN -= lumaNN * 0.5;"," lumaEndP -= lumaNN * 0.5;"," FxaaBool doneN = abs(lumaEndN) >= gradientScaled;"," FxaaBool doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;"," FxaaBool doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;","/*--------------------------------------------------------------------------*/"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 3)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 4)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 5)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 6)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 7)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 8)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 9)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 10)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 11)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 12)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }","/*--------------------------------------------------------------------------*/"," FxaaFloat dstN = posM.x - posN.x;"," FxaaFloat dstP = posP.x - posM.x;"," if(!horzSpan) dstN = posM.y - posN.y;"," if(!horzSpan) dstP = posP.y - posM.y;","/*--------------------------------------------------------------------------*/"," FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;"," FxaaFloat spanLength = (dstP + dstN);"," FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;"," FxaaFloat spanLengthRcp = 1.0/spanLength;","/*--------------------------------------------------------------------------*/"," FxaaBool directionN = dstN < dstP;"," FxaaFloat dst = min(dstN, dstP);"," FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;"," FxaaFloat subpixG = subpixF * subpixF;"," FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;"," FxaaFloat subpixH = subpixG * fxaaQualitySubpix;","/*--------------------------------------------------------------------------*/"," FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;"," FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);"," if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;"," if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;"," #if (FXAA_DISCARD == 1)"," return FxaaTexTop(tex, posM);"," #else"," return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);"," #endif","}","/*==========================================================================*/","#endif","","void main() {"," gl_FragColor = FxaaPixelShader("," vUv,"," vec4(0.0),"," tDiffuse,"," tDiffuse,"," tDiffuse,"," resolution,"," vec4(0.0),"," vec4(0.0),"," vec4(0.0),"," 0.75,"," 0.166,"," 0.0833,"," 0.0,"," 0.0,"," 0.0,"," vec4(0.0)"," );",""," // TODO avoid querying texture twice for same texel"," gl_FragColor.a = texture2D(tDiffuse, vUv).a;","}"].join("\n")};t.FXAAShader=r},29076:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},time:{value:0},nIntensity:{value:.5},sIntensity:{value:.05},sCount:{value:4096},grayscale:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","uniform float time;","uniform bool grayscale;","uniform float nIntensity;","uniform float sIntensity;","uniform float sCount;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 cTextureScreen = texture2D( tDiffuse, vUv );","\tfloat dx = rand( vUv + time );","\tvec3 cResult = cTextureScreen.rgb + cTextureScreen.rgb * clamp( 0.1 + dx, 0.0, 1.0 );","\tvec2 sc = vec2( sin( vUv.y * sCount ), cos( vUv.y * sCount ) );","\tcResult += cTextureScreen.rgb * vec3( sc.x, sc.y, sc.x ) * sIntensity;","\tcResult = cTextureScreen.rgb + clamp( nIntensity, 0.0,1.0 ) * ( cResult - cTextureScreen.rgb );","\tif( grayscale ) {","\t\tcResult = vec3( cResult.r * 0.3 + cResult.g * 0.59 + cResult.b * 0.11 );","\t}","\tgl_FragColor = vec4( cResult, cTextureScreen.a );","}"].join("\n")};t.FilmShader=n},13855:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},screenWidth:{value:1024},screenHeight:{value:1024},sampleDistance:{value:.94},waveFactor:{value:.00125}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float screenWidth;","uniform float screenHeight;","uniform float sampleDistance;","uniform float waveFactor;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 color, org, tmp, add;","\tfloat sample_dist, f;","\tvec2 vin;","\tvec2 uv = vUv;","\tadd = color = org = texture2D( tDiffuse, uv );","\tvin = ( uv - vec2( 0.5 ) ) * vec2( 1.4 );","\tsample_dist = dot( vin, vin ) * 2.0;","\tf = ( waveFactor * 100.0 + sample_dist ) * sampleDistance * 4.0;","\tvec2 sampleSize = vec2( 1.0 / screenWidth, 1.0 / screenHeight ) * vec2( f );","\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.111964, 0.993712 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.846724, 0.532032 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.943883, -0.330279 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.330279, -0.943883 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.532032, -0.846724 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.993712, -0.111964 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.707107, 0.707107 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tcolor = color * vec4( 2.0 ) - ( add / vec4( 8.0 ) );","\tcolor = color + ( add / vec4( 8.0 ) - color ) * ( vec4( 1.0 ) - vec4( sample_dist * 0.5 ) );","\tgl_FragColor = vec4( color.rgb * color.rgb * vec3( 0.95 ) + color.rgb, 1.0 );","}"].join("\n")};t.FocusShader=n},37272:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},aspect:{value:new(n(85232).Vector2)(512,512)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","uniform vec2 aspect;","vec2 texel = vec2(1.0 / aspect.x, 1.0 / aspect.y);","mat3 G[9];","const mat3 g0 = mat3( 0.3535533845424652, 0, -0.3535533845424652, 0.5, 0, -0.5, 0.3535533845424652, 0, -0.3535533845424652 );","const mat3 g1 = mat3( 0.3535533845424652, 0.5, 0.3535533845424652, 0, 0, 0, -0.3535533845424652, -0.5, -0.3535533845424652 );","const mat3 g2 = mat3( 0, 0.3535533845424652, -0.5, -0.3535533845424652, 0, 0.3535533845424652, 0.5, -0.3535533845424652, 0 );","const mat3 g3 = mat3( 0.5, -0.3535533845424652, 0, -0.3535533845424652, 0, 0.3535533845424652, 0, 0.3535533845424652, -0.5 );","const mat3 g4 = mat3( 0, -0.5, 0, 0.5, 0, 0.5, 0, -0.5, 0 );","const mat3 g5 = mat3( -0.5, 0, 0.5, 0, 0, 0, 0.5, 0, -0.5 );","const mat3 g6 = mat3( 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.6666666865348816, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204 );","const mat3 g7 = mat3( -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, 0.6666666865348816, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408 );","const mat3 g8 = mat3( 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408 );","void main(void)","{","\tG[0] = g0,","\tG[1] = g1,","\tG[2] = g2,","\tG[3] = g3,","\tG[4] = g4,","\tG[5] = g5,","\tG[6] = g6,","\tG[7] = g7,","\tG[8] = g8;","\tmat3 I;","\tfloat cnv[9];","\tvec3 sample;","\tfor (float i=0.0; i<3.0; i++) {","\t\tfor (float j=0.0; j<3.0; j++) {","\t\t\tsample = texture2D(tDiffuse, vUv + texel * vec2(i-1.0,j-1.0) ).rgb;","\t\t\tI[int(i)][int(j)] = length(sample);","\t\t}","\t}","\tfor (int i=0; i<9; i++) {","\t\tfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);","\t\tcnv[i] = dp3 * dp3;","\t}","\tfloat M = (cnv[0] + cnv[1]) + (cnv[2] + cnv[3]);","\tfloat S = (cnv[4] + cnv[5]) + (cnv[6] + cnv[7]) + (cnv[8] + M);","\tgl_FragColor = vec4(vec3(sqrt(M/S)), 1.0);","}"].join("\n")};t.FreiChenShader=r},29839:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{mRefractionRatio:{value:1.02},mFresnelBias:{value:.1},mFresnelPower:{value:2},mFresnelScale:{value:1},tCube:{value:null}},vertexShader:["uniform float mRefractionRatio;","uniform float mFresnelBias;","uniform float mFresnelScale;","uniform float mFresnelPower;","varying vec3 vReflect;","varying vec3 vRefract[3];","varying float vReflectionFactor;","void main() {","\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );","\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );","\tvec3 worldNormal = normalize( mat3( modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz ) * normal );","\tvec3 I = worldPosition.xyz - cameraPosition;","\tvReflect = reflect( I, worldNormal );","\tvRefract[0] = refract( normalize( I ), worldNormal, mRefractionRatio );","\tvRefract[1] = refract( normalize( I ), worldNormal, mRefractionRatio * 0.99 );","\tvRefract[2] = refract( normalize( I ), worldNormal, mRefractionRatio * 0.98 );","\tvReflectionFactor = mFresnelBias + mFresnelScale * pow( 1.0 + dot( normalize( I ), worldNormal ), mFresnelPower );","\tgl_Position = projectionMatrix * mvPosition;","}"].join("\n"),fragmentShader:["uniform samplerCube tCube;","varying vec3 vReflect;","varying vec3 vRefract[3];","varying float vReflectionFactor;","void main() {","\tvec4 reflectedColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );","\tvec4 refractedColor = vec4( 1.0 );","\trefractedColor.r = textureCube( tCube, vec3( -vRefract[0].x, vRefract[0].yz ) ).r;","\trefractedColor.g = textureCube( tCube, vec3( -vRefract[1].x, vRefract[1].yz ) ).g;","\trefractedColor.b = textureCube( tCube, vec3( -vRefract[2].x, vRefract[2].yz ) ).b;","\tgl_FragColor = mix( refractedColor, reflectedColor, clamp( vReflectionFactor, 0.0, 1.0 ) );","}"].join("\n")};t.FresnelShader=n},85402:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 tex = texture2D( tDiffuse, vUv );","\tgl_FragColor = LinearTosRGB( tex );","}"].join("\n")};t.GammaCorrectionShader=n},50044:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={uniforms:{tInput:{value:null}},vertexShader:["varying vec2 vUv;","void main() {"," vUv = uv;"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["varying vec2 vUv;","uniform sampler2D tInput;","void main() {","\tgl_FragColor = vec4( 1.0 ) - texture2D( tInput, vUv );","}"].join("\n")},s={uniforms:{tInput:{value:null},fStepSize:{value:1},vSunPositionScreenSpace:{value:new r.Vector3}},vertexShader:["varying vec2 vUv;","void main() {"," vUv = uv;"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define TAPS_PER_PASS 6.0","varying vec2 vUv;","uniform sampler2D tInput;","uniform vec3 vSunPositionScreenSpace;","uniform float fStepSize;","void main() {","\tvec2 delta = vSunPositionScreenSpace.xy - vUv;","\tfloat dist = length( delta );","\tvec2 stepv = fStepSize * delta / dist;","\tfloat iters = dist/fStepSize;","\tvec2 uv = vUv.xy;","\tfloat col = 0.0;","\tfloat f = min( 1.0, max( vSunPositionScreenSpace.z / 1000.0, 0.0 ) );","\tif ( 0.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 1.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 2.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 3.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 4.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 5.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tgl_FragColor = vec4( col/TAPS_PER_PASS );","\tgl_FragColor.a = 1.0;","}"].join("\n")},a={uniforms:{tColors:{value:null},tGodRays:{value:null},fGodRayIntensity:{value:.69}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["varying vec2 vUv;","uniform sampler2D tColors;","uniform sampler2D tGodRays;","uniform float fGodRayIntensity;","void main() {","\tgl_FragColor = texture2D( tColors, vUv ) + fGodRayIntensity * vec4( 1.0 - texture2D( tGodRays, vUv ).r );","\tgl_FragColor.a = 1.0;","}"].join("\n")},o={uniforms:{vSunPositionScreenSpace:{value:new r.Vector3},fAspect:{value:1},sunColor:{value:new r.Color(16772608)},bgColor:{value:new r.Color(0)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["varying vec2 vUv;","uniform vec3 vSunPositionScreenSpace;","uniform float fAspect;","uniform vec3 sunColor;","uniform vec3 bgColor;","void main() {","\tvec2 diff = vUv - vSunPositionScreenSpace.xy;","\tdiff.x *= fAspect;","\tfloat prop = clamp( length( diff ) / 0.5, 0.0, 1.0 );","\tprop = 0.35 * pow( 1.0 - prop, 3.0 );","\tgl_FragColor.xyz = ( vSunPositionScreenSpace.z > 0.0 ) ? mix( sunColor, bgColor, 1.0 - prop ) : bgColor;","\tgl_FragColor.w = 1.0;","}"].join("\n")};t.GodRaysCombineShader=a,t.GodRaysDepthMaskShader=i,t.GodRaysFakeSunShader=o,t.GodRaysGenerateShader=s},79169:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},shape:{value:1},radius:{value:4},rotateR:{value:Math.PI/12*1},rotateG:{value:Math.PI/12*2},rotateB:{value:Math.PI/12*3},scatter:{value:0},width:{value:1},height:{value:1},blending:{value:1},blendingMode:{value:1},greyscale:{value:!1},disable:{value:!1}},vertexShader:["varying vec2 vUV;","void main() {","\tvUV = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);","}"].join("\n"),fragmentShader:["#define SQRT2_MINUS_ONE 0.41421356","#define SQRT2_HALF_MINUS_ONE 0.20710678","#define PI2 6.28318531","#define SHAPE_DOT 1","#define SHAPE_ELLIPSE 2","#define SHAPE_LINE 3","#define SHAPE_SQUARE 4","#define BLENDING_LINEAR 1","#define BLENDING_MULTIPLY 2","#define BLENDING_ADD 3","#define BLENDING_LIGHTER 4","#define BLENDING_DARKER 5","uniform sampler2D tDiffuse;","uniform float radius;","uniform float rotateR;","uniform float rotateG;","uniform float rotateB;","uniform float scatter;","uniform float width;","uniform float height;","uniform int shape;","uniform bool disable;","uniform float blending;","uniform int blendingMode;","varying vec2 vUV;","uniform bool greyscale;","const int samples = 8;","float blend( float a, float b, float t ) {","\treturn a * ( 1.0 - t ) + b * t;","}","float hypot( float x, float y ) {","\treturn sqrt( x * x + y * y );","}","float rand( vec2 seed ){","return fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );","}","float distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {","\tfloat dist = hypot( coord.x - p.x, coord.y - p.y );","\tfloat rad = channel;","\tif ( shape == SHAPE_DOT ) {","\t\trad = pow( abs( rad ), 1.125 ) * rad_max;","\t} else if ( shape == SHAPE_ELLIPSE ) {","\t\trad = pow( abs( rad ), 1.125 ) * rad_max;","\t\tif ( dist != 0.0 ) {","\t\t\tfloat dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );","\t\t\tdist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;","\t\t}","\t} else if ( shape == SHAPE_LINE ) {","\t\trad = pow( abs( rad ), 1.5) * rad_max;","\t\tfloat dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;","\t\tdist = hypot( normal.x * dot_p, normal.y * dot_p );","\t} else if ( shape == SHAPE_SQUARE ) {","\t\tfloat theta = atan( p.y - coord.y, p.x - coord.x ) - angle;","\t\tfloat sin_t = abs( sin( theta ) );","\t\tfloat cos_t = abs( cos( theta ) );","\t\trad = pow( abs( rad ), 1.4 );","\t\trad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );","\t}","\treturn rad - dist;","}","struct Cell {","\tvec2 normal;","\tvec2 p1;","\tvec2 p2;","\tvec2 p3;","\tvec2 p4;","\tfloat samp2;","\tfloat samp1;","\tfloat samp3;","\tfloat samp4;","};","vec4 getSample( vec2 point ) {","\tvec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );","\tfloat base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;","\tfloat step = PI2 / float( samples );","\tfloat dist = radius * 0.66;","\tfor ( int i = 0; i < samples; ++i ) {","\t\tfloat r = base + step * float( i );","\t\tvec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );","\t\ttex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );","\t}","\ttex /= float( samples ) + 1.0;","\treturn tex;","}","float getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {","\tfloat dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;","\tif ( channel == 0 ) {","\t\tc.samp1 = getSample( c.p1 ).r;","\t\tc.samp2 = getSample( c.p2 ).r;","\t\tc.samp3 = getSample( c.p3 ).r;","\t\tc.samp4 = getSample( c.p4 ).r;","\t} else if (channel == 1) {","\t\tc.samp1 = getSample( c.p1 ).g;","\t\tc.samp2 = getSample( c.p2 ).g;","\t\tc.samp3 = getSample( c.p3 ).g;","\t\tc.samp4 = getSample( c.p4 ).g;","\t} else {","\t\tc.samp1 = getSample( c.p1 ).b;","\t\tc.samp3 = getSample( c.p3 ).b;","\t\tc.samp2 = getSample( c.p2 ).b;","\t\tc.samp4 = getSample( c.p4 ).b;","\t}","\tdist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );","\tdist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );","\tdist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );","\tdist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );","\tres = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;","\tres += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;","\tres += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;","\tres += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;","\tres = clamp( res, 0.0, 1.0 );","\treturn res;","}","Cell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {","\tCell c;","\tvec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );","\tfloat threshold = step * 0.5;","\tfloat dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );","\tfloat dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );","\tvec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );","\tfloat offset_normal = mod( hypot( offset.x, offset.y ), step );","\tfloat normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;","\tfloat normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;","\tfloat offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );","\tfloat line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;","\tfloat line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;","\tc.normal = n;","\tc.p1.x = p.x - n.x * normal_scale + n.y * line_scale;","\tc.p1.y = p.y - n.y * normal_scale - n.x * line_scale;","\tif ( scatter != 0.0 ) {","\t\tfloat off_mag = scatter * threshold * 0.5;","\t\tfloat off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;","\t\tc.p1.x += cos( off_angle ) * off_mag;","\t\tc.p1.y += sin( off_angle ) * off_mag;","\t}","\tfloat normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );","\tfloat line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );","\tc.p2.x = c.p1.x - n.x * normal_step;","\tc.p2.y = c.p1.y - n.y * normal_step;","\tc.p3.x = c.p1.x + n.y * line_step;","\tc.p3.y = c.p1.y - n.x * line_step;","\tc.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;","\tc.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;","\treturn c;","}","float blendColour( float a, float b, float t ) {","\tif ( blendingMode == BLENDING_LINEAR ) {","\t\treturn blend( a, b, 1.0 - t );","\t} else if ( blendingMode == BLENDING_ADD ) {","\t\treturn blend( a, min( 1.0, a + b ), t );","\t} else if ( blendingMode == BLENDING_MULTIPLY ) {","\t\treturn blend( a, max( 0.0, a * b ), t );","\t} else if ( blendingMode == BLENDING_LIGHTER ) {","\t\treturn blend( a, max( a, b ), t );","\t} else if ( blendingMode == BLENDING_DARKER ) {","\t\treturn blend( a, min( a, b ), t );","\t} else {","\t\treturn blend( a, b, 1.0 - t );","\t}","}","void main() {","\tif ( ! disable ) {","\t\tvec2 p = vec2( vUV.x * width, vUV.y * height );","\t\tvec2 origin = vec2( 0, 0 );","\t\tfloat aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;","\t\tCell cell_r = getReferenceCell( p, origin, rotateR, radius );","\t\tCell cell_g = getReferenceCell( p, origin, rotateG, radius );","\t\tCell cell_b = getReferenceCell( p, origin, rotateB, radius );","\t\tfloat r = getDotColour( cell_r, p, 0, rotateR, aa );","\t\tfloat g = getDotColour( cell_g, p, 1, rotateG, aa );","\t\tfloat b = getDotColour( cell_b, p, 2, rotateB, aa );","\t\tvec4 colour = texture2D( tDiffuse, vUV );","\t\tr = blendColour( r, colour.r, blending );","\t\tg = blendColour( g, colour.g, blending );","\t\tb = blendColour( b, colour.b, blending );","\t\tif ( greyscale ) {","\t\t\tr = g = b = (r + b + g) / 3.0;","\t\t}","\t\tgl_FragColor = vec4( r, g, b, 1.0 );","\t} else {","\t\tgl_FragColor = texture2D( tDiffuse, vUV );","\t}","}"].join("\n")};t.HalftoneShader=n},37211:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n ",fragmentShader:"\n uniform sampler2D tDiffuse;\n uniform float h;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec4 sum = vec4( 0.0 );\n\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n \tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n \tgl_FragColor = sum;\n\n }\n "};t.HorizontalBlurShader=n},39032:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},h:{value:1/512},r:{value:.35}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float h;","uniform float r;","varying vec2 vUv;","void main() {","\tvec4 sum = vec4( 0.0 );","\tfloat hh = h * abs( r - vUv.y );","\tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * hh, vUv.y ) ) * 0.051;","\tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * hh, vUv.y ) ) * 0.0918;","\tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * hh, vUv.y ) ) * 0.12245;","\tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * hh, vUv.y ) ) * 0.1531;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;","\tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * hh, vUv.y ) ) * 0.1531;","\tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * hh, vUv.y ) ) * 0.12245;","\tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * hh, vUv.y ) ) * 0.0918;","\tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * hh, vUv.y ) ) * 0.051;","\tgl_FragColor = sum;","}"].join("\n")};t.HorizontalTiltShiftShader=n},43098:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},hue:{value:0},saturation:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float hue;","uniform float saturation;","varying vec2 vUv;","void main() {","\tgl_FragColor = texture2D( tDiffuse, vUv );","\tfloat angle = hue * 3.14159265;","\tfloat s = sin(angle), c = cos(angle);","\tvec3 weights = (vec3(2.0 * c, -sqrt(3.0) * s - c, sqrt(3.0) * s - c) + 1.0) / 3.0;","\tfloat len = length(gl_FragColor.rgb);","\tgl_FragColor.rgb = vec3(","\t\tdot(gl_FragColor.rgb, weights.xyz),","\t\tdot(gl_FragColor.rgb, weights.zxy),","\t\tdot(gl_FragColor.rgb, weights.yzx)","\t);","\tfloat average = (gl_FragColor.r + gl_FragColor.g + gl_FragColor.b) / 3.0;","\tif (saturation > 0.0) {","\t\tgl_FragColor.rgb += (average - gl_FragColor.rgb) * (1.0 - 1.0 / (1.001 - saturation));","\t} else {","\t\tgl_FragColor.rgb += (average - gl_FragColor.rgb) * (-saturation);","\t}","}"].join("\n")};t.HueSaturationShader=n},29983:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},sides:{value:6},angle:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float sides;","uniform float angle;","varying vec2 vUv;","void main() {","\tvec2 p = vUv - 0.5;","\tfloat r = length(p);","\tfloat a = atan(p.y, p.x) + angle;","\tfloat tau = 2. * 3.1416 ;","\ta = mod(a, tau/sides);","\ta = abs(a - tau/sides/2.) ;","\tp = r * vec2(cos(a), sin(a));","\tvec4 color = texture2D(tDiffuse, p + 0.5);","\tgl_FragColor = color;","}"].join("\n")};t.KaleidoShader=n},78440:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={shaderID:"luminosityHighPass",uniforms:{tDiffuse:{value:null},luminosityThreshold:{value:1},smoothWidth:{value:1},defaultColor:{value:new(n(85232).Color)(0)},defaultOpacity:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform vec3 defaultColor;","uniform float defaultOpacity;","uniform float luminosityThreshold;","uniform float smoothWidth;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tvec3 luma = vec3( 0.299, 0.587, 0.114 );","\tfloat v = dot( texel.xyz, luma );","\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );","\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );","\tgl_FragColor = mix( outputColor, texel, alpha );","}"].join("\n")};t.LuminosityHighPassShader=r},48123:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tfloat l = linearToRelativeLuminance( texel.rgb );","\tgl_FragColor = vec4( l, l, l, texel.w );","}"].join("\n")};t.LuminosityShader=n},69277:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},side:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform int side;","varying vec2 vUv;","void main() {","\tvec2 p = vUv;","\tif (side == 0){","\t\tif (p.x > 0.5) p.x = 1.0 - p.x;","\t}else if (side == 1){","\t\tif (p.x < 0.5) p.x = 1.0 - p.x;","\t}else if (side == 2){","\t\tif (p.y < 0.5) p.y = 1.0 - p.y;","\t}else if (side == 3){","\t\tif (p.y > 0.5) p.y = 1.0 - p.y;","\t} ","\tvec4 color = texture2D(tDiffuse, p);","\tgl_FragColor = color;","}"].join("\n")};t.MirrorShader=n},29176:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={uniforms:{heightMap:{value:null},resolution:{value:new r.Vector2(512,512)},scale:{value:new r.Vector2(1,1)},height:{value:.05}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float height;","uniform vec2 resolution;","uniform sampler2D heightMap;","varying vec2 vUv;","void main() {","\tfloat val = texture2D( heightMap, vUv ).x;","\tfloat valU = texture2D( heightMap, vUv + vec2( 1.0 / resolution.x, 0.0 ) ).x;","\tfloat valV = texture2D( heightMap, vUv + vec2( 0.0, 1.0 / resolution.y ) ).x;","\tgl_FragColor = vec4( ( 0.5 * normalize( vec3( val - valU, val - valV, height ) ) + 0.5 ), 1.0 );","}"].join("\n")};t.NormalMapShader=i},94640:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={modes:{none:"NO_PARALLAX",basic:"USE_BASIC_PARALLAX",steep:"USE_STEEP_PARALLAX",occlusion:"USE_OCLUSION_PARALLAX",relief:"USE_RELIEF_PARALLAX"},uniforms:{bumpMap:{value:null},map:{value:null},parallaxScale:{value:null},parallaxMinLayers:{value:null},parallaxMaxLayers:{value:null}},vertexShader:["varying vec2 vUv;","varying vec3 vViewPosition;","varying vec3 vNormal;","void main() {","\tvUv = uv;","\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );","\tvViewPosition = -mvPosition.xyz;","\tvNormal = normalize( normalMatrix * normal );","\tgl_Position = projectionMatrix * mvPosition;","}"].join("\n"),fragmentShader:["uniform sampler2D bumpMap;","uniform sampler2D map;","uniform float parallaxScale;","uniform float parallaxMinLayers;","uniform float parallaxMaxLayers;","varying vec2 vUv;","varying vec3 vViewPosition;","varying vec3 vNormal;","#ifdef USE_BASIC_PARALLAX","\tvec2 parallaxMap( in vec3 V ) {","\t\tfloat initialHeight = texture2D( bumpMap, vUv ).r;","\t\tvec2 texCoordOffset = parallaxScale * V.xy * initialHeight;","\t\treturn vUv - texCoordOffset;","\t}","#else","\tvec2 parallaxMap( in vec3 V ) {","\t\tfloat numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );","\t\tfloat layerHeight = 1.0 / numLayers;","\t\tfloat currentLayerHeight = 0.0;","\t\tvec2 dtex = parallaxScale * V.xy / V.z / numLayers;","\t\tvec2 currentTextureCoords = vUv;","\t\tfloat heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;","\t\tfor ( int i = 0; i < 30; i += 1 ) {","\t\t\tif ( heightFromTexture <= currentLayerHeight ) {","\t\t\t\tbreak;","\t\t\t}","\t\t\tcurrentLayerHeight += layerHeight;","\t\t\tcurrentTextureCoords -= dtex;","\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;","\t\t}","\t\t#ifdef USE_STEEP_PARALLAX","\t\t\treturn currentTextureCoords;","\t\t#elif defined( USE_RELIEF_PARALLAX )","\t\t\tvec2 deltaTexCoord = dtex / 2.0;","\t\t\tfloat deltaHeight = layerHeight / 2.0;","\t\t\tcurrentTextureCoords += deltaTexCoord;","\t\t\tcurrentLayerHeight -= deltaHeight;","\t\t\tconst int numSearches = 5;","\t\t\tfor ( int i = 0; i < numSearches; i += 1 ) {","\t\t\t\tdeltaTexCoord /= 2.0;","\t\t\t\tdeltaHeight /= 2.0;","\t\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;","\t\t\t\tif( heightFromTexture > currentLayerHeight ) {","\t\t\t\t\tcurrentTextureCoords -= deltaTexCoord;","\t\t\t\t\tcurrentLayerHeight += deltaHeight;","\t\t\t\t} else {","\t\t\t\t\tcurrentTextureCoords += deltaTexCoord;","\t\t\t\t\tcurrentLayerHeight -= deltaHeight;","\t\t\t\t}","\t\t\t}","\t\t\treturn currentTextureCoords;","\t\t#elif defined( USE_OCLUSION_PARALLAX )","\t\t\tvec2 prevTCoords = currentTextureCoords + dtex;","\t\t\tfloat nextH = heightFromTexture - currentLayerHeight;","\t\t\tfloat prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;","\t\t\tfloat weight = nextH / ( nextH - prevH );","\t\t\treturn prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );","\t\t#else","\t\t\treturn vUv;","\t\t#endif","\t}","#endif","vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {","\tvec2 texDx = dFdx( vUv );","\tvec2 texDy = dFdy( vUv );","\tvec3 vSigmaX = dFdx( surfPosition );","\tvec3 vSigmaY = dFdy( surfPosition );","\tvec3 vR1 = cross( vSigmaY, surfNormal );","\tvec3 vR2 = cross( surfNormal, vSigmaX );","\tfloat fDet = dot( vSigmaX, vR1 );","\tvec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );","\tvec3 vProjVtex;","\tvProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;","\tvProjVtex.z = dot( surfNormal, viewPosition );","\treturn parallaxMap( vProjVtex );","}","void main() {","\tvec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );","\tgl_FragColor = texture2D( map, mapUv );","}"].join("\n")};t.ParallaxShader=n},79203:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},resolution:{value:null},pixelSize:{value:1}},vertexShader:["varying highp vec2 vUv;","void main() {","vUv = uv;","gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float pixelSize;","uniform vec2 resolution;","varying highp vec2 vUv;","void main(){","vec2 dxy = pixelSize / resolution;","vec2 coord = dxy * floor( vUv / dxy );","gl_FragColor = texture2D(tDiffuse, coord);","}"].join("\n")};t.PixelShader=n},16025:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},amount:{value:.005},angle:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float amount;","uniform float angle;","varying vec2 vUv;","void main() {","\tvec2 offset = amount * vec2( cos(angle), sin(angle));","\tvec4 cr = texture2D(tDiffuse, vUv + offset);","\tvec4 cga = texture2D(tDiffuse, vUv);","\tvec4 cb = texture2D(tDiffuse, vUv - offset);","\tgl_FragColor = vec4(cr.r, cga.g, cb.b, cga.a);","}"].join("\n")};t.RGBShiftShader=n},24730:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},tDiffuse:{value:null},tNormal:{value:null},size:{value:new r.Vector2(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new r.Matrix4},cameraInverseProjectionMatrix:{value:new r.Matrix4},scale:{value:1},intensity:{value:.1},bias:{value:.5},minResolution:{value:0},kernelRadius:{value:100},randomSeed:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","varying vec2 vUv;","#if DIFFUSE_TEXTURE == 1","uniform sampler2D tDiffuse;","#endif","uniform sampler2D tDepth;","#if NORMAL_TEXTURE == 1","uniform sampler2D tNormal;","#endif","uniform float cameraNear;","uniform float cameraFar;","uniform mat4 cameraProjectionMatrix;","uniform mat4 cameraInverseProjectionMatrix;","uniform float scale;","uniform float intensity;","uniform float bias;","uniform float kernelRadius;","uniform float minResolution;","uniform vec2 size;","uniform float randomSeed;","// RGBA depth","#include ","vec4 getDefaultColor( const in vec2 screenPosition ) {","\t#if DIFFUSE_TEXTURE == 1","\treturn texture2D( tDiffuse, vUv );","\t#else","\treturn vec4( 1.0 );","\t#endif","}","float getDepth( const in vec2 screenPosition ) {","\t#if DEPTH_PACKING == 1","\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );","\t#else","\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","float getViewZ( const in float depth ) {","\t#if PERSPECTIVE_CAMERA == 1","\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );","\t#else","\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );","\t#endif","}","vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {","\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];","\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );","\tclipPosition *= clipW; // unprojection.","\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;","}","vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) {","\t#if NORMAL_TEXTURE == 1","\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );","\t#else","\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );","\t#endif","}","float scaleDividedByCameraFar;","float minResolutionMultipliedByCameraFar;","float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {","\tvec3 viewDelta = sampleViewPosition - centerViewPosition;","\tfloat viewDistance = length( viewDelta );","\tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;","\treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );","}","// moving costly divides into consts","const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );","const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );","float getAmbientOcclusion( const in vec3 centerViewPosition ) {","\t// precompute some variables require in getOcclusion.","\tscaleDividedByCameraFar = scale / cameraFar;","\tminResolutionMultipliedByCameraFar = minResolution * cameraFar;","\tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUv );","\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/","\tfloat angle = rand( vUv + randomSeed ) * PI2;","\tvec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;","\tvec2 radiusStep = radius;","\tfloat occlusionSum = 0.0;","\tfloat weightSum = 0.0;","\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {","\t\tvec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius;","\t\tradius += radiusStep;","\t\tangle += ANGLE_STEP;","\t\tfloat sampleDepth = getDepth( sampleUv );","\t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {","\t\t\tcontinue;","\t\t}","\t\tfloat sampleViewZ = getViewZ( sampleDepth );","\t\tvec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );","\t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );","\t\tweightSum += 1.0;","\t}","\tif( weightSum == 0.0 ) discard;","\treturn occlusionSum * ( intensity / weightSum );","}","void main() {","\tfloat centerDepth = getDepth( vUv );","\tif( centerDepth >= ( 1.0 - EPSILON ) ) {","\t\tdiscard;","\t}","\tfloat centerViewZ = getViewZ( centerDepth );","\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );","\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );","\tgl_FragColor = getDefaultColor( vUv );","\tgl_FragColor.xyz *= 1.0 - ambientOcclusion;","}"].join("\n")};t.SAOShader=i},27407:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={defines:{SMAA_THRESHOLD:"0.1"},uniforms:{tDiffuse:{value:null},resolution:{value:new r.Vector2(1/1024,1/512)}},vertexShader:["uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[ 3 ];","void SMAAEdgeDetectionVS( vec2 texcoord ) {","\tvOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 );","\tvOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 );","\tvOffset[ 2 ] = texcoord.xyxy + resolution.xyxy * vec4( -2.0, 0.0, 0.0, 2.0 );","}","void main() {","\tvUv = uv;","\tSMAAEdgeDetectionVS( vUv );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","varying vec4 vOffset[ 3 ];","vec4 SMAAColorEdgeDetectionPS( vec2 texcoord, vec4 offset[3], sampler2D colorTex ) {","\tvec2 threshold = vec2( SMAA_THRESHOLD, SMAA_THRESHOLD );","\tvec4 delta;","\tvec3 C = texture2D( colorTex, texcoord ).rgb;","\tvec3 Cleft = texture2D( colorTex, offset[0].xy ).rgb;","\tvec3 t = abs( C - Cleft );","\tdelta.x = max( max( t.r, t.g ), t.b );","\tvec3 Ctop = texture2D( colorTex, offset[0].zw ).rgb;","\tt = abs( C - Ctop );","\tdelta.y = max( max( t.r, t.g ), t.b );","\tvec2 edges = step( threshold, delta.xy );","\tif ( dot( edges, vec2( 1.0, 1.0 ) ) == 0.0 )","\t\tdiscard;","\tvec3 Cright = texture2D( colorTex, offset[1].xy ).rgb;","\tt = abs( C - Cright );","\tdelta.z = max( max( t.r, t.g ), t.b );","\tvec3 Cbottom = texture2D( colorTex, offset[1].zw ).rgb;","\tt = abs( C - Cbottom );","\tdelta.w = max( max( t.r, t.g ), t.b );","\tfloat maxDelta = max( max( max( delta.x, delta.y ), delta.z ), delta.w );","\tvec3 Cleftleft = texture2D( colorTex, offset[2].xy ).rgb;","\tt = abs( C - Cleftleft );","\tdelta.z = max( max( t.r, t.g ), t.b );","\tvec3 Ctoptop = texture2D( colorTex, offset[2].zw ).rgb;","\tt = abs( C - Ctoptop );","\tdelta.w = max( max( t.r, t.g ), t.b );","\tmaxDelta = max( max( maxDelta, delta.z ), delta.w );","\tedges.xy *= step( 0.5 * maxDelta, delta.xy );","\treturn vec4( edges, 0.0, 0.0 );","}","void main() {","\tgl_FragColor = SMAAColorEdgeDetectionPS( vUv, vOffset, tDiffuse );","}"].join("\n")},s={defines:{SMAA_MAX_SEARCH_STEPS:"8",SMAA_AREATEX_MAX_DISTANCE:"16",SMAA_AREATEX_PIXEL_SIZE:"( 1.0 / vec2( 160.0, 560.0 ) )",SMAA_AREATEX_SUBTEX_SIZE:"( 1.0 / 7.0 )"},uniforms:{tDiffuse:{value:null},tArea:{value:null},tSearch:{value:null},resolution:{value:new r.Vector2(1/1024,1/512)}},vertexShader:["uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[ 3 ];","varying vec2 vPixcoord;","void SMAABlendingWeightCalculationVS( vec2 texcoord ) {","\tvPixcoord = texcoord / resolution;","\tvOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -0.25, 0.125, 1.25, 0.125 );","\tvOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( -0.125, 0.25, -0.125, -1.25 );","\tvOffset[ 2 ] = vec4( vOffset[ 0 ].xz, vOffset[ 1 ].yw ) + vec4( -2.0, 2.0, -2.0, 2.0 ) * resolution.xxyy * float( SMAA_MAX_SEARCH_STEPS );","}","void main() {","\tvUv = uv;","\tSMAABlendingWeightCalculationVS( vUv );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define SMAASampleLevelZeroOffset( tex, coord, offset ) texture2D( tex, coord + float( offset ) * resolution, 0.0 )","uniform sampler2D tDiffuse;","uniform sampler2D tArea;","uniform sampler2D tSearch;","uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[3];","varying vec2 vPixcoord;","#if __VERSION__ == 100","vec2 round( vec2 x ) {","\treturn sign( x ) * floor( abs( x ) + 0.5 );","}","#endif","float SMAASearchLength( sampler2D searchTex, vec2 e, float bias, float scale ) {","\te.r = bias + e.r * scale;","\treturn 255.0 * texture2D( searchTex, e, 0.0 ).r;","}","float SMAASearchXLeft( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) {","\tvec2 e = vec2( 0.0, 1.0 );","\tfor ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) {","\t\te = texture2D( edgesTex, texcoord, 0.0 ).rg;","\t\ttexcoord -= vec2( 2.0, 0.0 ) * resolution;","\t\tif ( ! ( texcoord.x > end && e.g > 0.8281 && e.r == 0.0 ) ) break;","\t}","\ttexcoord.x += 0.25 * resolution.x;","\ttexcoord.x += resolution.x;","\ttexcoord.x += 2.0 * resolution.x;","\ttexcoord.x -= resolution.x * SMAASearchLength(searchTex, e, 0.0, 0.5);","\treturn texcoord.x;","}","float SMAASearchXRight( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) {","\tvec2 e = vec2( 0.0, 1.0 );","\tfor ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) {","\t\te = texture2D( edgesTex, texcoord, 0.0 ).rg;","\t\ttexcoord += vec2( 2.0, 0.0 ) * resolution;","\t\tif ( ! ( texcoord.x < end && e.g > 0.8281 && e.r == 0.0 ) ) break;","\t}","\ttexcoord.x -= 0.25 * resolution.x;","\ttexcoord.x -= resolution.x;","\ttexcoord.x -= 2.0 * resolution.x;","\ttexcoord.x += resolution.x * SMAASearchLength( searchTex, e, 0.5, 0.5 );","\treturn texcoord.x;","}","float SMAASearchYUp( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) {","\tvec2 e = vec2( 1.0, 0.0 );","\tfor ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) {","\t\te = texture2D( edgesTex, texcoord, 0.0 ).rg;","\t\ttexcoord += vec2( 0.0, 2.0 ) * resolution;","\t\tif ( ! ( texcoord.y > end && e.r > 0.8281 && e.g == 0.0 ) ) break;","\t}","\ttexcoord.y -= 0.25 * resolution.y;","\ttexcoord.y -= resolution.y;","\ttexcoord.y -= 2.0 * resolution.y;","\ttexcoord.y += resolution.y * SMAASearchLength( searchTex, e.gr, 0.0, 0.5 );","\treturn texcoord.y;","}","float SMAASearchYDown( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) {","\tvec2 e = vec2( 1.0, 0.0 );","\tfor ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) {","\t\te = texture2D( edgesTex, texcoord, 0.0 ).rg;","\t\ttexcoord -= vec2( 0.0, 2.0 ) * resolution;","\t\tif ( ! ( texcoord.y < end && e.r > 0.8281 && e.g == 0.0 ) ) break;","\t}","\ttexcoord.y += 0.25 * resolution.y;","\ttexcoord.y += resolution.y;","\ttexcoord.y += 2.0 * resolution.y;","\ttexcoord.y -= resolution.y * SMAASearchLength( searchTex, e.gr, 0.5, 0.5 );","\treturn texcoord.y;","}","vec2 SMAAArea( sampler2D areaTex, vec2 dist, float e1, float e2, float offset ) {","\tvec2 texcoord = float( SMAA_AREATEX_MAX_DISTANCE ) * round( 4.0 * vec2( e1, e2 ) ) + dist;","\ttexcoord = SMAA_AREATEX_PIXEL_SIZE * texcoord + ( 0.5 * SMAA_AREATEX_PIXEL_SIZE );","\ttexcoord.y += SMAA_AREATEX_SUBTEX_SIZE * offset;","\treturn texture2D( areaTex, texcoord, 0.0 ).rg;","}","vec4 SMAABlendingWeightCalculationPS( vec2 texcoord, vec2 pixcoord, vec4 offset[ 3 ], sampler2D edgesTex, sampler2D areaTex, sampler2D searchTex, ivec4 subsampleIndices ) {","\tvec4 weights = vec4( 0.0, 0.0, 0.0, 0.0 );","\tvec2 e = texture2D( edgesTex, texcoord ).rg;","\tif ( e.g > 0.0 ) {","\t\tvec2 d;","\t\tvec2 coords;","\t\tcoords.x = SMAASearchXLeft( edgesTex, searchTex, offset[ 0 ].xy, offset[ 2 ].x );","\t\tcoords.y = offset[ 1 ].y;","\t\td.x = coords.x;","\t\tfloat e1 = texture2D( edgesTex, coords, 0.0 ).r;","\t\tcoords.x = SMAASearchXRight( edgesTex, searchTex, offset[ 0 ].zw, offset[ 2 ].y );","\t\td.y = coords.x;","\t\td = d / resolution.x - pixcoord.x;","\t\tvec2 sqrt_d = sqrt( abs( d ) );","\t\tcoords.y -= 1.0 * resolution.y;","\t\tfloat e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 1, 0 ) ).r;","\t\tweights.rg = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.y ) );","\t}","\tif ( e.r > 0.0 ) {","\t\tvec2 d;","\t\tvec2 coords;","\t\tcoords.y = SMAASearchYUp( edgesTex, searchTex, offset[ 1 ].xy, offset[ 2 ].z );","\t\tcoords.x = offset[ 0 ].x;","\t\td.x = coords.y;","\t\tfloat e1 = texture2D( edgesTex, coords, 0.0 ).g;","\t\tcoords.y = SMAASearchYDown( edgesTex, searchTex, offset[ 1 ].zw, offset[ 2 ].w );","\t\td.y = coords.y;","\t\td = d / resolution.y - pixcoord.y;","\t\tvec2 sqrt_d = sqrt( abs( d ) );","\t\tcoords.y -= 1.0 * resolution.y;","\t\tfloat e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 0, 1 ) ).g;","\t\tweights.ba = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.x ) );","\t}","\treturn weights;","}","void main() {","\tgl_FragColor = SMAABlendingWeightCalculationPS( vUv, vPixcoord, vOffset, tDiffuse, tArea, tSearch, ivec4( 0.0 ) );","}"].join("\n")},a={uniforms:{tDiffuse:{value:null},tColor:{value:null},resolution:{value:new r.Vector2(1/1024,1/512)}},vertexShader:["uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[ 2 ];","void SMAANeighborhoodBlendingVS( vec2 texcoord ) {","\tvOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 );","\tvOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 );","}","void main() {","\tvUv = uv;","\tSMAANeighborhoodBlendingVS( vUv );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform sampler2D tColor;","uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[ 2 ];","vec4 SMAANeighborhoodBlendingPS( vec2 texcoord, vec4 offset[ 2 ], sampler2D colorTex, sampler2D blendTex ) {","\tvec4 a;","\ta.xz = texture2D( blendTex, texcoord ).xz;","\ta.y = texture2D( blendTex, offset[ 1 ].zw ).g;","\ta.w = texture2D( blendTex, offset[ 1 ].xy ).a;","\tif ( dot(a, vec4( 1.0, 1.0, 1.0, 1.0 )) < 1e-5 ) {","\t\treturn texture2D( colorTex, texcoord, 0.0 );","\t} else {","\t\tvec2 offset;","\t\toffset.x = a.a > a.b ? a.a : -a.b;","\t\toffset.y = a.g > a.r ? -a.g : a.r;","\t\tif ( abs( offset.x ) > abs( offset.y )) {","\t\t\toffset.y = 0.0;","\t\t} else {","\t\t\toffset.x = 0.0;","\t\t}","\t\tvec4 C = texture2D( colorTex, texcoord, 0.0 );","\t\ttexcoord += sign( offset ) * resolution;","\t\tvec4 Cop = texture2D( colorTex, texcoord, 0.0 );","\t\tfloat s = abs( offset.x ) > abs( offset.y ) ? abs( offset.x ) : abs( offset.y );","\t\tC.xyz = pow(C.xyz, vec3(2.2));","\t\tCop.xyz = pow(Cop.xyz, vec3(2.2));","\t\tvec4 mixed = mix(C, Cop, s);","\t\tmixed.xyz = pow(mixed.xyz, vec3(1.0 / 2.2));","\t\treturn mixed;","\t}","}","void main() {","\tgl_FragColor = SMAANeighborhoodBlendingPS( vUv, vOffset, tColor, tDiffuse );","}"].join("\n")};t.SMAABlendShader=a,t.SMAAEdgesShader=i,t.SMAAWeightsShader=s},48463:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={defines:{PERSPECTIVE_CAMERA:1,KERNEL_SIZE:32},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tDepth:{value:null},tNoise:{value:null},kernel:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new r.Vector2},cameraProjectionMatrix:{value:new r.Matrix4},cameraInverseProjectionMatrix:{value:new r.Matrix4},kernelRadius:{value:8},minDistance:{value:.005},maxDistance:{value:.05}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform sampler2D tNormal;","uniform sampler2D tDepth;","uniform sampler2D tNoise;","uniform vec3 kernel[ KERNEL_SIZE ];","uniform vec2 resolution;","uniform float cameraNear;","uniform float cameraFar;","uniform mat4 cameraProjectionMatrix;","uniform mat4 cameraInverseProjectionMatrix;","uniform float kernelRadius;","uniform float minDistance;","uniform float maxDistance;","varying vec2 vUv;","#include ","float getDepth( const in vec2 screenPosition ) {","\treturn texture2D( tDepth, screenPosition ).x;","}","float getLinearDepth( const in vec2 screenPosition ) {","\t#if PERSPECTIVE_CAMERA == 1","\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;","\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );","\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );","\t#else","\t\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","float getViewZ( const in float depth ) {","\t#if PERSPECTIVE_CAMERA == 1","\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );","\t#else","\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );","\t#endif","}","vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {","\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];","\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );","\tclipPosition *= clipW; // unprojection.","\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;","}","vec3 getViewNormal( const in vec2 screenPosition ) {","\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );","}","void main() {","\tfloat depth = getDepth( vUv );","\tfloat viewZ = getViewZ( depth );","\tvec3 viewPosition = getViewPosition( vUv, depth, viewZ );","\tvec3 viewNormal = getViewNormal( vUv );"," vec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );","\tvec3 random = texture2D( tNoise, vUv * noiseScale ).xyz;","\tvec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );","\tvec3 bitangent = cross( viewNormal, tangent );","\tmat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );"," float occlusion = 0.0;"," for ( int i = 0; i < KERNEL_SIZE; i ++ ) {","\t\tvec3 sampleVector = kernelMatrix * kernel[ i ];","\t\tvec3 samplePoint = viewPosition + ( sampleVector * kernelRadius );","\t\tvec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 );","\t\tsamplePointNDC /= samplePointNDC.w;","\t\tvec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5;","\t\tfloat realDepth = getLinearDepth( samplePointUv );","\t\tfloat sampleDepth = viewZToOrthographicDepth( samplePoint.z, cameraNear, cameraFar );","\t\tfloat delta = sampleDepth - realDepth;","\t\tif ( delta > minDistance && delta < maxDistance ) {","\t\t\tocclusion += 1.0;","\t\t}","\t}","\tocclusion = clamp( occlusion / float( KERNEL_SIZE ), 0.0, 1.0 );","\tgl_FragColor = vec4( vec3( 1.0 - occlusion ), 1.0 );","}"].join("\n")},s={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDepth;","uniform float cameraNear;","uniform float cameraFar;","varying vec2 vUv;","#include ","float getLinearDepth( const in vec2 screenPosition ) {","\t#if PERSPECTIVE_CAMERA == 1","\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;","\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );","\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );","\t#else","\t\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","void main() {","\tfloat depth = getLinearDepth( vUv );","\tgl_FragColor = vec4( vec3( 1.0 - depth ), 1.0 );","}"].join("\n")},a={uniforms:{tDiffuse:{value:null},resolution:{value:new r.Vector2}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform vec2 resolution;","varying vec2 vUv;","void main() {","\tvec2 texelSize = ( 1.0 / resolution );","\tfloat result = 0.0;","\tfor ( int i = - 2; i <= 2; i ++ ) {","\t\tfor ( int j = - 2; j <= 2; j ++ ) {","\t\t\tvec2 offset = ( vec2( float( i ), float( j ) ) ) * texelSize;","\t\t\tresult += texture2D( tDiffuse, vUv + offset ).r;","\t\t}","\t}","\tgl_FragColor = vec4( vec3( result / ( 5.0 * 5.0 ) ), 1.0 );","}"].join("\n")};t.SSAOBlurShader=a,t.SSAODepthShader=s,t.SSAOShader=i},30424:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={defines:{MAX_STEP:0,isPerspectiveCamera:!0,isDistanceAttenuation:!0,isFresnel:!0,isInfiniteThick:!1,isSelective:!1},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tMetalness:{value:null},tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new r.Vector2},cameraProjectionMatrix:{value:new r.Matrix4},cameraInverseProjectionMatrix:{value:new r.Matrix4},opacity:{value:.5},maxDistance:{value:180},cameraRange:{value:0},surfDist:{value:.007},thickTolerance:{value:.03}},vertexShader:"\n\n varying vec2 vUv;\n\n void main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n ",fragmentShader:"\n\t\t// precision highp float;\n\t\tprecision highp sampler2D;\n\t\tvarying vec2 vUv;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNormal;\n\t\tuniform sampler2D tMetalness;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float cameraRange;\n\t\tuniform vec2 resolution;\n\t\tuniform float opacity;\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform float maxDistance;\n\t\tuniform float surfDist;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\t\tuniform float thickTolerance;\n\t\t#include \n\t\tfloat pointToLineDistance(vec3 x0, vec3 x1, vec3 x2) {\n\t\t\t//x0: point, x1: linePointA, x2: linePointB\n\t\t\t//https://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html\n\t\t\treturn length(cross(x0-x1,x0-x2))/length(x2-x1);\n\t\t}\n\t\tfloat pointPlaneDistance(vec3 point,vec3 planePoint,vec3 planeNormal){\n\t\t\t// https://mathworld.wolfram.com/Point-PlaneDistance.html\n\t\t\t//// https://en.wikipedia.org/wiki/Plane_(geometry)\n\t\t\t//// http://paulbourke.net/geometry/pointlineplane/\n\t\t\tfloat a=planeNormal.x,b=planeNormal.y,c=planeNormal.z;\n\t\t\tfloat x0=point.x,y0=point.y,z0=point.z;\n\t\t\tfloat x=planePoint.x,y=planePoint.y,z=planePoint.z;\n\t\t\tfloat d=-(a*x+b*y+c*z);\n\t\t\tfloat distance=(a*x0+b*y0+c*z0+d)/sqrt(a*a+b*b+c*c);\n\t\t\treturn distance;\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;//view\n\t\t}\n\t\tvec3 getViewNormal( const in vec2 uv ) {\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, uv ).xyz );\n\t\t}\n\t\tvec2 viewPositionToXY(vec3 viewPosition){\n\t\t\tvec2 xy;\n\t\t\tvec4 clip=cameraProjectionMatrix*vec4(viewPosition,1);\n\t\t\txy=clip.xy;//clip\n\t\t\tfloat clipW=clip.w;\n\t\t\txy/=clipW;//NDC\n\t\t\txy=(xy+1.)/2.;//uv\n\t\t\txy*=resolution;//screen\n\t\t\treturn xy;\n\t\t}\n\t\tvoid main(){\n\t\t\t#ifdef isSelective\n\t\t\t\tfloat metalness=texture2D(tMetalness,vUv).r;\n\t\t\t\tif(metalness==0.) return;\n\t\t\t#endif\n\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\tif(-viewZ>=cameraFar) return;\n\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ+cameraProjectionMatrix[3][3];\n\t\t\tvec3 viewPosition=getViewPosition( vUv, depth, clipW );\n\n\t\t\tvec2 d0=gl_FragCoord.xy;\n\t\t\tvec2 d1;\n\n\t\t\tvec3 viewNormal=getViewNormal( vUv );\n\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\tvec3 viewIncidenceDir=normalize(viewPosition);\n\t\t\t\tvec3 viewReflectDir=reflect(viewIncidenceDir,viewNormal);\n\t\t\t#else\n\t\t\t\tvec3 viewIncidenceDir=vec3(0,0,-1);\n\t\t\t\tvec3 viewReflectDir=reflect(viewIncidenceDir,viewNormal);\n\t\t\t#endif\n\n\t\t\tfloat maxReflectRayLen=maxDistance/dot(-viewIncidenceDir,viewNormal);\n\t\t\t// dot(a,b)==length(a)*length(b)*cos(theta) // https://www.mathsisfun.com/algebra/vectors-dot-product.html\n\t\t\t// if(a.isNormalized&&b.isNormalized) dot(a,b)==cos(theta)\n\t\t\t// maxDistance/maxReflectRayLen=cos(theta)\n\t\t\t// maxDistance/maxReflectRayLen==dot(a,b)\n\t\t\t// maxReflectRayLen==maxDistance/dot(a,b)\n\n\t\t\tvec3 d1viewPosition=viewPosition+viewReflectDir*maxReflectRayLen;\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\tif(d1viewPosition.z>-cameraNear){\n\t\t\t\t\t//https://tutorial.math.lamar.edu/Classes/CalcIII/EqnsOfLines.aspx\n\t\t\t\t\tfloat t=(-cameraNear-viewPosition.z)/viewReflectDir.z;\n\t\t\t\t\td1viewPosition=viewPosition+viewReflectDir*t;\n\t\t\t\t}\n\t\t\t#endif\n\t\t\td1=viewPositionToXY(d1viewPosition);\n\n\t\t\tfloat totalLen=length(d1-d0);\n\t\t\tfloat xLen=d1.x-d0.x;\n\t\t\tfloat yLen=d1.y-d0.y;\n\t\t\tfloat totalStep=max(abs(xLen),abs(yLen));\n\t\t\tfloat xSpan=xLen/totalStep;\n\t\t\tfloat ySpan=yLen/totalStep;\n\t\t\tfor(float i=0.;i=totalStep) break;\n\t\t\t\tvec2 xy=vec2(d0.x+i*xSpan,d0.y+i*ySpan);\n\t\t\t\tif(xy.x<0.||xy.x>resolution.x||xy.y<0.||xy.y>resolution.y) break;\n\t\t\t\tfloat s=length(xy-d0)/totalLen;\n\t\t\t\tvec2 uv=xy/resolution;\n\n\t\t\t\tfloat d = getDepth(uv);\n\t\t\t\tfloat vZ = getViewZ( d );\n\t\t\t\tif(-vZ>=cameraFar) continue;\n\t\t\t\tfloat cW = cameraProjectionMatrix[2][3] * vZ+cameraProjectionMatrix[3][3];\n\t\t\t\tvec3 vP=getViewPosition( uv, d, cW );\n\n\t\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\t\t// https://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf\n\t\t\t\t\tfloat recipVPZ=1./viewPosition.z;\n\t\t\t\t\tfloat viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));\n\t\t\t\t\tfloat sD=surfDist*cW;\n\t\t\t\t#else\n\t\t\t\t\tfloat viewReflectRayZ=viewPosition.z+s*(d1viewPosition.z-viewPosition.z);\n\t\t\t\t\tfloat sD=surfDist;\n\t\t\t\t#endif\n\t\t\t\tif(viewReflectRayZ-sD>vZ) continue;\n\n\t\t\t\t#ifdef isInfiniteThick\n\t\t\t\t\tif(viewReflectRayZ+thickTolerance*clipW=0.) continue;\n\t\t\t\t\tfloat distance=pointPlaneDistance(vP,viewPosition,viewNormal);\n\t\t\t\t\tif(distance>maxDistance) break;\n\t\t\t\t\t#ifdef isDistanceAttenuation\n\t\t\t\t\t\tfloat ratio=1.-(distance/maxDistance);\n\t\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t\t#endif\n\t\t\t\t\t#ifdef isFresnel\n\t\t\t\t\t\tfloat fresnel=(dot(viewIncidenceDir,viewReflectDir)+1.)/2.;\n\t\t\t\t\t\top*=fresnel;\n\t\t\t\t\t#endif\n\t\t\t\t\tvec4 reflectColor=texture2D(tDiffuse,uv);\n\t\t\t\t\tgl_FragColor.xyz=reflectColor.xyz;\n\t\t\t\t\tgl_FragColor.a=op;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t"},s={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:"\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n ",fragmentShader:"\n\n uniform sampler2D tDepth;\n\n uniform float cameraNear;\n uniform float cameraFar;\n\n varying vec2 vUv;\n\n #include \n\n\t\tfloat getLinearDepth( const in vec2 uv ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, uv ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, uv ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n void main() {\n\n \tfloat depth = getLinearDepth( vUv );\n\t\t\tfloat d = 1.0 - depth;\n\t\t\t// d=(d-.999)*1000.;\n \tgl_FragColor = vec4( vec3( d ), 1.0 );\n\n }\n\n "},a={uniforms:{tDiffuse:{value:null},resolution:{value:new r.Vector2},opacity:{value:.5}},vertexShader:"\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n ",fragmentShader:"\n\n uniform sampler2D tDiffuse;\n uniform vec2 resolution;\n varying vec2 vUv;\n void main() {\n\t\t\t//reverse engineering from PhotoShop blur filter, then change coefficient\n\n \tvec2 texelSize = ( 1.0 / resolution );\n\n\t\t\tvec4 c=texture2D(tDiffuse,vUv);\n\n\t\t\tvec2 offset;\n\n\t\t\toffset=(vec2(-1,0))*texelSize;\n\t\t\tvec4 cl=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(1,0))*texelSize;\n\t\t\tvec4 cr=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(0,-1))*texelSize;\n\t\t\tvec4 cb=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(0,1))*texelSize;\n\t\t\tvec4 ct=texture2D(tDiffuse,vUv+offset);\n\n\t\t\t// float coeCenter=.5;\n\t\t\t// float coeSide=.125;\n\t\t\tfloat coeCenter=.2;\n\t\t\tfloat coeSide=.2;\n\t\t\tfloat a=c.a*coeCenter+cl.a*coeSide+cr.a*coeSide+cb.a*coeSide+ct.a*coeSide;\n\t\t\tvec3 rgb=(c.rgb*c.a*coeCenter+cl.rgb*cl.a*coeSide+cr.rgb*cr.a*coeSide+cb.rgb*cb.a*coeSide+ct.rgb*ct.a*coeSide)/a;\n\t\t\tgl_FragColor=vec4(rgb,a);\n\n\t\t}\n\t"};t.SSRBlurShader=a,t.SSRDepthShader=s,t.SSRShader=i},83222:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},amount:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float amount;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 color = texture2D( tDiffuse, vUv );","\tvec3 c = color.rgb;","\tcolor.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );","\tcolor.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );","\tcolor.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );","\tgl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );","}"].join("\n")};t.SepiaShader=n},66155:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},resolution:{value:new(n(85232).Vector2)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform vec2 resolution;","varying vec2 vUv;","void main() {","\tvec2 texel = vec2( 1.0 / resolution.x, 1.0 / resolution.y );","\tconst mat3 Gx = mat3( -1, -2, -1, 0, 0, 0, 1, 2, 1 );","\tconst mat3 Gy = mat3( -1, 0, 1, -2, 0, 2, -1, 0, 1 );","\tfloat tx0y0 = texture2D( tDiffuse, vUv + texel * vec2( -1, -1 ) ).r;","\tfloat tx0y1 = texture2D( tDiffuse, vUv + texel * vec2( -1, 0 ) ).r;","\tfloat tx0y2 = texture2D( tDiffuse, vUv + texel * vec2( -1, 1 ) ).r;","\tfloat tx1y0 = texture2D( tDiffuse, vUv + texel * vec2( 0, -1 ) ).r;","\tfloat tx1y1 = texture2D( tDiffuse, vUv + texel * vec2( 0, 0 ) ).r;","\tfloat tx1y2 = texture2D( tDiffuse, vUv + texel * vec2( 0, 1 ) ).r;","\tfloat tx2y0 = texture2D( tDiffuse, vUv + texel * vec2( 1, -1 ) ).r;","\tfloat tx2y1 = texture2D( tDiffuse, vUv + texel * vec2( 1, 0 ) ).r;","\tfloat tx2y2 = texture2D( tDiffuse, vUv + texel * vec2( 1, 1 ) ).r;","\tfloat valueGx = Gx[0][0] * tx0y0 + Gx[1][0] * tx1y0 + Gx[2][0] * tx2y0 + ","\t\tGx[0][1] * tx0y1 + Gx[1][1] * tx1y1 + Gx[2][1] * tx2y1 + ","\t\tGx[0][2] * tx0y2 + Gx[1][2] * tx1y2 + Gx[2][2] * tx2y2; ","\tfloat valueGy = Gy[0][0] * tx0y0 + Gy[1][0] * tx1y0 + Gy[2][0] * tx2y0 + ","\t\tGy[0][1] * tx0y1 + Gy[1][1] * tx1y1 + Gy[2][1] * tx2y1 + ","\t\tGy[0][2] * tx0y2 + Gy[1][2] * tx1y2 + Gy[2][2] * tx2y2; ","\tfloat G = sqrt( ( valueGx * valueGx ) + ( valueGy * valueGy ) );","\tgl_FragColor = vec4( vec3( G ), 1 );","}"].join("\n")};t.SobelOperatorShader=r},61621:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);let i;function s(){if(i)return i;const e=r.ShaderChunk.meshphong_frag.slice(0,r.ShaderChunk.meshphong_frag.indexOf("void main() {")),t=r.ShaderChunk.meshphong_frag.slice(r.ShaderChunk.meshphong_frag.indexOf("void main() {"));return i={uniforms:r.UniformsUtils.merge([r.ShaderLib.phong.uniforms,{thicknessMap:{value:null},thicknessColor:{value:new r.Color(16777215)},thicknessDistortion:{value:.1},thicknessAmbient:{value:0},thicknessAttenuation:{value:.1},thicknessPower:{value:2},thicknessScale:{value:10}}]),vertexShader:`\n #define USE_UV\n ${r.ShaderChunk.meshphong_vert}\n `,fragmentShader:`\n #define USE_UV',\n #define SUBSURFACE',\n\n ${e}\n\n uniform sampler2D thicknessMap;\n uniform float thicknessPower;\n uniform float thicknessScale;\n uniform float thicknessDistortion;\n uniform float thicknessAmbient;\n uniform float thicknessAttenuation;\n uniform vec3 thicknessColor;\n\n void RE_Direct_Scattering(const in IncidentLight directLight, const in vec2 uv, const in GeometricContext geometry, inout ReflectedLight reflectedLight) {\n \tvec3 thickness = thicknessColor * texture2D(thicknessMap, uv).r;\n \tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * thicknessDistortion));\n \tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), thicknessPower) * thicknessScale;\n \tvec3 scatteringIllu = (scatteringDot + thicknessAmbient) * thickness;\n \treflectedLight.directDiffuse += scatteringIllu * thicknessAttenuation * directLight.color;\n }\n\n ${t.replace("#include ",r.ShaderChunk.lights_fragment_begin.replace(/RE_Direct\( directLight, geometry, material, reflectedLight \);/g,"\n RE_Direct( directLight, geometry, material, reflectedLight );\n\n #if defined( SUBSURFACE ) && defined( USE_UV )\n RE_Direct_Scattering(directLight, vUv, geometry, reflectedLight);\n #endif\n "))}\n `},i}const a={get uniforms(){return s().uniforms},set uniforms(e){s().uniforms=e},get vertexShader(){return s().vertexShader},set vertexShader(e){s().vertexShader=e},get fragmentShader(){return s().vertexShader},set fragmentShader(e){s().vertexShader=e}};t.SubsurfaceScatteringShader=a},60206:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );","\tvec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);","\tgl_FragColor = newTex;","}"].join("\n")};t.TechnicolorShader=n},51867:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},averageLuminance:{value:1},luminanceMap:{value:null},maxLuminance:{value:16},minLuminance:{value:.01},middleGrey:{value:.6}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","uniform sampler2D tDiffuse;","varying vec2 vUv;","uniform float middleGrey;","uniform float minLuminance;","uniform float maxLuminance;","#ifdef ADAPTED_LUMINANCE","\tuniform sampler2D luminanceMap;","#else","\tuniform float averageLuminance;","#endif","vec3 ToneMap( vec3 vColor ) {","\t#ifdef ADAPTED_LUMINANCE","\t\tfloat fLumAvg = texture2D(luminanceMap, vec2(0.5, 0.5)).r;","\t#else","\t\tfloat fLumAvg = averageLuminance;","\t#endif","\tfloat fLumPixel = linearToRelativeLuminance( vColor );","\tfloat fLumScaled = (fLumPixel * middleGrey) / max( minLuminance, fLumAvg );","\tfloat fLumCompressed = (fLumScaled * (1.0 + (fLumScaled / (maxLuminance * maxLuminance)))) / (1.0 + fLumScaled);","\treturn fLumCompressed * vColor;","}","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tgl_FragColor = vec4( ToneMap( texel.xyz ), texel.w );","}"].join("\n")};t.ToneMapShader=n},55658:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={uniforms:{uDirLightPos:{value:new r.Vector3},uDirLightColor:{value:new r.Color(15658734)},uAmbientLightColor:{value:new r.Color(328965)},uBaseColor:{value:new r.Color(16777215)}},vertexShader:["varying vec3 vNormal;","varying vec3 vRefract;","void main() {","\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );","\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );","\tvec3 worldNormal = normalize ( mat3( modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz ) * normal );","\tvNormal = normalize( normalMatrix * normal );","\tvec3 I = worldPosition.xyz - cameraPosition;","\tvRefract = refract( normalize( I ), worldNormal, 1.02 );","\tgl_Position = projectionMatrix * mvPosition;","}"].join("\n"),fragmentShader:["uniform vec3 uBaseColor;","uniform vec3 uDirLightPos;","uniform vec3 uDirLightColor;","uniform vec3 uAmbientLightColor;","varying vec3 vNormal;","varying vec3 vRefract;","void main() {","\tfloat directionalLightWeighting = max( dot( normalize( vNormal ), uDirLightPos ), 0.0);","\tvec3 lightWeighting = uAmbientLightColor + uDirLightColor * directionalLightWeighting;","\tfloat intensity = smoothstep( - 0.5, 1.0, pow( length(lightWeighting), 20.0 ) );","\tintensity += length(lightWeighting) * 0.2;","\tfloat cameraWeighting = dot( normalize( vNormal ), vRefract );","\tintensity += pow( 1.0 - length( cameraWeighting ), 6.0 );","\tintensity = intensity * 0.2 + 0.3;","\tif ( intensity < 0.50 ) {","\t\tgl_FragColor = vec4( 2.0 * intensity * uBaseColor, 1.0 );","\t} else {","\t\tgl_FragColor = vec4( 1.0 - 2.0 * ( 1.0 - intensity ) * ( 1.0 - uBaseColor ), 1.0 );","}","}"].join("\n")},s={uniforms:{uDirLightPos:{value:new r.Vector3},uDirLightColor:{value:new r.Color(15658734)},uAmbientLightColor:{value:new r.Color(328965)},uBaseColor:{value:new r.Color(15658734)},uLineColor1:{value:new r.Color(8421504)},uLineColor2:{value:new r.Color(0)},uLineColor3:{value:new r.Color(0)},uLineColor4:{value:new r.Color(0)}},vertexShader:["varying vec3 vNormal;","void main() {","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","\tvNormal = normalize( normalMatrix * normal );","}"].join("\n"),fragmentShader:["uniform vec3 uBaseColor;","uniform vec3 uLineColor1;","uniform vec3 uLineColor2;","uniform vec3 uLineColor3;","uniform vec3 uLineColor4;","uniform vec3 uDirLightPos;","uniform vec3 uDirLightColor;","uniform vec3 uAmbientLightColor;","varying vec3 vNormal;","void main() {","\tfloat camera = max( dot( normalize( vNormal ), vec3( 0.0, 0.0, 1.0 ) ), 0.4);","\tfloat light = max( dot( normalize( vNormal ), uDirLightPos ), 0.0);","\tgl_FragColor = vec4( uBaseColor, 1.0 );","\tif ( length(uAmbientLightColor + uDirLightColor * light) < 1.00 ) {","\t\tgl_FragColor *= vec4( uLineColor1, 1.0 );","\t}","\tif ( length(uAmbientLightColor + uDirLightColor * camera) < 0.50 ) {","\t\tgl_FragColor *= vec4( uLineColor2, 1.0 );","\t}","}"].join("\n")},a={uniforms:{uDirLightPos:{value:new r.Vector3},uDirLightColor:{value:new r.Color(15658734)},uAmbientLightColor:{value:new r.Color(328965)},uBaseColor:{value:new r.Color(16777215)},uLineColor1:{value:new r.Color(0)},uLineColor2:{value:new r.Color(0)},uLineColor3:{value:new r.Color(0)},uLineColor4:{value:new r.Color(0)}},vertexShader:["varying vec3 vNormal;","void main() {","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","\tvNormal = normalize( normalMatrix * normal );","}"].join("\n"),fragmentShader:["uniform vec3 uBaseColor;","uniform vec3 uLineColor1;","uniform vec3 uLineColor2;","uniform vec3 uLineColor3;","uniform vec3 uLineColor4;","uniform vec3 uDirLightPos;","uniform vec3 uDirLightColor;","uniform vec3 uAmbientLightColor;","varying vec3 vNormal;","void main() {","\tfloat directionalLightWeighting = max( dot( normalize(vNormal), uDirLightPos ), 0.0);","\tvec3 lightWeighting = uAmbientLightColor + uDirLightColor * directionalLightWeighting;","\tgl_FragColor = vec4( uBaseColor, 1.0 );","\tif ( length(lightWeighting) < 1.00 ) {","\t\tif ( mod(gl_FragCoord.x + gl_FragCoord.y, 10.0) == 0.0) {","\t\t\tgl_FragColor = vec4( uLineColor1, 1.0 );","\t\t}","\t}","\tif ( length(lightWeighting) < 0.75 ) {","\t\tif (mod(gl_FragCoord.x - gl_FragCoord.y, 10.0) == 0.0) {","\t\t\tgl_FragColor = vec4( uLineColor2, 1.0 );","\t\t}","\t}","\tif ( length(lightWeighting) < 0.50 ) {","\t\tif (mod(gl_FragCoord.x + gl_FragCoord.y - 5.0, 10.0) == 0.0) {","\t\t\tgl_FragColor = vec4( uLineColor3, 1.0 );","\t\t}","\t}","\tif ( length(lightWeighting) < 0.3465 ) {","\t\tif (mod(gl_FragCoord.x - gl_FragCoord.y - 5.0, 10.0) == 0.0) {","\t\t\tgl_FragColor = vec4( uLineColor4, 1.0 );","\t}","\t}","}"].join("\n")},o={uniforms:{uDirLightPos:{value:new r.Vector3},uDirLightColor:{value:new r.Color(15658734)},uAmbientLightColor:{value:new r.Color(328965)},uBaseColor:{value:new r.Color(16777215)},uLineColor1:{value:new r.Color(0)}},vertexShader:["varying vec3 vNormal;","void main() {","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","\tvNormal = normalize( normalMatrix * normal );","}"].join("\n"),fragmentShader:["uniform vec3 uBaseColor;","uniform vec3 uLineColor1;","uniform vec3 uLineColor2;","uniform vec3 uLineColor3;","uniform vec3 uLineColor4;","uniform vec3 uDirLightPos;","uniform vec3 uDirLightColor;","uniform vec3 uAmbientLightColor;","varying vec3 vNormal;","void main() {","float directionalLightWeighting = max( dot( normalize(vNormal), uDirLightPos ), 0.0);","vec3 lightWeighting = uAmbientLightColor + uDirLightColor * directionalLightWeighting;","gl_FragColor = vec4( uBaseColor, 1.0 );","if ( length(lightWeighting) < 1.00 ) {","\t\tif ( ( mod(gl_FragCoord.x, 4.001) + mod(gl_FragCoord.y, 4.0) ) > 6.00 ) {","\t\t\tgl_FragColor = vec4( uLineColor1, 1.0 );","\t\t}","\t}","\tif ( length(lightWeighting) < 0.50 ) {","\t\tif ( ( mod(gl_FragCoord.x + 2.0, 4.001) + mod(gl_FragCoord.y + 2.0, 4.0) ) > 6.00 ) {","\t\t\tgl_FragColor = vec4( uLineColor1, 1.0 );","\t\t}","\t}","}"].join("\n")};t.ToonShader1=i,t.ToonShader2=s,t.ToonShaderDotted=o,t.ToonShaderHatching=a},60310:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{texture:{value:null},delta:{value:new(n(85232).Vector2)(1,1)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","#define ITERATIONS 10.0","uniform sampler2D texture;","uniform vec2 delta;","varying vec2 vUv;","void main() {","\tvec4 color = vec4( 0.0 );","\tfloat total = 0.0;","\tfloat offset = rand( vUv );","\tfor ( float t = -ITERATIONS; t <= ITERATIONS; t ++ ) {","\t\tfloat percent = ( t + offset - 0.5 ) / ITERATIONS;","\t\tfloat weight = 1.0 - abs( percent );","\t\tcolor += texture2D( texture, vUv + delta * percent ) * weight;","\t\ttotal += weight;","\t}","\tgl_FragColor = color / total;","}"].join("\n")};t.TriangleBlurShader=r},65149:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","#include ","void main() {","\tfloat depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) );","\tgl_FragColor = vec4( vec3( depth ), opacity );","}"].join("\n")};t.UnpackDepthRGBAShader=n},94989:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n ",fragmentShader:"\n\n uniform sampler2D tDiffuse;\n uniform float v;\n\n varying vec2 vUv;\n\n void main() {\n\n vec4 sum = vec4( 0.0 );\n\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n gl_FragColor = sum;\n\n }\n "};t.VerticalBlurShader=n},19076:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},v:{value:1/512},r:{value:.35}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float v;","uniform float r;","varying vec2 vUv;","void main() {","\tvec4 sum = vec4( 0.0 );","\tfloat vv = v * abs( r - vUv.y );","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * vv ) ) * 0.051;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * vv ) ) * 0.0918;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * vv ) ) * 0.12245;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * vv ) ) * 0.1531;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * vv ) ) * 0.1531;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * vv ) ) * 0.12245;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * vv ) ) * 0.0918;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * vv ) ) * 0.051;","\tgl_FragColor = sum;","}"].join("\n")};t.VerticalTiltShiftShader=n},74354:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},offset:{value:1},darkness:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float offset;","uniform float darkness;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tvec2 uv = ( vUv - vec2( 0.5 ) ) * vec2( offset );","\tgl_FragColor = vec4( mix( texel.rgb, vec3( 1.0 - darkness ), dot( uv, uv ) ), texel.a );","}"].join("\n")};t.VignetteShader=n},16832:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={uniforms:{u_size:{value:new r.Vector3(1,1,1)},u_renderstyle:{value:0},u_renderthreshold:{value:.5},u_clim:{value:new r.Vector2(1,1)},u_data:{value:null},u_cmdata:{value:null}},vertexShader:["\t\tvarying vec4 v_nearpos;","\t\tvarying vec4 v_farpos;","\t\tvarying vec3 v_position;","\t\tvoid main() {","\t\t\t\tmat4 viewtransformf = modelViewMatrix;","\t\t\t\tmat4 viewtransformi = inverse(modelViewMatrix);","\t\t\t\tvec4 position4 = vec4(position, 1.0);","\t\t\t\tvec4 pos_in_cam = viewtransformf * position4;","\t\t\t\tpos_in_cam.z = -pos_in_cam.w;","\t\t\t\tv_nearpos = viewtransformi * pos_in_cam;","\t\t\t\tpos_in_cam.z = pos_in_cam.w;","\t\t\t\tv_farpos = viewtransformi * pos_in_cam;","\t\t\t\tv_position = position;","\t\t\t\tgl_Position = projectionMatrix * viewMatrix * modelMatrix * position4;","\t\t}"].join("\n"),fragmentShader:["\t\tprecision highp float;","\t\tprecision mediump sampler3D;","\t\tuniform vec3 u_size;","\t\tuniform int u_renderstyle;","\t\tuniform float u_renderthreshold;","\t\tuniform vec2 u_clim;","\t\tuniform sampler3D u_data;","\t\tuniform sampler2D u_cmdata;","\t\tvarying vec3 v_position;","\t\tvarying vec4 v_nearpos;","\t\tvarying vec4 v_farpos;","\t\tconst int MAX_STEPS = 887;\t// 887 for 512^3, 1774 for 1024^3","\t\tconst int REFINEMENT_STEPS = 4;","\t\tconst float relative_step_size = 1.0;","\t\tconst vec4 ambient_color = vec4(0.2, 0.4, 0.2, 1.0);","\t\tconst vec4 diffuse_color = vec4(0.8, 0.2, 0.2, 1.0);","\t\tconst vec4 specular_color = vec4(1.0, 1.0, 1.0, 1.0);","\t\tconst float shininess = 40.0;","\t\tvoid cast_mip(vec3 start_loc, vec3 step, int nsteps, vec3 view_ray);","\t\tvoid cast_iso(vec3 start_loc, vec3 step, int nsteps, vec3 view_ray);","\t\tfloat sample1(vec3 texcoords);","\t\tvec4 apply_colormap(float val);","\t\tvec4 add_lighting(float val, vec3 loc, vec3 step, vec3 view_ray);","\t\tvoid main() {","\t\t\t\tvec3 farpos = v_farpos.xyz / v_farpos.w;","\t\t\t\tvec3 nearpos = v_nearpos.xyz / v_nearpos.w;","\t\t\t\tvec3 view_ray = normalize(nearpos.xyz - farpos.xyz);","\t\t\t\tfloat distance = dot(nearpos - v_position, view_ray);","\t\t\t\tdistance = max(distance, min((-0.5 - v_position.x) / view_ray.x,","\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(u_size.x - 0.5 - v_position.x) / view_ray.x));","\t\t\t\tdistance = max(distance, min((-0.5 - v_position.y) / view_ray.y,","\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(u_size.y - 0.5 - v_position.y) / view_ray.y));","\t\t\t\tdistance = max(distance, min((-0.5 - v_position.z) / view_ray.z,","\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(u_size.z - 0.5 - v_position.z) / view_ray.z));","\t\t\t\tvec3 front = v_position + view_ray * distance;","\t\t\t\tint nsteps = int(-distance / relative_step_size + 0.5);","\t\t\t\tif ( nsteps < 1 )","\t\t\t\t\t\tdiscard;","\t\t\t\tvec3 step = ((v_position - front) / u_size) / float(nsteps);","\t\t\t\tvec3 start_loc = front / u_size;","\t\t\t\tif (u_renderstyle == 0)","\t\t\t\t\t\tcast_mip(start_loc, step, nsteps, view_ray);","\t\t\t\telse if (u_renderstyle == 1)","\t\t\t\t\t\tcast_iso(start_loc, step, nsteps, view_ray);","\t\t\t\tif (gl_FragColor.a < 0.05)","\t\t\t\t\t\tdiscard;","\t\t}","\t\tfloat sample1(vec3 texcoords) {","\t\t\t\t/* Sample float value from a 3D texture. Assumes intensity data. */","\t\t\t\treturn texture(u_data, texcoords.xyz).r;","\t\t}","\t\tvec4 apply_colormap(float val) {","\t\t\t\tval = (val - u_clim[0]) / (u_clim[1] - u_clim[0]);","\t\t\t\treturn texture2D(u_cmdata, vec2(val, 0.5));","\t\t}","\t\tvoid cast_mip(vec3 start_loc, vec3 step, int nsteps, vec3 view_ray) {","\t\t\t\tfloat max_val = -1e6;","\t\t\t\tint max_i = 100;","\t\t\t\tvec3 loc = start_loc;","\t\t\t\tfor (int iter=0; iter= nsteps)","\t\t\t\t\t\t\t\tbreak;","\t\t\t\t\t\tfloat val = sample1(loc);","\t\t\t\t\t\tif (val > max_val) {","\t\t\t\t\t\t\t\tmax_val = val;","\t\t\t\t\t\t\t\tmax_i = iter;","\t\t\t\t\t\t}","\t\t\t\t\t\tloc += step;","\t\t\t\t}","\t\t\t\tvec3 iloc = start_loc + step * (float(max_i) - 0.5);","\t\t\t\tvec3 istep = step / float(REFINEMENT_STEPS);","\t\t\t\tfor (int i=0; i= nsteps)","\t\t\t\t\t\t\t\tbreak;","\t\t\t\t\t\tfloat val = sample1(loc);","\t\t\t\t\t\tif (val > low_threshold) {","\t\t\t\t\t\t\t\tvec3 iloc = loc - 0.5 * step;","\t\t\t\t\t\t\t\tvec3 istep = step / float(REFINEMENT_STEPS);","\t\t\t\t\t\t\t\tfor (int i=0; i u_renderthreshold) {","\t\t\t\t\t\t\t\t\t\t\t\tgl_FragColor = add_lighting(val, iloc, dstep, view_ray);","\t\t\t\t\t\t\t\t\t\t\t\treturn;","\t\t\t\t\t\t\t\t\t\t}","\t\t\t\t\t\t\t\t\t\tiloc += istep;","\t\t\t\t\t\t\t\t}","\t\t\t\t\t\t}","\t\t\t\t\t\tloc += step;","\t\t\t\t}","\t\t}","\t\tvec4 add_lighting(float val, vec3 loc, vec3 step, vec3 view_ray)","\t\t{","\t\t\t\tvec3 V = normalize(view_ray);","\t\t\t\tvec3 N;","\t\t\t\tfloat val1, val2;","\t\t\t\tval1 = sample1(loc + vec3(-step[0], 0.0, 0.0));","\t\t\t\tval2 = sample1(loc + vec3(+step[0], 0.0, 0.0));","\t\t\t\tN[0] = val1 - val2;","\t\t\t\tval = max(max(val1, val2), val);","\t\t\t\tval1 = sample1(loc + vec3(0.0, -step[1], 0.0));","\t\t\t\tval2 = sample1(loc + vec3(0.0, +step[1], 0.0));","\t\t\t\tN[1] = val1 - val2;","\t\t\t\tval = max(max(val1, val2), val);","\t\t\t\tval1 = sample1(loc + vec3(0.0, 0.0, -step[2]));","\t\t\t\tval2 = sample1(loc + vec3(0.0, 0.0, +step[2]));","\t\t\t\tN[2] = val1 - val2;","\t\t\t\tval = max(max(val1, val2), val);","\t\t\t\tfloat gm = length(N); // gradient magnitude","\t\t\t\tN = normalize(N);","\t\t\t\tfloat Nselect = float(dot(N, V) > 0.0);","\t\t\t\tN = (2.0 * Nselect - 1.0) * N;\t// ==\tNselect * N - (1.0-Nselect)*N;","\t\t\t\tvec4 ambient_color = vec4(0.0, 0.0, 0.0, 0.0);","\t\t\t\tvec4 diffuse_color = vec4(0.0, 0.0, 0.0, 0.0);","\t\t\t\tvec4 specular_color = vec4(0.0, 0.0, 0.0, 0.0);","\t\t\t\tfor (int i=0; i<1; i++)","\t\t\t\t{","\t\t\t\t\t\tvec3 L = normalize(view_ray);\t//lightDirs[i];","\t\t\t\t\t\tfloat lightEnabled = float( length(L) > 0.0 );","\t\t\t\t\t\tL = normalize(L + (1.0 - lightEnabled));","\t\t\t\t\t\tfloat lambertTerm = clamp(dot(N, L), 0.0, 1.0);","\t\t\t\t\t\tvec3 H = normalize(L+V); // Halfway vector","\t\t\t\t\t\tfloat specularTerm = pow(max(dot(H, N), 0.0), shininess);","\t\t\t\t\t\tfloat mask1 = lightEnabled;","\t\t\t\t\t\tambient_color +=\tmask1 * ambient_color;\t// * gl_LightSource[i].ambient;","\t\t\t\t\t\tdiffuse_color +=\tmask1 * lambertTerm;","\t\t\t\t\t\tspecular_color += mask1 * specularTerm * specular_color;","\t\t\t\t}","\t\t\t\tvec4 final_color;","\t\t\t\tvec4 color = apply_colormap(val);","\t\t\t\tfinal_color = color * (ambient_color + diffuse_color) + specular_color;","\t\t\t\tfinal_color.a = color.a;","\t\t\t\treturn final_color;","\t\t}"].join("\n")};t.VolumeRenderShader1=i},169:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{color:{value:null},time:{value:0},tDiffuse:{value:null},tDudv:{value:null},textureMatrix:{value:null}},vertexShader:["uniform mat4 textureMatrix;","varying vec2 vUv;","varying vec4 vUvRefraction;","void main() {","\tvUv = uv;","\tvUvRefraction = textureMatrix * vec4( position, 1.0 );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform vec3 color;","uniform float time;","uniform sampler2D tDiffuse;","uniform sampler2D tDudv;","varying vec2 vUv;","varying vec4 vUvRefraction;","float blendOverlay( float base, float blend ) {","\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );","}","vec3 blendOverlay( vec3 base, vec3 blend ) {","\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ),blendOverlay( base.b, blend.b ) );","}","void main() {"," float waveStrength = 0.1;"," float waveSpeed = 0.03;","\tvec2 distortedUv = texture2D( tDudv, vec2( vUv.x + time * waveSpeed, vUv.y ) ).rg * waveStrength;","\tdistortedUv = vUv.xy + vec2( distortedUv.x, distortedUv.y + time * waveSpeed );","\tvec2 distortion = ( texture2D( tDudv, distortedUv ).rg * 2.0 - 1.0 ) * waveStrength;"," vec4 uv = vec4( vUvRefraction );"," uv.xy += distortion;","\tvec4 base = texture2DProj( tDiffuse, uv );","\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );","}"].join("\n")};t.WaterRefractionShader=n},99100:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.FlakesTexture=class{constructor(e=512,t=512){const n=document.createElement("canvas");n.width=e,n.height=t;const r=n.getContext("2d");r.fillStyle="rgb(127,127,255)",r.fillRect(0,0,e,t);for(let i=0;i<4e3;i++){const n=Math.random()*e,i=Math.random()*t,s=3*Math.random()+3;let a=2*Math.random()-1,o=2*Math.random()-1,l=1.5;const c=Math.sqrt(a*a+o*o+l*l);a/=c,o/=c,l/=c,r.fillStyle="rgb("+(127*a+127)+","+(127*o+127)+","+255*l+")",r.beginPath(),r.arc(n,i,s,0,2*Math.PI),r.fill()}return n}}},91455:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.getWithKey=(e,t)=>e[t]},66552:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(91455),s=e=>{let t,n,i,s=0;if(e.forEach((e=>(void 0===t&&(t=e.array.constructor),t!==e.array.constructor?(console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null):(void 0===n&&(n=e.itemSize),n!==e.itemSize?(console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null):(void 0===i&&(i=e.normalized),i!==e.normalized?(console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null):void(s+=e.array.length)))))),t&&n){const a=new t(s);let o=0;return e.forEach((e=>{a.set(e.array,o),o+=e.array.length})),new r.BufferAttribute(a,n,i)}};t.computeMorphedAttributes=function(e){if(!0!==e.geometry.isBufferGeometry)return console.error("THREE.BufferGeometryUtils: Geometry is not of type BufferGeometry."),null;const t=new r.Vector3,n=new r.Vector3,i=new r.Vector3,s=new r.Vector3,a=new r.Vector3,o=new r.Vector3,l=new r.Vector3,c=new r.Vector3,h=new r.Vector3;function u(e,r,u,d,p,f,m,g,A){t.fromBufferAttribute(u,f),n.fromBufferAttribute(u,m),i.fromBufferAttribute(u,g);const v=e.morphTargetInfluences;if(r.morphTargets&&d&&v){l.set(0,0,0),c.set(0,0,0),h.set(0,0,0);for(let e=0,r=d.length;e{let t,n=0,s=0;for(let r=0,i=e.length;r{const n=null!==e[0].index,i=new Set(Object.keys(e[0].attributes)),a=new Set(Object.keys(e[0].morphAttributes)),o={},l={},c=e[0].morphTargetsRelative,h=new r.BufferGeometry;let u=0;if(e.forEach(((e,r)=>{let s=0;if(n!==(null!==e.index))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+r+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(let t in e.attributes){if(!i.has(t))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+r+'. All geometries must have compatible attributes; make sure "'+t+'" attribute exists among all geometries, or in none of them.'),null;void 0===o[t]&&(o[t]=[]),o[t].push(e.attributes[t]),s++}if(s!==i.size)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+r+". Make sure all geometries have the same number of attributes."),null;if(c!==e.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+r+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(let t in e.morphAttributes){if(!a.has(t))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+r+". .morphAttributes must be consistent throughout all geometries."),null;void 0===l[t]&&(l[t]=[]),l[t].push(e.morphAttributes[t])}if(h.userData.mergedUserData=h.userData.mergedUserData||[],h.userData.mergedUserData.push(e.userData),t){let t;if(e.index)t=e.index.count;else{if(void 0===e.attributes.position)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+r+". The geometry must have either an index or a position attribute"),null;t=e.attributes.position.count}h.addGroup(u,t,r),u+=t}})),n){let t=0;const n=[];e.forEach((e=>{const r=e.index;for(let i=0;i[])))}const p=Math.log10(1/t),f=Math.pow(10,p);for(let r=0;rn&&c.add(r)}c.normalize(),m.setXYZ(e+r,c.x,c.y,c.z)}}return u.setAttribute("normal",m),u},t.toTrianglesDrawMode=function(e,t){if(t===r.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t===r.TriangleFanDrawMode||t===r.TriangleStripDrawMode){let n=e.getIndex();if(null===n){const t=[],r=e.getAttribute("position");if(void 0===r)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);var i={compressNormals:function(e,t){e.geometry||console.error("Mesh must contain geometry. ");const n=e.geometry.attributes.normal;if(n||console.error("Geometry must contain normal attribute. "),n.isPacked)return;3!=n.itemSize&&console.error("normal.itemSize is not 3, which cannot be encoded. ");const i=n.array,a=n.count;let o;if("DEFAULT"==t){o=new Uint8Array(3*a);for(let e=0;e=-1&&n.max<=1){a=new Uint16Array(i.length);for(let e=0;el&&(a=i,l=o),s=h(i=c(e,t,n,"floor","ceil")),(o=u(e,t,n,s))>l&&(a=i,l=o),s=h(i=c(e,t,n,"ceil","ceil")),(o=u(e,t,n,s))>l&&(a=i),a;function c(e,t,i,s,a){var o=e/(Math.abs(e)+Math.abs(t)+Math.abs(i)),l=t/(Math.abs(e)+Math.abs(t)+Math.abs(i));if(n<0){var c=(1-Math.abs(l))*(o>=0?1:-1),h=(1-Math.abs(o))*(l>=0?1:-1);o=c,l=h;var u=1-Math.abs(o)-Math.abs(l);u>0&&(u+=.001,o+=o>0?u/2:-u/2,l+=l>0?u/2:-u/2)}return 1==r?new Int8Array([Math[s](127.5*o+(o<0?1:0)),Math[a](127.5*l+(l<0?1:0))]):2==r?new Int16Array([Math[s](32767.5*o+(o<0?1:0)),Math[a](32767.5*l+(l<0?1:0))]):void 0}function h(e){var t=e[0],n=e[1];1==r?(t/=t<0?127:128,n/=n<0?127:128):2==r&&(t/=t<0?32767:32768,n/=n<0?32767:32768);var i=1-Math.abs(t)-Math.abs(n);if(i<0){var s=t;t=(1-Math.abs(n))*(t>=0?1:-1),n=(1-Math.abs(s))*(n>=0?1:-1)}var a=Math.sqrt(t*t+n*n+i*i);return[t/a,n/a,i/a]}function u(e,t,n,r){return e*r[0]+t*r[1]+n*r[2]}},quantizedEncode:function(e,t){let n,i;1==t?(n=new Uint8Array(e.length),i=255):2==t?(n=new Uint16Array(e.length),i=65535):console.error("number of bytes error! ");const s=new r.Matrix4,a=new Float32Array(3),o=new Float32Array(3);a[0]=a[1]=a[2]=Number.MAX_VALUE,o[0]=o[1]=o[2]=-Number.MAX_VALUE;for(let r=0;r= 0.0) ? +1.0 : -1.0, (v.y >= 0.0) ? +1.0 : -1.0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn normalize(v);\n\t\t\t\t\t\t}\n\t\t\t\t\t#endif\n\n\t\t\t\t\t#if USE_PACKED_NORMAL == 2\n\t\t\t\t\t\tvec3 decodeNormal(vec3 packedNormal)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvec3 v = (packedNormal * 2.0) - 1.0;\n\t\t\t\t\t\t\treturn normalize(v);\n\t\t\t\t\t\t}\n\t\t\t\t\t#endif\n\t\t\t\t#endif","#ifdef USE_PACKED_POSITION\n\t\t\t\t\t#if USE_PACKED_POSITION == 0\n\t\t\t\t\t\tuniform mat4 quantizeMatPos;\n\t\t\t\t\t#endif\n\t\t\t\t#endif","#ifdef USE_PACKED_UV\n\t\t\t\t\t#if USE_PACKED_UV == 1\n\t\t\t\t\t\tuniform mat3 quantizeMatUV;\n\t\t\t\t\t#endif\n\t\t\t\t#endif","#ifdef USE_PACKED_UV\n\t\t\t\t\t#if USE_PACKED_UV == 0\n\t\t\t\t\t\tvec2 decodeUV(vec2 packedUV)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvec2 uv = (packedUV * 2.0) - 1.0;\n\t\t\t\t\t\t\treturn uv;\n\t\t\t\t\t\t}\n\t\t\t\t\t#endif\n\n\t\t\t\t\t#if USE_PACKED_UV == 1\n\t\t\t\t\t\tvec2 decodeUV(vec2 packedUV)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvec2 uv = ( vec3(packedUV, 1.0) * quantizeMatUV ).xy;\n\t\t\t\t\t\t\treturn uv;\n\t\t\t\t\t\t}\n\t\t\t\t\t#endif\n\t\t\t\t#endif","void main() {",r.ShaderChunk.uv_vertex,"#ifdef USE_UV\n\t\t\t\t\t#ifdef USE_PACKED_UV\n\t\t\t\t\t\tvUv = decodeUV(vUv);\n\t\t\t\t\t#endif\n\t\t\t\t#endif",r.ShaderChunk.uv2_vertex,r.ShaderChunk.color_vertex,r.ShaderChunk.beginnormal_vertex,"#ifdef USE_PACKED_NORMAL\n\t\t\t\t\tobjectNormal = decodeNormal(objectNormal);\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef USE_TANGENT\n\t\t\t\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t\t\t\t#endif\n\t\t\t\t",r.ShaderChunk.morphnormal_vertex,r.ShaderChunk.skinbase_vertex,r.ShaderChunk.skinnormal_vertex,r.ShaderChunk.defaultnormal_vertex,"#ifndef FLAT_SHADED","\tvNormal = normalize( transformedNormal );","#endif",r.ShaderChunk.begin_vertex,"#ifdef USE_PACKED_POSITION\n\t\t\t\t\t#if USE_PACKED_POSITION == 0\n\t\t\t\t\t\ttransformed = ( vec4(transformed, 1.0) * quantizeMatPos ).xyz;\n\t\t\t\t\t#endif\n\t\t\t\t#endif",r.ShaderChunk.morphtarget_vertex,r.ShaderChunk.skinning_vertex,r.ShaderChunk.displacementmap_vertex,r.ShaderChunk.project_vertex,r.ShaderChunk.logdepthbuf_vertex,r.ShaderChunk.clipping_planes_vertex,"vViewPosition = - mvPosition.xyz;",r.ShaderChunk.worldpos_vertex,r.ShaderChunk.envmap_vertex,r.ShaderChunk.shadowmap_vertex,r.ShaderChunk.fog_vertex,"}"].join("\n"),this.fragmentShader=["#define PHONG","uniform vec3 diffuse;","uniform vec3 emissive;","uniform vec3 specular;","uniform float shininess;","uniform float opacity;",r.ShaderChunk.common,r.ShaderChunk.packing,r.ShaderChunk.dithering_pars_fragment,r.ShaderChunk.color_pars_fragment,r.ShaderChunk.uv_pars_fragment,r.ShaderChunk.uv2_pars_fragment,r.ShaderChunk.map_pars_fragment,r.ShaderChunk.alphamap_pars_fragment,r.ShaderChunk.aomap_pars_fragment,r.ShaderChunk.lightmap_pars_fragment,r.ShaderChunk.emissivemap_pars_fragment,r.ShaderChunk.envmap_common_pars_fragment,r.ShaderChunk.envmap_pars_fragment,r.ShaderChunk.cube_uv_reflection_fragment,r.ShaderChunk.fog_pars_fragment,r.ShaderChunk.bsdfs,r.ShaderChunk.lights_pars_begin,r.ShaderChunk.lights_phong_pars_fragment,r.ShaderChunk.shadowmap_pars_fragment,r.ShaderChunk.bumpmap_pars_fragment,r.ShaderChunk.normalmap_pars_fragment,r.ShaderChunk.specularmap_pars_fragment,r.ShaderChunk.logdepthbuf_pars_fragment,r.ShaderChunk.clipping_planes_pars_fragment,"void main() {",r.ShaderChunk.clipping_planes_fragment,"vec4 diffuseColor = vec4( diffuse, opacity );","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );","vec3 totalEmissiveRadiance = emissive;",r.ShaderChunk.logdepthbuf_fragment,r.ShaderChunk.map_fragment,r.ShaderChunk.color_fragment,r.ShaderChunk.alphamap_fragment,r.ShaderChunk.alphatest_fragment,r.ShaderChunk.specularmap_fragment,r.ShaderChunk.normal_fragment_begin,r.ShaderChunk.normal_fragment_maps,r.ShaderChunk.emissivemap_fragment,r.ShaderChunk.lights_phong_fragment,r.ShaderChunk.lights_fragment_begin,r.ShaderChunk.lights_fragment_maps,r.ShaderChunk.lights_fragment_end,r.ShaderChunk.aomap_fragment,"vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;",r.ShaderChunk.envmap_fragment,"gl_FragColor = vec4( outgoingLight, diffuseColor.a );",r.ShaderChunk.tonemapping_fragment,parseInt(r.REVISION.replace(/\D+/g,""))>=154?r.ShaderChunk.colorspace_fragment:r.ShaderChunk.encodings_fragment,r.ShaderChunk.fog_fragment,r.ShaderChunk.premultiplied_alpha_fragment,r.ShaderChunk.dithering_fragment,"}"].join("\n"),this.setValues(e)}}t.GeometryCompressionUtils=i,t.PackedPhongMaterial=s},83912:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=(e=new r.Vector3(0,0,0),t=10,n=1,s=0,a=1,o=2,l=3)=>{const c=t/2,h=[new r.Vector3(e.x-c,e.y,e.z-c),new r.Vector3(e.x-c,e.y,e.z+c),new r.Vector3(e.x+c,e.y,e.z+c),new r.Vector3(e.x+c,e.y,e.z-c)],u=[h[s],h[a],h[o],h[l]];if(0<=--n){const e=[];return Array.prototype.push.apply(e,i(u[0],c,n,s,l,o,a)),Array.prototype.push.apply(e,i(u[1],c,n,s,a,o,l)),Array.prototype.push.apply(e,i(u[2],c,n,s,a,o,l)),Array.prototype.push.apply(e,i(u[3],c,n,o,a,s,l)),e}return u},s=(e=new r.Vector3(0,0,0),t=10,n=1,i=0,a=1,o=2,l=3,c=4,h=5,u=6,d=7)=>{const p=t/2,f=[new r.Vector3(e.x-p,e.y+p,e.z-p),new r.Vector3(e.x-p,e.y+p,e.z+p),new r.Vector3(e.x-p,e.y-p,e.z+p),new r.Vector3(e.x-p,e.y-p,e.z-p),new r.Vector3(e.x+p,e.y-p,e.z-p),new r.Vector3(e.x+p,e.y-p,e.z+p),new r.Vector3(e.x+p,e.y+p,e.z+p),new r.Vector3(e.x+p,e.y+p,e.z-p)],m=[f[i],f[a],f[o],f[l],f[c],f[h],f[u],f[d]];if(--n>=0){const e=[];return Array.prototype.push.apply(e,s(m[0],p,n,i,l,c,d,u,h,o,a)),Array.prototype.push.apply(e,s(m[1],p,n,i,d,u,a,o,h,c,l)),Array.prototype.push.apply(e,s(m[2],p,n,i,d,u,a,o,h,c,l)),Array.prototype.push.apply(e,s(m[3],p,n,o,l,i,a,u,d,c,h)),Array.prototype.push.apply(e,s(m[4],p,n,o,l,i,a,u,d,c,h)),Array.prototype.push.apply(e,s(m[5],p,n,c,l,o,h,u,a,i,d)),Array.prototype.push.apply(e,s(m[6],p,n,c,l,o,h,u,a,i,d)),Array.prototype.push.apply(e,s(m[7],p,n,u,h,o,a,i,l,c,d)),e}return m},a={hilbert3D:s,gosper:(e=1)=>function(e){let t=0,n=0,r=0;const i=[0,0,0],s=e.fractal;for(let a=0,o=s.length;ai;0<=i?r++:r--){t="";for(let r=0,i=n.length;r{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232);var a,o=((a=new s.RawShaderMaterial({uniforms:{roughnessMap:{value:null},normalMap:{value:null},texelSize:{value:new s.Vector2(1,1)}},vertexShader:"\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tattribute vec3 position;\n\t\t\tattribute vec2 uv;\n\n\t\t\tvarying vec2 vUv;\n\n\t\t\tvoid main() {\n\n\t\t\t\tvUv = uv;\n\n\t\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t\t}\n\t\t",fragmentShader:"\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec2 vUv;\n\n\t\t\tuniform sampler2D roughnessMap;\n\t\t\tuniform sampler2D normalMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\n\t\t\tvec4 envMapTexelToLinear( vec4 a ) { return a; }\n\n\t\t\t#include \n\n\t\t\tfloat roughnessToVariance( float roughness ) {\n\n\t\t\t\tfloat variance = 0.0;\n\n\t\t\t\tif ( roughness >= r1 ) {\n\n\t\t\t\t\tvariance = ( r0 - roughness ) * ( v1 - v0 ) / ( r0 - r1 ) + v0;\n\n\t\t\t\t} else if ( roughness >= r4 ) {\n\n\t\t\t\t\tvariance = ( r1 - roughness ) * ( v4 - v1 ) / ( r1 - r4 ) + v1;\n\n\t\t\t\t} else if ( roughness >= r5 ) {\n\n\t\t\t\t\tvariance = ( r4 - roughness ) * ( v5 - v4 ) / ( r4 - r5 ) + v4;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tfloat roughness2 = roughness * roughness;\n\n\t\t\t\t\tvariance = 1.79 * roughness2 * roughness2;\n\n\t\t\t\t}\n\n\t\t\t\treturn variance;\n\n\t\t\t}\n\n\t\t\tfloat varianceToRoughness( float variance ) {\n\n\t\t\t\tfloat roughness = 0.0;\n\n\t\t\t\tif ( variance >= v1 ) {\n\n\t\t\t\t\troughness = ( v0 - variance ) * ( r1 - r0 ) / ( v0 - v1 ) + r0;\n\n\t\t\t\t} else if ( variance >= v4 ) {\n\n\t\t\t\t\troughness = ( v1 - variance ) * ( r4 - r1 ) / ( v1 - v4 ) + r1;\n\n\t\t\t\t} else if ( variance >= v5 ) {\n\n\t\t\t\t\troughness = ( v4 - variance ) * ( r5 - r4 ) / ( v4 - v5 ) + r4;\n\n\t\t\t\t} else {\n\n\t\t\t\t\troughness = pow( 0.559 * variance, 0.25 ); // 0.559 = 1.0 / 1.79\n\n\t\t\t\t}\n\n\t\t\t\treturn roughness;\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = texture2D( roughnessMap, vUv, - 1.0 );\n\n\t\t\t\tif ( texelSize.x == 0.0 ) return;\n\n\t\t\t\tfloat roughness = gl_FragColor.g;\n\n\t\t\t\tfloat variance = roughnessToVariance( roughness );\n\n\t\t\t\tvec3 avgNormal;\n\n\t\t\t\tfor ( float x = - 1.0; x < 2.0; x += 2.0 ) {\n\n\t\t\t\t\tfor ( float y = - 1.0; y < 2.0; y += 2.0 ) {\n\n\t\t\t\t\t\tvec2 uv = vUv + vec2( x, y ) * 0.25 * texelSize;\n\n\t\t\t\t\t\tavgNormal += normalize( texture2D( normalMap, uv, - 1.0 ).xyz - 0.5 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tvariance += 1.0 - 0.25 * length( avgNormal );\n\n\t\t\t\tgl_FragColor.g = varianceToRoughness( variance );\n\n\t\t\t}\n\t\t",blending:s.NoBlending,depthTest:!1,depthWrite:!1})).type="RoughnessMipmapper",a),l=new s.Mesh(new s.PlaneGeometry(2,2),o),c=new s.OrthographicCamera(0,1,0,1,0,1),h=null;t.RoughnessMipmapper=class{constructor(e){i(this,"generateMipmaps",(function(e){if("roughnessMap"in e!=!1){var{roughnessMap:t,normalMap:n}=e;if(null!==t&&null!==n&&t.generateMipmaps&&!e.userData.roughnessUpdated){e.userData.roughnessUpdated=!0;var r=Math.max(t.image.width,n.image.width),i=Math.max(t.image.height,n.image.height);if(s.MathUtils.isPowerOfTwo(r)&&s.MathUtils.isPowerOfTwo(i)){var a=this._renderer.getRenderTarget(),u=this._renderer.autoClear;if(this._renderer.autoClear=!1,null!==h&&h.width===r&&h.height===i||(null!==h&&h.dispose(),(h=new s.WebGLRenderTarget(r,i,{depthBuffer:!1})).scissorTest=!0),r!==t.image.width||i!==t.image.height){var d={wrapS:t.wrapS,wrapT:t.wrapT,magFilter:t.magFilter,minFilter:t.minFilter,depthBuffer:!1},p=new s.WebGLRenderTarget(r,i,d);p.texture.generateMipmaps=!0,this._renderer.setRenderTarget(p),e.roughnessMap=p.texture,e.metalnessMap==t&&(e.metalnessMap=e.roughnessMap),e.aoMap==t&&(e.aoMap=e.roughnessMap)}o.uniforms.roughnessMap.value=t,o.uniforms.normalMap.value=n;var f=new s.Vector2(0,0),m=o.uniforms.texelSize.value;for(let t=0;r>=1&&i>=1;++t,r/=2,i/=2)m.set(1/r,1/i),0==t&&m.set(0,0),h.viewport.set(f.x,f.y,r,i),h.scissor.set(f.x,f.y,r,i),this._renderer.setRenderTarget(h),this._renderer.render(l,c),this._renderer.copyFramebufferToTexture(f,e.roughnessMap,t),o.uniforms.roughnessMap.value=e.roughnessMap;t!==e.roughnessMap&&t.dispose(),this._renderer.setRenderTarget(a),this._renderer.autoClear=u}}}})),i(this,"dispose",(function(){o.dispose(),l.geometry.dispose(),null!=h&&h.dispose()})),this._renderer=e,this._renderer.compile(l,c)}}},63833:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i={createMeshesFromInstancedMesh:function(e){const t=new r.Group,n=e.count,i=e.geometry,s=e.material;for(let a=0;a{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(65149);t.ShadowMapViewer=class{constructor(e){const t=this,n=void 0!==e.name&&""!==e.name;let s;const a=10,o=10,l=256,c=256,h=new r.OrthographicCamera(window.innerWidth/-2,window.innerWidth/2,window.innerHeight/2,window.innerHeight/-2,1,10);h.position.set(0,0,2);const u=new r.Scene,d=i.UnpackDepthRGBAShader,p=r.UniformsUtils.clone(d.uniforms),f=new r.ShaderMaterial({uniforms:p,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader}),m=new r.PlaneGeometry(l,c),g=new r.Mesh(m,f);let A,v;if(u.add(g),n){A=document.createElement("canvas");const t=A.getContext("2d");t.font="Bold 20px Arial";const n=t.measureText(e.name).width;A.width=n,A.height=25,t.font="Bold 20px Arial",t.fillStyle="rgba( 255, 0, 0, 1 )",t.fillText(e.name,0,20);const i=new r.Texture(A);i.magFilter=r.LinearFilter,i.minFilter=r.LinearFilter,i.needsUpdate=!0;const s=new r.MeshBasicMaterial({map:i,side:r.DoubleSide});s.transparent=!0;const a=new r.PlaneGeometry(A.width,A.height);v=new r.Mesh(a,s),u.add(v)}this.enabled=!0,this.size={width:l,height:c,set:function(e,n){this.width=e,this.height=n,g.scale.set(this.width/l,this.height/c,1),t.position.set(t.position.x,t.position.y)}},this.position={x:a,y:o,set:function(e,r){this.x=e,this.y=r;const i=t.size.width,s=t.size.height;g.position.set(-window.innerWidth/2+i/2+this.x,window.innerHeight/2-s/2-this.y,0),n&&v.position.set(g.position.x,g.position.y-t.size.height/2+A.height/2,0)}},this.render=function(t){this.enabled&&(p.tDiffuse.value=e.shadow.map.texture,s=t.autoClear,t.autoClear=!1,t.clearDepth(),t.render(u,h),t.autoClear=s)},this.updateForWindowResize=function(){this.enabled&&(h.left=window.innerWidth/-2,h.right=window.innerWidth/2,h.top=window.innerHeight/2,h.bottom=window.innerHeight/-2,h.updateProjectionMatrix(),this.update())},this.update=function(){this.position.set(this.position.x,this.position.y),this.size.set(this.size.width,this.size.height)},this.update()}}},14024:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);function i(e,t,n={}){const i=new r.Vector3,o=new r.Quaternion,l=new r.Vector3,c=new r.Matrix4,h=new r.Matrix4,u=new r.Matrix4;n.preserveMatrix=void 0===n.preserveMatrix||n.preserveMatrix,n.preservePosition=void 0===n.preservePosition||n.preservePosition,n.preserveHipPosition=void 0!==n.preserveHipPosition&&n.preserveHipPosition,n.useTargetMatrix=void 0!==n.useTargetMatrix&&n.useTargetMatrix,n.hip=void 0!==n.hip?n.hip:"hip",n.names=n.names||{};const d=t.isObject3D?t.skeleton.bones:a(t),p=e.isObject3D?e.skeleton.bones:a(e);let f,m,g,A,v;if(e.isObject3D?e.skeleton.pose():(n.useTargetMatrix=!0,n.preserveMatrix=!1),n.preservePosition){v=[];for(let e=0;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);t.UVsDebug=function(e,t=1024){const n=new r.Vector2,i=new r.Vector2,s=[new r.Vector2,new r.Vector2,new r.Vector2],a=[],o=document.createElement("canvas"),l=t,c=t;o.width=l,o.height=c;const h=o.getContext("2d");h.lineWidth=1,h.strokeStyle="rgb( 63, 63, 63 )",h.textAlign="center",h.fillStyle="rgb( 255, 255, 255 )",h.fillRect(0,0,l,c);const u=e.index,d=e.attributes.uv;if(u)for(let r=0,f=u.count;r.95&&h.fillText(r,n.x%1*l,(1-n.y)*c),h.font="12px Arial",h.fillStyle="rgb( 191, 191, 191 )";for(let s=0,a=t.length;s.95&&h.fillText("abc"[s]+a,i.x%1*l,(1-i.y)*c)}}}},83088:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.WorkerPool=class{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e{const r=this._getIdleWorker();-1!==r?(this._initWorker(r),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}},57382:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.ARButton=class{static createButton(e,t={}){const n=document.createElement("button");function r(){n.style.display="",n.style.cursor="auto",n.style.left="calc(50% - 75px)",n.style.width="150px",n.onmouseenter=null,n.onmouseleave=null,n.onclick=null,n.textContent="AR NOT SUPPORTED"}function i(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return n.id="ARButton",n.style.display="none",i(n),navigator.xr.isSessionSupported("immersive-ar").then((function(i){i?function(){if(void 0===t.domOverlay){const e=document.createElement("div");e.style.display="none",document.body.appendChild(e);const n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("width","38px"),n.setAttribute("height","38px"),n.style.position="absolute",n.style.right="20px",n.style.top="20px",n.addEventListener("click",(function(){null==r||r.end()})),e.appendChild(n);const i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("d","M 12,12 L 28,28 M 28,12 12,28"),i.setAttribute("stroke","#fff"),i.setAttribute("stroke-width","2px"),n.appendChild(i),void 0===t.optionalFeatures&&(t.optionalFeatures=[]),t.optionalFeatures.push("dom-overlay"),t.domOverlay={root:e}}let r=null;async function i(i){i.addEventListener("end",s),e.xr.setReferenceSpaceType("local"),await e.xr.setSession(i),n.textContent="STOP AR",t.domOverlay.root.style.display="",r=i}function s(){r.removeEventListener("end",s),n.textContent="START AR",t.domOverlay.root.style.display="none",r=null}n.style.display="",n.style.cursor="pointer",n.style.left="calc(50% - 50px)",n.style.width="100px",n.textContent="START AR",n.onmouseenter=()=>{n.style.opacity="1.0"},n.onmouseleave=()=>{n.style.opacity="0.5"},n.onclick=()=>{null===r?navigator.xr.requestSession("immersive-ar",t).then(i):r.end()}}():r()})).catch(r),n;{const e=document.createElement("a");return!1===window.isSecureContext?(e.href=document.location.href.replace(/^http:/,"https:"),e.innerHTML="WEBXR NEEDS HTTPS"):(e.href="https://immersiveweb.dev/",e.innerHTML="WEBXR NOT AVAILABLE"),e.style.left="calc(50% - 90px)",e.style.width="180px",e.style.textDecoration="none",i(e),e}}}},73162:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(19453);class o extends s.Object3D{constructor(e,t,n){super(),i(this,"controller"),i(this,"motionController"),i(this,"envMap"),i(this,"mesh"),i(this,"xrInputSource"),this.controller=e,this.motionController=null,this.envMap=null,this.mesh=null,this.xrInputSource=null,e.addEventListener("connected",(r=>{const i=r.data;i.hand&&!this.motionController&&(this.xrInputSource=i,this.motionController=new a.XRHandMeshModel(this,e,void 0,i.handedness,"left"===i.handedness?t:n))})),e.addEventListener("disconnected",(()=>{this.dispose()}))}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&this.motionController.updateMesh()}getPointerPosition(){const e=this.controller.joints["index-finger-tip"];return e?e.position:null}intersectBoxObject(e){const t=this.getPointerPosition();if(t){const n=new s.Sphere(t,.01),r=(new s.Box3).setFromObject(e);return n.intersectsBox(r)}return!1}checkButton(e){this.intersectBoxObject(e)?e.onPress():e.onClear(),e.isPressed()&&e.whilePressed()}dispose(){this.clear(),this.motionController=null}}t.OculusHandModel=o},65483:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function r(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const i=r(n(85232)),s=.01,a=.4,o=.01,l=.003,c=16,h=12,u=new i.Vector3(0,1,0),d=new i.Vector3(0,0,1);class p extends i.Object3D{constructor(e,t){super(),this.hand=e,this.controller=t,this.motionController=null,this.envMap=null,this.mesh=null,this.pointerGeometry=null,this.pointerMesh=null,this.pointerObject=null,this.pinched=!1,this.attached=!1,this.cursorObject=null,this.raycaster=null,this._onConnected=this._onConnected.bind(this),this._onDisconnected=this._onDisconnected.bind(this),this.hand.addEventListener("connected",this._onConnected),this.hand.addEventListener("disconnected",this._onDisconnected)}_onConnected(e){const t=e.data;t.hand&&(this.visible=!0,this.xrInputSource=t,this.createPointer())}_onDisconnected(){var e,t;this.visible=!1,this.xrInputSource=null,null==(e=this.pointerGeometry)||e.dispose(),null==(t=this.pointerMesh)||t.material.dispose(),this.clear()}_drawVerticesRing(e,t,n){const r=t.clone();for(var i=0;i1)this._updatePointerVertices(o),this.pointerMesh.position.set(0,0,-.01),this.pointerMesh.material.opacity=a;else if(i>0){const e=.007*i+l;this._updatePointerVertices(e),c<1?(this.pointerMesh.position.set(0,0,-1*e-.02*(1-c)),this.pointerMesh.material.opacity=a+.6*(1-c)):(this.pointerMesh.position.set(0,0,-1*e),this.pointerMesh.material.opacity=a)}else this._updatePointerVertices(l),this.pointerMesh.position.set(0,0,-.023),this.pointerMesh.material.opacity=1;this.cursorObject.material.opacity=this.pointerMesh.material.opacity}updateMatrixWorld(e){super.updateMatrixWorld(e),this.pointerGeometry&&(this._updatePointer(),this._updateRaycaster())}isPinched(){return this.pinched}setAttached(e){this.attached=e}isAttached(){return this.attached}intersectObject(e,t=!0){if(this.raycaster)return this.raycaster.intersectObject(e,t)}intersectObjects(e,t=!0){if(this.raycaster)return this.raycaster.intersectObjects(e,t)}checkIntersections(e,t=!1){if(this.raycaster&&!this.attached){const n=this.raycaster.intersectObjects(e,t),r=new i.Vector3(0,0,-1);if(n.length>0){const e=n[0].distance;this.cursorObject.position.copy(r.multiplyScalar(e))}else this.cursorObject.position.copy(r.multiplyScalar(1.5))}}setCursor(e){const t=new i.Vector3(0,0,-1);this.raycaster&&!this.attached&&this.cursorObject.position.copy(t.multiplyScalar(e))}dispose(){this._onDisconnected(),this.hand.removeEventListener("connected",this._onConnected),this.hand.removeEventListener("disconnected",this._onDisconnected)}}t.OculusHandPointerModel=p},79752:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function r(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const i=r(n(85232));t.createText=function(e,t){const n=document.createElement("canvas"),r=n.getContext("2d");let s=null;const a=100;r.font="normal 100px Arial",s=r.measureText(e);const o=s.width;n.width=o,n.height=a,r.font="normal 100px Arial",r.textAlign="center",r.textBaseline="middle",r.fillStyle="#ffffff",r.fillText(e,o/2,50);const l=new i.Texture(n);l.needsUpdate=!0;const c=new i.MeshBasicMaterial({color:16777215,side:i.DoubleSide,map:l,transparent:!0}),h=new i.PlaneGeometry(t*o/a,t);return new i.Mesh(h,c)}},93177:(e,t)=>{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=class{static createButton(e,t={}){const n=document.createElement("button");function i(){n.style.display="",n.style.cursor="auto",n.style.left="calc(50% - 75px)",n.style.width="150px",n.onmouseenter=null,n.onmouseleave=null,n.onclick=null,n.textContent="VR NOT SUPPORTED"}function s(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return s(n),n.id="VRButton",n.style.display="none",navigator.xr.isSessionSupported("immersive-vr").then((s=>{s?function(){let r=null;async function i(t){t.addEventListener("end",s),await e.xr.setSession(t),n.textContent="EXIT VR",r=t}function s(){r.removeEventListener("end",s),n.textContent="ENTER VR",r=null}n.style.display="",n.style.cursor="pointer",n.style.left="calc(50% - 50px)",n.style.width="100px",n.textContent="ENTER VR",n.onmouseenter=()=>{n.style.opacity="1.0"},n.onmouseleave=()=>{n.style.opacity="0.5"},n.onclick=()=>{var e;if(null===r){const n=[t.optionalFeatures,"local-floor","bounded-floor","hand-tracking"].flat().filter(Boolean);null==(e=navigator.xr)||e.requestSession("immersive-vr",{...t,optionalFeatures:n}).then(i)}else r.end()}}():i(),s&&r.xrSessionIsGranted&&n.click()})),n;{const e=document.createElement("a");return!1===window.isSecureContext?(e.href=document.location.href.replace(/^http:/,"https:"),e.innerHTML="WEBXR NEEDS HTTPS"):(e.href="https://immersiveweb.dev/",e.innerHTML="WEBXR NOT AVAILABLE"),e.style.left="calc(50% - 90px)",e.style.width="180px",e.style.textDecoration="none",s(e),e}}static registerSessionGrantedListener(){"undefined"!=typeof navigator&&"xr"in navigator&&navigator.xr.addEventListener("sessiongranted",(()=>{r.xrSessionIsGranted=!0}))}};let i=r;var s;((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(i,"symbol"!=typeof(s="xrSessionIsGranted")?s+"":s,!1),i.registerSessionGrantedListener(),t.VRButton=i},28265:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(85232),a=n(20614),o=n(48490),l=(e,t)=>{t.traverse((t=>{t instanceof s.Mesh&&"envMap"in t.material&&(t.material.envMap=e,t.material.needsUpdate=!0)}))};class c extends s.Object3D{constructor(){super(),i(this,"envMap"),i(this,"motionController"),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,l(this.envMap,this)),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:n,maxNode:r,value:i,valueNodeProperty:s}=e;t&&(s===o.MotionControllerConstants.VisualResponseProperty.VISIBILITY&&"boolean"==typeof i?t.visible=i:s===o.MotionControllerConstants.VisualResponseProperty.TRANSFORM&&n&&r&&"number"==typeof i&&(t.quaternion.slerpQuaternions(n.quaternion,r.quaternion,i),t.position.lerpVectors(n.position,r.position,i)))}))})))}}function h(e,t){!function(e,t){Object.values(e.components).forEach((e=>{const{type:n,touchPointNodeName:r,visualResponses:i}=e;if(n===o.MotionControllerConstants.ComponentType.TOUCHPAD&&r)if(e.touchPointNode=t.getObjectByName(r),e.touchPointNode){const t=new s.SphereGeometry(.001),n=new s.MeshBasicMaterial({color:255}),r=new s.Mesh(t,n);e.touchPointNode.add(r)}else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);Object.values(i).forEach((e=>{const{valueNodeName:n,minNodeName:r,maxNodeName:i,valueNodeProperty:s}=e;if(s===o.MotionControllerConstants.VisualResponseProperty.TRANSFORM&&r&&i){if(e.minNode=t.getObjectByName(r),e.maxNode=t.getObjectByName(i),!e.minNode)return void console.warn(`Could not find ${r} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${i} in the model`)}e.valueNode=t.getObjectByName(n),e.valueNode||console.warn(`Could not find ${n} in the model`)}))}))}(e.motionController,t),e.envMap&&l(e.envMap,t),e.add(t)}t.XRControllerModelFactory=class{constructor(e=null){i(this,"gltfLoader"),i(this,"path"),i(this,"_assetCache"),this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new a.GLTFLoader)}createControllerModel(e){const t=new c;let n=null;const r=e=>{const r=e.data;"tracked-pointer"===r.targetRayMode&&r.gamepad&&o.fetchProfile(r,this.path,"generic-trigger").then((({profile:e,assetPath:i})=>{if(!i)throw new Error("no asset path");t.motionController=new o.MotionController(r,e,i);const s=t.motionController.assetUrl,a=this._assetCache[s];if(a)n=a.scene.clone(),h(t,n);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{t.motionController?(this._assetCache[s]=e,n=e.scene.clone(),h(t,n)):console.warn("motionController gone while gltf load, bailing...")}),(()=>{}),(()=>{throw new Error(`Asset ${s} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))};e.addEventListener("connected",r);const i=()=>{e.removeEventListener("connected",r),e.removeEventListener("disconnected",i),t.motionController=null,n&&t.remove(n),n=null};return e.addEventListener("disconnected",i),t}}},2327:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232);class i{constructor(e,t,n,i,s){this.xrLight=e,this.renderer=t,this.lightProbe=n,this.xrWebGLBinding=null,this.estimationStartCallback=s,this.frameCallback=this.onXRFrame.bind(this);const a=t.xr.getSession();if(i&&"XRWebGLBinding"in window){const n=new r.WebGLCubeRenderTarget(16);e.environment=n.texture;const i=t.getContext();switch(a.preferredReflectionFormat){case"srgba8":i.getExtension("EXT_sRGB");break;case"rgba16f":i.getExtension("OES_texture_half_float")}this.xrWebGLBinding=new XRWebGLBinding(a,i),this.lightProbe.addEventListener("reflectionchange",(()=>{this.updateReflection()}))}a.requestAnimationFrame(this.frameCallback)}updateReflection(){const e=this.renderer.properties.get(this.xrLight.environment);if(e){const t=this.xrWebGLBinding.getReflectionCubeMap(this.lightProbe);t&&(e.__webglTexture=t,this.xrLight.environment.needsPMREMUpdate=!0)}}onXRFrame(e,t){if(!this.xrLight)return;t.session.requestAnimationFrame(this.frameCallback);const n=t.getLightEstimate(this.lightProbe);if(n){this.xrLight.lightProbe.sh.fromArray(n.sphericalHarmonicsCoefficients),this.xrLight.lightProbe.intensity=1;const e=Math.max(1,Math.max(n.primaryLightIntensity.x,Math.max(n.primaryLightIntensity.y,n.primaryLightIntensity.z)));this.xrLight.directionalLight.color.setRGB(n.primaryLightIntensity.x/e,n.primaryLightIntensity.y/e,n.primaryLightIntensity.z/e),this.xrLight.directionalLight.intensity=e,this.xrLight.directionalLight.position.copy(n.primaryLightDirection),this.estimationStartCallback&&(this.estimationStartCallback(),this.estimationStartCallback=null)}}dispose(){this.xrLight=null,this.renderer=null,this.lightProbe=null,this.xrWebGLBinding=null}}class s extends r.Group{constructor(e,t=!0){super(),this.lightProbe=new r.LightProbe,this.lightProbe.intensity=0,this.add(this.lightProbe),this.directionalLight=new r.DirectionalLight,this.directionalLight.intensity=0,this.add(this.directionalLight),this.environment=null;let n=null,s=!1;e.xr.addEventListener("sessionstart",(()=>{const r=e.xr.getSession();"requestLightProbe"in r&&r.requestLightProbe({reflectionFormat:r.preferredReflectionFormat}).then((r=>{n=new i(this,e,r,t,(()=>{s=!0,this.dispatchEvent({type:"estimationstart"})}))}))})),e.xr.addEventListener("sessionend",(()=>{n&&(n.dispose(),n=null),s&&this.dispatchEvent({type:"estimationend"})})),this.dispose=()=>{n&&(n.dispose(),n=null),this.remove(this.lightProbe),this.lightProbe=null,this.remove(this.directionalLight),this.directionalLight=null,this.environment=null}}}t.XREstimatedLight=s},19453:(e,t,n)=>{"use strict";var r=Object.defineProperty,i=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=n(20614);t.XRHandMeshModel=class{constructor(e,t,n="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/",r,a){i(this,"controller"),i(this,"handModel"),i(this,"bones"),this.controller=t,this.handModel=e,this.bones=[];const o=new s.GLTFLoader;a||o.setPath(n),o.load(null!=a?a:`${r}.glb`,(e=>{const t=e.scene.children[0];this.handModel.add(t);const n=t.getObjectByProperty("type","SkinnedMesh");n.frustumCulled=!1,n.castShadow=!0,n.receiveShadow=!0;["wrist","thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip","index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip","middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip","ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip","pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"].forEach((e=>{const n=t.getObjectByName(e);void 0!==n?n.jointName=e:console.warn(`Couldn't find ${e} in ${r} hand mesh`),this.bones.push(n)}))}))}updateMesh(){const e=this.controller.joints;for(let t=0;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=n(12888),s=n(19453);class a extends r.Object3D{constructor(e){super(),this.controller=e,this.motionController=null,this.envMap=null,this.mesh=null}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&this.motionController.updateMesh()}}t.XRHandModelFactory=class{constructor(){this.path=null}setPath(e){return this.path=e,this}createHandModel(e,t){const n=new a(e);return e.addEventListener("connected",(r=>{const a=r.data;a.hand&&!n.motionController&&(n.xrInputSource=a,void 0===t||"spheres"===t?n.motionController=new i.XRHandPrimitiveModel(n,e,this.path,a.handedness,{primitive:"sphere"}):"boxes"===t?n.motionController=new i.XRHandPrimitiveModel(n,e,this.path,a.handedness,{primitive:"box"}):"mesh"===t&&(n.motionController=new s.XRHandMeshModel(n,e,this.path,a.handedness)))})),e.addEventListener("disconnected",(()=>{})),n}}},12888:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(85232),i=new r.Matrix4,s=new r.Vector3;t.XRHandPrimitiveModel=class{constructor(e,t,n,i,s){let a;this.controller=t,this.handModel=e,this.envMap=null,s&&s.primitive&&"sphere"!==s.primitive?"box"===s.primitive&&(a=new r.BoxGeometry(1,1,1)):a=new r.SphereGeometry(1,10,10);const o=new r.MeshStandardMaterial;this.handMesh=new r.InstancedMesh(a,o,30),this.handMesh.instanceMatrix.setUsage(r.DynamicDrawUsage),this.handMesh.castShadow=!0,this.handMesh.receiveShadow=!0,this.handModel.add(this.handMesh),this.joints=["wrist","thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip","index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip","middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip","ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip","pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"]}updateMesh(){const e=this.controller.joints;let t=0;for(let n=0;n{"use strict";const n="152",r=1,i=2,s=3,a=0,o=1,l=100,c=0,h=1,u=2,d=0,p=1,f=2,m=3,g=4,A=5,v=300,y=301,x=302,b=303,E=304,_=306,S=1e3,w=1001,M=1002,C=1003,T=1004,I=1005,B=1006,R=1007,P=1008,D=1009,L=1012,F=1014,U=1015,O=1016,N=1020,k=1023,G=1026,z=1027,Q=33776,V=33777,H=33778,j=33779,W=35840,X=35841,Y=35842,q=35843,K=37492,J=37496,Z=37808,$=37809,ee=37810,te=37811,ne=37812,re=37813,ie=37814,se=37815,ae=37816,oe=37817,le=37818,ce=37819,he=37820,ue=37821,de=36492,pe=36284,fe=36285,me=36286,ge=2300,Ae=2301,ve=2302,ye=2400,xe=2401,be=2402,Ee=2500,_e=2501,Se=3e3,we=3001,Me="",Ce="srgb",Te="srgb-linear",Ie="display-p3",Be=7680,Re=35044,Pe="300 es",De=1035;class Le{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;const n=this._listeners[e];if(void 0!==n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;const t=this._listeners[e.type];if(void 0!==t){e.target=this;const n=t.slice(0);for(let t=0,r=n.length;t>8&255]+Fe[e>>16&255]+Fe[e>>24&255]+"-"+Fe[255&t]+Fe[t>>8&255]+"-"+Fe[t>>16&15|64]+Fe[t>>24&255]+"-"+Fe[63&n|128]+Fe[n>>8&255]+"-"+Fe[n>>16&255]+Fe[n>>24&255]+Fe[255&r]+Fe[r>>8&255]+Fe[r>>16&255]+Fe[r>>24&255]).toLowerCase()}function Ge(e,t,n){return Math.max(t,Math.min(n,e))}function ze(e,t){return(e%t+t)%t}function Qe(e,t,n){return(1-n)*e+n*t}function Ve(e){return 0==(e&e-1)&&0!==e}function He(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function je(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function We(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}function Xe(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}}const Ye={DEG2RAD:Oe,RAD2DEG:Ne,generateUUID:ke,clamp:Ge,euclideanModulo:ze,mapLinear:function(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)},inverseLerp:function(e,t,n){return e!==t?(n-e)/(t-e):0},lerp:Qe,damp:function(e,t,n,r){return Qe(e,t,1-Math.exp(-n*r))},pingpong:function(e,t=1){return t-Math.abs(ze(e,2*t)-t)},smoothstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)},smootherstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){void 0!==e&&(Ue=e);let t=Ue+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},degToRad:function(e){return e*Oe},radToDeg:function(e){return e*Ne},isPowerOfTwo:Ve,ceilPowerOfTwo:He,floorPowerOfTwo:je,setQuaternionFromProperEuler:function(e,t,n,r,i){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((t+r)/2),h=a((t+r)/2),u=s((t-r)/2),d=a((t-r)/2),p=s((r-t)/2),f=a((r-t)/2);switch(i){case"XYX":e.set(o*h,l*u,l*d,o*c);break;case"YZY":e.set(l*d,o*h,l*u,o*c);break;case"ZXZ":e.set(l*u,l*d,o*h,o*c);break;case"XZX":e.set(o*h,l*f,l*p,o*c);break;case"YXY":e.set(l*p,o*h,l*f,o*c);break;case"ZYZ":e.set(l*f,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}},normalize:Xe,denormalize:We};class qe{constructor(e=0,t=0){qe.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6],this.y=r[1]*t+r[4]*n+r[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}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(Ge(n,-1,1))}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){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const n=Math.cos(t),r=Math.sin(t),i=this.x-e.x,s=this.y-e.y;return this.x=i*n-s*r+e.x,this.y=i*r+s*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ke{constructor(){Ke.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(e,t,n,r,i,s,a,o,l){const c=this.elements;return c[0]=e,c[1]=r,c[2]=a,c[3]=t,c[4]=i,c[5]=o,c[6]=n,c[7]=s,c[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,r=t.elements,i=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],f=r[0],m=r[3],g=r[6],A=r[1],v=r[4],y=r[7],x=r[2],b=r[5],E=r[8];return i[0]=s*f+a*A+o*x,i[3]=s*m+a*v+o*b,i[6]=s*g+a*y+o*E,i[1]=l*f+c*A+h*x,i[4]=l*m+c*v+h*b,i[7]=l*g+c*y+h*E,i[2]=u*f+d*A+p*x,i[5]=u*m+d*v+p*b,i[8]=u*g+d*y+p*E,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],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8];return t*s*c-t*a*l-n*i*c+n*a*o+r*i*l-r*s*o}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=c*s-a*l,u=a*o-c*i,d=l*i-s*o,p=t*h+n*u+r*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return e[0]=h*f,e[1]=(r*l-c*n)*f,e[2]=(a*n-r*s)*f,e[3]=u*f,e[4]=(c*t-r*o)*f,e[5]=(r*i-a*t)*f,e[6]=d*f,e[7]=(n*o-l*t)*f,e[8]=(s*t-n*i)*f,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,r,i,s,a){const o=Math.cos(i),l=Math.sin(i);return this.set(n*o,n*l,-n*(o*s+l*a)+s+e,-r*l,r*o,-r*(-l*s+o*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(Je.makeScale(e,t)),this}rotate(e){return this.premultiply(Je.makeRotation(-e)),this}translate(e,t){return this.premultiply(Je.makeTranslation(e,t)),this}makeTranslation(e,t){return this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,n=e.elements;for(let r=0;r<9;r++)if(t[r]!==n[r])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)}}const Je=new Ke;function Ze(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}const $e={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function et(e,t){return new $e[e](t)}function tt(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}const nt={};function rt(e){e in nt||(nt[e]=!0,console.warn(e))}function it(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function st(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}const at=(new Ke).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),ot=(new Ke).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const lt={[Te]:e=>e,[Ce]:e=>e.convertSRGBToLinear(),[Ie]:function(e){return e.convertSRGBToLinear().applyMatrix3(ot)}},ct={[Te]:e=>e,[Ce]:e=>e.convertLinearToSRGB(),[Ie]:function(e){return e.applyMatrix3(at).convertLinearToSRGB()}},ht={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(e){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!e},get workingColorSpace(){return Te},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,n){if(!1===this.enabled||t===n||!t||!n)return e;const r=lt[t],i=ct[n];if(void 0===r||void 0===i)throw new Error(`Unsupported color space conversion, "${t}" to "${n}".`);return i(r(e))},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}};let ut;class dt{static getDataURL(e){if(/^data:/i.test(e.src))return e.src;if("undefined"==typeof HTMLCanvasElement)return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===ut&&(ut=tt("canvas")),ut.width=e.width,ut.height=e.height;const n=ut.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=ut}return t.width>2048||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("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const t=tt("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const r=n.getImageData(0,0,e.width,e.height),i=r.data;for(let e=0;e0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==v)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case S:e.x=e.x-Math.floor(e.x);break;case w:e.x=e.x<0?0:1;break;case M:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case S:e.y=e.y-Math.floor(e.y);break;case w:e.y=e.y<0?0:1;break;case M:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return rt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Ce?we:Se}set encoding(e){rt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===we?Ce:Me}}gt.DEFAULT_IMAGE=null,gt.DEFAULT_MAPPING=v,gt.DEFAULT_ANISOTROPY=1;class At{constructor(e=0,t=0,n=0,r=1){At.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=r}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,r){return this.x=e,this.y=t,this.z=n,this.w=r,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=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,i=this.w,s=e.elements;return this.x=s[0]*t+s[4]*n+s[8]*r+s[12]*i,this.y=s[1]*t+s[5]*n+s[9]*r+s[13]*i,this.z=s[2]*t+s[6]*n+s[10]*r+s[14]*i,this.w=s[3]*t+s[7]*n+s[11]*r+s[15]*i,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,r,i;const s=.01,a=.1,o=e.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-u)o&&e>A?eA?o=0?1:-1,r=1-t*t;if(r>Number.EPSILON){const i=Math.sqrt(r),s=Math.atan2(i,t*n);e=Math.sin(e*s)/i,a=Math.sin(a*s)/i}const i=a*n;if(o=o*e+u*i,l=l*e+d*i,c=c*e+p*i,h=h*e+f*i,e===1-a){const e=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=e,l*=e,c*=e,h*=e}}e[t]=o,e[t+1]=l,e[t+2]=c,e[t+3]=h}static multiplyQuaternionsFlat(e,t,n,r,i,s){const a=n[r],o=n[r+1],l=n[r+2],c=n[r+3],h=i[s],u=i[s+1],d=i[s+2],p=i[s+3];return e[t]=a*p+c*h+o*d-l*u,e[t+1]=o*p+c*u+l*h-a*d,e[t+2]=l*p+c*d+a*u-o*h,e[t+3]=c*p-a*h-o*u-l*d,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,r){return this._x=e,this._y=t,this._z=n,this._w=r,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){const n=e._x,r=e._y,i=e._z,s=e._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(r/2),h=a(i/2),u=o(n/2),d=o(r/2),p=o(i/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,r=Math.sin(n);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],r=t[4],i=t[8],s=t[1],a=t[5],o=t[9],l=t[2],c=t[6],h=t[10],u=n+a+h;if(u>0){const e=.5/Math.sqrt(u+1);this._w=.25/e,this._x=(c-o)*e,this._y=(i-l)*e,this._z=(s-r)*e}else if(n>a&&n>h){const e=2*Math.sqrt(1+n-a-h);this._w=(c-o)/e,this._x=.25*e,this._y=(r+s)/e,this._z=(i+l)/e}else if(a>h){const e=2*Math.sqrt(1+a-n-h);this._w=(i-l)/e,this._x=(r+s)/e,this._y=.25*e,this._z=(o+c)/e}else{const e=2*Math.sqrt(1+h-n-a);this._w=(s-r)/e,this._x=(i+l)/e,this._y=(o+c)/e,this._z=.25*e}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(Ge(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(0===n)return this;const r=Math.min(1,t/n);return this.slerp(e,r),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 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,r=e._y,i=e._z,s=e._w,a=t._x,o=t._y,l=t._z,c=t._w;return this._x=n*c+s*a+r*l-i*o,this._y=r*c+s*o+i*a-n*l,this._z=i*c+s*l+n*o-r*a,this._w=s*c-n*a-r*o-i*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const n=this._x,r=this._y,i=this._z,s=this._w;let a=s*e._w+n*e._x+r*e._y+i*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=s,this._x=n,this._y=r,this._z=i,this;const o=1-a*a;if(o<=Number.EPSILON){const e=1-t;return this._w=e*s+t*this._w,this._x=e*n+t*this._x,this._y=e*r+t*this._y,this._z=e*i+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-t)*c)/l,u=Math.sin(t*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=r*h+this._y*u,this._z=i*h+this._z*u,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),r=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(t*Math.cos(r),n*Math.sin(i),n*Math.cos(i),t*Math.sin(r))}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}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Et{constructor(e=0,t=0,n=0){Et.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return void 0===n&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(St.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(St.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6]*r,this.y=i[1]*t+i[4]*n+i[7]*r,this.z=i[2]*t+i[5]*n+i[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,i=e.elements,s=1/(i[3]*t+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*t+i[4]*n+i[8]*r+i[12])*s,this.y=(i[1]*t+i[5]*n+i[9]*r+i[13])*s,this.z=(i[2]*t+i[6]*n+i[10]*r+i[14])*s,this}applyQuaternion(e){const t=this.x,n=this.y,r=this.z,i=e.x,s=e.y,a=e.z,o=e.w,l=o*t+s*r-a*n,c=o*n+a*t-i*r,h=o*r+i*n-s*t,u=-i*t-s*n-a*r;return this.x=l*o+u*-i+c*-a-h*-s,this.y=c*o+u*-s+h*-i-l*-a,this.z=h*o+u*-a+l*-s-c*-i,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,r=this.z,i=e.elements;return this.x=i[0]*t+i[4]*n+i[8]*r,this.y=i[1]*t+i[5]*n+i[9]*r,this.z=i[2]*t+i[6]*n+i[10]*r,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){return this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,r=e.y,i=e.z,s=t.x,a=t.y,o=t.z;return this.x=r*o-i*a,this.y=i*s-n*o,this.z=n*a-r*s,this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return _t.copy(this).projectOnVector(e),this.sub(_t)}reflect(e){return this.sub(_t.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(Ge(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,r=this.z-e.z;return t*t+n*n+r*r}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 r=Math.sin(t)*e;return this.x=r*Math.sin(n),this.y=Math.cos(t)*e,this.z=r*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(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=2*(Math.random()-.5),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}}const _t=new Et,St=new bt;class wt{constructor(e=new Et(1/0,1/0,1/0),t=new Et(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){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,Ct),Ct.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(Ft),Ut.subVectors(this.max,Ft),It.subVectors(e.a,Ft),Bt.subVectors(e.b,Ft),Rt.subVectors(e.c,Ft),Pt.subVectors(Bt,It),Dt.subVectors(Rt,Bt),Lt.subVectors(It,Rt);let t=[0,-Pt.z,Pt.y,0,-Dt.z,Dt.y,0,-Lt.z,Lt.y,Pt.z,0,-Pt.x,Dt.z,0,-Dt.x,Lt.z,0,-Lt.x,-Pt.y,Pt.x,0,-Dt.y,Dt.x,0,-Lt.y,Lt.x,0];return!!kt(t,It,Bt,Rt,Ut)&&(t=[1,0,0,0,1,0,0,0,1],!!kt(t,It,Bt,Rt,Ut)&&(Ot.crossVectors(Pt,Dt),t=[Ot.x,Ot.y,Ot.z],kt(t,It,Bt,Rt,Ut)))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Ct).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(Ct).length()),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()||(Mt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Mt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Mt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Mt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Mt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Mt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Mt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Mt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Mt)),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)}}const Mt=[new Et,new Et,new Et,new Et,new Et,new Et,new Et,new Et],Ct=new Et,Tt=new wt,It=new Et,Bt=new Et,Rt=new Et,Pt=new Et,Dt=new Et,Lt=new Et,Ft=new Et,Ut=new Et,Ot=new Et,Nt=new Et;function kt(e,t,n,r,i){for(let s=0,a=e.length-3;s<=a;s+=3){Nt.fromArray(e,s);const a=i.x*Math.abs(Nt.x)+i.y*Math.abs(Nt.y)+i.z*Math.abs(Nt.z),o=t.dot(Nt),l=n.dot(Nt),c=r.dot(Nt);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Gt=new wt,zt=new Et,Qt=new Et;class Vt{constructor(e=new Et,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;void 0!==t?n.copy(t):Gt.setFromPoints(e).getCenter(n);let r=0;for(let i=0,s=e.length;ithis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;zt.subVectors(e,this.center);const t=zt.lengthSq();if(t>this.radius*this.radius){const e=Math.sqrt(t),n=.5*(e-this.radius);this.center.addScaledVector(zt,n/e),this.radius+=n}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(Qt.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(zt.copy(e.center).add(Qt)),this.expandByPoint(zt.copy(e.center).sub(Qt))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Ht=new Et,jt=new Et,Wt=new Et,Xt=new Et,Yt=new Et,qt=new Et,Kt=new Et;class Jt{constructor(e=new Et,t=new Et(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.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Ht)),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.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Ht.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Ht.copy(this.origin).addScaledVector(this.direction,t),Ht.distanceToSquared(e))}distanceSqToSegment(e,t,n,r){jt.copy(e).add(t).multiplyScalar(.5),Wt.copy(t).sub(e).normalize(),Xt.copy(this.origin).sub(jt);const i=.5*e.distanceTo(t),s=-this.direction.dot(Wt),a=Xt.dot(this.direction),o=-Xt.dot(Wt),l=Xt.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=i*c,h>=0)if(u>=-p)if(u<=p){const e=1/c;h*=e,u*=e,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*i+a)),u=h>0?-i:Math.min(Math.max(-i,-o),i),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-i,-o),i),d=u*(u+2*o)+l):(h=Math.max(0,-(s*i+a)),u=h>0?i:Math.min(Math.max(-i,-o),i),d=-h*h+u*(u+2*o)+l);else u=s>0?-i:i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),r&&r.copy(jt).addScaledVector(Wt,u),d}intersectSphere(e,t){Ht.subVectors(e.center,this.origin);const n=Ht.dot(this.direction),r=Ht.dot(Ht)-n*n,i=e.radius*e.radius;if(r>i)return null;const s=Math.sqrt(i-r),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,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(0===t)return 0===e.distanceToPoint(this.origin)?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 null===n?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);if(0===t)return!0;return e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,r,i,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(e.min.x-u.x)*l,r=(e.max.x-u.x)*l):(n=(e.max.x-u.x)*l,r=(e.min.x-u.x)*l),c>=0?(i=(e.min.y-u.y)*c,s=(e.max.y-u.y)*c):(i=(e.max.y-u.y)*c,s=(e.min.y-u.y)*c),n>s||i>r?null:((i>n||isNaN(n))&&(n=i),(s=0?(a=(e.min.z-u.z)*h,o=(e.max.z-u.z)*h):(a=(e.max.z-u.z)*h,o=(e.min.z-u.z)*h),n>o||a>r?null:((a>n||n!=n)&&(n=a),(o=0?n:r,t)))}intersectsBox(e){return null!==this.intersectBox(e,Ht)}intersectTriangle(e,t,n,r,i){Yt.subVectors(t,e),qt.subVectors(n,e),Kt.crossVectors(Yt,qt);let s,a=this.direction.dot(Kt);if(a>0){if(r)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Xt.subVectors(this.origin,e);const o=s*this.direction.dot(qt.crossVectors(Xt,qt));if(o<0)return null;const l=s*this.direction.dot(Yt.cross(Xt));if(l<0)return null;if(o+l>a)return null;const c=-s*Xt.dot(Kt);return c<0?null:this.at(c/a,i)}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 Zt{constructor(){Zt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(e,t,n,r,i,s,a,o,l,c,h,u,d,p,f,m){const g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=r,g[1]=i,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Zt).fromArray(this.elements)}copy(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,r=1/$t.setFromMatrixColumn(e,0).length(),i=1/$t.setFromMatrixColumn(e,1).length(),s=1/$t.setFromMatrixColumn(e,2).length();return t[0]=n[0]*r,t[1]=n[1]*r,t[2]=n[2]*r,t[3]=0,t[4]=n[4]*i,t[5]=n[5]*i,t[6]=n[6]*i,t[7]=0,t[8]=n[8]*s,t[9]=n[9]*s,t[10]=n[10]*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,n=e.x,r=e.y,i=e.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(r),l=Math.sin(r),c=Math.cos(i),h=Math.sin(i);if("XYZ"===e.order){const e=s*c,n=s*h,r=a*c,i=a*h;t[0]=o*c,t[4]=-o*h,t[8]=l,t[1]=n+r*l,t[5]=e-i*l,t[9]=-a*o,t[2]=i-e*l,t[6]=r+n*l,t[10]=s*o}else if("YXZ"===e.order){const e=o*c,n=o*h,r=l*c,i=l*h;t[0]=e+i*a,t[4]=r*a-n,t[8]=s*l,t[1]=s*h,t[5]=s*c,t[9]=-a,t[2]=n*a-r,t[6]=i+e*a,t[10]=s*o}else if("ZXY"===e.order){const e=o*c,n=o*h,r=l*c,i=l*h;t[0]=e-i*a,t[4]=-s*h,t[8]=r+n*a,t[1]=n+r*a,t[5]=s*c,t[9]=i-e*a,t[2]=-s*l,t[6]=a,t[10]=s*o}else if("ZYX"===e.order){const e=s*c,n=s*h,r=a*c,i=a*h;t[0]=o*c,t[4]=r*l-n,t[8]=e*l+i,t[1]=o*h,t[5]=i*l+e,t[9]=n*l-r,t[2]=-l,t[6]=a*o,t[10]=s*o}else if("YZX"===e.order){const e=s*o,n=s*l,r=a*o,i=a*l;t[0]=o*c,t[4]=i-e*h,t[8]=r*h+n,t[1]=h,t[5]=s*c,t[9]=-a*c,t[2]=-l*c,t[6]=n*h+r,t[10]=e-i*h}else if("XZY"===e.order){const e=s*o,n=s*l,r=a*o,i=a*l;t[0]=o*c,t[4]=-h,t[8]=l*c,t[1]=e*h+i,t[5]=s*c,t[9]=n*h-r,t[2]=r*h-n,t[6]=a*c,t[10]=i*h+e}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(tn,e,nn)}lookAt(e,t,n){const r=this.elements;return an.subVectors(e,t),0===an.lengthSq()&&(an.z=1),an.normalize(),rn.crossVectors(n,an),0===rn.lengthSq()&&(1===Math.abs(n.z)?an.x+=1e-4:an.z+=1e-4,an.normalize(),rn.crossVectors(n,an)),rn.normalize(),sn.crossVectors(an,rn),r[0]=rn.x,r[4]=sn.x,r[8]=an.x,r[1]=rn.y,r[5]=sn.y,r[9]=an.y,r[2]=rn.z,r[6]=sn.z,r[10]=an.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,r=t.elements,i=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],A=n[3],v=n[7],y=n[11],x=n[15],b=r[0],E=r[4],_=r[8],S=r[12],w=r[1],M=r[5],C=r[9],T=r[13],I=r[2],B=r[6],R=r[10],P=r[14],D=r[3],L=r[7],F=r[11],U=r[15];return i[0]=s*b+a*w+o*I+l*D,i[4]=s*E+a*M+o*B+l*L,i[8]=s*_+a*C+o*R+l*F,i[12]=s*S+a*T+o*P+l*U,i[1]=c*b+h*w+u*I+d*D,i[5]=c*E+h*M+u*B+d*L,i[9]=c*_+h*C+u*R+d*F,i[13]=c*S+h*T+u*P+d*U,i[2]=p*b+f*w+m*I+g*D,i[6]=p*E+f*M+m*B+g*L,i[10]=p*_+f*C+m*R+g*F,i[14]=p*S+f*T+m*P+g*U,i[3]=A*b+v*w+y*I+x*D,i[7]=A*E+v*M+y*B+x*L,i[11]=A*_+v*C+y*R+x*F,i[15]=A*S+v*T+y*P+x*U,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],r=e[8],i=e[12],s=e[1],a=e[5],o=e[9],l=e[13],c=e[2],h=e[6],u=e[10],d=e[14];return e[3]*(+i*o*h-r*l*h-i*a*u+n*l*u+r*a*d-n*o*d)+e[7]*(+t*o*d-t*l*u+i*s*u-r*s*d+r*l*c-i*o*c)+e[11]*(+t*l*h-t*a*d-i*s*h+n*s*d+i*a*c-n*l*c)+e[15]*(-r*a*c-t*o*h+t*a*u+r*s*h-n*s*u+n*o*c)}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 r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=n),this}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=e[9],u=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],A=h*m*l-f*u*l+f*o*d-a*m*d-h*o*g+a*u*g,v=p*u*l-c*m*l-p*o*d+s*m*d+c*o*g-s*u*g,y=c*f*l-p*h*l+p*a*d-s*f*d-c*a*g+s*h*g,x=p*h*o-c*f*o-p*a*u+s*f*u+c*a*m-s*h*m,b=t*A+n*v+r*y+i*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const E=1/b;return e[0]=A*E,e[1]=(f*u*i-h*m*i-f*r*d+n*m*d+h*r*g-n*u*g)*E,e[2]=(a*m*i-f*o*i+f*r*l-n*m*l-a*r*g+n*o*g)*E,e[3]=(h*o*i-a*u*i-h*r*l+n*u*l+a*r*d-n*o*d)*E,e[4]=v*E,e[5]=(c*m*i-p*u*i+p*r*d-t*m*d-c*r*g+t*u*g)*E,e[6]=(p*o*i-s*m*i-p*r*l+t*m*l+s*r*g-t*o*g)*E,e[7]=(s*u*i-c*o*i+c*r*l-t*u*l-s*r*d+t*o*d)*E,e[8]=y*E,e[9]=(p*h*i-c*f*i-p*n*d+t*f*d+c*n*g-t*h*g)*E,e[10]=(s*f*i-p*a*i+p*n*l-t*f*l-s*n*g+t*a*g)*E,e[11]=(c*a*i-s*h*i-c*n*l+t*h*l+s*n*d-t*a*d)*E,e[12]=x*E,e[13]=(c*f*r-p*h*r+p*n*u-t*f*u-c*n*m+t*h*m)*E,e[14]=(p*a*r-s*f*r-p*n*o+t*f*o+s*n*m-t*a*m)*E,e[15]=(s*h*r-c*a*r+c*n*o-t*h*o-s*n*u+t*a*u)*E,this}scale(e){const t=this.elements,n=e.x,r=e.y,i=e.z;return t[0]*=n,t[4]*=r,t[8]*=i,t[1]*=n,t[5]*=r,t[9]*=i,t[2]*=n,t[6]*=r,t[10]*=i,t[3]*=n,t[7]*=r,t[11]*=i,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],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,r))}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),r=Math.sin(t),i=1-n,s=e.x,a=e.y,o=e.z,l=i*s,c=i*a;return this.set(l*s+n,l*a-r*o,l*o+r*a,0,l*a+r*o,c*a+n,c*o-r*s,0,l*o-r*a,c*o+r*s,i*o*o+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,r,i,s){return this.set(1,n,i,0,e,1,s,0,t,r,1,0,0,0,0,1),this}compose(e,t,n){const r=this.elements,i=t._x,s=t._y,a=t._z,o=t._w,l=i+i,c=s+s,h=a+a,u=i*l,d=i*c,p=i*h,f=s*c,m=s*h,g=a*h,A=o*l,v=o*c,y=o*h,x=n.x,b=n.y,E=n.z;return r[0]=(1-(f+g))*x,r[1]=(d+y)*x,r[2]=(p-v)*x,r[3]=0,r[4]=(d-y)*b,r[5]=(1-(u+g))*b,r[6]=(m+A)*b,r[7]=0,r[8]=(p+v)*E,r[9]=(m-A)*E,r[10]=(1-(u+f))*E,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,n){const r=this.elements;let i=$t.set(r[0],r[1],r[2]).length();const s=$t.set(r[4],r[5],r[6]).length(),a=$t.set(r[8],r[9],r[10]).length();this.determinant()<0&&(i=-i),e.x=r[12],e.y=r[13],e.z=r[14],en.copy(this);const o=1/i,l=1/s,c=1/a;return en.elements[0]*=o,en.elements[1]*=o,en.elements[2]*=o,en.elements[4]*=l,en.elements[5]*=l,en.elements[6]*=l,en.elements[8]*=c,en.elements[9]*=c,en.elements[10]*=c,t.setFromRotationMatrix(en),n.x=i,n.y=s,n.z=a,this}makePerspective(e,t,n,r,i,s){const a=this.elements,o=2*i/(t-e),l=2*i/(n-r),c=(t+e)/(t-e),h=(n+r)/(n-r),u=-(s+i)/(s-i),d=-2*s*i/(s-i);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,t,n,r,i,s){const a=this.elements,o=1/(t-e),l=1/(n-r),c=1/(s-i),h=(t+e)*o,u=(n+r)*l,d=(s+i)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){const t=this.elements,n=e.elements;for(let r=0;r<16;r++)if(t[r]!==n[r])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}}const $t=new Et,en=new Zt,tn=new Et(0,0,0),nn=new Et(1,1,1),rn=new Et,sn=new Et,an=new Et,on=new Zt,ln=new bt;class cn{constructor(e=0,t=0,n=0,r=cn.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=r}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,r=this._order){return this._x=e,this._y=t,this._z=n,this._order=r,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 r=e.elements,i=r[0],s=r[4],a=r[8],o=r[1],l=r[5],c=r[9],h=r[2],u=r[6],d=r[10];switch(t){case"XYZ":this._y=Math.asin(Ge(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,i)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Ge(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,i),this._z=0);break;case"ZXY":this._x=Math.asin(Ge(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,i));break;case"ZYX":this._y=Math.asin(-Ge(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,i)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Ge(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,i)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Ge(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,i)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===n&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return on.makeRotationFromQuaternion(e),this.setFromRotationMatrix(on,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return ln.setFromEuler(this),this.setFromQuaternion(ln,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],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}cn.DEFAULT_ORDER="XYZ";class hn{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(n=n.concat(i))}return n}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(gn,e,An),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(gn,vn,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let n=0,r=t.length;n0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(r.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=i(e.geometries,this.geometry);const t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){const n=t.shapes;if(Array.isArray(n))for(let t=0,r=n.length;t0){r.children=[];for(let t=0;t0){r.animations=[];for(let t=0;t0&&(n.geometries=t),r.length>0&&(n.materials=r),i.length>0&&(n.textures=i),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=r,n;function s(e){const t=[];for(const n in e){const r=e[n];delete r.metadata,t.push(r)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let n=0;n0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(e,t,n,r,i){wn.subVectors(r,t),Mn.subVectors(n,t),Cn.subVectors(e,t);const s=wn.dot(wn),a=wn.dot(Mn),o=wn.dot(Cn),l=Mn.dot(Mn),c=Mn.dot(Cn),h=s*l-a*a;if(0===h)return i.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return i.set(1-d-p,p,d)}static containsPoint(e,t,n,r){return this.getBarycoord(e,t,n,r,Tn),Tn.x>=0&&Tn.y>=0&&Tn.x+Tn.y<=1}static getUV(e,t,n,r,i,s,a,o){return!1===Fn&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Fn=!0),this.getInterpolation(e,t,n,r,i,s,a,o)}static getInterpolation(e,t,n,r,i,s,a,o){return this.getBarycoord(e,t,n,r,Tn),o.setScalar(0),o.addScaledVector(i,Tn.x),o.addScaledVector(s,Tn.y),o.addScaledVector(a,Tn.z),o}static isFrontFacing(e,t,n,r){return wn.subVectors(n,t),Mn.subVectors(e,t),wn.cross(Mn).dot(r)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,r){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,n,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,r),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 wn.subVectors(this.c,this.b),Mn.subVectors(this.a,this.b),.5*wn.cross(Mn).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Un.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Un.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,r,i){return!1===Fn&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Fn=!0),Un.getInterpolation(e,this.a,this.b,this.c,t,n,r,i)}getInterpolation(e,t,n,r,i){return Un.getInterpolation(e,this.a,this.b,this.c,t,n,r,i)}containsPoint(e){return Un.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Un.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,r=this.b,i=this.c;let s,a;In.subVectors(r,n),Bn.subVectors(i,n),Pn.subVectors(e,n);const o=In.dot(Pn),l=Bn.dot(Pn);if(o<=0&&l<=0)return t.copy(n);Dn.subVectors(e,r);const c=In.dot(Dn),h=Bn.dot(Dn);if(c>=0&&h<=c)return t.copy(r);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),t.copy(n).addScaledVector(In,s);Ln.subVectors(e,i);const d=In.dot(Ln),p=Bn.dot(Ln);if(p>=0&&d<=p)return t.copy(i);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return a=l/(l-p),t.copy(n).addScaledVector(Bn,a);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return Rn.subVectors(i,r),a=(h-c)/(h-c+(d-p)),t.copy(r).addScaledVector(Rn,a);const g=1/(m+f+u);return s=f*g,a=u*g,t.copy(n).addScaledVector(In,s).addScaledVector(Bn,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let On=0;class Nn extends Le{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:On++}),this.uuid=ke(),this.name="",this.type="Material",this.blending=1,this.side=a,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=l,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Be,this.stencilZFail=Be,this.stencilZPass=Be,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(const t in e){const n=e[t];if(void 0===n){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];void 0!==r?r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[t]=n:console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`)}}toJSON(e){const t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function r(e){const t=[];for(const n in e){const r=e[n];delete r.metadata,t.push(r)}return t}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(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()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(n.blending=this.blending),this.side!==a&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.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,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),t){const t=r(e.textures),i=r(e.images);t.length>0&&(n.textures=t),i.length>0&&(n.images=i)}return n}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(null!==t){const e=t.length;n=new Array(e);for(let r=0;r!==e;++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.forceSinglePass=e.forceSinglePass,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){!0===e&&this.version++}}const kn={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},Gn={h:0,s:0,l:0},zn={h:0,s:0,l:0};function Qn(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}class Vn{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===t&&void 0===n?this.set(e):this.setRGB(e,t,n)}set(e){return e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Ce){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,ht.toWorkingColorSpace(this,t),this}setRGB(e,t,n,r=ht.workingColorSpace){return this.r=e,this.g=t,this.b=n,ht.toWorkingColorSpace(this,r),this}setHSL(e,t,n,r=ht.workingColorSpace){if(e=ze(e,1),t=Ge(t,0,1),n=Ge(n,0,1),0===t)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+t):n+t-n*t,i=2*n-r;this.r=Qn(i,r,e+1/3),this.g=Qn(i,r,e),this.b=Qn(i,r,e-1/3)}return ht.toWorkingColorSpace(this,r),this}setStyle(e,t=Ce){function n(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let i;const s=r[1],a=r[2];switch(s){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,t);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,t);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const n=r[1],i=n.length;if(3===i)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,t);if(6===i)return this.setHex(parseInt(n,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Ce){const n=kn[e.toLowerCase()];return void 0!==n?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=it(e.r),this.g=it(e.g),this.b=it(e.b),this}copyLinearToSRGB(e){return this.r=st(e.r),this.g=st(e.g),this.b=st(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Ce){return ht.fromWorkingColorSpace(Hn.copy(this),e),65536*Math.round(Ge(255*Hn.r,0,255))+256*Math.round(Ge(255*Hn.g,0,255))+Math.round(Ge(255*Hn.b,0,255))}getHexString(e=Ce){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=ht.workingColorSpace){ht.fromWorkingColorSpace(Hn.copy(this),t);const n=Hn.r,r=Hn.g,i=Hn.b,s=Math.max(n,r,i),a=Math.min(n,r,i);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const e=s-a;switch(l=c<=.5?e/(s+a):e/(2-s-a),s){case n:o=(r-i)/e+(r>-e-14,r[256|l]=1024>>-e-14|32768,i[l]=-e-1,i[256|l]=-e-1):e<=15?(r[l]=e+15<<10,r[256|l]=e+15<<10|32768,i[l]=13,i[256|l]=13):e<128?(r[l]=31744,r[256|l]=64512,i[l]=24,i[256|l]=24):(r[l]=31744,r[256|l]=64512,i[l]=13,i[256|l]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let e=l<<13,t=0;for(;0==(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,s[l]=e|t}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)a[l]=l<<23;a[31]=1199570944,a[32]=2147483648;for(let l=33;l<63;++l)a[l]=2147483648+(l-32<<23);a[63]=3347054592;for(let l=1;l<64;++l)32!==l&&(o[l]=1024);return{floatView:t,uint32View:n,baseTable:r,shiftTable:i,mantissaTable:s,exponentTable:a,offsetTable:o}}function Yn(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=Ge(e,-65504,65504),Wn.floatView[0]=e;const t=Wn.uint32View[0],n=t>>23&511;return Wn.baseTable[n]+((8388607&t)>>Wn.shiftTable[n])}function qn(e){const t=e>>10;return Wn.uint32View[0]=Wn.mantissaTable[Wn.offsetTable[t]+(1023&e)]+Wn.exponentTable[t],Wn.floatView[0]}const Kn={toHalfFloat:Yn,fromHalfFloat:qn},Jn=new Et,Zn=new qe;class $n{constructor(e,t,n=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=n,this.usage=Re,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&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 r=0,i=this.itemSize;r0&&(e.userData=this.userData),void 0!==this.parameters){const t=this.parameters;for(const n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const o in n){const t=n[o];e.data.attributes[o]=t.toJSON(e.data)}const r={};let i=!1;for(const o in this.morphAttributes){const t=this.morphAttributes[o],n=[];for(let r=0,i=t.length;r0&&(r[o]=n,i=!0)}i&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(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;null!==n&&this.setIndex(n.clone(t));const r=e.attributes;for(const l in r){const e=r[l];this.setAttribute(l,e.clone(t))}const i=e.morphAttributes;for(const l in i){const e=[],n=i[l];for(let r=0,i=n.length;r0){const n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e(e.far-e.near)**2)return}ur.copy(i).invert(),dr.copy(e.ray).applyMatrix4(ur),null!==n.boundingBox&&!1===dr.intersectsBox(n.boundingBox)||this._computeIntersections(e,t)}}_computeIntersections(e,t){let n;const r=this.geometry,i=this.material,s=r.index,a=r.attributes.position,o=r.attributes.uv,l=r.attributes.uv1,c=r.attributes.normal,h=r.groups,u=r.drawRange;if(null!==s)if(Array.isArray(i))for(let d=0,p=h.length;dn.far?null:{distance:u,point:Cr.clone(),object:e}}(e,t,n,r,mr,gr,Ar,Mr);if(d){i&&(xr.fromBufferAttribute(i,c),br.fromBufferAttribute(i,h),Er.fromBufferAttribute(i,u),d.uv=Un.getInterpolation(Mr,mr,gr,Ar,xr,br,Er,new qe)),s&&(xr.fromBufferAttribute(s,c),br.fromBufferAttribute(s,h),Er.fromBufferAttribute(s,u),d.uv1=Un.getInterpolation(Mr,mr,gr,Ar,xr,br,Er,new qe),d.uv2=d.uv1),l&&(_r.fromBufferAttribute(l,c),Sr.fromBufferAttribute(l,h),wr.fromBufferAttribute(l,u),d.normal=Un.getInterpolation(Mr,mr,gr,Ar,_r,Sr,wr,new Et),d.normal.dot(r.direction)>0&&d.normal.multiplyScalar(-1));const e={a:c,b:h,c:u,normal:new Et,materialIndex:0};Un.getNormal(mr,gr,Ar,e.normal),d.face=e}return d}class Br extends hr{constructor(e=1,t=1,n=1,r=1,i=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:r,heightSegments:i,depthSegments:s};const a=this;r=Math.floor(r),i=Math.floor(i),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(e,t,n,r,i,s,p,f,m,g,A){const v=s/m,y=p/g,x=s/2,b=p/2,E=f/2,_=m+1,S=g+1;let w=0,M=0;const C=new Et;for(let a=0;a0?1:-1,c.push(C.x,C.y,C.z),h.push(o/m),h.push(1-a/g),w+=1}}for(let a=0;a0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const n={};for(const r in this.extensions)!0===this.extensions[r]&&(n[r]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}class Ur extends Sn{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Zt,this.projectionMatrix=new Zt,this.projectionMatrixInverse=new Zt}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)}}class Or extends Ur{constructor(e=50,t=1,n=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=r,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=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*Ne*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*Oe*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*Ne*Math.atan(Math.tan(.5*Oe*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,r,i,s){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*Oe*this.fov)/this.zoom,n=2*t,r=this.aspect*n,i=-.5*r;const s=this.view;if(null!==this.view&&this.view.enabled){const e=s.fullWidth,a=s.fullHeight;i+=s.offsetX*r/e,t-=s.offsetY*n/a,r*=s.width/e,n*=s.height/a}const a=this.filmOffset;0!==a&&(i+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,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,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Nr=-90;class kr extends Sn{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n;const r=new Or(Nr,1,e,t);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(1,0,0),this.add(r);const i=new Or(Nr,1,e,t);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(-1,0,0),this.add(i);const s=new Or(Nr,1,e,t);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Or(Nr,1,e,t);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Or(Nr,1,e,t);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Or(Nr,1,e,t);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(e,t){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[r,i,s,a,o,l]=this.children,c=e.getRenderTarget(),h=e.toneMapping,u=e.xr.enabled;e.toneMapping=d,e.xr.enabled=!1;const p=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,r),e.setRenderTarget(n,1),e.render(t,i),e.setRenderTarget(n,2),e.render(t,s),e.setRenderTarget(n,3),e.render(t,a),e.setRenderTarget(n,4),e.render(t,o),n.texture.generateMipmaps=p,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(c),e.toneMapping=h,e.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Gr extends gt{constructor(e,t,n,r,i,s,a,o,l,c){super(e=void 0!==e?e:[],t=void 0!==t?t:y,n,r,i,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class zr extends vt{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1},r=[n,n,n,n,n,n];void 0!==t.encoding&&(rt("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===we?Ce:Me),this.texture=new Gr(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:B}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},r=new Br(5,5,5),i=new Fr({name:"CubemapFromEquirect",uniforms:Rr(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:o,blending:0});i.uniforms.tEquirect.value=t;const s=new Tr(r,i),a=t.minFilter;t.minFilter===P&&(t.minFilter=B);return new kr(1,10,this).update(e,s),t.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(e,t,n,r){const i=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(t,n,r);e.setRenderTarget(i)}}const Qr=new Et,Vr=new Et,Hr=new Ke;class jr{constructor(e=new Et(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,r){return this.normal.set(e,t,n),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){const r=Qr.subVectors(n,t).cross(Vr.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,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(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const n=e.delta(Qr),r=this.normal.dot(n);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const i=-(e.start.dot(this.normal)+this.constant)/r;return i<0||i>1?null:t.copy(e.start).addScaledVector(n,i)}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||Hr.getNormalMatrix(e),r=this.coplanarPoint(Qr).applyMatrix4(e),i=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(i),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)}}const Wr=new Vt,Xr=new Et;class Yr{constructor(e=new jr,t=new jr,n=new jr,r=new jr,i=new jr,s=new jr){this.planes=[e,t,n,r,i,s]}set(e,t,n,r,i,s){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(r),a[4].copy(i),a[5].copy(s),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,r=n[0],i=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],f=n[11],m=n[12],g=n[13],A=n[14],v=n[15];return t[0].setComponents(a-r,h-o,f-u,v-m).normalize(),t[1].setComponents(a+r,h+o,f+u,v+m).normalize(),t[2].setComponents(a+i,h+l,f+d,v+g).normalize(),t[3].setComponents(a-i,h-l,f-d,v-g).normalize(),t[4].setComponents(a-s,h-c,f-p,v-A).normalize(),t[5].setComponents(a+s,h+c,f+p,v+A).normalize(),this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),Wr.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),Wr.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Wr)}intersectsSprite(e){return Wr.center.set(0,0,0),Wr.radius=.7071067811865476,Wr.applyMatrix4(e.matrixWorld),this.intersectsSphere(Wr)}intersectsSphere(e){const t=this.planes,n=e.center,r=-e.radius;for(let i=0;i<6;i++){if(t[i].distanceToPoint(n)0?e.max.x:e.min.x,Xr.y=r.normal.y>0?e.max.y:e.min.y,Xr.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Xr)<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 qr(){let e=null,t=!1,n=null,r=null;function i(t,s){n(t,s),r=e.requestAnimationFrame(i)}return{start:function(){!0!==t&&null!==n&&(r=e.requestAnimationFrame(i),t=!0)},stop:function(){e.cancelAnimationFrame(r),t=!1},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function Kr(e,t){const n=t.isWebGL2,r=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),r.get(e)},remove:function(t){t.isInterleavedBufferAttribute&&(t=t.data);const n=r.get(t);n&&(e.deleteBuffer(n.buffer),r.delete(t))},update:function(t,i){if(t.isGLBufferAttribute){const e=r.get(t);return void((!e||e.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},$r={common:{diffuse:{value:new Vn(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ke},alphaMap:{value:null},alphaMapTransform:{value:new Ke},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ke}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ke}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ke}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ke},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ke},normalScale:{value:new qe(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ke},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ke}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ke}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ke}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Vn(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Vn(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Ke}},sprite:{diffuse:{value:new Vn(16777215)},opacity:{value:1},center:{value:new qe(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ke},alphaMap:{value:null},alphaTest:{value:0}}},ei={basic:{uniforms:Pr([$r.common,$r.specularmap,$r.envmap,$r.aomap,$r.lightmap,$r.fog]),vertexShader:Zr.meshbasic_vert,fragmentShader:Zr.meshbasic_frag},lambert:{uniforms:Pr([$r.common,$r.specularmap,$r.envmap,$r.aomap,$r.lightmap,$r.emissivemap,$r.bumpmap,$r.normalmap,$r.displacementmap,$r.fog,$r.lights,{emissive:{value:new Vn(0)}}]),vertexShader:Zr.meshlambert_vert,fragmentShader:Zr.meshlambert_frag},phong:{uniforms:Pr([$r.common,$r.specularmap,$r.envmap,$r.aomap,$r.lightmap,$r.emissivemap,$r.bumpmap,$r.normalmap,$r.displacementmap,$r.fog,$r.lights,{emissive:{value:new Vn(0)},specular:{value:new Vn(1118481)},shininess:{value:30}}]),vertexShader:Zr.meshphong_vert,fragmentShader:Zr.meshphong_frag},standard:{uniforms:Pr([$r.common,$r.envmap,$r.aomap,$r.lightmap,$r.emissivemap,$r.bumpmap,$r.normalmap,$r.displacementmap,$r.roughnessmap,$r.metalnessmap,$r.fog,$r.lights,{emissive:{value:new Vn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Zr.meshphysical_vert,fragmentShader:Zr.meshphysical_frag},toon:{uniforms:Pr([$r.common,$r.aomap,$r.lightmap,$r.emissivemap,$r.bumpmap,$r.normalmap,$r.displacementmap,$r.gradientmap,$r.fog,$r.lights,{emissive:{value:new Vn(0)}}]),vertexShader:Zr.meshtoon_vert,fragmentShader:Zr.meshtoon_frag},matcap:{uniforms:Pr([$r.common,$r.bumpmap,$r.normalmap,$r.displacementmap,$r.fog,{matcap:{value:null}}]),vertexShader:Zr.meshmatcap_vert,fragmentShader:Zr.meshmatcap_frag},points:{uniforms:Pr([$r.points,$r.fog]),vertexShader:Zr.points_vert,fragmentShader:Zr.points_frag},dashed:{uniforms:Pr([$r.common,$r.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Zr.linedashed_vert,fragmentShader:Zr.linedashed_frag},depth:{uniforms:Pr([$r.common,$r.displacementmap]),vertexShader:Zr.depth_vert,fragmentShader:Zr.depth_frag},normal:{uniforms:Pr([$r.common,$r.bumpmap,$r.normalmap,$r.displacementmap,{opacity:{value:1}}]),vertexShader:Zr.meshnormal_vert,fragmentShader:Zr.meshnormal_frag},sprite:{uniforms:Pr([$r.sprite,$r.fog]),vertexShader:Zr.sprite_vert,fragmentShader:Zr.sprite_frag},background:{uniforms:{uvTransform:{value:new Ke},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Zr.background_vert,fragmentShader:Zr.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Zr.backgroundCube_vert,fragmentShader:Zr.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Zr.cube_vert,fragmentShader:Zr.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Zr.equirect_vert,fragmentShader:Zr.equirect_frag},distanceRGBA:{uniforms:Pr([$r.common,$r.displacementmap,{referencePosition:{value:new Et},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Zr.distanceRGBA_vert,fragmentShader:Zr.distanceRGBA_frag},shadow:{uniforms:Pr([$r.lights,$r.fog,{color:{value:new Vn(0)},opacity:{value:1}}]),vertexShader:Zr.shadow_vert,fragmentShader:Zr.shadow_frag}};ei.physical={uniforms:Pr([ei.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ke},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ke},clearcoatNormalScale:{value:new qe(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ke},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ke},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ke},sheen:{value:0},sheenColor:{value:new Vn(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ke},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ke},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ke},transmissionSamplerSize:{value:new qe},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ke},attenuationDistance:{value:0},attenuationColor:{value:new Vn(0)},specularColor:{value:new Vn(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ke},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ke}}]),vertexShader:Zr.meshphysical_vert,fragmentShader:Zr.meshphysical_frag};const ti={r:0,b:0,g:0};function ni(e,t,n,r,i,s,l){const c=new Vn(0);let h,u,d=!0===s?0:1,p=null,f=0,m=null;function g(t,n){t.getRGB(ti,Dr(e)),r.buffers.color.setClear(ti.r,ti.g,ti.b,n,l)}return{getClearColor:function(){return c},setClearColor:function(e,t=1){c.set(e),d=t,g(c,d)},getClearAlpha:function(){return d},setClearAlpha:function(e){d=e,g(c,d)},render:function(s,A){let v=!1,y=!0===A.isScene?A.background:null;if(y&&y.isTexture){y=(A.backgroundBlurriness>0?n:t).get(y)}switch(null===y?g(c,d):y&&y.isColor&&(g(y,1),v=!0),e.xr.getEnvironmentBlendMode()){case"opaque":v=!0;break;case"additive":r.buffers.color.setClear(0,0,0,1,l),v=!0;break;case"alpha-blend":r.buffers.color.setClear(0,0,0,0,l),v=!0}(e.autoClear||v)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),y&&(y.isCubeTexture||y.mapping===_)?(void 0===u&&(u=new Tr(new Br(1,1,1),new Fr({name:"BackgroundCubeMaterial",uniforms:Rr(ei.backgroundCube.uniforms),vertexShader:ei.backgroundCube.vertexShader,fragmentShader:ei.backgroundCube.fragmentShader,side:o,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(u)),u.material.uniforms.envMap.value=y,u.material.uniforms.flipEnvMap.value=y.isCubeTexture&&!1===y.isRenderTargetTexture?-1:1,u.material.uniforms.backgroundBlurriness.value=A.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,u.material.toneMapped=y.colorSpace!==Ce,p===y&&f===y.version&&m===e.toneMapping||(u.material.needsUpdate=!0,p=y,f=y.version,m=e.toneMapping),u.layers.enableAll(),s.unshift(u,u.geometry,u.material,0,0,null)):y&&y.isTexture&&(void 0===h&&(h=new Tr(new Jr(2,2),new Fr({name:"BackgroundMaterial",uniforms:Rr(ei.background.uniforms),vertexShader:ei.background.vertexShader,fragmentShader:ei.background.fragmentShader,side:a,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(h)),h.material.uniforms.t2D.value=y,h.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,h.material.toneMapped=y.colorSpace!==Ce,!0===y.matrixAutoUpdate&&y.updateMatrix(),h.material.uniforms.uvTransform.value.copy(y.matrix),p===y&&f===y.version&&m===e.toneMapping||(h.material.needsUpdate=!0,p=y,f=y.version,m=e.toneMapping),h.layers.enableAll(),s.unshift(h,h.geometry,h.material,0,0,null))}}}function ri(e,t,n,r){const i=e.getParameter(e.MAX_VERTEX_ATTRIBS),s=r.isWebGL2?null:t.get("OES_vertex_array_object"),a=r.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(t){return r.isWebGL2?e.bindVertexArray(t):s.bindVertexArrayOES(t)}function d(t){return r.isWebGL2?e.deleteVertexArray(t):s.deleteVertexArrayOES(t)}function p(e){const t=[],n=[],r=[];for(let s=0;s=0){const t=i[l];let n=s[l];if(void 0===n&&("instanceMatrix"===l&&e.instanceMatrix&&(n=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(n=e.instanceColor)),void 0===t)return!0;if(t.attribute!==n)return!0;if(n&&t.data!==n.data)return!0;a++}}return c.attributesNum!==a||c.index!==r}(i,y,d,x),b&&function(e,t,n,r){const i={},s=t.attributes;let a=0;const o=n.getAttributes();for(const l in o){if(o[l].location>=0){let t=s[l];void 0===t&&("instanceMatrix"===l&&e.instanceMatrix&&(t=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(t=e.instanceColor));const n={};n.attribute=t,t&&t.data&&(n.data=t.data),i[l]=n,a++}}c.attributes=i,c.attributesNum=a,c.index=r}(i,y,d,x)}else{const e=!0===l.wireframe;c.geometry===y.id&&c.program===d.id&&c.wireframe===e||(c.geometry=y.id,c.program=d.id,c.wireframe=e,b=!0)}null!==x&&n.update(x,e.ELEMENT_ARRAY_BUFFER),(b||h)&&(h=!1,function(i,s,a,o){if(!1===r.isWebGL2&&(i.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;f();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const t in c){const r=c[t];if(r.location>=0){let s=l[t];if(void 0===s&&("instanceMatrix"===t&&i.instanceMatrix&&(s=i.instanceMatrix),"instanceColor"===t&&i.instanceColor&&(s=i.instanceColor)),void 0!==s){const t=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===e.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=i(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||t.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),u=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=e.getParameter(e.MAX_TEXTURE_SIZE),p=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),f=e.getParameter(e.MAX_VERTEX_ATTRIBS),m=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),g=e.getParameter(e.MAX_VARYING_VECTORS),A=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),v=u>0,y=s||t.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){const n=t.get("EXT_texture_filter_anisotropic");r=e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:i,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:A,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:s?e.getParameter(e.MAX_SAMPLES):0}}function ai(e){const t=this;let n=null,r=0,i=!1,s=!1;const a=new jr,o=new Ke,l={value:null,needsUpdate:!1};function c(e,n,r,i){const s=null!==e?e.length:0;let c=null;if(0!==s){if(c=l.value,!0!==i||null===c){const t=r+4*s,i=n.matrixWorldInverse;o.getNormalMatrix(i),(null===c||c.length0);t.numPlanes=r,t.numIntersection=0}();else{const e=s?0:r,t=4*e;let i=f.clippingState||null;l.value=i,i=c(u,o,t,h);for(let r=0;r!==t;++r)i[r]=n[r];f.clippingState=i,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=e}}}function oi(e){let t=new WeakMap;function n(e,t){return t===b?e.mapping=y:t===E&&(e.mapping=x),e}function r(e){const n=e.target;n.removeEventListener("dispose",r);const i=t.get(n);void 0!==i&&(t.delete(n),i.dispose())}return{get:function(i){if(i&&i.isTexture&&!1===i.isRenderTargetTexture){const s=i.mapping;if(s===b||s===E){if(t.has(i)){return n(t.get(i).texture,i.mapping)}{const s=i.image;if(s&&s.height>0){const a=new zr(s.height/2);return a.fromEquirectangularTexture(e,i),t.set(i,a),i.addEventListener("dispose",r),n(a.texture,i.mapping)}return null}}}return i},dispose:function(){t=new WeakMap}}}class li extends Ur{constructor(e=-1,t=1,n=1,r=-1,i=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=r,this.near=i,this.far=s,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=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,n,r,i,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(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,r=(this.top+this.bottom)/2;let i=n-e,s=n+e,a=r+t,o=r-t;if(null!==this.view&&this.view.enabled){const e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=e*this.view.offsetX,s=i+e*this.view.width,a-=t*this.view.offsetY,o=a-t*this.view.height}this.projectionMatrix.makeOrthographic(i,s,a,o,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,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}const ci=[.125,.215,.35,.446,.526,.582],hi=20,ui=new li,di=new Vn;let pi=null;const fi=(1+Math.sqrt(5))/2,mi=1/fi,gi=[new Et(1,1,1),new Et(-1,1,1),new Et(1,1,-1),new Et(-1,1,-1),new Et(0,fi,mi),new Et(0,fi,-mi),new Et(mi,0,fi),new Et(-mi,0,fi),new Et(fi,mi,0),new Et(-fi,mi,0)];class Ai{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,r=100){pi=this._renderer.getRenderTarget(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,n,r,i),t>0&&this._blur(i,0,0,t),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=bi(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=xi(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;ee-4?o=ci[a-e+4-1]:0===a&&(o=0),r.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,f=3,m=2,g=1,A=new Float32Array(f*p*d),v=new Float32Array(m*p*d),y=new Float32Array(g*p*d);for(let e=0;e2?0:-1,r=[t,n,0,t+2/3,n,0,t+2/3,n+1,0,t,n,0,t+2/3,n+1,0,t,n+1,0];A.set(r,f*p*e),v.set(u,m*p*e);const i=[e,e,e,e,e,e];y.set(i,g*p*e)}const x=new hr;x.setAttribute("position",new $n(A,f)),x.setAttribute("uv",new $n(v,m)),x.setAttribute("faceIndex",new $n(y,g)),t.push(x),i>4&&i--}return{lodPlanes:t,sizeLods:n,sigmas:r}}(r)),this._blurMaterial=function(e,t,n){const r=new Float32Array(hi),i=new Et(0,1,0),s=new Fr({name:"SphericalGaussianBlur",defines:{n:hi,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:r},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:Ei(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1});return s}(r,e,t)}return r}_compileMaterial(e){const t=new Tr(this._lodPlanes[0],e);this._renderer.compile(t,ui)}_sceneToCubeUV(e,t,n,r){const i=new Or(90,1,t,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],l=this._renderer,c=l.autoClear,h=l.toneMapping;l.getClearColor(di),l.toneMapping=d,l.autoClear=!1;const u=new jn({name:"PMREM.Background",side:o,depthWrite:!1,depthTest:!1}),p=new Tr(new Br,u);let f=!1;const m=e.background;m?m.isColor&&(u.color.copy(m),e.background=null,f=!0):(u.color.copy(di),f=!0);for(let o=0;o<6;o++){const t=o%3;0===t?(i.up.set(0,s[o],0),i.lookAt(a[o],0,0)):1===t?(i.up.set(0,0,s[o]),i.lookAt(0,a[o],0)):(i.up.set(0,s[o],0),i.lookAt(0,0,a[o]));const n=this._cubeSize;yi(r,t*n,o>2?n:0,n,n),l.setRenderTarget(r),f&&l.render(p,i),l.render(e,i)}p.geometry.dispose(),p.material.dispose(),l.toneMapping=h,l.autoClear=c,e.background=m}_textureToCubeUV(e,t){const n=this._renderer,r=e.mapping===y||e.mapping===x;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=bi()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=xi());const i=r?this._cubemapMaterial:this._equirectMaterial,s=new Tr(this._lodPlanes[0],i);i.uniforms.envMap.value=e;const a=this._cubeSize;yi(t,0,0,3*a,2*a),n.setRenderTarget(t),n.render(s,ui)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let r=1;rhi&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);const m=[];let g=0;for(let y=0;yA-4?r-A+4:0),4*(this._cubeSize-v),3*v,2*v),o.setRenderTarget(t),o.render(c,ui)}}function vi(e,t,n){const r=new vt(e,t,n);return r.texture.mapping=_,r.texture.name="PMREM.cubeUv",r.scissorTest=!0,r}function yi(e,t,n,r,i){e.viewport.set(t,n,r,i),e.scissor.set(t,n,r,i)}function xi(){return new Fr({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Ei(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function bi(){return new Fr({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Ei(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Ei(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function _i(e){let t=new WeakMap,n=null;function r(e){const n=e.target;n.removeEventListener("dispose",r);const i=t.get(n);void 0!==i&&(t.delete(n),i.dispose())}return{get:function(i){if(i&&i.isTexture){const s=i.mapping,a=s===b||s===E,o=s===y||s===x;if(a||o){if(i.isRenderTargetTexture&&!0===i.needsPMREMUpdate){i.needsPMREMUpdate=!1;let r=t.get(i);return null===n&&(n=new Ai(e)),r=a?n.fromEquirectangular(i,r):n.fromCubemap(i,r),t.set(i,r),r.texture}if(t.has(i))return t.get(i).texture;{const s=i.image;if(a&&s&&s.height>0||o&&s&&function(e){let t=0;const n=6;for(let r=0;rt.maxTextureSize&&(w=Math.ceil(S/t.maxTextureSize),S=t.maxTextureSize);const M=new Float32Array(S*w*4*p),C=new yt(M,S,w,p);C.type=U,C.needsUpdate=!0;const T=4*_;for(let B=0;B0)return e;const i=t*n;let s=Ui[i];if(void 0===s&&(s=new Float32Array(i),Ui[i]=s),0!==t){r.toArray(s,0);for(let r=1,i=0;r!==t;++r)i+=n,e[r].toArray(s,i)}return s}function Qi(e,t){if(e.length!==t.length)return!1;for(let n=0,r=e.length;n":" "} ${e}: ${n[a]}`)}return r.join("\n")}(e.getShaderSource(t),r)}return i}function ks(e,t){const n=function(e){switch(e){case Te:return["Linear","( value )"];case Ce:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",e),["Linear","( value )"]}}(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Gs(e,t){let n;switch(t){case p:n="Linear";break;case f:n="Reinhard";break;case m:n="OptimizedCineon";break;case g:n="ACESFilmic";break;case A:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),n="Linear"}return"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function zs(e){return""!==e}function Qs(e,t){const n=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function Vs(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const Hs=/^[ \t]*#include +<([\w\d./]+)>/gm;function js(e){return e.replace(Hs,Ws)}function Ws(e,t){const n=Zr[t];if(void 0===n)throw new Error("Can not resolve #include <"+t+">");return js(n)}const Xs=/#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 Ys(e){return e.replace(Xs,qs)}function qs(e,t,n,r){let i="";for(let s=parseInt(t);s0&&(M+="\n"),C=[E,S].filter(zs).join("\n"),C.length>0&&(C+="\n")):(M=[Ks(n),"#define SHADER_NAME "+n.shaderName,S,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+A:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+m:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(zs).join("\n"),C=[E,Ks(n),"#define SHADER_NAME "+n.shaderName,S,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+g:"",n.envMap?"#define "+A:"",n.envMap?"#define "+v:"",b?"#define CUBEUV_TEXEL_WIDTH "+b.texelWidth:"",b?"#define CUBEUV_TEXEL_HEIGHT "+b.texelHeight:"",b?"#define CUBEUV_MAX_MIP "+b.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+m:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==d?"#define TONE_MAPPING":"",n.toneMapping!==d?Zr.tonemapping_pars_fragment:"",n.toneMapping!==d?Gs("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Zr.encodings_pars_fragment,ks("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(zs).join("\n")),p=js(p),p=Qs(p,n),p=Vs(p,n),f=js(f),f=Qs(f,n),f=Vs(f,n),p=Ys(p),f=Ys(f),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(T="#version 300 es\n",M=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+M,C=["#define varying in",n.glslVersion===Pe?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===Pe?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+C);const I=T+M+p,B=T+C+f,R=Us(o,o.VERTEX_SHADER,I),P=Us(o,o.FRAGMENT_SHADER,B);if(o.attachShader(w,R),o.attachShader(w,P),void 0!==n.index0AttributeName?o.bindAttribLocation(w,0,n.index0AttributeName):!0===n.morphTargets&&o.bindAttribLocation(w,0,"position"),o.linkProgram(w),e.debug.checkShaderErrors){const t=o.getProgramInfoLog(w).trim(),n=o.getShaderInfoLog(R).trim(),r=o.getShaderInfoLog(P).trim();let i=!0,s=!0;if(!1===o.getProgramParameter(w,o.LINK_STATUS))if(i=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(o,w,R,P);else{const e=Ns(o,R,"vertex"),n=Ns(o,P,"fragment");console.error("THREE.WebGLProgram: Shader Error "+o.getError()+" - VALIDATE_STATUS "+o.getProgramParameter(w,o.VALIDATE_STATUS)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+n)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):""!==n&&""!==r||(s=!1);s&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:n,prefix:M},fragmentShader:{log:r,prefix:C}})}let D,L;return o.deleteShader(R),o.deleteShader(P),this.getUniforms=function(){return void 0===D&&(D=new Fs(o,w)),D},this.getAttributes=function(){return void 0===L&&(L=function(e,t){const n={},r=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let i=0;i0,Y=s.iridescence>0,q=s.sheen>0,K=s.transmission>0,J=X&&!!s.clearcoatMap,Z=X&&!!s.clearcoatNormalMap,$=X&&!!s.clearcoatRoughnessMap,ee=Y&&!!s.iridescenceMap,te=Y&&!!s.iridescenceThicknessMap,ne=q&&!!s.sheenColorMap,re=q&&!!s.sheenRoughnessMap,ie=!!s.specularMap,se=!!s.specularColorMap,ae=!!s.specularIntensityMap,oe=K&&!!s.transmissionMap,le=K&&!!s.thicknessMap,ce=!!s.gradientMap,he=!!s.alphaMap,ue=s.alphaTest>0,de=!!s.extensions,pe=!!b.attributes.uv1,fe=!!b.attributes.uv2,me=!!b.attributes.uv3;return{isWebGL2:u,shaderID:M,shaderName:s.type,vertexShader:I,fragmentShader:B,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:P,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:m,instancing:F,instancingColor:F&&null!==y.instanceColor,supportsVertexTextures:f,outputColorSpace:null===L?e.outputColorSpace:!0===L.isXRRenderTarget?L.texture.colorSpace:Te,map:U,matcap:O,envMap:N,envMapMode:N&&S.mapping,envMapCubeUVHeight:w,aoMap:k,lightMap:G,bumpMap:z,normalMap:Q,displacementMap:f&&V,emissiveMap:H,normalMapObjectSpace:Q&&1===s.normalMapType,normalMapTangentSpace:Q&&0===s.normalMapType,metalnessMap:j,roughnessMap:W,clearcoat:X,clearcoatMap:J,clearcoatNormalMap:Z,clearcoatRoughnessMap:$,iridescence:Y,iridescenceMap:ee,iridescenceThicknessMap:te,sheen:q,sheenColorMap:ne,sheenRoughnessMap:re,specularMap:ie,specularColorMap:se,specularIntensityMap:ae,transmission:K,transmissionMap:oe,thicknessMap:le,gradientMap:ce,opaque:!1===s.transparent&&1===s.blending,alphaMap:he,alphaTest:ue,combine:s.combine,mapUv:U&&A(s.map.channel),aoMapUv:k&&A(s.aoMap.channel),lightMapUv:G&&A(s.lightMap.channel),bumpMapUv:z&&A(s.bumpMap.channel),normalMapUv:Q&&A(s.normalMap.channel),displacementMapUv:V&&A(s.displacementMap.channel),emissiveMapUv:H&&A(s.emissiveMap.channel),metalnessMapUv:j&&A(s.metalnessMap.channel),roughnessMapUv:W&&A(s.roughnessMap.channel),clearcoatMapUv:J&&A(s.clearcoatMap.channel),clearcoatNormalMapUv:Z&&A(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:$&&A(s.clearcoatRoughnessMap.channel),iridescenceMapUv:ee&&A(s.iridescenceMap.channel),iridescenceThicknessMapUv:te&&A(s.iridescenceThicknessMap.channel),sheenColorMapUv:ne&&A(s.sheenColorMap.channel),sheenRoughnessMapUv:re&&A(s.sheenRoughnessMap.channel),specularMapUv:ie&&A(s.specularMap.channel),specularColorMapUv:se&&A(s.specularColorMap.channel),specularIntensityMapUv:ae&&A(s.specularIntensityMap.channel),transmissionMapUv:oe&&A(s.transmissionMap.channel),thicknessMapUv:le&&A(s.thicknessMap.channel),alphaMapUv:he&&A(s.alphaMap.channel),vertexTangents:Q&&!!b.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!b.attributes.color&&4===b.attributes.color.itemSize,vertexUv1s:pe,vertexUv2s:fe,vertexUv3s:me,pointsUvs:!0===y.isPoints&&!!b.attributes.uv&&(U||he),fog:!!x,useFog:!0===s.fog,fogExp2:x&&x.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:p,skinning:!0===y.isSkinnedMesh,morphTargets:void 0!==b.morphAttributes.position,morphNormals:void 0!==b.morphAttributes.normal,morphColors:void 0!==b.morphAttributes.color,morphTargetsCount:T,morphTextureStride:D,numDirLights:l.directional.length,numPointLights:l.point.length,numSpotLights:l.spot.length,numSpotLightMaps:l.spotLightMap.length,numRectAreaLights:l.rectArea.length,numHemiLights:l.hemi.length,numDirLightShadows:l.directionalShadowMap.length,numPointLightShadows:l.pointShadowMap.length,numSpotLightShadows:l.spotShadowMap.length,numSpotLightShadowsWithMaps:l.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:e.shadowMap.enabled&&h.length>0,shadowMapType:e.shadowMap.type,toneMapping:s.toneMapped?e.toneMapping:d,useLegacyLights:e.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:2===s.side,flipSided:s.side===o,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:de&&!0===s.extensions.derivatives,extensionFragDepth:de&&!0===s.extensions.fragDepth,extensionDrawBuffers:de&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:de&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:u||r.has("EXT_frag_depth"),rendererExtensionDrawBuffers:u||r.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:u||r.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(t){const n=[];if(t.shaderID?n.push(t.shaderID):(n.push(t.customVertexShaderID),n.push(t.customFragmentShaderID)),void 0!==t.defines)for(const e in t.defines)n.push(e),n.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(!function(e,t){e.push(t.precision),e.push(t.outputColorSpace),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.mapUv),e.push(t.alphaMapUv),e.push(t.lightMapUv),e.push(t.aoMapUv),e.push(t.bumpMapUv),e.push(t.normalMapUv),e.push(t.displacementMapUv),e.push(t.emissiveMapUv),e.push(t.metalnessMapUv),e.push(t.roughnessMapUv),e.push(t.clearcoatMapUv),e.push(t.clearcoatNormalMapUv),e.push(t.clearcoatRoughnessMapUv),e.push(t.iridescenceMapUv),e.push(t.iridescenceThicknessMapUv),e.push(t.sheenColorMapUv),e.push(t.sheenRoughnessMapUv),e.push(t.specularMapUv),e.push(t.specularColorMapUv),e.push(t.specularIntensityMapUv),e.push(t.transmissionMapUv),e.push(t.thicknessMapUv),e.push(t.combine),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numSpotLightMaps),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.numSpotLightShadowsWithMaps),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(n,t),function(e,t){l.disableAll(),t.isWebGL2&&l.enable(0);t.supportsVertexTextures&&l.enable(1);t.instancing&&l.enable(2);t.instancingColor&&l.enable(3);t.matcap&&l.enable(4);t.envMap&&l.enable(5);t.normalMapObjectSpace&&l.enable(6);t.normalMapTangentSpace&&l.enable(7);t.clearcoat&&l.enable(8);t.iridescence&&l.enable(9);t.alphaTest&&l.enable(10);t.vertexColors&&l.enable(11);t.vertexAlphas&&l.enable(12);t.vertexUv1s&&l.enable(13);t.vertexUv2s&&l.enable(14);t.vertexUv3s&&l.enable(15);t.vertexTangents&&l.enable(16);e.push(l.mask),l.disableAll(),t.fog&&l.enable(0);t.useFog&&l.enable(1);t.flatShading&&l.enable(2);t.logarithmicDepthBuffer&&l.enable(3);t.skinning&&l.enable(4);t.morphTargets&&l.enable(5);t.morphNormals&&l.enable(6);t.morphColors&&l.enable(7);t.premultipliedAlpha&&l.enable(8);t.shadowMapEnabled&&l.enable(9);t.useLegacyLights&&l.enable(10);t.doubleSided&&l.enable(11);t.flipSided&&l.enable(12);t.useDepthPacking&&l.enable(13);t.dithering&&l.enable(14);t.transmission&&l.enable(15);t.sheen&&l.enable(16);t.opaque&&l.enable(17);t.pointsUvs&&l.enable(18);e.push(l.mask)}(n,t),n.push(e.outputColorSpace)),n.push(t.customProgramCacheKey),n.join()},getUniforms:function(e){const t=g[e.type];let n;if(t){const e=ei[t];n=Lr.clone(e.uniforms)}else n=e.uniforms;return n},acquireProgram:function(t,n){let r;for(let e=0,i=h.length;e0?r.push(h):!0===a.transparent?i.push(h):n.push(h)},unshift:function(e,t,a,o,l,c){const h=s(e,t,a,o,l,c);a.transmission>0?r.unshift(h):!0===a.transparent?i.unshift(h):n.unshift(h)},finish:function(){for(let n=t,r=e.length;n1&&n.sort(e||ra),r.length>1&&r.sort(t||ia),i.length>1&&i.sort(t||ia)}}}function aa(){let e=new WeakMap;return{get:function(t,n){const r=e.get(t);let i;return void 0===r?(i=new sa,e.set(t,[i])):n>=r.length?(i=new sa,r.push(i)):i=r[n],i},dispose:function(){e=new WeakMap}}}function oa(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case"DirectionalLight":n={direction:new Et,color:new Vn};break;case"SpotLight":n={position:new Et,direction:new Et,color:new Vn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Et,color:new Vn,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Et,skyColor:new Vn,groundColor:new Vn};break;case"RectAreaLight":n={color:new Vn,position:new Et,halfWidth:new Et,halfHeight:new Et}}return e[t.id]=n,n}}}let la=0;function ca(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function ha(e,t){const n=new oa,r=function(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qe};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qe,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=n,n}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let l=0;l<9;l++)i.probe.push(new Et);const s=new Et,a=new Zt,o=new Zt;return{setup:function(s,a){let o=0,l=0,c=0;for(let e=0;e<9;e++)i.probe[e].set(0,0,0);let h=0,u=0,d=0,p=0,f=0,m=0,g=0,A=0,v=0,y=0;s.sort(ca);const x=!0===a?Math.PI:1;for(let e=0,t=s.length;e0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(i.rectAreaLTC1=$r.LTC_FLOAT_1,i.rectAreaLTC2=$r.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(i.rectAreaLTC1=$r.LTC_HALF_1,i.rectAreaLTC2=$r.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=o,i.ambient[1]=l,i.ambient[2]=c;const b=i.hash;b.directionalLength===h&&b.pointLength===u&&b.spotLength===d&&b.rectAreaLength===p&&b.hemiLength===f&&b.numDirectionalShadows===m&&b.numPointShadows===g&&b.numSpotShadows===A&&b.numSpotMaps===v||(i.directional.length=h,i.spot.length=d,i.rectArea.length=p,i.point.length=u,i.hemi.length=f,i.directionalShadow.length=m,i.directionalShadowMap.length=m,i.pointShadow.length=g,i.pointShadowMap.length=g,i.spotShadow.length=A,i.spotShadowMap.length=A,i.directionalShadowMatrix.length=m,i.pointShadowMatrix.length=g,i.spotLightMatrix.length=A+v-y,i.spotLightMap.length=v,i.numSpotLightShadowsWithMaps=y,b.directionalLength=h,b.pointLength=u,b.spotLength=d,b.rectAreaLength=p,b.hemiLength=f,b.numDirectionalShadows=m,b.numPointShadows=g,b.numSpotShadows=A,b.numSpotMaps=v,i.version=la++)},setupView:function(e,t){let n=0,r=0,l=0,c=0,h=0;const u=t.matrixWorldInverse;for(let d=0,p=e.length;d=s.length?(a=new ua(e,t),s.push(a)):a=s[i],a},dispose:function(){n=new WeakMap}}}class pa extends Nn{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class fa extends Nn{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}function ma(e,t,n){let i=new Yr;const l=new qe,c=new qe,h=new At,u=new pa({depthPacking:3201}),d=new fa,p={},f=n.maxTextureSize,m={[a]:o,[o]:a,2:2},g=new Fr({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new qe},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),A=g.clone();A.defines.HORIZONTAL_PASS=1;const v=new hr;v.setAttribute("position",new $n(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const y=new Tr(v,g),x=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=r;let b=this.type;function E(n,r){const i=t.update(y);g.defines.VSM_SAMPLES!==n.blurSamples&&(g.defines.VSM_SAMPLES=n.blurSamples,A.defines.VSM_SAMPLES=n.blurSamples,g.needsUpdate=!0,A.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new vt(l.x,l.y)),g.uniforms.shadow_pass.value=n.map.texture,g.uniforms.resolution.value=n.mapSize,g.uniforms.radius.value=n.radius,e.setRenderTarget(n.mapPass),e.clear(),e.renderBufferDirect(r,null,i,g,y,null),A.uniforms.shadow_pass.value=n.mapPass.texture,A.uniforms.resolution.value=n.mapSize,A.uniforms.radius.value=n.radius,e.setRenderTarget(n.map),e.clear(),e.renderBufferDirect(r,null,i,A,y,null)}function _(t,n,r,i){let a=null;const o=!0===r.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==o)a=o;else if(a=!0===r.isPointLight?d:u,e.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const e=a.uuid,t=n.uuid;let r=p[e];void 0===r&&(r={},p[e]=r);let i=r[t];void 0===i&&(i=a.clone(),r[t]=i),a=i}if(a.visible=n.visible,a.wireframe=n.wireframe,a.side=i===s?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:m[n.side],a.alphaMap=n.alphaMap,a.alphaTest=n.alphaTest,a.map=n.map,a.clipShadows=n.clipShadows,a.clippingPlanes=n.clippingPlanes,a.clipIntersection=n.clipIntersection,a.displacementMap=n.displacementMap,a.displacementScale=n.displacementScale,a.displacementBias=n.displacementBias,a.wireframeLinewidth=n.wireframeLinewidth,a.linewidth=n.linewidth,!0===r.isPointLight&&!0===a.isMeshDistanceMaterial){e.properties.get(a).light=r}return a}function S(n,r,a,o,l){if(!1===n.visible)return;if(n.layers.test(r.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&l===s)&&(!n.frustumCulled||i.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(a.matrixWorldInverse,n.matrixWorld);const r=t.update(n),i=n.material;if(Array.isArray(i)){const t=r.groups;for(let s=0,c=t.length;sf||l.y>f)&&(l.x>f&&(c.x=Math.floor(f/u.x),l.x=c.x*u.x,o.mapSize.x=c.x),l.y>f&&(c.y=Math.floor(f/u.y),l.y=c.y*u.y,o.mapSize.y=c.y)),null===o.map||!0===p||!0===m){const e=this.type!==s?{minFilter:C,magFilter:C}:{};null!==o.map&&o.map.dispose(),o.map=new vt(l.x,l.y,e),o.map.texture.name=a.name+".shadowMap",o.camera.updateProjectionMatrix()}e.setRenderTarget(o.map),e.clear();const A=o.getViewportCount();for(let e=0;e=1):-1!==D.indexOf("OpenGL ES")&&(P=parseFloat(/^OpenGL ES (\d)/.exec(D)[1]),R=P>=2);let L=null,F={};const U=e.getParameter(e.SCISSOR_BOX),O=e.getParameter(e.VIEWPORT),N=(new At).fromArray(U),k=(new At).fromArray(O);function G(t,n,i,s){const a=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let l=0;lr||e.height>r)&&(i=r/Math.max(e.width,e.height)),i<1||!0===t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const r=t?je:Math.floor,s=r(i*e.width),a=r(i*e.height);void 0===m&&(m=v(s,a));const o=n?v(s,a):m;o.width=s,o.height=a;return o.getContext("2d").drawImage(e,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+s+"x"+a+")."),o}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function x(e){return Ve(e.width)&&Ve(e.height)}function b(e,t){return e.generateMipmaps&&t&&e.minFilter!==C&&e.minFilter!==B}function E(t){e.generateMipmap(t)}function _(n,r,i,s,a=!1){if(!1===o)return r;if(null!==n){if(void 0!==e[n])return e[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=r;return r===e.RED&&(i===e.FLOAT&&(l=e.R32F),i===e.HALF_FLOAT&&(l=e.R16F),i===e.UNSIGNED_BYTE&&(l=e.R8)),r===e.RG&&(i===e.FLOAT&&(l=e.RG32F),i===e.HALF_FLOAT&&(l=e.RG16F),i===e.UNSIGNED_BYTE&&(l=e.RG8)),r===e.RGBA&&(i===e.FLOAT&&(l=e.RGBA32F),i===e.HALF_FLOAT&&(l=e.RGBA16F),i===e.UNSIGNED_BYTE&&(l=s===Ce&&!1===a?e.SRGB8_ALPHA8:e.RGBA8),i===e.UNSIGNED_SHORT_4_4_4_4&&(l=e.RGBA4),i===e.UNSIGNED_SHORT_5_5_5_1&&(l=e.RGB5_A1)),l!==e.R16F&&l!==e.R32F&&l!==e.RG16F&&l!==e.RG32F&&l!==e.RGBA16F&&l!==e.RGBA32F||t.get("EXT_color_buffer_float"),l}function Q(e,t,n){return!0===b(e,n)||e.isFramebufferTexture&&e.minFilter!==C&&e.minFilter!==B?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function V(t){return t===C||t===T||t===I?e.NEAREST:e.LINEAR}function H(e){const t=e.target;t.removeEventListener("dispose",H),function(e){const t=r.get(e);if(void 0===t.__webglInit)return;const n=e.source,i=g.get(n);if(i){const r=i[t.__cacheKey];r.usedTimes--,0===r.usedTimes&&W(e),0===Object.keys(i).length&&g.delete(n)}r.remove(e)}(t),t.isVideoTexture&&f.delete(t)}function j(t){const n=t.target;n.removeEventListener("dispose",j),function(t){const n=t.texture,i=r.get(t),s=r.get(n);void 0!==s.__webglTexture&&(e.deleteTexture(s.__webglTexture),a.memory.textures--);t.depthTexture&&t.depthTexture.dispose();if(t.isWebGLCubeRenderTarget)for(let r=0;r<6;r++)e.deleteFramebuffer(i.__webglFramebuffer[r]),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer[r]);else{if(e.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer),i.__webglMultisampledFramebuffer&&e.deleteFramebuffer(i.__webglMultisampledFramebuffer),i.__webglColorRenderbuffer)for(let t=0;t0&&s.__version!==t.version){const e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void $(s,t,i);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(e.TEXTURE_2D,s.__webglTexture,e.TEXTURE0+i)}const q={[S]:e.REPEAT,[w]:e.CLAMP_TO_EDGE,[M]:e.MIRRORED_REPEAT},K={[C]:e.NEAREST,[T]:e.NEAREST_MIPMAP_NEAREST,[I]:e.NEAREST_MIPMAP_LINEAR,[B]:e.LINEAR,[R]:e.LINEAR_MIPMAP_NEAREST,[P]:e.LINEAR_MIPMAP_LINEAR};function J(n,s,a){if(a?(e.texParameteri(n,e.TEXTURE_WRAP_S,q[s.wrapS]),e.texParameteri(n,e.TEXTURE_WRAP_T,q[s.wrapT]),n!==e.TEXTURE_3D&&n!==e.TEXTURE_2D_ARRAY||e.texParameteri(n,e.TEXTURE_WRAP_R,q[s.wrapR]),e.texParameteri(n,e.TEXTURE_MAG_FILTER,K[s.magFilter]),e.texParameteri(n,e.TEXTURE_MIN_FILTER,K[s.minFilter])):(e.texParameteri(n,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(n,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),n!==e.TEXTURE_3D&&n!==e.TEXTURE_2D_ARRAY||e.texParameteri(n,e.TEXTURE_WRAP_R,e.CLAMP_TO_EDGE),s.wrapS===w&&s.wrapT===w||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(n,e.TEXTURE_MAG_FILTER,V(s.magFilter)),e.texParameteri(n,e.TEXTURE_MIN_FILTER,V(s.minFilter)),s.minFilter!==C&&s.minFilter!==B&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===t.has("EXT_texture_filter_anisotropic")){const a=t.get("EXT_texture_filter_anisotropic");if(s.magFilter===C)return;if(s.minFilter!==I&&s.minFilter!==P)return;if(s.type===U&&!1===t.has("OES_texture_float_linear"))return;if(!1===o&&s.type===O&&!1===t.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||r.get(s).__currentAnisotropy)&&(e.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,i.getMaxAnisotropy())),r.get(s).__currentAnisotropy=s.anisotropy)}}function Z(t,n){let r=!1;void 0===t.__webglInit&&(t.__webglInit=!0,n.addEventListener("dispose",H));const i=n.source;let s=g.get(i);void 0===s&&(s={},g.set(i,s));const o=function(e){const t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR||0),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.colorSpace),t.join()}(n);if(o!==t.__cacheKey){void 0===s[o]&&(s[o]={texture:e.createTexture(),usedTimes:0},a.memory.textures++,r=!0),s[o].usedTimes++;const i=s[t.__cacheKey];void 0!==i&&(s[t.__cacheKey].usedTimes--,0===i.usedTimes&&W(n)),t.__cacheKey=o,t.__webglTexture=s[o].texture}return r}function $(t,i,a){let l=e.TEXTURE_2D;(i.isDataArrayTexture||i.isCompressedArrayTexture)&&(l=e.TEXTURE_2D_ARRAY),i.isData3DTexture&&(l=e.TEXTURE_3D);const c=Z(t,i),u=i.source;n.bindTexture(l,t.__webglTexture,e.TEXTURE0+a);const d=r.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(e.TEXTURE0+a),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);const t=function(e){return!o&&(e.wrapS!==w||e.wrapT!==w||e.minFilter!==C&&e.minFilter!==B)}(i)&&!1===x(i.image);let r=y(i.image,t,!1,h);r=se(i,r);const p=x(r)||o,f=s.convert(i.format,i.colorSpace);let m,g=s.convert(i.type),A=_(i.internalFormat,f,g,i.colorSpace);J(l,i,p);const v=i.mipmaps,S=o&&!0!==i.isVideoTexture,M=void 0===d.__version||!0===c,T=Q(i,r,p);if(i.isDepthTexture)A=e.DEPTH_COMPONENT,o?A=i.type===U?e.DEPTH_COMPONENT32F:i.type===F?e.DEPTH_COMPONENT24:i.type===N?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT16:i.type===U&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===G&&A===e.DEPTH_COMPONENT&&i.type!==L&&i.type!==F&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=F,g=s.convert(i.type)),i.format===z&&A===e.DEPTH_COMPONENT&&(A=e.DEPTH_STENCIL,i.type!==N&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=N,g=s.convert(i.type))),M&&(S?n.texStorage2D(e.TEXTURE_2D,1,A,r.width,r.height):n.texImage2D(e.TEXTURE_2D,0,A,r.width,r.height,0,f,g,null));else if(i.isDataTexture)if(v.length>0&&p){S&&M&&n.texStorage2D(e.TEXTURE_2D,T,A,v[0].width,v[0].height);for(let t=0,r=v.length;t>=1,i>>=1}}else if(v.length>0&&p){S&&M&&n.texStorage2D(e.TEXTURE_2D,T,A,v[0].width,v[0].height);for(let t=0,r=v.length;t=e.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,l,r.get(a).__webglTexture,0),n.bindFramebuffer(e.FRAMEBUFFER,null)}function te(t,n,r){if(e.bindRenderbuffer(e.RENDERBUFFER,t),n.depthBuffer&&!n.stencilBuffer){let i=e.DEPTH_COMPONENT16;if(r||ie(n)){const t=n.depthTexture;t&&t.isDepthTexture&&(t.type===U?i=e.DEPTH_COMPONENT32F:t.type===F&&(i=e.DEPTH_COMPONENT24));const r=re(n);ie(n)?d.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,r,i,n.width,n.height):e.renderbufferStorageMultisample(e.RENDERBUFFER,r,i,n.width,n.height)}else e.renderbufferStorage(e.RENDERBUFFER,i,n.width,n.height);e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)}else if(n.depthBuffer&&n.stencilBuffer){const i=re(n);r&&!1===ie(n)?e.renderbufferStorageMultisample(e.RENDERBUFFER,i,e.DEPTH24_STENCIL8,n.width,n.height):ie(n)?d.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,i,e.DEPTH24_STENCIL8,n.width,n.height):e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,n.width,n.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)}else{const t=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let i=0;i0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function se(e,n){const r=e.colorSpace,i=e.format,s=e.type;return!0===e.isCompressedTexture||e.format===De||r!==Te&&r!==Me&&(r===Ce?!1===o?!0===t.has("EXT_sRGB")&&i===k?(e.format=De,e.minFilter=B,e.generateMipmaps=!1):n=dt.sRGBToLinear(n):i===k&&s===D||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",r)),n}this.allocateTextureUnit=function(){const e=X;return e>=l&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+l),X+=1,e},this.resetTextureUnits=function(){X=0},this.setTexture2D=Y,this.setTexture2DArray=function(t,i){const s=r.get(t);t.version>0&&s.__version!==t.version?$(s,t,i):n.bindTexture(e.TEXTURE_2D_ARRAY,s.__webglTexture,e.TEXTURE0+i)},this.setTexture3D=function(t,i){const s=r.get(t);t.version>0&&s.__version!==t.version?$(s,t,i):n.bindTexture(e.TEXTURE_3D,s.__webglTexture,e.TEXTURE0+i)},this.setTextureCube=function(t,i){const a=r.get(t);t.version>0&&a.__version!==t.version?function(t,i,a){if(6!==i.image.length)return;const l=Z(t,i),h=i.source;n.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+a);const u=r.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(e.TEXTURE0+a),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);const t=i.isCompressedTexture||i.image[0].isCompressedTexture,r=i.image[0]&&i.image[0].isDataTexture,d=[];for(let e=0;e<6;e++)d[e]=t||r?r?i.image[e].image:i.image[e]:y(i.image[e],!1,!0,c),d[e]=se(i,d[e]);const p=d[0],f=x(p)||o,m=s.convert(i.format,i.colorSpace),g=s.convert(i.type),A=_(i.internalFormat,m,g,i.colorSpace),v=o&&!0!==i.isVideoTexture,S=void 0===u.__version||!0===l;let w,M=Q(i,p,f);if(J(e.TEXTURE_CUBE_MAP,i,f),t){v&&S&&n.texStorage2D(e.TEXTURE_CUBE_MAP,M,A,p.width,p.height);for(let t=0;t<6;t++){w=d[t].mipmaps;for(let r=0;r0&&M++,n.texStorage2D(e.TEXTURE_CUBE_MAP,M,A,d[0].width,d[0].height));for(let t=0;t<6;t++)if(r){v?n.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,0,0,d[t].width,d[t].height,m,g,d[t].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,A,d[t].width,d[t].height,0,m,g,d[t].data);for(let r=0;r0&&!1===ie(t)){const r=d?l:[l];c.__webglMultisampledFramebuffer=e.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(e.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===ie(t)){const i=t.isWebGLMultipleRenderTargets?t.texture:[t.texture],s=t.width,a=t.height;let o=e.COLOR_BUFFER_BIT;const l=[],c=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,h=r.get(t),u=!0===t.isWebGLMultipleRenderTargets;if(u)for(let t=0;to+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&(i=t.getPose(e.gripSpace,n),null!==i&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(r=t.getPose(e.targetRaySpace,n),null===r&&null!==i&&(r=i),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(ba)))}return null!==a&&(a.visible=null!==r),null!==o&&(o.visible=null!==i),null!==l&&(l.visible=null!==s),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){const n=new xa;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}}class _a extends gt{constructor(e,t,n,r,i,s,a,o,l,c){if((c=void 0!==c?c:G)!==G&&c!==z)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===G&&(n=F),void 0===n&&c===z&&(n=N),super(null,r,i,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==a?a:C,this.minFilter=void 0!==o?o:C,this.flipY=!1,this.generateMipmaps=!1}}class Sa extends Le{constructor(e,t){super();const n=this;let r=null,i=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const f=t.getContextAttributes();let m=null,g=null;const A=[],v=[],y=new Set,x=new Map,b=new Or;b.layers.enable(1),b.viewport=new At;const E=new Or;E.layers.enable(2),E.viewport=new At;const _=[b,E],S=new ya;S.layers.enable(1),S.layers.enable(2);let w=null,M=null;function C(e){const t=v.indexOf(e.inputSource);if(-1===t)return;const n=A[t];void 0!==n&&(n.update(e.inputSource,e.frame,l||s),n.dispatchEvent({type:e.type,data:e.inputSource}))}function T(){r.removeEventListener("select",C),r.removeEventListener("selectstart",C),r.removeEventListener("selectend",C),r.removeEventListener("squeeze",C),r.removeEventListener("squeezestart",C),r.removeEventListener("squeezeend",C),r.removeEventListener("end",T),r.removeEventListener("inputsourceschange",I);for(let e=0;e=0&&(v[r]=null,A[r].disconnect(n))}for(let t=0;t=v.length){v.push(n),r=e;break}if(null===v[e]){v[e]=n,r=e;break}}if(-1===r)break}const i=A[r];i&&i.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=A[e];return void 0===t&&(t=new Ea,A[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=A[e];return void 0===t&&(t=new Ea,A[e]=t),t.getGripSpace()},this.getHand=function(e){let t=A[e];return void 0===t&&(t=new Ea,A[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){i=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){a=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return r},this.setSession=async function(c){if(r=c,null!==r){if(m=e.getRenderTarget(),r.addEventListener("select",C),r.addEventListener("selectstart",C),r.addEventListener("selectend",C),r.addEventListener("squeeze",C),r.addEventListener("squeezestart",C),r.addEventListener("squeezeend",C),r.addEventListener("end",T),r.addEventListener("inputsourceschange",I),!0!==f.xrCompatible&&await t.makeXRCompatible(),void 0===r.renderState.layers||!1===e.capabilities.isWebGL2){const n={antialias:void 0!==r.renderState.layers||f.antialias,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:i};d=new XRWebGLLayer(r,t,n),r.updateRenderState({baseLayer:d}),g=new vt(d.framebufferWidth,d.framebufferHeight,{format:k,type:D,colorSpace:e.outputColorSpace,stencilBuffer:f.stencil})}else{let n=null,s=null,a=null;f.depth&&(a=f.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,n=f.stencil?z:G,s=f.stencil?N:F);const o={colorFormat:t.RGBA8,depthFormat:a,scaleFactor:i};h=new XRWebGLBinding(r,t),u=h.createProjectionLayer(o),r.updateRenderState({layers:[u]}),g=new vt(u.textureWidth,u.textureHeight,{format:k,type:D,depthTexture:new _a(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:f.stencil,colorSpace:e.outputColorSpace,samples:f.antialias?4:0});e.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await r.requestReferenceSpace(a),U.setContext(r),U.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode};const B=new Et,R=new Et;function P(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===r)return;S.near=E.near=b.near=e.near,S.far=E.far=b.far=e.far,w===S.near&&M===S.far||(r.updateRenderState({depthNear:S.near,depthFar:S.far}),w=S.near,M=S.far);const t=e.parent,n=S.cameras;P(S,t);for(let r=0;re&&(x.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else y.add(t),x.set(t,r.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(e){L=e},this.dispose=function(){}}}function wa(e,t){function n(e,t){!0===e.matrixAutoUpdate&&e.updateMatrix(),t.value.copy(e.matrix)}function r(r,i){r.opacity.value=i.opacity,i.color&&r.diffuse.value.copy(i.color),i.emissive&&r.emissive.value.copy(i.emissive).multiplyScalar(i.emissiveIntensity),i.map&&(r.map.value=i.map,n(i.map,r.mapTransform)),i.alphaMap&&(r.alphaMap.value=i.alphaMap,n(i.alphaMap,r.alphaMapTransform)),i.bumpMap&&(r.bumpMap.value=i.bumpMap,n(i.bumpMap,r.bumpMapTransform),r.bumpScale.value=i.bumpScale,i.side===o&&(r.bumpScale.value*=-1)),i.normalMap&&(r.normalMap.value=i.normalMap,n(i.normalMap,r.normalMapTransform),r.normalScale.value.copy(i.normalScale),i.side===o&&r.normalScale.value.negate()),i.displacementMap&&(r.displacementMap.value=i.displacementMap,n(i.displacementMap,r.displacementMapTransform),r.displacementScale.value=i.displacementScale,r.displacementBias.value=i.displacementBias),i.emissiveMap&&(r.emissiveMap.value=i.emissiveMap,n(i.emissiveMap,r.emissiveMapTransform)),i.specularMap&&(r.specularMap.value=i.specularMap,n(i.specularMap,r.specularMapTransform)),i.alphaTest>0&&(r.alphaTest.value=i.alphaTest);const s=t.get(i).envMap;if(s&&(r.envMap.value=s,r.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,r.reflectivity.value=i.reflectivity,r.ior.value=i.ior,r.refractionRatio.value=i.refractionRatio),i.lightMap){r.lightMap.value=i.lightMap;const t=!0===e.useLegacyLights?Math.PI:1;r.lightMapIntensity.value=i.lightMapIntensity*t,n(i.lightMap,r.lightMapTransform)}i.aoMap&&(r.aoMap.value=i.aoMap,r.aoMapIntensity.value=i.aoMapIntensity,n(i.aoMap,r.aoMapTransform))}return{refreshFogUniforms:function(t,n){n.color.getRGB(t.fogColor.value,Dr(e)),n.isFog?(t.fogNear.value=n.near,t.fogFar.value=n.far):n.isFogExp2&&(t.fogDensity.value=n.density)},refreshMaterialUniforms:function(e,i,s,a,l){i.isMeshBasicMaterial||i.isMeshLambertMaterial?r(e,i):i.isMeshToonMaterial?(r(e,i),function(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,i)):i.isMeshPhongMaterial?(r(e,i),function(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,i)):i.isMeshStandardMaterial?(r(e,i),function(e,r){e.metalness.value=r.metalness,r.metalnessMap&&(e.metalnessMap.value=r.metalnessMap,n(r.metalnessMap,e.metalnessMapTransform));e.roughness.value=r.roughness,r.roughnessMap&&(e.roughnessMap.value=r.roughnessMap,n(r.roughnessMap,e.roughnessMapTransform));const i=t.get(r).envMap;i&&(e.envMapIntensity.value=r.envMapIntensity)}(e,i),i.isMeshPhysicalMaterial&&function(e,t,r){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap,n(t.sheenColorMap,e.sheenColorMapTransform)),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap,n(t.sheenRoughnessMap,e.sheenRoughnessMapTransform)));t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap,n(t.clearcoatMap,e.clearcoatMapTransform)),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap,n(t.clearcoatRoughnessMap,e.clearcoatRoughnessMapTransform)),t.clearcoatNormalMap&&(e.clearcoatNormalMap.value=t.clearcoatNormalMap,n(t.clearcoatNormalMap,e.clearcoatNormalMapTransform),e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),t.side===o&&e.clearcoatNormalScale.value.negate()));t.iridescence>0&&(e.iridescence.value=t.iridescence,e.iridescenceIOR.value=t.iridescenceIOR,e.iridescenceThicknessMinimum.value=t.iridescenceThicknessRange[0],e.iridescenceThicknessMaximum.value=t.iridescenceThicknessRange[1],t.iridescenceMap&&(e.iridescenceMap.value=t.iridescenceMap,n(t.iridescenceMap,e.iridescenceMapTransform)),t.iridescenceThicknessMap&&(e.iridescenceThicknessMap.value=t.iridescenceThicknessMap,n(t.iridescenceThicknessMap,e.iridescenceThicknessMapTransform)));t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=r.texture,e.transmissionSamplerSize.value.set(r.width,r.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap,n(t.transmissionMap,e.transmissionMapTransform)),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap,n(t.thicknessMap,e.thicknessMapTransform)),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor));e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap,n(t.specularColorMap,e.specularColorMapTransform));t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap,n(t.specularIntensityMap,e.specularIntensityMapTransform))}(e,i,l)):i.isMeshMatcapMaterial?(r(e,i),function(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,i)):i.isMeshDepthMaterial?r(e,i):i.isMeshDistanceMaterial?(r(e,i),function(e,n){const r=t.get(n).light;e.referencePosition.value.setFromMatrixPosition(r.matrixWorld),e.nearDistance.value=r.shadow.camera.near,e.farDistance.value=r.shadow.camera.far}(e,i)):i.isMeshNormalMaterial?r(e,i):i.isLineBasicMaterial?(function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,t.map&&(e.map.value=t.map,n(t.map,e.mapTransform))}(e,i),i.isLineDashedMaterial&&function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,i)):i.isPointsMaterial?function(e,t,r,i){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*r,e.scale.value=.5*i,t.map&&(e.map.value=t.map,n(t.map,e.uvTransform));t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,i,s,a):i.isSpriteMaterial?function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map,n(t.map,e.mapTransform));t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,i):i.isShadowMaterial?(e.color.value.copy(i.color),e.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function Ma(e,t,n,r){let i={},s={},a=[];const o=n.isWebGL2?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(e,t,n){const r=e.value;if(void 0===n[t]){if("number"==typeof r)n[t]=r;else{const e=Array.isArray(r)?r:[r],i=[];for(let t=0;t0){i=n%r;0!==i&&r-i-a.boundary<0&&(n+=r-i,e.__offset=n)}n+=a.storage}i=n%r,i>0&&(n+=r-i);e.__size=n,e.__cache={}}(n),d=function(t){const n=function(){for(let e=0;e0&&function(e,t,n,r){if(null===W){const e=Z.isWebGL2;W=new vt(1024,1024,{generateMipmaps:!0,type:J.has("EXT_color_buffer_half_float")?O:D,minFilter:P,samples:e&&!0===c?4:0})}const i=x.getRenderTarget();x.setRenderTarget(W),x.clear();const s=x.toneMapping;x.toneMapping=d,Oe(e,n,r),ne.updateMultisampleRenderTarget(W),ne.updateRenderTargetMipmap(W);let a=!1;for(let l=0,c=t.length;l0&&Oe(i,t,n),s.length>0&&Oe(s,t,n),a.length>0&&Oe(a,t,n),$.buffers.depth.setTest(!0),$.buffers.depth.setMask(!0),$.buffers.color.setMask(!0),$.setPolygonOffset(!1)}function Oe(e,t,n){const r=!0===t.isScene?t.overrideMaterial:null;for(let i=0,s=e.length;i0?y[y.length-1]:null,v.pop(),g=v.length>0?v[v.length-1]:null},this.getActiveCubeFace=function(){return E},this.getActiveMipmapLevel=function(){return _},this.getRenderTarget=function(){return S},this.setRenderTargetTextures=function(e,t,n){te.get(e.texture).__webglTexture=t,te.get(e.depthTexture).__webglTexture=n;const r=te.get(e);r.__hasExternalTextures=!0,r.__hasExternalTextures&&(r.__autoAllocateDepthBuffer=void 0===n,r.__autoAllocateDepthBuffer||!0===J.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),r.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){const n=te.get(e);n.__webglFramebuffer=t,n.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,n=0){S=e,E=t,_=n;let r=!0,i=null,s=!1,a=!1;if(e){const n=te.get(e);void 0!==n.__useDefaultFramebuffer?($.bindFramebuffer(be.FRAMEBUFFER,null),r=!1):void 0===n.__webglFramebuffer?ne.setupRenderTarget(e):n.__hasExternalTextures&&ne.rebindTextures(e,te.get(e.texture).__webglTexture,te.get(e.depthTexture).__webglTexture);const o=e.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=te.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(i=l[t],s=!0):i=Z.isWebGL2&&e.samples>0&&!1===ne.useMultisampledRTT(e)?te.get(e).__webglMultisampledFramebuffer:l,C.copy(e.viewport),T.copy(e.scissor),I=e.scissorTest}else C.copy(G).multiplyScalar(L).floor(),T.copy(z).multiplyScalar(L).floor(),I=Q;if($.bindFramebuffer(be.FRAMEBUFFER,i)&&Z.drawBuffers&&r&&$.drawBuffers(e,i),$.viewport(C),$.scissor(T),$.setScissorTest(I),s){const r=te.get(e.texture);be.framebufferTexture2D(be.FRAMEBUFFER,be.COLOR_ATTACHMENT0,be.TEXTURE_CUBE_MAP_POSITIVE_X+t,r.__webglTexture,n)}else if(a){const r=te.get(e.texture),i=t||0;be.framebufferTextureLayer(be.FRAMEBUFFER,be.COLOR_ATTACHMENT0,r.__webglTexture,n||0,i)}w=-1},this.readRenderTargetPixels=function(e,t,n,r,i,s,a){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=te.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){$.bindFramebuffer(be.FRAMEBUFFER,o);try{const a=e.texture,o=a.format,l=a.type;if(o!==k&&ve.convert(o)!==be.getParameter(be.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===O&&(J.has("EXT_color_buffer_half_float")||Z.isWebGL2&&J.has("EXT_color_buffer_float"));if(!(l===D||ve.convert(l)===be.getParameter(be.IMPLEMENTATION_COLOR_READ_TYPE)||l===U&&(Z.isWebGL2||J.has("OES_texture_float")||J.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-r&&n>=0&&n<=e.height-i&&be.readPixels(t,n,r,i,ve.convert(o),ve.convert(l),s)}finally{const e=null!==S?te.get(S).__webglFramebuffer:null;$.bindFramebuffer(be.FRAMEBUFFER,e)}}},this.copyFramebufferToTexture=function(e,t,n=0){const r=Math.pow(2,-n),i=Math.floor(t.image.width*r),s=Math.floor(t.image.height*r);ne.setTexture2D(t,0),be.copyTexSubImage2D(be.TEXTURE_2D,n,0,0,e.x,e.y,i,s),$.unbindTexture()},this.copyTextureToTexture=function(e,t,n,r=0){const i=t.image.width,s=t.image.height,a=ve.convert(n.format),o=ve.convert(n.type);ne.setTexture2D(n,0),be.pixelStorei(be.UNPACK_FLIP_Y_WEBGL,n.flipY),be.pixelStorei(be.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),be.pixelStorei(be.UNPACK_ALIGNMENT,n.unpackAlignment),t.isDataTexture?be.texSubImage2D(be.TEXTURE_2D,r,e.x,e.y,i,s,a,o,t.image.data):t.isCompressedTexture?be.compressedTexSubImage2D(be.TEXTURE_2D,r,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,a,t.mipmaps[0].data):be.texSubImage2D(be.TEXTURE_2D,r,e.x,e.y,a,o,t.image),0===r&&n.generateMipmaps&&be.generateMipmap(be.TEXTURE_2D),$.unbindTexture()},this.copyTextureToTexture3D=function(e,t,n,r,i=0){if(x.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=e.max.x-e.min.x+1,a=e.max.y-e.min.y+1,o=e.max.z-e.min.z+1,l=ve.convert(r.format),c=ve.convert(r.type);let h;if(r.isData3DTexture)ne.setTexture3D(r,0),h=be.TEXTURE_3D;else{if(!r.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");ne.setTexture2DArray(r,0),h=be.TEXTURE_2D_ARRAY}be.pixelStorei(be.UNPACK_FLIP_Y_WEBGL,r.flipY),be.pixelStorei(be.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),be.pixelStorei(be.UNPACK_ALIGNMENT,r.unpackAlignment);const u=be.getParameter(be.UNPACK_ROW_LENGTH),d=be.getParameter(be.UNPACK_IMAGE_HEIGHT),p=be.getParameter(be.UNPACK_SKIP_PIXELS),f=be.getParameter(be.UNPACK_SKIP_ROWS),m=be.getParameter(be.UNPACK_SKIP_IMAGES),g=n.isCompressedTexture?n.mipmaps[0]:n.image;be.pixelStorei(be.UNPACK_ROW_LENGTH,g.width),be.pixelStorei(be.UNPACK_IMAGE_HEIGHT,g.height),be.pixelStorei(be.UNPACK_SKIP_PIXELS,e.min.x),be.pixelStorei(be.UNPACK_SKIP_ROWS,e.min.y),be.pixelStorei(be.UNPACK_SKIP_IMAGES,e.min.z),n.isDataTexture||n.isData3DTexture?be.texSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),be.compressedTexSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,g.data)):be.texSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,c,g),be.pixelStorei(be.UNPACK_ROW_LENGTH,u),be.pixelStorei(be.UNPACK_IMAGE_HEIGHT,d),be.pixelStorei(be.UNPACK_SKIP_PIXELS,p),be.pixelStorei(be.UNPACK_SKIP_ROWS,f),be.pixelStorei(be.UNPACK_SKIP_IMAGES,m),0===i&&r.generateMipmaps&&be.generateMipmap(h),$.unbindTexture()},this.initTexture=function(e){e.isCubeTexture?ne.setTextureCube(e,0):e.isData3DTexture?ne.setTexture3D(e,0):e.isDataArrayTexture||e.isCompressedArrayTexture?ne.setTexture2DArray(e,0):ne.setTexture2D(e,0),$.unbindTexture()},this.resetState=function(){E=0,_=0,S=null,$.reset(),ye.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Ce?we:Se}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===we?Ce:Te}}class Ia extends Ta{}Ia.prototype.isWebGL1Renderer=!0;class Ba{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Vn(e),this.density=t}clone(){return new Ba(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Ra{constructor(e,t=1,n=1e3){this.isFog=!0,this.name="",this.color=new Vn(e),this.near=t,this.far=n}clone(){return new Ra(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Pa extends Sn{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(e){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=e}}class Da{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=Re,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ke()}onUploadCallback(){}set needsUpdate(e){!0===e&&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 r=0,i=this.stride;re.far||t.push({distance:o,point:Na.clone(),uv:Un.getInterpolation(Na,Ha,ja,Wa,Xa,Ya,qa,new qe),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function Ja(e,t,n,r,i,s){za.subVectors(e,n).addScalar(.5).multiply(r),void 0!==i?(Qa.x=s*za.x-i*za.y,Qa.y=i*za.x+s*za.y):Qa.copy(za),e.copy(t),e.x+=Qa.x,e.y+=Qa.y,e.applyMatrix4(Va)}const Za=new Et,$a=new Et;class eo extends Sn{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let n=0,r=t.length;n0){let n,r;for(n=1,r=t.length;n0){Za.setFromMatrixPosition(this.matrixWorld);const n=e.ray.origin.distanceTo(Za);this.getObjectForDistance(n).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Za.setFromMatrixPosition(e.matrixWorld),$a.setFromMatrixPosition(this.matrixWorld);const n=Za.distanceTo($a)/e.zoom;let r,i;for(t[0].object.visible=!0,r=1,i=t.length;r=e))break;t[r-1].object.visible=!1,t[r].object.visible=!0}for(this._currentLevel=r-1;ro)continue;u.applyMatrix4(this.matrixWorld);const s=e.ray.origin.distanceTo(u);se.far||t.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),r=Math.min(f.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const r=e.ray.origin.distanceTo(u);re.far||t.push({distance:r,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e0){const n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;ei.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:t,face:null,object:a})}}class zo extends gt{constructor(e,t,n,r,i,s,a,o,l,c,h,u){super(null,s,a,o,l,c,r,i,h,u),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class Qo{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,r=this.getPoint(0),i=0;t.push(0);for(let s=1;s<=e;s++)n=this.getPoint(s/e),i+=n.distanceTo(r),t.push(i),r=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const n=this.getLengths();let r=0;const i=n.length;let s;s=t||e*n[i-1];let a,o=0,l=i-1;for(;o<=l;)if(r=Math.floor(o+(l-o)/2),a=n[r]-s,a<0)o=r+1;else{if(!(a>0)){l=r;break}l=r-1}if(r=l,n[r]===s)return r/(i-1);const c=n[r];return(r+(s-c)/(n[r+1]-c))/(i-1)}getTangent(e,t){const n=1e-4;let r=e-n,i=e+n;r<0&&(r=0),i>1&&(i=1);const s=this.getPoint(r),a=this.getPoint(i),o=t||(s.isVector2?new qe:new Et);return o.copy(a).sub(s).normalize(),o}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){const n=new Et,r=[],i=[],s=[],a=new Et,o=new Zt;for(let d=0;d<=e;d++){const t=d/e;r[d]=this.getTangentAt(t,new Et)}i[0]=new Et,s[0]=new Et;let l=Number.MAX_VALUE;const c=Math.abs(r[0].x),h=Math.abs(r[0].y),u=Math.abs(r[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),i[0].crossVectors(r[0],a),s[0].crossVectors(r[0],i[0]);for(let d=1;d<=e;d++){if(i[d]=i[d-1].clone(),s[d]=s[d-1].clone(),a.crossVectors(r[d-1],r[d]),a.length()>Number.EPSILON){a.normalize();const e=Math.acos(Ge(r[d-1].dot(r[d]),-1,1));i[d].applyMatrix4(o.makeRotationAxis(a,e))}s[d].crossVectors(r[d],i[d])}if(!0===t){let t=Math.acos(Ge(i[0].dot(i[e]),-1,1));t/=e,r[0].dot(a.crossVectors(i[0],i[e]))>0&&(t=-t);for(let n=1;n<=e;n++)i[n].applyMatrix4(o.makeRotationAxis(r[n],t*n)),s[n].crossVectors(r[n],i[n])}return{tangents:r,normals:i,binormals:s}}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 Vo extends Qo{constructor(e=0,t=0,n=1,r=1,i=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(e,t){const n=t||new qe,r=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const s=Math.abs(i)r;)i-=r;i0?0:(Math.floor(Math.abs(l)/i)+1)*i:0===c&&l===i-1&&(l=i-2,c=1),this.closed||l>0?a=r[(l-1)%i]:(Wo.subVectors(r[0],r[1]).add(r[0]),a=Wo);const h=r[l%i],u=r[(l+1)%i];if(this.closed||l+2r.length-2?r.length-1:s+1],h=r[s>r.length-3?r.length-1:s+2];return n.set(Jo(a,o.x,l.x,c.x,h.x),Jo(a,o.y,l.y,c.y,h.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){const e=r[i]-n,s=this.curves[i],a=s.getLength(),o=0===a?0:1-e/a;return s.getPointAt(o,t)}i++}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,r=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 e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),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 hl extends hr{constructor(e=[new qe(0,-.5),new qe(.5,0),new qe(0,.5)],t=12,n=0,r=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:r},t=Math.floor(t),r=Ge(r,0,2*Math.PI);const i=[],s=[],a=[],o=[],l=[],c=1/t,h=new Et,u=new qe,d=new Et,p=new Et,f=new Et;let m=0,g=0;for(let A=0;A<=e.length-1;A++)switch(A){case 0:m=e[A+1].x-e[A].x,g=e[A+1].y-e[A].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[A+1].x-e[A].x,g=e[A+1].y-e[A].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let A=0;A<=t;A++){const i=n+A*c*r,d=Math.sin(i),p=Math.cos(i);for(let n=0;n<=e.length-1;n++){h.x=e[n].x*d,h.y=e[n].y,h.z=e[n].x*p,s.push(h.x,h.y,h.z),u.x=A/t,u.y=n/(e.length-1),a.push(u.x,u.y);const r=o[3*n+0]*d,i=o[3*n+1],c=o[3*n+0]*p;l.push(r,i,c)}}for(let A=0;A0&&A(!0),t>0&&A(!1)),this.setIndex(c),this.setAttribute("position",new nr(h,3)),this.setAttribute("normal",new nr(u,3)),this.setAttribute("uv",new nr(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new pl(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class fl extends pl{constructor(e=1,t=1,n=32,r=1,i=!1,s=0,a=2*Math.PI){super(0,e,t,n,r,i,s,a),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:s,thetaLength:a}}static fromJSON(e){return new fl(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class ml extends hr{constructor(e=[],t=[],n=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:r};const i=[],s=[];function a(e,t,n,r){const i=r+1,s=[];for(let a=0;a<=i;a++){s[a]=[];const r=e.clone().lerp(n,a/i),o=t.clone().lerp(n,a/i),l=i-a;for(let e=0;e<=l;e++)s[a][e]=0===e&&a===i?r:r.clone().lerp(o,e/l)}for(let a=0;a.9&&a<.1&&(t<.2&&(s[e+0]+=1),n<.2&&(s[e+2]+=1),r<.2&&(s[e+4]+=1))}}()}(),this.setAttribute("position",new nr(i,3)),this.setAttribute("normal",new nr(i.slice(),3)),this.setAttribute("uv",new nr(s,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new ml(e.vertices,e.indices,e.radius,e.details)}}class gl extends ml{constructor(e=1,t=0){const n=(1+Math.sqrt(5))/2,r=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-n,0,-r,n,0,r,-n,0,r,n,-r,-n,0,-r,n,0,r,-n,0,r,n,0,-n,0,-r,n,0,-r,-n,0,r,n,0,r],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new gl(e.radius,e.detail)}}const Al=new Et,vl=new Et,yl=new Et,xl=new Un;class bl extends hr{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const n=4,r=Math.pow(10,n),i=Math.cos(Oe*t),s=e.getIndex(),a=e.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let e=0;e80*n){o=c=e[0],l=h=e[1];for(let t=n;tc&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Ml(s,a,n,o,l,p,0),a};function Sl(e,t,n,r,i){let s,a;if(i===function(e,t,n,r){let i=0;for(let s=t,a=n-r;s0)for(s=t;s=t;s-=r)a=jl(s,e[s],e[s+1],a);return a&&kl(a,a.next)&&(Wl(a),a=a.next),a}function wl(e,t){if(!e)return e;t||(t=e);let n,r=e;do{if(n=!1,r.steiner||!kl(r,r.next)&&0!==Nl(r.prev,r,r.next))r=r.next;else{if(Wl(r),r=t=r.prev,r===r.next)break;n=!0}}while(n||r!==t);return t}function Ml(e,t,n,r,i,s,a){if(!e)return;!a&&s&&function(e,t,n,r){let i=e;do{0===i.z&&(i.z=Ll(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){let t,n,r,i,s,a,o,l,c=1;do{for(n=e,e=null,s=null,a=0;n;){for(a++,r=n,o=0,t=0;t0||l>0&&r;)0!==o&&(0===l||!r||n.z<=r.z)?(i=n,n=n.nextZ,o--):(i=r,r=r.nextZ,l--),s?s.nextZ=i:e=i,i.prevZ=s,s=i;n=r}s.nextZ=null,c*=2}while(a>1)}(i)}(e,r,i,s);let o,l,c=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,s?Tl(e,r,i,s):Cl(e))t.push(o.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),Wl(e),e=l.next,c=l.next;else if((e=l)===c){a?1===a?Ml(e=Il(wl(e),t,n),t,n,r,i,s,2):2===a&&Bl(e,t,n,r,i,s):Ml(wl(e),t,n,r,i,s,1);break}}function Cl(e){const t=e.prev,n=e,r=e.next;if(Nl(t,n,r)>=0)return!1;const i=t.x,s=n.x,a=r.x,o=t.y,l=n.y,c=r.y,h=is?i>a?i:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let f=r.next;for(;f!==t;){if(f.x>=h&&f.x<=d&&f.y>=u&&f.y<=p&&Ul(i,o,s,l,a,c,f.x,f.y)&&Nl(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Tl(e,t,n,r){const i=e.prev,s=e,a=e.next;if(Nl(i,s,a)>=0)return!1;const o=i.x,l=s.x,c=a.x,h=i.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,A=Ll(p,f,t,n,r),v=Ll(m,g,t,n,r);let y=e.prevZ,x=e.nextZ;for(;y&&y.z>=A&&x&&x.z<=v;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==i&&y!==a&&Ul(o,h,l,u,c,d,y.x,y.y)&&Nl(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==i&&x!==a&&Ul(o,h,l,u,c,d,x.x,x.y)&&Nl(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;y&&y.z>=A;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==i&&y!==a&&Ul(o,h,l,u,c,d,y.x,y.y)&&Nl(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;x&&x.z<=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==i&&x!==a&&Ul(o,h,l,u,c,d,x.x,x.y)&&Nl(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Il(e,t,n){let r=e;do{const i=r.prev,s=r.next.next;!kl(i,s)&&Gl(i,r,r.next,s)&&Vl(i,s)&&Vl(s,i)&&(t.push(i.i/n|0),t.push(r.i/n|0),t.push(s.i/n|0),Wl(r),Wl(r.next),r=e=s),r=r.next}while(r!==e);return wl(r)}function Bl(e,t,n,r,i,s){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&Ol(a,e)){let o=Hl(a,e);return a=wl(a,a.next),o=wl(o,o.next),Ml(a,t,n,r,i,s,0),void Ml(o,t,n,r,i,s,0)}e=e.next}a=a.next}while(a!==e)}function Rl(e,t){return e.x-t.x}function Pl(e,t){const n=function(e,t){let n,r=t,i=-1/0;const s=e.x,a=e.y;do{if(a<=r.y&&a>=r.next.y&&r.next.y!==r.y){const e=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(e<=s&&e>i&&(i=e,n=r.x=r.x&&r.x>=l&&s!==r.x&&Ul(an.x||r.x===n.x&&Dl(n,r)))&&(n=r,u=h)),r=r.next}while(r!==o);return n}(e,t);if(!n)return t;const r=Hl(n,e);return wl(r,r.next),wl(n,n.next)}function Dl(e,t){return Nl(e.prev,e,t.prev)<0&&Nl(t.next,e,e.next)<0}function Ll(e,t,n,r,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Fl(e){let t=e,n=e;do{(t.x=(e-a)*(s-o)&&(e-a)*(r-o)>=(n-a)*(t-o)&&(n-a)*(s-o)>=(i-a)*(r-o)}function Ol(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Gl(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(Vl(e,t)&&Vl(t,e)&&function(e,t){let n=e,r=!1;const i=(e.x+t.x)/2,s=(e.y+t.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&i<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(Nl(e.prev,e,t.prev)||Nl(e,t.prev,t))||kl(e,t)&&Nl(e.prev,e,e.next)>0&&Nl(t.prev,t,t.next)>0)}function Nl(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function kl(e,t){return e.x===t.x&&e.y===t.y}function Gl(e,t,n,r){const i=Ql(Nl(e,t,n)),s=Ql(Nl(e,t,r)),a=Ql(Nl(n,r,e)),o=Ql(Nl(n,r,t));return i!==s&&a!==o||(!(0!==i||!zl(e,n,t))||(!(0!==s||!zl(e,r,t))||(!(0!==a||!zl(n,e,r))||!(0!==o||!zl(n,t,r)))))}function zl(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function Ql(e){return e>0?1:e<0?-1:0}function Vl(e,t){return Nl(e.prev,e,e.next)<0?Nl(e,t,e.next)>=0&&Nl(e,e.prev,t)>=0:Nl(e,t,e.prev)<0||Nl(e,e.next,t)<0}function Hl(e,t){const n=new Xl(e.i,e.x,e.y),r=new Xl(t.i,t.x,t.y),i=e.next,s=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,s.next=r,r.prev=s,r}function jl(e,t,n,r){const i=new Xl(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Wl(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Xl(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Yl{static area(e){const t=e.length;let n=0;for(let r=t-1,i=0;i2&&e[t-1].equals(e[0])&&e.pop()}function Kl(e,t){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=t.x-o/u,f=t.y+a/u,m=((n.x-c/d-p)*c-(n.y+l/d-f)*l)/(a*c-o*l);r=p+a*m-e.x,i=f+o*m-e.y;const g=r*r+i*i;if(g<=2)return new qe(r,i);s=Math.sqrt(g/2)}else{let e=!1;a>Number.EPSILON?l>Number.EPSILON&&(e=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(c)&&(e=!0),e?(r=-o,i=a,s=Math.sqrt(h)):(r=a,i=o,s=Math.sqrt(h/2))}return new qe(r/s,i/s)}const R=[];for(let t=0,n=M.length,r=n-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),r=u*Math.sin(e*Math.PI/2)+d;for(let t=0,i=M.length;t=0;){const r=n;let i=n-1;i<0&&(i=e.length-1);for(let e=0,n=o+2*p;e0)&&d.push(t,r,a),(g!==n-1||o0!=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 iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=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.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,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}}class mc extends Nn{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Vn(16777215),this.specular=new Vn(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=c,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(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.fog=e.fog,this}}class gc extends Nn{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Vn(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(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.fog=e.fog,this}}class Ac extends Nn{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=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}}class vc extends Nn{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Vn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Vn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=c,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(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.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.fog=e.fog,this}}class yc extends Nn{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Vn(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,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.fog=e.fog,this}}class xc extends _o{constructor(e){super(),this.isLineDashedMaterial=!0,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}}function bc(e,t,n){return _c(e)?new e.constructor(e.subarray(t,void 0!==n?n:e.length)):e.slice(t,n)}function Ec(e,t,n){return!e||!n&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)}function _c(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Sc(e){const t=e.length,n=new Array(t);for(let r=0;r!==t;++r)n[r]=r;return n.sort((function(t,n){return e[t]-e[n]})),n}function wc(e,t,n){const r=e.length,i=new e.constructor(r);for(let s=0,a=0;a!==r;++s){const r=n[s]*t;for(let n=0;n!==t;++n)i[a++]=e[r+n]}return i}function Mc(e,t,n,r){let i=1,s=e[0];for(;void 0!==s&&void 0===s[r];)s=e[i++];if(void 0===s)return;let a=s[r];if(void 0!==a)if(Array.isArray(a))do{a=s[r],void 0!==a&&(t.push(s.time),n.push.apply(n,a)),s=e[i++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[r],void 0!==a&&(t.push(s.time),a.toArray(n,n.length)),s=e[i++]}while(void 0!==s);else do{a=s[r],void 0!==a&&(t.push(s.time),n.push(a)),s=e[i++]}while(void 0!==s)}const Cc={arraySlice:bc,convertArray:Ec,isTypedArray:_c,getKeyframeOrder:Sc,sortedArray:wc,flattenJSON:Mc,subclip:function(e,t,n,r,i=30){const s=e.clone();s.name=t;const a=[];for(let l=0;l=r)){o.push(e.times[s]);for(let n=0;ns.tracks[l].times[0]&&(o=s.tracks[l].times[0]);for(let l=0;l=t.times[u]){const e=u*l+o,n=e+l-o;d=bc(t.values,e,n)}else{const e=t.createInterpolant(),n=o,r=l-o;e.evaluate(s),d=bc(e.resultBuffer,n,r)}if("quaternion"===r){(new bt).fromArray(d).normalize().conjugate().toArray(d)}const p=i.times.length;for(let e=0;e=i)break e;{const a=t[1];e=i)break t}s=n,n=0}}for(;n>>1;et;)--s;if(++s,0!==i||s!==r){i>=s&&(s=Math.max(s,1),i=s-1);const e=this.getValueSize();this.times=bc(n,i,s),this.values=bc(this.values,i*e,s*e)}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,r=this.values,i=n.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let a=0;a!==i;a++){const t=n[a];if("number"==typeof t&&isNaN(t)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,t),e=!1;break}if(null!==s&&s>t){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,t,s),e=!1;break}s=t}if(void 0!==r&&_c(r))for(let a=0,o=r.length;a!==o;++a){const t=r[a];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,t),e=!1;break}}return e}optimize(){const e=bc(this.times),t=bc(this.values),n=this.getValueSize(),r=this.getInterpolation()===ve,i=e.length-1;let s=1;for(let a=1;a0){e[s]=e[i];for(let e=i*n,r=s*n,a=0;a!==n;++a)t[r+a]=t[e+a];++s}return s!==e.length?(this.times=bc(e,0,s),this.values=bc(t,0,s*n)):(this.times=e,this.values=t),this}clone(){const e=bc(this.times,0),t=bc(this.values,0),n=new(0,this.constructor)(this.name,e,t);return n.createInterpolant=this.createInterpolant,n}}Pc.prototype.TimeBufferType=Float32Array,Pc.prototype.ValueBufferType=Float32Array,Pc.prototype.DefaultInterpolation=Ae;class Dc extends Pc{}Dc.prototype.ValueTypeName="bool",Dc.prototype.ValueBufferType=Array,Dc.prototype.DefaultInterpolation=ge,Dc.prototype.InterpolantFactoryMethodLinear=void 0,Dc.prototype.InterpolantFactoryMethodSmooth=void 0;class Lc extends Pc{}Lc.prototype.ValueTypeName="color";class Fc extends Pc{}Fc.prototype.ValueTypeName="number";class Uc extends Tc{constructor(e,t,n,r){super(e,t,n,r)}interpolate_(e,t,n,r){const i=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-t)/(r-t);let l=e*a;for(let c=l+a;l!==c;l+=4)bt.slerpFlat(i,0,s,l-a,s,l,o);return i}}class Oc extends Pc{InterpolantFactoryMethodLinear(e){return new Uc(this.times,this.values,this.getValueSize(),e)}}Oc.prototype.ValueTypeName="quaternion",Oc.prototype.DefaultInterpolation=Ae,Oc.prototype.InterpolantFactoryMethodSmooth=void 0;class Nc extends Pc{}Nc.prototype.ValueTypeName="string",Nc.prototype.ValueBufferType=Array,Nc.prototype.DefaultInterpolation=ge,Nc.prototype.InterpolantFactoryMethodLinear=void 0,Nc.prototype.InterpolantFactoryMethodSmooth=void 0;class kc extends Pc{}kc.prototype.ValueTypeName="vector";class Gc{constructor(e,t=-1,n,r=2500){this.name=e,this.tracks=n,this.duration=t,this.blendMode=r,this.uuid=ke(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,r=1/(e.fps||1);for(let s=0,a=n.length;s!==a;++s)t.push(zc(n[s]).scale(r));const i=new this(e.name,e.duration,t,e.blendMode);return i.uuid=e.uuid,i}static toJSON(e){const t=[],n=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let i=0,s=n.length;i!==s;++i)t.push(Pc.toJSON(n[i]));return r}static CreateFromMorphTargetSequence(e,t,n,r){const i=t.length,s=[];for(let a=0;a1){const e=n[1];let i=r[e];i||(r[e]=i=[]),i.push(t)}}const s=[];for(const a in r)s.push(this.CreateFromMorphTargetSequence(a,r[a],t,n));return s}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(e,t,n,r,i){if(0!==n.length){const s=[],a=[];Mc(n,s,a,r),0!==s.length&&i.push(new e(t,s,a))}},r=[],i=e.name||"default",s=e.fps||30,a=e.blendMode;let o=e.length||-1;const l=e.hierarchy||[];for(let c=0;c{t&&t(i),this.manager.itemEnd(e)}),0),i;if(void 0!==Wc[e])return void Wc[e].push({onLoad:t,onProgress:n,onError:r});Wc[e]=[],Wc[e].push({onLoad:t,onProgress:n,onError:r});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;const n=Wc[e],r=t.body.getReader(),i=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),s=i?parseInt(i):0,a=0!==s;let o=0;const l=new ReadableStream({start(e){!function t(){r.read().then((({done:r,value:i})=>{if(r)e.close();else{o+=i.byteLength;const r=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let e=0,t=n.length;e{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,a)));case"json":return e.json();default:if(void 0===a)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(a),n=t&&t[1]?t[1].toLowerCase():void 0,r=new TextDecoder(n);return e.arrayBuffer().then((e=>r.decode(e)))}}})).then((t=>{Qc.add(e,t);const n=Wc[e];delete Wc[e];for(let e=0,r=n.length;e{const n=Wc[e];if(void 0===n)throw this.manager.itemError(e),t;delete Wc[e];for(let e=0,r=n.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class qc extends jc{constructor(e){super(e)}load(e,t,n,r){void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const i=this,s=Qc.get(e);if(void 0!==s)return i.manager.itemStart(e),setTimeout((function(){t&&t(s),i.manager.itemEnd(e)}),0),s;const a=tt("img");function o(){c(),Qc.add(e,this),t&&t(this),i.manager.itemEnd(e)}function l(t){c(),r&&r(t),i.manager.itemError(e),i.manager.itemEnd(e)}function c(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==e.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),i.manager.itemStart(e),a.src=e,a}}class Kc extends Sn{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Vn(e),this.intensity=t}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,void 0!==this.groundColor&&(t.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(t.object.distance=this.distance),void 0!==this.angle&&(t.object.angle=this.angle),void 0!==this.decay&&(t.object.decay=this.decay),void 0!==this.penumbra&&(t.object.penumbra=this.penumbra),void 0!==this.shadow&&(t.object.shadow=this.shadow.toJSON()),t}}class Jc extends Kc{constructor(e,t,n){super(e,n),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Sn.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Vn(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}}const Zc=new Zt,$c=new Et,eh=new Et;class th{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new qe(512,512),this.map=null,this.mapPass=null,this.matrix=new Zt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Yr,this._frameExtents=new qe(1,1),this._viewportCount=1,this._viewports=[new At(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const t=this.camera,n=this.matrix;$c.setFromMatrixPosition(e.matrixWorld),t.position.copy($c),eh.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(eh),t.updateMatrixWorld(),Zc.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Zc),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(Zc)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const e={};return 0!==this.bias&&(e.bias=this.bias),0!==this.normalBias&&(e.normalBias=this.normalBias),1!==this.radius&&(e.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}class nh extends th{constructor(){super(new Or(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){const t=this.camera,n=2*Ne*e.angle*this.focus,r=this.mapSize.width/this.mapSize.height,i=e.distance||t.far;n===t.fov&&r===t.aspect&&i===t.far||(t.fov=n,t.aspect=r,t.far=i,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}}class rh extends Kc{constructor(e,t,n=0,r=Math.PI/3,i=0,s=2){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(Sn.DEFAULT_UP),this.updateMatrix(),this.target=new Sn,this.distance=n,this.angle=r,this.penumbra=i,this.decay=s,this.map=null,this.shadow=new nh}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}const ih=new Zt,sh=new Et,ah=new Et;class oh extends th{constructor(){super(new Or(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new qe(4,2),this._viewportCount=6,this._viewports=[new At(2,1,1,1),new At(0,1,1,1),new At(3,1,1,1),new At(1,1,1,1),new At(3,0,1,1),new At(1,0,1,1)],this._cubeDirections=[new Et(1,0,0),new Et(-1,0,0),new Et(0,0,1),new Et(0,0,-1),new Et(0,1,0),new Et(0,-1,0)],this._cubeUps=[new Et(0,1,0),new Et(0,1,0),new Et(0,1,0),new Et(0,1,0),new Et(0,0,1),new Et(0,0,-1)]}updateMatrices(e,t=0){const n=this.camera,r=this.matrix,i=e.distance||n.far;i!==n.far&&(n.far=i,n.updateProjectionMatrix()),sh.setFromMatrixPosition(e.matrixWorld),n.position.copy(sh),ah.copy(n.position),ah.add(this._cubeDirections[t]),n.up.copy(this._cubeUps[t]),n.lookAt(ah),n.updateMatrixWorld(),r.makeTranslation(-sh.x,-sh.y,-sh.z),ih.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ih)}}class lh extends Kc{constructor(e,t,n=0,r=2){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=r,this.shadow=new oh}get power(){return 4*this.intensity*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}class ch extends th{constructor(){super(new li(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class hh extends Kc{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Sn.DEFAULT_UP),this.updateMatrix(),this.target=new Sn,this.shadow=new ch}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}class uh extends Kc{constructor(e,t){super(e,t),this.isAmbientLight=!0,this.type="AmbientLight"}}class dh extends Kc{constructor(e,t,n=10,r=10){super(e,t),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=n,this.height=r}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){return super.copy(e),this.width=e.width,this.height=e.height,this}toJSON(e){const t=super.toJSON(e);return t.object.width=this.width,t.object.height=this.height,t}}class ph{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new Et)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){const n=e.x,r=e.y,i=e.z,s=this.coefficients;return t.copy(s[0]).multiplyScalar(.282095),t.addScaledVector(s[1],.488603*r),t.addScaledVector(s[2],.488603*i),t.addScaledVector(s[3],.488603*n),t.addScaledVector(s[4],n*r*1.092548),t.addScaledVector(s[5],r*i*1.092548),t.addScaledVector(s[6],.315392*(3*i*i-1)),t.addScaledVector(s[7],n*i*1.092548),t.addScaledVector(s[8],.546274*(n*n-r*r)),t}getIrradianceAt(e,t){const n=e.x,r=e.y,i=e.z,s=this.coefficients;return t.copy(s[0]).multiplyScalar(.886227),t.addScaledVector(s[1],1.023328*r),t.addScaledVector(s[2],1.023328*i),t.addScaledVector(s[3],1.023328*n),t.addScaledVector(s[4],.858086*n*r),t.addScaledVector(s[5],.858086*r*i),t.addScaledVector(s[6],.743125*i*i-.247708),t.addScaledVector(s[7],.858086*n*i),t.addScaledVector(s[8],.429043*(n*n-r*r)),t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let n=0;n<9;n++)this.coefficients[n].addScaledVector(e.coefficients[n],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let n=0;n<9;n++)this.coefficients[n].lerp(e.coefficients[n],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0}copy(e){return this.set(e.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(e,t=0){const n=this.coefficients;for(let r=0;r<9;r++)n[r].fromArray(e,t+3*r);return this}toArray(e=[],t=0){const n=this.coefficients;for(let r=0;r<9;r++)n[r].toArray(e,t+3*r);return e}static getBasisAt(e,t){const n=e.x,r=e.y,i=e.z;t[0]=.282095,t[1]=.488603*r,t[2]=.488603*i,t[3]=.488603*n,t[4]=1.092548*n*r,t[5]=1.092548*r*i,t[6]=.315392*(3*i*i-1),t[7]=1.092548*n*i,t[8]=.546274*(n*n-r*r)}}class fh extends Kc{constructor(e=new ph,t=1){super(void 0,t),this.isLightProbe=!0,this.sh=e}copy(e){return super.copy(e),this.sh.copy(e.sh),this}fromJSON(e){return this.intensity=e.intensity,this.sh.fromArray(e.sh),this}toJSON(e){const t=super.toJSON(e);return t.object.sh=this.sh.toArray(),t}}class mh extends jc{constructor(e){super(e),this.textures={}}load(e,t,n,r){const i=this,s=new Yc(i.manager);s.setPath(i.path),s.setRequestHeader(i.requestHeader),s.setWithCredentials(i.withCredentials),s.load(e,(function(n){try{t(i.parse(JSON.parse(n)))}catch(s){r?r(s):console.error(s),i.manager.itemError(e)}}),n,r)}parse(e){const t=this.textures;function n(e){return void 0===t[e]&&console.warn("THREE.MaterialLoader: Undefined texture",e),t[e]}const r=mh.createMaterialFromType(e.type);if(void 0!==e.uuid&&(r.uuid=e.uuid),void 0!==e.name&&(r.name=e.name),void 0!==e.color&&void 0!==r.color&&r.color.setHex(e.color),void 0!==e.roughness&&(r.roughness=e.roughness),void 0!==e.metalness&&(r.metalness=e.metalness),void 0!==e.sheen&&(r.sheen=e.sheen),void 0!==e.sheenColor&&(r.sheenColor=(new Vn).setHex(e.sheenColor)),void 0!==e.sheenRoughness&&(r.sheenRoughness=e.sheenRoughness),void 0!==e.emissive&&void 0!==r.emissive&&r.emissive.setHex(e.emissive),void 0!==e.specular&&void 0!==r.specular&&r.specular.setHex(e.specular),void 0!==e.specularIntensity&&(r.specularIntensity=e.specularIntensity),void 0!==e.specularColor&&void 0!==r.specularColor&&r.specularColor.setHex(e.specularColor),void 0!==e.shininess&&(r.shininess=e.shininess),void 0!==e.clearcoat&&(r.clearcoat=e.clearcoat),void 0!==e.clearcoatRoughness&&(r.clearcoatRoughness=e.clearcoatRoughness),void 0!==e.iridescence&&(r.iridescence=e.iridescence),void 0!==e.iridescenceIOR&&(r.iridescenceIOR=e.iridescenceIOR),void 0!==e.iridescenceThicknessRange&&(r.iridescenceThicknessRange=e.iridescenceThicknessRange),void 0!==e.transmission&&(r.transmission=e.transmission),void 0!==e.thickness&&(r.thickness=e.thickness),void 0!==e.attenuationDistance&&(r.attenuationDistance=e.attenuationDistance),void 0!==e.attenuationColor&&void 0!==r.attenuationColor&&r.attenuationColor.setHex(e.attenuationColor),void 0!==e.fog&&(r.fog=e.fog),void 0!==e.flatShading&&(r.flatShading=e.flatShading),void 0!==e.blending&&(r.blending=e.blending),void 0!==e.combine&&(r.combine=e.combine),void 0!==e.side&&(r.side=e.side),void 0!==e.shadowSide&&(r.shadowSide=e.shadowSide),void 0!==e.opacity&&(r.opacity=e.opacity),void 0!==e.transparent&&(r.transparent=e.transparent),void 0!==e.alphaTest&&(r.alphaTest=e.alphaTest),void 0!==e.depthTest&&(r.depthTest=e.depthTest),void 0!==e.depthWrite&&(r.depthWrite=e.depthWrite),void 0!==e.colorWrite&&(r.colorWrite=e.colorWrite),void 0!==e.stencilWrite&&(r.stencilWrite=e.stencilWrite),void 0!==e.stencilWriteMask&&(r.stencilWriteMask=e.stencilWriteMask),void 0!==e.stencilFunc&&(r.stencilFunc=e.stencilFunc),void 0!==e.stencilRef&&(r.stencilRef=e.stencilRef),void 0!==e.stencilFuncMask&&(r.stencilFuncMask=e.stencilFuncMask),void 0!==e.stencilFail&&(r.stencilFail=e.stencilFail),void 0!==e.stencilZFail&&(r.stencilZFail=e.stencilZFail),void 0!==e.stencilZPass&&(r.stencilZPass=e.stencilZPass),void 0!==e.wireframe&&(r.wireframe=e.wireframe),void 0!==e.wireframeLinewidth&&(r.wireframeLinewidth=e.wireframeLinewidth),void 0!==e.wireframeLinecap&&(r.wireframeLinecap=e.wireframeLinecap),void 0!==e.wireframeLinejoin&&(r.wireframeLinejoin=e.wireframeLinejoin),void 0!==e.rotation&&(r.rotation=e.rotation),1!==e.linewidth&&(r.linewidth=e.linewidth),void 0!==e.dashSize&&(r.dashSize=e.dashSize),void 0!==e.gapSize&&(r.gapSize=e.gapSize),void 0!==e.scale&&(r.scale=e.scale),void 0!==e.polygonOffset&&(r.polygonOffset=e.polygonOffset),void 0!==e.polygonOffsetFactor&&(r.polygonOffsetFactor=e.polygonOffsetFactor),void 0!==e.polygonOffsetUnits&&(r.polygonOffsetUnits=e.polygonOffsetUnits),void 0!==e.dithering&&(r.dithering=e.dithering),void 0!==e.alphaToCoverage&&(r.alphaToCoverage=e.alphaToCoverage),void 0!==e.premultipliedAlpha&&(r.premultipliedAlpha=e.premultipliedAlpha),void 0!==e.forceSinglePass&&(r.forceSinglePass=e.forceSinglePass),void 0!==e.visible&&(r.visible=e.visible),void 0!==e.toneMapped&&(r.toneMapped=e.toneMapped),void 0!==e.userData&&(r.userData=e.userData),void 0!==e.vertexColors&&("number"==typeof e.vertexColors?r.vertexColors=e.vertexColors>0:r.vertexColors=e.vertexColors),void 0!==e.uniforms)for(const i in e.uniforms){const t=e.uniforms[i];switch(r.uniforms[i]={},t.type){case"t":r.uniforms[i].value=n(t.value);break;case"c":r.uniforms[i].value=(new Vn).setHex(t.value);break;case"v2":r.uniforms[i].value=(new qe).fromArray(t.value);break;case"v3":r.uniforms[i].value=(new Et).fromArray(t.value);break;case"v4":r.uniforms[i].value=(new At).fromArray(t.value);break;case"m3":r.uniforms[i].value=(new Ke).fromArray(t.value);break;case"m4":r.uniforms[i].value=(new Zt).fromArray(t.value);break;default:r.uniforms[i].value=t.value}}if(void 0!==e.defines&&(r.defines=e.defines),void 0!==e.vertexShader&&(r.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(r.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(r.glslVersion=e.glslVersion),void 0!==e.extensions)for(const i in e.extensions)r.extensions[i]=e.extensions[i];if(void 0!==e.lights&&(r.lights=e.lights),void 0!==e.clipping&&(r.clipping=e.clipping),void 0!==e.size&&(r.size=e.size),void 0!==e.sizeAttenuation&&(r.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(r.map=n(e.map)),void 0!==e.matcap&&(r.matcap=n(e.matcap)),void 0!==e.alphaMap&&(r.alphaMap=n(e.alphaMap)),void 0!==e.bumpMap&&(r.bumpMap=n(e.bumpMap)),void 0!==e.bumpScale&&(r.bumpScale=e.bumpScale),void 0!==e.normalMap&&(r.normalMap=n(e.normalMap)),void 0!==e.normalMapType&&(r.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),r.normalScale=(new qe).fromArray(t)}return void 0!==e.displacementMap&&(r.displacementMap=n(e.displacementMap)),void 0!==e.displacementScale&&(r.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(r.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(r.roughnessMap=n(e.roughnessMap)),void 0!==e.metalnessMap&&(r.metalnessMap=n(e.metalnessMap)),void 0!==e.emissiveMap&&(r.emissiveMap=n(e.emissiveMap)),void 0!==e.emissiveIntensity&&(r.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(r.specularMap=n(e.specularMap)),void 0!==e.specularIntensityMap&&(r.specularIntensityMap=n(e.specularIntensityMap)),void 0!==e.specularColorMap&&(r.specularColorMap=n(e.specularColorMap)),void 0!==e.envMap&&(r.envMap=n(e.envMap)),void 0!==e.envMapIntensity&&(r.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(r.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(r.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(r.lightMap=n(e.lightMap)),void 0!==e.lightMapIntensity&&(r.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(r.aoMap=n(e.aoMap)),void 0!==e.aoMapIntensity&&(r.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(r.gradientMap=n(e.gradientMap)),void 0!==e.clearcoatMap&&(r.clearcoatMap=n(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(r.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(r.clearcoatNormalMap=n(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(r.clearcoatNormalScale=(new qe).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(r.iridescenceMap=n(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(r.iridescenceThicknessMap=n(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(r.transmissionMap=n(e.transmissionMap)),void 0!==e.thicknessMap&&(r.thicknessMap=n(e.thicknessMap)),void 0!==e.sheenColorMap&&(r.sheenColorMap=n(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(r.sheenRoughnessMap=n(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:uc,SpriteMaterial:Ua,RawShaderMaterial:dc,ShaderMaterial:Fr,PointsMaterial:Lo,MeshPhysicalMaterial:fc,MeshStandardMaterial:pc,MeshPhongMaterial:mc,MeshToonMaterial:gc,MeshNormalMaterial:Ac,MeshLambertMaterial:vc,MeshDepthMaterial:pa,MeshDistanceMaterial:fa,MeshBasicMaterial:jn,MeshMatcapMaterial:yc,LineDashedMaterial:xc,LineBasicMaterial:_o,Material:Nn}[e]}}class gh{static decodeText(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let r=0,i=e.length;r0){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,r,this._addIndex*t,1,t);for(let o=t,l=t+t;o!==l;++o)if(n[o]!==n[o+t]){a.setValue(n,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,r=n*this._origIndex;e.getValue(t,r);for(let i=n,s=r;i!==s;++i)t[i]=t[r+i%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=3*this.valueSize;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 s=0;s!==i;++s)e[t+s]=e[n+s]}_slerp(e,t,n,r){bt.slerpFlat(e,t,e,t,e,n,r)}_slerpAdditive(e,t,n,r,i){const s=this._workIndex*i;bt.multiplyQuaternionsFlat(e,s,e,t,e,n),bt.slerpFlat(e,t,e,t,e,s,r)}_lerp(e,t,n,r,i){const s=1-r;for(let a=0;a!==i;++a){const i=t+a;e[i]=e[i]*s+e[n+a]*r}}_lerpAdditive(e,t,n,r,i){for(let s=0;s!==i;++s){const i=t+s;e[i]=e[i]+e[n+s]*r}}}const kh="\\[\\]\\.:\\/",Gh=new RegExp("["+kh+"]","g"),zh="[^"+kh+"]",Qh="[^"+kh.replace("\\.","")+"]",Vh=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",zh)+/(WCOD+)?/.source.replace("WCOD",Qh)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",zh)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",zh)+"$"),Hh=["material","materials","bones","map"];class jh{constructor(e,t,n){this.path=t,this.parsedPath=n||jh.parseTrackName(t),this.node=jh.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new jh.Composite(e,t,n):new jh(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Gh,"")}static parseTrackName(e){const t=Vh.exec(e);if(null===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]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==r&&-1!==r){const e=n.nodeName.substring(r+1);-1!==Hh.indexOf(e)&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=e)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){const n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){const n=function(e){for(let r=0;r0){const e=this._interpolants,t=this._propertyBindings;if(this.blendMode===_e)for(let n=0,r=e.length;n!==r;++n)e[n].evaluate(s),t[n].accumulateAdditive(a);else for(let n=0,i=e.length;n!==i;++n)e[n].evaluate(s),t[n].accumulate(r,a)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(null!==n){const r=n.evaluate(e)[0];t*=r,e>n.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let r=this.time+e,i=this._loopCount;const s=2202===n;if(0===e)return-1===i?r:s&&1==(1&i)?t-r:r;if(2200===n){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else{if(!(r<0)){this.time=r;break e}r=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===i&&(e>=0?(i=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),r>=t||r<0){const n=Math.floor(r/t);r-=t*n,i+=Math.abs(n);const a=this.repetitions-i;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===a){const t=e<0;this._setEndings(t,!t,s)}else this._setEndings(!1,!1,s);this._loopCount=i,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=r;if(s&&1==(1&i))return t-r}return r}_setEndings(e,t,n){const r=this._interpolantSettings;n?(r.endingStart=xe,r.endingEnd=xe):(r.endingStart=e?this.zeroSlopeAtStart?xe:ye:be,r.endingEnd=t?this.zeroSlopeAtEnd?xe:ye:be)}_scheduleFading(e,t,n){const r=this._mixer,i=r.time;let s=this._weightInterpolant;null===s&&(s=r._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=i,o[0]=t,a[1]=i+e,o[1]=n,this}}const Xh=new Float32Array(1);class Yh{constructor(e){this.value=e}clone(){return new Yh(void 0===this.value.clone?this.value:this.value.clone())}}let qh=0;function Kh(e,t){return e.distance-t.distance}function Jh(e,t,n,r){if(e.layers.test(t.layers)&&e.raycast(t,n),!0===r){const r=e.children;for(let e=0,i=r.length;e=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,r=this.time+=e,i=Math.sign(e),s=this._accuIndex^=1;for(let l=0;l!==n;++l){t[l]._update(r,e,i,s)}const a=this._bindings,o=this._nActiveBindings;for(let l=0;l!==o;++l)a[l].apply(s);return this}setTime(e){this.time=0;for(let t=0;t=i){const s=i++,c=e[s];t[c.uuid]=l,e[l]=c,t[o]=s,e[s]=a;for(let e=0,t=r;e!==t;++e){const t=n[e],r=t[s],i=t[l];t[l]=r,t[s]=i}}}this.nCachedObjects_=i}uncache(){const e=this._objects,t=this._indicesByUUID,n=this._bindings,r=n.length;let i=this.nCachedObjects_,s=e.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=t[o];if(void 0!==l)if(delete t[o],l0&&(t[a.uuid]=l),e[l]=a,e.pop();for(let e=0,t=r;e!==t;++e){const t=n[e];t[l]=t[i],t.pop()}}}this.nCachedObjects_=i}subscribe_(e,t){const n=this._bindingsIndicesByPath;let r=n[e];const i=this._bindings;if(void 0!==r)return i[r];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);r=i.length,n[e]=r,s.push(e),a.push(t),i.push(h);for(let u=c,d=o.length;u!==d;++u){const n=o[u];h[u]=new jh(n,e,t)}return h}unsubscribe_(e){const t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){const r=this._paths,i=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];t[e[a]]=n,s[n]=o,s.pop(),i[n]=i[a],i.pop(),r[n]=r[a],r.pop()}}},t.AnimationUtils=Cc,t.ArcCurve=Ho,t.ArrayCamera=ya,t.ArrowHelper=class extends Sn{constructor(e=new Et(0,0,1),t=new Et(0,0,0),n=1,r=16776960,i=.2*n,s=.2*i){super(),this.type="ArrowHelper",void 0===Au&&(Au=new hr,Au.setAttribute("position",new nr([0,0,0,0,1,0],3)),vu=new pl(0,.5,1,5,1),vu.translate(0,-.5,0)),this.position.copy(t),this.line=new Io(Au,new _o({color:r,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Tr(vu,new jn({color:r,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(e),this.setLength(n,i,s)}setDirection(e){if(e.y>.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{gu.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(gu,t)}}setLength(e,t=.2*e,n=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},t.Audio=Dh,t.AudioAnalyser=class{constructor(e,t=2048){this.analyser=e.context.createAnalyser(),this.analyser.fftSize=t,this.data=new Uint8Array(this.analyser.frequencyBinCount),e.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let e=0;const t=this.getFrequencyData();for(let n=0;nthis.max.x||e.ythis.max.y)}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}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))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Zh).distanceTo(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}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)}},t.Box3=wt,t.Box3Helper=class extends Po{constructor(e,t=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new hr;r.setIndex(new $n(n,1)),r.setAttribute("position",new nr([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(r,new _o({color:t,toneMapped:!1})),this.box=e,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(e){const t=this.box;t.isEmpty()||(t.getCenter(this.position),t.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(e))}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BoxBufferGeometry=class extends Br{constructor(e,t,n,r,i,s){console.warn("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(e,t,n,r,i,s)}},t.BoxGeometry=Br,t.BoxHelper=class extends Po{constructor(e,t=16776960){const n=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new Float32Array(24),i=new hr;i.setIndex(new $n(n,1)),i.setAttribute("position",new $n(r,3)),super(i,new _o({color:t,toneMapped:!1})),this.object=e,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(e){if(void 0!==e&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&mu.setFromObject(this.object),mu.isEmpty())return;const t=mu.min,n=mu.max,r=this.geometry.attributes.position,i=r.array;i[0]=n.x,i[1]=n.y,i[2]=n.z,i[3]=t.x,i[4]=n.y,i[5]=n.z,i[6]=t.x,i[7]=t.y,i[8]=n.z,i[9]=n.x,i[10]=t.y,i[11]=n.z,i[12]=n.x,i[13]=n.y,i[14]=t.z,i[15]=t.x,i[16]=n.y,i[17]=t.z,i[18]=t.x,i[19]=t.y,i[20]=t.z,i[21]=n.x,i[22]=t.y,i[23]=t.z,r.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(e){return this.object=e,this.update(),this}copy(e,t){return super.copy(e,t),this.object=e.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BufferAttribute=$n,t.BufferGeometry=hr,t.BufferGeometryLoader=vh,t.ByteType=1010,t.Cache=Qc,t.Camera=Ur,t.CameraHelper=class extends Po{constructor(e){const t=new hr,n=new _o({color:16777215,vertexColors:!0,toneMapped:!1}),r=[],i=[],s={};function a(e,t){o(e),o(t)}function o(e){r.push(0,0,0),i.push(0,0,0),void 0===s[e]&&(s[e]=[]),s[e].push(r.length/3-1)}a("n1","n2"),a("n2","n4"),a("n4","n3"),a("n3","n1"),a("f1","f2"),a("f2","f4"),a("f4","f3"),a("f3","f1"),a("n1","f1"),a("n2","f2"),a("n3","f3"),a("n4","f4"),a("p","n1"),a("p","n2"),a("p","n3"),a("p","n4"),a("u1","u2"),a("u2","u3"),a("u3","u1"),a("c","t"),a("p","c"),a("cn1","cn2"),a("cn3","cn4"),a("cf1","cf2"),a("cf3","cf4"),t.setAttribute("position",new nr(r,3)),t.setAttribute("color",new nr(i,3)),super(t,n),this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const l=new Vn(16755200),c=new Vn(16711680),h=new Vn(43775),u=new Vn(16777215),d=new Vn(3355443);this.setColors(l,c,h,u,d)}setColors(e,t,n,r,i){const s=this.geometry.getAttribute("color");s.setXYZ(0,e.r,e.g,e.b),s.setXYZ(1,e.r,e.g,e.b),s.setXYZ(2,e.r,e.g,e.b),s.setXYZ(3,e.r,e.g,e.b),s.setXYZ(4,e.r,e.g,e.b),s.setXYZ(5,e.r,e.g,e.b),s.setXYZ(6,e.r,e.g,e.b),s.setXYZ(7,e.r,e.g,e.b),s.setXYZ(8,e.r,e.g,e.b),s.setXYZ(9,e.r,e.g,e.b),s.setXYZ(10,e.r,e.g,e.b),s.setXYZ(11,e.r,e.g,e.b),s.setXYZ(12,e.r,e.g,e.b),s.setXYZ(13,e.r,e.g,e.b),s.setXYZ(14,e.r,e.g,e.b),s.setXYZ(15,e.r,e.g,e.b),s.setXYZ(16,e.r,e.g,e.b),s.setXYZ(17,e.r,e.g,e.b),s.setXYZ(18,e.r,e.g,e.b),s.setXYZ(19,e.r,e.g,e.b),s.setXYZ(20,e.r,e.g,e.b),s.setXYZ(21,e.r,e.g,e.b),s.setXYZ(22,e.r,e.g,e.b),s.setXYZ(23,e.r,e.g,e.b),s.setXYZ(24,t.r,t.g,t.b),s.setXYZ(25,t.r,t.g,t.b),s.setXYZ(26,t.r,t.g,t.b),s.setXYZ(27,t.r,t.g,t.b),s.setXYZ(28,t.r,t.g,t.b),s.setXYZ(29,t.r,t.g,t.b),s.setXYZ(30,t.r,t.g,t.b),s.setXYZ(31,t.r,t.g,t.b),s.setXYZ(32,n.r,n.g,n.b),s.setXYZ(33,n.r,n.g,n.b),s.setXYZ(34,n.r,n.g,n.b),s.setXYZ(35,n.r,n.g,n.b),s.setXYZ(36,n.r,n.g,n.b),s.setXYZ(37,n.r,n.g,n.b),s.setXYZ(38,r.r,r.g,r.b),s.setXYZ(39,r.r,r.g,r.b),s.setXYZ(40,i.r,i.g,i.b),s.setXYZ(41,i.r,i.g,i.b),s.setXYZ(42,i.r,i.g,i.b),s.setXYZ(43,i.r,i.g,i.b),s.setXYZ(44,i.r,i.g,i.b),s.setXYZ(45,i.r,i.g,i.b),s.setXYZ(46,i.r,i.g,i.b),s.setXYZ(47,i.r,i.g,i.b),s.setXYZ(48,i.r,i.g,i.b),s.setXYZ(49,i.r,i.g,i.b),s.needsUpdate=!0}update(){const e=this.geometry,t=this.pointMap;pu.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),fu("c",t,e,pu,0,0,-1),fu("t",t,e,pu,0,0,1),fu("n1",t,e,pu,-1,-1,-1),fu("n2",t,e,pu,1,-1,-1),fu("n3",t,e,pu,-1,1,-1),fu("n4",t,e,pu,1,1,-1),fu("f1",t,e,pu,-1,-1,1),fu("f2",t,e,pu,1,-1,1),fu("f3",t,e,pu,-1,1,1),fu("f4",t,e,pu,1,1,1),fu("u1",t,e,pu,.7,1.1,-1),fu("u2",t,e,pu,-.7,1.1,-1),fu("u3",t,e,pu,0,2,-1),fu("cf1",t,e,pu,-1,0,1),fu("cf2",t,e,pu,1,0,1),fu("cf3",t,e,pu,0,-1,1),fu("cf4",t,e,pu,0,1,1),fu("cn1",t,e,pu,-1,0,-1),fu("cn2",t,e,pu,1,0,-1),fu("cn3",t,e,pu,0,-1,-1),fu("cn4",t,e,pu,0,1,-1),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasTexture=class extends gt{constructor(e,t,n,r,i,s,a,o,l){super(e,t,n,r,i,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},t.CapsuleBufferGeometry=class extends ul{constructor(e,t,n,r){console.warn("THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry."),super(e,t,n,r)}},t.CapsuleGeometry=ul,t.CatmullRomCurve3=Ko,t.CineonToneMapping=m,t.CircleBufferGeometry=class extends dl{constructor(e,t,n,r){console.warn("THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry."),super(e,t,n,r)}},t.CircleGeometry=dl,t.ClampToEdgeWrapping=w,t.Clock=Ch,t.Color=Vn,t.ColorKeyframeTrack=Lc,t.ColorManagement=ht,t.CompressedArrayTexture=class extends zo{constructor(e,t,n,r,i,s){super(e,t,n,i,s),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=w}},t.CompressedTexture=zo,t.CompressedTextureLoader=class extends jc{constructor(e){super(e)}load(e,t,n,r){const i=this,s=[],a=new zo,o=new Yc(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(i.withCredentials);let l=0;function c(c){o.load(e[c],(function(e){const n=i.parse(e,!0);s[c]={width:n.width,height:n.height,format:n.format,mipmaps:n.mipmaps},l+=1,6===l&&(1===n.mipmapCount&&(a.minFilter=B),a.image=s,a.format=n.format,a.needsUpdate=!0,t&&t(a))}),n,r)}if(Array.isArray(e))for(let h=0,u=e.length;h0){const n=new Vc(t);i=new qc(n),i.setCrossOrigin(this.crossOrigin);for(let t=0,i=e.length;t0){r=new qc(this.manager),r.setCrossOrigin(this.crossOrigin);for(let t=0,r=e.length;t1)for(let c=0;cNumber.EPSILON){if(l<0&&(n=t[s],o=-o,a=t[i],l=-l),e.ya.y)continue;if(e.y===n.y){if(e.x===n.x)return!0}else{const t=l*(e.x-n.x)-o*(e.y-n.y);if(0===t)return!0;if(t<0)continue;r=!r}}else{if(e.y!==n.y)continue;if(a.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=a.x)return!0}}return r}const n=Yl.isClockWise,r=this.subPaths;if(0===r.length)return[];let i,s,a;const o=[];if(1===r.length)return s=r[0],a=new El,a.curves=s.curves,o.push(a),o;let l=!n(r[0].getPoints());l=e?!l:l;const c=[],h=[];let u,d,p=[],f=0;h[f]=void 0,p[f]=[];for(let m=0,g=r.length;m1){let e=!1,n=0;for(let t=0,r=h.length;t0&&!1===e&&(p=c)}for(let m=0,g=h.length;m=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},t.WebGL1Renderer=Ia,t.WebGL3DRenderTarget=class extends vt{constructor(e=1,t=1,n=1){super(e,t),this.isWebGL3DRenderTarget=!0,this.depth=n,this.texture=new xt(null,e,t,n),this.texture.isRenderTargetTexture=!0}},t.WebGLArrayRenderTarget=class extends vt{constructor(e=1,t=1,n=1){super(e,t),this.isWebGLArrayRenderTarget=!0,this.depth=n,this.texture=new yt(null,e,t,n),this.texture.isRenderTargetTexture=!0}},t.WebGLCubeRenderTarget=zr,t.WebGLMultipleRenderTargets=class extends vt{constructor(e=1,t=1,n=1,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const i=this.texture;this.texture=[];for(let s=0;s{"use strict";function r(e){let t=0,n=0;for(const a of e)t+=a.w*a.h,n=Math.max(n,a.w);e.sort(((e,t)=>t.h-e.h));const r=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),n),h:1/0}];let i=0,s=0;for(const a of e)for(let e=r.length-1;e>=0;e--){const t=r[e];if(!(a.w>t.w||a.h>t.h)){if(a.x=t.x,a.y=t.y,s=Math.max(s,a.y+a.h),i=Math.max(i,a.x+a.w),a.w===t.w&&a.h===t.h){const t=r.pop();er})},99477:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ACESFilmicToneMapping:()=>te,AddEquation:()=>S,AddOperation:()=>K,AdditiveAnimationBlendMode:()=>Bt,AdditiveBlending:()=>x,AlphaFormat:()=>De,AlwaysDepth:()=>z,AlwaysStencilFunc:()=>an,AmbientLight:()=>fd,AmbientLightProbe:()=>Rd,AnimationAction:()=>sp,AnimationClip:()=>Nu,AnimationLoader:()=>Xu,AnimationMixer:()=>op,AnimationObjectGroup:()=>ip,AnimationUtils:()=>wu,ArcCurve:()=>Qc,ArrayCamera:()=>fl,ArrowHelper:()=>Zp,Audio:()=>Vd,AudioAnalyser:()=>qd,AudioContext:()=>Td,AudioListener:()=>Qd,AudioLoader:()=>Id,AxesHelper:()=>$p,BackSide:()=>m,BasicDepthPacking:()=>Ut,BasicShadowMap:()=>h,Bone:()=>rc,BooleanKeyframeTrack:()=>Ru,Box2:()=>yp,Box3:()=>pr,Box3Helper:()=>Xp,BoxBufferGeometry:()=>tf,BoxGeometry:()=>Ss,BoxHelper:()=>Wp,BufferAttribute:()=>Gi,BufferGeometry:()=>is,BufferGeometryLoader:()=>bd,ByteType:()=>_e,Cache:()=>Gu,Camera:()=>Bs,CameraHelper:()=>Vp,CanvasTexture:()=>kc,CapsuleBufferGeometry:()=>nf,CapsuleGeometry:()=>ch,CatmullRomCurve3:()=>Yc,CineonToneMapping:()=>ee,CircleBufferGeometry:()=>rf,CircleGeometry:()=>hh,ClampToEdgeWrapping:()=>he,Clock:()=>Ud,Color:()=>Bi,ColorKeyframeTrack:()=>Pu,ColorManagement:()=>qn,CompressedArrayTexture:()=>Nc,CompressedTexture:()=>Oc,CompressedTextureLoader:()=>Yu,ConeBufferGeometry:()=>sf,ConeGeometry:()=>dh,CubeCamera:()=>Ds,CubeReflectionMapping:()=>ie,CubeRefractionMapping:()=>se,CubeTexture:()=>Ls,CubeTextureLoader:()=>Ku,CubeUVReflectionMapping:()=>le,CubicBezierCurve:()=>Zc,CubicBezierCurve3:()=>$c,CubicInterpolant:()=>Cu,CullFaceBack:()=>o,CullFaceFront:()=>l,CullFaceFrontBack:()=>c,CullFaceNone:()=>a,Curve:()=>Gc,CurvePath:()=>ah,CustomBlending:()=>_,CustomToneMapping:()=>ne,CylinderBufferGeometry:()=>af,CylinderGeometry:()=>uh,Cylindrical:()=>Ap,Data3DTexture:()=>ar,DataArrayTexture:()=>ir,DataTexture:()=>ic,DataTextureLoader:()=>Ju,DataUtils:()=>Oi,DecrementStencilOp:()=>Yt,DecrementWrapStencilOp:()=>Kt,DefaultLoadingManager:()=>Qu,DepthFormat:()=>Oe,DepthStencilFormat:()=>Ne,DepthTexture:()=>vl,DirectionalLight:()=>pd,DirectionalLightHelper:()=>Gp,DiscreteInterpolant:()=>Iu,DisplayP3ColorSpace:()=>Vt,DodecahedronBufferGeometry:()=>of,DodecahedronGeometry:()=>fh,DoubleSide:()=>g,DstAlphaFactor:()=>F,DstColorFactor:()=>O,DynamicCopyUsage:()=>fn,DynamicDrawUsage:()=>ln,DynamicReadUsage:()=>un,EdgesGeometry:()=>yh,EllipseCurve:()=>zc,EqualDepth:()=>H,EqualStencilFunc:()=>en,EquirectangularReflectionMapping:()=>ae,EquirectangularRefractionMapping:()=>oe,Euler:()=>Kr,EventDispatcher:()=>yn,ExtrudeBufferGeometry:()=>lf,ExtrudeGeometry:()=>qh,FileLoader:()=>Wu,Float16BufferAttribute:()=>Yi,Float32BufferAttribute:()=>qi,Float64BufferAttribute:()=>Ki,FloatType:()=>Te,Fog:()=>Ml,FogExp2:()=>wl,FramebufferTexture:()=>Uc,FrontSide:()=>f,Frustum:()=>Qs,GLBufferAttribute:()=>dp,GLSL1:()=>gn,GLSL3:()=>An,GreaterDepth:()=>W,GreaterEqualDepth:()=>j,GreaterEqualStencilFunc:()=>sn,GreaterStencilFunc:()=>nn,GridHelper:()=>Fp,Group:()=>ml,HalfFloatType:()=>Ie,HemisphereLight:()=>ed,HemisphereLightHelper:()=>Lp,HemisphereLightProbe:()=>Bd,IcosahedronBufferGeometry:()=>cf,IcosahedronGeometry:()=>Jh,ImageBitmapLoader:()=>Md,ImageLoader:()=>qu,ImageUtils:()=>Jn,IncrementStencilOp:()=>Xt,IncrementWrapStencilOp:()=>qt,InstancedBufferAttribute:()=>lc,InstancedBufferGeometry:()=>xd,InstancedInterleavedBuffer:()=>up,InstancedMesh:()=>gc,Int16BufferAttribute:()=>Hi,Int32BufferAttribute:()=>Wi,Int8BufferAttribute:()=>zi,IntType:()=>Me,InterleavedBuffer:()=>Tl,InterleavedBufferAttribute:()=>Bl,Interpolant:()=>Mu,InterpolateDiscrete:()=>_t,InterpolateLinear:()=>St,InterpolateSmooth:()=>wt,InvertStencilOp:()=>Jt,KeepStencilOp:()=>jt,KeyframeTrack:()=>Bu,LOD:()=>ql,LatheBufferGeometry:()=>hf,LatheGeometry:()=>lh,Layers:()=>Jr,LessDepth:()=>Q,LessEqualDepth:()=>V,LessEqualStencilFunc:()=>tn,LessStencilFunc:()=>$t,Light:()=>$u,LightProbe:()=>Ad,Line:()=>_c,Line3:()=>Ep,LineBasicMaterial:()=>Ac,LineCurve:()=>eh,LineCurve3:()=>th,LineDashedMaterial:()=>vu,LineLoop:()=>Cc,LineSegments:()=>Mc,LinearEncoding:()=>Lt,LinearFilter:()=>Ae,LinearInterpolant:()=>Tu,LinearMipMapLinearFilter:()=>be,LinearMipMapNearestFilter:()=>ye,LinearMipmapLinearFilter:()=>xe,LinearMipmapNearestFilter:()=>ve,LinearSRGBColorSpace:()=>Qt,LinearToneMapping:()=>Z,Loader:()=>Vu,LoaderUtils:()=>yd,LoadingManager:()=>zu,LoopOnce:()=>xt,LoopPingPong:()=>Et,LoopRepeat:()=>bt,LuminanceAlphaFormat:()=>Ue,LuminanceFormat:()=>Fe,MOUSE:()=>i,Material:()=>wi,MaterialLoader:()=>vd,MathUtils:()=>Dn,Matrix3:()=>Fn,Matrix4:()=>Gr,MaxEquation:()=>T,Mesh:()=>Es,MeshBasicMaterial:()=>Pi,MeshDepthMaterial:()=>ll,MeshDistanceMaterial:()=>cl,MeshLambertMaterial:()=>gu,MeshMatcapMaterial:()=>Au,MeshNormalMaterial:()=>mu,MeshPhongMaterial:()=>pu,MeshPhysicalMaterial:()=>du,MeshStandardMaterial:()=>uu,MeshToonMaterial:()=>fu,MinEquation:()=>C,MirroredRepeatWrapping:()=>ue,MixOperation:()=>q,MultiplyBlending:()=>E,MultiplyOperation:()=>Y,NearestFilter:()=>de,NearestMipMapLinearFilter:()=>ge,NearestMipMapNearestFilter:()=>fe,NearestMipmapLinearFilter:()=>me,NearestMipmapNearestFilter:()=>pe,NeverDepth:()=>G,NeverStencilFunc:()=>Zt,NoBlending:()=>v,NoColorSpace:()=>Gt,NoToneMapping:()=>J,NormalAnimationBlendMode:()=>It,NormalBlending:()=>y,NotEqualDepth:()=>X,NotEqualStencilFunc:()=>rn,NumberKeyframeTrack:()=>Du,Object3D:()=>ui,ObjectLoader:()=>Ed,ObjectSpaceNormalMap:()=>kt,OctahedronBufferGeometry:()=>uf,OctahedronGeometry:()=>Zh,OneFactor:()=>B,OneMinusDstAlphaFactor:()=>U,OneMinusDstColorFactor:()=>N,OneMinusSrcAlphaFactor:()=>L,OneMinusSrcColorFactor:()=>P,OrthographicCamera:()=>na,PCFShadowMap:()=>u,PCFSoftShadowMap:()=>d,PMREMGenerator:()=>ua,Path:()=>oh,PerspectiveCamera:()=>Rs,Plane:()=>ks,PlaneBufferGeometry:()=>df,PlaneGeometry:()=>js,PlaneHelper:()=>Yp,PointLight:()=>ud,PointLightHelper:()=>Bp,Points:()=>Dc,PointsMaterial:()=>Tc,PolarGridHelper:()=>Up,PolyhedronBufferGeometry:()=>pf,PolyhedronGeometry:()=>ph,PositionalAudio:()=>Yd,PropertyBinding:()=>rp,PropertyMixer:()=>Kd,QuadraticBezierCurve:()=>nh,QuadraticBezierCurve3:()=>rh,Quaternion:()=>cr,QuaternionKeyframeTrack:()=>Fu,QuaternionLinearInterpolant:()=>Lu,RED_GREEN_RGTC2_Format:()=>vt,RED_RGTC1_Format:()=>gt,REVISION:()=>r,RGBADepthPacking:()=>Ot,RGBAFormat:()=>Le,RGBAIntegerFormat:()=>Ve,RGBA_ASTC_10x10_Format:()=>dt,RGBA_ASTC_10x5_Format:()=>ct,RGBA_ASTC_10x6_Format:()=>ht,RGBA_ASTC_10x8_Format:()=>ut,RGBA_ASTC_12x10_Format:()=>pt,RGBA_ASTC_12x12_Format:()=>ft,RGBA_ASTC_4x4_Format:()=>tt,RGBA_ASTC_5x4_Format:()=>nt,RGBA_ASTC_5x5_Format:()=>rt,RGBA_ASTC_6x5_Format:()=>it,RGBA_ASTC_6x6_Format:()=>st,RGBA_ASTC_8x5_Format:()=>at,RGBA_ASTC_8x6_Format:()=>ot,RGBA_ASTC_8x8_Format:()=>lt,RGBA_BPTC_Format:()=>mt,RGBA_ETC2_EAC_Format:()=>et,RGBA_PVRTC_2BPPV1_Format:()=>Je,RGBA_PVRTC_4BPPV1_Format:()=>Ke,RGBA_S3TC_DXT1_Format:()=>je,RGBA_S3TC_DXT3_Format:()=>We,RGBA_S3TC_DXT5_Format:()=>Xe,RGB_ETC1_Format:()=>Ze,RGB_ETC2_Format:()=>$e,RGB_PVRTC_2BPPV1_Format:()=>qe,RGB_PVRTC_4BPPV1_Format:()=>Ye,RGB_S3TC_DXT1_Format:()=>He,RGFormat:()=>ze,RGIntegerFormat:()=>Qe,RawShaderMaterial:()=>hu,Ray:()=>kr,Raycaster:()=>pp,RectAreaLight:()=>md,RedFormat:()=>ke,RedIntegerFormat:()=>Ge,ReinhardToneMapping:()=>$,RepeatWrapping:()=>ce,ReplaceStencilOp:()=>Wt,ReverseSubtractEquation:()=>M,RingBufferGeometry:()=>ff,RingGeometry:()=>$h,SIGNED_RED_GREEN_RGTC2_Format:()=>yt,SIGNED_RED_RGTC1_Format:()=>At,SRGBColorSpace:()=>zt,Scene:()=>Cl,ShaderChunk:()=>Ws,ShaderLib:()=>Ys,ShaderMaterial:()=>Is,ShadowMaterial:()=>cu,Shape:()=>xh,ShapeBufferGeometry:()=>mf,ShapeGeometry:()=>eu,ShapePath:()=>ef,ShapeUtils:()=>Wh,ShortType:()=>Se,Skeleton:()=>oc,SkeletonHelper:()=>Tp,SkinnedMesh:()=>nc,Source:()=>Zn,Sphere:()=>Rr,SphereBufferGeometry:()=>gf,SphereGeometry:()=>tu,Spherical:()=>gp,SphericalHarmonics3:()=>gd,SplineCurve:()=>ih,SpotLight:()=>ad,SpotLightHelper:()=>Sp,Sprite:()=>jl,SpriteMaterial:()=>Rl,SrcAlphaFactor:()=>D,SrcAlphaSaturateFactor:()=>k,SrcColorFactor:()=>R,StaticCopyUsage:()=>pn,StaticDrawUsage:()=>on,StaticReadUsage:()=>hn,StereoCamera:()=>Fd,StreamCopyUsage:()=>mn,StreamDrawUsage:()=>cn,StreamReadUsage:()=>dn,StringKeyframeTrack:()=>Uu,SubtractEquation:()=>w,SubtractiveBlending:()=>b,TOUCH:()=>s,TangentSpaceNormalMap:()=>Nt,TetrahedronBufferGeometry:()=>Af,TetrahedronGeometry:()=>nu,Texture:()=>tr,TextureLoader:()=>Zu,TorusBufferGeometry:()=>vf,TorusGeometry:()=>ru,TorusKnotBufferGeometry:()=>yf,TorusKnotGeometry:()=>iu,Triangle:()=>_i,TriangleFanDrawMode:()=>Dt,TriangleStripDrawMode:()=>Pt,TrianglesDrawMode:()=>Rt,TubeBufferGeometry:()=>xf,TubeGeometry:()=>su,TwoPassDoubleSide:()=>A,UVMapping:()=>re,Uint16BufferAttribute:()=>ji,Uint32BufferAttribute:()=>Xi,Uint8BufferAttribute:()=>Qi,Uint8ClampedBufferAttribute:()=>Vi,Uniform:()=>lp,UniformsGroup:()=>hp,UniformsLib:()=>Xs,UniformsUtils:()=>Ts,UnsignedByteType:()=>Ee,UnsignedInt248Type:()=>Pe,UnsignedIntType:()=>Ce,UnsignedShort4444Type:()=>Be,UnsignedShort5551Type:()=>Re,UnsignedShortType:()=>we,VSMShadowMap:()=>p,Vector2:()=>Ln,Vector3:()=>hr,Vector4:()=>nr,VectorKeyframeTrack:()=>Ou,VideoTexture:()=>Fc,WebGL1Renderer:()=>Sl,WebGL3DRenderTarget:()=>or,WebGLArrayRenderTarget:()=>sr,WebGLCubeRenderTarget:()=>Fs,WebGLMultipleRenderTargets:()=>lr,WebGLRenderTarget:()=>rr,WebGLRenderer:()=>_l,WebGLUtils:()=>pl,WireframeGeometry:()=>au,WrapAroundEnding:()=>Tt,ZeroCurvatureEnding:()=>Mt,ZeroFactor:()=>I,ZeroSlopeEnding:()=>Ct,ZeroStencilOp:()=>Ht,_SRGBAFormat:()=>vn,sRGBEncoding:()=>Ft});const r="152",i={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},s={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},a=0,o=1,l=2,c=3,h=0,u=1,d=2,p=3,f=0,m=1,g=2,A=2,v=0,y=1,x=2,b=3,E=4,_=5,S=100,w=101,M=102,C=103,T=104,I=200,B=201,R=202,P=203,D=204,L=205,F=206,U=207,O=208,N=209,k=210,G=0,z=1,Q=2,V=3,H=4,j=5,W=6,X=7,Y=0,q=1,K=2,J=0,Z=1,$=2,ee=3,te=4,ne=5,re=300,ie=301,se=302,ae=303,oe=304,le=306,ce=1e3,he=1001,ue=1002,de=1003,pe=1004,fe=1004,me=1005,ge=1005,Ae=1006,ve=1007,ye=1007,xe=1008,be=1008,Ee=1009,_e=1010,Se=1011,we=1012,Me=1013,Ce=1014,Te=1015,Ie=1016,Be=1017,Re=1018,Pe=1020,De=1021,Le=1023,Fe=1024,Ue=1025,Oe=1026,Ne=1027,ke=1028,Ge=1029,ze=1030,Qe=1031,Ve=1033,He=33776,je=33777,We=33778,Xe=33779,Ye=35840,qe=35841,Ke=35842,Je=35843,Ze=36196,$e=37492,et=37496,tt=37808,nt=37809,rt=37810,it=37811,st=37812,at=37813,ot=37814,lt=37815,ct=37816,ht=37817,ut=37818,dt=37819,pt=37820,ft=37821,mt=36492,gt=36283,At=36284,vt=36285,yt=36286,xt=2200,bt=2201,Et=2202,_t=2300,St=2301,wt=2302,Mt=2400,Ct=2401,Tt=2402,It=2500,Bt=2501,Rt=0,Pt=1,Dt=2,Lt=3e3,Ft=3001,Ut=3200,Ot=3201,Nt=0,kt=1,Gt="",zt="srgb",Qt="srgb-linear",Vt="display-p3",Ht=0,jt=7680,Wt=7681,Xt=7682,Yt=7683,qt=34055,Kt=34056,Jt=5386,Zt=512,$t=513,en=514,tn=515,nn=516,rn=517,sn=518,an=519,on=35044,ln=35048,cn=35040,hn=35045,un=35049,dn=35041,pn=35046,fn=35050,mn=35042,gn="100",An="300 es",vn=1035;class yn{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});const n=this._listeners;void 0===n[e]&&(n[e]=[]),-1===n[e].indexOf(t)&&n[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;const n=this._listeners;return void 0!==n[e]&&-1!==n[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;const n=this._listeners[e];if(void 0!==n){const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;const t=this._listeners[e.type];if(void 0!==t){e.target=this;const n=t.slice(0);for(let t=0,r=n.length;t>8&255]+xn[e>>16&255]+xn[e>>24&255]+"-"+xn[255&t]+xn[t>>8&255]+"-"+xn[t>>16&15|64]+xn[t>>24&255]+"-"+xn[63&n|128]+xn[n>>8&255]+"-"+xn[n>>16&255]+xn[n>>24&255]+xn[255&r]+xn[r>>8&255]+xn[r>>16&255]+xn[r>>24&255]).toLowerCase()}function wn(e,t,n){return Math.max(t,Math.min(n,e))}function Mn(e,t){return(e%t+t)%t}function Cn(e,t,n){return(1-n)*e+n*t}function Tn(e){return 0==(e&e-1)&&0!==e}function In(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function Bn(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function Rn(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}function Pn(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}}const Dn={DEG2RAD:En,RAD2DEG:_n,generateUUID:Sn,clamp:wn,euclideanModulo:Mn,mapLinear:function(e,t,n,r,i){return r+(e-t)*(i-r)/(n-t)},inverseLerp:function(e,t,n){return e!==t?(n-e)/(t-e):0},lerp:Cn,damp:function(e,t,n,r){return Cn(e,t,1-Math.exp(-n*r))},pingpong:function(e,t=1){return t-Math.abs(Mn(e,2*t)-t)},smoothstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*(3-2*e)},smootherstep:function(e,t,n){return e<=t?0:e>=n?1:(e=(e-t)/(n-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){void 0!==e&&(bn=e);let t=bn+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},degToRad:function(e){return e*En},radToDeg:function(e){return e*_n},isPowerOfTwo:Tn,ceilPowerOfTwo:In,floorPowerOfTwo:Bn,setQuaternionFromProperEuler:function(e,t,n,r,i){const s=Math.cos,a=Math.sin,o=s(n/2),l=a(n/2),c=s((t+r)/2),h=a((t+r)/2),u=s((t-r)/2),d=a((t-r)/2),p=s((r-t)/2),f=a((r-t)/2);switch(i){case"XYX":e.set(o*h,l*u,l*d,o*c);break;case"YZY":e.set(l*d,o*h,l*u,o*c);break;case"ZXZ":e.set(l*u,l*d,o*h,o*c);break;case"XZX":e.set(o*h,l*f,l*p,o*c);break;case"YXY":e.set(l*p,o*h,l*f,o*c);break;case"ZYZ":e.set(l*f,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}},normalize:Pn,denormalize:Rn};class Ln{constructor(e=0,t=0){Ln.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,n=this.y,r=e.elements;return this.x=r[0]*t+r[3]*n+r[6],this.y=r[1]*t+r[4]*n+r[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}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(wn(n,-1,1))}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){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const n=Math.cos(t),r=Math.sin(t),i=this.x-e.x,s=this.y-e.y;return this.x=i*n-s*r+e.x,this.y=i*r+s*n+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Fn{constructor(){Fn.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(e,t,n,r,i,s,a,o,l){const c=this.elements;return c[0]=e,c[1]=r,c[2]=a,c[3]=t,c[4]=i,c[5]=o,c[6]=n,c[7]=s,c[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,r=t.elements,i=this.elements,s=n[0],a=n[3],o=n[6],l=n[1],c=n[4],h=n[7],u=n[2],d=n[5],p=n[8],f=r[0],m=r[3],g=r[6],A=r[1],v=r[4],y=r[7],x=r[2],b=r[5],E=r[8];return i[0]=s*f+a*A+o*x,i[3]=s*m+a*v+o*b,i[6]=s*g+a*y+o*E,i[1]=l*f+c*A+h*x,i[4]=l*m+c*v+h*b,i[7]=l*g+c*y+h*E,i[2]=u*f+d*A+p*x,i[5]=u*m+d*v+p*b,i[8]=u*g+d*y+p*E,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],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8];return t*s*c-t*a*l-n*i*c+n*a*o+r*i*l-r*s*o}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=c*s-a*l,u=a*o-c*i,d=l*i-s*o,p=t*h+n*u+r*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return e[0]=h*f,e[1]=(r*l-c*n)*f,e[2]=(a*n-r*s)*f,e[3]=u*f,e[4]=(c*t-r*o)*f,e[5]=(r*i-a*t)*f,e[6]=d*f,e[7]=(n*o-l*t)*f,e[8]=(s*t-n*i)*f,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,r,i,s,a){const o=Math.cos(i),l=Math.sin(i);return this.set(n*o,n*l,-n*(o*s+l*a)+s+e,-r*l,r*o,-r*(-l*s+o*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(Un.makeScale(e,t)),this}rotate(e){return this.premultiply(Un.makeRotation(-e)),this}translate(e,t){return this.premultiply(Un.makeTranslation(e,t)),this}makeTranslation(e,t){return this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),n=Math.sin(e);return this.set(t,-n,0,n,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,n=e.elements;for(let r=0;r<9;r++)if(t[r]!==n[r])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)}}const Un=new Fn;function On(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}const Nn={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function kn(e,t){return new Nn[e](t)}function Gn(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}const zn={};function Qn(e){e in zn||(zn[e]=!0,console.warn(e))}function Vn(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function Hn(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}const jn=(new Fn).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),Wn=(new Fn).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const Xn={[Qt]:e=>e,[zt]:e=>e.convertSRGBToLinear(),[Vt]:function(e){return e.convertSRGBToLinear().applyMatrix3(Wn)}},Yn={[Qt]:e=>e,[zt]:e=>e.convertLinearToSRGB(),[Vt]:function(e){return e.applyMatrix3(jn).convertLinearToSRGB()}},qn={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(e){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!e},get workingColorSpace(){return Qt},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,n){if(!1===this.enabled||t===n||!t||!n)return e;const r=Xn[t],i=Yn[n];if(void 0===r||void 0===i)throw new Error(`Unsupported color space conversion, "${t}" to "${n}".`);return i(r(e))},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}};let Kn;class Jn{static getDataURL(e){if(/^data:/i.test(e.src))return e.src;if("undefined"==typeof HTMLCanvasElement)return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===Kn&&(Kn=Gn("canvas")),Kn.width=e.width,Kn.height=e.height;const n=Kn.getContext("2d");e instanceof ImageData?n.putImageData(e,0,0):n.drawImage(e,0,0,e.width,e.height),t=Kn}return t.width>2048||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("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const t=Gn("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");n.drawImage(e,0,0,e.width,e.height);const r=n.getImageData(0,0,e.width,e.height),i=r.data;for(let e=0;e0&&(n.userData=this.userData),t||(e.textures[this.uuid]=n),n}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==re)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case ce:e.x=e.x-Math.floor(e.x);break;case he:e.x=e.x<0?0:1;break;case ue:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case ce:e.y=e.y-Math.floor(e.y);break;case he:e.y=e.y<0?0:1;break;case ue:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Qn("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===zt?Ft:Lt}set encoding(e){Qn("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===Ft?zt:Gt}}tr.DEFAULT_IMAGE=null,tr.DEFAULT_MAPPING=re,tr.DEFAULT_ANISOTROPY=1;class nr{constructor(e=0,t=0,n=0,r=1){nr.prototype.isVector4=!0,this.x=e,this.y=t,this.z=n,this.w=r}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,r){return this.x=e,this.y=t,this.z=n,this.w=r,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=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,i=this.w,s=e.elements;return this.x=s[0]*t+s[4]*n+s[8]*r+s[12]*i,this.y=s[1]*t+s[5]*n+s[9]*r+s[13]*i,this.z=s[2]*t+s[6]*n+s[10]*r+s[14]*i,this.w=s[3]*t+s[7]*n+s[11]*r+s[15]*i,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,r,i;const s=.01,a=.1,o=e.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-u)o&&e>A?eA?o=0?1:-1,r=1-t*t;if(r>Number.EPSILON){const i=Math.sqrt(r),s=Math.atan2(i,t*n);e=Math.sin(e*s)/i,a=Math.sin(a*s)/i}const i=a*n;if(o=o*e+u*i,l=l*e+d*i,c=c*e+p*i,h=h*e+f*i,e===1-a){const e=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=e,l*=e,c*=e,h*=e}}e[t]=o,e[t+1]=l,e[t+2]=c,e[t+3]=h}static multiplyQuaternionsFlat(e,t,n,r,i,s){const a=n[r],o=n[r+1],l=n[r+2],c=n[r+3],h=i[s],u=i[s+1],d=i[s+2],p=i[s+3];return e[t]=a*p+c*h+o*d-l*u,e[t+1]=o*p+c*u+l*h-a*d,e[t+2]=l*p+c*d+a*u-o*h,e[t+3]=c*p-a*h-o*u-l*d,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,r){return this._x=e,this._y=t,this._z=n,this._w=r,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){const n=e._x,r=e._y,i=e._z,s=e._order,a=Math.cos,o=Math.sin,l=a(n/2),c=a(r/2),h=a(i/2),u=o(n/2),d=o(r/2),p=o(i/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const n=t/2,r=Math.sin(n);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(n),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,n=t[0],r=t[4],i=t[8],s=t[1],a=t[5],o=t[9],l=t[2],c=t[6],h=t[10],u=n+a+h;if(u>0){const e=.5/Math.sqrt(u+1);this._w=.25/e,this._x=(c-o)*e,this._y=(i-l)*e,this._z=(s-r)*e}else if(n>a&&n>h){const e=2*Math.sqrt(1+n-a-h);this._w=(c-o)/e,this._x=.25*e,this._y=(r+s)/e,this._z=(i+l)/e}else if(a>h){const e=2*Math.sqrt(1+a-n-h);this._w=(i-l)/e,this._x=(r+s)/e,this._y=.25*e,this._z=(o+c)/e}else{const e=2*Math.sqrt(1+h-n-a);this._w=(s-r)/e,this._x=(i+l)/e,this._y=(o+c)/e,this._z=.25*e}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(wn(this.dot(e),-1,1)))}rotateTowards(e,t){const n=this.angleTo(e);if(0===n)return this;const r=Math.min(1,t/n);return this.slerp(e,r),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 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const n=e._x,r=e._y,i=e._z,s=e._w,a=t._x,o=t._y,l=t._z,c=t._w;return this._x=n*c+s*a+r*l-i*o,this._y=r*c+s*o+i*a-n*l,this._z=i*c+s*l+n*o-r*a,this._w=s*c-n*a-r*o-i*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const n=this._x,r=this._y,i=this._z,s=this._w;let a=s*e._w+n*e._x+r*e._y+i*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=s,this._x=n,this._y=r,this._z=i,this;const o=1-a*a;if(o<=Number.EPSILON){const e=1-t;return this._w=e*s+t*this._w,this._x=e*n+t*this._x,this._y=e*r+t*this._y,this._z=e*i+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-t)*c)/l,u=Math.sin(t*c)/l;return this._w=s*h+this._w*u,this._x=n*h+this._x*u,this._y=r*h+this._y*u,this._z=i*h+this._z*u,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),r=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(t*Math.cos(r),n*Math.sin(i),n*Math.cos(i),t*Math.sin(r))}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}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class hr{constructor(e=0,t=0,n=0){hr.prototype.isVector3=!0,this.x=e,this.y=t,this.z=n}set(e,t,n){return void 0===n&&(n=this.z),this.x=e,this.y=t,this.z=n,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(dr.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(dr.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,n=this.y,r=this.z,i=e.elements;return this.x=i[0]*t+i[3]*n+i[6]*r,this.y=i[1]*t+i[4]*n+i[7]*r,this.z=i[2]*t+i[5]*n+i[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,n=this.y,r=this.z,i=e.elements,s=1/(i[3]*t+i[7]*n+i[11]*r+i[15]);return this.x=(i[0]*t+i[4]*n+i[8]*r+i[12])*s,this.y=(i[1]*t+i[5]*n+i[9]*r+i[13])*s,this.z=(i[2]*t+i[6]*n+i[10]*r+i[14])*s,this}applyQuaternion(e){const t=this.x,n=this.y,r=this.z,i=e.x,s=e.y,a=e.z,o=e.w,l=o*t+s*r-a*n,c=o*n+a*t-i*r,h=o*r+i*n-s*t,u=-i*t-s*n-a*r;return this.x=l*o+u*-i+c*-a-h*-s,this.y=c*o+u*-s+h*-i-l*-a,this.z=h*o+u*-a+l*-s-c*-i,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,r=this.z,i=e.elements;return this.x=i[0]*t+i[4]*n+i[8]*r,this.y=i[1]*t+i[5]*n+i[9]*r,this.z=i[2]*t+i[6]*n+i[10]*r,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){return this.crossVectors(this,e)}crossVectors(e,t){const n=e.x,r=e.y,i=e.z,s=t.x,a=t.y,o=t.z;return this.x=r*o-i*a,this.y=i*s-n*o,this.z=n*a-r*s,this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const n=e.dot(this)/t;return this.copy(e).multiplyScalar(n)}projectOnPlane(e){return ur.copy(this).projectOnVector(e),this.sub(ur)}reflect(e){return this.sub(ur.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const n=this.dot(e)/t;return Math.acos(wn(n,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,n=this.y-e.y,r=this.z-e.z;return t*t+n*n+r*r}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 r=Math.sin(t)*e;return this.x=r*Math.sin(n),this.y=Math.cos(t)*e,this.z=r*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(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=n,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=2*(Math.random()-.5),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}}const ur=new hr,dr=new cr;class pr{constructor(e=new hr(1/0,1/0,1/0),t=new hr(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){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,mr),mr.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(_r),Sr.subVectors(this.max,_r),Ar.subVectors(e.a,_r),vr.subVectors(e.b,_r),yr.subVectors(e.c,_r),xr.subVectors(vr,Ar),br.subVectors(yr,vr),Er.subVectors(Ar,yr);let t=[0,-xr.z,xr.y,0,-br.z,br.y,0,-Er.z,Er.y,xr.z,0,-xr.x,br.z,0,-br.x,Er.z,0,-Er.x,-xr.y,xr.x,0,-br.y,br.x,0,-Er.y,Er.x,0];return!!Cr(t,Ar,vr,yr,Sr)&&(t=[1,0,0,0,1,0,0,0,1],!!Cr(t,Ar,vr,yr,Sr)&&(wr.crossVectors(xr,br),t=[wr.x,wr.y,wr.z],Cr(t,Ar,vr,yr,Sr)))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,mr).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(mr).length()),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()||(fr[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),fr[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),fr[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),fr[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),fr[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),fr[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),fr[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),fr[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(fr)),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)}}const fr=[new hr,new hr,new hr,new hr,new hr,new hr,new hr,new hr],mr=new hr,gr=new pr,Ar=new hr,vr=new hr,yr=new hr,xr=new hr,br=new hr,Er=new hr,_r=new hr,Sr=new hr,wr=new hr,Mr=new hr;function Cr(e,t,n,r,i){for(let s=0,a=e.length-3;s<=a;s+=3){Mr.fromArray(e,s);const a=i.x*Math.abs(Mr.x)+i.y*Math.abs(Mr.y)+i.z*Math.abs(Mr.z),o=t.dot(Mr),l=n.dot(Mr),c=r.dot(Mr);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Tr=new pr,Ir=new hr,Br=new hr;class Rr{constructor(e=new hr,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;void 0!==t?n.copy(t):Tr.setFromPoints(e).getCenter(n);let r=0;for(let i=0,s=e.length;ithis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Ir.subVectors(e,this.center);const t=Ir.lengthSq();if(t>this.radius*this.radius){const e=Math.sqrt(t),n=.5*(e-this.radius);this.center.addScaledVector(Ir,n/e),this.radius+=n}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(Br.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Ir.copy(e.center).add(Br)),this.expandByPoint(Ir.copy(e.center).sub(Br))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Pr=new hr,Dr=new hr,Lr=new hr,Fr=new hr,Ur=new hr,Or=new hr,Nr=new hr;class kr{constructor(e=new hr,t=new hr(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.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Pr)),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.origin).addScaledVector(this.direction,n)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Pr.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Pr.copy(this.origin).addScaledVector(this.direction,t),Pr.distanceToSquared(e))}distanceSqToSegment(e,t,n,r){Dr.copy(e).add(t).multiplyScalar(.5),Lr.copy(t).sub(e).normalize(),Fr.copy(this.origin).sub(Dr);const i=.5*e.distanceTo(t),s=-this.direction.dot(Lr),a=Fr.dot(this.direction),o=-Fr.dot(Lr),l=Fr.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=i*c,h>=0)if(u>=-p)if(u<=p){const e=1/c;h*=e,u*=e,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*i+a)),u=h>0?-i:Math.min(Math.max(-i,-o),i),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-i,-o),i),d=u*(u+2*o)+l):(h=Math.max(0,-(s*i+a)),u=h>0?i:Math.min(Math.max(-i,-o),i),d=-h*h+u*(u+2*o)+l);else u=s>0?-i:i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return n&&n.copy(this.origin).addScaledVector(this.direction,h),r&&r.copy(Dr).addScaledVector(Lr,u),d}intersectSphere(e,t){Pr.subVectors(e.center,this.origin);const n=Pr.dot(this.direction),r=Pr.dot(Pr)-n*n,i=e.radius*e.radius;if(r>i)return null;const s=Math.sqrt(i-r),a=n-s,o=n+s;return o<0?null:a<0?this.at(o,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(0===t)return 0===e.distanceToPoint(this.origin)?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 null===n?null:this.at(n,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);if(0===t)return!0;return e.normal.dot(this.direction)*t<0}intersectBox(e,t){let n,r,i,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(n=(e.min.x-u.x)*l,r=(e.max.x-u.x)*l):(n=(e.max.x-u.x)*l,r=(e.min.x-u.x)*l),c>=0?(i=(e.min.y-u.y)*c,s=(e.max.y-u.y)*c):(i=(e.max.y-u.y)*c,s=(e.min.y-u.y)*c),n>s||i>r?null:((i>n||isNaN(n))&&(n=i),(s=0?(a=(e.min.z-u.z)*h,o=(e.max.z-u.z)*h):(a=(e.max.z-u.z)*h,o=(e.min.z-u.z)*h),n>o||a>r?null:((a>n||n!=n)&&(n=a),(o=0?n:r,t)))}intersectsBox(e){return null!==this.intersectBox(e,Pr)}intersectTriangle(e,t,n,r,i){Ur.subVectors(t,e),Or.subVectors(n,e),Nr.crossVectors(Ur,Or);let s,a=this.direction.dot(Nr);if(a>0){if(r)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Fr.subVectors(this.origin,e);const o=s*this.direction.dot(Or.crossVectors(Fr,Or));if(o<0)return null;const l=s*this.direction.dot(Ur.cross(Fr));if(l<0)return null;if(o+l>a)return null;const c=-s*Fr.dot(Nr);return c<0?null:this.at(c/a,i)}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 Gr{constructor(){Gr.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(e,t,n,r,i,s,a,o,l,c,h,u,d,p,f,m){const g=this.elements;return g[0]=e,g[4]=t,g[8]=n,g[12]=r,g[1]=i,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,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 Gr).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,r=1/zr.setFromMatrixColumn(e,0).length(),i=1/zr.setFromMatrixColumn(e,1).length(),s=1/zr.setFromMatrixColumn(e,2).length();return t[0]=n[0]*r,t[1]=n[1]*r,t[2]=n[2]*r,t[3]=0,t[4]=n[4]*i,t[5]=n[5]*i,t[6]=n[6]*i,t[7]=0,t[8]=n[8]*s,t[9]=n[9]*s,t[10]=n[10]*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,n=e.x,r=e.y,i=e.z,s=Math.cos(n),a=Math.sin(n),o=Math.cos(r),l=Math.sin(r),c=Math.cos(i),h=Math.sin(i);if("XYZ"===e.order){const e=s*c,n=s*h,r=a*c,i=a*h;t[0]=o*c,t[4]=-o*h,t[8]=l,t[1]=n+r*l,t[5]=e-i*l,t[9]=-a*o,t[2]=i-e*l,t[6]=r+n*l,t[10]=s*o}else if("YXZ"===e.order){const e=o*c,n=o*h,r=l*c,i=l*h;t[0]=e+i*a,t[4]=r*a-n,t[8]=s*l,t[1]=s*h,t[5]=s*c,t[9]=-a,t[2]=n*a-r,t[6]=i+e*a,t[10]=s*o}else if("ZXY"===e.order){const e=o*c,n=o*h,r=l*c,i=l*h;t[0]=e-i*a,t[4]=-s*h,t[8]=r+n*a,t[1]=n+r*a,t[5]=s*c,t[9]=i-e*a,t[2]=-s*l,t[6]=a,t[10]=s*o}else if("ZYX"===e.order){const e=s*c,n=s*h,r=a*c,i=a*h;t[0]=o*c,t[4]=r*l-n,t[8]=e*l+i,t[1]=o*h,t[5]=i*l+e,t[9]=n*l-r,t[2]=-l,t[6]=a*o,t[10]=s*o}else if("YZX"===e.order){const e=s*o,n=s*l,r=a*o,i=a*l;t[0]=o*c,t[4]=i-e*h,t[8]=r*h+n,t[1]=h,t[5]=s*c,t[9]=-a*c,t[2]=-l*c,t[6]=n*h+r,t[10]=e-i*h}else if("XZY"===e.order){const e=s*o,n=s*l,r=a*o,i=a*l;t[0]=o*c,t[4]=-h,t[8]=l*c,t[1]=e*h+i,t[5]=s*c,t[9]=n*h-r,t[2]=r*h-n,t[6]=a*c,t[10]=i*h+e}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(Vr,e,Hr)}lookAt(e,t,n){const r=this.elements;return Xr.subVectors(e,t),0===Xr.lengthSq()&&(Xr.z=1),Xr.normalize(),jr.crossVectors(n,Xr),0===jr.lengthSq()&&(1===Math.abs(n.z)?Xr.x+=1e-4:Xr.z+=1e-4,Xr.normalize(),jr.crossVectors(n,Xr)),jr.normalize(),Wr.crossVectors(Xr,jr),r[0]=jr.x,r[4]=Wr.x,r[8]=Xr.x,r[1]=jr.y,r[5]=Wr.y,r[9]=Xr.y,r[2]=jr.z,r[6]=Wr.z,r[10]=Xr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const n=e.elements,r=t.elements,i=this.elements,s=n[0],a=n[4],o=n[8],l=n[12],c=n[1],h=n[5],u=n[9],d=n[13],p=n[2],f=n[6],m=n[10],g=n[14],A=n[3],v=n[7],y=n[11],x=n[15],b=r[0],E=r[4],_=r[8],S=r[12],w=r[1],M=r[5],C=r[9],T=r[13],I=r[2],B=r[6],R=r[10],P=r[14],D=r[3],L=r[7],F=r[11],U=r[15];return i[0]=s*b+a*w+o*I+l*D,i[4]=s*E+a*M+o*B+l*L,i[8]=s*_+a*C+o*R+l*F,i[12]=s*S+a*T+o*P+l*U,i[1]=c*b+h*w+u*I+d*D,i[5]=c*E+h*M+u*B+d*L,i[9]=c*_+h*C+u*R+d*F,i[13]=c*S+h*T+u*P+d*U,i[2]=p*b+f*w+m*I+g*D,i[6]=p*E+f*M+m*B+g*L,i[10]=p*_+f*C+m*R+g*F,i[14]=p*S+f*T+m*P+g*U,i[3]=A*b+v*w+y*I+x*D,i[7]=A*E+v*M+y*B+x*L,i[11]=A*_+v*C+y*R+x*F,i[15]=A*S+v*T+y*P+x*U,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],r=e[8],i=e[12],s=e[1],a=e[5],o=e[9],l=e[13],c=e[2],h=e[6],u=e[10],d=e[14];return e[3]*(+i*o*h-r*l*h-i*a*u+n*l*u+r*a*d-n*o*d)+e[7]*(+t*o*d-t*l*u+i*s*u-r*s*d+r*l*c-i*o*c)+e[11]*(+t*l*h-t*a*d-i*s*h+n*s*d+i*a*c-n*l*c)+e[15]*(-r*a*c-t*o*h+t*a*u+r*s*h-n*s*u+n*o*c)}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 r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=t,r[14]=n),this}invert(){const e=this.elements,t=e[0],n=e[1],r=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=e[9],u=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],A=h*m*l-f*u*l+f*o*d-a*m*d-h*o*g+a*u*g,v=p*u*l-c*m*l-p*o*d+s*m*d+c*o*g-s*u*g,y=c*f*l-p*h*l+p*a*d-s*f*d-c*a*g+s*h*g,x=p*h*o-c*f*o-p*a*u+s*f*u+c*a*m-s*h*m,b=t*A+n*v+r*y+i*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const E=1/b;return e[0]=A*E,e[1]=(f*u*i-h*m*i-f*r*d+n*m*d+h*r*g-n*u*g)*E,e[2]=(a*m*i-f*o*i+f*r*l-n*m*l-a*r*g+n*o*g)*E,e[3]=(h*o*i-a*u*i-h*r*l+n*u*l+a*r*d-n*o*d)*E,e[4]=v*E,e[5]=(c*m*i-p*u*i+p*r*d-t*m*d-c*r*g+t*u*g)*E,e[6]=(p*o*i-s*m*i-p*r*l+t*m*l+s*r*g-t*o*g)*E,e[7]=(s*u*i-c*o*i+c*r*l-t*u*l-s*r*d+t*o*d)*E,e[8]=y*E,e[9]=(p*h*i-c*f*i-p*n*d+t*f*d+c*n*g-t*h*g)*E,e[10]=(s*f*i-p*a*i+p*n*l-t*f*l-s*n*g+t*a*g)*E,e[11]=(c*a*i-s*h*i-c*n*l+t*h*l+s*n*d-t*a*d)*E,e[12]=x*E,e[13]=(c*f*r-p*h*r+p*n*u-t*f*u-c*n*m+t*h*m)*E,e[14]=(p*a*r-s*f*r-p*n*o+t*f*o+s*n*m-t*a*m)*E,e[15]=(s*h*r-c*a*r+c*n*o-t*h*o-s*n*u+t*a*u)*E,this}scale(e){const t=this.elements,n=e.x,r=e.y,i=e.z;return t[0]*=n,t[4]*=r,t[8]*=i,t[1]*=n,t[5]*=r,t[9]*=i,t[2]*=n,t[6]*=r,t[10]*=i,t[3]*=n,t[7]*=r,t[11]*=i,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],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,n,r))}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),r=Math.sin(t),i=1-n,s=e.x,a=e.y,o=e.z,l=i*s,c=i*a;return this.set(l*s+n,l*a-r*o,l*o+r*a,0,l*a+r*o,c*a+n,c*o-r*s,0,l*o-r*a,c*o+r*s,i*o*o+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,r,i,s){return this.set(1,n,i,0,e,1,s,0,t,r,1,0,0,0,0,1),this}compose(e,t,n){const r=this.elements,i=t._x,s=t._y,a=t._z,o=t._w,l=i+i,c=s+s,h=a+a,u=i*l,d=i*c,p=i*h,f=s*c,m=s*h,g=a*h,A=o*l,v=o*c,y=o*h,x=n.x,b=n.y,E=n.z;return r[0]=(1-(f+g))*x,r[1]=(d+y)*x,r[2]=(p-v)*x,r[3]=0,r[4]=(d-y)*b,r[5]=(1-(u+g))*b,r[6]=(m+A)*b,r[7]=0,r[8]=(p+v)*E,r[9]=(m-A)*E,r[10]=(1-(u+f))*E,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,n){const r=this.elements;let i=zr.set(r[0],r[1],r[2]).length();const s=zr.set(r[4],r[5],r[6]).length(),a=zr.set(r[8],r[9],r[10]).length();this.determinant()<0&&(i=-i),e.x=r[12],e.y=r[13],e.z=r[14],Qr.copy(this);const o=1/i,l=1/s,c=1/a;return Qr.elements[0]*=o,Qr.elements[1]*=o,Qr.elements[2]*=o,Qr.elements[4]*=l,Qr.elements[5]*=l,Qr.elements[6]*=l,Qr.elements[8]*=c,Qr.elements[9]*=c,Qr.elements[10]*=c,t.setFromRotationMatrix(Qr),n.x=i,n.y=s,n.z=a,this}makePerspective(e,t,n,r,i,s){const a=this.elements,o=2*i/(t-e),l=2*i/(n-r),c=(t+e)/(t-e),h=(n+r)/(n-r),u=-(s+i)/(s-i),d=-2*s*i/(s-i);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,t,n,r,i,s){const a=this.elements,o=1/(t-e),l=1/(n-r),c=1/(s-i),h=(t+e)*o,u=(n+r)*l,d=(s+i)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){const t=this.elements,n=e.elements;for(let r=0;r<16;r++)if(t[r]!==n[r])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}}const zr=new hr,Qr=new Gr,Vr=new hr(0,0,0),Hr=new hr(1,1,1),jr=new hr,Wr=new hr,Xr=new hr,Yr=new Gr,qr=new cr;class Kr{constructor(e=0,t=0,n=0,r=Kr.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=n,this._order=r}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,r=this._order){return this._x=e,this._y=t,this._z=n,this._order=r,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 r=e.elements,i=r[0],s=r[4],a=r[8],o=r[1],l=r[5],c=r[9],h=r[2],u=r[6],d=r[10];switch(t){case"XYZ":this._y=Math.asin(wn(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,i)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-wn(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,i),this._z=0);break;case"ZXY":this._x=Math.asin(wn(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,i));break;case"ZYX":this._y=Math.asin(-wn(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,i)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(wn(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,i)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-wn(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,i)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===n&&this._onChangeCallback(),this}setFromQuaternion(e,t,n){return Yr.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Yr,t,n)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return qr.setFromEuler(this),this.setFromQuaternion(qr,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],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Kr.DEFAULT_ORDER="XYZ";class Jr{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(n=n.concat(i))}return n}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ri,e,ii),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ri,si,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let n=0,r=t.length;n0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(r.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=i(e.geometries,this.geometry);const t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){const n=t.shapes;if(Array.isArray(n))for(let t=0,r=n.length;t0){r.children=[];for(let t=0;t0){r.animations=[];for(let t=0;t0&&(n.geometries=t),r.length>0&&(n.materials=r),i.length>0&&(n.textures=i),a.length>0&&(n.images=a),o.length>0&&(n.shapes=o),l.length>0&&(n.skeletons=l),c.length>0&&(n.animations=c),h.length>0&&(n.nodes=h)}return n.object=r,n;function s(e){const t=[];for(const n in e){const r=e[n];delete r.metadata,t.push(r)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let n=0;n0?r.multiplyScalar(1/Math.sqrt(i)):r.set(0,0,0)}static getBarycoord(e,t,n,r,i){di.subVectors(r,t),pi.subVectors(n,t),fi.subVectors(e,t);const s=di.dot(di),a=di.dot(pi),o=di.dot(fi),l=pi.dot(pi),c=pi.dot(fi),h=s*l-a*a;if(0===h)return i.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return i.set(1-d-p,p,d)}static containsPoint(e,t,n,r){return this.getBarycoord(e,t,n,r,mi),mi.x>=0&&mi.y>=0&&mi.x+mi.y<=1}static getUV(e,t,n,r,i,s,a,o){return!1===Ei&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ei=!0),this.getInterpolation(e,t,n,r,i,s,a,o)}static getInterpolation(e,t,n,r,i,s,a,o){return this.getBarycoord(e,t,n,r,mi),o.setScalar(0),o.addScaledVector(i,mi.x),o.addScaledVector(s,mi.y),o.addScaledVector(a,mi.z),o}static isFrontFacing(e,t,n,r){return di.subVectors(n,t),pi.subVectors(e,t),di.cross(pi).dot(r)<0}set(e,t,n){return this.a.copy(e),this.b.copy(t),this.c.copy(n),this}setFromPointsAndIndices(e,t,n,r){return this.a.copy(e[t]),this.b.copy(e[n]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,n,r){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,n),this.c.fromBufferAttribute(e,r),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 di.subVectors(this.c,this.b),pi.subVectors(this.a,this.b),.5*di.cross(pi).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return _i.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return _i.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,n,r,i){return!1===Ei&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ei=!0),_i.getInterpolation(e,this.a,this.b,this.c,t,n,r,i)}getInterpolation(e,t,n,r,i){return _i.getInterpolation(e,this.a,this.b,this.c,t,n,r,i)}containsPoint(e){return _i.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return _i.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const n=this.a,r=this.b,i=this.c;let s,a;gi.subVectors(r,n),Ai.subVectors(i,n),yi.subVectors(e,n);const o=gi.dot(yi),l=Ai.dot(yi);if(o<=0&&l<=0)return t.copy(n);xi.subVectors(e,r);const c=gi.dot(xi),h=Ai.dot(xi);if(c>=0&&h<=c)return t.copy(r);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),t.copy(n).addScaledVector(gi,s);bi.subVectors(e,i);const d=gi.dot(bi),p=Ai.dot(bi);if(p>=0&&d<=p)return t.copy(i);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return a=l/(l-p),t.copy(n).addScaledVector(Ai,a);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return vi.subVectors(i,r),a=(h-c)/(h-c+(d-p)),t.copy(r).addScaledVector(vi,a);const g=1/(m+f+u);return s=f*g,a=u*g,t.copy(n).addScaledVector(gi,s).addScaledVector(Ai,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let Si=0;class wi extends yn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Si++}),this.uuid=Sn(),this.name="",this.type="Material",this.blending=y,this.side=f,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=D,this.blendDst=L,this.blendEquation=S,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=V,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=an,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=jt,this.stencilZFail=jt,this.stencilZPass=jt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(const t in e){const n=e[t];if(void 0===n){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const r=this[t];void 0!==r?r&&r.isColor?r.set(n):r&&r.isVector3&&n&&n.isVector3?r.copy(n):this[t]=n:console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`)}}toJSON(e){const t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});const n={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function r(e){const t=[];for(const n in e){const r=e[n];delete r.metadata,t.push(r)}return t}if(n.uuid=this.uuid,n.type=this.type,""!==this.name&&(n.name=this.name),this.color&&this.color.isColor&&(n.color=this.color.getHex()),void 0!==this.roughness&&(n.roughness=this.roughness),void 0!==this.metalness&&(n.metalness=this.metalness),void 0!==this.sheen&&(n.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(n.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(n.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(n.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(n.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(n.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(n.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(n.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(n.shininess=this.shininess),void 0!==this.clearcoat&&(n.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(n.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(n.clearcoatMap=this.clearcoatMap.toJSON(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()),void 0!==this.iridescence&&(n.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(n.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(n.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(n.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(n.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(n.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(n.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(n.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(n.lightMap=this.lightMap.toJSON(e).uuid,n.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(n.aoMap=this.aoMap.toJSON(e).uuid,n.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(n.bumpMap=this.bumpMap.toJSON(e).uuid,n.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(n.normalMap=this.normalMap.toJSON(e).uuid,n.normalMapType=this.normalMapType,n.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(n.displacementMap=this.displacementMap.toJSON(e).uuid,n.displacementScale=this.displacementScale,n.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(n.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(n.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(n.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(n.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(n.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(n.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(n.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(n.combine=this.combine)),void 0!==this.envMapIntensity&&(n.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(n.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(n.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(n.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(n.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(n.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(n.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(n.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(n.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(n.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(n.size=this.size),null!==this.shadowSide&&(n.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(n.sizeAttenuation=this.sizeAttenuation),this.blending!==y&&(n.blending=this.blending),this.side!==f&&(n.side=this.side),this.vertexColors&&(n.vertexColors=!0),this.opacity<1&&(n.opacity=this.opacity),!0===this.transparent&&(n.transparent=this.transparent),n.depthFunc=this.depthFunc,n.depthTest=this.depthTest,n.depthWrite=this.depthWrite,n.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,void 0!==this.rotation&&0!==this.rotation&&(n.rotation=this.rotation),!0===this.polygonOffset&&(n.polygonOffset=!0),0!==this.polygonOffsetFactor&&(n.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(n.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(n.linewidth=this.linewidth),void 0!==this.dashSize&&(n.dashSize=this.dashSize),void 0!==this.gapSize&&(n.gapSize=this.gapSize),void 0!==this.scale&&(n.scale=this.scale),!0===this.dithering&&(n.dithering=!0),this.alphaTest>0&&(n.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(n.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(n.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(n.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(n.flatShading=this.flatShading),!1===this.visible&&(n.visible=!1),!1===this.toneMapped&&(n.toneMapped=!1),!1===this.fog&&(n.fog=!1),Object.keys(this.userData).length>0&&(n.userData=this.userData),t){const t=r(e.textures),i=r(e.images);t.length>0&&(n.textures=t),i.length>0&&(n.images=i)}return n}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let n=null;if(null!==t){const e=t.length;n=new Array(e);for(let r=0;r!==e;++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.forceSinglePass=e.forceSinglePass,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){!0===e&&this.version++}}const Mi={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},Ci={h:0,s:0,l:0},Ti={h:0,s:0,l:0};function Ii(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+6*(t-e)*(2/3-n):e}class Bi{constructor(e,t,n){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===t&&void 0===n?this.set(e):this.setRGB(e,t,n)}set(e){return e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=zt){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,qn.toWorkingColorSpace(this,t),this}setRGB(e,t,n,r=qn.workingColorSpace){return this.r=e,this.g=t,this.b=n,qn.toWorkingColorSpace(this,r),this}setHSL(e,t,n,r=qn.workingColorSpace){if(e=Mn(e,1),t=wn(t,0,1),n=wn(n,0,1),0===t)this.r=this.g=this.b=n;else{const r=n<=.5?n*(1+t):n+t-n*t,i=2*n-r;this.r=Ii(i,r,e+1/3),this.g=Ii(i,r,e),this.b=Ii(i,r,e-1/3)}return qn.toWorkingColorSpace(this,r),this}setStyle(e,t=zt){function n(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let i;const s=r[1],a=r[2];switch(s){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,t);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,t);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return n(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const n=r[1],i=n.length;if(3===i)return this.setRGB(parseInt(n.charAt(0),16)/15,parseInt(n.charAt(1),16)/15,parseInt(n.charAt(2),16)/15,t);if(6===i)return this.setHex(parseInt(n,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=zt){const n=Mi[e.toLowerCase()];return void 0!==n?this.setHex(n,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=Vn(e.r),this.g=Vn(e.g),this.b=Vn(e.b),this}copyLinearToSRGB(e){return this.r=Hn(e.r),this.g=Hn(e.g),this.b=Hn(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=zt){return qn.fromWorkingColorSpace(Ri.copy(this),e),65536*Math.round(wn(255*Ri.r,0,255))+256*Math.round(wn(255*Ri.g,0,255))+Math.round(wn(255*Ri.b,0,255))}getHexString(e=zt){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=qn.workingColorSpace){qn.fromWorkingColorSpace(Ri.copy(this),t);const n=Ri.r,r=Ri.g,i=Ri.b,s=Math.max(n,r,i),a=Math.min(n,r,i);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const e=s-a;switch(l=c<=.5?e/(s+a):e/(2-s-a),s){case n:o=(r-i)/e+(r>-e-14,r[256|l]=1024>>-e-14|32768,i[l]=-e-1,i[256|l]=-e-1):e<=15?(r[l]=e+15<<10,r[256|l]=e+15<<10|32768,i[l]=13,i[256|l]=13):e<128?(r[l]=31744,r[256|l]=64512,i[l]=24,i[256|l]=24):(r[l]=31744,r[256|l]=64512,i[l]=13,i[256|l]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let e=l<<13,t=0;for(;0==(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,s[l]=e|t}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)a[l]=l<<23;a[31]=1199570944,a[32]=2147483648;for(let l=33;l<63;++l)a[l]=2147483648+(l-32<<23);a[63]=3347054592;for(let l=1;l<64;++l)32!==l&&(o[l]=1024);return{floatView:t,uint32View:n,baseTable:r,shiftTable:i,mantissaTable:s,exponentTable:a,offsetTable:o}}function Fi(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=wn(e,-65504,65504),Di.floatView[0]=e;const t=Di.uint32View[0],n=t>>23&511;return Di.baseTable[n]+((8388607&t)>>Di.shiftTable[n])}function Ui(e){const t=e>>10;return Di.uint32View[0]=Di.mantissaTable[Di.offsetTable[t]+(1023&e)]+Di.exponentTable[t],Di.floatView[0]}const Oi={toHalfFloat:Fi,fromHalfFloat:Ui},Ni=new hr,ki=new Ln;class Gi{constructor(e,t,n=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=n,this.usage=on,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&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 r=0,i=this.itemSize;r0&&(e.userData=this.userData),void 0!==this.parameters){const t=this.parameters;for(const n in t)void 0!==t[n]&&(e[n]=t[n]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const n=this.attributes;for(const o in n){const t=n[o];e.data.attributes[o]=t.toJSON(e.data)}const r={};let i=!1;for(const o in this.morphAttributes){const t=this.morphAttributes[o],n=[];for(let r=0,i=t.length;r0&&(r[o]=n,i=!0)}i&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(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;null!==n&&this.setIndex(n.clone(t));const r=e.attributes;for(const l in r){const e=r[l];this.setAttribute(l,e.clone(t))}const i=e.morphAttributes;for(const l in i){const e=[],n=i[l];for(let r=0,i=n.length;r0){const n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e(e.far-e.near)**2)return}ss.copy(i).invert(),as.copy(e.ray).applyMatrix4(ss),null!==n.boundingBox&&!1===as.intersectsBox(n.boundingBox)||this._computeIntersections(e,t)}}_computeIntersections(e,t){let n;const r=this.geometry,i=this.material,s=r.index,a=r.attributes.position,o=r.attributes.uv,l=r.attributes.uv1,c=r.attributes.normal,h=r.groups,u=r.drawRange;if(null!==s)if(Array.isArray(i))for(let d=0,p=h.length;dn.far?null:{distance:c,point:bs.clone(),object:e}}(e,t,n,r,cs,hs,us,xs);if(h){i&&(fs.fromBufferAttribute(i,o),ms.fromBufferAttribute(i,l),gs.fromBufferAttribute(i,c),h.uv=_i.getInterpolation(xs,cs,hs,us,fs,ms,gs,new Ln)),s&&(fs.fromBufferAttribute(s,o),ms.fromBufferAttribute(s,l),gs.fromBufferAttribute(s,c),h.uv1=_i.getInterpolation(xs,cs,hs,us,fs,ms,gs,new Ln),h.uv2=h.uv1),a&&(As.fromBufferAttribute(a,o),vs.fromBufferAttribute(a,l),ys.fromBufferAttribute(a,c),h.normal=_i.getInterpolation(xs,cs,hs,us,As,vs,ys,new hr),h.normal.dot(r.direction)>0&&h.normal.multiplyScalar(-1));const e={a:o,b:l,c:c,normal:new hr,materialIndex:0};_i.getNormal(cs,hs,us,e.normal),h.face=e}return h}class Ss extends is{constructor(e=1,t=1,n=1,r=1,i=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:n,widthSegments:r,heightSegments:i,depthSegments:s};const a=this;r=Math.floor(r),i=Math.floor(i),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(e,t,n,r,i,s,p,f,m,g,A){const v=s/m,y=p/g,x=s/2,b=p/2,E=f/2,_=m+1,S=g+1;let w=0,M=0;const C=new hr;for(let a=0;a0?1:-1,c.push(C.x,C.y,C.z),h.push(o/m),h.push(1-a/g),w+=1}}for(let a=0;a0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const n={};for(const r in this.extensions)!0===this.extensions[r]&&(n[r]=!0);return Object.keys(n).length>0&&(t.extensions=n),t}}class Bs extends ui{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Gr,this.projectionMatrix=new Gr,this.projectionMatrixInverse=new Gr}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)}}class Rs extends Bs{constructor(e=50,t=1,n=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=n,this.far=r,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=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*_n*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*En*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*_n*Math.atan(Math.tan(.5*En*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,r,i,s){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*En*this.fov)/this.zoom,n=2*t,r=this.aspect*n,i=-.5*r;const s=this.view;if(null!==this.view&&this.view.enabled){const e=s.fullWidth,a=s.fullHeight;i+=s.offsetX*r/e,t-=s.offsetY*n/a,r*=s.width/e,n*=s.height/a}const a=this.filmOffset;0!==a&&(i+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+r,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,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Ps=-90;class Ds extends ui{constructor(e,t,n){super(),this.type="CubeCamera",this.renderTarget=n;const r=new Rs(Ps,1,e,t);r.layers=this.layers,r.up.set(0,1,0),r.lookAt(1,0,0),this.add(r);const i=new Rs(Ps,1,e,t);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(-1,0,0),this.add(i);const s=new Rs(Ps,1,e,t);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Rs(Ps,1,e,t);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Rs(Ps,1,e,t);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Rs(Ps,1,e,t);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(e,t){null===this.parent&&this.updateMatrixWorld();const n=this.renderTarget,[r,i,s,a,o,l]=this.children,c=e.getRenderTarget(),h=e.toneMapping,u=e.xr.enabled;e.toneMapping=J,e.xr.enabled=!1;const d=n.texture.generateMipmaps;n.texture.generateMipmaps=!1,e.setRenderTarget(n,0),e.render(t,r),e.setRenderTarget(n,1),e.render(t,i),e.setRenderTarget(n,2),e.render(t,s),e.setRenderTarget(n,3),e.render(t,a),e.setRenderTarget(n,4),e.render(t,o),n.texture.generateMipmaps=d,e.setRenderTarget(n,5),e.render(t,l),e.setRenderTarget(c),e.toneMapping=h,e.xr.enabled=u,n.texture.needsPMREMUpdate=!0}}class Ls extends tr{constructor(e,t,n,r,i,s,a,o,l,c){super(e=void 0!==e?e:[],t=void 0!==t?t:ie,n,r,i,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class Fs extends rr{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const n={width:e,height:e,depth:1},r=[n,n,n,n,n,n];void 0!==t.encoding&&(Qn("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===Ft?zt:Gt),this.texture=new Ls(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:Ae}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const n={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},r=new Ss(5,5,5),i=new Is({name:"CubemapFromEquirect",uniforms:ws(n.uniforms),vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,side:m,blending:v});i.uniforms.tEquirect.value=t;const s=new Es(r,i),a=t.minFilter;t.minFilter===xe&&(t.minFilter=Ae);return new Ds(1,10,this).update(e,s),t.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(e,t,n,r){const i=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(t,n,r);e.setRenderTarget(i)}}const Us=new hr,Os=new hr,Ns=new Fn;class ks{constructor(e=new hr(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,n,r){return this.normal.set(e,t,n),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,n){const r=Us.subVectors(n,t).cross(Os.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(r,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(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const n=e.delta(Us),r=this.normal.dot(n);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const i=-(e.start.dot(this.normal)+this.constant)/r;return i<0||i>1?null:t.copy(e.start).addScaledVector(n,i)}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||Ns.getNormalMatrix(e),r=this.coplanarPoint(Us).applyMatrix4(e),i=this.normal.applyMatrix3(n).normalize();return this.constant=-r.dot(i),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)}}const Gs=new Rr,zs=new hr;class Qs{constructor(e=new ks,t=new ks,n=new ks,r=new ks,i=new ks,s=new ks){this.planes=[e,t,n,r,i,s]}set(e,t,n,r,i,s){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(n),a[3].copy(r),a[4].copy(i),a[5].copy(s),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,r=n[0],i=n[1],s=n[2],a=n[3],o=n[4],l=n[5],c=n[6],h=n[7],u=n[8],d=n[9],p=n[10],f=n[11],m=n[12],g=n[13],A=n[14],v=n[15];return t[0].setComponents(a-r,h-o,f-u,v-m).normalize(),t[1].setComponents(a+r,h+o,f+u,v+m).normalize(),t[2].setComponents(a+i,h+l,f+d,v+g).normalize(),t[3].setComponents(a-i,h-l,f-d,v-g).normalize(),t[4].setComponents(a-s,h-c,f-p,v-A).normalize(),t[5].setComponents(a+s,h+c,f+p,v+A).normalize(),this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),Gs.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),Gs.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Gs)}intersectsSprite(e){return Gs.center.set(0,0,0),Gs.radius=.7071067811865476,Gs.applyMatrix4(e.matrixWorld),this.intersectsSphere(Gs)}intersectsSphere(e){const t=this.planes,n=e.center,r=-e.radius;for(let i=0;i<6;i++){if(t[i].distanceToPoint(n)0?e.max.x:e.min.x,zs.y=r.normal.y>0?e.max.y:e.min.y,zs.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(zs)<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 Vs(){let e=null,t=!1,n=null,r=null;function i(t,s){n(t,s),r=e.requestAnimationFrame(i)}return{start:function(){!0!==t&&null!==n&&(r=e.requestAnimationFrame(i),t=!0)},stop:function(){e.cancelAnimationFrame(r),t=!1},setAnimationLoop:function(e){n=e},setContext:function(t){e=t}}}function Hs(e,t){const n=t.isWebGL2,r=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),r.get(e)},remove:function(t){t.isInterleavedBufferAttribute&&(t=t.data);const n=r.get(t);n&&(e.deleteBuffer(n.buffer),r.delete(t))},update:function(t,i){if(t.isGLBufferAttribute){const e=r.get(t);return void((!e||e.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Xs={common:{diffuse:{value:new Bi(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Fn},alphaMap:{value:null},alphaMapTransform:{value:new Fn},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Fn}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Fn}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Fn}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Fn},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Fn},normalScale:{value:new Ln(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Fn},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Fn}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Fn}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Fn}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Bi(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Bi(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Fn}},sprite:{diffuse:{value:new Bi(16777215)},opacity:{value:1},center:{value:new Ln(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Fn},alphaMap:{value:null},alphaTest:{value:0}}},Ys={basic:{uniforms:Ms([Xs.common,Xs.specularmap,Xs.envmap,Xs.aomap,Xs.lightmap,Xs.fog]),vertexShader:Ws.meshbasic_vert,fragmentShader:Ws.meshbasic_frag},lambert:{uniforms:Ms([Xs.common,Xs.specularmap,Xs.envmap,Xs.aomap,Xs.lightmap,Xs.emissivemap,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.fog,Xs.lights,{emissive:{value:new Bi(0)}}]),vertexShader:Ws.meshlambert_vert,fragmentShader:Ws.meshlambert_frag},phong:{uniforms:Ms([Xs.common,Xs.specularmap,Xs.envmap,Xs.aomap,Xs.lightmap,Xs.emissivemap,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.fog,Xs.lights,{emissive:{value:new Bi(0)},specular:{value:new Bi(1118481)},shininess:{value:30}}]),vertexShader:Ws.meshphong_vert,fragmentShader:Ws.meshphong_frag},standard:{uniforms:Ms([Xs.common,Xs.envmap,Xs.aomap,Xs.lightmap,Xs.emissivemap,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.roughnessmap,Xs.metalnessmap,Xs.fog,Xs.lights,{emissive:{value:new Bi(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ws.meshphysical_vert,fragmentShader:Ws.meshphysical_frag},toon:{uniforms:Ms([Xs.common,Xs.aomap,Xs.lightmap,Xs.emissivemap,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.gradientmap,Xs.fog,Xs.lights,{emissive:{value:new Bi(0)}}]),vertexShader:Ws.meshtoon_vert,fragmentShader:Ws.meshtoon_frag},matcap:{uniforms:Ms([Xs.common,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.fog,{matcap:{value:null}}]),vertexShader:Ws.meshmatcap_vert,fragmentShader:Ws.meshmatcap_frag},points:{uniforms:Ms([Xs.points,Xs.fog]),vertexShader:Ws.points_vert,fragmentShader:Ws.points_frag},dashed:{uniforms:Ms([Xs.common,Xs.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ws.linedashed_vert,fragmentShader:Ws.linedashed_frag},depth:{uniforms:Ms([Xs.common,Xs.displacementmap]),vertexShader:Ws.depth_vert,fragmentShader:Ws.depth_frag},normal:{uniforms:Ms([Xs.common,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,{opacity:{value:1}}]),vertexShader:Ws.meshnormal_vert,fragmentShader:Ws.meshnormal_frag},sprite:{uniforms:Ms([Xs.sprite,Xs.fog]),vertexShader:Ws.sprite_vert,fragmentShader:Ws.sprite_frag},background:{uniforms:{uvTransform:{value:new Fn},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ws.background_vert,fragmentShader:Ws.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Ws.backgroundCube_vert,fragmentShader:Ws.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ws.cube_vert,fragmentShader:Ws.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ws.equirect_vert,fragmentShader:Ws.equirect_frag},distanceRGBA:{uniforms:Ms([Xs.common,Xs.displacementmap,{referencePosition:{value:new hr},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ws.distanceRGBA_vert,fragmentShader:Ws.distanceRGBA_frag},shadow:{uniforms:Ms([Xs.lights,Xs.fog,{color:{value:new Bi(0)},opacity:{value:1}}]),vertexShader:Ws.shadow_vert,fragmentShader:Ws.shadow_frag}};Ys.physical={uniforms:Ms([Ys.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Fn},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Fn},clearcoatNormalScale:{value:new Ln(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Fn},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Fn},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Fn},sheen:{value:0},sheenColor:{value:new Bi(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Fn},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Fn},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Fn},transmissionSamplerSize:{value:new Ln},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Fn},attenuationDistance:{value:0},attenuationColor:{value:new Bi(0)},specularColor:{value:new Bi(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Fn},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Fn}}]),vertexShader:Ws.meshphysical_vert,fragmentShader:Ws.meshphysical_frag};const qs={r:0,b:0,g:0};function Ks(e,t,n,r,i,s,a){const o=new Bi(0);let l,c,h=!0===s?0:1,u=null,d=0,p=null;function g(t,n){t.getRGB(qs,Cs(e)),r.buffers.color.setClear(qs.r,qs.g,qs.b,n,a)}return{getClearColor:function(){return o},setClearColor:function(e,t=1){o.set(e),h=t,g(o,h)},getClearAlpha:function(){return h},setClearAlpha:function(e){h=e,g(o,h)},render:function(s,A){let v=!1,y=!0===A.isScene?A.background:null;if(y&&y.isTexture){y=(A.backgroundBlurriness>0?n:t).get(y)}switch(null===y?g(o,h):y&&y.isColor&&(g(y,1),v=!0),e.xr.getEnvironmentBlendMode()){case"opaque":v=!0;break;case"additive":r.buffers.color.setClear(0,0,0,1,a),v=!0;break;case"alpha-blend":r.buffers.color.setClear(0,0,0,0,a),v=!0}(e.autoClear||v)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),y&&(y.isCubeTexture||y.mapping===le)?(void 0===c&&(c=new Es(new Ss(1,1,1),new Is({name:"BackgroundCubeMaterial",uniforms:ws(Ys.backgroundCube.uniforms),vertexShader:Ys.backgroundCube.vertexShader,fragmentShader:Ys.backgroundCube.fragmentShader,side:m,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(e,t,n){this.matrixWorld.copyPosition(n.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(c)),c.material.uniforms.envMap.value=y,c.material.uniforms.flipEnvMap.value=y.isCubeTexture&&!1===y.isRenderTargetTexture?-1:1,c.material.uniforms.backgroundBlurriness.value=A.backgroundBlurriness,c.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,c.material.toneMapped=y.colorSpace!==zt,u===y&&d===y.version&&p===e.toneMapping||(c.material.needsUpdate=!0,u=y,d=y.version,p=e.toneMapping),c.layers.enableAll(),s.unshift(c,c.geometry,c.material,0,0,null)):y&&y.isTexture&&(void 0===l&&(l=new Es(new js(2,2),new Is({name:"BackgroundMaterial",uniforms:ws(Ys.background.uniforms),vertexShader:Ys.background.vertexShader,fragmentShader:Ys.background.fragmentShader,side:f,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(l)),l.material.uniforms.t2D.value=y,l.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,l.material.toneMapped=y.colorSpace!==zt,!0===y.matrixAutoUpdate&&y.updateMatrix(),l.material.uniforms.uvTransform.value.copy(y.matrix),u===y&&d===y.version&&p===e.toneMapping||(l.material.needsUpdate=!0,u=y,d=y.version,p=e.toneMapping),l.layers.enableAll(),s.unshift(l,l.geometry,l.material,0,0,null))}}}function Js(e,t,n,r){const i=e.getParameter(e.MAX_VERTEX_ATTRIBS),s=r.isWebGL2?null:t.get("OES_vertex_array_object"),a=r.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(t){return r.isWebGL2?e.bindVertexArray(t):s.bindVertexArrayOES(t)}function d(t){return r.isWebGL2?e.deleteVertexArray(t):s.deleteVertexArrayOES(t)}function p(e){const t=[],n=[],r=[];for(let s=0;s=0){const t=i[l];let n=s[l];if(void 0===n&&("instanceMatrix"===l&&e.instanceMatrix&&(n=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(n=e.instanceColor)),void 0===t)return!0;if(t.attribute!==n)return!0;if(n&&t.data!==n.data)return!0;a++}}return c.attributesNum!==a||c.index!==r}(i,y,d,x),b&&function(e,t,n,r){const i={},s=t.attributes;let a=0;const o=n.getAttributes();for(const l in o){if(o[l].location>=0){let t=s[l];void 0===t&&("instanceMatrix"===l&&e.instanceMatrix&&(t=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(t=e.instanceColor));const n={};n.attribute=t,t&&t.data&&(n.data=t.data),i[l]=n,a++}}c.attributes=i,c.attributesNum=a,c.index=r}(i,y,d,x)}else{const e=!0===l.wireframe;c.geometry===y.id&&c.program===d.id&&c.wireframe===e||(c.geometry=y.id,c.program=d.id,c.wireframe=e,b=!0)}null!==x&&n.update(x,e.ELEMENT_ARRAY_BUFFER),(b||h)&&(h=!1,function(i,s,a,o){if(!1===r.isWebGL2&&(i.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;f();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const t in c){const r=c[t];if(r.location>=0){let s=l[t];if(void 0===s&&("instanceMatrix"===t&&i.instanceMatrix&&(s=i.instanceMatrix),"instanceColor"===t&&i.instanceColor&&(s=i.instanceColor)),void 0!==s){const t=s.normalized,a=s.itemSize,l=n.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const n=s.data,l=n.stride,d=s.offset;if(n.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===e.constructor.name;let a=void 0!==n.precision?n.precision:"highp";const o=i(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||t.has("WEBGL_draw_buffers"),c=!0===n.logarithmicDepthBuffer,h=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),u=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=e.getParameter(e.MAX_TEXTURE_SIZE),p=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),f=e.getParameter(e.MAX_VERTEX_ATTRIBS),m=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),g=e.getParameter(e.MAX_VARYING_VECTORS),A=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),v=u>0,y=s||t.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){const n=t.get("EXT_texture_filter_anisotropic");r=e.getParameter(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:i,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:A,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:s?e.getParameter(e.MAX_SAMPLES):0}}function ea(e){const t=this;let n=null,r=0,i=!1,s=!1;const a=new ks,o=new Fn,l={value:null,needsUpdate:!1};function c(e,n,r,i){const s=null!==e?e.length:0;let c=null;if(0!==s){if(c=l.value,!0!==i||null===c){const t=r+4*s,i=n.matrixWorldInverse;o.getNormalMatrix(i),(null===c||c.length0);t.numPlanes=r,t.numIntersection=0}();else{const e=s?0:r,t=4*e;let i=f.clippingState||null;l.value=i,i=c(u,o,t,h);for(let r=0;r!==t;++r)i[r]=n[r];f.clippingState=i,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=e}}}function ta(e){let t=new WeakMap;function n(e,t){return t===ae?e.mapping=ie:t===oe&&(e.mapping=se),e}function r(e){const n=e.target;n.removeEventListener("dispose",r);const i=t.get(n);void 0!==i&&(t.delete(n),i.dispose())}return{get:function(i){if(i&&i.isTexture&&!1===i.isRenderTargetTexture){const s=i.mapping;if(s===ae||s===oe){if(t.has(i)){return n(t.get(i).texture,i.mapping)}{const s=i.image;if(s&&s.height>0){const a=new Fs(s.height/2);return a.fromEquirectangularTexture(e,i),t.set(i,a),i.addEventListener("dispose",r),n(a.texture,i.mapping)}return null}}}return i},dispose:function(){t=new WeakMap}}}class na extends Bs{constructor(e=-1,t=1,n=1,r=-1,i=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=n,this.bottom=r,this.near=i,this.far=s,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=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,n,r,i,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=n,this.view.offsetY=r,this.view.width=i,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(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,r=(this.top+this.bottom)/2;let i=n-e,s=n+e,a=r+t,o=r-t;if(null!==this.view&&this.view.enabled){const e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=e*this.view.offsetX,s=i+e*this.view.width,a-=t*this.view.offsetY,o=a-t*this.view.height}this.projectionMatrix.makeOrthographic(i,s,a,o,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,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}const ra=[.125,.215,.35,.446,.526,.582],ia=20,sa=new na,aa=new Bi;let oa=null;const la=(1+Math.sqrt(5))/2,ca=1/la,ha=[new hr(1,1,1),new hr(-1,1,1),new hr(1,1,-1),new hr(-1,1,-1),new hr(0,la,ca),new hr(0,la,-ca),new hr(ca,0,la),new hr(-ca,0,la),new hr(la,ca,0),new hr(-la,ca,0)];class ua{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,n=.1,r=100){oa=this._renderer.getRenderTarget(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,n,r,i),t>0&&this._blur(i,0,0,t),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=ma(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=fa(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;ee-4?o=ra[a-e+4-1]:0===a&&(o=0),r.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,f=3,m=2,g=1,A=new Float32Array(f*p*d),v=new Float32Array(m*p*d),y=new Float32Array(g*p*d);for(let e=0;e2?0:-1,r=[t,n,0,t+2/3,n,0,t+2/3,n+1,0,t,n,0,t+2/3,n+1,0,t,n+1,0];A.set(r,f*p*e),v.set(u,m*p*e);const i=[e,e,e,e,e,e];y.set(i,g*p*e)}const x=new is;x.setAttribute("position",new Gi(A,f)),x.setAttribute("uv",new Gi(v,m)),x.setAttribute("faceIndex",new Gi(y,g)),t.push(x),i>4&&i--}return{lodPlanes:t,sizeLods:n,sigmas:r}}(r)),this._blurMaterial=function(e,t,n){const r=new Float32Array(ia),i=new hr(0,1,0),s=new Is({name:"SphericalGaussianBlur",defines:{n:ia,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:r},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:ga(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:v,depthTest:!1,depthWrite:!1});return s}(r,e,t)}return r}_compileMaterial(e){const t=new Es(this._lodPlanes[0],e);this._renderer.compile(t,sa)}_sceneToCubeUV(e,t,n,r){const i=new Rs(90,1,t,n),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(aa),o.toneMapping=J,o.autoClear=!1;const h=new Pi({name:"PMREM.Background",side:m,depthWrite:!1,depthTest:!1}),u=new Es(new Ss,h);let d=!1;const p=e.background;p?p.isColor&&(h.color.copy(p),e.background=null,d=!0):(h.color.copy(aa),d=!0);for(let f=0;f<6;f++){const t=f%3;0===t?(i.up.set(0,s[f],0),i.lookAt(a[f],0,0)):1===t?(i.up.set(0,0,s[f]),i.lookAt(0,a[f],0)):(i.up.set(0,s[f],0),i.lookAt(0,0,a[f]));const n=this._cubeSize;pa(r,t*n,f>2?n:0,n,n),o.setRenderTarget(r),d&&o.render(u,i),o.render(e,i)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,e.background=p}_textureToCubeUV(e,t){const n=this._renderer,r=e.mapping===ie||e.mapping===se;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=ma()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=fa());const i=r?this._cubemapMaterial:this._equirectMaterial,s=new Es(this._lodPlanes[0],i);i.uniforms.envMap.value=e;const a=this._cubeSize;pa(t,0,0,3*a,2*a),n.setRenderTarget(t),n.render(s,sa)}_applyPMREM(e){const t=this._renderer,n=t.autoClear;t.autoClear=!1;for(let r=1;ria&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);const m=[];let g=0;for(let y=0;yA-4?r-A+4:0),4*(this._cubeSize-v),3*v,2*v),o.setRenderTarget(t),o.render(c,sa)}}function da(e,t,n){const r=new rr(e,t,n);return r.texture.mapping=le,r.texture.name="PMREM.cubeUv",r.scissorTest=!0,r}function pa(e,t,n,r,i){e.viewport.set(t,n,r,i),e.scissor.set(t,n,r,i)}function fa(){return new Is({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ga(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:v,depthTest:!1,depthWrite:!1})}function ma(){return new Is({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ga(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:v,depthTest:!1,depthWrite:!1})}function ga(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Aa(e){let t=new WeakMap,n=null;function r(e){const n=e.target;n.removeEventListener("dispose",r);const i=t.get(n);void 0!==i&&(t.delete(n),i.dispose())}return{get:function(i){if(i&&i.isTexture){const s=i.mapping,a=s===ae||s===oe,o=s===ie||s===se;if(a||o){if(i.isRenderTargetTexture&&!0===i.needsPMREMUpdate){i.needsPMREMUpdate=!1;let r=t.get(i);return null===n&&(n=new ua(e)),r=a?n.fromEquirectangular(i,r):n.fromCubemap(i,r),t.set(i,r),r.texture}if(t.has(i))return t.get(i).texture;{const s=i.image;if(a&&s&&s.height>0||o&&s&&function(e){let t=0;const n=6;for(let r=0;rt.maxTextureSize&&(w=Math.ceil(S/t.maxTextureSize),S=t.maxTextureSize);const M=new Float32Array(S*w*4*p),C=new ir(M,S,w,p);C.type=Te,C.needsUpdate=!0;const T=4*_;for(let B=0;B0)return e;const i=t*n;let s=Ba[i];if(void 0===s&&(s=new Float32Array(i),Ba[i]=s),0!==t){r.toArray(s,0);for(let r=1,i=0;r!==t;++r)i+=n,e[r].toArray(s,i)}return s}function Ua(e,t){if(e.length!==t.length)return!1;for(let n=0,r=e.length;n":" "} ${e}: ${n[a]}`)}return r.join("\n")}(e.getShaderSource(t),r)}return i}function Lo(e,t){const n=function(e){switch(e){case Qt:return["Linear","( value )"];case zt:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",e),["Linear","( value )"]}}(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+n[0]+n[1]+"; }"}function Fo(e,t){let n;switch(t){case Z:n="Linear";break;case $:n="Reinhard";break;case ee:n="OptimizedCineon";break;case te:n="ACESFilmic";break;case ne:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),n="Linear"}return"vec3 "+e+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function Uo(e){return""!==e}function Oo(e,t){const n=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function No(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const ko=/^[ \t]*#include +<([\w\d./]+)>/gm;function Go(e){return e.replace(ko,zo)}function zo(e,t){const n=Ws[t];if(void 0===n)throw new Error("Can not resolve #include <"+t+">");return Go(n)}const Qo=/#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 Vo(e){return e.replace(Qo,Ho)}function Ho(e,t,n,r){let i="";for(let s=parseInt(t);s0&&(y+="\n"),x=[g,A].filter(Uo).join("\n"),x.length>0&&(x+="\n")):(y=[jo(n),"#define SHADER_NAME "+n.shaderName,A,n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+h:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&!1===n.flatShading?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Uo).join("\n"),x=[g,jo(n),"#define SHADER_NAME "+n.shaderName,A,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+c:"",n.envMap?"#define "+h:"",n.envMap?"#define "+f:"",m?"#define CUBEUV_TEXEL_WIDTH "+m.texelWidth:"",m?"#define CUBEUV_TEXEL_HEIGHT "+m.texelHeight:"",m?"#define CUBEUV_MAX_MIP "+m.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==J?"#define TONE_MAPPING":"",n.toneMapping!==J?Ws.tonemapping_pars_fragment:"",n.toneMapping!==J?Fo("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Ws.encodings_pars_fragment,Lo("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"","\n"].filter(Uo).join("\n")),a=Go(a),a=Oo(a,n),a=No(a,n),o=Go(o),o=Oo(o,n),o=No(o,n),a=Vo(a),o=Vo(o),n.isWebGL2&&!0!==n.isRawShaderMaterial&&(b="#version 300 es\n",y=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+y,x=["#define varying in",n.glslVersion===An?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===An?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+x);const E=b+y+a,_=b+x+o,S=Ro(i,i.VERTEX_SHADER,E),w=Ro(i,i.FRAGMENT_SHADER,_);if(i.attachShader(v,S),i.attachShader(v,w),void 0!==n.index0AttributeName?i.bindAttribLocation(v,0,n.index0AttributeName):!0===n.morphTargets&&i.bindAttribLocation(v,0,"position"),i.linkProgram(v),e.debug.checkShaderErrors){const t=i.getProgramInfoLog(v).trim(),n=i.getShaderInfoLog(S).trim(),r=i.getShaderInfoLog(w).trim();let s=!0,a=!0;if(!1===i.getProgramParameter(v,i.LINK_STATUS))if(s=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(i,v,S,w);else{const e=Do(i,S,"vertex"),n=Do(i,w,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(v,i.VALIDATE_STATUS)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+n)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):""!==n&&""!==r||(a=!1);a&&(this.diagnostics={runnable:s,programLog:t,vertexShader:{log:n,prefix:y},fragmentShader:{log:r,prefix:x}})}let M,C;return i.deleteShader(S),i.deleteShader(w),this.getUniforms=function(){return void 0===M&&(M=new Bo(i,v)),M},this.getAttributes=function(){return void 0===C&&(C=function(e,t){const n={},r=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let i=0;i0,Y=s.iridescence>0,q=s.sheen>0,K=s.transmission>0,Z=X&&!!s.clearcoatMap,$=X&&!!s.clearcoatNormalMap,ee=X&&!!s.clearcoatRoughnessMap,te=Y&&!!s.iridescenceMap,ne=Y&&!!s.iridescenceThicknessMap,re=q&&!!s.sheenColorMap,ie=q&&!!s.sheenRoughnessMap,se=!!s.specularMap,ae=!!s.specularColorMap,oe=!!s.specularIntensityMap,ce=K&&!!s.transmissionMap,he=K&&!!s.thicknessMap,ue=!!s.gradientMap,de=!!s.alphaMap,pe=s.alphaTest>0,fe=!!s.extensions,me=!!E.attributes.uv1,ge=!!E.attributes.uv2,Ae=!!E.attributes.uv3;return{isWebGL2:h,shaderID:M,shaderName:s.type,vertexShader:I,fragmentShader:B,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:P,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:p,instancing:F,instancingColor:F&&null!==x.instanceColor,supportsVertexTextures:d,outputColorSpace:null===L?e.outputColorSpace:!0===L.isXRRenderTarget?L.texture.colorSpace:Qt,map:U,matcap:O,envMap:N,envMapMode:N&&S.mapping,envMapCubeUVHeight:w,aoMap:k,lightMap:G,bumpMap:z,normalMap:Q,displacementMap:d&&V,emissiveMap:H,normalMapObjectSpace:Q&&s.normalMapType===kt,normalMapTangentSpace:Q&&s.normalMapType===Nt,metalnessMap:j,roughnessMap:W,clearcoat:X,clearcoatMap:Z,clearcoatNormalMap:$,clearcoatRoughnessMap:ee,iridescence:Y,iridescenceMap:te,iridescenceThicknessMap:ne,sheen:q,sheenColorMap:re,sheenRoughnessMap:ie,specularMap:se,specularColorMap:ae,specularIntensityMap:oe,transmission:K,transmissionMap:ce,thicknessMap:he,gradientMap:ue,opaque:!1===s.transparent&&s.blending===y,alphaMap:de,alphaTest:pe,combine:s.combine,mapUv:U&&A(s.map.channel),aoMapUv:k&&A(s.aoMap.channel),lightMapUv:G&&A(s.lightMap.channel),bumpMapUv:z&&A(s.bumpMap.channel),normalMapUv:Q&&A(s.normalMap.channel),displacementMapUv:V&&A(s.displacementMap.channel),emissiveMapUv:H&&A(s.emissiveMap.channel),metalnessMapUv:j&&A(s.metalnessMap.channel),roughnessMapUv:W&&A(s.roughnessMap.channel),clearcoatMapUv:Z&&A(s.clearcoatMap.channel),clearcoatNormalMapUv:$&&A(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ee&&A(s.clearcoatRoughnessMap.channel),iridescenceMapUv:te&&A(s.iridescenceMap.channel),iridescenceThicknessMapUv:ne&&A(s.iridescenceThicknessMap.channel),sheenColorMapUv:re&&A(s.sheenColorMap.channel),sheenRoughnessMapUv:ie&&A(s.sheenRoughnessMap.channel),specularMapUv:se&&A(s.specularMap.channel),specularColorMapUv:ae&&A(s.specularColorMap.channel),specularIntensityMapUv:oe&&A(s.specularIntensityMap.channel),transmissionMapUv:ce&&A(s.transmissionMap.channel),thicknessMapUv:he&&A(s.thicknessMap.channel),alphaMapUv:de&&A(s.alphaMap.channel),vertexTangents:Q&&!!E.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!E.attributes.color&&4===E.attributes.color.itemSize,vertexUv1s:me,vertexUv2s:ge,vertexUv3s:Ae,pointsUvs:!0===x.isPoints&&!!E.attributes.uv&&(U||de),fog:!!b,useFog:!0===s.fog,fogExp2:b&&b.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===x.isSkinnedMesh,morphTargets:void 0!==E.morphAttributes.position,morphNormals:void 0!==E.morphAttributes.normal,morphColors:void 0!==E.morphAttributes.color,morphTargetsCount:T,morphTextureStride:D,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:e.shadowMap.enabled&&c.length>0,shadowMapType:e.shadowMap.type,toneMapping:s.toneMapped?e.toneMapping:J,useLegacyLights:e.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===g,flipSided:s.side===m,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:fe&&!0===s.extensions.derivatives,extensionFragDepth:fe&&!0===s.extensions.fragDepth,extensionDrawBuffers:fe&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:fe&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||r.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||r.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||r.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(t){const n=[];if(t.shaderID?n.push(t.shaderID):(n.push(t.customVertexShaderID),n.push(t.customFragmentShaderID)),void 0!==t.defines)for(const e in t.defines)n.push(e),n.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(!function(e,t){e.push(t.precision),e.push(t.outputColorSpace),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.mapUv),e.push(t.alphaMapUv),e.push(t.lightMapUv),e.push(t.aoMapUv),e.push(t.bumpMapUv),e.push(t.normalMapUv),e.push(t.displacementMapUv),e.push(t.emissiveMapUv),e.push(t.metalnessMapUv),e.push(t.roughnessMapUv),e.push(t.clearcoatMapUv),e.push(t.clearcoatNormalMapUv),e.push(t.clearcoatRoughnessMapUv),e.push(t.iridescenceMapUv),e.push(t.iridescenceThicknessMapUv),e.push(t.sheenColorMapUv),e.push(t.sheenRoughnessMapUv),e.push(t.specularMapUv),e.push(t.specularColorMapUv),e.push(t.specularIntensityMapUv),e.push(t.transmissionMapUv),e.push(t.thicknessMapUv),e.push(t.combine),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numSpotLightMaps),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.numSpotLightShadowsWithMaps),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(n,t),function(e,t){o.disableAll(),t.isWebGL2&&o.enable(0);t.supportsVertexTextures&&o.enable(1);t.instancing&&o.enable(2);t.instancingColor&&o.enable(3);t.matcap&&o.enable(4);t.envMap&&o.enable(5);t.normalMapObjectSpace&&o.enable(6);t.normalMapTangentSpace&&o.enable(7);t.clearcoat&&o.enable(8);t.iridescence&&o.enable(9);t.alphaTest&&o.enable(10);t.vertexColors&&o.enable(11);t.vertexAlphas&&o.enable(12);t.vertexUv1s&&o.enable(13);t.vertexUv2s&&o.enable(14);t.vertexUv3s&&o.enable(15);t.vertexTangents&&o.enable(16);e.push(o.mask),o.disableAll(),t.fog&&o.enable(0);t.useFog&&o.enable(1);t.flatShading&&o.enable(2);t.logarithmicDepthBuffer&&o.enable(3);t.skinning&&o.enable(4);t.morphTargets&&o.enable(5);t.morphNormals&&o.enable(6);t.morphColors&&o.enable(7);t.premultipliedAlpha&&o.enable(8);t.shadowMapEnabled&&o.enable(9);t.useLegacyLights&&o.enable(10);t.doubleSided&&o.enable(11);t.flipSided&&o.enable(12);t.useDepthPacking&&o.enable(13);t.dithering&&o.enable(14);t.transmission&&o.enable(15);t.sheen&&o.enable(16);t.opaque&&o.enable(17);t.pointsUvs&&o.enable(18);e.push(o.mask)}(n,t),n.push(e.outputColorSpace)),n.push(t.customProgramCacheKey),n.join()},getUniforms:function(e){const t=f[e.type];let n;if(t){const e=Ys[t];n=Ts.clone(e.uniforms)}else n=e.uniforms;return n},acquireProgram:function(t,n){let r;for(let e=0,i=c.length;e0?r.push(h):!0===a.transparent?i.push(h):n.push(h)},unshift:function(e,t,a,o,l,c){const h=s(e,t,a,o,l,c);a.transmission>0?r.unshift(h):!0===a.transparent?i.unshift(h):n.unshift(h)},finish:function(){for(let n=t,r=e.length;n1&&n.sort(e||Zo),r.length>1&&r.sort(t||$o),i.length>1&&i.sort(t||$o)}}}function tl(){let e=new WeakMap;return{get:function(t,n){const r=e.get(t);let i;return void 0===r?(i=new el,e.set(t,[i])):n>=r.length?(i=new el,r.push(i)):i=r[n],i},dispose:function(){e=new WeakMap}}}function nl(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case"DirectionalLight":n={direction:new hr,color:new Bi};break;case"SpotLight":n={position:new hr,direction:new hr,color:new Bi,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new hr,color:new Bi,distance:0,decay:0};break;case"HemisphereLight":n={direction:new hr,skyColor:new Bi,groundColor:new Bi};break;case"RectAreaLight":n={color:new Bi,position:new hr,halfWidth:new hr,halfHeight:new hr}}return e[t.id]=n,n}}}let rl=0;function il(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function sl(e,t){const n=new nl,r=function(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let n;switch(t.type){case"DirectionalLight":case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ln};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ln,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=n,n}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let l=0;l<9;l++)i.probe.push(new hr);const s=new hr,a=new Gr,o=new Gr;return{setup:function(s,a){let o=0,l=0,c=0;for(let e=0;e<9;e++)i.probe[e].set(0,0,0);let h=0,u=0,d=0,p=0,f=0,m=0,g=0,A=0,v=0,y=0;s.sort(il);const x=!0===a?Math.PI:1;for(let e=0,t=s.length;e0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(i.rectAreaLTC1=Xs.LTC_FLOAT_1,i.rectAreaLTC2=Xs.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(i.rectAreaLTC1=Xs.LTC_HALF_1,i.rectAreaLTC2=Xs.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=o,i.ambient[1]=l,i.ambient[2]=c;const b=i.hash;b.directionalLength===h&&b.pointLength===u&&b.spotLength===d&&b.rectAreaLength===p&&b.hemiLength===f&&b.numDirectionalShadows===m&&b.numPointShadows===g&&b.numSpotShadows===A&&b.numSpotMaps===v||(i.directional.length=h,i.spot.length=d,i.rectArea.length=p,i.point.length=u,i.hemi.length=f,i.directionalShadow.length=m,i.directionalShadowMap.length=m,i.pointShadow.length=g,i.pointShadowMap.length=g,i.spotShadow.length=A,i.spotShadowMap.length=A,i.directionalShadowMatrix.length=m,i.pointShadowMatrix.length=g,i.spotLightMatrix.length=A+v-y,i.spotLightMap.length=v,i.numSpotLightShadowsWithMaps=y,b.directionalLength=h,b.pointLength=u,b.spotLength=d,b.rectAreaLength=p,b.hemiLength=f,b.numDirectionalShadows=m,b.numPointShadows=g,b.numSpotShadows=A,b.numSpotMaps=v,i.version=rl++)},setupView:function(e,t){let n=0,r=0,l=0,c=0,h=0;const u=t.matrixWorldInverse;for(let d=0,p=e.length;d=s.length?(a=new al(e,t),s.push(a)):a=s[i],a},dispose:function(){n=new WeakMap}}}class ll extends wi{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Ut,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class cl extends wi{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}function hl(e,t,n){let r=new Qs;const i=new Ln,s=new Ln,a=new nr,o=new ll({depthPacking:Ot}),l=new cl,c={},h=n.maxTextureSize,d={[f]:m,[m]:f,[g]:g},A=new Is({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ln},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),y=A.clone();y.defines.HORIZONTAL_PASS=1;const x=new is;x.setAttribute("position",new Gi(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const b=new Es(x,A),E=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=u;let _=this.type;function S(n,r){const s=t.update(b);A.defines.VSM_SAMPLES!==n.blurSamples&&(A.defines.VSM_SAMPLES=n.blurSamples,y.defines.VSM_SAMPLES=n.blurSamples,A.needsUpdate=!0,y.needsUpdate=!0),null===n.mapPass&&(n.mapPass=new rr(i.x,i.y)),A.uniforms.shadow_pass.value=n.map.texture,A.uniforms.resolution.value=n.mapSize,A.uniforms.radius.value=n.radius,e.setRenderTarget(n.mapPass),e.clear(),e.renderBufferDirect(r,null,s,A,b,null),y.uniforms.shadow_pass.value=n.mapPass.texture,y.uniforms.resolution.value=n.mapSize,y.uniforms.radius.value=n.radius,e.setRenderTarget(n.map),e.clear(),e.renderBufferDirect(r,null,s,y,b,null)}function w(t,n,r,i){let s=null;const a=!0===r.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===r.isPointLight?l:o,e.localClippingEnabled&&!0===n.clipShadows&&Array.isArray(n.clippingPlanes)&&0!==n.clippingPlanes.length||n.displacementMap&&0!==n.displacementScale||n.alphaMap&&n.alphaTest>0||n.map&&n.alphaTest>0){const e=s.uuid,t=n.uuid;let r=c[e];void 0===r&&(r={},c[e]=r);let i=r[t];void 0===i&&(i=s.clone(),r[t]=i),s=i}if(s.visible=n.visible,s.wireframe=n.wireframe,s.side=i===p?null!==n.shadowSide?n.shadowSide:n.side:null!==n.shadowSide?n.shadowSide:d[n.side],s.alphaMap=n.alphaMap,s.alphaTest=n.alphaTest,s.map=n.map,s.clipShadows=n.clipShadows,s.clippingPlanes=n.clippingPlanes,s.clipIntersection=n.clipIntersection,s.displacementMap=n.displacementMap,s.displacementScale=n.displacementScale,s.displacementBias=n.displacementBias,s.wireframeLinewidth=n.wireframeLinewidth,s.linewidth=n.linewidth,!0===r.isPointLight&&!0===s.isMeshDistanceMaterial){e.properties.get(s).light=r}return s}function M(n,i,s,a,o){if(!1===n.visible)return;if(n.layers.test(i.layers)&&(n.isMesh||n.isLine||n.isPoints)&&(n.castShadow||n.receiveShadow&&o===p)&&(!n.frustumCulled||r.intersectsObject(n))){n.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,n.matrixWorld);const r=t.update(n),i=n.material;if(Array.isArray(i)){const t=r.groups;for(let l=0,c=t.length;lh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/u.x),i.x=s.x*u.x,c.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/u.y),i.y=s.y*u.y,c.mapSize.y=s.y)),null===c.map||!0===f||!0===m){const e=this.type!==p?{minFilter:de,magFilter:de}:{};null!==c.map&&c.map.dispose(),c.map=new rr(i.x,i.y,e),c.map.texture.name=l.name+".shadowMap",c.camera.updateProjectionMatrix()}e.setRenderTarget(c.map),e.clear();const A=c.getViewportCount();for(let e=0;e=1):-1!==de.indexOf("OpenGL ES")&&(ue=parseFloat(/^OpenGL ES (\d)/.exec(de)[1]),he=ue>=2);let pe=null,fe={};const me=e.getParameter(e.SCISSOR_BOX),ge=e.getParameter(e.VIEWPORT),Ae=(new nr).fromArray(me),ve=(new nr).fromArray(ge);function ye(t,n,i,s){const a=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let l=0;lr||e.height>r)&&(i=r/Math.max(e.width,e.height)),i<1||!0===t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const r=t?Bn:Math.floor,s=r(i*e.width),a=r(i*e.height);void 0===m&&(m=v(s,a));const o=n?v(s,a):m;o.width=s,o.height=a;return o.getContext("2d").drawImage(e,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+s+"x"+a+")."),o}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function x(e){return Tn(e.width)&&Tn(e.height)}function b(e,t){return e.generateMipmaps&&t&&e.minFilter!==de&&e.minFilter!==Ae}function E(t){e.generateMipmap(t)}function _(n,r,i,s,a=!1){if(!1===o)return r;if(null!==n){if(void 0!==e[n])return e[n];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+n+"'")}let l=r;return r===e.RED&&(i===e.FLOAT&&(l=e.R32F),i===e.HALF_FLOAT&&(l=e.R16F),i===e.UNSIGNED_BYTE&&(l=e.R8)),r===e.RG&&(i===e.FLOAT&&(l=e.RG32F),i===e.HALF_FLOAT&&(l=e.RG16F),i===e.UNSIGNED_BYTE&&(l=e.RG8)),r===e.RGBA&&(i===e.FLOAT&&(l=e.RGBA32F),i===e.HALF_FLOAT&&(l=e.RGBA16F),i===e.UNSIGNED_BYTE&&(l=s===zt&&!1===a?e.SRGB8_ALPHA8:e.RGBA8),i===e.UNSIGNED_SHORT_4_4_4_4&&(l=e.RGBA4),i===e.UNSIGNED_SHORT_5_5_5_1&&(l=e.RGB5_A1)),l!==e.R16F&&l!==e.R32F&&l!==e.RG16F&&l!==e.RG32F&&l!==e.RGBA16F&&l!==e.RGBA32F||t.get("EXT_color_buffer_float"),l}function S(e,t,n){return!0===b(e,n)||e.isFramebufferTexture&&e.minFilter!==de&&e.minFilter!==Ae?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function w(t){return t===de||t===pe||t===me?e.NEAREST:e.LINEAR}function M(e){const t=e.target;t.removeEventListener("dispose",M),function(e){const t=r.get(e);if(void 0===t.__webglInit)return;const n=e.source,i=g.get(n);if(i){const r=i[t.__cacheKey];r.usedTimes--,0===r.usedTimes&&T(e),0===Object.keys(i).length&&g.delete(n)}r.remove(e)}(t),t.isVideoTexture&&f.delete(t)}function C(t){const n=t.target;n.removeEventListener("dispose",C),function(t){const n=t.texture,i=r.get(t),s=r.get(n);void 0!==s.__webglTexture&&(e.deleteTexture(s.__webglTexture),a.memory.textures--);t.depthTexture&&t.depthTexture.dispose();if(t.isWebGLCubeRenderTarget)for(let r=0;r<6;r++)e.deleteFramebuffer(i.__webglFramebuffer[r]),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer[r]);else{if(e.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer),i.__webglMultisampledFramebuffer&&e.deleteFramebuffer(i.__webglMultisampledFramebuffer),i.__webglColorRenderbuffer)for(let t=0;t0&&s.__version!==t.version){const e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void F(s,t,i);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}n.bindTexture(e.TEXTURE_2D,s.__webglTexture,e.TEXTURE0+i)}const R={[ce]:e.REPEAT,[he]:e.CLAMP_TO_EDGE,[ue]:e.MIRRORED_REPEAT},P={[de]:e.NEAREST,[pe]:e.NEAREST_MIPMAP_NEAREST,[me]:e.NEAREST_MIPMAP_LINEAR,[Ae]:e.LINEAR,[ve]:e.LINEAR_MIPMAP_NEAREST,[xe]:e.LINEAR_MIPMAP_LINEAR};function D(n,s,a){if(a?(e.texParameteri(n,e.TEXTURE_WRAP_S,R[s.wrapS]),e.texParameteri(n,e.TEXTURE_WRAP_T,R[s.wrapT]),n!==e.TEXTURE_3D&&n!==e.TEXTURE_2D_ARRAY||e.texParameteri(n,e.TEXTURE_WRAP_R,R[s.wrapR]),e.texParameteri(n,e.TEXTURE_MAG_FILTER,P[s.magFilter]),e.texParameteri(n,e.TEXTURE_MIN_FILTER,P[s.minFilter])):(e.texParameteri(n,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(n,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),n!==e.TEXTURE_3D&&n!==e.TEXTURE_2D_ARRAY||e.texParameteri(n,e.TEXTURE_WRAP_R,e.CLAMP_TO_EDGE),s.wrapS===he&&s.wrapT===he||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(n,e.TEXTURE_MAG_FILTER,w(s.magFilter)),e.texParameteri(n,e.TEXTURE_MIN_FILTER,w(s.minFilter)),s.minFilter!==de&&s.minFilter!==Ae&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===t.has("EXT_texture_filter_anisotropic")){const a=t.get("EXT_texture_filter_anisotropic");if(s.magFilter===de)return;if(s.minFilter!==me&&s.minFilter!==xe)return;if(s.type===Te&&!1===t.has("OES_texture_float_linear"))return;if(!1===o&&s.type===Ie&&!1===t.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||r.get(s).__currentAnisotropy)&&(e.texParameterf(n,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,i.getMaxAnisotropy())),r.get(s).__currentAnisotropy=s.anisotropy)}}function L(t,n){let r=!1;void 0===t.__webglInit&&(t.__webglInit=!0,n.addEventListener("dispose",M));const i=n.source;let s=g.get(i);void 0===s&&(s={},g.set(i,s));const o=function(e){const t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR||0),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.colorSpace),t.join()}(n);if(o!==t.__cacheKey){void 0===s[o]&&(s[o]={texture:e.createTexture(),usedTimes:0},a.memory.textures++,r=!0),s[o].usedTimes++;const i=s[t.__cacheKey];void 0!==i&&(s[t.__cacheKey].usedTimes--,0===i.usedTimes&&T(n)),t.__cacheKey=o,t.__webglTexture=s[o].texture}return r}function F(t,i,a){let l=e.TEXTURE_2D;(i.isDataArrayTexture||i.isCompressedArrayTexture)&&(l=e.TEXTURE_2D_ARRAY),i.isData3DTexture&&(l=e.TEXTURE_3D);const c=L(t,i),u=i.source;n.bindTexture(l,t.__webglTexture,e.TEXTURE0+a);const d=r.get(u);if(u.version!==d.__version||!0===c){n.activeTexture(e.TEXTURE0+a),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);const t=function(e){return!o&&(e.wrapS!==he||e.wrapT!==he||e.minFilter!==de&&e.minFilter!==Ae)}(i)&&!1===x(i.image);let r=y(i.image,t,!1,h);r=z(i,r);const p=x(r)||o,f=s.convert(i.format,i.colorSpace);let m,g=s.convert(i.type),A=_(i.internalFormat,f,g,i.colorSpace);D(l,i,p);const v=i.mipmaps,w=o&&!0!==i.isVideoTexture,M=void 0===d.__version||!0===c,C=S(i,r,p);if(i.isDepthTexture)A=e.DEPTH_COMPONENT,o?A=i.type===Te?e.DEPTH_COMPONENT32F:i.type===Ce?e.DEPTH_COMPONENT24:i.type===Pe?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT16:i.type===Te&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===Oe&&A===e.DEPTH_COMPONENT&&i.type!==we&&i.type!==Ce&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=Ce,g=s.convert(i.type)),i.format===Ne&&A===e.DEPTH_COMPONENT&&(A=e.DEPTH_STENCIL,i.type!==Pe&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=Pe,g=s.convert(i.type))),M&&(w?n.texStorage2D(e.TEXTURE_2D,1,A,r.width,r.height):n.texImage2D(e.TEXTURE_2D,0,A,r.width,r.height,0,f,g,null));else if(i.isDataTexture)if(v.length>0&&p){w&&M&&n.texStorage2D(e.TEXTURE_2D,C,A,v[0].width,v[0].height);for(let t=0,r=v.length;t>=1,i>>=1}}else if(v.length>0&&p){w&&M&&n.texStorage2D(e.TEXTURE_2D,C,A,v[0].width,v[0].height);for(let t=0,r=v.length;t=e.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,l,r.get(a).__webglTexture,0),n.bindFramebuffer(e.FRAMEBUFFER,null)}function O(t,n,r){if(e.bindRenderbuffer(e.RENDERBUFFER,t),n.depthBuffer&&!n.stencilBuffer){let i=e.DEPTH_COMPONENT16;if(r||G(n)){const t=n.depthTexture;t&&t.isDepthTexture&&(t.type===Te?i=e.DEPTH_COMPONENT32F:t.type===Ce&&(i=e.DEPTH_COMPONENT24));const r=k(n);G(n)?d.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,r,i,n.width,n.height):e.renderbufferStorageMultisample(e.RENDERBUFFER,r,i,n.width,n.height)}else e.renderbufferStorage(e.RENDERBUFFER,i,n.width,n.height);e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)}else if(n.depthBuffer&&n.stencilBuffer){const i=k(n);r&&!1===G(n)?e.renderbufferStorageMultisample(e.RENDERBUFFER,i,e.DEPTH24_STENCIL8,n.width,n.height):G(n)?d.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,i,e.DEPTH24_STENCIL8,n.width,n.height):e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,n.width,n.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)}else{const t=!0===n.isWebGLMultipleRenderTargets?n.texture:[n.texture];for(let i=0;i0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==n.__useRenderToTexture}function z(e,n){const r=e.colorSpace,i=e.format,s=e.type;return!0===e.isCompressedTexture||e.format===vn||r!==Qt&&r!==Gt&&(r===zt?!1===o?!0===t.has("EXT_sRGB")&&i===Le?(e.format=vn,e.minFilter=Ae,e.generateMipmaps=!1):n=Jn.sRGBToLinear(n):i===Le&&s===Ee||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",r)),n}this.allocateTextureUnit=function(){const e=I;return e>=l&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+l),I+=1,e},this.resetTextureUnits=function(){I=0},this.setTexture2D=B,this.setTexture2DArray=function(t,i){const s=r.get(t);t.version>0&&s.__version!==t.version?F(s,t,i):n.bindTexture(e.TEXTURE_2D_ARRAY,s.__webglTexture,e.TEXTURE0+i)},this.setTexture3D=function(t,i){const s=r.get(t);t.version>0&&s.__version!==t.version?F(s,t,i):n.bindTexture(e.TEXTURE_3D,s.__webglTexture,e.TEXTURE0+i)},this.setTextureCube=function(t,i){const a=r.get(t);t.version>0&&a.__version!==t.version?function(t,i,a){if(6!==i.image.length)return;const l=L(t,i),h=i.source;n.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+a);const u=r.get(h);if(h.version!==u.__version||!0===l){n.activeTexture(e.TEXTURE0+a),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);const t=i.isCompressedTexture||i.image[0].isCompressedTexture,r=i.image[0]&&i.image[0].isDataTexture,d=[];for(let e=0;e<6;e++)d[e]=t||r?r?i.image[e].image:i.image[e]:y(i.image[e],!1,!0,c),d[e]=z(i,d[e]);const p=d[0],f=x(p)||o,m=s.convert(i.format,i.colorSpace),g=s.convert(i.type),A=_(i.internalFormat,m,g,i.colorSpace),v=o&&!0!==i.isVideoTexture,w=void 0===u.__version||!0===l;let M,C=S(i,p,f);if(D(e.TEXTURE_CUBE_MAP,i,f),t){v&&w&&n.texStorage2D(e.TEXTURE_CUBE_MAP,C,A,p.width,p.height);for(let t=0;t<6;t++){M=d[t].mipmaps;for(let r=0;r0&&C++,n.texStorage2D(e.TEXTURE_CUBE_MAP,C,A,d[0].width,d[0].height));for(let t=0;t<6;t++)if(r){v?n.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,0,0,d[t].width,d[t].height,m,g,d[t].data):n.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,A,d[t].width,d[t].height,0,m,g,d[t].data);for(let r=0;r0&&!1===G(t)){const r=d?l:[l];c.__webglMultisampledFramebuffer=e.createFramebuffer(),c.__webglColorRenderbuffer=[],n.bindFramebuffer(e.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let n=0;n0&&!1===G(t)){const i=t.isWebGLMultipleRenderTargets?t.texture:[t.texture],s=t.width,a=t.height;let o=e.COLOR_BUFFER_BIT;const l=[],c=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,h=r.get(t),u=!0===t.isWebGLMultipleRenderTargets;if(u)for(let t=0;to+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&(i=t.getPose(e.gripSpace,n),null!==i&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(r=t.getPose(e.targetRaySpace,n),null===r&&null!==i&&(r=i),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(gl)))}return null!==a&&(a.visible=null!==r),null!==o&&(o.visible=null!==i),null!==l&&(l.visible=null!==s),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){const n=new ml;n.matrixAutoUpdate=!1,n.visible=!1,e.joints[t.jointName]=n,e.add(n)}return e.joints[t.jointName]}}class vl extends tr{constructor(e,t,n,r,i,s,a,o,l,c){if((c=void 0!==c?c:Oe)!==Oe&&c!==Ne)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===n&&c===Oe&&(n=Ce),void 0===n&&c===Ne&&(n=Pe),super(null,r,i,s,a,o,c,n,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==a?a:de,this.minFilter=void 0!==o?o:de,this.flipY=!1,this.generateMipmaps=!1}}class yl extends yn{constructor(e,t){super();const n=this;let r=null,i=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const f=t.getContextAttributes();let m=null,g=null;const A=[],v=[],y=new Set,x=new Map,b=new Rs;b.layers.enable(1),b.viewport=new nr;const E=new Rs;E.layers.enable(2),E.viewport=new nr;const _=[b,E],S=new fl;S.layers.enable(1),S.layers.enable(2);let w=null,M=null;function C(e){const t=v.indexOf(e.inputSource);if(-1===t)return;const n=A[t];void 0!==n&&(n.update(e.inputSource,e.frame,l||s),n.dispatchEvent({type:e.type,data:e.inputSource}))}function T(){r.removeEventListener("select",C),r.removeEventListener("selectstart",C),r.removeEventListener("selectend",C),r.removeEventListener("squeeze",C),r.removeEventListener("squeezestart",C),r.removeEventListener("squeezeend",C),r.removeEventListener("end",T),r.removeEventListener("inputsourceschange",I);for(let e=0;e=0&&(v[r]=null,A[r].disconnect(n))}for(let t=0;t=v.length){v.push(n),r=e;break}if(null===v[e]){v[e]=n,r=e;break}}if(-1===r)break}const i=A[r];i&&i.connect(n)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=A[e];return void 0===t&&(t=new Al,A[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=A[e];return void 0===t&&(t=new Al,A[e]=t),t.getGripSpace()},this.getHand=function(e){let t=A[e];return void 0===t&&(t=new Al,A[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){i=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){a=e,!0===n.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return r},this.setSession=async function(c){if(r=c,null!==r){if(m=e.getRenderTarget(),r.addEventListener("select",C),r.addEventListener("selectstart",C),r.addEventListener("selectend",C),r.addEventListener("squeeze",C),r.addEventListener("squeezestart",C),r.addEventListener("squeezeend",C),r.addEventListener("end",T),r.addEventListener("inputsourceschange",I),!0!==f.xrCompatible&&await t.makeXRCompatible(),void 0===r.renderState.layers||!1===e.capabilities.isWebGL2){const n={antialias:void 0!==r.renderState.layers||f.antialias,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:i};d=new XRWebGLLayer(r,t,n),r.updateRenderState({baseLayer:d}),g=new rr(d.framebufferWidth,d.framebufferHeight,{format:Le,type:Ee,colorSpace:e.outputColorSpace,stencilBuffer:f.stencil})}else{let n=null,s=null,a=null;f.depth&&(a=f.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,n=f.stencil?Ne:Oe,s=f.stencil?Pe:Ce);const o={colorFormat:t.RGBA8,depthFormat:a,scaleFactor:i};h=new XRWebGLBinding(r,t),u=h.createProjectionLayer(o),r.updateRenderState({layers:[u]}),g=new rr(u.textureWidth,u.textureHeight,{format:Le,type:Ee,depthTexture:new vl(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,n),stencilBuffer:f.stencil,colorSpace:e.outputColorSpace,samples:f.antialias?4:0});e.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await r.requestReferenceSpace(a),L.setContext(r),L.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==r)return r.environmentBlendMode};const B=new hr,R=new hr;function P(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===r)return;S.near=E.near=b.near=e.near,S.far=E.far=b.far=e.far,w===S.near&&M===S.far||(r.updateRenderState({depthNear:S.near,depthFar:S.far}),w=S.near,M=S.far);const t=e.parent,n=S.cameras;P(S,t);for(let r=0;re&&(x.set(t,t.lastChangedTime),n.dispatchEvent({type:"planechanged",data:t}))}else y.add(t),x.set(t,r.lastChangedTime),n.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(e){D=e},this.dispose=function(){}}}function xl(e,t){function n(e,t){!0===e.matrixAutoUpdate&&e.updateMatrix(),t.value.copy(e.matrix)}function r(r,i){r.opacity.value=i.opacity,i.color&&r.diffuse.value.copy(i.color),i.emissive&&r.emissive.value.copy(i.emissive).multiplyScalar(i.emissiveIntensity),i.map&&(r.map.value=i.map,n(i.map,r.mapTransform)),i.alphaMap&&(r.alphaMap.value=i.alphaMap,n(i.alphaMap,r.alphaMapTransform)),i.bumpMap&&(r.bumpMap.value=i.bumpMap,n(i.bumpMap,r.bumpMapTransform),r.bumpScale.value=i.bumpScale,i.side===m&&(r.bumpScale.value*=-1)),i.normalMap&&(r.normalMap.value=i.normalMap,n(i.normalMap,r.normalMapTransform),r.normalScale.value.copy(i.normalScale),i.side===m&&r.normalScale.value.negate()),i.displacementMap&&(r.displacementMap.value=i.displacementMap,n(i.displacementMap,r.displacementMapTransform),r.displacementScale.value=i.displacementScale,r.displacementBias.value=i.displacementBias),i.emissiveMap&&(r.emissiveMap.value=i.emissiveMap,n(i.emissiveMap,r.emissiveMapTransform)),i.specularMap&&(r.specularMap.value=i.specularMap,n(i.specularMap,r.specularMapTransform)),i.alphaTest>0&&(r.alphaTest.value=i.alphaTest);const s=t.get(i).envMap;if(s&&(r.envMap.value=s,r.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,r.reflectivity.value=i.reflectivity,r.ior.value=i.ior,r.refractionRatio.value=i.refractionRatio),i.lightMap){r.lightMap.value=i.lightMap;const t=!0===e.useLegacyLights?Math.PI:1;r.lightMapIntensity.value=i.lightMapIntensity*t,n(i.lightMap,r.lightMapTransform)}i.aoMap&&(r.aoMap.value=i.aoMap,r.aoMapIntensity.value=i.aoMapIntensity,n(i.aoMap,r.aoMapTransform))}return{refreshFogUniforms:function(t,n){n.color.getRGB(t.fogColor.value,Cs(e)),n.isFog?(t.fogNear.value=n.near,t.fogFar.value=n.far):n.isFogExp2&&(t.fogDensity.value=n.density)},refreshMaterialUniforms:function(e,i,s,a,o){i.isMeshBasicMaterial||i.isMeshLambertMaterial?r(e,i):i.isMeshToonMaterial?(r(e,i),function(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,i)):i.isMeshPhongMaterial?(r(e,i),function(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,i)):i.isMeshStandardMaterial?(r(e,i),function(e,r){e.metalness.value=r.metalness,r.metalnessMap&&(e.metalnessMap.value=r.metalnessMap,n(r.metalnessMap,e.metalnessMapTransform));e.roughness.value=r.roughness,r.roughnessMap&&(e.roughnessMap.value=r.roughnessMap,n(r.roughnessMap,e.roughnessMapTransform));const i=t.get(r).envMap;i&&(e.envMapIntensity.value=r.envMapIntensity)}(e,i),i.isMeshPhysicalMaterial&&function(e,t,r){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap,n(t.sheenColorMap,e.sheenColorMapTransform)),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap,n(t.sheenRoughnessMap,e.sheenRoughnessMapTransform)));t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap,n(t.clearcoatMap,e.clearcoatMapTransform)),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap,n(t.clearcoatRoughnessMap,e.clearcoatRoughnessMapTransform)),t.clearcoatNormalMap&&(e.clearcoatNormalMap.value=t.clearcoatNormalMap,n(t.clearcoatNormalMap,e.clearcoatNormalMapTransform),e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),t.side===m&&e.clearcoatNormalScale.value.negate()));t.iridescence>0&&(e.iridescence.value=t.iridescence,e.iridescenceIOR.value=t.iridescenceIOR,e.iridescenceThicknessMinimum.value=t.iridescenceThicknessRange[0],e.iridescenceThicknessMaximum.value=t.iridescenceThicknessRange[1],t.iridescenceMap&&(e.iridescenceMap.value=t.iridescenceMap,n(t.iridescenceMap,e.iridescenceMapTransform)),t.iridescenceThicknessMap&&(e.iridescenceThicknessMap.value=t.iridescenceThicknessMap,n(t.iridescenceThicknessMap,e.iridescenceThicknessMapTransform)));t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=r.texture,e.transmissionSamplerSize.value.set(r.width,r.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap,n(t.transmissionMap,e.transmissionMapTransform)),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap,n(t.thicknessMap,e.thicknessMapTransform)),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor));e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap,n(t.specularColorMap,e.specularColorMapTransform));t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap,n(t.specularIntensityMap,e.specularIntensityMapTransform))}(e,i,o)):i.isMeshMatcapMaterial?(r(e,i),function(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,i)):i.isMeshDepthMaterial?r(e,i):i.isMeshDistanceMaterial?(r(e,i),function(e,n){const r=t.get(n).light;e.referencePosition.value.setFromMatrixPosition(r.matrixWorld),e.nearDistance.value=r.shadow.camera.near,e.farDistance.value=r.shadow.camera.far}(e,i)):i.isMeshNormalMaterial?r(e,i):i.isLineBasicMaterial?(function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,t.map&&(e.map.value=t.map,n(t.map,e.mapTransform))}(e,i),i.isLineDashedMaterial&&function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,i)):i.isPointsMaterial?function(e,t,r,i){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*r,e.scale.value=.5*i,t.map&&(e.map.value=t.map,n(t.map,e.uvTransform));t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,i,s,a):i.isSpriteMaterial?function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map,n(t.map,e.mapTransform));t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,i):i.isShadowMaterial?(e.color.value.copy(i.color),e.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function bl(e,t,n,r){let i={},s={},a=[];const o=n.isWebGL2?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(e,t,n){const r=e.value;if(void 0===n[t]){if("number"==typeof r)n[t]=r;else{const e=Array.isArray(r)?r:[r],i=[];for(let t=0;t0){i=n%r;0!==i&&r-i-a.boundary<0&&(n+=r-i,e.__offset=n)}n+=a.storage}i=n%r,i>0&&(n+=r-i);e.__size=n,e.__cache={}}(n),d=function(t){const n=function(){for(let e=0;e0&&function(e,t,n,r){if(null===z){const e=X.isWebGL2;z=new rr(1024,1024,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Ie:Ee,minFilter:xe,samples:e&&!0===o?4:0})}const i=x.getRenderTarget();x.setRenderTarget(z),x.clear();const s=x.toneMapping;x.toneMapping=J,Ue(e,n,r),Z.updateMultisampleRenderTarget(z),Z.updateRenderTargetMipmap(z);let a=!1;for(let o=0,l=t.length;o0&&Ue(i,t,n),s.length>0&&Ue(s,t,n),a.length>0&&Ue(a,t,n),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function Ue(e,t,n){const r=!0===t.isScene?t.overrideMaterial:null;for(let i=0,s=e.length;i0?y[y.length-1]:null,v.pop(),p=v.length>0?v[v.length-1]:null},this.getActiveCubeFace=function(){return E},this.getActiveMipmapLevel=function(){return _},this.getRenderTarget=function(){return S},this.setRenderTargetTextures=function(e,t,n){K.get(e.texture).__webglTexture=t,K.get(e.depthTexture).__webglTexture=n;const r=K.get(e);r.__hasExternalTextures=!0,r.__hasExternalTextures&&(r.__autoAllocateDepthBuffer=void 0===n,r.__autoAllocateDepthBuffer||!0===W.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),r.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){const n=K.get(e);n.__webglFramebuffer=t,n.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,n=0){S=e,E=t,_=n;let r=!0,i=null,s=!1,a=!1;if(e){const n=K.get(e);void 0!==n.__useDefaultFramebuffer?(Y.bindFramebuffer(Ae.FRAMEBUFFER,null),r=!1):void 0===n.__webglFramebuffer?Z.setupRenderTarget(e):n.__hasExternalTextures&&Z.rebindTextures(e,K.get(e.texture).__webglTexture,K.get(e.depthTexture).__webglTexture);const o=e.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=K.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(i=l[t],s=!0):i=X.isWebGL2&&e.samples>0&&!1===Z.useMultisampledRTT(e)?K.get(e).__webglMultisampledFramebuffer:l,C.copy(e.viewport),T.copy(e.scissor),I=e.scissorTest}else C.copy(F).multiplyScalar(P).floor(),T.copy(U).multiplyScalar(P).floor(),I=O;if(Y.bindFramebuffer(Ae.FRAMEBUFFER,i)&&X.drawBuffers&&r&&Y.drawBuffers(e,i),Y.viewport(C),Y.scissor(T),Y.setScissorTest(I),s){const r=K.get(e.texture);Ae.framebufferTexture2D(Ae.FRAMEBUFFER,Ae.COLOR_ATTACHMENT0,Ae.TEXTURE_CUBE_MAP_POSITIVE_X+t,r.__webglTexture,n)}else if(a){const r=K.get(e.texture),i=t||0;Ae.framebufferTextureLayer(Ae.FRAMEBUFFER,Ae.COLOR_ATTACHMENT0,r.__webglTexture,n||0,i)}w=-1},this.readRenderTargetPixels=function(e,t,n,r,i,s,a){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Y.bindFramebuffer(Ae.FRAMEBUFFER,o);try{const a=e.texture,o=a.format,l=a.type;if(o!==Le&&fe.convert(o)!==Ae.getParameter(Ae.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===Ie&&(W.has("EXT_color_buffer_half_float")||X.isWebGL2&&W.has("EXT_color_buffer_float"));if(!(l===Ee||fe.convert(l)===Ae.getParameter(Ae.IMPLEMENTATION_COLOR_READ_TYPE)||l===Te&&(X.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-r&&n>=0&&n<=e.height-i&&Ae.readPixels(t,n,r,i,fe.convert(o),fe.convert(l),s)}finally{const e=null!==S?K.get(S).__webglFramebuffer:null;Y.bindFramebuffer(Ae.FRAMEBUFFER,e)}}},this.copyFramebufferToTexture=function(e,t,n=0){const r=Math.pow(2,-n),i=Math.floor(t.image.width*r),s=Math.floor(t.image.height*r);Z.setTexture2D(t,0),Ae.copyTexSubImage2D(Ae.TEXTURE_2D,n,0,0,e.x,e.y,i,s),Y.unbindTexture()},this.copyTextureToTexture=function(e,t,n,r=0){const i=t.image.width,s=t.image.height,a=fe.convert(n.format),o=fe.convert(n.type);Z.setTexture2D(n,0),Ae.pixelStorei(Ae.UNPACK_FLIP_Y_WEBGL,n.flipY),Ae.pixelStorei(Ae.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),Ae.pixelStorei(Ae.UNPACK_ALIGNMENT,n.unpackAlignment),t.isDataTexture?Ae.texSubImage2D(Ae.TEXTURE_2D,r,e.x,e.y,i,s,a,o,t.image.data):t.isCompressedTexture?Ae.compressedTexSubImage2D(Ae.TEXTURE_2D,r,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,a,t.mipmaps[0].data):Ae.texSubImage2D(Ae.TEXTURE_2D,r,e.x,e.y,a,o,t.image),0===r&&n.generateMipmaps&&Ae.generateMipmap(Ae.TEXTURE_2D),Y.unbindTexture()},this.copyTextureToTexture3D=function(e,t,n,r,i=0){if(x.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=e.max.x-e.min.x+1,a=e.max.y-e.min.y+1,o=e.max.z-e.min.z+1,l=fe.convert(r.format),c=fe.convert(r.type);let h;if(r.isData3DTexture)Z.setTexture3D(r,0),h=Ae.TEXTURE_3D;else{if(!r.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Z.setTexture2DArray(r,0),h=Ae.TEXTURE_2D_ARRAY}Ae.pixelStorei(Ae.UNPACK_FLIP_Y_WEBGL,r.flipY),Ae.pixelStorei(Ae.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),Ae.pixelStorei(Ae.UNPACK_ALIGNMENT,r.unpackAlignment);const u=Ae.getParameter(Ae.UNPACK_ROW_LENGTH),d=Ae.getParameter(Ae.UNPACK_IMAGE_HEIGHT),p=Ae.getParameter(Ae.UNPACK_SKIP_PIXELS),f=Ae.getParameter(Ae.UNPACK_SKIP_ROWS),m=Ae.getParameter(Ae.UNPACK_SKIP_IMAGES),g=n.isCompressedTexture?n.mipmaps[0]:n.image;Ae.pixelStorei(Ae.UNPACK_ROW_LENGTH,g.width),Ae.pixelStorei(Ae.UNPACK_IMAGE_HEIGHT,g.height),Ae.pixelStorei(Ae.UNPACK_SKIP_PIXELS,e.min.x),Ae.pixelStorei(Ae.UNPACK_SKIP_ROWS,e.min.y),Ae.pixelStorei(Ae.UNPACK_SKIP_IMAGES,e.min.z),n.isDataTexture||n.isData3DTexture?Ae.texSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,c,g.data):n.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Ae.compressedTexSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,g.data)):Ae.texSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,c,g),Ae.pixelStorei(Ae.UNPACK_ROW_LENGTH,u),Ae.pixelStorei(Ae.UNPACK_IMAGE_HEIGHT,d),Ae.pixelStorei(Ae.UNPACK_SKIP_PIXELS,p),Ae.pixelStorei(Ae.UNPACK_SKIP_ROWS,f),Ae.pixelStorei(Ae.UNPACK_SKIP_IMAGES,m),0===i&&r.generateMipmaps&&Ae.generateMipmap(h),Y.unbindTexture()},this.initTexture=function(e){e.isCubeTexture?Z.setTextureCube(e,0):e.isData3DTexture?Z.setTexture3D(e,0):e.isDataArrayTexture||e.isCompressedArrayTexture?Z.setTexture2DArray(e,0):Z.setTexture2D(e,0),Y.unbindTexture()},this.resetState=function(){E=0,_=0,S=null,Y.reset(),me.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===zt?Ft:Lt}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===Ft?zt:Qt}}class Sl extends _l{}Sl.prototype.isWebGL1Renderer=!0;class wl{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Bi(e),this.density=t}clone(){return new wl(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Ml{constructor(e,t=1,n=1e3){this.isFog=!0,this.name="",this.color=new Bi(e),this.near=t,this.far=n}clone(){return new Ml(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Cl extends ui{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(e){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=e}}class Tl{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=on,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Sn()}onUploadCallback(){}set needsUpdate(e){!0===e&&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 r=0,i=this.stride;re.far||t.push({distance:o,point:Dl.clone(),uv:_i.getInterpolation(Dl,kl,Gl,zl,Ql,Vl,Hl,new Ln),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function Wl(e,t,n,r,i,s){Ul.subVectors(e,n).addScalar(.5).multiply(r),void 0!==i?(Ol.x=s*Ul.x-i*Ul.y,Ol.y=i*Ul.x+s*Ul.y):Ol.copy(Ul),e.copy(t),e.x+=Ol.x,e.y+=Ol.y,e.applyMatrix4(Nl)}const Xl=new hr,Yl=new hr;class ql extends ui{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let n=0,r=t.length;n0){let n,r;for(n=1,r=t.length;n0){Xl.setFromMatrixPosition(this.matrixWorld);const n=e.ray.origin.distanceTo(Xl);this.getObjectForDistance(n).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Xl.setFromMatrixPosition(e.matrixWorld),Yl.setFromMatrixPosition(this.matrixWorld);const n=Xl.distanceTo(Yl)/e.zoom;let r,i;for(t[0].object.visible=!0,r=1,i=t.length;r=e))break;t[r-1].object.visible=!1,t[r].object.visible=!0}for(this._currentLevel=r-1;ro)continue;u.applyMatrix4(this.matrixWorld);const s=e.ray.origin.distanceTo(u);se.far||t.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}else{for(let n=Math.max(0,s.start),r=Math.min(f.count,s.start+s.count)-1;no)continue;u.applyMatrix4(this.matrixWorld);const r=e.ray.origin.distanceTo(u);re.far||t.push({distance:r,point:h.clone().applyMatrix4(this.matrixWorld),index:n,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;e0){const n=e[t[0]];if(void 0!==n){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=n.length;ei.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:n,index:t,face:null,object:a})}}class Fc extends tr{constructor(e,t,n,r,i,s,a,o,l){super(e,t,n,r,i,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:Ae,this.magFilter=void 0!==i?i:Ae,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback((function t(){c.needsUpdate=!0,e.requestVideoFrameCallback(t)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;!1==="requestVideoFrameCallback"in e&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class Uc extends tr{constructor(e,t,n){super({width:e,height:t}),this.isFramebufferTexture=!0,this.format=n,this.magFilter=de,this.minFilter=de,this.generateMipmaps=!1,this.needsUpdate=!0}}class Oc extends tr{constructor(e,t,n,r,i,s,a,o,l,c,h,u){super(null,s,a,o,l,c,r,i,h,u),this.isCompressedTexture=!0,this.image={width:t,height:n},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class Nc extends Oc{constructor(e,t,n,r,i,s){super(e,t,n,i,s),this.isCompressedArrayTexture=!0,this.image.depth=r,this.wrapR=he}}class kc extends tr{constructor(e,t,n,r,i,s,a,o,l){super(e,t,n,r,i,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Gc{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,r=this.getPoint(0),i=0;t.push(0);for(let s=1;s<=e;s++)n=this.getPoint(s/e),i+=n.distanceTo(r),t.push(i),r=n;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const n=this.getLengths();let r=0;const i=n.length;let s;s=t||e*n[i-1];let a,o=0,l=i-1;for(;o<=l;)if(r=Math.floor(o+(l-o)/2),a=n[r]-s,a<0)o=r+1;else{if(!(a>0)){l=r;break}l=r-1}if(r=l,n[r]===s)return r/(i-1);const c=n[r];return(r+(s-c)/(n[r+1]-c))/(i-1)}getTangent(e,t){const n=1e-4;let r=e-n,i=e+n;r<0&&(r=0),i>1&&(i=1);const s=this.getPoint(r),a=this.getPoint(i),o=t||(s.isVector2?new Ln:new hr);return o.copy(a).sub(s).normalize(),o}getTangentAt(e,t){const n=this.getUtoTmapping(e);return this.getTangent(n,t)}computeFrenetFrames(e,t){const n=new hr,r=[],i=[],s=[],a=new hr,o=new Gr;for(let d=0;d<=e;d++){const t=d/e;r[d]=this.getTangentAt(t,new hr)}i[0]=new hr,s[0]=new hr;let l=Number.MAX_VALUE;const c=Math.abs(r[0].x),h=Math.abs(r[0].y),u=Math.abs(r[0].z);c<=l&&(l=c,n.set(1,0,0)),h<=l&&(l=h,n.set(0,1,0)),u<=l&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),i[0].crossVectors(r[0],a),s[0].crossVectors(r[0],i[0]);for(let d=1;d<=e;d++){if(i[d]=i[d-1].clone(),s[d]=s[d-1].clone(),a.crossVectors(r[d-1],r[d]),a.length()>Number.EPSILON){a.normalize();const e=Math.acos(wn(r[d-1].dot(r[d]),-1,1));i[d].applyMatrix4(o.makeRotationAxis(a,e))}s[d].crossVectors(r[d],i[d])}if(!0===t){let t=Math.acos(wn(i[0].dot(i[e]),-1,1));t/=e,r[0].dot(a.crossVectors(i[0],i[e]))>0&&(t=-t);for(let n=1;n<=e;n++)i[n].applyMatrix4(o.makeRotationAxis(r[n],t*n)),s[n].crossVectors(r[n],i[n])}return{tangents:r,normals:i,binormals:s}}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 zc extends Gc{constructor(e=0,t=0,n=1,r=1,i=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=n,this.yRadius=r,this.aStartAngle=i,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(e,t){const n=t||new Ln,r=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const s=Math.abs(i)r;)i-=r;i0?0:(Math.floor(Math.abs(l)/i)+1)*i:0===c&&l===i-1&&(l=i-2,c=1),this.closed||l>0?a=r[(l-1)%i]:(Hc.subVectors(r[0],r[1]).add(r[0]),a=Hc);const h=r[l%i],u=r[(l+1)%i];if(this.closed||l+2r.length-2?r.length-1:s+1],h=r[s>r.length-3?r.length-1:s+2];return n.set(qc(a,o.x,l.x,c.x,h.x),qc(a,o.y,l.y,c.y,h.y)),n}copy(e){super.copy(e),this.points=[];for(let t=0,n=e.points.length;t=n){const e=r[i]-n,s=this.curves[i],a=s.getLength(),o=0===a?0:1-e/a;return s.getPointAt(o,t)}i++}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,r=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 e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),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 lh extends is{constructor(e=[new Ln(0,-.5),new Ln(.5,0),new Ln(0,.5)],t=12,n=0,r=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:n,phiLength:r},t=Math.floor(t),r=wn(r,0,2*Math.PI);const i=[],s=[],a=[],o=[],l=[],c=1/t,h=new hr,u=new Ln,d=new hr,p=new hr,f=new hr;let m=0,g=0;for(let A=0;A<=e.length-1;A++)switch(A){case 0:m=e[A+1].x-e[A].x,g=e[A+1].y-e[A].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[A+1].x-e[A].x,g=e[A+1].y-e[A].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let A=0;A<=t;A++){const i=n+A*c*r,d=Math.sin(i),p=Math.cos(i);for(let n=0;n<=e.length-1;n++){h.x=e[n].x*d,h.y=e[n].y,h.z=e[n].x*p,s.push(h.x,h.y,h.z),u.x=A/t,u.y=n/(e.length-1),a.push(u.x,u.y);const r=o[3*n+0]*d,i=o[3*n+1],c=o[3*n+0]*p;l.push(r,i,c)}}for(let A=0;A0&&A(!0),t>0&&A(!1)),this.setIndex(c),this.setAttribute("position",new qi(h,3)),this.setAttribute("normal",new qi(u,3)),this.setAttribute("uv",new qi(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new uh(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class dh extends uh{constructor(e=1,t=1,n=32,r=1,i=!1,s=0,a=2*Math.PI){super(0,e,t,n,r,i,s,a),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:n,heightSegments:r,openEnded:i,thetaStart:s,thetaLength:a}}static fromJSON(e){return new dh(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class ph extends is{constructor(e=[],t=[],n=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:n,detail:r};const i=[],s=[];function a(e,t,n,r){const i=r+1,s=[];for(let a=0;a<=i;a++){s[a]=[];const r=e.clone().lerp(n,a/i),o=t.clone().lerp(n,a/i),l=i-a;for(let e=0;e<=l;e++)s[a][e]=0===e&&a===i?r:r.clone().lerp(o,e/l)}for(let a=0;a.9&&a<.1&&(t<.2&&(s[e+0]+=1),n<.2&&(s[e+2]+=1),r<.2&&(s[e+4]+=1))}}()}(),this.setAttribute("position",new qi(i,3)),this.setAttribute("normal",new qi(i.slice(),3)),this.setAttribute("uv",new qi(s,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new ph(e.vertices,e.indices,e.radius,e.details)}}class fh extends ph{constructor(e=1,t=0){const n=(1+Math.sqrt(5))/2,r=1/n;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-n,0,-r,n,0,r,-n,0,r,n,-r,-n,0,-r,n,0,r,-n,0,r,n,0,-n,0,-r,n,0,-r,-n,0,r,n,0,r],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new fh(e.radius,e.detail)}}const mh=new hr,gh=new hr,Ah=new hr,vh=new _i;class yh extends is{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const n=4,r=Math.pow(10,n),i=Math.cos(En*t),s=e.getIndex(),a=e.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let e=0;e80*n){o=c=e[0],l=h=e[1];for(let t=n;tc&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Sh(s,a,n,o,l,p,0),a};function Eh(e,t,n,r,i){let s,a;if(i===function(e,t,n,r){let i=0;for(let s=t,a=n-r;s0)for(s=t;s=t;s-=r)a=Vh(s,e[s],e[s+1],a);return a&&Oh(a,a.next)&&(Hh(a),a=a.next),a}function _h(e,t){if(!e)return e;t||(t=e);let n,r=e;do{if(n=!1,r.steiner||!Oh(r,r.next)&&0!==Uh(r.prev,r,r.next))r=r.next;else{if(Hh(r),r=t=r.prev,r===r.next)break;n=!0}}while(n||r!==t);return t}function Sh(e,t,n,r,i,s,a){if(!e)return;!a&&s&&function(e,t,n,r){let i=e;do{0===i.z&&(i.z=Ph(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){let t,n,r,i,s,a,o,l,c=1;do{for(n=e,e=null,s=null,a=0;n;){for(a++,r=n,o=0,t=0;t0||l>0&&r;)0!==o&&(0===l||!r||n.z<=r.z)?(i=n,n=n.nextZ,o--):(i=r,r=r.nextZ,l--),s?s.nextZ=i:e=i,i.prevZ=s,s=i;n=r}s.nextZ=null,c*=2}while(a>1)}(i)}(e,r,i,s);let o,l,c=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,s?Mh(e,r,i,s):wh(e))t.push(o.i/n|0),t.push(e.i/n|0),t.push(l.i/n|0),Hh(e),e=l.next,c=l.next;else if((e=l)===c){a?1===a?Sh(e=Ch(_h(e),t,n),t,n,r,i,s,2):2===a&&Th(e,t,n,r,i,s):Sh(_h(e),t,n,r,i,s,1);break}}function wh(e){const t=e.prev,n=e,r=e.next;if(Uh(t,n,r)>=0)return!1;const i=t.x,s=n.x,a=r.x,o=t.y,l=n.y,c=r.y,h=is?i>a?i:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let f=r.next;for(;f!==t;){if(f.x>=h&&f.x<=d&&f.y>=u&&f.y<=p&&Lh(i,o,s,l,a,c,f.x,f.y)&&Uh(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Mh(e,t,n,r){const i=e.prev,s=e,a=e.next;if(Uh(i,s,a)>=0)return!1;const o=i.x,l=s.x,c=a.x,h=i.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,A=Ph(p,f,t,n,r),v=Ph(m,g,t,n,r);let y=e.prevZ,x=e.nextZ;for(;y&&y.z>=A&&x&&x.z<=v;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==i&&y!==a&&Lh(o,h,l,u,c,d,y.x,y.y)&&Uh(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==i&&x!==a&&Lh(o,h,l,u,c,d,x.x,x.y)&&Uh(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;y&&y.z>=A;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==i&&y!==a&&Lh(o,h,l,u,c,d,y.x,y.y)&&Uh(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;x&&x.z<=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==i&&x!==a&&Lh(o,h,l,u,c,d,x.x,x.y)&&Uh(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Ch(e,t,n){let r=e;do{const i=r.prev,s=r.next.next;!Oh(i,s)&&Nh(i,r,r.next,s)&&zh(i,s)&&zh(s,i)&&(t.push(i.i/n|0),t.push(r.i/n|0),t.push(s.i/n|0),Hh(r),Hh(r.next),r=e=s),r=r.next}while(r!==e);return _h(r)}function Th(e,t,n,r,i,s){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&Fh(a,e)){let o=Qh(a,e);return a=_h(a,a.next),o=_h(o,o.next),Sh(a,t,n,r,i,s,0),void Sh(o,t,n,r,i,s,0)}e=e.next}a=a.next}while(a!==e)}function Ih(e,t){return e.x-t.x}function Bh(e,t){const n=function(e,t){let n,r=t,i=-1/0;const s=e.x,a=e.y;do{if(a<=r.y&&a>=r.next.y&&r.next.y!==r.y){const e=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(e<=s&&e>i&&(i=e,n=r.x=r.x&&r.x>=l&&s!==r.x&&Lh(an.x||r.x===n.x&&Rh(n,r)))&&(n=r,u=h)),r=r.next}while(r!==o);return n}(e,t);if(!n)return t;const r=Qh(n,e);return _h(r,r.next),_h(n,n.next)}function Rh(e,t){return Uh(e.prev,e,t.prev)<0&&Uh(t.next,e,e.next)<0}function Ph(e,t,n,r,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-r)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Dh(e){let t=e,n=e;do{(t.x=(e-a)*(s-o)&&(e-a)*(r-o)>=(n-a)*(t-o)&&(n-a)*(s-o)>=(i-a)*(r-o)}function Fh(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Nh(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}(e,t)&&(zh(e,t)&&zh(t,e)&&function(e,t){let n=e,r=!1;const i=(e.x+t.x)/2,s=(e.y+t.y)/2;do{n.y>s!=n.next.y>s&&n.next.y!==n.y&&i<(n.next.x-n.x)*(s-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}(e,t)&&(Uh(e.prev,e,t.prev)||Uh(e,t.prev,t))||Oh(e,t)&&Uh(e.prev,e,e.next)>0&&Uh(t.prev,t,t.next)>0)}function Uh(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function Oh(e,t){return e.x===t.x&&e.y===t.y}function Nh(e,t,n,r){const i=Gh(Uh(e,t,n)),s=Gh(Uh(e,t,r)),a=Gh(Uh(n,r,e)),o=Gh(Uh(n,r,t));return i!==s&&a!==o||(!(0!==i||!kh(e,n,t))||(!(0!==s||!kh(e,r,t))||(!(0!==a||!kh(n,e,r))||!(0!==o||!kh(n,t,r)))))}function kh(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function Gh(e){return e>0?1:e<0?-1:0}function zh(e,t){return Uh(e.prev,e,e.next)<0?Uh(e,t,e.next)>=0&&Uh(e,e.prev,t)>=0:Uh(e,t,e.prev)<0||Uh(e,e.next,t)<0}function Qh(e,t){const n=new jh(e.i,e.x,e.y),r=new jh(t.i,t.x,t.y),i=e.next,s=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,s.next=r,r.prev=s,r}function Vh(e,t,n,r){const i=new jh(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Hh(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function jh(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Wh{static area(e){const t=e.length;let n=0;for(let r=t-1,i=0;i2&&e[t-1].equals(e[0])&&e.pop()}function Yh(e,t){for(let n=0;nNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=t.x-o/u,f=t.y+a/u,m=((n.x-c/d-p)*c-(n.y+l/d-f)*l)/(a*c-o*l);r=p+a*m-e.x,i=f+o*m-e.y;const g=r*r+i*i;if(g<=2)return new Ln(r,i);s=Math.sqrt(g/2)}else{let e=!1;a>Number.EPSILON?l>Number.EPSILON&&(e=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(c)&&(e=!0),e?(r=-o,i=a,s=Math.sqrt(h)):(r=a,i=o,s=Math.sqrt(h/2))}return new Ln(r/s,i/s)}const R=[];for(let t=0,n=M.length,r=n-1,i=t+1;t=0;t--){const e=t/p,n=h*Math.cos(e*Math.PI/2),r=u*Math.sin(e*Math.PI/2)+d;for(let t=0,i=M.length;t=0;){const r=n;let i=n-1;i<0&&(i=e.length-1);for(let e=0,n=o+2*p;e0)&&d.push(t,r,a),(g!==n-1||o0!=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 iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=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.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,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}}class pu extends wi{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Bi(16777215),this.specular=new Bi(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Ln(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Y,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(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.fog=e.fog,this}}class fu extends wi{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Bi(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Ln(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(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.fog=e.fog,this}}class mu extends wi{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Ln(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=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}}class gu extends wi{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Bi(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Ln(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Y,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(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.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.fog=e.fog,this}}class Au extends wi{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Bi(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Ln(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,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.fog=e.fog,this}}class vu extends Ac{constructor(e){super(),this.isLineDashedMaterial=!0,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}}function yu(e,t,n){return bu(e)?new e.constructor(e.subarray(t,void 0!==n?n:e.length)):e.slice(t,n)}function xu(e,t,n){return!e||!n&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)}function bu(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Eu(e){const t=e.length,n=new Array(t);for(let r=0;r!==t;++r)n[r]=r;return n.sort((function(t,n){return e[t]-e[n]})),n}function _u(e,t,n){const r=e.length,i=new e.constructor(r);for(let s=0,a=0;a!==r;++s){const r=n[s]*t;for(let n=0;n!==t;++n)i[a++]=e[r+n]}return i}function Su(e,t,n,r){let i=1,s=e[0];for(;void 0!==s&&void 0===s[r];)s=e[i++];if(void 0===s)return;let a=s[r];if(void 0!==a)if(Array.isArray(a))do{a=s[r],void 0!==a&&(t.push(s.time),n.push.apply(n,a)),s=e[i++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[r],void 0!==a&&(t.push(s.time),a.toArray(n,n.length)),s=e[i++]}while(void 0!==s);else do{a=s[r],void 0!==a&&(t.push(s.time),n.push(a)),s=e[i++]}while(void 0!==s)}const wu={arraySlice:yu,convertArray:xu,isTypedArray:bu,getKeyframeOrder:Eu,sortedArray:_u,flattenJSON:Su,subclip:function(e,t,n,r,i=30){const s=e.clone();s.name=t;const a=[];for(let l=0;l=r)){o.push(e.times[s]);for(let n=0;ns.tracks[l].times[0]&&(o=s.tracks[l].times[0]);for(let l=0;l=t.times[u]){const e=u*l+o,n=e+l-o;d=yu(t.values,e,n)}else{const e=t.createInterpolant(),n=o,r=l-o;e.evaluate(s),d=yu(e.resultBuffer,n,r)}if("quaternion"===r){(new cr).fromArray(d).normalize().conjugate().toArray(d)}const p=i.times.length;for(let e=0;e=i)break e;{const a=t[1];e=i)break t}s=n,n=0}}for(;n>>1;et;)--s;if(++s,0!==i||s!==r){i>=s&&(s=Math.max(s,1),i=s-1);const e=this.getValueSize();this.times=yu(n,i,s),this.values=yu(this.values,i*e,s*e)}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,r=this.values,i=n.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let a=0;a!==i;a++){const t=n[a];if("number"==typeof t&&isNaN(t)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,t),e=!1;break}if(null!==s&&s>t){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,t,s),e=!1;break}s=t}if(void 0!==r&&bu(r))for(let a=0,o=r.length;a!==o;++a){const t=r[a];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,t),e=!1;break}}return e}optimize(){const e=yu(this.times),t=yu(this.values),n=this.getValueSize(),r=this.getInterpolation()===wt,i=e.length-1;let s=1;for(let a=1;a0){e[s]=e[i];for(let e=i*n,r=s*n,a=0;a!==n;++a)t[r+a]=t[e+a];++s}return s!==e.length?(this.times=yu(e,0,s),this.values=yu(t,0,s*n)):(this.times=e,this.values=t),this}clone(){const e=yu(this.times,0),t=yu(this.values,0),n=new(0,this.constructor)(this.name,e,t);return n.createInterpolant=this.createInterpolant,n}}Bu.prototype.TimeBufferType=Float32Array,Bu.prototype.ValueBufferType=Float32Array,Bu.prototype.DefaultInterpolation=St;class Ru extends Bu{}Ru.prototype.ValueTypeName="bool",Ru.prototype.ValueBufferType=Array,Ru.prototype.DefaultInterpolation=_t,Ru.prototype.InterpolantFactoryMethodLinear=void 0,Ru.prototype.InterpolantFactoryMethodSmooth=void 0;class Pu extends Bu{}Pu.prototype.ValueTypeName="color";class Du extends Bu{}Du.prototype.ValueTypeName="number";class Lu extends Mu{constructor(e,t,n,r){super(e,t,n,r)}interpolate_(e,t,n,r){const i=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(n-t)/(r-t);let l=e*a;for(let c=l+a;l!==c;l+=4)cr.slerpFlat(i,0,s,l-a,s,l,o);return i}}class Fu extends Bu{InterpolantFactoryMethodLinear(e){return new Lu(this.times,this.values,this.getValueSize(),e)}}Fu.prototype.ValueTypeName="quaternion",Fu.prototype.DefaultInterpolation=St,Fu.prototype.InterpolantFactoryMethodSmooth=void 0;class Uu extends Bu{}Uu.prototype.ValueTypeName="string",Uu.prototype.ValueBufferType=Array,Uu.prototype.DefaultInterpolation=_t,Uu.prototype.InterpolantFactoryMethodLinear=void 0,Uu.prototype.InterpolantFactoryMethodSmooth=void 0;class Ou extends Bu{}Ou.prototype.ValueTypeName="vector";class Nu{constructor(e,t=-1,n,r=It){this.name=e,this.tracks=n,this.duration=t,this.blendMode=r,this.uuid=Sn(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],n=e.tracks,r=1/(e.fps||1);for(let s=0,a=n.length;s!==a;++s)t.push(ku(n[s]).scale(r));const i=new this(e.name,e.duration,t,e.blendMode);return i.uuid=e.uuid,i}static toJSON(e){const t=[],n=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let i=0,s=n.length;i!==s;++i)t.push(Bu.toJSON(n[i]));return r}static CreateFromMorphTargetSequence(e,t,n,r){const i=t.length,s=[];for(let a=0;a1){const e=n[1];let i=r[e];i||(r[e]=i=[]),i.push(t)}}const s=[];for(const a in r)s.push(this.CreateFromMorphTargetSequence(a,r[a],t,n));return s}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(e,t,n,r,i){if(0!==n.length){const s=[],a=[];Su(n,s,a,r),0!==s.length&&i.push(new e(t,s,a))}},r=[],i=e.name||"default",s=e.fps||30,a=e.blendMode;let o=e.length||-1;const l=e.hierarchy||[];for(let c=0;c{t&&t(i),this.manager.itemEnd(e)}),0),i;if(void 0!==Hu[e])return void Hu[e].push({onLoad:t,onProgress:n,onError:r});Hu[e]=[],Hu[e].push({onLoad:t,onProgress:n,onError:r});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;const n=Hu[e],r=t.body.getReader(),i=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),s=i?parseInt(i):0,a=0!==s;let o=0;const l=new ReadableStream({start(e){!function t(){r.read().then((({done:r,value:i})=>{if(r)e.close();else{o+=i.byteLength;const r=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let e=0,t=n.length;e{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,a)));case"json":return e.json();default:if(void 0===a)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(a),n=t&&t[1]?t[1].toLowerCase():void 0,r=new TextDecoder(n);return e.arrayBuffer().then((e=>r.decode(e)))}}})).then((t=>{Gu.add(e,t);const n=Hu[e];delete Hu[e];for(let e=0,r=n.length;e{const n=Hu[e];if(void 0===n)throw this.manager.itemError(e),t;delete Hu[e];for(let e=0,r=n.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class Xu extends Vu{constructor(e){super(e)}load(e,t,n,r){const i=this,s=new Wu(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,(function(n){try{t(i.parse(JSON.parse(n)))}catch(s){r?r(s):console.error(s),i.manager.itemError(e)}}),n,r)}parse(e){const t=[];for(let n=0;n0:r.vertexColors=e.vertexColors),void 0!==e.uniforms)for(const i in e.uniforms){const t=e.uniforms[i];switch(r.uniforms[i]={},t.type){case"t":r.uniforms[i].value=n(t.value);break;case"c":r.uniforms[i].value=(new Bi).setHex(t.value);break;case"v2":r.uniforms[i].value=(new Ln).fromArray(t.value);break;case"v3":r.uniforms[i].value=(new hr).fromArray(t.value);break;case"v4":r.uniforms[i].value=(new nr).fromArray(t.value);break;case"m3":r.uniforms[i].value=(new Fn).fromArray(t.value);break;case"m4":r.uniforms[i].value=(new Gr).fromArray(t.value);break;default:r.uniforms[i].value=t.value}}if(void 0!==e.defines&&(r.defines=e.defines),void 0!==e.vertexShader&&(r.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(r.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(r.glslVersion=e.glslVersion),void 0!==e.extensions)for(const i in e.extensions)r.extensions[i]=e.extensions[i];if(void 0!==e.lights&&(r.lights=e.lights),void 0!==e.clipping&&(r.clipping=e.clipping),void 0!==e.size&&(r.size=e.size),void 0!==e.sizeAttenuation&&(r.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(r.map=n(e.map)),void 0!==e.matcap&&(r.matcap=n(e.matcap)),void 0!==e.alphaMap&&(r.alphaMap=n(e.alphaMap)),void 0!==e.bumpMap&&(r.bumpMap=n(e.bumpMap)),void 0!==e.bumpScale&&(r.bumpScale=e.bumpScale),void 0!==e.normalMap&&(r.normalMap=n(e.normalMap)),void 0!==e.normalMapType&&(r.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),r.normalScale=(new Ln).fromArray(t)}return void 0!==e.displacementMap&&(r.displacementMap=n(e.displacementMap)),void 0!==e.displacementScale&&(r.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(r.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(r.roughnessMap=n(e.roughnessMap)),void 0!==e.metalnessMap&&(r.metalnessMap=n(e.metalnessMap)),void 0!==e.emissiveMap&&(r.emissiveMap=n(e.emissiveMap)),void 0!==e.emissiveIntensity&&(r.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(r.specularMap=n(e.specularMap)),void 0!==e.specularIntensityMap&&(r.specularIntensityMap=n(e.specularIntensityMap)),void 0!==e.specularColorMap&&(r.specularColorMap=n(e.specularColorMap)),void 0!==e.envMap&&(r.envMap=n(e.envMap)),void 0!==e.envMapIntensity&&(r.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(r.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(r.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(r.lightMap=n(e.lightMap)),void 0!==e.lightMapIntensity&&(r.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(r.aoMap=n(e.aoMap)),void 0!==e.aoMapIntensity&&(r.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(r.gradientMap=n(e.gradientMap)),void 0!==e.clearcoatMap&&(r.clearcoatMap=n(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(r.clearcoatRoughnessMap=n(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(r.clearcoatNormalMap=n(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(r.clearcoatNormalScale=(new Ln).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(r.iridescenceMap=n(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(r.iridescenceThicknessMap=n(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(r.transmissionMap=n(e.transmissionMap)),void 0!==e.thicknessMap&&(r.thicknessMap=n(e.thicknessMap)),void 0!==e.sheenColorMap&&(r.sheenColorMap=n(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(r.sheenRoughnessMap=n(e.sheenRoughnessMap)),r}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:cu,SpriteMaterial:Rl,RawShaderMaterial:hu,ShaderMaterial:Is,PointsMaterial:Tc,MeshPhysicalMaterial:du,MeshStandardMaterial:uu,MeshPhongMaterial:pu,MeshToonMaterial:fu,MeshNormalMaterial:mu,MeshLambertMaterial:gu,MeshDepthMaterial:ll,MeshDistanceMaterial:cl,MeshBasicMaterial:Pi,MeshMatcapMaterial:Au,LineDashedMaterial:vu,LineBasicMaterial:Ac,Material:wi}[e]}}class yd{static decodeText(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let r=0,i=e.length;r0){const n=new zu(t);i=new qu(n),i.setCrossOrigin(this.crossOrigin);for(let t=0,i=e.length;t0){r=new qu(this.manager),r.setCrossOrigin(this.crossOrigin);for(let t=0,r=e.length;t0){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,r,this._addIndex*t,1,t);for(let o=t,l=t+t;o!==l;++o)if(n[o]!==n[o+t]){a.setValue(n,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,n=this.valueSize,r=n*this._origIndex;e.getValue(t,r);for(let i=n,s=r;i!==s;++i)t[i]=t[r+i%n];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=3*this.valueSize;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 s=0;s!==i;++s)e[t+s]=e[n+s]}_slerp(e,t,n,r){cr.slerpFlat(e,t,e,t,e,n,r)}_slerpAdditive(e,t,n,r,i){const s=this._workIndex*i;cr.multiplyQuaternionsFlat(e,s,e,t,e,n),cr.slerpFlat(e,t,e,t,e,s,r)}_lerp(e,t,n,r,i){const s=1-r;for(let a=0;a!==i;++a){const i=t+a;e[i]=e[i]*s+e[n+a]*r}}_lerpAdditive(e,t,n,r,i){for(let s=0;s!==i;++s){const i=t+s;e[i]=e[i]+e[n+s]*r}}}const Jd="\\[\\]\\.:\\/",Zd=new RegExp("["+Jd+"]","g"),$d="[^"+Jd+"]",ep="[^"+Jd.replace("\\.","")+"]",tp=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",$d)+/(WCOD+)?/.source.replace("WCOD",ep)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",$d)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",$d)+"$"),np=["material","materials","bones","map"];class rp{constructor(e,t,n){this.path=t,this.parsedPath=n||rp.parseTrackName(t),this.node=rp.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,n){return e&&e.isAnimationObjectGroup?new rp.Composite(e,t,n):new rp(e,t,n)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Zd,"")}static parseTrackName(e){const t=tp.exec(e);if(null===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]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(void 0!==r&&-1!==r){const e=n.nodeName.substring(r+1);-1!==np.indexOf(e)&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=e)}if(null===n.propertyName||0===n.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return n}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){const n=e.skeleton.getBoneByName(t);if(void 0!==n)return n}if(e.children){const n=function(e){for(let r=0;r=i){const s=i++,c=e[s];t[c.uuid]=l,e[l]=c,t[o]=s,e[s]=a;for(let e=0,t=r;e!==t;++e){const t=n[e],r=t[s],i=t[l];t[l]=r,t[s]=i}}}this.nCachedObjects_=i}uncache(){const e=this._objects,t=this._indicesByUUID,n=this._bindings,r=n.length;let i=this.nCachedObjects_,s=e.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=t[o];if(void 0!==l)if(delete t[o],l0&&(t[a.uuid]=l),e[l]=a,e.pop();for(let e=0,t=r;e!==t;++e){const t=n[e];t[l]=t[i],t.pop()}}}this.nCachedObjects_=i}subscribe_(e,t){const n=this._bindingsIndicesByPath;let r=n[e];const i=this._bindings;if(void 0!==r)return i[r];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);r=i.length,n[e]=r,s.push(e),a.push(t),i.push(h);for(let u=c,d=o.length;u!==d;++u){const n=o[u];h[u]=new rp(n,e,t)}return h}unsubscribe_(e){const t=this._bindingsIndicesByPath,n=t[e];if(void 0!==n){const r=this._paths,i=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];t[e[a]]=n,s[n]=o,s.pop(),i[n]=i[a],i.pop(),r[n]=r[a],r.pop()}}}class sp{constructor(e,t,n=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=n,this.blendMode=r;const i=t.tracks,s=i.length,a=new Array(s),o={endingStart:Mt,endingEnd:Mt};for(let l=0;l!==s;++l){const e=i[l].createInterpolant(null);a[l]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=bt,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,n){if(e.fadeOut(t),this.fadeIn(t),n){const n=this._clip.duration,r=e._clip.duration,i=r/n,s=n/r;e.warp(1,i,t),this.warp(s,1,t)}return this}crossFadeTo(e,t,n){return e.crossFadeFrom(this,t,n)}stopFading(){const e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,n){const r=this._mixer,i=r.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=i,o[1]=i+n,l[0]=e/s,l[1]=t/s,this}stopWarping(){const e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,n,r){if(!this.enabled)return void this._updateWeight(e);const i=this._startTime;if(null!==i){const r=(e-i)*n;r<0||0===n?t=0:(this._startTime=null,t=n*r)}t*=this._updateTimeScale(e);const s=this._updateTime(t),a=this._updateWeight(e);if(a>0){const e=this._interpolants,t=this._propertyBindings;if(this.blendMode===Bt)for(let n=0,r=e.length;n!==r;++n)e[n].evaluate(s),t[n].accumulateAdditive(a);else for(let n=0,i=e.length;n!==i;++n)e[n].evaluate(s),t[n].accumulate(r,a)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const n=this._weightInterpolant;if(null!==n){const r=n.evaluate(e)[0];t*=r,e>n.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const n=this._timeScaleInterpolant;if(null!==n){t*=n.evaluate(e)[0],e>n.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,n=this.loop;let r=this.time+e,i=this._loopCount;const s=n===Et;if(0===e)return-1===i?r:s&&1==(1&i)?t-r:r;if(n===xt){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else{if(!(r<0)){this.time=r;break e}r=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===i&&(e>=0?(i=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),r>=t||r<0){const n=Math.floor(r/t);r-=t*n,i+=Math.abs(n);const a=this.repetitions-i;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===a){const t=e<0;this._setEndings(t,!t,s)}else this._setEndings(!1,!1,s);this._loopCount=i,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:n})}}else this.time=r;if(s&&1==(1&i))return t-r}return r}_setEndings(e,t,n){const r=this._interpolantSettings;n?(r.endingStart=Ct,r.endingEnd=Ct):(r.endingStart=e?this.zeroSlopeAtStart?Ct:Mt:Tt,r.endingEnd=t?this.zeroSlopeAtEnd?Ct:Mt:Tt)}_scheduleFading(e,t,n){const r=this._mixer,i=r.time;let s=this._weightInterpolant;null===s&&(s=r._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=i,o[0]=t,a[1]=i+e,o[1]=n,this}}const ap=new Float32Array(1);class op extends yn{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,r=e._clip.tracks,i=r.length,s=e._propertyBindings,a=e._interpolants,o=n.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let h=0;h!==i;++h){const e=r[h],i=e.name;let l=c[i];if(void 0!==l)++l.referenceCount,s[h]=l;else{if(l=s[h],void 0!==l){null===l._cacheIndex&&(++l.referenceCount,this._addInactiveBinding(l,o,i));continue}const r=t&&t._propertyBindings[h].binding.parsedPath;l=new Kd(rp.create(n,i,r),e.ValueTypeName,e.getValueSize()),++l.referenceCount,this._addInactiveBinding(l,o,i),s[h]=l}a[h].resultBuffer=l.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){const t=(e._localRoot||this._root).uuid,n=e._clip.uuid,r=this._actionsByClip[n];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,n,t)}const t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){const n=t[e];0==n.useCount++&&(this._lendBinding(n),n.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let e=0,n=t.length;e!==n;++e){const n=t[e];0==--n.useCount&&(n.restoreOriginalState(),this._takeBackBinding(n))}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 null!==t&&t=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;const t=this._actions,n=this._nActiveActions,r=this.time+=e,i=Math.sign(e),s=this._accuIndex^=1;for(let l=0;l!==n;++l){t[l]._update(r,e,i,s)}const a=this._bindings,o=this._nActiveBindings;for(let l=0;l!==o;++l)a[l].apply(s);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}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}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))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,vp).distanceTo(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}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)}}const xp=new hr,bp=new hr;class Ep{constructor(e=new hr,t=new hr){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){xp.subVectors(e,this.start),bp.subVectors(this.end,this.start);const n=bp.dot(bp);let r=bp.dot(xp)/n;return t&&(r=wn(r,0,1)),r}closestPointToPoint(e,t,n){const r=this.closestPointToPointParameter(e,t);return this.delta(n).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const _p=new hr;class Sp extends ui{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const n=new is,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,a=1,o=32;s1)for(let c=0;c.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{qp.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(qp,t)}}setLength(e,t=.2*e,n=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(n,t,n),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class $p extends Mc{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],n=new is;n.setAttribute("position",new qi(t,3)),n.setAttribute("color",new qi([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(n,new Ac({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,n){const r=new Bi,i=this.geometry.attributes.color.array;return r.set(e),r.toArray(i,0),r.toArray(i,3),r.set(t),r.toArray(i,6),r.toArray(i,9),r.set(n),r.toArray(i,12),r.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ef{constructor(){this.type="ShapePath",this.color=new Bi,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new oh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,n,r){return this.currentPath.quadraticCurveTo(e,t,n,r),this}bezierCurveTo(e,t,n,r,i,s){return this.currentPath.bezierCurveTo(e,t,n,r,i,s),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(e,t){const n=t.length;let r=!1;for(let i=n-1,s=0;sNumber.EPSILON){if(l<0&&(n=t[s],o=-o,a=t[i],l=-l),e.ya.y)continue;if(e.y===n.y){if(e.x===n.x)return!0}else{const t=l*(e.x-n.x)-o*(e.y-n.y);if(0===t)return!0;if(t<0)continue;r=!r}}else{if(e.y!==n.y)continue;if(a.x<=e.x&&e.x<=n.x||n.x<=e.x&&e.x<=a.x)return!0}}return r}const n=Wh.isClockWise,r=this.subPaths;if(0===r.length)return[];let i,s,a;const o=[];if(1===r.length)return s=r[0],a=new xh,a.curves=s.curves,o.push(a),o;let l=!n(r[0].getPoints());l=e?!l:l;const c=[],h=[];let u,d,p=[],f=0;h[f]=void 0,p[f]=[];for(let m=0,g=r.length;m1){let e=!1,n=0;for(let t=0,r=h.length;t0&&!1===e&&(p=c)}for(let m=0,g=h.length;m{"use strict";r.r(t),r.d(t,{default:()=>A});var n=r(87462),i=r(67294),s=r(45042),a=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,o=(0,s.Z)((function(e){return a.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),l=r(79626),c=r(70444),h=r(48137),u=r(27278),d=o,p=function(e){return"theme"!==e},f=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?d:p},m=function(e,t,r){var n;if(t){var i=t.shouldForwardProp;n=e.__emotion_forwardProp&&i?function(t){return e.__emotion_forwardProp(t)&&i(t)}:i}return"function"!=typeof n&&r&&(n=e.__emotion_forwardProp),n},g=function(e){var t=e.cache,r=e.serialized,n=e.isStringTag;return(0,c.hC)(t,r,n),(0,u.L)((function(){return(0,c.My)(t,r,n)})),null},A=function e(t,r){var s,a,o=t.__emotion_real===t,u=o&&t.__emotion_base||t;void 0!==r&&(s=r.label,a=r.target);var d=m(t,r,o),p=d||f(u),A=!p("as");return function(){var v=arguments,y=o&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==s&&y.push("label:"+s+";"),null==v[0]||void 0===v[0].raw)y.push.apply(y,v);else{0,y.push(v[0][0]);for(var x=v.length,b=1;b{"use strict";r.d(t,{Zo:()=>h,kt:()=>f});var n=r(67294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},h=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,s=e.originalType,l=e.parentName,h=o(e,["components","mdxType","originalType","parentName"]),u=c(r),p=i,f=u["".concat(l,".").concat(p)]||u[p]||d[p]||s;return r?n.createElement(f,a(a({ref:t},h),{},{components:r})):n.createElement(f,a({ref:t},h))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var s=r.length,a=new Array(s);a[0]=p;var o={};for(var l in t)hasOwnProperty.call(t,l)&&(o[l]=t[l]);o.originalType=e,o[u]="string"==typeof e?e:i,a[1]=o;for(var c=2;c{"use strict";r.r(t),r.d(t,{AdaptiveDpr:()=>Xm,AdaptiveEvents:()=>Ym,ArcballControls:()=>zo,Backdrop:()=>Df,BakeShadows:()=>zm,Billboard:()=>Oi,Bounds:()=>df,Box:()=>Gp,CameraShake:()=>Af,Center:()=>lf,Circle:()=>zp,Clone:()=>no,Cloud:()=>Jf,ComputedAttribute:()=>$a,Cone:()=>Qp,ContactShadows:()=>If,CubeCamera:()=>ao,CubicBezierLine:()=>us,CurveModifier:()=>wp,CycleRaycast:()=>v,Cylinder:()=>Vp,Detailed:()=>km,DeviceOrientationControls:()=>ho,Dodecahedron:()=>ef,Edges:()=>Ga,Effects:()=>Da,Environment:()=>_f,EnvironmentCube:()=>wf,EnvironmentMap:()=>Sf,EnvironmentPortal:()=>Mf,Extrude:()=>tf,FirstPersonControls:()=>hl,Float:()=>vf,FlyControls:()=>go,GizmoHelper:()=>bl,GizmoViewcube:()=>Fl,GizmoViewport:()=>Nl,GradientTexture:()=>La,Html:()=>A,Icosahedron:()=>Zp,Image:()=>ka,Instance:()=>Rm,Instances:()=>Pm,IsObject:()=>Ua,Lathe:()=>rf,Lightformer:()=>kf,Line:()=>ls,Loader:()=>S,MapControls:()=>Mo,Merged:()=>Dm,MeshDistortMaterial:()=>Tp,MeshReflectorMaterial:()=>Lp,MeshWobbleMaterial:()=>Bp,Octahedron:()=>$p,OrbitControls:()=>wo,OrthographicCamera:()=>io,PerspectiveCamera:()=>so,Plane:()=>jp,Point:()=>mm,PointMaterial:()=>Up,PointMaterialImpl:()=>Fp,PointerLockControls:()=>sl,Points:()=>Am,PointsBuffer:()=>gm,Polyhedron:()=>Jp,PositionalAudio:()=>ds,Preload:()=>Gm,PresentationControls:()=>gi,QuadraticBezierLine:()=>hs,Reflector:()=>Ff,Ring:()=>Kp,RoundedBox:()=>sf,Sampler:()=>Za,ScreenQuad:()=>of,Scroll:()=>P,ScrollControls:()=>I,Segment:()=>Nm,Segments:()=>Um,Select:()=>Fi,Shadow:()=>Lf,Sky:()=>Wf,Sphere:()=>Hp,SpotLight:()=>Nf,Stage:()=>Rf,Stars:()=>qf,Stats:()=>_u,Tetrahedron:()=>qp,Text:()=>fa,Torus:()=>Xp,TorusKnot:()=>Yp,TrackballControls:()=>Bo,Trail:()=>Ya,TransformControls:()=>qo,Tube:()=>Wp,calcPosFromAngles:()=>jf,isWebGL2Available:()=>Pa,meshBounds:()=>Wm,shaderMaterial:()=>Fa,softShadows:()=>Np,useAnimations:()=>fp,useAspect:()=>wu,useBVH:()=>dp,useBounds:()=>pf,useBoxProjectedEnv:()=>xp,useCamera:()=>ul,useContextBridge:()=>pp,useCubeTexture:()=>kl,useCursor:()=>y,useDepthBuffer:()=>Mu,useDetectGPU:()=>Nu,useFBO:()=>Su,useFBX:()=>Vc,useGLTF:()=>Yh,useGizmoContext:()=>pl,useHelper:()=>ku,useIntersect:()=>mp,useKTX2:()=>yu,useMatcapTexture:()=>em,useNormalTexture:()=>nm,useProgress:()=>E,useScroll:()=>T,useSelect:()=>Ui,useTexture:()=>Oa,useTrail:()=>Xa});var n=r(87462),i=r(67294),s=r(73935),a=r(99477),o=r(64232);const l=new a.Vector3,c=new a.Vector3,h=new a.Vector3;function u(e,t,r){const n=l.setFromMatrixPosition(e.matrixWorld);n.project(t);const i=r.width/2,s=r.height/2;return[n.x*i+i,-n.y*s+s]}const d=e=>Math.abs(e)<1e-10?0:e;function p(e,t,r=""){let n="matrix3d(";for(let i=0;16!==i;i++)n+=d(t[i]*e.elements[i])+(15!==i?",":")");return r+n}const f=(m=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>p(e,m));var m;const g=(e,t)=>p(e,(e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1])(t),"translate(-50%,-50%)"),A=i.forwardRef((({children:e,eps:t=.001,style:r,className:p,prepend:m,center:A,fullscreen:v,portal:y,distanceFactor:x,sprite:b=!1,transform:E=!1,occlude:_,onOcclude:S,zIndexRange:M=[16777271,0],calculatePosition:w=u,as:C="div",wrapperClass:T,pointerEvents:I="auto",...B},R)=>{var P;const D=(0,o.useThree)((({gl:e})=>e)),L=(0,o.useThree)((({camera:e})=>e)),F=(0,o.useThree)((({scene:e})=>e)),U=(0,o.useThree)((({size:e})=>e)),O=(0,o.useThree)((({raycaster:e})=>e)),[N]=i.useState((()=>document.createElement(C))),k=i.useRef(null),G=i.useRef(0),z=i.useRef([0,0]),Q=i.useRef(null),V=i.useRef(null),H=null!==(P=null==y?void 0:y.current)&&void 0!==P?P:D.domElement.parentNode;i.useEffect((()=>{if(k.current){if(F.updateMatrixWorld(),E)N.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{const e=w(k.current,L,U);N.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return H&&(m?H.prepend(N):H.appendChild(N)),()=>{H&&H.removeChild(N),s.unmountComponentAtNode(N)}}}),[H,E]),i.useLayoutEffect((()=>{T&&(N.className=T)}),[T]);const j=i.useMemo((()=>E?{position:"absolute",top:0,left:0,width:U.width,height:U.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:A?"translate3d(-50%,-50%,0)":"none",...v&&{top:-U.height/2,left:-U.width/2,width:U.width,height:U.height},...r}),[r,A,v,U,E]),W=i.useMemo((()=>({position:"absolute",pointerEvents:I})),[I]);i.useLayoutEffect((()=>{E?s.render(i.createElement("div",{ref:Q,style:j},i.createElement("div",{ref:V,style:W},i.createElement("div",{ref:R,className:p,style:r,children:e}))),N):s.render(i.createElement("div",{ref:R,style:j,className:p,children:e}),N)}));const X=i.useRef(!0);return(0,o.useFrame)((()=>{if(k.current){L.updateMatrixWorld(),k.current.updateWorldMatrix(!0,!1);const e=E?z.current:w(k.current,L,U);if(E||Math.abs(G.current-L.zoom)>t||Math.abs(z.current[0]-e[0])>t||Math.abs(z.current[1]-e[1])>t){const t=function(e,t){const r=l.setFromMatrixPosition(e.matrixWorld),n=c.setFromMatrixPosition(t.matrixWorld),i=r.sub(n),s=t.getWorldDirection(h);return i.angleTo(s)>Math.PI/2}(k.current,L);let r=!1;"boolean"==typeof _?!0===_&&(r=[F]):Array.isArray(_)&&(r=_.map((e=>e.current)));const n=X.current;if(r){const e=function(e,t,r,n){const i=l.setFromMatrixPosition(e.matrixWorld),s=i.clone();s.project(t),r.setFromCamera(s,t);const a=r.intersectObjects(n,!0);if(a.length){const e=a[0].distance;return i.distanceTo(r.ray.origin)e.raycaster)),c=(0,o.useThree)((e=>e.get)),h=(0,o.useThree)((e=>e.gl));return i.useEffect((()=>{var i;let o,u=[];const d=l.filter,p=null!==(i=null==t?void 0:t.current)&&void 0!==i?i:h.domElement.parentNode,f=()=>p&&e&&e(u,Math.round(a.current)%u.length);l.filter=(e,t)=>{let r=[...e];r.length===u.length&&u.every((e=>r.map((e=>e.object.uuid)).includes(e.object.uuid)))||(a.current=0,u=r,f()),d&&(r=d(r,t));for(let n=0;n{var t,r;a.current=e(a.current),null==(t=c().events.handlers)||t.onPointerCancel(void 0),null==(r=c().events.handlers)||r.onPointerMove(o),f()},g=e=>{(e.keyCode||e.which===s)&&(r&&e.preventDefault(),u.length>1&&m((e=>e+1)))},A=e=>{r&&e.preventDefault();let t=0;e||(e=window.event),e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),u.length>1&&m((e=>Math.abs(e-t)))},v=e=>o=e;return document.addEventListener("pointermove",v,{passive:!0}),n&&document.addEventListener("wheel",A),void 0!==s&&document.addEventListener("keydown",g),()=>{l.filter=d,void 0!==s&&document.removeEventListener("keydown",g),n&&document.removeEventListener("wheel",A),document.removeEventListener("pointermove",v)}}),[h,c,l,r,n,s]),null}function y(e,t="pointer",r="auto"){i.useEffect((()=>{if(e)return document.body.style.cursor=t,()=>{document.body.style.cursor=r}}),[e])}var x=r(14671);let b=0;const E=(0,x.Z)((e=>(a.DefaultLoadingManager.onStart=(t,r,n)=>{e({active:!0,item:t,loaded:r,total:n,progress:(r-b)/(n-b)*100})},a.DefaultLoadingManager.onLoad=()=>{e({active:!1})},a.DefaultLoadingManager.onError=t=>e((e=>({errors:[...e.errors,t]}))),a.DefaultLoadingManager.onProgress=(t,r,n)=>{r===n&&(b=n),e({active:!0,item:t,loaded:r,total:n,progress:(r-b)/(n-b)*100||100})},{errors:[],active:!1,progress:0,item:"",loaded:0,total:0}))),_=e=>`Loading ${e.toFixed(2)}%`;function S({containerStyles:e,innerStyles:t,barStyles:r,dataStyles:n,dataInterpolation:s=_,initialState:a=(e=>e)}){const{active:o,progress:l}=E(),c=i.useRef(0),h=i.useRef(0),u=i.useRef(null),[d,p]=i.useState(a(o));i.useEffect((()=>{let e;return o!==d&&(e=setTimeout((()=>p(o)),300)),()=>clearTimeout(e)}),[d,o]);const f=i.useCallback((()=>{u.current&&(c.current+=(l-c.current)/2,(c.current>.95*l||100===l)&&(c.current=l),u.current.innerText=s(c.current),c.current(f(),()=>cancelAnimationFrame(h.current))),[f]),d?i.createElement("div",{style:{...M.container,opacity:o?1:0,...e}},i.createElement("div",null,i.createElement("div",{style:{...M.inner,...t}},i.createElement("div",{style:{...M.bar,transform:`scaleX(${l/100})`,...r}}),i.createElement("span",{ref:u,style:{...M.data,...n}})))):null}const M={container:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"#171717",display:"flex",alignItems:"center",justifyContent:"center",transition:"opacity 300ms ease",zIndex:1e3},inner:{width:100,height:3,background:"#272727",textAlign:"center"},bar:{height:3,width:"100%",background:"white",transition:"transform 200ms",transformOrigin:"left center"},data:{display:"inline-block",position:"relative",fontVariantNumeric:"tabular-nums",marginTop:"0.8em",color:"#f0f0f0",fontSize:"0.6em",fontFamily:'-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "Helvetica Neue", Helvetica, Arial, Roboto, Ubuntu, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',whiteSpace:"nowrap"}};const w=function(e){return function(t){e.forEach((function(e){"function"==typeof e?e(t):null!=e&&(e.current=t)}))}},C=i.createContext(null);function T(){return i.useContext(C)}function I({eps:e=1e-5,enabled:t=!0,infinite:r,horizontal:n,pages:s=1,distance:l=1,damping:c=4,style:h={},children:u}){const{gl:d,size:p,invalidate:f,events:m,raycaster:g}=(0,o.useThree)(),[A]=i.useState((()=>document.createElement("div"))),[v]=i.useState((()=>document.createElement("div"))),[y]=i.useState((()=>document.createElement("div"))),x=d.domElement.parentNode,b=i.useRef(0),E=i.useMemo((()=>{const t={el:A,eps:e,fill:v,fixed:y,horizontal:n,damping:c,offset:0,delta:0,scroll:b,pages:s,range(e,t,r=0){const n=e-r,i=n+t+2*r;return this.offseti?1:(this.offset-n)/(i-n)},curve(e,t,r=0){return Math.sin(this.range(e,t,r)*Math.PI)},visible(e,t,r=0){const n=e-r,i=n+t+2*r;return this.offset>=n&&this.offset<=i}};return t}),[e,c,n,s]);i.useEffect((()=>{A.style.position="absolute",A.style.width="100%",A.style.height="100%",A.style[n?"overflowX":"overflowY"]="auto",A.style[n?"overflowY":"overflowX"]="hidden",A.style.top="0px",A.style.left="0px";for(const r in h)A.style[r]=h[r];y.style.position="sticky",y.style.top="0px",y.style.left="0px",y.style.width="100%",y.style.height="100%",y.style.overflow="hidden",A.appendChild(y),v.style.height=n?"100%":s*l*100+"%",v.style.width=n?s*l*100+"%":"100%",v.style.pointerEvents="none",A.appendChild(v),x.appendChild(A),A[n?"scrollLeft":"scrollTop"]=1;const e=m.connected||d.domElement;requestAnimationFrame((()=>null==m.connect?void 0:m.connect(A)));const t=g.computeOffsets;return g.computeOffsets=({clientX:e,clientY:t})=>({offsetX:e-x.offsetLeft,offsetY:t-x.offsetTop}),()=>{x.removeChild(A),g.computeOffsets=t,null==m.connect||m.connect(e)}}),[s,l,n,A,v,y,x]),i.useEffect((()=>{const e=p[n?"width":"height"],i=A[n?"scrollWidth":"scrollHeight"],s=i-e;let a=0,o=!0,l=!0;const c=()=>{if(t&&!l&&(f(),a=A[n?"scrollLeft":"scrollTop"],b.current=a/s,r)){if(!o)if(a>=s){const e=1-E.offset;A[n?"scrollLeft":"scrollTop"]=1,b.current=E.offset=-e,o=!0}else if(a<=0){const e=1+E.offset;A[n?"scrollLeft":"scrollTop"]=i,b.current=E.offset=e,o=!0}o&&setTimeout((()=>o=!1),40)}};A.addEventListener("scroll",c,{passive:!0}),requestAnimationFrame((()=>l=!1));const h=e=>A.scrollLeft+=e.deltaY/2;return n&&A.addEventListener("wheel",h,{passive:!0}),()=>{A.removeEventListener("scroll",c),n&&A.removeEventListener("wheel",h)}}),[A,p,r,E,f,n,t]);let _=0;return(0,o.useFrame)(((t,r)=>{E.offset=a.MathUtils.damp(_=E.offset,b.current,c,r),E.delta=a.MathUtils.damp(E.delta,Math.abs(_-E.offset),c,r),E.delta>e&&f()})),i.createElement(C.Provider,{value:E},u)}const B=i.forwardRef((({children:e},t)=>{const r=i.useRef(null),n=T(),{width:s,height:a}=(0,o.useThree)((e=>e.viewport));return(0,o.useFrame)((()=>{r.current.position.x=n.horizontal?-s*(n.pages-1)*n.offset:0,r.current.position.y=n.horizontal?0:a*(n.pages-1)*n.offset})),i.createElement("group",{ref:w([t,r])},e)})),R=i.forwardRef((({children:e,style:t,...r},a)=>{const l=T(),c=i.useRef(null),{width:h,height:u}=(0,o.useThree)((e=>e.size)),d=i.useContext(o.context);return(0,o.useFrame)((()=>{l.delta>l.eps&&(c.current.style.transform=`translate3d(${l.horizontal?-h*(l.pages-1)*l.offset:0}px,${l.horizontal?0:u*(l.pages-1)*-l.offset}px,0)`)})),s.render(i.createElement("div",(0,n.Z)({ref:w([a,c]),style:{...t,position:"absolute",top:0,left:0,willChange:"transform"}},r),i.createElement(C.Provider,{value:l},i.createElement(o.context.Provider,{value:d},e))),l.fixed),null})),P=i.forwardRef((({html:e,...t},r)=>{const s=e?R:B;return i.createElement(s,(0,n.Z)({ref:r},t))}));var D=Object.defineProperty,L={};((e,t)=>{for(var r in t)D(e,r,{get:t[r],enumerable:!0})})(L,{assign:()=>pe,colors:()=>he,createStringInterpolator:()=>ae,skipAnimation:()=>ue,to:()=>oe,willAdvance:()=>de});var F=J(),U=e=>X(e,F),O=J();U.write=e=>X(e,O);var N=J();U.onStart=e=>X(e,N);var k=J();U.onFrame=e=>X(e,k);var G=J();U.onFinish=e=>X(e,G);var z=[];U.setTimeout=(e,t)=>{const r=U.now()+t,n=()=>{const e=z.findIndex((e=>e.cancel==n));~e&&z.splice(e,1),j-=~e?1:0},i={time:r,handler:e,cancel:n};return z.splice(Q(r),0,i),j+=1,Y(),i};var Q=e=>~(~z.findIndex((t=>t.time>e))||~z.length);U.cancel=e=>{N.delete(e),k.delete(e),G.delete(e),F.delete(e),O.delete(e)},U.sync=e=>{W=!0,U.batchedUpdates(e),W=!1},U.throttle=e=>{let t;function r(){try{e(...t)}finally{t=null}}function n(...e){t=e,U.onStart(r)}return n.handler=e,n.cancel=()=>{N.delete(r),t=null},n};var V="undefined"!=typeof window?window.requestAnimationFrame:()=>{};U.use=e=>V=e,U.now="undefined"!=typeof performance?()=>performance.now():Date.now,U.batchedUpdates=e=>e(),U.catch=console.error,U.frameLoop="always",U.advance=()=>{"demand"!==U.frameLoop?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):K()};var H=-1,j=0,W=!1;function X(e,t){W?(t.delete(e),e(0)):(t.add(e),Y())}function Y(){H<0&&(H=0,"demand"!==U.frameLoop&&V(q))}function q(){~H&&(V(q),U.batchedUpdates(K))}function K(){const e=H;H=U.now();const t=Q(H);t&&(Z(z.splice(0,t),(e=>e.handler())),j-=t),j?(N.flush(),F.flush(e?Math.min(64,H-e):16.667),k.flush(),O.flush(),G.flush()):H=-1}function J(){let e=new Set,t=e;return{add(r){j+=t!=e||e.has(r)?0:1,e.add(r)},delete:r=>(j-=t==e&&e.has(r)?1:0,e.delete(r)),flush(r){t.size&&(e=new Set,j-=t.size,Z(t,(t=>t(r)&&e.add(t))),j+=e.size,t=e)}}}function Z(e,t){e.forEach((e=>{try{t(e)}catch(za){U.catch(za)}}))}function $(){}var ee={arr:Array.isArray,obj:e=>!!e&&"Object"===e.constructor.name,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,und:e=>void 0===e};function te(e,t){if(ee.arr(e)){if(!ee.arr(t)||e.length!==t.length)return!1;for(let r=0;re.forEach(t);function ne(e,t,r){if(ee.arr(e))for(let n=0;nee.und(e)?[]:ee.arr(e)?e:[e];function se(e,t){if(e.size){const r=Array.from(e);e.clear(),re(r,t)}}var ae,oe,le=(e,...t)=>se(e,(e=>e(...t))),ce=()=>"undefined"==typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),he=null,ue=!1,de=$,pe=e=>{e.to&&(oe=e.to),e.now&&(U.now=e.now),void 0!==e.colors&&(he=e.colors),null!=e.skipAnimation&&(ue=e.skipAnimation),e.createStringInterpolator&&(ae=e.createStringInterpolator),e.requestAnimationFrame&&U.use(e.requestAnimationFrame),e.batchedUpdates&&(U.batchedUpdates=e.batchedUpdates),e.willAdvance&&(de=e.willAdvance),e.frameLoop&&(U.frameLoop=e.frameLoop)},fe=new Set,me=[],ge=[],Ae=0,ve={get idle(){return!fe.size&&!me.length},start(e){Ae>e.priority?(fe.add(e),U.onStart(ye)):(xe(e),U(Ee))},advance:Ee,sort(e){if(Ae)U.onFrame((()=>ve.sort(e)));else{const t=me.indexOf(e);~t&&(me.splice(t,1),be(e))}},clear(){me=[],fe.clear()}};function ye(){fe.forEach(xe),fe.clear(),U(Ee)}function xe(e){me.includes(e)||be(e)}function be(e){me.splice(function(e,t){const r=e.findIndex(t);return r<0?e.length:r}(me,(t=>t.priority>e.priority)),0,e)}function Ee(e){const t=ge;for(let r=0;r0}var _e="[-+]?\\d*\\.?\\d+",Se=_e+"%";function Me(...e){return"\\(\\s*("+e.join(")\\s*,\\s*(")+")\\s*\\)"}var we=new RegExp("rgb"+Me(_e,_e,_e)),Ce=new RegExp("rgba"+Me(_e,_e,_e,_e)),Te=new RegExp("hsl"+Me(_e,Se,Se)),Ie=new RegExp("hsla"+Me(_e,Se,Se,_e)),Be=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,Re=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,Pe=/^#([0-9a-fA-F]{6})$/,De=/^#([0-9a-fA-F]{8})$/;function Le(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function Fe(e,t,r){const n=r<.5?r*(1+t):r+t-r*t,i=2*r-n,s=Le(i,n,e+1/3),a=Le(i,n,e),o=Le(i,n,e-1/3);return Math.round(255*s)<<24|Math.round(255*a)<<16|Math.round(255*o)<<8}function Ue(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function Oe(e){return(parseFloat(e)%360+360)%360/360}function Ne(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(255*t)}function ke(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Ge(e){let t=function(e){let t;return"number"==typeof e?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=Pe.exec(e))?parseInt(t[1]+"ff",16)>>>0:he&&void 0!==he[e]?he[e]:(t=we.exec(e))?(Ue(t[1])<<24|Ue(t[2])<<16|Ue(t[3])<<8|255)>>>0:(t=Ce.exec(e))?(Ue(t[1])<<24|Ue(t[2])<<16|Ue(t[3])<<8|Ne(t[4]))>>>0:(t=Be.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=De.exec(e))?parseInt(t[1],16)>>>0:(t=Re.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=Te.exec(e))?(255|Fe(Oe(t[1]),ke(t[2]),ke(t[3])))>>>0:(t=Ie.exec(e))?(Fe(Oe(t[1]),ke(t[2]),ke(t[3]))|Ne(t[4]))>>>0:null}(e);if(null===t)return e;t=t||0;return`rgba(${(4278190080&t)>>>24}, ${(16711680&t)>>>16}, ${(65280&t)>>>8}, ${(255&t)/255})`}var ze=(e,t,r)=>{if(ee.fun(e))return e;if(ee.arr(e))return ze({range:e,output:t,extrapolate:r});if(ee.str(e.output[0]))return ae(e);const n=e,i=n.output,s=n.range||[0,1],a=n.extrapolateLeft||n.extrapolate||"extend",o=n.extrapolateRight||n.extrapolate||"extend",l=n.easing||(e=>e);return e=>{const t=function(e,t){for(var r=1;r=e);++r);return r-1}(e,s);return function(e,t,r,n,i,s,a,o,l){let c=l?l(e):e;if(cr){if("identity"===o)return c;"clamp"===o&&(c=r)}if(n===i)return n;if(t===r)return e<=t?n:i;t===-1/0?c=-c:r===1/0?c-=t:c=(c-t)/(r-t);c=s(c),n===-1/0?c=-c:i===1/0?c+=n:c=c*(i-n)+n;return c}(e,s[t],s[t+1],i[t],i[t+1],l,a,o,n.map)}};var Qe=1.70158,Ve=1.525*Qe,He=Qe+1,je=2*Math.PI/3,We=2*Math.PI/4.5,Xe=e=>{const t=7.5625,r=2.75;return e<1/r?t*e*e:e<2/r?t*(e-=1.5/r)*e+.75:e<2.5/r?t*(e-=2.25/r)*e+.9375:t*(e-=2.625/r)*e+.984375},Ye={linear:e=>e,easeInQuad:e=>e*e,easeOutQuad:e=>1-(1-e)*(1-e),easeInOutQuad:e=>e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2,easeInCubic:e=>e*e*e,easeOutCubic:e=>1-Math.pow(1-e,3),easeInOutCubic:e=>e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2,easeInQuart:e=>e*e*e*e,easeOutQuart:e=>1-Math.pow(1-e,4),easeInOutQuart:e=>e<.5?8*e*e*e*e:1-Math.pow(-2*e+2,4)/2,easeInQuint:e=>e*e*e*e*e,easeOutQuint:e=>1-Math.pow(1-e,5),easeInOutQuint:e=>e<.5?16*e*e*e*e*e:1-Math.pow(-2*e+2,5)/2,easeInSine:e=>1-Math.cos(e*Math.PI/2),easeOutSine:e=>Math.sin(e*Math.PI/2),easeInOutSine:e=>-(Math.cos(Math.PI*e)-1)/2,easeInExpo:e=>0===e?0:Math.pow(2,10*e-10),easeOutExpo:e=>1===e?1:1-Math.pow(2,-10*e),easeInOutExpo:e=>0===e?0:1===e?1:e<.5?Math.pow(2,20*e-10)/2:(2-Math.pow(2,-20*e+10))/2,easeInCirc:e=>1-Math.sqrt(1-Math.pow(e,2)),easeOutCirc:e=>Math.sqrt(1-Math.pow(e-1,2)),easeInOutCirc:e=>e<.5?(1-Math.sqrt(1-Math.pow(2*e,2)))/2:(Math.sqrt(1-Math.pow(-2*e+2,2))+1)/2,easeInBack:e=>He*e*e*e-Qe*e*e,easeOutBack:e=>1+He*Math.pow(e-1,3)+Qe*Math.pow(e-1,2),easeInOutBack:e=>e<.5?Math.pow(2*e,2)*(7.189819*e-Ve)/2:(Math.pow(2*e-2,2)*((Ve+1)*(2*e-2)+Ve)+2)/2,easeInElastic:e=>0===e?0:1===e?1:-Math.pow(2,10*e-10)*Math.sin((10*e-10.75)*je),easeOutElastic:e=>0===e?0:1===e?1:Math.pow(2,-10*e)*Math.sin((10*e-.75)*je)+1,easeInOutElastic:e=>0===e?0:1===e?1:e<.5?-Math.pow(2,20*e-10)*Math.sin((20*e-11.125)*We)/2:Math.pow(2,-20*e+10)*Math.sin((20*e-11.125)*We)/2+1,easeInBounce:e=>1-Xe(1-e),easeOutBounce:Xe,easeInOutBounce:e=>e<.5?(1-Xe(1-2*e))/2:(1+Xe(2*e-1))/2,steps:(e,t="end")=>r=>{const n=(r="end"===t?Math.min(r,.999):Math.max(r,.001))*e;return((e,t,r)=>Math.min(Math.max(r,e),t))(0,1,("end"===t?Math.floor(n):Math.ceil(n))/e)}},qe=Symbol.for("FluidValue.get"),Ke=Symbol.for("FluidValue.observers"),Je=e=>Boolean(e&&e[qe]),Ze=e=>e&&e[qe]?e[qe]():e,$e=e=>e[Ke]||null;function et(e,t){const r=e[Ke];r&&r.forEach((e=>{!function(e,t){e.eventObserved?e.eventObserved(t):e(t)}(e,t)}))}var tt=class{constructor(e){if(!e&&!(e=this.get))throw Error("Unknown getter");rt(this,e)}},rt=(e,t)=>at(e,qe,t);function nt(e,t){if(e[qe]){let r=e[Ke];r||at(e,Ke,r=new Set),r.has(t)||(r.add(t),e.observerAdded&&e.observerAdded(r.size,t))}return t}function it(e,t){const r=e[Ke];if(r&&r.has(t)){const n=r.size-1;n?r.delete(t):e[Ke]=null,e.observerRemoved&&e.observerRemoved(n,t)}}var st,at=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,configurable:!0}),ot=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,lt=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,ct=new RegExp(`(${ot.source})(%|[a-z]+)`,"i"),ht=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,ut=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,dt=e=>{const[t,r]=pt(e);if(!t||ce())return e;const n=window.getComputedStyle(document.documentElement).getPropertyValue(t);if(n)return n.trim();if(r&&r.startsWith("--")){const t=window.getComputedStyle(document.documentElement).getPropertyValue(r);return t||e}return r&&ut.test(r)?dt(r):r||e},pt=e=>{const t=ut.exec(e);if(!t)return[,];const[,r,n]=t;return[r,n]},ft=(e,t,r,n,i)=>`rgba(${Math.round(t)}, ${Math.round(r)}, ${Math.round(n)}, ${i})`,mt=e=>{st||(st=he?new RegExp(`(${Object.keys(he).join("|")})(?!\\w)`,"g"):/^\b$/);const t=e.output.map((e=>Ze(e).replace(ut,dt).replace(lt,Ge).replace(st,Ge))),r=t.map((e=>e.match(ot).map(Number))),n=r[0].map(((e,t)=>r.map((e=>{if(!(t in e))throw Error('The arity of each "output" value must be equal');return e[t]})))),i=n.map((t=>ze({...e,output:t})));return e=>{const r=!ct.test(t[0])&&t.find((e=>ct.test(e)))?.replace(ot,"");let n=0;return t[0].replace(ot,(()=>`${i[n++](e)}${r||""}`)).replace(ht,ft)}},gt="react-spring: ",At=e=>{const t=e;let r=!1;if("function"!=typeof t)throw new TypeError(`${gt}once requires a function parameter`);return(...e)=>{r||(t(...e),r=!0)}},vt=At(console.warn);var yt=At(console.warn);function xt(e){return ee.str(e)&&("#"==e[0]||/\d/.test(e)||!ce()&&ut.test(e)||e in(he||{}))}var bt=ce()?i.useEffect:i.useLayoutEffect,Et=()=>{const e=(0,i.useRef)(!1);return bt((()=>(e.current=!0,()=>{e.current=!1})),[]),e};function _t(){const e=(0,i.useState)()[1],t=Et();return()=>{t.current&&e(Math.random())}}var St=e=>(0,i.useEffect)(e,Mt),Mt=[];function wt(e){const t=(0,i.useRef)();return(0,i.useEffect)((()=>{t.current=e})),t.current}var Ct=Symbol.for("Animated:node"),Tt=e=>e&&e[Ct],It=(e,t)=>{return r=e,n=Ct,i=t,Object.defineProperty(r,n,{value:i,writable:!0,configurable:!0});var r,n,i},Bt=e=>e&&e[Ct]&&e[Ct].getPayload(),Rt=class{constructor(){It(this,this)}getPayload(){return this.payload||[]}},Pt=class extends Rt{constructor(e){super(),this._value=e,this.done=!0,this.durationProgress=0,ee.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Pt(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return ee.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value!==e&&(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,ee.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}},Dt=class extends Pt{constructor(e){super(0),this._string=null,this._toString=ze({output:[e,e]})}static create(e){return new Dt(e)}getValue(){const e=this._string;return null==e?this._string=this._toString(this._value):e}setValue(e){if(ee.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else{if(!super.setValue(e))return!1;this._string=null}return!0}reset(e){e&&(this._toString=ze({output:[this.getValue(),e]})),this._value=0,super.reset()}},Lt={dependencies:null},Ft=class extends Rt{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return ne(this.source,((r,n)=>{var i;(i=r)&&i[Ct]===i?t[n]=r.getValue(e):Je(r)?t[n]=Ze(r):e||(t[n]=r)})),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&re(this.payload,(e=>e.reset()))}_makePayload(e){if(e){const t=new Set;return ne(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){Lt.dependencies&&Je(e)&&Lt.dependencies.add(e);const t=Bt(e);t&&re(t,(e=>this.add(e)))}},Ut=class extends Ft{constructor(e){super(e)}static create(e){return new Ut(e)}getValue(){return this.source.map((e=>e.getValue()))}setValue(e){const t=this.getPayload();return e.length==t.length?t.map(((t,r)=>t.setValue(e[r]))).some(Boolean):(super.setValue(e.map(Ot)),!0)}};function Ot(e){return(xt(e)?Dt:Pt).create(e)}function Nt(e){const t=Tt(e);return t?t.constructor:ee.arr(e)?Ut:xt(e)?Dt:Pt}var kt=(e,t)=>{const r=!ee.fun(e)||e.prototype&&e.prototype.isReactComponent;return(0,i.forwardRef)(((n,s)=>{const a=(0,i.useRef)(null),o=r&&(0,i.useCallback)((e=>{a.current=function(e,t){e&&(ee.fun(e)?e(t):e.current=t);return t}(s,e)}),[s]),[l,c]=function(e,t){const r=new Set;Lt.dependencies=r,e.style&&(e={...e,style:t.createAnimatedStyle(e.style)});return e=new Ft(e),Lt.dependencies=null,[e,r]}(n,t),h=_t(),u=()=>{const e=a.current;if(r&&!e)return;!1===(!!e&&t.applyAnimatedValues(e,l.getValue(!0)))&&h()},d=new Gt(u,c),p=(0,i.useRef)();bt((()=>(p.current=d,re(c,(e=>nt(e,d))),()=>{p.current&&(re(p.current.deps,(e=>it(e,p.current))),U.cancel(p.current.update))}))),(0,i.useEffect)(u,[]),St((()=>()=>{const e=p.current;re(e.deps,(t=>it(t,e)))}));const f=t.getComponentProps(l.getValue());return i.createElement(e,{...f,ref:o})}))},Gt=class{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){"change"==e.type&&U.write(this.update)}};var zt=Symbol.for("AnimatedComponent"),Qt=e=>ee.str(e)?e:e&&ee.str(e.displayName)?e.displayName:ee.fun(e)&&e.name||null;function Vt(e,...t){return ee.fun(e)?e(...t):e}var Ht=(e,t)=>!0===e||!!(t&&e&&(ee.fun(e)?e(t):ie(e).includes(t))),jt=(e,t)=>ee.obj(e)?t&&e[t]:e,Wt=(e,t)=>!0===e.default?e[t]:e.default?e.default[t]:void 0,Xt=e=>e,Yt=(e,t=Xt)=>{let r=qt;e.default&&!0!==e.default&&(e=e.default,r=Object.keys(e));const n={};for(const i of r){const r=t(e[i],i);ee.und(r)||(n[i]=r)}return n},qt=["config","onProps","onStart","onChange","onPause","onResume","onRest"],Kt={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function Jt(e){const t=function(e){const t={};let r=0;if(ne(e,((e,n)=>{Kt[n]||(t[n]=e,r++)})),r)return t}(e);if(t){const r={to:t};return ne(e,((e,n)=>n in t||(r[n]=e))),r}return{...e}}function Zt(e){return e=Ze(e),ee.arr(e)?e.map(Zt):xt(e)?L.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function $t(e){for(const t in e)return!0;return!1}function er(e){return ee.fun(e)||ee.arr(e)&&ee.obj(e[0])}function tr(e,t){e.ref?.delete(e),t?.delete(e)}function rr(e,t){t&&e.ref!==t&&(e.ref?.delete(e),t.add(e),e.ref=t)}var nr={tension:170,friction:26,mass:1,damping:1,easing:Ye.linear,clamp:!1},ir=class{constructor(){this.velocity=0,Object.assign(this,nr)}};function sr(e,t){if(ee.und(t.decay)){const r=!ee.und(t.tension)||!ee.und(t.friction);!r&&ee.und(t.frequency)&&ee.und(t.damping)&&ee.und(t.mass)||(e.duration=void 0,e.decay=void 0),r&&(e.frequency=void 0)}else e.duration=void 0}var ar=[],or=class{constructor(){this.changed=!1,this.values=ar,this.toValues=null,this.fromValues=ar,this.config=new ir,this.immediate=!1}};function lr(e,{key:t,props:r,defaultProps:n,state:i,actions:s}){return new Promise(((a,o)=>{let l,c,h=Ht(r.cancel??n?.cancel,t);if(h)p();else{ee.und(r.pause)||(i.paused=Ht(r.pause,t));let e=n?.pause;!0!==e&&(e=i.paused||Ht(e,t)),l=Vt(r.delay||0,t),e?(i.resumeQueue.add(d),s.pause()):(s.resume(),d())}function u(){i.resumeQueue.add(d),i.timeouts.delete(c),c.cancel(),l=c.time-U.now()}function d(){l>0&&!L.skipAnimation?(i.delayed=!0,c=U.setTimeout(p,l),i.pauseQueue.add(u),i.timeouts.add(c)):p()}function p(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(u),i.timeouts.delete(c),e<=(i.cancelId||0)&&(h=!0);try{s.start({...r,callId:e,cancel:h},a)}catch(t){o(t)}}}))}var cr=(e,t)=>1==t.length?t[0]:t.some((e=>e.cancelled))?dr(e.get()):t.every((e=>e.noop))?hr(e.get()):ur(e.get(),t.every((e=>e.finished))),hr=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),ur=(e,t,r=!1)=>({value:e,finished:t,cancelled:r}),dr=e=>({value:e,cancelled:!0,finished:!1});function pr(e,t,r,n){const{callId:i,parentId:s,onRest:a}=t,{asyncTo:o,promise:l}=r;return s||e!==o||t.reset?r.promise=(async()=>{r.asyncId=i,r.asyncTo=e;const c=Yt(t,((e,t)=>"onRest"===t?void 0:e));let h,u;const d=new Promise(((e,t)=>(h=e,u=t))),p=e=>{const t=i<=(r.cancelId||0)&&dr(n)||i!==r.asyncId&&ur(n,!1);if(t)throw e.result=t,u(e),e},f=(e,t)=>{const s=new mr,a=new gr;return(async()=>{if(L.skipAnimation)throw fr(r),a.result=ur(n,!1),u(a),a;p(s);const o=ee.obj(e)?{...e}:{...t,to:e};o.parentId=i,ne(c,((e,t)=>{ee.und(o[t])&&(o[t]=e)}));const l=await n.start(o);return p(s),r.paused&&await new Promise((e=>{r.resumeQueue.add(e)})),l})()};let m;if(L.skipAnimation)return fr(r),ur(n,!1);try{let t;t=ee.arr(e)?(async e=>{for(const t of e)await f(t)})(e):Promise.resolve(e(f,n.stop.bind(n))),await Promise.all([t.then(h),d]),m=ur(n.get(),!0,!1)}catch(g){if(g instanceof mr)m=g.result;else{if(!(g instanceof gr))throw g;m=g.result}}finally{i==r.asyncId&&(r.asyncId=s,r.asyncTo=s?o:void 0,r.promise=s?l:void 0)}return ee.fun(a)&&U.batchedUpdates((()=>{a(m,n,n.item)})),m})():l}function fr(e,t){se(e.timeouts,(e=>e.cancel())),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}var mr=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},gr=class extends Error{constructor(){super("SkipAnimationSignal")}},Ar=e=>e instanceof yr,vr=1,yr=class extends tt{constructor(){super(...arguments),this.id=vr++,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Tt(this);return e&&e.getValue()}to(...e){return L.to(this,e)}interpolate(...e){return vt(`${gt}The "interpolate" function is deprecated in v9 (use "to" instead)`),L.to(this,e)}toJSON(){return this.get()}observerAdded(e){1==e&&this._attach()}observerRemoved(e){0==e&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){et(this,{type:"change",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||ve.sort(this),et(this,{type:"priority",parent:this,priority:e})}},xr=Symbol.for("SpringPhase"),br=e=>(1&e[xr])>0,Er=e=>(2&e[xr])>0,_r=e=>(4&e[xr])>0,Sr=(e,t)=>t?e[xr]|=3:e[xr]&=-3,Mr=(e,t)=>t?e[xr]|=4:e[xr]&=-5,wr=class extends yr{constructor(e,t){if(super(),this.animation=new or,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!ee.und(e)||!ee.und(t)){const r=ee.obj(e)?{...e}:{...t,from:e};ee.und(r.default)&&(r.default=!0),this.start(r)}}get idle(){return!(Er(this)||this._state.asyncTo)||_r(this)}get goal(){return Ze(this.animation.to)}get velocity(){const e=Tt(this);return e instanceof Pt?e.lastVelocity||0:e.getPayload().map((e=>e.lastVelocity||0))}get hasAnimated(){return br(this)}get isAnimating(){return Er(this)}get isPaused(){return _r(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,r=!1;const n=this.animation;let{toValues:i}=n;const{config:s}=n,a=Bt(n.to);!a&&Je(n.to)&&(i=ie(Ze(n.to))),n.values.forEach(((o,l)=>{if(o.done)return;const c=o.constructor==Dt?1:a?a[l].lastPosition:i[l];let h=n.immediate,u=c;if(!h){if(u=o.lastPosition,s.tension<=0)return void(o.done=!0);let t=o.elapsedTime+=e;const r=n.fromValues[l],i=null!=o.v0?o.v0:o.v0=ee.arr(s.velocity)?s.velocity[l]:s.velocity;let a;const d=s.precision||(r==c?.005:Math.min(1,.001*Math.abs(c-r)));if(ee.und(s.duration))if(s.decay){const e=!0===s.decay?.998:s.decay,n=Math.exp(-(1-e)*t);u=r+i/(1-e)*(1-n),h=Math.abs(o.lastPosition-u)<=d,a=i*n}else{a=null==o.lastVelocity?i:o.lastVelocity;const t=s.restVelocity||d/10,n=s.clamp?0:s.bounce,l=!ee.und(n),p=r==c?o.v0>0:rt,f||(h=Math.abs(c-u)<=d,!h));++e){l&&(m=u==c||u>c==p,m&&(a=-a*n,u=c));a+=(1e-6*-s.tension*(u-c)+.001*-s.friction*a)/s.mass*g,u+=a*g}}else{let n=1;s.duration>0&&(this._memoizedDuration!==s.duration&&(this._memoizedDuration=s.duration,o.durationProgress>0&&(o.elapsedTime=s.duration*o.durationProgress,t=o.elapsedTime+=e)),n=(s.progress||0)+t/this._memoizedDuration,n=n>1?1:n<0?0:n,o.durationProgress=n),u=r+s.easing(n)*(c-r),a=(u-o.lastPosition)/e,h=1==n}o.lastVelocity=a,Number.isNaN(u)&&(console.warn("Got NaN while animating:",this),h=!0)}a&&!a[l].done&&(h=!1),h?o.done=!0:t=!1,o.setValue(u,s.round)&&(r=!0)}));const o=Tt(this),l=o.getValue();if(t){const e=Ze(n.to);l===e&&!r||s.decay?r&&s.decay&&this._onChange(l):(o.setValue(e),this._onChange(e)),this._stop()}else r&&this._onChange(l)}set(e){return U.batchedUpdates((()=>{this._stop(),this._focus(e),this._set(e)})),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(Er(this)){const{to:e,config:t}=this.animation;U.batchedUpdates((()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()}))}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let r;return ee.und(e)?(r=this.queue||[],this.queue=[]):r=[ee.obj(e)?e:{...t,to:e}],Promise.all(r.map((e=>this._update(e)))).then((e=>cr(this,e)))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),fr(this._state,e&&this._lastCallId),U.batchedUpdates((()=>this._stop(t,e))),this}reset(){this._update({reset:!0})}eventObserved(e){"change"==e.type?this._start():"priority"==e.type&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||"";let{to:r,from:n}=e;r=ee.obj(r)?r[t]:r,(null==r||er(r))&&(r=void 0),n=ee.obj(n)?n[t]:n,null==n&&(n=void 0);const i={to:r,from:n};return br(this)||(e.reverse&&([r,n]=[n,r]),n=Ze(n),ee.und(n)?Tt(this)||this._set(r):this._set(n)),i}_update({...e},t){const{key:r,defaultProps:n}=this;e.default&&Object.assign(n,Yt(e,((e,t)=>/^on/.test(t)?jt(e,r):e))),Dr(this,e,"onProps"),Lr(this,"onProps",e,this);const i=this._prepareNode(e);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const s=this._state;return lr(++this._lastCallId,{key:r,props:e,defaultProps:n,state:s,actions:{pause:()=>{_r(this)||(Mr(this,!0),le(s.pauseQueue),Lr(this,"onPause",ur(this,Cr(this,this.animation.to)),this))},resume:()=>{_r(this)&&(Mr(this,!1),Er(this)&&this._resume(),le(s.resumeQueue),Lr(this,"onResume",ur(this,Cr(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then((r=>{if(e.loop&&r.finished&&(!t||!r.noop)){const t=Tr(e);if(t)return this._update(t,!0)}return r}))}_merge(e,t,r){if(t.cancel)return this.stop(!0),r(dr(this));const n=!ee.und(e.to),i=!ee.und(e.from);if(n||i){if(!(t.callId>this._lastToId))return r(dr(this));this._lastToId=t.callId}const{key:s,defaultProps:a,animation:o}=this,{to:l,from:c}=o;let{to:h=l,from:u=c}=e;!i||n||t.default&&!ee.und(h)||(h=u),t.reverse&&([h,u]=[u,h]);const d=!te(u,c);d&&(o.from=u),u=Ze(u);const p=!te(h,l);p&&this._focus(h);const f=er(t.to),{config:m}=o,{decay:g,velocity:A}=m;(n||i)&&(m.velocity=0),t.config&&!f&&function(e,t,r){r&&(sr(r={...r},t),t={...r,...t}),sr(e,t),Object.assign(e,t);for(const a in nr)null==e[a]&&(e[a]=nr[a]);let{frequency:n,damping:i}=e;const{mass:s}=e;ee.und(n)||(n<.01&&(n=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/n,2)*s,e.friction=4*Math.PI*i*s/n)}(m,Vt(t.config,s),t.config!==a.config?Vt(a.config,s):void 0);let v=Tt(this);if(!v||ee.und(h))return r(ur(this,!0));const y=ee.und(t.reset)?i&&!t.default:!ee.und(u)&&Ht(t.reset,s),x=y?u:this.get(),b=Zt(h),E=ee.num(b)||ee.arr(b)||xt(b),_=!f&&(!E||Ht(a.immediate||t.immediate,s));if(p){const e=Nt(h);if(e!==v.constructor){if(!_)throw Error(`Cannot animate between ${v.constructor.name} and ${e.name}, as the "to" prop suggests`);v=this._set(b)}}const S=v.constructor;let M=Je(h),w=!1;if(!M){const e=y||!br(this)&&d;(p||e)&&(w=te(Zt(x),b),M=!w),(te(o.immediate,_)||_)&&te(m.decay,g)&&te(m.velocity,A)||(M=!0)}if(w&&Er(this)&&(o.changed&&!y?M=!0:M||this._stop(l)),!f&&((M||Je(l))&&(o.values=v.getPayload(),o.toValues=Je(h)?null:S==Dt?[1]:ie(b)),o.immediate!=_&&(o.immediate=_,_||y||this._set(l)),M)){const{onRest:e}=o;re(Pr,(e=>Dr(this,t,e)));const n=ur(this,Cr(this,l));le(this._pendingCalls,n),this._pendingCalls.add(r),o.changed&&U.batchedUpdates((()=>{o.changed=!y,e?.(n,this),y?Vt(a.onRest,n):o.onStart?.(n,this)}))}y&&this._set(x),f?r(pr(t.to,t,this._state,this)):M?this._start():Er(this)&&!p?this._pendingCalls.add(r):r(hr(x))}_focus(e){const t=this.animation;e!==t.to&&($e(this)&&this._detach(),t.to=e,$e(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;Je(t)&&(nt(t,this),Ar(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;Je(e)&&it(e,this)}_set(e,t=!0){const r=Ze(e);if(!ee.und(r)){const e=Tt(this);if(!e||!te(r,e.getValue())){const n=Nt(r);e&&e.constructor==n?e.setValue(r):It(this,n.create(r)),e&&U.batchedUpdates((()=>{this._onChange(r,t)}))}}return Tt(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Lr(this,"onStart",ur(this,Cr(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),Vt(this.animation.onChange,e,this)),Vt(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Tt(this).reset(Ze(e.to)),e.immediate||(e.fromValues=e.values.map((e=>e.lastPosition))),Er(this)||(Sr(this,!0),_r(this)||this._resume())}_resume(){L.skipAnimation?this.finish():ve.start(this)}_stop(e,t){if(Er(this)){Sr(this,!1);const r=this.animation;re(r.values,(e=>{e.done=!0})),r.toValues&&(r.onChange=r.onPause=r.onResume=void 0),et(this,{type:"idle",parent:this});const n=t?dr(this.get()):ur(this.get(),Cr(this,e??r.to));le(this._pendingCalls,n),r.changed&&(r.changed=!1,Lr(this,"onRest",n,this))}}};function Cr(e,t){const r=Zt(t);return te(Zt(e.get()),r)}function Tr(e,t=e.loop,r=e.to){const n=Vt(t);if(n){const i=!0!==n&&Jt(n),s=(i||e).reverse,a=!i||i.reset;return Ir({...e,loop:t,default:!1,pause:void 0,to:!s||er(r)?r:void 0,from:a?e.from:void 0,reset:a,...i})}}function Ir(e){const{to:t,from:r}=e=Jt(e),n=new Set;return ee.obj(t)&&Rr(t,n),ee.obj(r)&&Rr(r,n),e.keys=n.size?Array.from(n):null,e}function Br(e){const t=Ir(e);return ee.und(t.default)&&(t.default=Yt(t)),t}function Rr(e,t){ne(e,((e,r)=>null!=e&&t.add(r)))}var Pr=["onStart","onRest","onChange","onPause","onResume"];function Dr(e,t,r){e.animation[r]=t[r]!==Wt(t,r)?jt(t[r],e.key):void 0}function Lr(e,t,...r){e.animation[t]?.(...r),e.defaultProps[t]?.(...r)}var Fr=["onStart","onChange","onRest"],Ur=1,Or=class{constructor(e,t){this.id=Ur++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start({default:!0,...e})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every((e=>e.idle&&!e.isDelayed&&!e.isPaused))}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each(((t,r)=>e[r]=t.get())),e}set(e){for(const t in e){const r=e[t];ee.und(r)||this.springs[t].set(r)}}update(e){return e&&this.queue.push(Ir(e)),this}start(e){let{queue:t}=this;return e?t=ie(e).map(Ir):this.queue=[],this._flush?this._flush(this,t):(Hr(this,t),Nr(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const r=this.springs;re(ie(t),(t=>r[t].stop(!!e)))}else fr(this._state,this._lastAsyncId),this.each((t=>t.stop(!!e)));return this}pause(e){if(ee.und(e))this.start({pause:!0});else{const t=this.springs;re(ie(e),(e=>t[e].pause()))}return this}resume(e){if(ee.und(e))this.start({pause:!1});else{const t=this.springs;re(ie(e),(e=>t[e].resume()))}return this}each(e){ne(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:r}=this._events,n=this._active.size>0,i=this._changed.size>0;(n&&!this._started||i&&!this._started)&&(this._started=!0,se(e,(([e,t])=>{t.value=this.get(),e(t,this,this._item)})));const s=!n&&this._started,a=i||s&&r.size?this.get():null;i&&t.size&&se(t,(([e,t])=>{t.value=a,e(t,this,this._item)})),s&&(this._started=!1,se(r,(([e,t])=>{t.value=a,e(t,this,this._item)})))}eventObserved(e){if("change"==e.type)this._changed.add(e.parent),e.idle||this._active.add(e.parent);else{if("idle"!=e.type)return;this._active.delete(e.parent)}U.onFrame(this._onFrame)}};function Nr(e,t){return Promise.all(t.map((t=>kr(e,t)))).then((t=>cr(e,t)))}async function kr(e,t,r){const{keys:n,to:i,from:s,loop:a,onRest:o,onResolve:l}=t,c=ee.obj(t.default)&&t.default;a&&(t.loop=!1),!1===i&&(t.to=null),!1===s&&(t.from=null);const h=ee.arr(i)||ee.fun(i)?i:void 0;h?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):re(Fr,(r=>{const n=t[r];if(ee.fun(n)){const i=e._events[r];t[r]=({finished:e,cancelled:t})=>{const r=i.get(n);r?(e||(r.finished=!1),t&&(r.cancelled=!0)):i.set(n,{value:null,finished:e||!1,cancelled:t||!1})},c&&(c[r]=t[r])}}));const u=e._state;t.pause===!u.paused?(u.paused=t.pause,le(t.pause?u.pauseQueue:u.resumeQueue)):u.paused&&(t.pause=!0);const d=(n||Object.keys(e.springs)).map((r=>e.springs[r].start(t))),p=!0===t.cancel||!0===Wt(t,"cancel");(h||p&&u.asyncId)&&d.push(lr(++e._lastAsyncId,{props:t,state:u,actions:{pause:$,resume:$,start(t,r){p?(fr(u,e._lastAsyncId),r(dr(e))):(t.onRest=o,r(pr(h,t,u,e)))}}})),u.paused&&await new Promise((e=>{u.resumeQueue.add(e)}));const f=cr(e,await Promise.all(d));if(a&&f.finished&&(!r||!f.noop)){const r=Tr(t,a,i);if(r)return Hr(e,[r]),kr(e,r,!0)}return l&&U.batchedUpdates((()=>l(f,e,e.item))),f}function Gr(e,t){const r={...e.springs};return t&&re(ie(t),(e=>{ee.und(e.keys)&&(e=Ir(e)),ee.obj(e.to)||(e={...e,to:void 0}),Vr(r,e,(e=>Qr(e)))})),zr(e,r),r}function zr(e,t){ne(t,((t,r)=>{e.springs[r]||(e.springs[r]=t,nt(t,e))}))}function Qr(e,t){const r=new wr;return r.key=e,t&&nt(r,t),r}function Vr(e,t,r){t.keys&&re(t.keys,(n=>{(e[n]||(e[n]=r(n)))._prepareNode(t)}))}function Hr(e,t){re(t,(t=>{Vr(e.springs,t,(t=>Qr(t,e)))}))}var jr=({children:e,...t})=>{const r=(0,i.useContext)(Wr),n=t.pause||!!r.pause,s=t.immediate||!!r.immediate;t=function(e,t){const[r]=(0,i.useState)((()=>({inputs:t,result:e()}))),n=(0,i.useRef)(),s=n.current;let a=s;if(a){const r=Boolean(t&&a.inputs&&function(e,t){if(e.length!==t.length)return!1;for(let r=0;r{n.current=a,s==r&&(r.inputs=r.result=void 0)}),[a]),a.result}((()=>({pause:n,immediate:s})),[n,s]);const{Provider:a}=Wr;return i.createElement(a,{value:t},e)},Wr=function(e,t){return Object.assign(e,i.createContext(t)),e.Provider._context=e,e.Consumer._context=e,e}(jr,{});jr.Provider=Wr.Provider,jr.Consumer=Wr.Consumer;var Xr=()=>{const e=[],t=function(t){yt(`${gt}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`);const n=[];return re(e,((e,i)=>{if(ee.und(t))n.push(e.start());else{const s=r(t,e,i);s&&n.push(e.start(s))}})),n};t.current=e,t.add=function(t){e.includes(t)||e.push(t)},t.delete=function(t){const r=e.indexOf(t);~r&&e.splice(r,1)},t.pause=function(){return re(e,(e=>e.pause(...arguments))),this},t.resume=function(){return re(e,(e=>e.resume(...arguments))),this},t.set=function(t){re(e,((e,r)=>{const n=ee.fun(t)?t(r,e):t;n&&e.set(n)}))},t.start=function(t){const r=[];return re(e,((e,n)=>{if(ee.und(t))r.push(e.start());else{const i=this._getProps(t,e,n);i&&r.push(e.start(i))}})),r},t.stop=function(){return re(e,(e=>e.stop(...arguments))),this},t.update=function(t){return re(e,((e,r)=>e.update(this._getProps(t,e,r)))),this};const r=function(e,t,r){return ee.fun(e)?e(r,t):e};return t._getProps=r,t};function Yr(e,t,r){const n=ee.fun(t)&&t;n&&!r&&(r=[]);const s=(0,i.useMemo)((()=>n||3==arguments.length?Xr():void 0),[]),a=(0,i.useRef)(0),o=_t(),l=(0,i.useMemo)((()=>({ctrls:[],queue:[],flush(e,t){const r=Gr(e,t);return a.current>0&&!l.queue.length&&!Object.keys(r).some((t=>!e.springs[t]))?Nr(e,t):new Promise((n=>{zr(e,r),l.queue.push((()=>{n(Nr(e,t))})),o()}))}})),[]),c=(0,i.useRef)([...l.ctrls]),h=[],u=wt(e)||0;function d(e,r){for(let i=e;i{re(c.current.slice(e,u),(e=>{tr(e,s),e.stop(!0)})),c.current.length=e,d(u,e)}),[e]),(0,i.useMemo)((()=>{d(0,Math.min(u,e))}),r);const p=c.current.map(((e,t)=>Gr(e,h[t]))),f=(0,i.useContext)(jr),m=wt(f),g=f!==m&&$t(f);bt((()=>{a.current++,l.ctrls=c.current;const{queue:e}=l;e.length&&(l.queue=[],re(e,(e=>e()))),re(c.current,((e,t)=>{s?.add(e),g&&e.start({default:f});const r=h[t];r&&(rr(e,r.ref),e.ref?e.queue.push(r):e.start(r))}))})),St((()=>()=>{re(l.ctrls,(e=>e.stop(!0)))}));const A=p.map((e=>({...e})));return s?[A,s]:A}function qr(e,t){const r=ee.fun(e),[[n],i]=Yr(1,r?e:[e],r?t||[]:t);return r||2==arguments.length?[n,i]:n}var Kr=class extends yr{constructor(e,t){super(),this.source=e,this.idle=!0,this._active=new Set,this.calc=ze(...t);const r=this._get(),n=Nt(r);It(this,n.create(r))}advance(e){const t=this._get();te(t,this.get())||(Tt(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Zr(this._active)&&$r(this)}_get(){const e=ee.arr(this.source)?this.source.map(Ze):ie(Ze(this.source));return this.calc(...e)}_start(){this.idle&&!Zr(this._active)&&(this.idle=!1,re(Bt(this),(e=>{e.done=!1})),L.skipAnimation?(U.batchedUpdates((()=>this.advance())),$r(this)):ve.start(this))}_attach(){let e=1;re(ie(this.source),(t=>{Je(t)&&nt(t,this),Ar(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))})),this.priority=e,this._start()}_detach(){re(ie(this.source),(e=>{Je(e)&&it(e,this)})),this._active.clear(),$r(this)}eventObserved(e){"change"==e.type?e.idle?this.advance():(this._active.add(e.parent),this._start()):"idle"==e.type?this._active.delete(e.parent):"priority"==e.type&&(this.priority=ie(this.source).reduce(((e,t)=>Math.max(e,(Ar(t)?t.priority:0)+1)),0))}};function Jr(e){return!1!==e.idle}function Zr(e){return!e.size||Array.from(e).every(Jr)}function $r(e){e.idle||(e.idle=!0,re(Bt(e),(e=>{e.done=!0})),et(e,{type:"idle",parent:e}))}L.assign({createStringInterpolator:mt,to:(e,t)=>new Kr(e,t)});ve.advance;var en=["primitive"].concat(Object.keys(a).filter((e=>/^[A-Z]/.test(e))).map((e=>e[0].toLowerCase()+e.slice(1))));L.assign({createStringInterpolator:mt,colors:{transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},frameLoop:"demand"}),(0,o.addEffect)((()=>{U.advance()}));var tn=((e,{applyAnimatedValues:t=(()=>!1),createAnimatedStyle:r=(e=>new Ft(e)),getComponentProps:n=(e=>e)}={})=>{const i={applyAnimatedValues:t,createAnimatedStyle:r,getComponentProps:n},s=e=>{const t=Qt(e)||"Anonymous";return(e=ee.str(e)?s[e]||(s[e]=kt(e,i)):e[zt]||(e[zt]=kt(e,i))).displayName=`Animated(${t})`,e};return ne(e,((t,r)=>{ee.arr(e)&&(r=Qt(t)),s[r]=s(t)})),{animated:s}})(en,{applyAnimatedValues:o.applyProps}),rn=tn.animated;const nn={toVector:(e,t)=>(void 0===e&&(e=t),Array.isArray(e)?e:[e,e]),add:(e,t)=>[e[0]+t[0],e[1]+t[1]],sub:(e,t)=>[e[0]-t[0],e[1]-t[1]],addTo(e,t){e[0]+=t[0],e[1]+=t[1]},subTo(e,t){e[0]-=t[0],e[1]-=t[1]}};function sn(e,t,r){return 0===t||Math.abs(t)===1/0?Math.pow(e,5*r):e*t*r/(t+r*e)}function an(e,t,r,n=.15){return 0===n?function(e,t,r){return Math.max(t,Math.min(e,r))}(e,t,r):er?+sn(e-r,r-t,n)+r:e}function on(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function ln(e,t,r){return(t=on(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function cn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function hn(e){for(var t=1;t{var r,n;return t.target===e.currentTarget||(null===(r=e.currentTarget)||void 0===r||null===(n=r.contains)||void 0===n?void 0:n.call(r,t.target))}))}(e).map((e=>e.identifier))}function En(e,t){const[r,n]=Array.from(e.touches).filter((e=>t.includes(e.identifier)));return xn(r,n)}function _n(e){const t=yn(e);return An(e)?t.identifier:t.pointerId}function Sn(e){const t=yn(e);return[t.clientX,t.clientY]}function Mn(e){let{deltaX:t,deltaY:r,deltaMode:n}=e;return 1===n?(t*=40,r*=40):2===n&&(t*=800,r*=800),[t,r]}function wn(e,...t){return"function"==typeof e?e(...t):e}function Cn(){}function Tn(...e){return 0===e.length?Cn:1===e.length?e[0]:function(){let t;for(const r of e)t=r.apply(this,arguments)||t;return t}}function In(e,t){return Object.assign({},t,e||{})}class Bn{constructor(e,t,r){this.ctrl=e,this.args=t,this.key=r,this.state||(this.state={},this.computeValues([0,0]),this.computeInitial(),this.init&&this.init(),this.reset())}get state(){return this.ctrl.state[this.key]}set state(e){this.ctrl.state[this.key]=e}get shared(){return this.ctrl.state.shared}get eventStore(){return this.ctrl.gestureEventStores[this.key]}get timeoutStore(){return this.ctrl.gestureTimeoutStores[this.key]}get config(){return this.ctrl.config[this.key]}get sharedConfig(){return this.ctrl.config.shared}get handler(){return this.ctrl.handlers[this.key]}reset(){const{state:e,shared:t,ingKey:r,args:n}=this;t[r]=e._active=e.active=e._blocked=e._force=!1,e._step=[!1,!1],e.intentional=!1,e._movement=[0,0],e._distance=[0,0],e._direction=[0,0],e._delta=[0,0],e._bounds=[[-1/0,1/0],[-1/0,1/0]],e.args=n,e.axis=void 0,e.memo=void 0,e.elapsedTime=e.timeDelta=0,e.direction=[0,0],e.distance=[0,0],e.overflow=[0,0],e._movementBound=[!1,!1],e.velocity=[0,0],e.movement=[0,0],e.delta=[0,0],e.timeStamp=0}start(e){const t=this.state,r=this.config;t._active||(this.reset(),this.computeInitial(),t._active=!0,t.target=e.target,t.currentTarget=e.currentTarget,t.lastOffset=r.from?wn(r.from,t):t.offset,t.offset=t.lastOffset,t.startTime=t.timeStamp=e.timeStamp)}computeValues(e){const t=this.state;t._values=e,t.values=this.config.transform(e)}computeInitial(){const e=this.state;e._initial=e._values,e.initial=e.values}compute(e){const{state:t,config:r,shared:n}=this;t.args=this.args;let i=0;if(e&&(t.event=e,r.preventDefault&&e.cancelable&&t.event.preventDefault(),t.type=e.type,n.touches=this.ctrl.pointerIds.size||this.ctrl.touchIds.size,n.locked=!!document.pointerLockElement,Object.assign(n,function(e){const t={};if("buttons"in e&&(t.buttons=e.buttons),"shiftKey"in e){const{shiftKey:r,altKey:n,metaKey:i,ctrlKey:s}=e;Object.assign(t,{shiftKey:r,altKey:n,metaKey:i,ctrlKey:s})}return t}(e)),n.down=n.pressed=n.buttons%2==1||n.touches>0,i=e.timeStamp-t.timeStamp,t.timeStamp=e.timeStamp,t.elapsedTime=t.timeStamp-t.startTime),t._active){const e=t._delta.map(Math.abs);nn.addTo(t._distance,e)}this.axisIntent&&this.axisIntent(e);const[s,a]=t._movement,[o,l]=r.threshold,{_step:c,values:h}=t;if(r.hasCustomTransform?(!1===c[0]&&(c[0]=Math.abs(s)>=o&&h[0]),!1===c[1]&&(c[1]=Math.abs(a)>=l&&h[1])):(!1===c[0]&&(c[0]=Math.abs(s)>=o&&Math.sign(s)*o),!1===c[1]&&(c[1]=Math.abs(a)>=l&&Math.sign(a)*l)),t.intentional=!1!==c[0]||!1!==c[1],!t.intentional)return;const u=[0,0];if(r.hasCustomTransform){const[e,t]=h;u[0]=!1!==c[0]?e-c[0]:0,u[1]=!1!==c[1]?t-c[1]:0}else u[0]=!1!==c[0]?s-c[0]:0,u[1]=!1!==c[1]?a-c[1]:0;this.restrictToAxis&&!t._blocked&&this.restrictToAxis(u);const d=t.offset,p=t._active&&!t._blocked||t.active;p&&(t.first=t._active&&!t.active,t.last=!t._active&&t.active,t.active=n[this.ingKey]=t._active,e&&(t.first&&("bounds"in r&&(t._bounds=wn(r.bounds,t)),this.setup&&this.setup()),t.movement=u,this.computeOffset()));const[f,m]=t.offset,[[g,A],[v,y]]=t._bounds;t.overflow=[fA?1:0,my?1:0],t._movementBound[0]=!!t.overflow[0]&&(!1===t._movementBound[0]?t._movement[0]:t._movementBound[0]),t._movementBound[1]=!!t.overflow[1]&&(!1===t._movementBound[1]?t._movement[1]:t._movementBound[1]);const x=t._active&&r.rubberband||[0,0];if(t.offset=function(e,[t,r],[n,i]){const[[s,a],[o,l]]=e;return[an(t,s,a,n),an(r,o,l,i)]}(t._bounds,t.offset,x),t.delta=nn.sub(t.offset,d),this.computeMovement(),p&&(!t.last||i>32)){t.delta=nn.sub(t.offset,d);const e=t.delta.map(Math.abs);nn.addTo(t.distance,e),t.direction=t.delta.map(Math.sign),t._direction=t._delta.map(Math.sign),!t.first&&i>0&&(t.velocity=[e[0]/i,e[1]/i],t.timeDelta=i)}}emit(){const e=this.state,t=this.shared,r=this.config;if(e._active||this.clean(),(e._blocked||!e.intentional)&&!e._force&&!r.triggerAllEvents)return;const n=this.handler(hn(hn(hn({},t),e),{},{[this.aliasKey]:e.values}));void 0!==n&&(e.memo=n)}clean(){this.eventStore.clean(),this.timeoutStore.clean()}}class Rn extends Bn{constructor(...e){super(...e),ln(this,"aliasKey","xy")}reset(){super.reset(),this.state.axis=void 0}init(){this.state.offset=[0,0],this.state.lastOffset=[0,0]}computeOffset(){this.state.offset=nn.add(this.state.lastOffset,this.state.movement)}computeMovement(){this.state.movement=nn.sub(this.state.offset,this.state.lastOffset)}axisIntent(e){const t=this.state,r=this.config;if(!t.axis&&e){const n="object"==typeof r.axisThreshold?r.axisThreshold[vn(e)]:r.axisThreshold;t.axis=function([e,t],r){const n=Math.abs(e),i=Math.abs(t);return n>i&&n>r?"x":i>n&&i>r?"y":void 0}(t._movement,n)}t._blocked=(r.lockDirection||!!r.axis)&&!t.axis||!!r.axis&&r.axis!==t.axis}restrictToAxis(e){if(this.config.axis||this.config.lockDirection)switch(this.state.axis){case"x":e[1]=0;break;case"y":e[0]=0}}}const Pn=e=>e,Dn={enabled:(e=!0)=>e,eventOptions:(e,t,r)=>hn(hn({},r.shared.eventOptions),e),preventDefault:(e=!1)=>e,triggerAllEvents:(e=!1)=>e,rubberband(e=0){switch(e){case!0:return[.15,.15];case!1:return[0,0];default:return nn.toVector(e)}},from:e=>"function"==typeof e?e:null!=e?nn.toVector(e):void 0,transform(e,t,r){const n=e||r.shared.transform;return this.hasCustomTransform=!!n,n||Pn},threshold:e=>nn.toVector(e,0)};const Ln=hn(hn({},Dn),{},{axis(e,t,{axis:r}){if(this.lockDirection="lock"===r,!this.lockDirection)return r},axisThreshold:(e=0)=>e,bounds(e={}){if("function"==typeof e)return t=>Ln.bounds(e(t));if("current"in e)return()=>e.current;if("function"==typeof HTMLElement&&e instanceof HTMLElement)return e;const{left:t=-1/0,right:r=1/0,top:n=-1/0,bottom:i=1/0}=e;return[[t,r],[n,i]]}}),Fn={ArrowRight:(e,t=1)=>[e*t,0],ArrowLeft:(e,t=1)=>[-1*e*t,0],ArrowUp:(e,t=1)=>[0,-1*e*t],ArrowDown:(e,t=1)=>[0,e*t]};const Un="undefined"!=typeof window&&window.document&&window.document.createElement;function On(){return Un&&"ontouchstart"in window}const Nn={isBrowser:Un,gesture:function(){try{return"constructor"in GestureEvent}catch(za){return!1}}(),touch:On(),touchscreen:On()||Un&&window.navigator.maxTouchPoints>1,pointer:Un&&"onpointerdown"in window,pointerLock:Un&&"exitPointerLock"in window.document},kn={mouse:0,touch:0,pen:8},Gn=hn(hn({},Ln),{},{device(e,t,{pointer:{touch:r=!1,lock:n=!1,mouse:i=!1}={}}){return this.pointerLock=n&&Nn.pointerLock,Nn.touch&&r?"touch":this.pointerLock?"mouse":Nn.pointer&&!i?"pointer":Nn.touch?"touch":"mouse"},preventScrollAxis(e,t,{preventScroll:r}){if(this.preventScrollDelay="number"==typeof r?r:r||void 0===r&&e?250:void 0,Nn.touchscreen&&!1!==r)return e||(void 0!==r?"y":void 0)},pointerCapture(e,t,{pointer:{capture:r=!0,buttons:n=1,keys:i=!0}={}}){return this.pointerButtons=n,this.keys=i,!this.pointerLock&&"pointer"===this.device&&r},threshold(e,t,{filterTaps:r=!1,tapsThreshold:n=3,axis:i}){const s=nn.toVector(e,r?n:i?1:0);return this.filterTaps=r,this.tapsThreshold=n,s},swipe({velocity:e=.5,distance:t=50,duration:r=250}={}){return{velocity:this.transform(nn.toVector(e)),distance:this.transform(nn.toVector(t)),duration:r}},delay(e=0){switch(e){case!0:return 180;case!1:return 0;default:return e}},axisThreshold:e=>e?hn(hn({},kn),e):kn,keyboardDisplacement:(e=10)=>e});function zn(e){const[t,r]=e.overflow,[n,i]=e._delta,[s,a]=e._direction;(t<0&&n>0&&s<0||t>0&&n<0&&s>0)&&(e._movement[0]=e._movementBound[0]),(r<0&&i>0&&a<0||r>0&&i<0&&a>0)&&(e._movement[1]=e._movementBound[1])}const Qn=hn(hn({},Dn),{},{device(e,t,{shared:r,pointer:{touch:n=!1}={}}){if(r.target&&!Nn.touch&&Nn.gesture)return"gesture";if(Nn.touch&&n)return"touch";if(Nn.touchscreen){if(Nn.pointer)return"pointer";if(Nn.touch)return"touch"}},bounds(e,t,{scaleBounds:r={},angleBounds:n={}}){const i=e=>{const t=In(wn(r,e),{min:-1/0,max:1/0});return[t.min,t.max]},s=e=>{const t=In(wn(n,e),{min:-1/0,max:1/0});return[t.min,t.max]};return"function"!=typeof r&&"function"!=typeof n?[i(),s()]:e=>[i(e),s(e)]},threshold(e,t,r){this.lockDirection="lock"===r.axis;return nn.toVector(e,this.lockDirection?[.1,3]:0)},modifierKey:e=>void 0===e?"ctrlKey":e,pinchOnWheel:(e=!0)=>e});const Vn=hn(hn({},Ln),{},{mouseOnly:(e=!0)=>e});const Hn=Ln;const jn=Ln;const Wn=hn(hn({},Ln),{},{mouseOnly:(e=!0)=>e}),Xn=new Map,Yn=new Map;function qn(e){Xn.set(e.key,e.engine),Yn.set(e.key,e.resolver)}const Kn={key:"drag",engine:class extends Rn{constructor(...e){super(...e),ln(this,"ingKey","dragging")}reset(){super.reset();const e=this.state;e._pointerId=void 0,e._pointerActive=!1,e._keyboardActive=!1,e._preventScroll=!1,e._delayed=!1,e.swipe=[0,0],e.tap=!1,e.canceled=!1,e.cancel=this.cancel.bind(this)}setup(){const e=this.state;if(e._bounds instanceof HTMLElement){const t=e._bounds.getBoundingClientRect(),r=e.currentTarget.getBoundingClientRect(),n={left:t.left-r.left+e.offset[0],right:t.right-r.right+e.offset[0],top:t.top-r.top+e.offset[1],bottom:t.bottom-r.bottom+e.offset[1]};e._bounds=Ln.bounds(n)}}cancel(){const e=this.state;e.canceled||(e.canceled=!0,e._active=!1,setTimeout((()=>{this.compute(),this.emit()}),0))}setActive(){this.state._active=this.state._pointerActive||this.state._keyboardActive}clean(){this.pointerClean(),this.state._pointerActive=!1,this.state._keyboardActive=!1,super.clean()}pointerDown(e){const t=this.config,r=this.state;if(null!=e.buttons&&(Array.isArray(t.pointerButtons)?!t.pointerButtons.includes(e.buttons):-1!==t.pointerButtons&&t.pointerButtons!==e.buttons))return;const n=this.ctrl.setEventIds(e);t.pointerCapture&&e.target.setPointerCapture(e.pointerId),n&&n.size>1&&r._pointerActive||(this.start(e),this.setupPointer(e),r._pointerId=_n(e),r._pointerActive=!0,this.computeValues(Sn(e)),this.computeInitial(),t.preventScrollAxis&&"mouse"!==vn(e)?(r._active=!1,this.setupScrollPrevention(e)):t.delay>0?(this.setupDelayTrigger(e),t.triggerAllEvents&&(this.compute(e),this.emit())):this.startPointerDrag(e))}startPointerDrag(e){const t=this.state;t._active=!0,t._preventScroll=!0,t._delayed=!1,this.compute(e),this.emit()}pointerMove(e){const t=this.state,r=this.config;if(!t._pointerActive)return;const n=_n(e);if(void 0!==t._pointerId&&n!==t._pointerId)return;const i=Sn(e);return document.pointerLockElement===e.target?t._delta=[e.movementX,e.movementY]:(t._delta=nn.sub(i,t._values),this.computeValues(i)),nn.addTo(t._movement,t._delta),this.compute(e),t._delayed&&t.intentional?(this.timeoutStore.remove("dragDelay"),t.active=!1,void this.startPointerDrag(e)):r.preventScrollAxis&&!t._preventScroll?t.axis?t.axis===r.preventScrollAxis||"xy"===r.preventScrollAxis?(t._active=!1,void this.clean()):(this.timeoutStore.remove("startPointerDrag"),void this.startPointerDrag(e)):void 0:void this.emit()}pointerUp(e){this.ctrl.setEventIds(e);try{this.config.pointerCapture&&e.target.hasPointerCapture(e.pointerId)&&e.target.releasePointerCapture(e.pointerId)}catch(a){0}const t=this.state,r=this.config;if(!t._active||!t._pointerActive)return;const n=_n(e);if(void 0!==t._pointerId&&n!==t._pointerId)return;this.state._pointerActive=!1,this.setActive(),this.compute(e);const[i,s]=t._distance;if(t.tap=i<=r.tapsThreshold&&s<=r.tapsThreshold,t.tap&&r.filterTaps)t._force=!0;else{const[e,n]=t._delta,[i,s]=t._movement,[a,o]=r.swipe.velocity,[l,c]=r.swipe.distance,h=r.swipe.duration;if(t.elapsedTimea&&Math.abs(i)>l&&(t.swipe[0]=Math.sign(e)),h>o&&Math.abs(s)>c&&(t.swipe[1]=Math.sign(n))}}this.emit()}pointerClick(e){!this.state.tap&&e.detail>0&&(e.preventDefault(),e.stopPropagation())}setupPointer(e){const t=this.config,r=t.device;t.pointerLock&&e.currentTarget.requestPointerLock(),t.pointerCapture||(this.eventStore.add(this.sharedConfig.window,r,"change",this.pointerMove.bind(this)),this.eventStore.add(this.sharedConfig.window,r,"end",this.pointerUp.bind(this)),this.eventStore.add(this.sharedConfig.window,r,"cancel",this.pointerUp.bind(this)))}pointerClean(){this.config.pointerLock&&document.pointerLockElement===this.state.currentTarget&&document.exitPointerLock()}preventScroll(e){this.state._preventScroll&&e.cancelable&&e.preventDefault()}setupScrollPrevention(e){this.state._preventScroll=!1,function(e){"persist"in e&&"function"==typeof e.persist&&e.persist()}(e);const t=this.eventStore.add(this.sharedConfig.window,"touch","change",this.preventScroll.bind(this),{passive:!1});this.eventStore.add(this.sharedConfig.window,"touch","end",t),this.eventStore.add(this.sharedConfig.window,"touch","cancel",t),this.timeoutStore.add("startPointerDrag",this.startPointerDrag.bind(this),this.config.preventScrollDelay,e)}setupDelayTrigger(e){this.state._delayed=!0,this.timeoutStore.add("dragDelay",(()=>{this.state._step=[0,0],this.startPointerDrag(e)}),this.config.delay)}keyDown(e){const t=Fn[e.key];if(t){const r=this.state,n=e.shiftKey?10:e.altKey?.1:1;this.start(e),r._delta=t(this.config.keyboardDisplacement,n),r._keyboardActive=!0,nn.addTo(r._movement,r._delta),this.compute(e),this.emit()}}keyUp(e){e.key in Fn&&(this.state._keyboardActive=!1,this.setActive(),this.compute(e),this.emit())}bind(e){const t=this.config.device;e(t,"start",this.pointerDown.bind(this)),this.config.pointerCapture&&(e(t,"change",this.pointerMove.bind(this)),e(t,"end",this.pointerUp.bind(this)),e(t,"cancel",this.pointerUp.bind(this)),e("lostPointerCapture","",this.pointerUp.bind(this))),this.config.keys&&(e("key","down",this.keyDown.bind(this)),e("key","up",this.keyUp.bind(this))),this.config.filterTaps&&e("click","",this.pointerClick.bind(this),{capture:!0,passive:!1})}},resolver:Gn},Jn={key:"hover",engine:class extends Rn{constructor(...e){super(...e),ln(this,"ingKey","hovering")}enter(e){this.config.mouseOnly&&"mouse"!==e.pointerType||(this.start(e),this.computeValues(Sn(e)),this.compute(e),this.emit())}leave(e){if(this.config.mouseOnly&&"mouse"!==e.pointerType)return;const t=this.state;if(!t._active)return;t._active=!1;const r=Sn(e);t._movement=t._delta=nn.sub(r,t._values),this.computeValues(r),this.compute(e),t.delta=t.movement,this.emit()}bind(e){e("pointer","enter",this.enter.bind(this)),e("pointer","leave",this.leave.bind(this))}},resolver:Wn},Zn={key:"move",engine:class extends Rn{constructor(...e){super(...e),ln(this,"ingKey","moving")}move(e){this.config.mouseOnly&&"mouse"!==e.pointerType||(this.state._active?this.moveChange(e):this.moveStart(e),this.timeoutStore.add("moveEnd",this.moveEnd.bind(this)))}moveStart(e){this.start(e),this.computeValues(Sn(e)),this.compute(e),this.computeInitial(),this.emit()}moveChange(e){if(!this.state._active)return;const t=Sn(e),r=this.state;r._delta=nn.sub(t,r._values),nn.addTo(r._movement,r._delta),this.computeValues(t),this.compute(e),this.emit()}moveEnd(e){this.state._active&&(this.state._active=!1,this.compute(e),this.emit())}bind(e){e("pointer","change",this.move.bind(this)),e("pointer","leave",this.moveEnd.bind(this))}},resolver:Vn},$n={key:"pinch",engine:class extends Bn{constructor(...e){super(...e),ln(this,"ingKey","pinching"),ln(this,"aliasKey","da")}init(){this.state.offset=[1,0],this.state.lastOffset=[1,0],this.state._pointerEvents=new Map}reset(){super.reset();const e=this.state;e._touchIds=[],e.canceled=!1,e.cancel=this.cancel.bind(this),e.turns=0}computeOffset(){const{type:e,movement:t,lastOffset:r}=this.state;this.state.offset="wheel"===e?nn.add(t,r):[(1+t[0])*r[0],t[1]+r[1]]}computeMovement(){const{offset:e,lastOffset:t}=this.state;this.state.movement=[e[0]/t[0],e[1]-t[1]]}axisIntent(){const e=this.state,[t,r]=e._movement;if(!e.axis){const n=30*Math.abs(t)-Math.abs(r);n<0?e.axis="angle":n>0&&(e.axis="scale")}}restrictToAxis(e){this.config.lockDirection&&("scale"===this.state.axis?e[1]=0:"angle"===this.state.axis&&(e[0]=0))}cancel(){const e=this.state;e.canceled||setTimeout((()=>{e.canceled=!0,e._active=!1,this.compute(),this.emit()}),0)}touchStart(e){this.ctrl.setEventIds(e);const t=this.state,r=this.ctrl.touchIds;if(t._active&&t._touchIds.every((e=>r.has(e))))return;if(r.size<2)return;this.start(e),t._touchIds=Array.from(r).slice(0,2);const n=En(e,t._touchIds);n&&this.pinchStart(e,n)}pointerStart(e){if(null!=e.buttons&&e.buttons%2!=1)return;this.ctrl.setEventIds(e),e.target.setPointerCapture(e.pointerId);const t=this.state,r=t._pointerEvents,n=this.ctrl.pointerIds;if(t._active&&Array.from(r.keys()).every((e=>n.has(e))))return;if(r.size<2&&r.set(e.pointerId,e),t._pointerEvents.size<2)return;this.start(e);const i=xn(...Array.from(r.values()));i&&this.pinchStart(e,i)}pinchStart(e,t){this.state.origin=t.origin,this.computeValues([t.distance,t.angle]),this.computeInitial(),this.compute(e),this.emit()}touchMove(e){if(!this.state._active)return;const t=En(e,this.state._touchIds);t&&this.pinchMove(e,t)}pointerMove(e){const t=this.state._pointerEvents;if(t.has(e.pointerId)&&t.set(e.pointerId,e),!this.state._active)return;const r=xn(...Array.from(t.values()));r&&this.pinchMove(e,r)}pinchMove(e,t){const r=this.state,n=r._values[1],i=t.angle-n;let s=0;Math.abs(i)>270&&(s+=Math.sign(i)),this.computeValues([t.distance,t.angle-360*s]),r.origin=t.origin,r.turns=s,r._movement=[r._values[0]/r._initial[0]-1,r._values[1]-r._initial[1]],this.compute(e),this.emit()}touchEnd(e){this.ctrl.setEventIds(e),this.state._active&&this.state._touchIds.some((e=>!this.ctrl.touchIds.has(e)))&&(this.state._active=!1,this.compute(e),this.emit())}pointerEnd(e){const t=this.state;this.ctrl.setEventIds(e);try{e.target.releasePointerCapture(e.pointerId)}catch(r){}t._pointerEvents.has(e.pointerId)&&t._pointerEvents.delete(e.pointerId),t._active&&t._pointerEvents.size<2&&(t._active=!1,this.compute(e),this.emit())}gestureStart(e){e.cancelable&&e.preventDefault();const t=this.state;t._active||(this.start(e),this.computeValues([e.scale,e.rotation]),t.origin=[e.clientX,e.clientY],this.compute(e),this.emit())}gestureMove(e){if(e.cancelable&&e.preventDefault(),!this.state._active)return;const t=this.state;this.computeValues([e.scale,e.rotation]),t.origin=[e.clientX,e.clientY];const r=t._movement;t._movement=[e.scale-1,e.rotation],t._delta=nn.sub(t._movement,r),this.compute(e),this.emit()}gestureEnd(e){this.state._active&&(this.state._active=!1,this.compute(e),this.emit())}wheel(e){const t=this.config.modifierKey;t&&!(Array.isArray(t)?t.find((t=>e[t])):e[t])||(this.state._active?this.wheelChange(e):this.wheelStart(e),this.timeoutStore.add("wheelEnd",this.wheelEnd.bind(this)))}wheelStart(e){this.start(e),this.wheelChange(e)}wheelChange(e){"uv"in e||e.cancelable&&e.preventDefault();const t=this.state;t._delta=[-Mn(e)[1]/100*t.offset[0],0],nn.addTo(t._movement,t._delta),zn(t),this.state.origin=[e.clientX,e.clientY],this.compute(e),this.emit()}wheelEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){const t=this.config.device;t&&(e(t,"start",this[t+"Start"].bind(this)),e(t,"change",this[t+"Move"].bind(this)),e(t,"end",this[t+"End"].bind(this)),e(t,"cancel",this[t+"End"].bind(this)),e("lostPointerCapture","",this[t+"End"].bind(this))),this.config.pinchOnWheel&&e("wheel","",this.wheel.bind(this),{passive:!1})}},resolver:Qn},ei={key:"scroll",engine:class extends Rn{constructor(...e){super(...e),ln(this,"ingKey","scrolling")}scroll(e){this.state._active||this.start(e),this.scrollChange(e),this.timeoutStore.add("scrollEnd",this.scrollEnd.bind(this))}scrollChange(e){e.cancelable&&e.preventDefault();const t=this.state,r=function(e){var t,r;const{scrollX:n,scrollY:i,scrollLeft:s,scrollTop:a}=e.currentTarget;return[null!==(t=null!=n?n:s)&&void 0!==t?t:0,null!==(r=null!=i?i:a)&&void 0!==r?r:0]}(e);t._delta=nn.sub(r,t._values),nn.addTo(t._movement,t._delta),this.computeValues(r),this.compute(e),this.emit()}scrollEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){e("scroll","",this.scroll.bind(this))}},resolver:Hn},ti={key:"wheel",engine:class extends Rn{constructor(...e){super(...e),ln(this,"ingKey","wheeling")}wheel(e){this.state._active||this.start(e),this.wheelChange(e),this.timeoutStore.add("wheelEnd",this.wheelEnd.bind(this))}wheelChange(e){const t=this.state;t._delta=Mn(e),nn.addTo(t._movement,t._delta),zn(t),this.compute(e),this.emit()}wheelEnd(){this.state._active&&(this.state._active=!1,this.compute(),this.emit())}bind(e){e("wheel","",this.wheel.bind(this))}},resolver:jn};function ri(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}const ni={target(e){if(e)return()=>"current"in e?e.current:e},enabled:(e=!0)=>e,window:(e=(Nn.isBrowser?window:void 0))=>e,eventOptions:({passive:e=!0,capture:t=!1}={})=>({passive:e,capture:t}),transform:e=>e},ii=["target","eventOptions","window","enabled","transform"];function si(e={},t){const r={};for(const[n,i]of Object.entries(t))switch(typeof i){case"function":r[n]=i.call(r,e[n],n,e);break;case"object":r[n]=si(e[n],i);break;case"boolean":i&&(r[n]=e[n])}return r}class ai{constructor(e,t){ln(this,"_listeners",new Set),this._ctrl=e,this._gestureKey=t}add(e,t,r,n,i){const s=this._listeners,a=function(e,t=""){const r=un[e];return e+(r&&r[t]||t)}(t,r),o=hn(hn({},this._gestureKey?this._ctrl.config[this._gestureKey].eventOptions:{}),i);e.addEventListener(a,n,o);const l=()=>{e.removeEventListener(a,n,o),s.delete(l)};return s.add(l),l}clean(){this._listeners.forEach((e=>e())),this._listeners.clear()}}class oi{constructor(){ln(this,"_timeouts",new Map)}add(e,t,r=140,...n){this.remove(e),this._timeouts.set(e,window.setTimeout(t,r,...n))}remove(e){const t=this._timeouts.get(e);t&&window.clearTimeout(t)}clean(){this._timeouts.forEach((e=>{window.clearTimeout(e)})),this._timeouts.clear()}}class li{constructor(e){ln(this,"gestures",new Set),ln(this,"_targetEventStore",new ai(this)),ln(this,"gestureEventStores",{}),ln(this,"gestureTimeoutStores",{}),ln(this,"handlers",{}),ln(this,"config",{}),ln(this,"pointerIds",new Set),ln(this,"touchIds",new Set),ln(this,"state",{shared:{shiftKey:!1,metaKey:!1,ctrlKey:!1,altKey:!1}}),function(e,t){t.drag&&ci(e,"drag");t.wheel&&ci(e,"wheel");t.scroll&&ci(e,"scroll");t.move&&ci(e,"move");t.pinch&&ci(e,"pinch");t.hover&&ci(e,"hover")}(this,e)}setEventIds(e){return An(e)?(this.touchIds=new Set(bn(e)),this.touchIds):"pointerId"in e?("pointerup"===e.type||"pointercancel"===e.type?this.pointerIds.delete(e.pointerId):"pointerdown"===e.type&&this.pointerIds.add(e.pointerId),this.pointerIds):void 0}applyHandlers(e,t){this.handlers=e,this.nativeHandlers=t}applyConfig(e,t){this.config=function(e,t,r={}){const n=e,{target:i,eventOptions:s,window:a,enabled:o,transform:l}=n,c=ri(n,ii);if(r.shared=si({target:i,eventOptions:s,window:a,enabled:o,transform:l},ni),t){const e=Yn.get(t);r[t]=si(hn({shared:r.shared},c),e)}else for(const h in c){const e=Yn.get(h);e&&(r[h]=si(hn({shared:r.shared},c[h]),e))}return r}(e,t,this.config)}clean(){this._targetEventStore.clean();for(const e of this.gestures)this.gestureEventStores[e].clean(),this.gestureTimeoutStores[e].clean()}effect(){return this.config.shared.target&&this.bind(),()=>this._targetEventStore.clean()}bind(...e){const t=this.config.shared,r={};let n;if(!t.target||(n=t.target(),n)){if(t.enabled){for(const t of this.gestures){const i=this.config[t],s=hi(r,i.eventOptions,!!n);if(i.enabled){new(Xn.get(t))(this,e,t).bind(s)}}const i=hi(r,t.eventOptions,!!n);for(const t in this.nativeHandlers)i(t,"",(r=>this.nativeHandlers[t](hn(hn({},this.state.shared),{},{event:r,args:e}))),void 0,!0)}for(const e in r)r[e]=Tn(...r[e]);if(!n)return r;for(const e in r){const{device:t,capture:i,passive:s}=gn(e);this._targetEventStore.add(n,t,"",r[e],{capture:i,passive:s})}}}}function ci(e,t){e.gestures.add(t),e.gestureEventStores[t]=new ai(e,t),e.gestureTimeoutStores[t]=new oi}const hi=(e,t,r)=>(n,i,s,a={},o=!1)=>{var l,c;const h=null!==(l=a.capture)&&void 0!==l?l:t.capture,u=null!==(c=a.passive)&&void 0!==c?c:t.passive;let d=o?n:fn(n,i,h);r&&u&&(d+="Passive"),e[d]=e[d]||[],e[d].push(s)},ui=/^on(Drag|Wheel|Scroll|Move|Pinch|Hover)/;function di(e,t,r,n,i,s){if(!e.has(r))return;if(!Xn.has(n))return void 0;const a=r+"Start",o=r+"End";i[n]=e=>{let n;return e.first&&a in t&&t[a](e),r in t&&(n=t[r](e)),e.last&&o in t&&t[o](e),n},s[n]=s[n]||{}}function pi(e,t){const[r,n,i]=function(e){const t={},r={},n=new Set;for(let i in e)ui.test(i)?(n.add(RegExp.lastMatch),r[i]=e[i]):t[i]=e[i];return[r,t,n]}(e),s={};return di(i,r,"onDrag","drag",s,t),di(i,r,"onWheel","wheel",s,t),di(i,r,"onScroll","scroll",s,t),di(i,r,"onPinch","pinch",s,t),di(i,r,"onMove","move",s,t),di(i,r,"onHover","hover",s,t),{handlers:s,config:t,nativeHandlers:n}}function fi(e,t={},r,n){const s=i.useMemo((()=>new li(e)),[]);if(s.applyHandlers(e,n),s.applyConfig(t,r),i.useEffect(s.effect.bind(s)),i.useEffect((()=>s.clean.bind(s)),[]),void 0===t.target)return s.bind.bind(s)}function mi(e,t){const r=([Kn,$n,ei,ti,Zn,Jn].forEach(qn),function(e,t){const{handlers:r,nativeHandlers:n,config:i}=pi(e,t||{});return fi(r,i,void 0,n)});return r(e,t||{})}function gi({snap:e,global:t,cursor:r=!0,children:s,speed:l=1,rotation:c=[0,0,0],zoom:h=1,polar:u=[0,Math.PI/2],azimuth:d=[-1/0,1/0],config:p={mass:1,tension:170,friction:26}}){const{size:f,gl:m}=(0,o.useThree)(),g=i.useMemo((()=>[c[0]+u[0],c[0]+u[1]]),[c[0],u[0],u[1]]),A=i.useMemo((()=>[c[1]+d[0],c[1]+d[1]]),[c[1],d[0],d[1]]),v=i.useMemo((()=>[a.MathUtils.clamp(c[0],...g),a.MathUtils.clamp(c[1],...A),c[2]]),[c[0],c[1],c[2],g,A]),[y,x]=qr((()=>({scale:1,rotation:v,config:p})));i.useEffect((()=>{x.start({scale:1,rotation:v,config:p})}),[v]),i.useEffect((()=>{t&&r&&(m.domElement.style.cursor="grab")}),[t,r,m.domElement]);const b=mi({onHover:({last:e})=>{r&&!t&&(m.domElement.style.cursor=e?"auto":"grab")},onDrag:({down:t,delta:[n,i],memo:[s,o]=y.rotation.animation.to||v})=>{r&&(m.domElement.style.cursor=t?"grabbing":"grab"),n=a.MathUtils.clamp(o+n/f.width*Math.PI*l,...A),i=a.MathUtils.clamp(s+i/f.height*Math.PI*l,...g);const c=e&&!t&&"boolean"!=typeof e?e:p;return x.start({scale:t&&i>g[1]/2?h:1,rotation:e&&!t?v:[i,n,0],config:e=>"scale"===e?{...c,friction:3*c.friction}:c}),[i,n]}},{target:t?m.domElement:void 0});return i.createElement(rn.group,(0,n.Z)({},null==b?void 0:b(),y),s)}const Ai=new a.Frustum,vi=new a.Vector3,yi=new a.Vector3,xi=new a.Vector3,bi=new a.Vector3,Ei=new a.Vector3,_i=new a.Vector3,Si=new a.Vector3,Mi=new a.Vector3,wi=new a.Vector3,Ci=new a.Vector3,Ti=new a.Vector3,Ii=new a.Vector3,Bi=new a.Vector3,Ri=new a.Vector3;class Pi{constructor(e,t,r){this.camera=e,this.scene=t,this.startPoint=new a.Vector3,this.endPoint=new a.Vector3,this.collection=[],this.deep=r||Number.MAX_VALUE}select(e,t){return this.startPoint=e||this.startPoint,this.endPoint=t||this.endPoint,this.collection=[],this.updateFrustum(this.startPoint,this.endPoint),this.searchChildInFrustum(Ai,this.scene),this.collection}updateFrustum(e,t){if(e=e||this.startPoint,t=t||this.endPoint,e.x===t.x&&(t.x+=Number.EPSILON),e.y===t.y&&(t.y+=Number.EPSILON),this.camera.updateProjectionMatrix(),this.camera.updateMatrixWorld(),this.camera.isPerspectiveCamera)yi.copy(e),yi.x=Math.min(e.x,t.x),yi.y=Math.max(e.y,t.y),t.x=Math.max(e.x,t.x),t.y=Math.min(e.y,t.y),xi.setFromMatrixPosition(this.camera.matrixWorld),bi.copy(yi),Ei.set(t.x,yi.y,0),_i.copy(t),Si.set(yi.x,t.y,0),bi.unproject(this.camera),Ei.unproject(this.camera),_i.unproject(this.camera),Si.unproject(this.camera),Ii.copy(bi).sub(xi),Bi.copy(Ei).sub(xi),Ri.copy(_i).sub(xi),Ii.normalize(),Bi.normalize(),Ri.normalize(),Ii.multiplyScalar(this.deep),Bi.multiplyScalar(this.deep),Ri.multiplyScalar(this.deep),Ii.add(xi),Bi.add(xi),Ri.add(xi),(r=Ai.planes)[0].setFromCoplanarPoints(xi,bi,Ei),r[1].setFromCoplanarPoints(xi,Ei,_i),r[2].setFromCoplanarPoints(_i,Si,xi),r[3].setFromCoplanarPoints(Si,bi,xi),r[4].setFromCoplanarPoints(Ei,_i,Si),r[5].setFromCoplanarPoints(Ri,Bi,Ii),r[5].normal.multiplyScalar(-1);else if(this.camera.isOrthographicCamera){const n=Math.min(e.x,t.x),i=Math.max(e.y,t.y),s=Math.max(e.x,t.x),a=Math.min(e.y,t.y);var r;bi.set(n,i,-1),Ei.set(s,i,-1),_i.set(s,a,-1),Si.set(n,a,-1),Mi.set(n,i,1),wi.set(s,i,1),Ci.set(s,a,1),Ti.set(n,a,1),bi.unproject(this.camera),Ei.unproject(this.camera),_i.unproject(this.camera),Si.unproject(this.camera),Mi.unproject(this.camera),wi.unproject(this.camera),Ci.unproject(this.camera),Ti.unproject(this.camera),(r=Ai.planes)[0].setFromCoplanarPoints(bi,Mi,wi),r[1].setFromCoplanarPoints(Ei,wi,Ci),r[2].setFromCoplanarPoints(Ci,Ti,Si),r[3].setFromCoplanarPoints(Ti,Mi,bi),r[4].setFromCoplanarPoints(Ei,_i,Si),r[5].setFromCoplanarPoints(Ci,wi,Mi),r[5].normal.multiplyScalar(-1)}else console.error("THREE.SelectionBox: Unsupported camera type.")}searchChildInFrustum(e,t){if((t.isMesh||t.isLine||t.isPoints)&&void 0!==t.material&&(null===t.geometry.boundingSphere&&t.geometry.computeBoundingSphere(),vi.copy(t.geometry.boundingSphere.center),vi.applyMatrix4(t.matrixWorld),e.containsPoint(vi)&&this.collection.push(t)),t.children.length>0)for(let r=0;re),...u}){const{camera:d,raycaster:p,gl:f,controls:m,size:g,get:A}=(0,o.useThree)(),[v,y]=i.useState(!1),[x,b]=i.useReducer(((e,{object:t,shift:r})=>void 0===t?[]:Array.isArray(t)?t:r?e.includes(t)?e.filter((e=>e!==t)):[t,...e]:e[0]===t?[]:[t]),[]);i.useEffect((()=>{null==s||s(x)}),[x]);const E=i.useCallback((e=>{e.stopPropagation(),b({object:h([e.object])[0],shift:t&&e.shiftKey})}),[]),_=i.useCallback((e=>!v&&b({})),[v]),S=i.useRef(null);return i.useEffect((()=>{if(!e||!t)return;const r=new Pi(d,S.current),n=document.createElement("div");n.style.pointerEvents="none",n.style.border=l,n.style.backgroundColor=c,n.style.position="fixed";const i=new a.Vector2,s=new a.Vector2,o=new a.Vector2,u=p.enabled,v=null==m?void 0:m.enabled;let y=!1;function x(e,t){var r;const{offsetX:n,offsetY:i}=null!==(r=null==p.computeOffsets?void 0:p.computeOffsets(e,A()))&&void 0!==r?r:e,{width:s,height:a}=g;t.set(n/s*2-1,-i/a*2+1)}function E(e){e.shiftKey&&(!function(e){var t;m&&(m.enabled=!1),p.enabled=!1,y=!0,null==(t=f.domElement.parentElement)||t.appendChild(n),n.style.left=`${e.clientX}px`,n.style.top=`${e.clientY}px`,n.style.width="0px",n.style.height="0px",i.x=e.clientX,i.y=e.clientY}(e),x(e,r.startPoint))}let _=[];function M(e){if(y){!function(e){o.x=Math.max(i.x,e.clientX),o.y=Math.max(i.y,e.clientY),s.x=Math.min(i.x,e.clientX),s.y=Math.min(i.y,e.clientY),n.style.left=`${s.x}px`,n.style.top=`${s.y}px`,n.style.width=o.x-s.x+"px",n.style.height=o.y-s.y+"px"}(e),x(e,r.endPoint);const t=r.select().sort((e=>e.uuid)).filter((e=>e.isMesh));(0,Di.Z)(t,_)||(_=t,b({object:h(t)}))}}function w(e){var t;y&&y&&(m&&(m.enabled=v),p.enabled=u,y=!1,null==(t=n.parentElement)||t.removeChild(n))}return document.addEventListener("pointerdown",E,{passive:!0}),document.addEventListener("pointermove",M,{passive:!0,capture:!0}),document.addEventListener("pointerup",w,{passive:!0}),()=>{document.removeEventListener("pointerdown",E),document.removeEventListener("pointermove",M),document.removeEventListener("pointerup",w)}}),[g,p,d,m,f]),i.createElement("group",(0,n.Z)({ref:S,onClick:E,onPointerOver:()=>y(!0),onPointerOut:()=>y(!1),onPointerMissed:_},u),i.createElement(Li.Provider,{value:x},r))}function Ui(){return i.useContext(Li)}const Oi=i.forwardRef((function({follow:e=!0,lockX:t=!1,lockY:r=!1,lockZ:s=!1,...a},l){const c=i.useRef();return(0,o.useFrame)((({camera:n})=>{if(!e||!c.current)return;const i=c.current.rotation.clone();c.current.quaternion.copy(n.quaternion),t&&(c.current.rotation.x=i.x),r&&(c.current.rotation.y=i.y),s&&(c.current.rotation.z=i.z)})),i.createElement("group",(0,n.Z)({ref:w([c,l])},a))})),Ni=new a.Box3,ki=new a.Vector3;class Gi extends a.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new a.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new a.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(e){const t=this.attributes.instanceStart,r=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),r.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const r=new a.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new a.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceEnd",new a.InterleavedBufferAttribute(r,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const r=new a.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceColorStart",new a.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceColorEnd",new a.InterleavedBufferAttribute(r,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new a.WireframeGeometry(e.geometry)),this}fromLineSegments(e){const t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new a.Box3);const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;void 0!==e&&void 0!==t&&(this.boundingBox.setFromBufferAttribute(e),Ni.setFromBufferAttribute(t),this.boundingBox.union(Ni))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new a.Sphere),null===this.boundingBox&&this.computeBoundingBox();const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){const r=this.boundingSphere.center;this.boundingBox.getCenter(r);let n=0;for(let i=0,s=e.count;i\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tuniform float linewidth;\n\t\t\t\tuniform vec2 resolution;\n\n\t\t\t\tattribute vec3 instanceStart;\n\t\t\t\tattribute vec3 instanceEnd;\n\n\t\t\t\tattribute vec3 instanceColorStart;\n\t\t\t\tattribute vec3 instanceColorEnd;\n\n\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\tvarying vec4 worldPos;\n\t\t\t\t\tvarying vec3 worldStart;\n\t\t\t\t\tvarying vec3 worldEnd;\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#else\n\n\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\tuniform float dashScale;\n\t\t\t\t\tattribute float instanceDistanceStart;\n\t\t\t\t\tattribute float instanceDistanceEnd;\n\t\t\t\t\tvarying float vLineDistance;\n\n\t\t\t\t#endif\n\n\t\t\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t\t\t// conservative estimate of the near plane\n\t\t\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#ifdef USE_COLOR\n\n\t\t\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\t\t\tvUv = uv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t\t\t// camera space\n\t\t\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\tworldStart = start.xyz;\n\t\t\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tvUv = uv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\t\t\tif ( perspective ) {\n\n\t\t\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// clip space\n\t\t\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t\t\t// ndc space\n\t\t\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t\t\t// direction\n\t\t\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t\t\t// account for clip-space aspect ratio\n\t\t\t\t\tdir.x *= aspect;\n\t\t\t\t\tdir = normalize( dir );\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\t// get the offset direction as perpendicular to the view vector\n\t\t\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\t\t\tvec3 offset;\n\t\t\t\t\t\tif ( position.y < 0.5 ) {\n\n\t\t\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// sign flip\n\t\t\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t// endcaps\n\t\t\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// adjust for linewidth\n\t\t\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t\t\t// set the world position\n\t\t\t\t\t\tworldPos = ( position.y < 0.5 ) ? start : end;\n\t\t\t\t\t\tworldPos.xyz += offset;\n\n\t\t\t\t\t\t// project the worldpos\n\t\t\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t\t\t// segments overlap neatly\n\t\t\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\t\t\tdir.x /= aspect;\n\t\t\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t\t\t// sign flip\n\t\t\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t\t\t// endcaps\n\t\t\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\t\t\toffset += - dir;\n\n\t\t\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\t\t\toffset += dir;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// adjust for linewidth\n\t\t\t\t\t\toffset *= linewidth;\n\n\t\t\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t\t\t// select end\n\t\t\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t\t\t// back to clip space\n\t\t\t\t\t\toffset *= clip.w;\n\n\t\t\t\t\t\tclip.xy += offset;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tgl_Position = clip;\n\n\t\t\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:`\n\t\t\t\tuniform vec3 diffuse;\n\t\t\t\tuniform float opacity;\n\t\t\t\tuniform float linewidth;\n\n\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\tuniform float dashOffset;\n\t\t\t\t\tuniform float dashSize;\n\t\t\t\t\tuniform float gapSize;\n\n\t\t\t\t#endif\n\n\t\t\t\tvarying float vLineDistance;\n\n\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\tvarying vec4 worldPos;\n\t\t\t\t\tvarying vec3 worldStart;\n\t\t\t\t\tvarying vec3 worldEnd;\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#else\n\n\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#endif\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\t\t\tfloat mua;\n\t\t\t\t\tfloat mub;\n\n\t\t\t\t\tvec3 p13 = p1 - p3;\n\t\t\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\t\t\tmua = numer / denom;\n\t\t\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\t\t\treturn vec2( mua, mub );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfloat alpha = opacity;\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\t\t\tfloat len = length( delta );\n\t\t\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include <${parseInt(a.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,clipping:!0}),this.isLineMaterial=!0,Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(e){!0===e?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashed:{enumerable:!0,get:function(){return Boolean("USE_DASH"in this.defines)},set(e){Boolean(e)!==Boolean("USE_DASH"in this.defines)&&(this.needsUpdate=!0),!0===e?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},alphaToCoverage:{enumerable:!0,get:function(){return Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)},set:function(e){Boolean(e)!==Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)&&(this.needsUpdate=!0),!0===e?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}}const Qi=new a.Vector3,Vi=new a.Vector3,Hi=new a.Vector4,ji=new a.Vector4,Wi=new a.Vector4,Xi=new a.Vector3,Yi=new a.Matrix4,qi=new a.Line3,Ki=new a.Vector3,Ji=new a.Box3,Zi=new a.Sphere,$i=new a.Vector4;let es,ts,rs,ns;function is(e,t,r){return $i.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),$i.multiplyScalar(1/$i.w),$i.x=ns/r.width,$i.y=ns/r.height,$i.applyMatrix4(e.projectionMatrixInverse),$i.multiplyScalar(1/$i.w),Math.abs(Math.max($i.x,$i.y))}class ss extends a.Mesh{constructor(e=new Gi,t=new zi({color:16777215*Math.random()})){super(e,t),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,t=e.attributes.instanceStart,r=e.attributes.instanceEnd,n=new Float32Array(2*t.count);for(let s=0,a=0,o=t.count;sh&&ji.z>h)continue;if(Hi.z>h){const e=Hi.z-ji.z,t=(Hi.z-h)/e;Hi.lerp(ji,t)}else if(ji.z>h){const e=ji.z-Hi.z,t=(ji.z-h)/e;ji.lerp(Hi,t)}Hi.applyMatrix4(n),ji.applyMatrix4(n),Hi.multiplyScalar(1/Hi.w),ji.multiplyScalar(1/ji.w),Hi.x*=i.x/2,Hi.y*=i.y/2,ji.x*=i.x/2,ji.y*=i.y/2,qi.start.copy(Hi),qi.start.z=0,qi.end.copy(ji),qi.end.z=0;const t=qi.closestPointToPointParameter(Xi,!0);qi.at(t,Ki);const o=a.MathUtils.lerp(Hi.z,ji.z,t),d=o>=-1&&o<=1,p=Xi.distanceTo(Ki)<.5*ns;if(d&&p){qi.start.fromBufferAttribute(l,u),qi.end.fromBufferAttribute(c,u),qi.start.applyMatrix4(s),qi.end.applyMatrix4(s);const t=new a.Vector3,n=new a.Vector3;es.distanceSqToSegment(qi.start,qi.end,n,t),r.push({point:n,pointOnLine:t,distance:es.origin.distanceTo(n),object:e,face:null,faceIndex:u,uv:null,uv2:null})}}}(this,n,t))}}}class as extends Gi{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(e){const t=e.length-3,r=new Float32Array(2*t);for(let n=0;nnew os)),[u]=i.useState((()=>new zi)),[d]=i.useState((()=>new a.Vector2(512,512))),p=i.useMemo((()=>{const t=new as,n=e.map((e=>e instanceof a.Vector3?e.toArray():e));if(t.setPositions(n.flat()),r){const e=r.map((e=>e instanceof a.Color?e.toArray():e));t.setColors(e.flat())}return t}),[e,r]);return i.useLayoutEffect((()=>{h.computeLineDistances()}),[e,h]),i.useLayoutEffect((()=>{o?u.defines.USE_DASH="":delete u.defines.USE_DASH,u.needsUpdate=!0}),[o,u]),i.useEffect((()=>()=>p.dispose()),[p]),i.createElement("primitive",(0,n.Z)({object:h,ref:c},l),i.createElement("primitive",{object:p,attach:"geometry"}),i.createElement("primitive",(0,n.Z)({object:u,attach:"material",color:t,vertexColors:Boolean(r),resolution:d,linewidth:s,dashed:o},l)))})),cs=new a.Vector3,hs=i.forwardRef((function({start:e=[0,0,0],end:t=[0,0,0],mid:r,segments:s=20,...o},l){const c=i.useRef(null),[h]=i.useState((()=>new a.QuadraticBezierCurve3(void 0,void 0,void 0))),u=i.useCallback(((e,t,r,n=20)=>(e instanceof a.Vector3?h.v0.copy(e):h.v0.set(...e),t instanceof a.Vector3?h.v2.copy(t):h.v2.set(...t),r instanceof a.Vector3?h.v1.copy(r):h.v1.copy(h.v0.clone().add(h.v2.clone().sub(h.v0)).add(cs.set(0,h.v0.y-h.v2.y,0))),h.getPoints(n))),[]);i.useLayoutEffect((()=>{c.current.setPoints=(e,t,r)=>{const n=u(e,t,r);c.current.geometry&&c.current.geometry.setPositions(n.map((e=>e.toArray())).flat())}}),[]);const d=i.useMemo((()=>u(e,t,r,s)),[e,t,r,s]);return i.createElement(ls,(0,n.Z)({ref:w([c,l]),points:d},o))})),us=i.forwardRef((function({start:e,end:t,midA:r,midB:s,segments:o=20,...l},c){const h=i.useMemo((()=>{const n=e instanceof a.Vector3?e:new a.Vector3(...e),i=t instanceof a.Vector3?t:new a.Vector3(...t),l=r instanceof a.Vector3?r:new a.Vector3(...r),c=s instanceof a.Vector3?s:new a.Vector3(...s);return new a.CubicBezierCurve3(n,l,c,i).getPoints(o)}),[e,t,r,s,o]);return i.createElement(ls,(0,n.Z)({ref:c,points:h},l))})),ds=i.forwardRef((({url:e,distance:t=1,loop:r=!0,autoplay:s,...l},c)=>{const h=i.useRef(),u=(0,o.useThree)((({camera:e})=>e)),[d]=i.useState((()=>new a.AudioListener)),p=(0,o.useLoader)(a.AudioLoader,e);return i.useEffect((()=>{const e=h.current;e&&(e.setBuffer(p),e.setRefDistance(t),e.setLoop(r),s&&!e.isPlaying&&e.play())}),[p,u,t,r]),i.useEffect((()=>{const e=h.current;return u.add(d),()=>{u.remove(d),e&&(e.isPlaying&&e.stop(),e.source&&e.source._connected&&e.disconnect())}}),[]),i.createElement("positionalAudio",(0,n.Z)({ref:w([h,c]),args:[d]},l))}));function ps(){var e,t=0,r=[],n=0,i=0;var s=d((function(e){i||o(1,e)})),a=d((function(e){i||o(-1,e)}));function o(r,n){i++;var s=0;try{n===m&&p();var a=r>0&&u(n);a?a.call(n,d((function(e){s++,o(1,e)})),d((function(e){s++,o(-1,e)}))):(t=r,e=n,l())}catch(za){t||s||o(-1,za)}}function l(){n||(setTimeout(c,0),n=1)}function c(){var e=r;n=0,r=[],e.forEach(h)}function h(e){e()}function u(e){var t=e&&(f(e)||"object"==typeof e)&&e.then;return f(t)&&t}function d(e){var t=0;return function(){for(var r=[],n=arguments.length;n--;)r[n]=arguments[n];t++||e.apply(this,r)}}function p(){throw new TypeError("Chaining cycle detected")}var f=function(e){return"function"==typeof e},m={then:function(n,i){var s=ps();return r.push((function(){var r=t>0?n:i;if(f(r))try{var a=r(e);a===s&&p();var o=u(a);o?o.call(a,s.resolve,s.reject):s.resolve(a)}catch(l){s.reject(l)}else s[t>0?"resolve":"reject"](e)})),t&&l(),s},resolve:s,reject:a};return m}function fs(){var e,t,r=new Promise((function(r,n){e=r,t=n}));return{then:r.then.bind(r),resolve:e,reject:t}}ps.all=fs.all=function(e){var t=0,r=[],n=ms();return 0===e.length?n.resolve([]):e.forEach((function(i,s){var a=ms();a.resolve(i),a.then((function(i){t++,r[s]=i,t===e.length&&n.resolve(r)}),n.reject)})),n};var ms="function"==typeof Promise?fs:ps;function gs(){var e=Object.create(null);function t(n,i){var s=n.id,a=n.name,o=n.dependencies;void 0===o&&(o=[]);var l=n.init;void 0===l&&(l=function(){});var c=n.getTransferables;if(void 0===c&&(c=null),!e[s])try{o=o.map((function(r){return r&&r.isWorkerModule&&(t(r,(function(e){if(e instanceof Error)throw e})),r=e[r.id].value),r})),l=r("<"+a+">.init",l),c&&(c=r("<"+a+">.getTransferables",c));var h=null;"function"==typeof l?h=l.apply(void 0,o):console.error("worker module init function failed to rehydrate"),e[s]={id:s,value:h,getTransferables:c},i(h)}catch(u){u&&u.noLog||console.error(u),i(u)}}function r(e,t){var r=void 0;self.troikaDefine=function(e){return r=e};var n=URL.createObjectURL(new Blob(["/** "+e.replace(/\*/g,"")+" **/\n\ntroikaDefine(\n"+t+"\n)"],{type:"application/javascript"}));try{importScripts(n)}catch(i){console.error(i)}return URL.revokeObjectURL(n),delete self.troikaDefine,r}self.addEventListener("message",(function(r){var n=r.data,i=n.messageId,s=n.action,a=n.data;try{"registerModule"===s&&t(a,(function(e){e instanceof Error?postMessage({messageId:i,success:!1,error:e.message}):postMessage({messageId:i,success:!0,result:{isCallable:"function"==typeof e}})})),"callModule"===s&&function(t,r){var n,i=t.id,s=t.args;e[i]&&"function"==typeof e[i].value||r(new Error("Worker module "+i+": not found or its 'init' did not return a function"));try{var a=(n=e[i]).value.apply(n,s);a&&"function"==typeof a.then?a.then(o,(function(e){return r(e instanceof Error?e:new Error(""+e))})):o(a)}catch(l){r(l)}function o(t){try{var n=e[i].getTransferables&&e[i].getTransferables(t);n&&Array.isArray(n)&&n.length||(n=void 0),r(t,n)}catch(l){console.error(l),r(l)}}}(a,(function(e,t){e instanceof Error?postMessage({messageId:i,success:!1,error:e.message}):postMessage({messageId:i,success:!0,result:e},t||void 0)}))}catch(o){postMessage({messageId:i,success:!1,error:o.stack})}}))}var As=function(){var e=!1;if("undefined"!=typeof window&&void 0!==window.document)try{new Worker(URL.createObjectURL(new Blob([""],{type:"application/javascript"}))).terminate(),e=!0}catch(t){console.log("Troika createWorkerModule: web workers not allowed; falling back to main thread execution. Cause: ["+t.message+"]")}return As=function(){return e},e},vs=0,ys=0,xs=!1,bs=Object.create(null),Es=Object.create(null),_s=Object.create(null);function Ss(e){if(!(e&&"function"==typeof e.init||xs))throw new Error("requires `options.init` function");var t=e.dependencies,r=e.init,n=e.getTransferables,i=e.workerId;if(!As())return function(e){var t=function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return t._getInitResult().then((function(t){if("function"==typeof t)return t.apply(void 0,e);throw new Error("Worker module function was called but `init` did not return a callable function")}))};return t._getInitResult=function(){var r=e.dependencies,n=e.init;r=Array.isArray(r)?r.map((function(e){return e&&e._getInitResult?e._getInitResult():e})):[];var i=ms.all(r).then((function(e){return n.apply(null,e)}));return t._getInitResult=function(){return i},i},t}(e);null==i&&(i="#default");var s="workerModule"+ ++vs,a=e.name||s,o=null;function l(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(!o){o=ws(i,"registerModule",l.workerModuleData);var r=function(){o=null,Es[i].delete(r)};(Es[i]||(Es[i]=new Set)).add(r)}return o.then((function(t){if(t.isCallable)return ws(i,"callModule",{id:s,args:e});throw new Error("Worker module function was called but `init` did not return a callable function")}))}return t=t&&t.map((function(e){return"function"!=typeof e||e.workerModuleData||(xs=!0,e=Ss({workerId:i,name:"<"+a+"> function dependency: "+e.name,init:"function(){return (\n"+Ms(e)+"\n)}"}),xs=!1),e&&e.workerModuleData&&(e=e.workerModuleData),e})),l.workerModuleData={isWorkerModule:!0,id:s,name:a,dependencies:t,init:Ms(r),getTransferables:n&&Ms(n)},l}function Ms(e){var t=e.toString();return!/^function/.test(t)&&/^\w+\s*\(/.test(t)&&(t="function "+t),t}function ws(e,t,r){var n=ms(),i=++ys;return _s[i]=function(e){e.success?n.resolve(e.result):n.reject(new Error("Error in worker "+t+" call: "+e.error))},function(e){var t=bs[e];if(!t){var r=Ms(gs);(t=bs[e]=new Worker(URL.createObjectURL(new Blob(["/** Worker Module Bootstrap: "+e.replace(/\*/g,"")+" **/\n\n;("+r+")()"],{type:"application/javascript"})))).onmessage=function(e){var t=e.data,r=t.messageId,n=_s[r];if(!n)throw new Error("WorkerModule response with empty or unknown messageId");delete _s[r],n(t)}}return t}(e).postMessage({messageId:i,action:t,data:r}),n}var Cs=Ss({name:"Thenable",dependencies:[ms],init:function(e){return e}});function Ts(){var e=function(e){function t(e,t,r,n,i,s,a,o){var l=1-a;o.x=l*l*e+2*l*a*r+a*a*i,o.y=l*l*t+2*l*a*n+a*a*s}function r(e,t,r,n,i,s,a,o,l,c){var h=1-l;c.x=h*h*h*e+3*h*h*l*r+3*h*l*l*i+l*l*l*a,c.y=h*h*h*t+3*h*h*l*n+3*h*l*l*s+l*l*l*o}function n(e,t){for(var r,n,i,s,a,o=/([MLQCZ])([^MLQCZ]*)/g;r=o.exec(e);){var l=r[2].replace(/^\s*|\s*$/g,"").split(/[,\s]+/).map((function(e){return parseFloat(e)}));switch(r[1]){case"M":s=n=l[0],a=i=l[1];break;case"L":l[0]===s&&l[1]===a||t("L",s,a,s=l[0],a=l[1]);break;case"Q":t("Q",s,a,s=l[2],a=l[3],l[0],l[1]);break;case"C":t("C",s,a,s=l[4],a=l[5],l[0],l[1],l[2],l[3]);break;case"Z":s===n&&a===i||t("L",s,a,n,i)}}}function i(e,i,s){void 0===s&&(s=16);var a={x:0,y:0};n(e,(function(e,n,o,l,c,h,u,d,p){switch(e){case"L":i(n,o,l,c);break;case"Q":for(var f=n,m=o,g=1;g0;)n[i]=arguments[i+2];var s=l[t]||(l[t]=r.getUniformLocation(c,t));r["uniform"+e].apply(r,[s].concat(n))},setAttribute:function(e,t,n,s,a){var l=o[e];l||(l=o[e]={buf:r.createBuffer(),loc:r.getAttribLocation(c,e),data:null}),r.bindBuffer(r.ARRAY_BUFFER,l.buf),r.vertexAttribPointer(l.loc,t,r.FLOAT,!1,0,0),r.enableVertexAttribArray(l.loc),i?r.vertexAttribDivisor(l.loc,s):d("ANGLE_instanced_arrays").vertexAttribDivisorANGLE(l.loc,s),a!==l.data&&(r.bufferData(r.ARRAY_BUFFER,a,n),l.data=a)}})}}}a[e].transaction(s)}function m(e,t){h++;try{r.activeTexture(r.TEXTURE0+h);var n=c[e];n||(n=c[e]=r.createTexture(),r.bindTexture(r.TEXTURE_2D,n),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST)),r.bindTexture(r.TEXTURE_2D,n),t(n,h)}finally{h--}}function g(e,t,n){var i=r.createFramebuffer();u.push(i),r.bindFramebuffer(r.FRAMEBUFFER,i),r.activeTexture(r.TEXTURE0+t),r.bindTexture(r.TEXTURE_2D,e),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);try{n(i)}finally{r.deleteFramebuffer(i),r.bindFramebuffer(r.FRAMEBUFFER,u[--u.length-1]||null)}}function A(){s={},a={},c={},h=-1,u.length=0}r.canvas.addEventListener("webglcontextlost",(function(e){A(),e.preventDefault()}),!1),o.set(r,n={gl:r,isWebGL2:i,getExtension:d,withProgram:f,withTexture:m,withTextureFramebuffer:g,handleContextLoss:A})}t(n)}function h(e,t,r,n,i,o,l,h){void 0===l&&(l=15),void 0===h&&(h=null),c(e,(function(e){var c=e.gl,u=e.withProgram;(0,e.withTexture)("copy",(function(e,d){c.texImage2D(c.TEXTURE_2D,0,c.RGBA,i,o,0,c.RGBA,c.UNSIGNED_BYTE,t),u("copy",s,a,(function(e){var t=e.setUniform;(0,e.setAttribute)("aUV",2,c.STATIC_DRAW,0,new Float32Array([0,0,2,0,0,2])),t("1i","image",d),c.bindFramebuffer(c.FRAMEBUFFER,h||null),c.disable(c.BLEND),c.colorMask(8&l,4&l,2&l,1&l),c.viewport(r,n,i,o),c.scissor(r,n,i,o),c.drawArrays(c.TRIANGLES,0,3)}))}))}))}var u=Object.freeze({__proto__:null,withWebGLContext:c,renderImageData:h,resizeWebGLCanvasWithoutClearing:function(e,t,r){var n=e.width,i=e.height;c(e,(function(s){var a=s.gl,o=new Uint8Array(n*i*4);a.readPixels(0,0,n,i,a.RGBA,a.UNSIGNED_BYTE,o),e.width=t,e.height=r,h(a,o,0,0,n,i)}))}});function d(e,t,r,n,s,a){void 0===a&&(a=1);var o=new Uint8Array(e*t),l=n[2]-n[0],c=n[3]-n[1],h=[];i(r,(function(e,t,r,n){h.push({x1:e,y1:t,x2:r,y2:n,minX:Math.min(e,r),minY:Math.min(t,n),maxX:Math.max(e,r),maxY:Math.max(t,n)})})),h.sort((function(e,t){return e.maxX-t.maxX}));for(var u=0;us.minX&&t-ns.minY){var a=m(e,t,s.x1,s.y1,s.x2,s.y2);at!=i.y2>t&&e<(i.x2-i.x1)*(t-i.y1)/(i.y2-i.y1)+i.x1&&(r+=i.y1p.y!=seg.w>p.y)&&(p.x<(seg.z-seg.x)*(p.y-seg.y)/(seg.w-seg.y)+seg.x);bool crossingUp=crossing&&vLineSegment.y1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1",canonical:"6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye"};function m(e,t){var r,n=0,i=new Map,s=t&&new Map;return e.split(",").forEach((function e(a){if(-1!==a.indexOf("+"))for(var o=+a;o--;)e(r);else{r=a;var l=a.split(">"),c=l[0],h=l[1];c=String.fromCodePoint(n+=parseInt(c,36)),h=String.fromCodePoint(n+=parseInt(h,36)),i.set(c,h),t&&s.set(h,c)}})),{map:i,reverseMap:s}}function g(){if(!u){var e=m(f.pairs,!0),t=e.map,r=e.reverseMap;u=t,d=r,p=m(f.canonical,!1).map}}function A(e){return g(),u.get(e)||null}function v(e){return g(),d.get(e)||null}function y(e){return g(),p.get(e)||null}var x=r.L,b=r.R,E=r.EN,_=r.ES,S=r.ET,M=r.AN,w=r.CS,C=r.B,T=r.S,I=r.ON,B=r.BN,R=r.NSM,P=r.AL,D=r.LRO,L=r.RLO,F=r.LRE,U=r.RLE,O=r.PDF,N=r.LRI,k=r.RLI,G=r.FSI,z=r.PDI;var Q,V="14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1";function H(e){return function(){if(!Q){var e=m(V,!0),t=e.map;e.reverseMap.forEach((function(e,r){t.set(r,e)})),Q=t}}(),Q.get(e)||null}function j(e,t,r,n){var i=e.length;r=Math.max(0,null==r?0:+r),n=Math.min(i-1,null==n?i-1:+n);var s=[];return t.paragraphs.forEach((function(i){var a=Math.max(r,i.start),o=Math.min(n,i.end);if(a=a&&h(e[u])&l;u--)c[u]=i.level;for(var d=i.level,p=1/0,f=0;fd&&(d=m),m=p;g--)for(var A=0;A=g){for(var v=A;A+1=g;)A++;A>v&&s.push([v+a,A+a])}}})),s}function W(e,t,r,n){for(var i=j(e,t,r,n),s=[],a=0;a0)Y--;else if(K>0){for(q=0;!W[W.length-1]._isolate;)W.pop();var re=W[W.length-1]._isolInitIndex;null!=re&&(p.set(re,J),p.set(J,re)),W.pop(),K--}X=W[W.length-1],d[J]=X._level,X._override&&u(J,X._override)}else Z&O?(0===Y&&(q>0?q--:!X._isolate&&W.length>1&&(W.pop(),X=W[W.length-1])),d[J]=X._level):Z&C&&(d[J]=m.level);else d[J]=X._level,X._override&&Z!==B&&u(J,X._override)}for(var ne=[],ie=null,se=m.start;se<=m.end;se++){var ae=r[se];if(!(ae&o)){var oe=d[se],le=ae&i,ce=ae===z;ie&&oe===ie._level?(ie._end=se,ie._endsWithIsolInit=le):ne.push(ie={_start:se,_end:se,_level:oe,_startsWithPDI:ce,_endsWithIsolInit:le})}}for(var he=[],ue=0;ue=0;Ee--)if(!(r[Ee]&o)){be=d[Ee];break}var _e=ge[ge.length-1],Se=d[_e],Me=m.level;if(!(r[_e]&i))for(var we=_e+1;we<=m.end;we++)if(!(r[we]&o)){Me=d[we];break}he.push({_seqIndices:ge,_sosType:Math.max(be,xe)%2?b:x,_eosType:Math.max(Me,Se)%2?b:x})}}for(var Ce=0;Ce=0;Ue--)if(!(r[Ie[Ue]]&o)){Fe=r[Ie[Ue]];break}u(Le,Fe&(i|z)?I:Fe)}}if(c.get(E))for(var Oe=0;Oe=-1;ke--){var Ge=-1===ke?Be:r[Ie[ke]];if(Ge&s){Ge===P&&u(Ne,M);break}}}if(c.get(P))for(var ze=0;ze=0&&(je=r[Ie[Xe]])&o;Xe--);for(var Ye=Ve+1;Ye=0&&r[Ie[Je]]&(S|o);Je--)u(Ie[Je],E);for(qe++;qe=0&&r[Ie[et]]&o;et--)u(Ie[et],I);for(var tt=Ze+1;tt=0;pt--){var ft=ct[pt].char;if(ft===dt||ft===v(y(ut))||A(y(ft))===ut){lt.push([ct[pt].seqIndex,ht]),ct.length=pt;break}}}lt.sort((function(e,t){return e[0]-t[0]}));for(var mt=0;mt=0;St--){var Mt=Ie[St];if(r[Mt]&ot){var wt=r[Mt]&at?b:x;xt=wt!==Pe?wt:Pe;break}}}if(xt){if(r[Ie[At]]=r[Ie[vt]]=xt,xt!==Pe)for(var Ct=At+1;Ct=0;Dt--){if(!(r[Ie[Dt]]&o)){Pt=r[Ie[Dt]]&at?b:x;break}Bt=Dt}for(var Lt=Re,Ft=It+1;Ft=0&&h(e[Gt])&l;Gt--)d[Gt]=m.level}}return{levels:d,paragraphs:f};function zt(t,n){for(var s=t;s/gm,(function(e,t){let r=a.ShaderChunk[t];return r?Rs(r):e}))}const Ps=[];for(let qm=0;qm<256;qm++)Ps[qm]=(qm<16?"0":"")+qm.toString(16);const Ds=Object.assign||function(){let e=arguments[0];for(let t=1,r=arguments.length;t/gm,"\n//!BEGIN_POST_CHUNK $1\n$&\n//!END_POST_CHUNK\n")));if(d){let r=d({vertexShader:e,fragmentShader:t});e=r.vertexShader,t=r.fragmentShader}if(u){let e=[];t=t.replace(/^\/\/!BEGIN_POST_CHUNK[^]+?^\/\/!END_POST_CHUNK/gm,(t=>(e.push(t),""))),h=`${u}\n${e.join("\n")}\n${h}`}if(p){const e=`\nuniform float ${p};\n`;i=e+i,l=e+l}o&&(i=`${i}\nvoid troikaVertexTransform${n}(inout vec3 position, inout vec3 normal, inout vec2 uv) {\n ${o}\n}\n`,s=`\ntroika_position_${n} = vec3(position);\ntroika_normal_${n} = vec3(normal);\ntroika_uv_${n} = vec2(uv);\ntroikaVertexTransform${n}(troika_position_${n}, troika_normal_${n}, troika_uv_${n});\n${s}\n`,e=(e=`vec3 troika_position_${n};\nvec3 troika_normal_${n};\nvec2 troika_uv_${n};\n${e}\n`).replace(/\b(position|normal|uv)\b/g,((e,t,r,i)=>/\battribute\s+vec[23]\s+$/.test(i.substr(0,r))?t:`troika_${t}_${n}`)));return e=ks(e,n,i,s,a),t=ks(t,n,l,c,h),{vertexShader:e,fragmentShader:t}}(n,t,r);a=Us[s]=e}n.vertexShader=a.vertexShader,n.fragmentShader=a.fragmentShader,Ds(n.uniforms,this.uniforms),t.timeUniform&&(n.uniforms[t.timeUniform]={get value(){return Date.now()-Ls}}),this[i]&&this[i](n)},o=function(){return l(t.chained?e:e.clone())},l=function(n){const i=Object.create(n,c);return Object.defineProperty(i,"baseMaterial",{value:e}),Object.defineProperty(i,"id",{value:Os++}),i.uuid=function(){const e=4294967295*Math.random()|0,t=4294967295*Math.random()|0,r=4294967295*Math.random()|0,n=4294967295*Math.random()|0;return(Ps[255&e]+Ps[e>>8&255]+Ps[e>>16&255]+Ps[e>>24&255]+"-"+Ps[255&t]+Ps[t>>8&255]+"-"+Ps[t>>16&15|64]+Ps[t>>24&255]+"-"+Ps[63&r|128]+Ps[r>>8&255]+"-"+Ps[r>>16&255]+Ps[r>>24&255]+Ps[255&n]+Ps[n>>8&255]+Ps[n>>16&255]+Ps[n>>24&255]).toUpperCase()}(),i.uniforms=Ds({},n.uniforms,t.uniforms),i.defines=Ds({},n.defines,t.defines),i.defines[`TROIKA_DERIVED_MATERIAL_${r}`]="",i.extensions=Ds({},n.extensions,t.extensions),i._listeners=void 0,i},c={constructor:{value:o},isDerivedMaterial:{value:!0},customProgramCacheKey:{writable:!0,configurable:!0,value:function(){return e.customProgramCacheKey()+"|"+r}},onBeforeCompile:{get:()=>s,set(e){this[i]=e}},copy:{writable:!0,configurable:!0,value:function(t){return e.copy.call(this,t),e.isShaderMaterial||e.isDerivedMaterial||(Ds(this.extensions,t.extensions),Ds(this.defines,t.defines),Ds(this.uniforms,a.UniformsUtils.clone(t.uniforms))),this}},clone:{writable:!0,configurable:!0,value:function(){const t=new e.constructor;return l(t).copy(this)}},getDepthMaterial:{writable:!0,configurable:!0,value:function(){let r=this._depthMaterial;return r||(r=this._depthMaterial=Ns(e.isDerivedMaterial?e.getDepthMaterial():new a.MeshDepthMaterial({depthPacking:a.RGBADepthPacking}),t),r.defines.IS_DEPTH_MATERIAL="",r.uniforms=this.uniforms),r}},getDistanceMaterial:{writable:!0,configurable:!0,value:function(){let r=this._distanceMaterial;return r||(r=this._distanceMaterial=Ns(e.isDerivedMaterial?e.getDistanceMaterial():new a.MeshDistanceMaterial,t),r.defines.IS_DISTANCE_MATERIAL="",r.uniforms=this.uniforms),r}},dispose:{writable:!0,configurable:!0,value(){const{_depthMaterial:t,_distanceMaterial:r}=this;t&&t.dispose(),r&&r.dispose(),e.dispose.call(this)}}};return n[r]=o,new o}function ks(e,t,r,n,i){return(n||i||r)&&(e=e.replace(Bs,`\n${r}\nvoid troikaOrigMain${t}() {`),e+=`\nvoid main() {\n ${n}\n troikaOrigMain${t}();\n ${i}\n}`),e}function Gs(e,t){return"uniforms"===e?void 0:"function"==typeof t?t.toString():t}let zs=0;const Qs=new Map;a.DoubleSide;const Vs=()=>(self.performance||Date).now(),Hs=Ts();let js;const Ws=function(){const e=[];let t=0;function r(){const n=Vs();for(;e.length&&Vs()-n<5;)e.shift()();t=e.length?setTimeout(r,0):0}return(...n)=>{const i=ms();return e.push((()=>{const e=Vs();try{Hs.webgl.generateIntoCanvas(...n),i.resolve({timing:Vs()-e})}catch(t){i.reject(t)}})),t||(t=setTimeout(r,0)),i}}(),Xs=function(){const e={};let t=0;return function(r,n,i,s,a,o,l,c,h,u){const d="TroikaTextSDFGenerator_JS_"+t++%4;let p=e[d];return p||(p=e[d]={workerModule:Ss({name:d,workerId:d,dependencies:[Ts,Vs],init(e,t){const r=e().javascript.generate;return function(...e){const n=t();return{textureData:r(...e),timing:t()-n}}},getTransferables:e=>[e.textureData.buffer]}),requests:0,idleTimer:null}),p.requests++,clearTimeout(p.idleTimer),p.workerModule(r,n,i,s,a,o).then((({textureData:e,timing:t})=>{const i=Vs(),s=new Uint8Array(4*e.length);for(let r=0;r{!function(e){Es[e]&&Es[e].forEach((function(e){e()})),bs[e]&&(bs[e].terminate(),delete bs[e])}(d)}),2e3)),{timing:t}}))}}();const Ys=Hs.webglUtils.resizeWebGLCanvasWithoutClearing;const qs=Ss({name:"Typr Font Parser",dependencies:[function(){return"undefined"==typeof window&&(self.window=self),function(e){var t={parse:function(e){var r=t._bin,n=new Uint8Array(e);if("ttcf"==r.readASCII(n,0,4)){var i=4;r.readUshort(n,i),i+=2,r.readUshort(n,i),i+=2;var s=r.readUint(n,i);i+=4;for(var a=[],o=0;o>>r&1)&&t++;return t},t._lctf.readClassDef=function(e,r){var n=t._bin,i=[],s=n.readUshort(e,r);if(r+=2,1==s){var a=n.readUshort(e,r);r+=2;var o=n.readUshort(e,r);r+=2;for(var l=0;l0&&(s.featureParams=i+a);var o=n.readUshort(e,r);r+=2,s.tab=[];for(var l=0;l255?-1:t.CFF.glyphByUnicode(e,t.CFF.tableSE[r])},t.CFF.readEncoding=function(e,r,n){t._bin;var i=[".notdef"],s=e[r];if(r++,0!=s)throw"error: unknown encoding format: "+s;var a=e[r];r++;for(var o=0;o>4,m=15&p;if(15!=f&&d.push(f),15!=m&&d.push(m),15==m)break}for(var g="",A=[0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"],v=0;v=a.xMax||a.yMin>=a.yMax)return null;if(a.noc>0){a.endPts=[];for(var o=0;o=1&&o.fmt<=2){c=s.readUshort(e,n),n+=2;var u=s.readUshort(e,n);n+=2,h=t._lctf.numOfOnes(c);var d=t._lctf.numOfOnes(u);if(1==o.fmt){o.pairsets=[];var p=s.readUshort(e,n);n+=2;for(var f=0;f=1&&o.fmt<=2){if(1==o.fmt)o.delta=s.readShort(e,n),n+=2;else if(2==o.fmt){var c=s.readUshort(e,n);n+=2,o.newg=s.readUshorts(e,n,c),n+=2*o.newg.length}}else if(4==r){o.vals=[],c=s.readUshort(e,n),n+=2;for(var h=0;h>>8;if(0!=(u&=15))throw"unknown kern table format: "+u;r=t.kern.readFormat0(e,r,l)}return l},t.kern.parseV1=function(e,r,n,i){var s=t._bin;s.readFixed(e,r),r+=4;var a=s.readUint(e,r);r+=4;for(var o={glyph1:[],rval:[]},l=0;l>>8;if(0!=(h&=15))throw"unknown kern table format: "+h;r=t.kern.readFormat0(e,r,o)}return o},t.kern.readFormat0=function(e,r,n){var i=t._bin,s=-1,a=i.readUshort(e,r);r+=2,i.readUshort(e,r),r+=2,i.readUshort(e,r),r+=2,i.readUshort(e,r),r+=2;for(var o=0;o=i.map.length?0:i.map[t];if(4==i.format){for(var s=-1,a=0;at?0:65535&(0!=i.idRangeOffset[s]?i.glyphIdArray[t-i.startCount[s]+(i.idRangeOffset[s]>>1)-(i.idRangeOffset.length-s)]:t+i.idDelta[s])}if(12==i.format){if(t>i.groups[i.groups.length-1][1])return 0;for(a=0;a-1?t.U._simpleGlyph(i,n):t.U._compoGlyph(i,r,n))},t.U._simpleGlyph=function(e,r){for(var n=0;ns)){for(var p=!0,f=0,m=0;ms)){for(p=!0,m=0;m>1,a.length=0,l=!0;else if("o3"==M||"o23"==M)a.length%2!=0&&!l&&(c=a.shift()+i.nominalWidthX),o+=a.length>>1,a.length=0,l=!0;else if("o4"==M)a.length>1&&!l&&(c=a.shift()+i.nominalWidthX,l=!0),h&&t.U.P.closePath(s),p+=a.pop(),t.U.P.moveTo(s,d,p),h=!0;else if("o5"==M)for(;a.length>0;)d+=a.shift(),p+=a.shift(),t.U.P.lineTo(s,d,p);else if("o6"==M||"o7"==M)for(var w=a.length,C="o6"==M,T=0;TMath.abs(b-p)?d=x+a.shift():p=b+a.shift(),t.U.P.curveTo(s,f,m,g,A,E,_),t.U.P.curveTo(s,v,y,x,b,d,p));else if("o14"==M){if(a.length>0&&!l&&(c=a.shift()+n.nominalWidthX,l=!0),4==a.length){var R=a.shift(),P=a.shift(),D=a.shift(),L=a.shift(),F=t.CFF.glyphBySE(n,D),U=t.CFF.glyphBySE(n,L);t.U._drawCFF(n.CharStrings[F],r,n,i,s),r.x=R,r.y=P,t.U._drawCFF(n.CharStrings[U],r,n,i,s)}h&&(t.U.P.closePath(s),h=!1)}else if("o19"==M||"o20"==M)a.length%2!=0&&!l&&(c=a.shift()+i.nominalWidthX),o+=a.length>>1,a.length=0,l=!0,u+=o+7>>3;else if("o21"==M)a.length>2&&!l&&(c=a.shift()+i.nominalWidthX,l=!0),p+=a.pop(),d+=a.pop(),h&&t.U.P.closePath(s),t.U.P.moveTo(s,d,p),h=!0;else if("o22"==M)a.length>1&&!l&&(c=a.shift()+i.nominalWidthX,l=!0),d+=a.pop(),h&&t.U.P.closePath(s),t.U.P.moveTo(s,d,p),h=!0;else if("o25"==M){for(;a.length>6;)d+=a.shift(),p+=a.shift(),t.U.P.lineTo(s,d,p);f=d+a.shift(),m=p+a.shift(),g=f+a.shift(),A=m+a.shift(),d=g+a.shift(),p=A+a.shift(),t.U.P.curveTo(s,f,m,g,A,d,p)}else if("o26"==M)for(a.length%2&&(d+=a.shift());a.length>0;)f=d,m=p+a.shift(),d=g=f+a.shift(),p=(A=m+a.shift())+a.shift(),t.U.P.curveTo(s,f,m,g,A,d,p);else if("o27"==M)for(a.length%2&&(p+=a.shift());a.length>0;)m=p,g=(f=d+a.shift())+a.shift(),A=m+a.shift(),d=g+a.shift(),p=A,t.U.P.curveTo(s,f,m,g,A,d,p);else if("o10"==M||"o29"==M){var O="o10"==M?i:n;if(0==a.length)console.debug("error: empty stack");else{var N=a.pop(),k=O.Subrs[N+O.Bias];r.x=d,r.y=p,r.nStems=o,r.haveWidth=l,r.width=c,r.open=h,t.U._drawCFF(k,r,n,i,s),d=r.x,p=r.y,o=r.nStems,l=r.haveWidth,c=r.width,h=r.open}}else if("o30"==M||"o31"==M){var G=a.length,z=(B=0,"o31"==M);for(B+=G-(w=-3&G);B>>1|(21845&p)<<1;f=(61680&(f=(52428&f)>>>2|(13107&f)<<2))>>>4|(3855&f)<<4,d[p]=((65280&f)>>>8|(255&f)<<8)>>>1}var m=function(e,t,n){for(var i=e.length,s=0,a=new r(t);s>>c]=h}else for(o=new r(i),s=0;s>>15-e[s]);return o},g=new t(288);for(p=0;p<144;++p)g[p]=8;for(p=144;p<256;++p)g[p]=9;for(p=256;p<280;++p)g[p]=7;for(p=280;p<288;++p)g[p]=8;var A=new t(32);for(p=0;p<32;++p)A[p]=5;var v=m(g,9,1),y=m(A,5,1),x=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},b=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},E=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},_=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],S=function(e,t,r){var n=new Error(t||_[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,S),!r)throw n;return n},M=function(e,o,l){var h=e.length;if(!h||l&&!l.l&&h<5)return o||new t(0);var d=!o||l,p=!l||l.i;l||(l={}),o||(o=new t(3*h));var f,g=function(e){var r=o.length;if(e>r){var n=new t(Math.max(2*r,e));n.set(o),o=n}},A=l.f||0,_=l.p||0,M=l.b||0,w=l.l,C=l.d,T=l.m,I=l.n,B=8*h;do{if(!w){l.f=A=b(e,_,1);var R=b(e,_+1,3);if(_+=3,!R){var P=e[(V=((f=_)/8|0)+(7&f&&1)+4)-4]|e[V-3]<<8,D=V+P;if(D>h){p&&S(0);break}d&&g(M+P),o.set(e.subarray(V,D),M),l.b=M+=P,l.p=_=8*D;continue}if(1==R)w=v,C=y,T=9,I=5;else if(2==R){var L=b(e,_,31)+257,F=b(e,_+10,15)+4,U=L+b(e,_+5,31)+1;_+=14;for(var O=new t(U),N=new t(19),k=0;k>>4)<16)O[k++]=V;else{var j=0,W=0;for(16==V?(W=3+b(e,_,3),_+=2,j=O[k-1]):17==V?(W=3+b(e,_,7),_+=3):18==V&&(W=11+b(e,_,127),_+=7);W--;)O[k++]=j}}var X=O.subarray(0,L),Y=O.subarray(L);T=x(X),I=x(Y),w=m(X,T,1),C=m(Y,I,1)}else S(1);if(_>B){p&&S(0);break}}d&&g(M+131072);for(var q=(1<>>4;if((_+=15&j)>B){p&&S(0);break}if(j||S(2),Z<256)o[M++]=Z;else{if(256==Z){J=_,w=null;break}var $=Z-254;if(Z>264){var ee=i[k=Z-257];$=b(e,_,(1<>>4;if(te||S(3),_+=15&te,Y=u[re],re>3&&(ee=s[re],Y+=E(e,_)&(1<B){p&&S(0);break}d&&g(M+131072);for(var ne=M+$;Me.length)&&(s=e.length);var a=new(e instanceof r?r:e instanceof n?n:t)(s-i);return a.set(e.subarray(i,s)),a}(o,0,M)},w=new t(0),C="undefined"!=typeof TextDecoder&&new TextDecoder;try{C.decode(w,{stream:!0})}catch(e){}return e.convert_streams=function(e){var t=new DataView(e),r=0;function n(){var e=t.getUint16(r);return r+=2,e}function i(){var e=t.getUint32(r);return r+=4,e}function s(e){A.setUint16(v,e),v+=2}function a(e){A.setUint32(v,e),v+=4}for(var o={signature:i(),flavor:i(),length:i(),numTables:n(),reserved:n(),totalSfntSize:i(),majorVersion:n(),minorVersion:n(),metaOffset:i(),metaLength:i(),metaOrigLength:i(),privOffset:i(),privLength:i()},l=0;Math.pow(2,l)<=o.numTables;)l++;l--;for(var c=16*Math.pow(2,l),h=16*o.numTables-c,u=12,d=[],p=0;p{let[i,s]=n.split("+");i=parseInt(i,36),s=s?parseInt(s,36):0,h.set(r+=i,e[t]);for(let a=s;a--;)h.set(++r,e[t])}))}}return h.get(e)||c}const d=1,p=2,f=3,m=4,g=[null,"isol","init","fina","medi"];function A(e){const t=new Uint8Array(e.length);let r=c,n=d,h=-1;for(let g=0;g65535&&g++)}return t}function v(t){const n=Object.create(null),i={unitsPerEm:t.head.unitsPerEm,ascender:t.hhea.ascender,descender:t.hhea.descender,forEachGlyph(s,a,o,l){let c=0;const h=1/i.unitsPerEm*a,u=function(t,r){const n=[];for(let s=0;s65535&&s++,n.push(e.U.codeToGlyph(t,i))}const i=t.GSUB;if(i){const{lookupList:t,featureList:s}=i;let a;const o=/^(rlig|liga|mset|isol|init|fina|medi|half|pres|blws)$/,l=[];s.forEach((i=>{if(o.test(i.tag))for(let s=0;s{if(-1!==i){let s=n[i];if(!s){const{cmds:a,crds:o}=e.U.glyphToPath(t,i);let l,c,h,u,d="",p=0;for(let e=0,t=a.length;e1?",":"")+o[p++]}if(o.length){l=c=1/0,h=u=-1/0;for(let e=0,t=o.length;eh&&(h=t),r>u&&(u=r)}}else l=h=c=u=0;s=n[i]={index:i,advanceWidth:t.hmtx.aWidth[i],xMin:l,yMin:c,xMax:h,yMax:u,path:d,pathCommandCount:a.length}}-1!==p&&(c+=e.U.getPairAdjustment(t,p,i)*h),l.call(null,s,c,d),s.advanceWidth&&(c+=s.advanceWidth*h),o&&(c+=o*a),p=i}d+=s.codePointAt(d)>65535?2:1})),c}};return i}return function(r){const n=new Uint8Array(r,0,4),i=e._bin.readASCII(n,0,4);if("wOFF"===i)r=t(r);else if("wOF2"===i)throw new Error("woff2 fonts not supported");return v(e.parse(r)[0])}}],init:(e,t,r)=>r(e(),t())}),Ks={defaultFontURL:"https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4mxM.woff",sdfGlyphSize:64,sdfMargin:1/16,sdfExponent:9,textureWidth:2048},Js=new a.Color;let Zs=!1;function $s(){return(self.performance||Date).now()}const ea=Object.create(null);function ta(e,t){Zs=!0,e=na({},e);const r=$s();if(e.font=function(e){ia||(ia="undefined"==typeof document?{}:document.createElement("a"));return ia.href=e,ia.href}(e.font||Ks.defaultFontURL),e.text=""+e.text,e.sdfGlyphSize=e.sdfGlyphSize||Ks.sdfGlyphSize,null!=e.colorRanges){let t={};for(let r in e.colorRanges)if(e.colorRanges.hasOwnProperty(r)){let n=e.colorRanges[r];"number"!=typeof n&&(n=Js.set(n).getHex()),t[r]=n}e.colorRanges=t}Object.freeze(e);const{textureWidth:n,sdfExponent:i}=Ks,{sdfGlyphSize:s}=e,o=n/s*4;let l=ea[s];if(!l){const e=document.createElement("canvas");e.width=n,e.height=256*s/o,l=ea[s]={glyphCount:0,sdfGlyphSize:s,sdfCanvas:e,sdfTexture:new a.Texture(e,void 0,void 0,void 0,a.LinearFilter,a.LinearFilter),contextLost:!1,glyphsByFont:new Map},l.sdfTexture.generateMipmaps=!1,function(e){const t=e.sdfCanvas;t.addEventListener("webglcontextlost",(t=>{console.log("Context Lost",t),t.preventDefault(),e.contextLost=!0})),t.addEventListener("webglcontextrestored",(t=>{console.log("Context Restored",t),e.contextLost=!1;const r=[];e.glyphsByFont.forEach((t=>{t.forEach((t=>{r.push(ra(t,e,!0))}))})),ms.all(r).then((()=>{sa(e),e.sdfTexture.needsUpdate=!0}))}))}(l)}const{sdfTexture:c,sdfCanvas:h}=l;let u=l.glyphsByFont.get(e.font);u||l.glyphsByFont.set(e.font,u=new Map),oa(e).then((a=>{const{glyphIds:d,glyphPositions:p,fontSize:f,unitsPerEm:m,timings:g}=a,A=[],v=new Float32Array(4*d.length),y=f/m;let x=0,b=0;const E=$s();d.forEach(((e,t)=>{let r=u.get(e);if(!r){const{path:t,pathBounds:n}=a.glyphData[e],i=Math.max(n[2]-n[0],n[3]-n[1])/s*(Ks.sdfMargin*s+.5),o=l.glyphCount++,c=[n[0]-i,n[1]-i,n[2]+i,n[3]+i];u.set(e,r={path:t,atlasIndex:o,sdfViewBox:c}),A.push(r)}const{sdfViewBox:n}=r,i=p[b++],o=p[b++];v[x++]=i+n[0]*y,v[x++]=o+n[1]*y,v[x++]=i+n[2]*y,v[x++]=o+n[3]*y,d[t]=r.atlasIndex})),g.quads=(g.quads||0)+($s()-E);const _=$s();g.sdf={};const S=h.height,M=Math.ceil(l.glyphCount/o),w=Math.pow(2,Math.ceil(Math.log2(M*s)));w>S&&(console.info(`Increasing SDF texture size ${S}->${w}`),Ys(h,n,w),c.dispose()),ms.all(A.map((t=>ra(t,l,e.gpuAccelerateSDF).then((({timing:e})=>{g.sdf[t.atlasIndex]=e}))))).then((()=>{A.length&&!l.contextLost&&(sa(l),c.needsUpdate=!0),g.sdfTotal=$s()-_,g.total=$s()-r,t(Object.freeze({parameters:e,sdfTexture:c,sdfGlyphSize:s,sdfExponent:i,glyphBounds:v,glyphAtlasIndices:d,glyphColors:a.glyphColors,caretPositions:a.caretPositions,caretHeight:a.caretHeight,chunkedBounds:a.chunkedBounds,ascender:a.ascender,descender:a.descender,lineHeight:a.lineHeight,topBaseline:a.topBaseline,blockBounds:a.blockBounds,visibleBounds:a.visibleBounds,timings:a.timings,get totalBounds(){return console.log("totalBounds deprecated, use blockBounds instead"),a.blockBounds},get totalBlockSize(){console.log("totalBlockSize deprecated, use blockBounds instead");const[e,t,r,n]=a.blockBounds;return[r-e,n-t]}}))}))})),ms.all([]).then((()=>{var e;l.contextLost||(e=h)._warm||(Hs.webgl.isSupported(e),e._warm=!0)}))}function ra({path:e,atlasIndex:t,sdfViewBox:r},{sdfGlyphSize:n,sdfCanvas:i,contextLost:s},a){if(s)return Promise.resolve({timing:-1});const{textureWidth:o,sdfExponent:l}=Ks,c=Math.max(r[2]-r[0],r[3]-r[1]),h=Math.floor(t/4);return function(e,t,r,n,i,s,a,o,l,c,h=!0){return h?Ws(e,t,r,n,i,s,a,o,l,c).then(null,(h=>(js||(console.warn("WebGL SDF generation failed, falling back to JS",h),js=!0),Xs(e,t,r,n,i,s,a,o,l,c)))):Xs(e,t,r,n,i,s,a,o,l,c)}(n,n,e,r,c,l,i,h%(o/n)*n,Math.floor(h/(o/n))*n,t%4,a)}function na(e,t){for(let r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}let ia;function sa(e){if("function"!=typeof createImageBitmap){console.info("Safari<15: applying SDF canvas workaround");const{sdfCanvas:t,sdfTexture:r}=e,{width:n,height:i}=t,s=e.sdfCanvas.getContext("webgl");let a=r.image.data;a&&a.length===n*i*4||(a=new Uint8Array(n*i*4),r.image={width:n,height:i,data:a},r.flipY=!1,r.isDataTexture=!0),s.readPixels(0,0,n,i,s.RGBA,s.UNSIGNED_BYTE,a)}}const aa=Ss({name:"Typesetter",dependencies:[Ks,qs,function(e,t,r){const{defaultFontURL:n}=r,i=Object.create(null),s=1/0,a=/[\u00AD\u034F\u061C\u115F-\u1160\u17B4-\u17B5\u180B-\u180E\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8]/,o=/[\s\-\u007C\u00AD\u2010\u2012-\u2014\u2027\u2056\u2E17\u2E40]/;function l(t,r){t||(t=n);let s=i[t];s?s.pending?s.pending.push(r):r(s):(i[t]={pending:[r]},function(t,r){!function i(){const s=e=>{console.error(`Failure loading font ${t}${t===n?"":"; trying fallback"}`,e),t!==n&&(t=n,i())};try{const n=new XMLHttpRequest;n.open("get",t,!0),n.responseType="arraybuffer",n.onload=function(){if(n.status>=400)s(new Error(n.statusText));else if(n.status>0)try{const t=e(n.response);r(t)}catch(za){s(za)}},n.onerror=s,n.send()}catch(a){s(a)}}()}(t,(e=>{let r=i[t].pending;i[t]=e,r.forEach((t=>t(e)))})))}function c({text:e="",font:r=n,sdfGlyphSize:i=64,fontSize:c=1,letterSpacing:f=0,lineHeight:m="normal",maxWidth:g=s,direction:A,textAlign:v="left",textIndent:y=0,whiteSpace:x="normal",overflowWrap:b="normal",anchorX:E=0,anchorY:_=0,includeCaretPositions:S=!1,chunkedBoundsSize:M=8192,colorRanges:w=null},C,T=!1){const I=d(),B={fontLoad:0,typesetting:0};e.indexOf("\r")>-1&&(console.info("Typesetter: got text with \\r chars; normalizing to \\n"),e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n")),c=+c,f=+f,g=+g,m=m||"normal",y=+y,l(r,(r=>{const n=isFinite(g);let i=null,l=null,R=null,P=null,D=null,L=null,F=null,U=0,O=0,N="nowrap"!==x;const{ascender:k,descender:G,unitsPerEm:z}=r;B.fontLoad=d()-I;const Q=d(),V=c/z;"normal"===m&&(m=(k-G)/z);const H=((m*=c)-(k-G)*V)/2,j=-(k*V+H),W=Math.min(m,(k-G)*V),X=(k+G)/2*V-W/2;let Y=y,q=new p;const K=[q];r.forEachGlyph(e,c,f,((t,r,i)=>{const s=e.charAt(i),l=t.advanceWidth*V,h=q.count;let u;if("isEmpty"in t||(t.isWhitespace=!!s&&/\s/.test(s),t.canBreakAfter=!!s&&o.test(s),t.isEmpty=t.xMin===t.xMax||t.yMin===t.yMax||a.test(s)),t.isWhitespace||t.isEmpty||O++,N&&n&&!t.isWhitespace&&r+l+Y>g&&h){if(q.glyphAt(h-1).glyphObj.canBreakAfter)u=new p,Y=-r;else for(let e=h;e--;){if(0===e&&"break-word"===b){u=new p,Y=-r;break}if(q.glyphAt(e).glyphObj.canBreakAfter){u=q.splitAt(e+1);const t=u.glyphAt(0).x;Y-=t;for(let e=u.count;e--;)u.glyphAt(e).x-=t;break}}u&&(q.isSoftWrapped=!0,q=u,K.push(q),U=g)}let d=q.glyphAt(q.count);d.glyphObj=t,d.x=r+Y,d.width=l,d.charIndex=i,"\n"===s&&(q=new p,K.push(q),Y=-(r+l+f*c)+y)})),K.forEach((e=>{for(let t=e.count;t--;){let{glyphObj:r,x:n,width:i}=e.glyphAt(t);if(!r.isWhitespace)return e.width=n+i,void(e.width>U&&(U=e.width))}}));let J=0,Z=0;if(E&&("number"==typeof E?J=-E:"string"==typeof E&&(J=-U*("left"===E?0:"center"===E?.5:"right"===E?1:h(E)))),_)if("number"==typeof _)Z=-_;else if("string"==typeof _){let e=K.length*m;Z="top"===_?0:"top-baseline"===_?-j:"middle"===_?e/2:"bottom"===_?e:"bottom-baseline"===_?e-H+G*V:h(_)*e}if(!T){const n=t.getEmbeddingLevels(e,A);i=new Uint16Array(O),l=new Float32Array(2*O),R={},L=[s,s,-s,-s],F=[];let a=j;S&&(D=new Float32Array(3*e.length)),w&&(P=new Uint8Array(3*O));let o,c,h=0,d=-1,p=-1;if(K.forEach(((f,g)=>{let{count:A,width:y}=f;if(A>0){let m=0;for(let e=A;e--&&f.glyphAt(e).glyphObj.isWhitespace;)m++;let g=0,x=0;if("center"===v)g=(U-y)/2;else if("right"===v)g=U-y;else if("justify"===v&&f.isSoftWrapped){let e=0;for(let t=A-m;t--;)f.glyphAt(t).glyphObj.isWhitespace&&e++;x=(U-y)/e}if(x||g){let e=0;for(let t=0;t=t){let t=e,s=e;for(;sr)break;sE=e;for(let v=0;v1&&u(D,d,n),d=e}if(w){const{charIndex:e}=m;for(;e>p;)p++,w.hasOwnProperty(p)&&(c=w[p])}if(!E.isWhitespace&&!E.isEmpty){const e=h++;R[g]||(R[g]={path:E.path,pathBounds:[E.xMin,E.yMin,E.xMax,E.yMax]});const t=m.x+J,r=a+Z;l[2*e]=t,l[2*e+1]=r;const n=t+E.xMin*V,u=r+E.yMin*V,d=t+E.xMax*V,p=r+E.yMax*V;nL[2]&&(L[2]=d),p>L[3]&&(L[3]=p),e%M==0&&(o={start:e,end:e,rect:[s,s,-s,-s]},F.push(o)),o.end++;const f=o.rect;if(nf[2]&&(f[2]=d),p>f[3]&&(f[3]=p),i[e]=g,w){const t=3*e;P[t]=c>>16&255,P[t+1]=c>>8&255,P[t+2]=255&c}}}}a-=m})),D){const t=e.length-d;t>1&&u(D,d,t)}}B.typesetting=d()-Q,C({glyphIds:i,glyphPositions:l,glyphData:R,caretPositions:D,caretHeight:W,glyphColors:P,chunkedBounds:F,fontSize:c,unitsPerEm:z,ascender:k*V,descender:G*V,lineHeight:m,topBaseline:j,blockBounds:[J,Z-K.length*m,J+U,Z],visibleBounds:L,timings:B})}))}function h(e){let t=e.match(/^([\d.]+)%$/),r=t?parseFloat(t[1]):NaN;return isNaN(r)?0:r/100}function u(e,t,r){const n=e[3*t],i=e[3*t+1],s=e[3*t+2],a=(i-n)/r;for(let o=0;o(Object.defineProperty(e,t,{get(){return this.data[this.index*f.length+r]},set(e){this.data[this.index*f.length+r]=e}}),e)),{data:null,index:0}),{typeset:c,measure:function(e,t){c(e,(e=>{const[r,n,i,s]=e.blockBounds;t({width:i-r,height:s-n})}),{metricsOnly:!0})},loadFont:l}},Is],init(e,t,r,n){const{defaultFontURL:i}=e;return r(t,n(),{defaultFontURL:i})}}),oa=Ss({name:"Typesetter",dependencies:[aa,Cs],init:(e,t)=>function(r){const n=new t;return e.typeset(r,n.resolve),n},getTransferables(e){const t=[e.glyphPositions.buffer,e.glyphIds.buffer];return e.caretPositions&&t.push(e.caretPositions.buffer),e.glyphColors&&t.push(e.glyphColors.buffer),t}});const la=(()=>{const e={};const t="aTroikaGlyphIndex";class r extends a.InstancedBufferGeometry{constructor(){super(),this.detail=1,this.curveRadius=0,this.groups=[{start:0,count:1/0,materialIndex:0},{start:0,count:1/0,materialIndex:1}],this.boundingSphere=new a.Sphere,this.boundingBox=new a.Box3}computeBoundingSphere(){}computeBoundingBox(){}setSide(e){const t=this.getIndex().count;this.setDrawRange(e===a.BackSide?t/2:0,e===a.DoubleSide?t:t/2)}set detail(t){if(t!==this._detail){this._detail=t,("number"!=typeof t||t<1)&&(t=1);let r=function(t){let r=e[t];if(!r){const n=new a.PlaneBufferGeometry(1,1,t,t),i=n.clone(),s=n.attributes,o=i.attributes,l=new a.BufferGeometry,c=s.uv.count;for(let e=0;e{l.setAttribute(e,new a.Float32BufferAttribute([...s[e].array,...o[e].array],s[e].itemSize))})),l.setIndex([...n.index.array,...i.index.array.map((e=>e+c))]),l.translate(.5,.5,0),r=e[t]=l}return r}(t);["position","normal","uv"].forEach((e=>{this.attributes[e]=r.attributes[e].clone()})),this.setIndex(r.getIndex().clone())}}get detail(){return this._detail}set curveRadius(e){e!==this._curveRadius&&(this._curveRadius=e,this._updateBounds())}get curveRadius(){return this._curveRadius}updateGlyphs(e,r,s,a,o){n(this,"aTroikaGlyphBounds",e,4),n(this,t,r,1),n(this,"aTroikaGlyphColor",o,3),this._blockBounds=s,this._chunkedBounds=a,i(this,r.length),this._updateBounds()}_updateBounds(){const e=this._blockBounds;if(e){const{curveRadius:t,boundingBox:r}=this;if(t){const{PI:n,floor:i,min:s,max:a,sin:o,cos:l}=Math,c=n/2,h=2*n,u=Math.abs(t),d=e[0]/u,p=e[2]/u,f=i((d+c)/h)!==i((p+c)/h)?-u:s(o(d)*u,o(p)*u),m=i((d-c)/h)!==i((p-c)/h)?u:a(o(d)*u,o(p)*u),g=i((d+n)/h)!==i((p+n)/h)?2*u:a(u-l(d)*u,u-l(p)*u);r.min.set(f,e[1],t<0?-g:0),r.max.set(m,e[3],t<0?0:g)}else r.min.set(e[0],e[1],0),r.max.set(e[2],e[3],0);r.getBoundingSphere(this.boundingSphere)}}applyClipRect(e){let r=this.getAttribute(t).count,n=this._chunkedBounds;if(n)for(let t=n.length;t--;){r=n[t].end;let i=n[t].rect;if(i[1]e.y&&i[0]e.x)break}i(this,r)}}function n(e,t,r,n){const i=e.getAttribute(t);r?i&&i.array.length===r.length?(i.array.set(r),i.needsUpdate=!0):(e.setAttribute(t,new a.InstancedBufferAttribute(r,n)),delete e._maxInstanceCount,e.dispose()):i&&e.deleteAttribute(t)}function i(e,t){e[e.hasOwnProperty("instanceCount")?"instanceCount":"maxInstancedCount"]=t}return r.prototype.setAttribute||(r.prototype.setAttribute=function(e,t){return this.attributes[e]=t,this}),r})();const ca=(()=>{const e=new a.MeshBasicMaterial({color:16777215,side:a.DoubleSide,transparent:!0}),t=8421504,r=new a.Matrix4,n=new a.Vector3,i=new a.Vector3,s=[],o=new a.Vector3,l="+x+y";function c(e){return Array.isArray(e)?e[0]:e}let h=()=>{const t=new a.Mesh(new a.PlaneBufferGeometry(1,1),e);return h=()=>t,t},u=()=>{const t=new a.Mesh(new a.PlaneBufferGeometry(1,1,32,1),e);return u=()=>t,t};const d={type:"syncstart"},p={type:"synccomplete"},f=["font","fontSize","letterSpacing","lineHeight","maxWidth","overflowWrap","text","direction","textAlign","textIndent","whiteSpace","anchorX","anchorY","colorRanges","sdfGlyphSize"],m=f.concat("material","color","depthOffset","clipRect","curveRadius","orientation","glyphGeometryDetail");class g extends a.Mesh{constructor(){super(new la,null),this.text="",this.anchorX=0,this.anchorY=0,this.curveRadius=0,this.direction="auto",this.font=null,this.fontSize=.1,this.letterSpacing=0,this.lineHeight="normal",this.maxWidth=1/0,this.overflowWrap="normal",this.textAlign="left",this.textIndent=0,this.whiteSpace="normal",this.material=null,this.color=null,this.colorRanges=null,this.outlineWidth=0,this.outlineColor=0,this.outlineOpacity=1,this.outlineBlur=0,this.outlineOffsetX=0,this.outlineOffsetY=0,this.strokeWidth=0,this.strokeColor=t,this.strokeOpacity=1,this.fillOpacity=1,this.depthOffset=0,this.clipRect=null,this.orientation=l,this.glyphGeometryDetail=1,this.sdfGlyphSize=null,this.gpuAccelerateSDF=!0,this.debugSDF=!1}sync(e){this._needsSync&&(this._needsSync=!1,this._isSyncing?(this._queuedSyncs||(this._queuedSyncs=[])).push(e):(this._isSyncing=!0,this.dispatchEvent(d),ta({text:this.text,font:this.font,fontSize:this.fontSize||.1,letterSpacing:this.letterSpacing||0,lineHeight:this.lineHeight||"normal",maxWidth:this.maxWidth,direction:this.direction||"auto",textAlign:this.textAlign,textIndent:this.textIndent,whiteSpace:this.whiteSpace,overflowWrap:this.overflowWrap,anchorX:this.anchorX,anchorY:this.anchorY,colorRanges:this.colorRanges,includeCaretPositions:!0,sdfGlyphSize:this.sdfGlyphSize,gpuAccelerateSDF:this.gpuAccelerateSDF},(t=>{this._isSyncing=!1,this._textRenderInfo=t,this.geometry.updateGlyphs(t.glyphBounds,t.glyphAtlasIndices,t.blockBounds,t.chunkedBounds,t.glyphColors);const r=this._queuedSyncs;r&&(this._queuedSyncs=null,this._needsSync=!0,this.sync((()=>{r.forEach((e=>e&&e()))}))),this.dispatchEvent(p),e&&e()}))))}onBeforeRender(e,t,r,n,i,s){this.sync(),i.isTroikaTextMaterial&&this._prepareForRender(i),i._hadOwnSide=i.hasOwnProperty("side"),this.geometry.setSide(i._actualSide=i.side),i.side=a.FrontSide}onAfterRender(e,t,r,n,i,s){i._hadOwnSide?i.side=i._actualSide:delete i.side}dispose(){this.geometry.dispose()}get textRenderInfo(){return this._textRenderInfo||null}get material(){let t=this._derivedMaterial;const r=this._baseMaterial||this._defaultMaterial||(this._defaultMaterial=e.clone());if(t&&t.baseMaterial===r||(t=this._derivedMaterial=function(e){const t=Ns(e,{chained:!0,extensions:{derivatives:!0},uniforms:{uTroikaSDFTexture:{value:null},uTroikaSDFTextureSize:{value:new a.Vector2},uTroikaSDFGlyphSize:{value:0},uTroikaSDFExponent:{value:0},uTroikaTotalBounds:{value:new a.Vector4(0,0,0,0)},uTroikaClipRect:{value:new a.Vector4(0,0,0,0)},uTroikaDistanceOffset:{value:0},uTroikaOutlineOpacity:{value:0},uTroikaFillOpacity:{value:1},uTroikaPositionOffset:{value:new a.Vector2},uTroikaCurveRadius:{value:0},uTroikaBlurRadius:{value:0},uTroikaStrokeWidth:{value:0},uTroikaStrokeColor:{value:new a.Color},uTroikaStrokeOpacity:{value:1},uTroikaOrient:{value:new a.Matrix3},uTroikaUseGlyphColors:{value:!0},uTroikaSDFDebug:{value:!1}},vertexDefs:"\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform vec4 uTroikaTotalBounds;\nuniform vec4 uTroikaClipRect;\nuniform mat3 uTroikaOrient;\nuniform bool uTroikaUseGlyphColors;\nuniform float uTroikaDistanceOffset;\nuniform float uTroikaBlurRadius;\nuniform vec2 uTroikaPositionOffset;\nuniform float uTroikaCurveRadius;\nattribute vec4 aTroikaGlyphBounds;\nattribute float aTroikaGlyphIndex;\nattribute vec3 aTroikaGlyphColor;\nvarying vec2 vTroikaGlyphUV;\nvarying vec4 vTroikaTextureUVBounds;\nvarying float vTroikaTextureChannel;\nvarying vec3 vTroikaGlyphColor;\nvarying vec2 vTroikaGlyphDimensions;\n",vertexTransform:"\nvec4 bounds = aTroikaGlyphBounds;\nbounds.xz += uTroikaPositionOffset.x;\nbounds.yw -= uTroikaPositionOffset.y;\n\nvec4 outlineBounds = vec4(\n bounds.xy - uTroikaDistanceOffset - uTroikaBlurRadius,\n bounds.zw + uTroikaDistanceOffset + uTroikaBlurRadius\n);\nvec4 clippedBounds = vec4(\n clamp(outlineBounds.xy, uTroikaClipRect.xy, uTroikaClipRect.zw),\n clamp(outlineBounds.zw, uTroikaClipRect.xy, uTroikaClipRect.zw)\n);\n\nvec2 clippedXY = (mix(clippedBounds.xy, clippedBounds.zw, position.xy) - bounds.xy) / (bounds.zw - bounds.xy);\n\nposition.xy = mix(bounds.xy, bounds.zw, clippedXY);\n\nuv = (position.xy - uTroikaTotalBounds.xy) / (uTroikaTotalBounds.zw - uTroikaTotalBounds.xy);\n\nfloat rad = uTroikaCurveRadius;\nif (rad != 0.0) {\n float angle = position.x / rad;\n position.xz = vec2(sin(angle) * rad, rad - cos(angle) * rad);\n normal.xz = vec2(sin(angle), cos(angle));\n}\n \nposition = uTroikaOrient * position;\nnormal = uTroikaOrient * normal;\n\nvTroikaGlyphUV = clippedXY.xy;\nvTroikaGlyphDimensions = vec2(bounds[2] - bounds[0], bounds[3] - bounds[1]);\n\n\nfloat txCols = uTroikaSDFTextureSize.x / uTroikaSDFGlyphSize;\nvec2 txUvPerSquare = uTroikaSDFGlyphSize / uTroikaSDFTextureSize;\nvec2 txStartUV = txUvPerSquare * vec2(\n mod(floor(aTroikaGlyphIndex / 4.0), txCols),\n floor(floor(aTroikaGlyphIndex / 4.0) / txCols)\n);\nvTroikaTextureUVBounds = vec4(txStartUV, vec2(txStartUV) + txUvPerSquare);\nvTroikaTextureChannel = mod(aTroikaGlyphIndex, 4.0);\n",fragmentDefs:"\nuniform sampler2D uTroikaSDFTexture;\nuniform vec2 uTroikaSDFTextureSize;\nuniform float uTroikaSDFGlyphSize;\nuniform float uTroikaSDFExponent;\nuniform float uTroikaDistanceOffset;\nuniform float uTroikaFillOpacity;\nuniform float uTroikaOutlineOpacity;\nuniform float uTroikaBlurRadius;\nuniform vec3 uTroikaStrokeColor;\nuniform float uTroikaStrokeWidth;\nuniform float uTroikaStrokeOpacity;\nuniform bool uTroikaSDFDebug;\nvarying vec2 vTroikaGlyphUV;\nvarying vec4 vTroikaTextureUVBounds;\nvarying float vTroikaTextureChannel;\nvarying vec2 vTroikaGlyphDimensions;\n\nfloat troikaSdfValueToSignedDistance(float alpha) {\n // Inverse of exponential encoding in webgl-sdf-generator\n \n float maxDimension = max(vTroikaGlyphDimensions.x, vTroikaGlyphDimensions.y);\n float absDist = (1.0 - pow(2.0 * (alpha > 0.5 ? 1.0 - alpha : alpha), 1.0 / uTroikaSDFExponent)) * maxDimension;\n float signedDist = absDist * (alpha > 0.5 ? -1.0 : 1.0);\n return signedDist;\n}\n\nfloat troikaGlyphUvToSdfValue(vec2 glyphUV) {\n vec2 textureUV = mix(vTroikaTextureUVBounds.xy, vTroikaTextureUVBounds.zw, glyphUV);\n vec4 rgba = texture2D(uTroikaSDFTexture, textureUV);\n float ch = floor(vTroikaTextureChannel + 0.5); //NOTE: can't use round() in WebGL1\n return ch == 0.0 ? rgba.r : ch == 1.0 ? rgba.g : ch == 2.0 ? rgba.b : rgba.a;\n}\n\nfloat troikaGlyphUvToDistance(vec2 uv) {\n return troikaSdfValueToSignedDistance(troikaGlyphUvToSdfValue(uv));\n}\n\nfloat troikaGetAADist() {\n \n #if defined(GL_OES_standard_derivatives) || __VERSION__ >= 300\n return length(fwidth(vTroikaGlyphUV * vTroikaGlyphDimensions)) * 0.5;\n #else\n return vTroikaGlyphDimensions.x / 64.0;\n #endif\n}\n\nfloat troikaGetFragDistValue() {\n vec2 clampedGlyphUV = clamp(vTroikaGlyphUV, 0.5 / uTroikaSDFGlyphSize, 1.0 - 0.5 / uTroikaSDFGlyphSize);\n float distance = troikaGlyphUvToDistance(clampedGlyphUV);\n \n // Extrapolate distance when outside bounds:\n distance += clampedGlyphUV == vTroikaGlyphUV ? 0.0 : \n length((vTroikaGlyphUV - clampedGlyphUV) * vTroikaGlyphDimensions);\n\n \n\n return distance;\n}\n\nfloat troikaGetEdgeAlpha(float distance, float distanceOffset, float aaDist) {\n #if defined(IS_DEPTH_MATERIAL) || defined(IS_DISTANCE_MATERIAL)\n float alpha = step(-distanceOffset, -distance);\n #else\n\n float alpha = smoothstep(\n distanceOffset + aaDist,\n distanceOffset - aaDist,\n distance\n );\n #endif\n\n return alpha;\n}\n",fragmentColorTransform:"\nfloat aaDist = troikaGetAADist();\nfloat fragDistance = troikaGetFragDistValue();\nfloat edgeAlpha = uTroikaSDFDebug ?\n troikaGlyphUvToSdfValue(vTroikaGlyphUV) :\n troikaGetEdgeAlpha(fragDistance, uTroikaDistanceOffset, max(aaDist, uTroikaBlurRadius));\n\n#if !defined(IS_DEPTH_MATERIAL) && !defined(IS_DISTANCE_MATERIAL)\nvec4 fillRGBA = gl_FragColor;\nfillRGBA.a *= uTroikaFillOpacity;\nvec4 strokeRGBA = uTroikaStrokeWidth == 0.0 ? fillRGBA : vec4(uTroikaStrokeColor, uTroikaStrokeOpacity);\nif (fillRGBA.a == 0.0) fillRGBA.rgb = strokeRGBA.rgb;\ngl_FragColor = mix(fillRGBA, strokeRGBA, smoothstep(\n -uTroikaStrokeWidth - aaDist,\n -uTroikaStrokeWidth + aaDist,\n fragDistance\n));\ngl_FragColor.a *= edgeAlpha;\n#endif\n\nif (edgeAlpha == 0.0) {\n discard;\n}\n",customRewriter({vertexShader:e,fragmentShader:t}){let r=/\buniform\s+vec3\s+diffuse\b/;return r.test(t)&&(t=t.replace(r,"varying vec3 vTroikaGlyphColor").replace(/\bdiffuse\b/g,"vTroikaGlyphColor"),r.test(e)||(e=e.replace(Bs,"uniform vec3 diffuse;\n$&\nvTroikaGlyphColor = uTroikaUseGlyphColors ? aTroikaGlyphColor / 255.0 : diffuse;\n"))),{vertexShader:e,fragmentShader:t}}});return t.transparent=!0,Object.defineProperties(t,{isTroikaTextMaterial:{value:!0},shadowSide:{get(){return this.side},set(){}}}),t}(r),r.addEventListener("dispose",(function e(){r.removeEventListener("dispose",e),t.dispose()}))),this.outlineWidth||this.outlineBlur||this.outlineOffsetX||this.outlineOffsetY){let e=t._outlineMtl;return e||(e=t._outlineMtl=Object.create(t,{id:{value:t.id+.1}}),e.isTextOutlineMaterial=!0,e.depthWrite=!1,e.map=null,t.addEventListener("dispose",(function r(){t.removeEventListener("dispose",r),e.dispose()}))),[e,t]}return t}set material(e){e&&e.isTroikaTextMaterial?(this._derivedMaterial=e,this._baseMaterial=e.baseMaterial):this._baseMaterial=e}get glyphGeometryDetail(){return this.geometry.detail}set glyphGeometryDetail(e){this.geometry.detail=e}get curveRadius(){return this.geometry.curveRadius}set curveRadius(e){this.geometry.curveRadius=e}get customDepthMaterial(){return c(this.material).getDepthMaterial()}get customDistanceMaterial(){return c(this.material).getDistanceMaterial()}_prepareForRender(e){const s=e.isTextOutlineMaterial,c=e.uniforms,h=this.textRenderInfo;if(h){const{sdfTexture:e,blockBounds:r}=h;c.uTroikaSDFTexture.value=e,c.uTroikaSDFTextureSize.value.set(e.image.width,e.image.height),c.uTroikaSDFGlyphSize.value=h.sdfGlyphSize,c.uTroikaSDFExponent.value=h.sdfExponent,c.uTroikaTotalBounds.value.fromArray(r),c.uTroikaUseGlyphColors.value=!s&&!!h.glyphColors;let n,i,a,o=0,l=0,u=0,d=0,p=0;if(s){let{outlineWidth:e,outlineOffsetX:t,outlineOffsetY:r,outlineBlur:i,outlineOpacity:s}=this;o=this._parsePercent(e)||0,l=Math.max(0,this._parsePercent(i)||0),n=s,d=this._parsePercent(t)||0,p=this._parsePercent(r)||0}else u=Math.max(0,this._parsePercent(this.strokeWidth)||0),u&&(a=this.strokeColor,c.uTroikaStrokeColor.value.set(null==a?t:a),i=this.strokeOpacity,null==i&&(i=1)),n=this.fillOpacity;c.uTroikaDistanceOffset.value=o,c.uTroikaPositionOffset.value.set(d,p),c.uTroikaBlurRadius.value=l,c.uTroikaStrokeWidth.value=u,c.uTroikaStrokeOpacity.value=i,c.uTroikaFillOpacity.value=null==n?1:n,c.uTroikaCurveRadius.value=this.curveRadius||0;let f=this.clipRect;if(f&&Array.isArray(f)&&4===f.length)c.uTroikaClipRect.value.fromArray(f);else{const e=100*(this.fontSize||.1);c.uTroikaClipRect.value.set(r[0]-e,r[1]-e,r[2]+e,r[3]+e)}this.geometry.applyClipRect(c.uTroikaClipRect.value)}c.uTroikaSDFDebug.value=!!this.debugSDF,e.polygonOffset=!!this.depthOffset,e.polygonOffsetFactor=e.polygonOffsetUnits=this.depthOffset||0;const u=s?this.outlineColor||0:this.color;if(null==u)delete e.color;else{const t=e.hasOwnProperty("color")?e.color:e.color=new a.Color;u===t._input&&"object"!=typeof u||t.set(t._input=u)}let d=this.orientation||l;if(d!==e._orientation){let t=c.uTroikaOrient.value;d=d.replace(/[^-+xyz]/g,"");let s=d!==l&&d.match(/^([-+])([xyz])([-+])([xyz])$/);if(s){let[,e,a,l,c]=s;n.set(0,0,0)[a]="-"===e?1:-1,i.set(0,0,0)[c]="-"===l?-1:1,r.lookAt(o,n.cross(i),i),t.setFromMatrix4(r)}else t.identity();e._orientation=d}}_parsePercent(e){if("string"==typeof e){let t=e.match(/^(-?[\d.]+)%$/),r=t?parseFloat(t[1]):NaN;e=(isNaN(r)?0:r/100)*this.fontSize}return e}localPositionToTextCoords(e,t=new a.Vector2){t.copy(e);const r=this.curveRadius;return r&&(t.x=Math.atan2(e.x,Math.abs(r)-Math.abs(e.z))*Math.abs(r)),t}worldPositionToTextCoords(e,t=new a.Vector2){return n.copy(e),this.localPositionToTextCoords(this.worldToLocal(n),t)}raycast(e,t){const{textRenderInfo:r,curveRadius:n}=this;if(r){const i=r.blockBounds,a=n?u():h(),o=a.geometry,{position:l,uv:c}=o.attributes;for(let e=0;e{this[t]=e[t]})),this}clone(){return(new this.constructor).copy(this)}}f.forEach((e=>{const t="_private_"+e;Object.defineProperty(g.prototype,e,{get(){return this[t]},set(e){e!==this[t]&&(this[t]=e,this._needsSync=!0)}})}));let A=!1;return Object.defineProperty(g.prototype,"anchor",{get(){return this._deprecated_anchor},set(e){this._deprecated_anchor=e,A||(console.warn("TextMesh: `anchor` has been deprecated; use `anchorX` and `anchorY` instead."),A=!0),Array.isArray(e)?(this.anchorX=100*(+e[0]||0)+"%",this.anchorY=100*(+e[1]||0)+"%"):this.anchorX=this.anchorY=0}}),g})();new WeakMap;new WeakMap;function ha(e,t,r=((e,t)=>e===t)){if(e===t)return!0;if(!e||!t)return!1;const n=e.length;if(t.length!==n)return!1;for(let i=0;ii.response=e)).then((()=>{n.lifespan&&n.lifespan>0&&setTimeout((()=>{const e=ua.indexOf(i);-1!==e&&ua.splice(e,1)}),n.lifespan)})).catch((e=>i.error=e))};if(ua.push(i),!r)throw i.promise}const pa=(e,t,r)=>da(e,t,!1,r),fa=i.forwardRef((({anchorX:e="center",anchorY:t="middle",font:r,children:s,characters:a,onSync:l,...c},h)=>{const u=(0,o.useThree)((({invalidate:e})=>e)),[d]=i.useState((()=>new ca)),[p,f]=i.useMemo((()=>{const e=[];let t="";return i.Children.forEach(s,(r=>{"string"==typeof r||"number"==typeof r?t+=r:e.push(r)})),[e,t]}),[s]);return pa((()=>new Promise((e=>function({font:e,characters:t,sdfGlyphSize:r},n){ta({font:e,sdfGlyphSize:r,text:Array.isArray(t)?t.join("\n"):""+t},n)}({font:r,characters:a},e)))),["troika-text",r,a]),i.useLayoutEffect((()=>{d.sync((()=>{u(),l&&l(d)}))})),i.useEffect((()=>()=>d.dispose()),[d]),i.createElement("primitive",(0,n.Z)({object:d,ref:h,font:r,text:f,anchorX:e,anchorY:t},c),p)})),ma={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tgl_FragColor = opacity * texel;","}"].join("\n")};var ga=Object.defineProperty,Aa=(e,t,r)=>(((e,t,r)=>{t in e?ga(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class va{constructor(){Aa(this,"enabled",!0),Aa(this,"needsSwap",!0),Aa(this,"clear",!1),Aa(this,"renderToScreen",!1)}setSize(e,t){}render(e,t,r,n,i){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}class ya{constructor(e){Aa(this,"camera",new a.OrthographicCamera(-1,1,1,-1,0,1)),Aa(this,"geometry",new a.PlaneGeometry(2,2)),Aa(this,"mesh"),this.mesh=new a.Mesh(this.geometry,e)}get material(){return this.mesh.material}set material(e){this.mesh.material=e}dispose(){this.mesh.geometry.dispose()}render(e){e.render(this.mesh,this.camera)}}var xa=Object.defineProperty,ba=(e,t,r)=>(((e,t,r)=>{t in e?xa(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class Ea extends va{constructor(e,t="tDiffuse"){super(),ba(this,"textureID"),ba(this,"uniforms"),ba(this,"material"),ba(this,"fsQuad"),this.textureID=t,e instanceof a.ShaderMaterial?(this.uniforms=e.uniforms,this.material=e):(this.uniforms=a.UniformsUtils.clone(e.uniforms),this.material=new a.ShaderMaterial({defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new ya(this.material)}render(e,t,r){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=r.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}}var _a=Object.defineProperty,Sa=(e,t,r)=>(((e,t,r)=>{t in e?_a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class Ma extends va{constructor(e,t){super(),Sa(this,"scene"),Sa(this,"camera"),Sa(this,"inverse"),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,r){const n=e.getContext(),i=e.state;let s,a;i.buffers.color.setMask(!1),i.buffers.depth.setMask(!1),i.buffers.color.setLocked(!0),i.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),i.buffers.stencil.setTest(!0),i.buffers.stencil.setOp(n.REPLACE,n.REPLACE,n.REPLACE),i.buffers.stencil.setFunc(n.ALWAYS,s,4294967295),i.buffers.stencil.setClear(a),i.buffers.stencil.setLocked(!0),e.setRenderTarget(r),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),i.buffers.color.setLocked(!1),i.buffers.depth.setLocked(!1),i.buffers.stencil.setLocked(!1),i.buffers.stencil.setFunc(n.EQUAL,1,4294967295),i.buffers.stencil.setOp(n.KEEP,n.KEEP,n.KEEP),i.buffers.stencil.setLocked(!0)}}class wa extends va{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}var Ca=Object.defineProperty,Ta=(e,t,r)=>(((e,t,r)=>{t in e?Ca(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);var Ia=Object.defineProperty,Ba=(e,t,r)=>(((e,t,r)=>{t in e?Ia(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const Ra={uniforms:{tDiffuse:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 tex = texture2D( tDiffuse, vUv );","\tgl_FragColor = LinearTosRGB( tex );","}"].join("\n")};(0,o.extend)({EffectComposer:class{constructor(e,t){if(Ta(this,"renderer"),Ta(this,"_pixelRatio"),Ta(this,"_width"),Ta(this,"_height"),Ta(this,"renderTarget1"),Ta(this,"renderTarget2"),Ta(this,"writeBuffer"),Ta(this,"readBuffer"),Ta(this,"renderToScreen"),Ta(this,"passes",[]),Ta(this,"copyPass"),Ta(this,"clock"),this.renderer=e,void 0===t){const r={minFilter:a.LinearFilter,magFilter:a.LinearFilter,format:a.RGBAFormat},n=e.getSize(new a.Vector2);this._pixelRatio=e.getPixelRatio(),this._width=n.width,this._height=n.height,(t=new a.WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio,r)).texture.name="EffectComposer.rt1"}else this._pixelRatio=1,this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,void 0===ma&&console.error("THREE.EffectComposer relies on CopyShader"),void 0===Ea&&console.error("THREE.EffectComposer relies on ShaderPass"),this.copyPass=new Ea(ma),this.copyPass.material.blending=a.NoBlending,this.clock=new a.Clock}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t{try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(za){return!1}},Da=i.forwardRef((({children:e,multisamping:t=8,renderIndex:r=1,disableGamma:s=!1,disableRenderPass:l=!1,...c},h)=>{const u=i.useRef(),d=(0,o.useThree)((({scene:e})=>e)),p=(0,o.useThree)((({camera:e})=>e)),f=(0,o.useThree)((({gl:e})=>e)),m=(0,o.useThree)((({size:e})=>e)),[g]=i.useState((()=>{if(Pa()&&t>0){const e=new a.WebGLRenderTarget(m.width,m.height,{format:a.RGBAFormat,encoding:a.sRGBEncoding});return e.samples=8,e}}));return i.useEffect((()=>{var e,t;null==(e=u.current)||e.setSize(m.width,m.height),null==(t=u.current)||t.setPixelRatio(f.getPixelRatio())}),[f,m]),(0,o.useFrame)((()=>{var e;return null==(e=u.current)?void 0:e.render()}),r),i.createElement("effectComposer",(0,n.Z)({ref:w([h,u]),args:[f,g]},c),!l&&i.createElement("renderPass",{attachArray:"passes",args:[d,p]}),!s&&i.createElement("shaderPass",{attachArray:"passes",args:[Ra]}),e)}));function La({stops:e,colors:t,size:r=1024,...s}){const l=(0,o.useThree)((e=>e.gl)),c=i.useMemo((()=>{const n=document.createElement("canvas"),i=n.getContext("2d");n.width=16,n.height=r;const s=i.createLinearGradient(0,0,0,r);let o=e.length;for(;o--;)s.addColorStop(e[o],t[o]);i.fillStyle=s,i.fillRect(0,0,16,r);const l=new a.Texture(n);return l.needsUpdate=!0,l}),[e]);return i.useEffect((()=>()=>{c.dispose()}),[c]),i.createElement("primitive",(0,n.Z)({object:c,attach:"map",encoding:l.outputEncoding},s))}function Fa(e,t,r,n){return class extends a.ShaderMaterial{constructor(){const i=Object.entries(e);super({uniforms:i.reduce(((e,[t,r])=>({...e,...a.UniformsUtils.clone({[t]:{value:r}})})),{}),vertexShader:t,fragmentShader:r}),i.forEach((([e])=>Object.defineProperty(this,e,{get:()=>this.uniforms[e].value,set:t=>this.uniforms[e].value=t}))),n&&n(this)}}}const Ua=e=>e===Object(e)&&!Array.isArray(e)&&"function"!=typeof e;function Oa(e){const t=(0,o.useThree)((e=>e.gl)),r=(0,o.useLoader)(a.TextureLoader,Ua(e)?Object.values(e):e);if((0,i.useEffect)((()=>{(Array.isArray(r)?r:[r]).forEach(t.initTexture)}),[t,r]),Ua(e)){const t=Object.keys(e),n={};return t.forEach((e=>Object.assign(n,{[e]:r[t.indexOf(e)]}))),n}return r}Oa.preload=e=>o.useLoader.preload(a.TextureLoader,e),Oa.clear=e=>o.useLoader.clear(a.TextureLoader,e);const Na=Fa({color:new a.Color("white"),scale:[1,1],imageBounds:[1,1],map:null,zoom:1,grayscale:0},"\n varying vec2 vUv;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n }\n","\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float zoom;\n uniform float grayscale;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, 1.0), grayscale);\n \n #include \n #include \n }\n"),ka=i.forwardRef((({children:e,color:t,segments:r=1,scale:s=1,zoom:a=1,grayscale:l=0,url:c,toneMapped:h,...u},d)=>{(0,o.extend)({ImageMaterial:Na});const p=Oa(c),f=Array.isArray(s)?[s[0],s[1]]:[s,s],m=[p.image.width,p.image.height];return i.createElement("mesh",(0,n.Z)({ref:d,scale:s},u),i.createElement("planeGeometry",{args:[1,1,r,r]}),i.createElement("imageMaterial",{color:t,map:p,zoom:a,grayscale:l,scale:f,imageBounds:m,toneMapped:h}),e)}));function Ga({userData:e,children:t,geometry:r,threshold:s=15,color:o="black",...l}){const c=i.useRef(null);return i.useLayoutEffect((()=>{const e=c.current.parent;if(e){const t=r||e.geometry;t===c.current.userData.currentGeom&&s===c.current.userData.currentThreshold||(c.current.userData.currentGeom=t,c.current.userData.currentThreshold=s,c.current.geometry=new a.EdgesGeometry(t,s))}})),i.createElement("lineSegments",(0,n.Z)({ref:c,raycast:()=>null},l),t||i.createElement("lineBasicMaterial",{color:o}))}function za(e,t){const r=new a.Matrix4,n=new a.Ray,i=new a.Sphere,s=new a.Vector3,o=this.geometry;if(i.copy(o.boundingSphere),i.applyMatrix4(this.matrixWorld),!1===e.ray.intersectSphere(i,s))return;r.copy(this.matrixWorld).invert(),n.copy(e.ray).applyMatrix4(r);const l=new a.Vector3,c=new a.Vector3,h=new a.Vector3,u=this instanceof a.LineSegments?2:1,d=o.index,p=o.attributes;if(null!==d){const r=d.array,i=p.position.array,a=p.width.array;for(let o=0,d=r.length-1;og)continue;s.applyMatrix4(this.matrixWorld);const A=e.ray.origin.distanceTo(s);Ae.far||(t.push({distance:A,point:h.clone().applyMatrix4(this.matrixWorld),index:o,face:null,faceIndex:null,object:this}),o=d)}}}function Qa(e,t,r,n,i){let s;if(e=e.subarray||e.slice?e:e.buffer,r=r.subarray||r.slice?r:r.buffer,e=t?e.subarray?e.subarray(t,i&&t+i):e.slice(t,i&&t+i):e,r.set)r.set(e,n);else for(s=0;s0&&(r=this.copyV3(n),this.next.push(r[0],r[1],r[2]),this.next.push(r[0],r[1],r[2]))}r=this.compareV3(e-1,0)?this.copyV3(1):this.copyV3(e-1),this.next.push(r[0],r[1],r[2]),this.next.push(r[0],r[1],r[2]),this._attributes&&this._attributes.position.count===this.positions.length?(this._attributes.position.copyArray(new Float32Array(this.positions)),this._attributes.position.needsUpdate=!0,this._attributes.previous.copyArray(new Float32Array(this.previous)),this._attributes.previous.needsUpdate=!0,this._attributes.next.copyArray(new Float32Array(this.next)),this._attributes.next.needsUpdate=!0,this._attributes.side.copyArray(new Float32Array(this.side)),this._attributes.side.needsUpdate=!0,this._attributes.width.copyArray(new Float32Array(this.width)),this._attributes.width.needsUpdate=!0,this._attributes.uv.copyArray(new Float32Array(this.uvs)),this._attributes.uv.needsUpdate=!0,this._attributes.index.copyArray(new Uint16Array(this.indices_array)),this._attributes.index.needsUpdate=!0):this._attributes={position:new a.BufferAttribute(new Float32Array(this.positions),3),previous:new a.BufferAttribute(new Float32Array(this.previous),3),next:new a.BufferAttribute(new Float32Array(this.next),3),side:new a.BufferAttribute(new Float32Array(this.side),1),width:new a.BufferAttribute(new Float32Array(this.width),1),uv:new a.BufferAttribute(new Float32Array(this.uvs),2),index:new a.BufferAttribute(new Uint16Array(this.indices_array),1),counters:new a.BufferAttribute(new Float32Array(this.counters),1)},this.setAttribute("position",this._attributes.position),this.setAttribute("previous",this._attributes.previous),this.setAttribute("next",this._attributes.next),this.setAttribute("side",this._attributes.side),this.setAttribute("width",this._attributes.width),this.setAttribute("uv",this._attributes.uv),this.setAttribute("counters",this._attributes.counters),this.setIndex(this._attributes.index),this.computeBoundingSphere(),this.computeBoundingBox()}advance({x:e,y:t,z:r}){const n=this._attributes.position.array,i=this._attributes.previous.array,s=this._attributes.next.array,a=n.length;Qa(n,0,i,0,a),Qa(n,6,n,0,a-6),n[a-6]=e,n[a-5]=t,n[a-4]=r,n[a-3]=e,n[a-2]=t,n[a-1]=r,Qa(n,6,s,0,a-6),s[a-6]=e,s[a-5]=t,s[a-4]=r,s[a-3]=e,s[a-2]=t,s[a-1]=r,this._attributes.position.needsUpdate=!0,this._attributes.previous.needsUpdate=!0,this._attributes.next.needsUpdate=!0}}a.ShaderChunk.meshline_vert=["","#include ","",a.ShaderChunk.logdepthbuf_pars_vertex,a.ShaderChunk.fog_pars_vertex,"","attribute vec3 previous;","attribute vec3 next;","attribute float side;","attribute float width;","attribute float counters;","","uniform vec2 resolution;","uniform float lineWidth;","uniform vec3 color;","uniform float opacity;","uniform float sizeAttenuation;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","vec2 fix( vec4 i, float aspect ) {",""," vec2 res = i.xy / i.w;"," res.x *= aspect;","\t vCounters = counters;"," return res;","","}","","void main() {",""," float aspect = resolution.x / resolution.y;",""," vColor = vec4( color, opacity );"," vUV = uv;",""," mat4 m = projectionMatrix * modelViewMatrix;"," vec4 finalPosition = m * vec4( position, 1.0 );"," vec4 prevPos = m * vec4( previous, 1.0 );"," vec4 nextPos = m * vec4( next, 1.0 );",""," vec2 currentP = fix( finalPosition, aspect );"," vec2 prevP = fix( prevPos, aspect );"," vec2 nextP = fix( nextPos, aspect );",""," float w = lineWidth * width;",""," vec2 dir;"," if( nextP == currentP ) dir = normalize( currentP - prevP );"," else if( prevP == currentP ) dir = normalize( nextP - currentP );"," else {"," vec2 dir1 = normalize( currentP - prevP );"," vec2 dir2 = normalize( nextP - currentP );"," dir = normalize( dir1 + dir2 );",""," vec2 perp = vec2( -dir1.y, dir1.x );"," vec2 miter = vec2( -dir.y, dir.x );"," //w = clamp( w / dot( miter, perp ), 0., 4. * lineWidth * width );",""," }",""," //vec2 normal = ( cross( vec3( dir, 0. ), vec3( 0., 0., 1. ) ) ).xy;"," vec4 normal = vec4( -dir.y, dir.x, 0., 1. );"," normal.xy *= .5 * w;"," normal *= projectionMatrix;"," if( sizeAttenuation == 0. ) {"," normal.xy *= finalPosition.w;"," normal.xy /= ( vec4( resolution, 0., 1. ) * projectionMatrix ).xy;"," }",""," finalPosition.xy += normal.xy * side;",""," gl_Position = finalPosition;","",a.ShaderChunk.logdepthbuf_vertex,a.ShaderChunk.fog_vertex&&" vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",a.ShaderChunk.fog_vertex,"}"].join("\n"),a.ShaderChunk.meshline_frag=["",a.ShaderChunk.fog_pars_fragment,a.ShaderChunk.logdepthbuf_pars_fragment,"","uniform sampler2D map;","uniform sampler2D alphaMap;","uniform float useMap;","uniform float useAlphaMap;","uniform float useDash;","uniform float dashArray;","uniform float dashOffset;","uniform float dashRatio;","uniform float visibility;","uniform float alphaTest;","uniform vec2 repeat;","","varying vec2 vUV;","varying vec4 vColor;","varying float vCounters;","","void main() {","",a.ShaderChunk.logdepthbuf_fragment,""," vec4 c = vColor;"," if( useMap == 1. ) c *= texture2D( map, vUV * repeat );"," if( useAlphaMap == 1. ) c.a *= texture2D( alphaMap, vUV * repeat ).a;"," if( c.a < alphaTest ) discard;"," if( useDash == 1. ){"," c.a *= ceil(mod(vCounters + dashOffset, dashArray) - (dashArray * dashRatio));"," }"," gl_FragColor = c;"," gl_FragColor.a *= step(vCounters, visibility);","",a.ShaderChunk.fog_fragment,"}"].join("\n");class Ha extends a.ShaderMaterial{constructor(e){super({uniforms:Object.assign({},a.UniformsLib.fog,{lineWidth:{value:1},map:{value:null},useMap:{value:0},alphaMap:{value:null},useAlphaMap:{value:0},color:{value:new a.Color(16777215)},opacity:{value:1},resolution:{value:new a.Vector2(1,1)},sizeAttenuation:{value:1},dashArray:{value:0},dashOffset:{value:0},dashRatio:{value:.5},useDash:{value:0},visibility:{value:1},alphaTest:{value:0},repeat:{value:new a.Vector2(1,1)}}),vertexShader:a.ShaderChunk.meshline_vert,fragmentShader:a.ShaderChunk.meshline_frag}),this.type="MeshLineMaterial",Object.defineProperties(this,{lineWidth:{enumerable:!0,get(){return this.uniforms.lineWidth.value},set(e){this.uniforms.lineWidth.value=e}},map:{enumerable:!0,get(){return this.uniforms.map.value},set(e){this.uniforms.map.value=e}},useMap:{enumerable:!0,get(){return this.uniforms.useMap.value},set(e){this.uniforms.useMap.value=e}},alphaMap:{enumerable:!0,get(){return this.uniforms.alphaMap.value},set(e){this.uniforms.alphaMap.value=e}},useAlphaMap:{enumerable:!0,get(){return this.uniforms.useAlphaMap.value},set(e){this.uniforms.useAlphaMap.value=e}},color:{enumerable:!0,get(){return this.uniforms.color.value},set(e){this.uniforms.color.value=e}},opacity:{enumerable:!0,get(){return this.uniforms.opacity.value},set(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get(){return this.uniforms.resolution.value},set(e){this.uniforms.resolution.value.copy(e)}},sizeAttenuation:{enumerable:!0,get(){return this.uniforms.sizeAttenuation.value},set(e){this.uniforms.sizeAttenuation.value=e}},dashArray:{enumerable:!0,get(){return this.uniforms.dashArray.value},set(e){this.uniforms.dashArray.value=e,this.useDash=0!==e?1:0}},dashOffset:{enumerable:!0,get(){return this.uniforms.dashOffset.value},set(e){this.uniforms.dashOffset.value=e}},dashRatio:{enumerable:!0,get(){return this.uniforms.dashRatio.value},set(e){this.uniforms.dashRatio.value=e}},useDash:{enumerable:!0,get(){return this.uniforms.useDash.value},set(e){this.uniforms.useDash.value=e}},visibility:{enumerable:!0,get(){return this.uniforms.visibility.value},set(e){this.uniforms.visibility.value=e}},alphaTest:{enumerable:!0,get(){return this.uniforms.alphaTest.value},set(e){this.uniforms.alphaTest.value=e}},repeat:{enumerable:!0,get(){return this.uniforms.repeat.value},set(e){this.uniforms.repeat.value.copy(e)}}}),this.setValues(e)}copy(e){return super.copy(e),this.lineWidth=e.lineWidth,this.map=e.map,this.useMap=e.useMap,this.alphaMap=e.alphaMap,this.useAlphaMap=e.useAlphaMap,this.color.copy(e.color),this.opacity=e.opacity,this.resolution.copy(e.resolution),this.sizeAttenuation=e.sizeAttenuation,this.dashArray.copy(e.dashArray),this.dashOffset.copy(e.dashOffset),this.dashRatio.copy(e.dashRatio),this.useDash=e.useDash,this.visibility=e.visibility,this.alphaTest=e.alphaTest,this.repeat.copy(e.repeat),this}}const ja={width:.2,length:1,decay:1,local:!1,stride:0,interval:1},Wa=(e,t=1)=>(e.set(e.subarray(t)),e.fill(-1/0,-t),e);function Xa(e,t){const{length:r,local:n,decay:s,interval:l,stride:c}={...ja,...t},h=i.useRef(),[u]=i.useState((()=>new a.Vector3));i.useLayoutEffect((()=>{e&&(h.current=Float32Array.from({length:10*r*3},((t,r)=>e.position.getComponent(r%3))))}),[r,e]);const d=i.useRef(new a.Vector3),p=i.useRef(0);return(0,o.useFrame)((()=>{if(e&&h.current){if(0===p.current){let t;n?t=e.position:(e.getWorldPosition(u),t=u);const r=1*s;for(let e=0;e{const{children:r}=e,{width:n,length:s,decay:l,local:c,stride:h,interval:u}={...ja,...e},{color:d="hotpink",attenuation:p,target:f}=e,m=(0,o.useThree)((e=>e.size)),g=i.useRef(null),[A,v]=i.useState(null),y=Xa(A,{length:s,decay:l,local:c,stride:h,interval:u});i.useEffect((()=>{const e=(null==f?void 0:f.current)||g.current.children.find((e=>e instanceof a.Object3D));e&&v(e)}),[y,f]);const x=i.useMemo((()=>new Va),[]),b=i.useMemo((()=>{var e;const t=new Ha({lineWidth:.1*n,color:d,sizeAttenuation:1,resolution:new a.Vector2(m.width,m.height)});let i;if(r)if(Array.isArray(r))i=r.find((e=>{const t=e;return"string"==typeof t.type&&"meshLineMaterial"===t.type}));else{const e=r;"string"==typeof e.type&&"meshLineMaterial"===e.type&&(i=e)}return"object"==typeof(null==(e=i)?void 0:e.props)&&t.setValues(i.props),t}),[n,d,m,r]);return i.useEffect((()=>{b.uniforms.resolution.value.set(m.width,m.height)}),[m]),(0,o.useFrame)((()=>{y.current&&x.setPoints(y.current,p)})),i.createElement("group",null,i.createElement("mesh",{ref:t,geometry:x,material:b}),i.createElement("group",{ref:g},r))})),qa=new a.Triangle,Ka=new a.Vector3;class Ja{constructor(e){let t=e.geometry;t.index&&(console.warn("THREE.MeshSurfaceSampler: Converting geometry to non-indexed BufferGeometry."),t=t.toNonIndexed()),this.geometry=t,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.colorAttribute=this.geometry.getAttribute("color"),this.weightAttribute=null,this.distribution=null}setWeightAttribute(e){return this.weightAttribute=e?this.geometry.getAttribute(e):null,this}build(){const e=this.positionAttribute,t=this.weightAttribute,r=new Float32Array(e.count/3);for(let i=0;ie){i=s;break}e1&&(i=1-i,s=1-s),qa.a.fromBufferAttribute(this.positionAttribute,3*e),qa.b.fromBufferAttribute(this.positionAttribute,3*e+1),qa.c.fromBufferAttribute(this.positionAttribute,3*e+2),t.set(0,0,0).addScaledVector(qa.a,i).addScaledVector(qa.b,s).addScaledVector(qa.c,1-(i+s)),void 0!==r&&qa.getNormal(r),void 0!==n&&void 0!==this.colorAttribute&&(qa.a.fromBufferAttribute(this.colorAttribute,3*e),qa.b.fromBufferAttribute(this.colorAttribute,3*e+1),qa.c.fromBufferAttribute(this.colorAttribute,3*e+2),Ka.set(0,0,0).addScaledVector(qa.a,i).addScaledVector(qa.b,s).addScaledVector(qa.c,1-(i+s)),n.r=Ka.x,n.g=Ka.y,n.b=Ka.z),this}}const Za=({children:e,weight:t,transform:r,instances:s,mesh:o,...l})=>{const c=i.useRef(null),h=i.useRef(null),u=i.useRef(null);return i.useEffect((()=>{var e,t;h.current=null!==(e=null==s?void 0:s.current)&&void 0!==e?e:c.current.children.find((e=>e.hasOwnProperty("instanceMatrix"))),u.current=null!==(t=null==o?void 0:o.current)&&void 0!==t?t:c.current.children.find((e=>"Mesh"===e.type))}),[e,null==o?void 0:o.current,null==s?void 0:s.current]),i.useEffect((()=>{if(void 0===u.current)return;if(void 0===h.current)return;const e=new Ja(u.current);t&&e.setWeightAttribute(t),e.build();const n=new a.Vector3,i=new a.Vector3,s=new a.Color,o=new a.Object3D;u.current.updateMatrixWorld(!0);for(let t=0;t{const[s]=i.useState((()=>new a.BufferAttribute(new Float32Array(0),1))),o=i.useRef(null);return i.useLayoutEffect((()=>{if(o.current){var t;const r=null!==(t=o.current.parent)&&void 0!==t?t:o.current.__r3f.parent,n=e(r);o.current.copy(n)}}),[e]),i.createElement("primitive",(0,n.Z)({ref:o,object:s,attachObject:["attributes",t]},r))};var eo=r(25030),to=r.n(eo);function ro(e,{keys:t=["near","far","color","distance","decay","penumbra","angle","intensity","skeleton","visible","castShadow","receiveShadow","morphTargetDictionary","morphTargetInfluences","name","geometry","material","position","rotation","scale","up","userData"],deep:r,inject:n,castShadow:s,receiveShadow:a}){let o=to()(e,t);return r&&(o.geometry&&"materialsOnly"!==r&&(o.geometry=o.geometry.clone()),o.material&&"geometriesOnly"!==r&&(o.material=o.material.clone())),n&&(o="function"==typeof n?{...o,children:n(e)}:i.isValidElement(n)?{...o,children:n}:{...o,...n}),"Mesh"===e.type&&(s&&(o.castShadow=!0),a&&(o.receiveShadow=!0)),o}const no=i.forwardRef((({object:e,children:t,deep:r,castShadow:s,receiveShadow:a,inject:o,keys:l,...c},h)=>{const u={keys:l,deep:r,inject:o,castShadow:s,receiveShadow:a};if(Array.isArray(e))return i.createElement("group",(0,n.Z)({},c,{ref:h}),e.map((e=>i.createElement(no,(0,n.Z)({key:e.uuid,object:e},u)))),t);const{children:d,...p}=ro(e,u),f=e.type[0].toLowerCase()+e.type.slice(1);return i.createElement(f,(0,n.Z)({},p,c,{ref:h}),(null==e?void 0:e.children).map((e=>{let t={},r=e.type[0].toLowerCase()+e.type.slice(1);return"group"===r||"object3D"===r?(r=no,t={object:e,...u}):t=ro(e,u),i.createElement(r,(0,n.Z)({key:e.uuid},t))})),t,d)})),io=i.forwardRef((({makeDefault:e,...t},r)=>{const s=(0,o.useThree)((({set:e})=>e)),a=(0,o.useThree)((({camera:e})=>e)),l=(0,o.useThree)((({size:e})=>e)),c=i.useRef();return i.useLayoutEffect((()=>{c.current&&!t.manual&&c.current.updateProjectionMatrix()}),[l,t]),i.useLayoutEffect((()=>{if(e&&c.current){const e=a;return s((()=>({camera:c.current}))),()=>s((()=>({camera:e})))}}),[a,c,e,s]),i.createElement("orthographicCamera",(0,n.Z)({left:l.width/-2,right:l.width/2,top:l.height/2,bottom:l.height/-2,ref:w([c,r])},t))})),so=i.forwardRef((({makeDefault:e,...t},r)=>{const s=(0,o.useThree)((({set:e})=>e)),a=(0,o.useThree)((({camera:e})=>e)),l=(0,o.useThree)((({size:e})=>e)),c=i.useRef();return i.useLayoutEffect((()=>{const{current:e}=c;e&&!t.manual&&(e.aspect=l.width/l.height,e.updateProjectionMatrix())}),[l,t]),i.useLayoutEffect((()=>{if(e&&c.current){const e=a;return s((()=>({camera:c.current}))),()=>s((()=>({camera:e})))}}),[a,c,e,s]),i.createElement("perspectiveCamera",(0,n.Z)({ref:w([c,r])},t))}));function ao({children:e,fog:t,frames:r=1/0,resolution:n=256,near:s=1,far:l=1e3,...c}){const h=i.useRef(),[u,d]=i.useState(),p=(0,o.useThree)((({scene:e})=>e)),f=(0,o.useThree)((({gl:e})=>e)),m=i.useMemo((()=>{const e=new a.WebGLCubeRenderTarget(n);return e.texture.type=a.HalfFloatType,e}),[n]);let g=0;return(0,o.useFrame)((()=>{if(u&&h.current&&(r===1/0||ge.visible=!1));const e=p.fog;p.fog=t||e,u.update(f,p),p.fog=e,h.current.traverse((e=>e.visible=!0)),g++}})),i.createElement("group",c,i.createElement("cubeCamera",{ref:d,args:[s,l,m]}),i.createElement("group",{ref:h},e(m.texture)))}var oo=Object.defineProperty,lo=(e,t,r)=>(((e,t,r)=>{t in e?oo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class co extends a.EventDispatcher{constructor(e){super(),lo(this,"object"),lo(this,"changeEvent",{type:"change"}),lo(this,"EPS",1e-6),lo(this,"enabled",!0),lo(this,"deviceOrientation",{alpha:0,beta:0,gamma:0}),lo(this,"screenOrientation",0),lo(this,"alphaOffset",0),lo(this,"onDeviceOrientationChangeEvent",(e=>{this.deviceOrientation=e})),lo(this,"onScreenOrientationChangeEvent",(()=>{this.screenOrientation=window.orientation||0})),lo(this,"zee",new a.Vector3(0,0,1)),lo(this,"euler",new a.Euler),lo(this,"q0",new a.Quaternion),lo(this,"q1",new a.Quaternion(-Math.sqrt(.5),0,0,Math.sqrt(.5))),lo(this,"setObjectQuaternion",((e,t,r,n,i)=>{this.euler.set(r,t,-n,"YXZ"),e.setFromEuler(this.euler),e.multiply(this.q1),e.multiply(this.q0.setFromAxisAngle(this.zee,-i))})),lo(this,"connect",(()=>{this.onScreenOrientationChangeEvent(),void 0!==window.DeviceOrientationEvent&&"function"==typeof window.DeviceOrientationEvent.requestPermission?window.DeviceOrientationEvent.requestPermission().then((e=>{"granted"==e&&(window.addEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.addEventListener("deviceorientation",this.onDeviceOrientationChangeEvent))})).catch((e=>{console.error("THREE.DeviceOrientationControls: Unable to use DeviceOrientation API:",e)})):(window.addEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.addEventListener("deviceorientation",this.onDeviceOrientationChangeEvent)),this.enabled=!0})),lo(this,"disconnect",(()=>{window.removeEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.removeEventListener("deviceorientation",this.onDeviceOrientationChangeEvent),this.enabled=!1})),lo(this,"lastQuaternion",new a.Quaternion),lo(this,"update",(()=>{if(!1===this.enabled)return;const e=this.deviceOrientation;if(e){const t=e.alpha?a.MathUtils.degToRad(e.alpha)+this.alphaOffset:0,r=e.beta?a.MathUtils.degToRad(e.beta):0,n=e.gamma?a.MathUtils.degToRad(e.gamma):0,i=this.screenOrientation?a.MathUtils.degToRad(this.screenOrientation):0;this.setObjectQuaternion(this.object.quaternion,t,r,n,i),8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS&&(this.lastQuaternion.copy(this.object.quaternion),this.dispatchEvent(this.changeEvent))}})),lo(this,"dispose",(()=>this.disconnect())),this.object=e,this.object.rotation.reorder("YXZ"),this.connect()}}const ho=i.forwardRef(((e,t)=>{const{camera:r,onChange:s,...a}=e,l=(0,o.useThree)((e=>e.camera)),c=(0,o.useThree)((e=>e.invalidate)),h=r||l,[u]=i.useState((()=>new co(h)));return i.useEffect((()=>{const e=e=>{c(),s&&s(e)};return null==u||null==u.addEventListener||u.addEventListener("change",e),()=>null==u||null==u.removeEventListener?void 0:u.removeEventListener("change",e)}),[s,u,c]),(0,o.useFrame)((()=>null==u?void 0:u.update())),i.useEffect((()=>{const e=u;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[u]),u?i.createElement("primitive",(0,n.Z)({ref:t,dispose:void 0,object:u},a)):null}));var uo=Object.defineProperty,po=(e,t,r)=>(((e,t,r)=>{t in e?uo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);function fo(e){e.preventDefault()}class mo extends a.EventDispatcher{constructor(e,t){super(),po(this,"object"),po(this,"domElement",null),po(this,"movementSpeed",1),po(this,"rollSpeed",.005),po(this,"dragToLook",!1),po(this,"autoForward",!1),po(this,"changeEvent",{type:"change"}),po(this,"EPS",1e-6),po(this,"tmpQuaternion",new a.Quaternion),po(this,"mouseStatus",0),po(this,"movementSpeedMultiplier",1),po(this,"moveState",{up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0}),po(this,"moveVector",new a.Vector3(0,0,0)),po(this,"rotationVector",new a.Vector3(0,0,0)),po(this,"keydown",(e=>{if(!e.altKey){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this.moveState.forward=1;break;case"KeyS":this.moveState.back=1;break;case"KeyA":this.moveState.left=1;break;case"KeyD":this.moveState.right=1;break;case"KeyR":this.moveState.up=1;break;case"KeyF":this.moveState.down=1;break;case"ArrowUp":this.moveState.pitchUp=1;break;case"ArrowDown":this.moveState.pitchDown=1;break;case"ArrowLeft":this.moveState.yawLeft=1;break;case"ArrowRight":this.moveState.yawRight=1;break;case"KeyQ":this.moveState.rollLeft=1;break;case"KeyE":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}})),po(this,"keyup",(e=>{switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this.moveState.forward=0;break;case"KeyS":this.moveState.back=0;break;case"KeyA":this.moveState.left=0;break;case"KeyD":this.moveState.right=0;break;case"KeyR":this.moveState.up=0;break;case"KeyF":this.moveState.down=0;break;case"ArrowUp":this.moveState.pitchUp=0;break;case"ArrowDown":this.moveState.pitchDown=0;break;case"ArrowLeft":this.moveState.yawLeft=0;break;case"ArrowRight":this.moveState.yawRight=0;break;case"KeyQ":this.moveState.rollLeft=0;break;case"KeyE":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()})),po(this,"pointerdown",(e=>{if(this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}})),po(this,"pointermove",(e=>{if(!this.dragToLook||this.mouseStatus>0){const t=this.getContainerDimensions(),r=t.size[0]/2,n=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-r)/r,this.moveState.pitchDown=(e.pageY-t.offset[1]-n)/n,this.updateRotationVector()}})),po(this,"pointerup",(e=>{if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()})),po(this,"lastQuaternion",new a.Quaternion),po(this,"lastPosition",new a.Vector3),po(this,"update",(e=>{const t=e*this.movementSpeed,r=e*this.rollSpeed;this.object.translateX(this.moveVector.x*t),this.object.translateY(this.moveVector.y*t),this.object.translateZ(this.moveVector.z*t),this.tmpQuaternion.set(this.rotationVector.x*r,this.rotationVector.y*r,this.rotationVector.z*r,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS)&&(this.dispatchEvent(this.changeEvent),this.lastQuaternion.copy(this.object.quaternion),this.lastPosition.copy(this.object.position))})),po(this,"updateMovementVector",(()=>{const e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back})),po(this,"updateRotationVector",(()=>{this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft})),po(this,"getContainerDimensions",(()=>this.domElement==document||this.domElement instanceof Document?{size:[window.innerWidth,window.innerHeight],offset:[0,0]}:{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]})),po(this,"connect",(e=>{this.domElement=e,!e||e instanceof Document||e.setAttribute("tabindex",-1),this.domElement.addEventListener("contextmenu",fo),this.domElement.addEventListener("pointermove",this.pointermove),this.domElement.addEventListener("pointerdown",this.pointerdown),this.domElement.addEventListener("pointerup",this.pointerup),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup)})),po(this,"dispose",(()=>{this.domElement.removeEventListener("contextmenu",fo),this.domElement.removeEventListener("pointermove",this.pointermove),this.domElement.removeEventListener("pointerdown",this.pointerdown),this.domElement.removeEventListener("pointerup",this.pointerup),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup)})),this.object=e,void 0!==t&&this.connect(t),this.updateMovementVector(),this.updateRotationVector()}}const go=i.forwardRef(((e,t)=>{const{onChange:r,...s}=e,a=(0,o.useThree)((({invalidate:e})=>e)),l=(0,o.useThree)((({camera:e})=>e)),c=(0,o.useThree)((({gl:e})=>e)),[h]=i.useState((()=>new mo(l,c.domElement)));return i.useEffect((()=>{const e=e=>{a(),r&&r(e)};return null==h||null==h.addEventListener||h.addEventListener("change",e),()=>null==h||null==h.removeEventListener?void 0:h.removeEventListener("change",e)}),[r,h,a]),(0,o.useFrame)(((e,t)=>null==h?void 0:h.update(t))),h?i.createElement("primitive",(0,n.Z)({ref:t,dispose:void 0,object:h},s)):null}));var Ao=Object.defineProperty,vo=(e,t,r)=>(((e,t,r)=>{t in e?Ao(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const yo=new a.Ray,xo=new a.Plane,bo=Math.cos(Math.PI/180*70),Eo=(e,t)=>(e%t+t)%t;class _o extends a.EventDispatcher{constructor(e,t){super(),vo(this,"object"),vo(this,"domElement"),vo(this,"enabled",!0),vo(this,"target",new a.Vector3),vo(this,"minDistance",0),vo(this,"maxDistance",1/0),vo(this,"minZoom",0),vo(this,"maxZoom",1/0),vo(this,"minPolarAngle",0),vo(this,"maxPolarAngle",Math.PI),vo(this,"minAzimuthAngle",-1/0),vo(this,"maxAzimuthAngle",1/0),vo(this,"enableDamping",!1),vo(this,"dampingFactor",.05),vo(this,"enableZoom",!0),vo(this,"zoomSpeed",1),vo(this,"enableRotate",!0),vo(this,"rotateSpeed",1),vo(this,"enablePan",!0),vo(this,"panSpeed",1),vo(this,"screenSpacePanning",!0),vo(this,"keyPanSpeed",7),vo(this,"zoomToCursor",!1),vo(this,"autoRotate",!1),vo(this,"autoRotateSpeed",2),vo(this,"reverseOrbit",!1),vo(this,"reverseHorizontalOrbit",!1),vo(this,"reverseVerticalOrbit",!1),vo(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),vo(this,"mouseButtons",{LEFT:a.MOUSE.ROTATE,MIDDLE:a.MOUSE.DOLLY,RIGHT:a.MOUSE.PAN}),vo(this,"touches",{ONE:a.TOUCH.ROTATE,TWO:a.TOUCH.DOLLY_PAN}),vo(this,"target0"),vo(this,"position0"),vo(this,"zoom0"),vo(this,"_domElementKeyEvents",null),vo(this,"getPolarAngle"),vo(this,"getAzimuthalAngle"),vo(this,"setPolarAngle"),vo(this,"setAzimuthalAngle"),vo(this,"getDistance"),vo(this,"listenToKeyEvents"),vo(this,"stopListenToKeyEvents"),vo(this,"saveState"),vo(this,"reset"),vo(this,"update"),vo(this,"connect"),vo(this,"dispose"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>h.phi,this.getAzimuthalAngle=()=>h.theta,this.setPolarAngle=e=>{let t=Eo(e,2*Math.PI),n=h.phi;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-n);2*Math.PI-i{let t=Eo(e,2*Math.PI),n=h.theta;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-n);2*Math.PI-ir.object.position.distanceTo(r.target),this.listenToKeyEvents=e=>{e.addEventListener("keydown",J),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",J),this._domElementKeyEvents=null},this.saveState=()=>{r.target0.copy(r.target),r.position0.copy(r.object.position),r.zoom0=r.object.zoom},this.reset=()=>{r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.zoom=r.zoom0,r.object.updateProjectionMatrix(),r.dispatchEvent(n),r.update(),l=o.NONE},this.update=(()=>{const t=new a.Vector3,i=new a.Vector3(0,1,0),s=(new a.Quaternion).setFromUnitVectors(e.up,i),f=s.clone().invert(),m=new a.Vector3,g=new a.Quaternion,A=2*Math.PI;return function(){const v=r.object.position;s.setFromUnitVectors(e.up,i),f.copy(s).invert(),t.copy(v).sub(r.target),t.applyQuaternion(s),h.setFromVector3(t),r.autoRotate&&l===o.NONE&&I(2*Math.PI/60/60*r.autoRotateSpeed),r.enableDamping?(h.theta+=u.theta*r.dampingFactor,h.phi+=u.phi*r.dampingFactor):(h.theta+=u.theta,h.phi+=u.phi);let y=r.minAzimuthAngle,x=r.maxAzimuthAngle;isFinite(y)&&isFinite(x)&&(y<-Math.PI?y+=A:y>Math.PI&&(y-=A),x<-Math.PI?x+=A:x>Math.PI&&(x-=A),h.theta=y<=x?Math.max(y,Math.min(x,h.theta)):h.theta>(y+x)/2?Math.max(y,h.theta):Math.min(x,h.theta)),h.phi=Math.max(r.minPolarAngle,Math.min(r.maxPolarAngle,h.phi)),h.makeSafe(),!0===r.enableDamping?r.target.addScaledVector(p,r.dampingFactor):r.target.add(p),r.zoomToCursor&&M||r.object.isOrthographicCamera?h.radius=O(h.radius):h.radius=O(h.radius*d),t.setFromSpherical(h),t.applyQuaternion(f),v.copy(r.target).add(t),r.object.lookAt(r.target),!0===r.enableDamping?(u.theta*=1-r.dampingFactor,u.phi*=1-r.dampingFactor,p.multiplyScalar(1-r.dampingFactor)):(u.set(0,0,0),p.set(0,0,0));let b=!1;if(r.zoomToCursor&&M){let n=null;if(r.object instanceof a.PerspectiveCamera&&r.object.isPerspectiveCamera){const e=t.length();n=O(e*d);const i=e-n;r.object.position.addScaledVector(_,i),r.object.updateMatrixWorld()}else if(r.object.isOrthographicCamera){const e=new a.Vector3(S.x,S.y,0);e.unproject(r.object),r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/d)),r.object.updateProjectionMatrix(),b=!0;const i=new a.Vector3(S.x,S.y,0);i.unproject(r.object),r.object.position.sub(i).add(e),r.object.updateMatrixWorld(),n=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),r.zoomToCursor=!1;null!==n&&(r.screenSpacePanning?r.target.set(0,0,-1).transformDirection(r.object.matrix).multiplyScalar(n).add(r.object.position):(yo.origin.copy(r.object.position),yo.direction.set(0,0,-1).transformDirection(r.object.matrix),Math.abs(r.object.up.dot(yo.direction))c||8*(1-g.dot(r.object.quaternion))>c)&&(r.dispatchEvent(n),m.copy(r.object.position),g.copy(r.object.quaternion),b=!1,!0)}})(),this.connect=e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),r.domElement=e,r.domElement.style.touchAction="none",r.domElement.addEventListener("contextmenu",Z),r.domElement.addEventListener("pointerdown",W),r.domElement.addEventListener("pointercancel",q),r.domElement.addEventListener("wheel",K)},this.dispose=()=>{var e,t,n,i,s,a;null==(e=r.domElement)||e.removeEventListener("contextmenu",Z),null==(t=r.domElement)||t.removeEventListener("pointerdown",W),null==(n=r.domElement)||n.removeEventListener("pointercancel",q),null==(i=r.domElement)||i.removeEventListener("wheel",K),null==(s=r.domElement)||s.ownerDocument.removeEventListener("pointermove",X),null==(a=r.domElement)||a.ownerDocument.removeEventListener("pointerup",Y),null!==r._domElementKeyEvents&&r._domElementKeyEvents.removeEventListener("keydown",J)};const r=this,n={type:"change"},i={type:"start"},s={type:"end"},o={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let l=o.NONE;const c=1e-6,h=new a.Spherical,u=new a.Spherical;let d=1;const p=new a.Vector3,f=new a.Vector2,m=new a.Vector2,g=new a.Vector2,A=new a.Vector2,v=new a.Vector2,y=new a.Vector2,x=new a.Vector2,b=new a.Vector2,E=new a.Vector2,_=new a.Vector3,S=new a.Vector2;let M=!1;const w=[],C={};function T(){return Math.pow(.95,r.zoomSpeed)}function I(e){r.reverseOrbit||r.reverseHorizontalOrbit?u.theta+=e:u.theta-=e}function B(e){r.reverseOrbit||r.reverseVerticalOrbit?u.phi+=e:u.phi-=e}const R=(()=>{const e=new a.Vector3;return function(t,r){e.setFromMatrixColumn(r,0),e.multiplyScalar(-t),p.add(e)}})(),P=(()=>{const e=new a.Vector3;return function(t,n){!0===r.screenSpacePanning?e.setFromMatrixColumn(n,1):(e.setFromMatrixColumn(n,0),e.crossVectors(r.object.up,e)),e.multiplyScalar(t),p.add(e)}})(),D=(()=>{const e=new a.Vector3;return function(t,n){const i=r.domElement;if(i&&r.object instanceof a.PerspectiveCamera&&r.object.isPerspectiveCamera){const s=r.object.position;e.copy(s).sub(r.target);let a=e.length();a*=Math.tan(r.object.fov/2*Math.PI/180),R(2*t*a/i.clientHeight,r.object.matrix),P(2*n*a/i.clientHeight,r.object.matrix)}else i&&r.object instanceof a.OrthographicCamera&&r.object.isOrthographicCamera?(R(t*(r.object.right-r.object.left)/r.object.zoom/i.clientWidth,r.object.matrix),P(n*(r.object.top-r.object.bottom)/r.object.zoom/i.clientHeight,r.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),r.enablePan=!1)}})();function L(e){r.object instanceof a.PerspectiveCamera&&r.object.isPerspectiveCamera||r.object instanceof a.OrthographicCamera&&r.object.isOrthographicCamera?d/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r.enableZoom=!1)}function F(e){r.object instanceof a.PerspectiveCamera&&r.object.isPerspectiveCamera||r.object instanceof a.OrthographicCamera&&r.object.isOrthographicCamera?d*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r.enableZoom=!1)}function U(e){if(!r.zoomToCursor||!r.domElement)return;M=!0;const t=r.domElement.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top,s=t.width,a=t.height;S.x=n/s*2-1,S.y=-i/a*2+1,_.set(S.x,S.y,1).unproject(r.object).sub(r.object.position).normalize()}function O(e){return Math.max(r.minDistance,Math.min(r.maxDistance,e))}function N(e){f.set(e.clientX,e.clientY)}function k(e){A.set(e.clientX,e.clientY)}function G(){if(1==w.length)f.set(w[0].pageX,w[0].pageY);else{const e=.5*(w[0].pageX+w[1].pageX),t=.5*(w[0].pageY+w[1].pageY);f.set(e,t)}}function z(){if(1==w.length)A.set(w[0].pageX,w[0].pageY);else{const e=.5*(w[0].pageX+w[1].pageX),t=.5*(w[0].pageY+w[1].pageY);A.set(e,t)}}function Q(){const e=w[0].pageX-w[1].pageX,t=w[0].pageY-w[1].pageY,r=Math.sqrt(e*e+t*t);x.set(0,r)}function V(e){if(1==w.length)m.set(e.pageX,e.pageY);else{const t=te(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);m.set(r,n)}g.subVectors(m,f).multiplyScalar(r.rotateSpeed);const t=r.domElement;t&&(I(2*Math.PI*g.x/t.clientHeight),B(2*Math.PI*g.y/t.clientHeight)),f.copy(m)}function H(e){if(1==w.length)v.set(e.pageX,e.pageY);else{const t=te(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);v.set(r,n)}y.subVectors(v,A).multiplyScalar(r.panSpeed),D(y.x,y.y),A.copy(v)}function j(e){const t=te(e),n=e.pageX-t.x,i=e.pageY-t.y,s=Math.sqrt(n*n+i*i);b.set(0,s),E.set(0,Math.pow(b.y/x.y,r.zoomSpeed)),L(E.y),x.copy(b)}function W(e){var t,n;!1!==r.enabled&&(0===w.length&&(null==(t=r.domElement)||t.ownerDocument.addEventListener("pointermove",X),null==(n=r.domElement)||n.ownerDocument.addEventListener("pointerup",Y)),function(e){w.push(e)}(e),"touch"===e.pointerType?function(e){switch(ee(e),w.length){case 1:switch(r.touches.ONE){case a.TOUCH.ROTATE:if(!1===r.enableRotate)return;G(),l=o.TOUCH_ROTATE;break;case a.TOUCH.PAN:if(!1===r.enablePan)return;z(),l=o.TOUCH_PAN;break;default:l=o.NONE}break;case 2:switch(r.touches.TWO){case a.TOUCH.DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;r.enableZoom&&Q(),r.enablePan&&z(),l=o.TOUCH_DOLLY_PAN;break;case a.TOUCH.DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;r.enableZoom&&Q(),r.enableRotate&&G(),l=o.TOUCH_DOLLY_ROTATE;break;default:l=o.NONE}break;default:l=o.NONE}l!==o.NONE&&r.dispatchEvent(i)}(e):function(e){let t;switch(e.button){case 0:t=r.mouseButtons.LEFT;break;case 1:t=r.mouseButtons.MIDDLE;break;case 2:t=r.mouseButtons.RIGHT;break;default:t=-1}switch(t){case a.MOUSE.DOLLY:if(!1===r.enableZoom)return;!function(e){U(e),x.set(e.clientX,e.clientY)}(e),l=o.DOLLY;break;case a.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enablePan)return;k(e),l=o.PAN}else{if(!1===r.enableRotate)return;N(e),l=o.ROTATE}break;case a.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enableRotate)return;N(e),l=o.ROTATE}else{if(!1===r.enablePan)return;k(e),l=o.PAN}break;default:l=o.NONE}l!==o.NONE&&r.dispatchEvent(i)}(e))}function X(e){!1!==r.enabled&&("touch"===e.pointerType?function(e){switch(ee(e),l){case o.TOUCH_ROTATE:if(!1===r.enableRotate)return;V(e),r.update();break;case o.TOUCH_PAN:if(!1===r.enablePan)return;H(e),r.update();break;case o.TOUCH_DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;!function(e){r.enableZoom&&j(e),r.enablePan&&H(e)}(e),r.update();break;case o.TOUCH_DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;!function(e){r.enableZoom&&j(e),r.enableRotate&&V(e)}(e),r.update();break;default:l=o.NONE}}(e):function(e){if(!1===r.enabled)return;switch(l){case o.ROTATE:if(!1===r.enableRotate)return;!function(e){m.set(e.clientX,e.clientY),g.subVectors(m,f).multiplyScalar(r.rotateSpeed);const t=r.domElement;t&&(I(2*Math.PI*g.x/t.clientHeight),B(2*Math.PI*g.y/t.clientHeight)),f.copy(m),r.update()}(e);break;case o.DOLLY:if(!1===r.enableZoom)return;!function(e){b.set(e.clientX,e.clientY),E.subVectors(b,x),E.y>0?L(T()):E.y<0&&F(T()),x.copy(b),r.update()}(e);break;case o.PAN:if(!1===r.enablePan)return;!function(e){v.set(e.clientX,e.clientY),y.subVectors(v,A).multiplyScalar(r.panSpeed),D(y.x,y.y),A.copy(v),r.update()}(e)}}(e))}function Y(e){var t,n,i;$(e),0===w.length&&(null==(t=r.domElement)||t.releasePointerCapture(e.pointerId),null==(n=r.domElement)||n.ownerDocument.removeEventListener("pointermove",X),null==(i=r.domElement)||i.ownerDocument.removeEventListener("pointerup",Y)),r.dispatchEvent(s),l=o.NONE}function q(e){$(e)}function K(e){!1===r.enabled||!1===r.enableZoom||l!==o.NONE&&l!==o.ROTATE||(e.preventDefault(),r.dispatchEvent(i),function(e){U(e),e.deltaY<0?F(T()):e.deltaY>0&&L(T()),r.update()}(e),r.dispatchEvent(s))}function J(e){!1!==r.enabled&&!1!==r.enablePan&&function(e){let t=!1;switch(e.code){case r.keys.UP:D(0,r.keyPanSpeed),t=!0;break;case r.keys.BOTTOM:D(0,-r.keyPanSpeed),t=!0;break;case r.keys.LEFT:D(r.keyPanSpeed,0),t=!0;break;case r.keys.RIGHT:D(-r.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),r.update())}(e)}function Z(e){!1!==r.enabled&&e.preventDefault()}function $(e){delete C[e.pointerId];for(let t=0;t{const{camera:r,onChange:s,onStart:a,onEnd:l,...c}=e,h=(0,o.useThree)((({invalidate:e})=>e)),u=(0,o.useThree)((({camera:e})=>e)),d=(0,o.useThree)((({gl:e})=>e.domElement)),p=r||u,f=i.useMemo((()=>new So(p)),[p]);return i.useEffect((()=>{f.connect(d);const e=e=>{h(),s&&s(e)};return f.addEventListener("change",e),a&&f.addEventListener("start",a),l&&f.addEventListener("end",l),()=>{f.dispose(),f.removeEventListener("change",e),a&&f.removeEventListener("start",a),l&&f.removeEventListener("end",l)}}),[s,a,l,f,h,d]),(0,o.useFrame)((()=>f.update())),i.createElement("primitive",(0,n.Z)({ref:t,dispose:void 0,object:f,enableDamping:!0},c))})),wo=i.forwardRef((({makeDefault:e,camera:t,regress:r,domElement:s,enableDamping:a=!0,onChange:l,onStart:c,onEnd:h,...u},d)=>{const p=(0,o.useThree)((e=>e.invalidate)),f=(0,o.useThree)((e=>e.camera)),m=(0,o.useThree)((e=>e.gl)),g=(0,o.useThree)((e=>e.events)),A=(0,o.useThree)((e=>e.set)),v=(0,o.useThree)((e=>e.get)),y=(0,o.useThree)((e=>e.performance)),x=t||f,b=s||g.connected||m.domElement,E=i.useMemo((()=>new _o(x)),[x]);return(0,o.useFrame)((()=>{E.enabled&&E.update()})),i.useEffect((()=>(E.connect(b),()=>{E.dispose()})),[b,r,E,p]),i.useEffect((()=>{const e=e=>{p(),r&&y.regress(),l&&l(e)};return E.addEventListener("change",e),c&&E.addEventListener("start",c),h&&E.addEventListener("end",h),()=>{c&&E.removeEventListener("start",c),h&&E.removeEventListener("end",h),E.removeEventListener("change",e)}}),[l,c,h]),i.useEffect((()=>{if(e){const e=v().controls;return A({controls:E}),()=>A({controls:e})}}),[e,E]),i.createElement("primitive",(0,n.Z)({ref:d,object:E,enableDamping:a},u))}));var Co=Object.defineProperty,To=(e,t,r)=>(((e,t,r)=>{t in e?Co(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class Io extends a.EventDispatcher{constructor(e,t){super(),To(this,"enabled",!0),To(this,"screen",{left:0,top:0,width:0,height:0}),To(this,"rotateSpeed",1),To(this,"zoomSpeed",1.2),To(this,"panSpeed",.3),To(this,"noRotate",!1),To(this,"noZoom",!1),To(this,"noPan",!1),To(this,"staticMoving",!1),To(this,"dynamicDampingFactor",.2),To(this,"minDistance",0),To(this,"maxDistance",1/0),To(this,"keys",["KeyA","KeyS","KeyD"]),To(this,"mouseButtons",{LEFT:a.MOUSE.ROTATE,MIDDLE:a.MOUSE.DOLLY,RIGHT:a.MOUSE.PAN}),To(this,"object"),To(this,"domElement"),To(this,"cursorZoom",!1),To(this,"target",new a.Vector3),To(this,"mousePosition",new a.Vector2),To(this,"STATE",{NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4}),To(this,"EPS",1e-6),To(this,"lastZoom",1),To(this,"lastPosition",new a.Vector3),To(this,"cursorVector",new a.Vector3),To(this,"targetVector",new a.Vector3),To(this,"_state",this.STATE.NONE),To(this,"_keyState",this.STATE.NONE),To(this,"_eye",new a.Vector3),To(this,"_movePrev",new a.Vector2),To(this,"_moveCurr",new a.Vector2),To(this,"_lastAxis",new a.Vector3),To(this,"_lastAngle",0),To(this,"_zoomStart",new a.Vector2),To(this,"_zoomEnd",new a.Vector2),To(this,"_touchZoomDistanceStart",0),To(this,"_touchZoomDistanceEnd",0),To(this,"_panStart",new a.Vector2),To(this,"_panEnd",new a.Vector2),To(this,"target0"),To(this,"position0"),To(this,"up0"),To(this,"zoom0"),To(this,"changeEvent",{type:"change"}),To(this,"startEvent",{type:"start"}),To(this,"endEvent",{type:"end"}),To(this,"onScreenVector",new a.Vector2),To(this,"getMouseOnScreen",((e,t)=>(this.onScreenVector.set((e-this.screen.left)/this.screen.width,(t-this.screen.top)/this.screen.height),this.onScreenVector))),To(this,"onCircleVector",new a.Vector2),To(this,"getMouseOnCircle",((e,t)=>(this.onCircleVector.set((e-.5*this.screen.width-this.screen.left)/(.5*this.screen.width),(this.screen.height+2*(this.screen.top-t))/this.screen.width),this.onCircleVector))),To(this,"axis",new a.Vector3),To(this,"quaternion",new a.Quaternion),To(this,"eyeDirection",new a.Vector3),To(this,"objectUpDirection",new a.Vector3),To(this,"objectSidewaysDirection",new a.Vector3),To(this,"moveDirection",new a.Vector3),To(this,"angle",0),To(this,"rotateCamera",(()=>{this.moveDirection.set(this._moveCurr.x-this._movePrev.x,this._moveCurr.y-this._movePrev.y,0),this.angle=this.moveDirection.length(),this.angle?(this._eye.copy(this.object.position).sub(this.target),this.eyeDirection.copy(this._eye).normalize(),this.objectUpDirection.copy(this.object.up).normalize(),this.objectSidewaysDirection.crossVectors(this.objectUpDirection,this.eyeDirection).normalize(),this.objectUpDirection.setLength(this._moveCurr.y-this._movePrev.y),this.objectSidewaysDirection.setLength(this._moveCurr.x-this._movePrev.x),this.moveDirection.copy(this.objectUpDirection.add(this.objectSidewaysDirection)),this.axis.crossVectors(this.moveDirection,this._eye).normalize(),this.angle*=this.rotateSpeed,this.quaternion.setFromAxisAngle(this.axis,this.angle),this._eye.applyQuaternion(this.quaternion),this.object.up.applyQuaternion(this.quaternion),this._lastAxis.copy(this.axis),this._lastAngle=this.angle):!this.staticMoving&&this._lastAngle&&(this._lastAngle*=Math.sqrt(1-this.dynamicDampingFactor),this._eye.copy(this.object.position).sub(this.target),this.quaternion.setFromAxisAngle(this._lastAxis,this._lastAngle),this._eye.applyQuaternion(this.quaternion),this.object.up.applyQuaternion(this.quaternion)),this._movePrev.copy(this._moveCurr)})),To(this,"zoomCamera",(()=>{let e;if(this._state===this.STATE.TOUCH_ZOOM_PAN)e=this._touchZoomDistanceStart/this._touchZoomDistanceEnd,this._touchZoomDistanceStart=this._touchZoomDistanceEnd,this.object.isPerspectiveCamera?this._eye.multiplyScalar(e):this.object.isOrthographicCamera?(this.object.zoom/=e,this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type");else{if(e=1+(this._zoomEnd.y-this._zoomStart.y)*this.zoomSpeed,Math.abs(e-1)>this.EPS&&e>0&&(this.object.isPerspectiveCamera?(e>1&&this._eye.length()>=this.maxDistance-this.EPS&&(e=1),this._eye.multiplyScalar(e)):this.object.isOrthographicCamera?(e>1&&this.object.zoom{if(this.domElement&&(this.mouseChange.copy(this._panEnd).sub(this._panStart),this.mouseChange.lengthSq()>this.EPS)){if(this.object.isOrthographicCamera){const e=this.object,t=(e.right-e.left)/this.object.zoom,r=(e.top-e.bottom)/this.object.zoom;this.mouseChange.x*=t,this.mouseChange.y*=r}else this.mouseChange.multiplyScalar(this._eye.length()*this.panSpeed);this.pan.copy(this._eye).cross(this.object.up).setLength(this.mouseChange.x),this.pan.add(this.objectUp.copy(this.object.up).setLength(this.mouseChange.y)),this.object.position.add(this.pan),this.target.add(this.pan),this.staticMoving?this._panStart.copy(this._panEnd):this._panStart.add(this.mouseChange.subVectors(this._panEnd,this._panStart).multiplyScalar(this.dynamicDampingFactor))}})),To(this,"checkDistances",(()=>{this.noZoom&&this.noPan||(this._eye.lengthSq()>this.maxDistance*this.maxDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.maxDistance)),this._zoomStart.copy(this._zoomEnd)),this._eye.lengthSq(){if(!this.domElement)return;const e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height})),To(this,"update",(()=>{this._eye.subVectors(this.object.position,this.target),this.noRotate||this.rotateCamera(),this.noZoom||this.zoomCamera(),this.noPan||this.panCamera(),this.object.position.addVectors(this.target,this._eye),this.object.isPerspectiveCamera?(this.checkDistances(),this.object.lookAt(this.target),this.lastPosition.distanceToSquared(this.object.position)>this.EPS&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position))):this.object.isOrthographicCamera?(this.object.lookAt(this.target),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||this.lastZoom!==this.object.zoom)&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastZoom=this.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type")})),To(this,"reset",(()=>{this._state=this.STATE.NONE,this._keyState=this.STATE.NONE,this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.up.copy(this.up0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this._eye.subVectors(this.object.position,this.target),this.object.lookAt(this.target),this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastZoom=this.object.zoom})),To(this,"keydown",(e=>{!1!==this.enabled&&(window.removeEventListener("keydown",this.keydown),this._keyState===this.STATE.NONE&&(e.code!==this.keys[this.STATE.ROTATE]||this.noRotate?e.code!==this.keys[this.STATE.ZOOM]||this.noZoom?e.code!==this.keys[this.STATE.PAN]||this.noPan||(this._keyState=this.STATE.PAN):this._keyState=this.STATE.ZOOM:this._keyState=this.STATE.ROTATE))})),To(this,"onPointerDown",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseDown(e)}})),To(this,"onPointerMove",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseMove(e)}})),To(this,"onPointerUp",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseUp()}})),To(this,"keyup",(()=>{!1!==this.enabled&&(this._keyState=this.STATE.NONE,window.addEventListener("keydown",this.keydown))})),To(this,"onMouseDown",(e=>{if(!this.domElement)return;if(this._state===this.STATE.NONE)switch(e.button){case this.mouseButtons.LEFT:this._state=this.STATE.ROTATE;break;case this.mouseButtons.MIDDLE:this._state=this.STATE.ZOOM;break;case this.mouseButtons.RIGHT:this._state=this.STATE.PAN;break;default:this._state=this.STATE.NONE}const t=this._keyState!==this.STATE.NONE?this._keyState:this._state;t!==this.STATE.ROTATE||this.noRotate?t!==this.STATE.ZOOM||this.noZoom?t!==this.STATE.PAN||this.noPan||(this._panStart.copy(this.getMouseOnScreen(e.pageX,e.pageY)),this._panEnd.copy(this._panStart)):(this._zoomStart.copy(this.getMouseOnScreen(e.pageX,e.pageY)),this._zoomEnd.copy(this._zoomStart)):(this._moveCurr.copy(this.getMouseOnCircle(e.pageX,e.pageY)),this._movePrev.copy(this._moveCurr)),this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),this.dispatchEvent(this.startEvent)})),To(this,"onMouseMove",(e=>{if(!1===this.enabled)return;const t=this._keyState!==this.STATE.NONE?this._keyState:this._state;t!==this.STATE.ROTATE||this.noRotate?t!==this.STATE.ZOOM||this.noZoom?t!==this.STATE.PAN||this.noPan||this._panEnd.copy(this.getMouseOnScreen(e.pageX,e.pageY)):this._zoomEnd.copy(this.getMouseOnScreen(e.pageX,e.pageY)):(this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this.getMouseOnCircle(e.pageX,e.pageY)))})),To(this,"onMouseUp",(()=>{this.domElement&&!1!==this.enabled&&(this._state=this.STATE.NONE,this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),this.dispatchEvent(this.endEvent))})),To(this,"mousewheel",(e=>{if(!1!==this.enabled&&!0!==this.noZoom){switch(e.preventDefault(),e.deltaMode){case 2:this._zoomStart.y-=.025*e.deltaY;break;case 1:this._zoomStart.y-=.01*e.deltaY;break;default:this._zoomStart.y-=25e-5*e.deltaY}this.mousePosition.x=e.offsetX/this.screen.width*2-1,this.mousePosition.y=-e.offsetY/this.screen.height*2+1,this.dispatchEvent(this.startEvent),this.dispatchEvent(this.endEvent)}})),To(this,"touchstart",(e=>{if(!1!==this.enabled){if(e.preventDefault(),1===e.touches.length)this._state=this.STATE.TOUCH_ROTATE,this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY)),this._movePrev.copy(this._moveCurr);else{this._state=this.STATE.TOUCH_ZOOM_PAN;const t=e.touches[0].pageX-e.touches[1].pageX,r=e.touches[0].pageY-e.touches[1].pageY;this._touchZoomDistanceEnd=this._touchZoomDistanceStart=Math.sqrt(t*t+r*r);const n=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;this._panStart.copy(this.getMouseOnScreen(n,i)),this._panEnd.copy(this._panStart)}this.dispatchEvent(this.startEvent)}})),To(this,"touchmove",(e=>{if(!1!==this.enabled)if(e.preventDefault(),1===e.touches.length)this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY));else{const t=e.touches[0].pageX-e.touches[1].pageX,r=e.touches[0].pageY-e.touches[1].pageY;this._touchZoomDistanceEnd=Math.sqrt(t*t+r*r);const n=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;this._panEnd.copy(this.getMouseOnScreen(n,i))}})),To(this,"touchend",(e=>{if(!1!==this.enabled){switch(e.touches.length){case 0:this._state=this.STATE.NONE;break;case 1:this._state=this.STATE.TOUCH_ROTATE,this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY)),this._movePrev.copy(this._moveCurr)}this.dispatchEvent(this.endEvent)}})),To(this,"contextmenu",(e=>{!1!==this.enabled&&e.preventDefault()})),To(this,"connect",(e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.addEventListener("contextmenu",this.contextmenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("wheel",this.mousewheel),this.domElement.addEventListener("touchstart",this.touchstart),this.domElement.addEventListener("touchend",this.touchend),this.domElement.addEventListener("touchmove",this.touchmove),this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup),this.handleResize()})),To(this,"dispose",(()=>{this.domElement&&(this.domElement.removeEventListener("contextmenu",this.contextmenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("wheel",this.mousewheel),this.domElement.removeEventListener("touchstart",this.touchstart),this.domElement.removeEventListener("touchend",this.touchend),this.domElement.removeEventListener("touchmove",this.touchmove),this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup))})),this.object=e,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,void 0!==t&&this.connect(t),this.update()}}const Bo=i.forwardRef((({makeDefault:e,camera:t,domElement:r,regress:s,onChange:a,onStart:l,onEnd:c,...h},u)=>{const{invalidate:d,camera:p,gl:f,events:m,set:g,get:A,performance:v,viewport:y}=(0,o.useThree)(),x=t||p,b=r||m.connected||f.domElement,E=i.useMemo((()=>new Io(x)),[x]);return(0,o.useFrame)((()=>{E.enabled&&E.update()})),i.useEffect((()=>(E.connect(b),()=>{E.dispose()})),[b,s,E,d]),i.useEffect((()=>{const e=e=>{d(),s&&v.regress(),a&&a(e)};return E.addEventListener("change",e),l&&E.addEventListener("start",l),c&&E.addEventListener("end",c),()=>{l&&E.removeEventListener("start",l),c&&E.removeEventListener("end",c),E.removeEventListener("change",e)}}),[a,l,c]),i.useEffect((()=>{E.handleResize()}),[y]),i.useEffect((()=>{if(e){const e=A().controls;return g({controls:E}),()=>g({controls:e})}}),[e,E]),i.createElement("primitive",(0,n.Z)({ref:u,object:E},h))}));var Ro=Object.defineProperty,Po=(e,t,r)=>(((e,t,r)=>{t in e?Ro(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const Do={IDLE:Symbol(),ROTATE:Symbol(),PAN:Symbol(),SCALE:Symbol(),FOV:Symbol(),FOCUS:Symbol(),ZROTATE:Symbol(),TOUCH_MULTI:Symbol(),ANIMATION_FOCUS:Symbol(),ANIMATION_ROTATE:Symbol()},Lo={NONE:Symbol(),ONE_FINGER:Symbol(),ONE_FINGER_SWITCHED:Symbol(),TWO_FINGER:Symbol(),MULT_FINGER:Symbol(),CURSOR:Symbol()},Fo={x:0,y:0},Uo={camera:new a.Matrix4,gizmos:new a.Matrix4},Oo={type:"change"},No={type:"start"},ko={type:"end"};class Go extends a.EventDispatcher{constructor(e,t=null,r=null){super(),Po(this,"camera"),Po(this,"domElement"),Po(this,"scene"),Po(this,"mouseActions"),Po(this,"_mouseOp"),Po(this,"_v2_1"),Po(this,"_v3_1"),Po(this,"_v3_2"),Po(this,"_m4_1"),Po(this,"_m4_2"),Po(this,"_quat"),Po(this,"_translationMatrix"),Po(this,"_rotationMatrix"),Po(this,"_scaleMatrix"),Po(this,"_rotationAxis"),Po(this,"_cameraMatrixState"),Po(this,"_cameraProjectionState"),Po(this,"_fovState"),Po(this,"_upState"),Po(this,"_zoomState"),Po(this,"_nearPos"),Po(this,"_farPos"),Po(this,"_gizmoMatrixState"),Po(this,"_up0"),Po(this,"_zoom0"),Po(this,"_fov0"),Po(this,"_initialNear"),Po(this,"_nearPos0"),Po(this,"_initialFar"),Po(this,"_farPos0"),Po(this,"_cameraMatrixState0"),Po(this,"_gizmoMatrixState0"),Po(this,"_button"),Po(this,"_touchStart"),Po(this,"_touchCurrent"),Po(this,"_input"),Po(this,"_switchSensibility"),Po(this,"_startFingerDistance"),Po(this,"_currentFingerDistance"),Po(this,"_startFingerRotation"),Po(this,"_currentFingerRotation"),Po(this,"_devPxRatio"),Po(this,"_downValid"),Po(this,"_nclicks"),Po(this,"_downEvents"),Po(this,"_clickStart"),Po(this,"_maxDownTime"),Po(this,"_maxInterval"),Po(this,"_posThreshold"),Po(this,"_movementThreshold"),Po(this,"_currentCursorPosition"),Po(this,"_startCursorPosition"),Po(this,"_grid"),Po(this,"_gridPosition"),Po(this,"_gizmos"),Po(this,"_curvePts"),Po(this,"_timeStart"),Po(this,"_animationId"),Po(this,"focusAnimationTime"),Po(this,"_timePrev"),Po(this,"_timeCurrent"),Po(this,"_anglePrev"),Po(this,"_angleCurrent"),Po(this,"_cursorPosPrev"),Po(this,"_cursorPosCurr"),Po(this,"_wPrev"),Po(this,"_wCurr"),Po(this,"adjustNearFar"),Po(this,"scaleFactor"),Po(this,"dampingFactor"),Po(this,"wMax"),Po(this,"enableAnimations"),Po(this,"enableGrid"),Po(this,"cursorZoom"),Po(this,"minFov"),Po(this,"maxFov"),Po(this,"enabled"),Po(this,"enablePan"),Po(this,"enableRotate"),Po(this,"enableZoom"),Po(this,"minDistance"),Po(this,"maxDistance"),Po(this,"minZoom"),Po(this,"maxZoom"),Po(this,"target"),Po(this,"_currentTarget"),Po(this,"_tbRadius"),Po(this,"_state"),Po(this,"onWindowResize",(()=>{const e=(this._gizmos.scale.x+this._gizmos.scale.y+this._gizmos.scale.z)/3;if(this.camera){const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e)}const t=this._tbRadius/e,r=new a.EllipseCurve(0,0,t,t).getPoints(this._curvePts),n=(new a.BufferGeometry).setFromPoints(r);for(const i in this._gizmos.children){this._gizmos.children[i].geometry=n}this.dispatchEvent(Oo)})),Po(this,"onContextMenu",(e=>{if(this.enabled)for(let t=0;t{this._touchStart.splice(0,this._touchStart.length),this._touchCurrent.splice(0,this._touchCurrent.length),this._input=Lo.NONE})),Po(this,"onPointerDown",(e=>{if(0==e.button&&e.isPrimary?(this._downValid=!0,this._downEvents.push(e)):this._downValid=!1,"touch"==e.pointerType&&this._input!=Lo.CURSOR)switch(this._touchStart.push(e),this._touchCurrent.push(e),this._input){case Lo.NONE:this._input=Lo.ONE_FINGER,this.onSinglePanStart(e,"ROTATE"),window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp);break;case Lo.ONE_FINGER:case Lo.ONE_FINGER_SWITCHED:this._input=Lo.TWO_FINGER,this.onRotateStart(),this.onPinchStart(),this.onDoublePanStart();break;case Lo.TWO_FINGER:this._input=Lo.MULT_FINGER,this.onTriplePanStart()}else if("touch"!=e.pointerType&&this._input==Lo.NONE){let t=null;e.ctrlKey||e.metaKey?t="CTRL":e.shiftKey&&(t="SHIFT"),this._mouseOp=this.getOpFromAction(e.button,t),this._mouseOp&&(window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp),this._input=Lo.CURSOR,this._button=e.button,this.onSinglePanStart(e,this._mouseOp))}})),Po(this,"onPointerMove",(e=>{if("touch"==e.pointerType&&this._input!=Lo.CURSOR)switch(this._input){case Lo.ONE_FINGER:this.updateTouchEvent(e),this.onSinglePanMove(e,Do.ROTATE);break;case Lo.ONE_FINGER_SWITCHED:if(this.calculatePointersDistance(this._touchCurrent[0],e)*this._devPxRatio>=this._switchSensibility){this._input=Lo.ONE_FINGER,this.updateTouchEvent(e),this.onSinglePanStart(e,"ROTATE");break}break;case Lo.TWO_FINGER:this.updateTouchEvent(e),this.onRotateMove(),this.onPinchMove(),this.onDoublePanMove();break;case Lo.MULT_FINGER:this.updateTouchEvent(e),this.onTriplePanMove()}else if("touch"!=e.pointerType&&this._input==Lo.CURSOR){let t=null;e.ctrlKey||e.metaKey?t="CTRL":e.shiftKey&&(t="SHIFT");const r=this.getOpStateFromAction(this._button,t);r&&this.onSinglePanMove(e,r)}if(this._downValid){this.calculatePointersDistance(this._downEvents[this._downEvents.length-1],e)*this._devPxRatio>this._movementThreshold&&(this._downValid=!1)}})),Po(this,"onPointerUp",(e=>{if("touch"==e.pointerType&&this._input!=Lo.CURSOR){const t=this._touchCurrent.length;for(let r=0;r{var t,r;if(this.enabled&&this.enableZoom&&this.domElement){let n=null;e.ctrlKey||e.metaKey?n="CTRL":e.shiftKey&&(n="SHIFT");const i=this.getOpFromAction("WHEEL",n);if(i){e.preventDefault(),this.dispatchEvent(No);const n=125;let s=e.deltaY/n,o=1;switch(s>0?o=1/this.scaleFactor:s<0&&(o=this.scaleFactor),i){case"ZOOM":if(this.updateTbState(Do.SCALE,!0),s>0?o=1/Math.pow(this.scaleFactor,s):s<0&&(o=Math.pow(this.scaleFactor,-s)),this.cursorZoom&&this.enablePan){let n;this.camera instanceof a.OrthographicCamera&&(n=null==(t=this.unprojectOnTbPlane(this.camera,e.clientX,e.clientY,this.domElement))?void 0:t.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._gizmos.position)),this.camera instanceof a.PerspectiveCamera&&(n=null==(r=this.unprojectOnTbPlane(this.camera,e.clientX,e.clientY,this.domElement))?void 0:r.applyQuaternion(this.camera.quaternion).add(this._gizmos.position)),void 0!==n&&this.applyTransformMatrix(this.applyScale(o,n))}else this.applyTransformMatrix(this.applyScale(o,this._gizmos.position));this._grid&&(this.disposeGrid(),this.drawGrid()),this.updateTbState(Do.IDLE,!1),this.dispatchEvent(Oo),this.dispatchEvent(ko);break;case"FOV":if(this.camera instanceof a.PerspectiveCamera){this.updateTbState(Do.FOV,!0),0!=e.deltaX&&(s=e.deltaX/n,o=1,s>0?o=1/Math.pow(this.scaleFactor,s):s<0&&(o=Math.pow(this.scaleFactor,-s))),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const t=this._v3_1.distanceTo(this._gizmos.position);let r=t/o;r=a.MathUtils.clamp(r,this.minDistance,this.maxDistance);const i=t*Math.tan(a.MathUtils.DEG2RAD*this.camera.fov*.5);let l=a.MathUtils.RAD2DEG*(2*Math.atan(i/r));l>this.maxFov?l=this.maxFov:l{if(this.enabled&&this.domElement)switch(this.dispatchEvent(No),this.setCenter(e.clientX,e.clientY),t){case"PAN":if(!this.enablePan)return;if(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(Oo)),this.camera){this.updateTbState(Do.PAN,!0);const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&(this.drawGrid(),this.dispatchEvent(Oo))}break;case"ROTATE":if(!this.enableRotate)return;if(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1),this.camera){this.updateTbState(Do.ROTATE,!0);const e=this.unprojectOnTbSurface(this.camera,Fo.x,Fo.y,this.domElement,this._tbRadius);void 0!==e&&this._startCursorPosition.copy(e),this.activateGizmos(!0),this.enableAnimations&&(this._timePrev=this._timeCurrent=performance.now(),this._angleCurrent=this._anglePrev=0,this._cursorPosPrev.copy(this._startCursorPosition),this._cursorPosCurr.copy(this._cursorPosPrev),this._wCurr=0,this._wPrev=this._wCurr)}this.dispatchEvent(Oo);break;case"FOV":if(!this.enableZoom)return;this.camera instanceof a.PerspectiveCamera&&(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(Oo)),this.updateTbState(Do.FOV,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition));break;case"ZOOM":if(!this.enableZoom)return;-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(Oo)),this.updateTbState(Do.SCALE,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition)}})),Po(this,"onSinglePanMove",((e,t)=>{if(this.enabled&&this.domElement){const r=t!=this._state;switch(this.setCenter(e.clientX,e.clientY),t){case Do.PAN:if(this.enablePan&&this.camera)if(r){this.dispatchEvent(ko),this.dispatchEvent(No),this.updateTbState(t,!0);const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&this.drawGrid(),this.activateGizmos(!1)}else{const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement);void 0!==e&&this._currentCursorPosition.copy(e),this.applyTransformMatrix(this.pan(this._startCursorPosition,this._currentCursorPosition))}break;case Do.ROTATE:if(this.enableRotate&&this.camera)if(r){this.dispatchEvent(ko),this.dispatchEvent(No),this.updateTbState(t,!0);const e=this.unprojectOnTbSurface(this.camera,Fo.x,Fo.y,this.domElement,this._tbRadius);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!0)}else{const e=this.unprojectOnTbSurface(this.camera,Fo.x,Fo.y,this.domElement,this._tbRadius);void 0!==e&&this._currentCursorPosition.copy(e);const t=this._startCursorPosition.distanceTo(this._currentCursorPosition),r=this._startCursorPosition.angleTo(this._currentCursorPosition),n=Math.max(t/this._tbRadius,r);this.applyTransformMatrix(this.rotate(this.calculateRotationAxis(this._startCursorPosition,this._currentCursorPosition),n)),this.enableAnimations&&(this._timePrev=this._timeCurrent,this._timeCurrent=performance.now(),this._anglePrev=this._angleCurrent,this._angleCurrent=n,this._cursorPosPrev.copy(this._cursorPosCurr),this._cursorPosCurr.copy(this._currentCursorPosition),this._wPrev=this._wCurr,this._wCurr=this.calculateAngularSpeed(this._anglePrev,this._angleCurrent,this._timePrev,this._timeCurrent))}break;case Do.SCALE:if(this.enableZoom)if(r)this.dispatchEvent(ko),this.dispatchEvent(No),this.updateTbState(t,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1);else{const e=8;this._currentCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y);const t=this._currentCursorPosition.y-this._startCursorPosition.y;let r=1;t<0?r=1/Math.pow(this.scaleFactor,-t*e):t>0&&(r=Math.pow(this.scaleFactor,t*e)),this.applyTransformMatrix(this.applyScale(r,this._gizmos.position))}break;case Do.FOV:if(this.enableZoom&&this.camera instanceof a.PerspectiveCamera)if(r)this.dispatchEvent(ko),this.dispatchEvent(No),this.updateTbState(t,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1);else{const e=8;this._currentCursorPosition.setY(.5*this.getCursorNDC(Fo.x,Fo.y,this.domElement).y);const t=this._currentCursorPosition.y-this._startCursorPosition.y;let r=1;t<0?r=1/Math.pow(this.scaleFactor,-t*e):t>0&&(r=Math.pow(this.scaleFactor,t*e)),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const n=this._v3_1.distanceTo(this._gizmos.position);let i=n/r;i=a.MathUtils.clamp(i,this.minDistance,this.maxDistance);const s=n*Math.tan(a.MathUtils.DEG2RAD*this._fovState*.5);let o=a.MathUtils.RAD2DEG*(2*Math.atan(s/i));o=a.MathUtils.clamp(o,this.minFov,this.maxFov);const l=s/Math.tan(a.MathUtils.DEG2RAD*(o/2));r=n/l,this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),this.setFov(o),this.applyTransformMatrix(this.applyScale(r,this._v3_2,!1));const c=this._gizmos.position.clone().sub(this.camera.position).normalize().multiplyScalar(l/n);this._m4_1.makeTranslation(c.x,c.y,c.z)}}this.dispatchEvent(Oo)}})),Po(this,"onSinglePanEnd",(()=>{if(this._state==Do.ROTATE){if(!this.enableRotate)return;if(this.enableAnimations){if(performance.now()-this._timeCurrent<120){const e=Math.abs((this._wPrev+this._wCurr)/2),t=this;this._animationId=window.requestAnimationFrame((function(r){t.updateTbState(Do.ANIMATION_ROTATE,!0);const n=t.calculateRotationAxis(t._cursorPosPrev,t._cursorPosCurr);t.onRotationAnim(r,n,Math.min(e,t.wMax))}))}else this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(Oo)}else this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(Oo)}else this._state!=Do.PAN&&this._state!=Do.IDLE||(this.updateTbState(Do.IDLE,!1),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1),this.dispatchEvent(Oo));this.dispatchEvent(ko)})),Po(this,"onDoubleTap",(e=>{if(this.enabled&&this.enablePan&&this.scene&&this.camera&&this.domElement){this.dispatchEvent(No),this.setCenter(e.clientX,e.clientY);const t=this.unprojectOnObj(this.getCursorNDC(Fo.x,Fo.y,this.domElement),this.camera);if(t&&this.enableAnimations){const e=this;-1!=this._animationId&&window.cancelAnimationFrame(this._animationId),this._timeStart=-1,this._animationId=window.requestAnimationFrame((function(r){e.updateTbState(Do.ANIMATION_FOCUS,!0),e.onFocusAnim(r,t,e._cameraMatrixState,e._gizmoMatrixState)}))}else t&&!this.enableAnimations&&(this.updateTbState(Do.FOCUS,!0),this.focus(t,this.scaleFactor),this.updateTbState(Do.IDLE,!1),this.dispatchEvent(Oo))}this.dispatchEvent(ko)})),Po(this,"onDoublePanStart",(()=>{if(this.enabled&&this.enablePan&&this.camera&&this.domElement){this.dispatchEvent(No),this.updateTbState(Do.PAN,!0),this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2);const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement,!0);void 0!==e&&this._startCursorPosition.copy(e),this._currentCursorPosition.copy(this._startCursorPosition),this.activateGizmos(!1)}})),Po(this,"onDoublePanMove",(()=>{if(this.enabled&&this.enablePan&&this.camera&&this.domElement){this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2),this._state!=Do.PAN&&(this.updateTbState(Do.PAN,!0),this._startCursorPosition.copy(this._currentCursorPosition));const e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement,!0);void 0!==e&&this._currentCursorPosition.copy(e),this.applyTransformMatrix(this.pan(this._startCursorPosition,this._currentCursorPosition,!0)),this.dispatchEvent(Oo)}})),Po(this,"onDoublePanEnd",(()=>{this.updateTbState(Do.IDLE,!1),this.dispatchEvent(ko)})),Po(this,"onRotateStart",(()=>{var e;this.enabled&&this.enableRotate&&(this.dispatchEvent(No),this.updateTbState(Do.ZROTATE,!0),this._startFingerRotation=this.getAngle(this._touchCurrent[1],this._touchCurrent[0])+this.getAngle(this._touchStart[1],this._touchStart[0]),this._currentFingerRotation=this._startFingerRotation,null==(e=this.camera)||e.getWorldDirection(this._rotationAxis),this.enablePan||this.enableZoom||this.activateGizmos(!0))})),Po(this,"onRotateMove",(()=>{var e;if(this.enabled&&this.enableRotate&&this.camera&&this.domElement){let t;this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2),this._state!=Do.ZROTATE&&(this.updateTbState(Do.ZROTATE,!0),this._startFingerRotation=this._currentFingerRotation),this._currentFingerRotation=this.getAngle(this._touchCurrent[1],this._touchCurrent[0])+this.getAngle(this._touchStart[1],this._touchStart[0]),this.enablePan?this.camera&&(this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),t=null==(e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement))?void 0:e.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._v3_2)):t=(new a.Vector3).setFromMatrixPosition(this._gizmoMatrixState);const r=a.MathUtils.DEG2RAD*(this._startFingerRotation-this._currentFingerRotation);void 0!==t&&this.applyTransformMatrix(this.zRotate(t,r)),this.dispatchEvent(Oo)}})),Po(this,"onRotateEnd",(()=>{this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(ko)})),Po(this,"onPinchStart",(()=>{this.enabled&&this.enableZoom&&(this.dispatchEvent(No),this.updateTbState(Do.SCALE,!0),this._startFingerDistance=this.calculatePointersDistance(this._touchCurrent[0],this._touchCurrent[1]),this._currentFingerDistance=this._startFingerDistance,this.activateGizmos(!1))})),Po(this,"onPinchMove",(()=>{var e,t;if(this.enabled&&this.enableZoom&&this.domElement){this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2);const r=12;this._state!=Do.SCALE&&(this._startFingerDistance=this._currentFingerDistance,this.updateTbState(Do.SCALE,!0)),this._currentFingerDistance=Math.max(this.calculatePointersDistance(this._touchCurrent[0],this._touchCurrent[1]),r*this._devPxRatio);const n=this._currentFingerDistance/this._startFingerDistance;let i;this.enablePan?this.camera instanceof a.OrthographicCamera?i=null==(e=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement))?void 0:e.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._gizmos.position):this.camera instanceof a.PerspectiveCamera&&(i=null==(t=this.unprojectOnTbPlane(this.camera,Fo.x,Fo.y,this.domElement))?void 0:t.applyQuaternion(this.camera.quaternion).add(this._gizmos.position)):i=this._gizmos.position,void 0!==i&&this.applyTransformMatrix(this.applyScale(n,i)),this.dispatchEvent(Oo)}})),Po(this,"onPinchEnd",(()=>{this.updateTbState(Do.IDLE,!1),this.dispatchEvent(ko)})),Po(this,"onTriplePanStart",(()=>{if(this.enabled&&this.enableZoom&&this.domElement){this.dispatchEvent(No),this.updateTbState(Do.SCALE,!0);let e=0,t=0;const r=this._touchCurrent.length;for(let n=0;n{if(this.enabled&&this.enableZoom&&this.camera&&this.domElement){let e=0,t=0;const r=this._touchCurrent.length;for(let a=0;a0&&(s=Math.pow(this.scaleFactor,i*n)),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const o=this._v3_1.distanceTo(this._gizmos.position);let l=o/s;l=a.MathUtils.clamp(l,this.minDistance,this.maxDistance);const c=o*Math.tan(a.MathUtils.DEG2RAD*this._fovState*.5);let h=a.MathUtils.RAD2DEG*(2*Math.atan(c/l));h=a.MathUtils.clamp(h,this.minFov,this.maxFov);const u=c/Math.tan(a.MathUtils.DEG2RAD*(h/2));s=o/u,this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),this.setFov(h),this.applyTransformMatrix(this.applyScale(s,this._v3_2,!1));const d=this._gizmos.position.clone().sub(this.camera.position).normalize().multiplyScalar(u/o);this._m4_1.makeTranslation(d.x,d.y,d.z),this.dispatchEvent(Oo)}})),Po(this,"onTriplePanEnd",(()=>{this.updateTbState(Do.IDLE,!1),this.dispatchEvent(ko)})),Po(this,"setCenter",((e,t)=>{Fo.x=e,Fo.y=t})),Po(this,"initializeMouseActions",(()=>{this.setMouseAction("PAN",0,"CTRL"),this.setMouseAction("PAN",2),this.setMouseAction("ROTATE",0),this.setMouseAction("ZOOM","WHEEL"),this.setMouseAction("ZOOM",1),this.setMouseAction("FOV","WHEEL","SHIFT"),this.setMouseAction("FOV",1,"SHIFT")})),Po(this,"setMouseAction",((e,t,r=null)=>{let n;if(!["PAN","ROTATE","ZOOM","FOV"].includes(e)||![0,1,2,"WHEEL"].includes(t)||!["CTRL","SHIFT",null].includes(r))return!1;if("WHEEL"==t&&"ZOOM"!=e&&"FOV"!=e)return!1;switch(e){case"PAN":n=Do.PAN;break;case"ROTATE":n=Do.ROTATE;break;case"ZOOM":n=Do.SCALE;break;case"FOV":n=Do.FOV}const i={operation:e,mouse:t,key:r,state:n};for(let s=0;s{let r;for(let n=0;n{let r;for(let n=0;n180*Math.atan2(t.clientY-e.clientY,t.clientX-e.clientX)/Math.PI)),Po(this,"updateTouchEvent",(e=>{for(let t=0;t{const i=(n-r)/1e3;return 0==i?0:(t-e)/i})),Po(this,"calculatePointersDistance",((e,t)=>Math.sqrt(Math.pow(t.clientX-e.clientX,2)+Math.pow(t.clientY-e.clientY,2)))),Po(this,"calculateRotationAxis",((e,t)=>(this._rotationMatrix.extractRotation(this._cameraMatrixState),this._quat.setFromRotationMatrix(this._rotationMatrix),this._rotationAxis.crossVectors(e,t).applyQuaternion(this._quat),this._rotationAxis.normalize().clone()))),Po(this,"calculateTbRadius",(e=>{const t=e.position.distanceTo(this._gizmos.position);if(e instanceof a.PerspectiveCamera){const r=a.MathUtils.DEG2RAD*e.fov*.5,n=Math.atan(e.aspect*Math.tan(r));return Math.tan(Math.min(r,n))*t*.67}if(e instanceof a.OrthographicCamera)return.67*Math.min(e.top,e.right)})),Po(this,"focus",((e,t,r=1)=>{if(this.camera){const n=e.clone();n.sub(this._gizmos.position).multiplyScalar(r),this._translationMatrix.makeTranslation(n.x,n.y,n.z);const i=this._gizmoMatrixState.clone();this._gizmoMatrixState.premultiply(this._translationMatrix),this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale);const s=this._cameraMatrixState.clone();this._cameraMatrixState.premultiply(this._translationMatrix),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.enableZoom&&this.applyTransformMatrix(this.applyScale(t,this._gizmos.position)),this._gizmoMatrixState.copy(i),this._cameraMatrixState.copy(s)}})),Po(this,"drawGrid",(()=>{if(this.scene){const e=8947848,t=3;let r,n,i,s;if(this.camera instanceof a.OrthographicCamera){const e=this.camera.right-this.camera.left,a=this.camera.bottom-this.camera.top;i=Math.max(e,a),s=i/20,r=i/this.camera.zoom*t,n=r/s*this.camera.zoom}else if(this.camera instanceof a.PerspectiveCamera){const e=this.camera.position.distanceTo(this._gizmos.position),o=a.MathUtils.DEG2RAD*this.camera.fov*.5,l=Math.atan(this.camera.aspect*Math.tan(o));i=Math.tan(Math.max(o,l))*e*2,s=i/20,r=i*t,n=r/s}null==this._grid&&this.camera&&(this._grid=new a.GridHelper(r,n,e,e),this._grid.position.copy(this._gizmos.position),this._gridPosition.copy(this._grid.position),this._grid.quaternion.copy(this.camera.quaternion),this._grid.rotateX(.5*Math.PI),this.scene.add(this._grid))}})),Po(this,"connect",(e=>{e===document&&console.error('THREE.ArcballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.style.touchAction="none",this.domElement.addEventListener("contextmenu",this.onContextMenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointercancel",this.onPointerCancel),this.domElement.addEventListener("wheel",this.onWheel)})),Po(this,"dispose",(()=>{var e,t,r,n,i;-1!=this._animationId&&window.cancelAnimationFrame(this._animationId),null==(e=this.domElement)||e.removeEventListener("pointerdown",this.onPointerDown),null==(t=this.domElement)||t.removeEventListener("pointercancel",this.onPointerCancel),null==(r=this.domElement)||r.removeEventListener("wheel",this.onWheel),null==(n=this.domElement)||n.removeEventListener("contextmenu",this.onContextMenu),window.removeEventListener("pointermove",this.onPointerMove),window.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("resize",this.onWindowResize),null==(i=this.scene)||i.remove(this._gizmos),this.disposeGrid()})),Po(this,"disposeGrid",(()=>{this._grid&&this.scene&&(this.scene.remove(this._grid),this._grid=null)})),Po(this,"easeOutCubic",(e=>1-Math.pow(1-e,3))),Po(this,"activateGizmos",(e=>{for(const t of this._gizmos.children)t.material.setValues({opacity:e?1:.6})})),Po(this,"getCursorNDC",((e,t,r)=>{const n=r.getBoundingClientRect();return this._v2_1.setX((e-n.left)/n.width*2-1),this._v2_1.setY((n.bottom-t)/n.height*2-1),this._v2_1.clone()})),Po(this,"getCursorPosition",((e,t,r)=>(this._v2_1.copy(this.getCursorNDC(e,t,r)),this.camera instanceof a.OrthographicCamera&&(this._v2_1.x*=.5*(this.camera.right-this.camera.left),this._v2_1.y*=.5*(this.camera.top-this.camera.bottom)),this._v2_1.clone()))),Po(this,"setCamera",(e=>{if(e){e.lookAt(this.target),e.updateMatrix(),e instanceof a.PerspectiveCamera&&(this._fov0=e.fov,this._fovState=e.fov),this._cameraMatrixState0.copy(e.matrix),this._cameraMatrixState.copy(this._cameraMatrixState0),this._cameraProjectionState.copy(e.projectionMatrix),this._zoom0=e.zoom,this._zoomState=this._zoom0,this._initialNear=e.near,this._nearPos0=e.position.distanceTo(this.target)-e.near,this._nearPos=this._initialNear,this._initialFar=e.far,this._farPos0=e.position.distanceTo(this.target)-e.far,this._farPos=this._initialFar,this._up0.copy(e.up),this._upState.copy(e.up),this.camera=e,this.camera.updateProjectionMatrix();const t=this.calculateTbRadius(e);void 0!==t&&(this._tbRadius=t),this.makeGizmos(this.target,this._tbRadius)}})),Po(this,"makeGizmos",((e,t)=>{const r=new a.EllipseCurve(0,0,t,t).getPoints(this._curvePts),n=(new a.BufferGeometry).setFromPoints(r),i=new a.LineBasicMaterial({color:16744576,fog:!1,transparent:!0,opacity:.6}),s=new a.LineBasicMaterial({color:8454016,fog:!1,transparent:!0,opacity:.6}),o=new a.LineBasicMaterial({color:8421631,fog:!1,transparent:!0,opacity:.6}),l=new a.Line(n,i),c=new a.Line(n,s),h=new a.Line(n,o),u=.5*Math.PI;if(l.rotation.x=u,c.rotation.y=u,this._gizmoMatrixState0.identity().setPosition(e),this._gizmoMatrixState.copy(this._gizmoMatrixState0),this.camera&&1!=this.camera.zoom){const t=1/this.camera.zoom;this._scaleMatrix.makeScale(t,t,t),this._translationMatrix.makeTranslation(-e.x,-e.y,-e.z),this._gizmoMatrixState.premultiply(this._translationMatrix).premultiply(this._scaleMatrix),this._translationMatrix.makeTranslation(e.x,e.y,e.z),this._gizmoMatrixState.premultiply(this._translationMatrix)}this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.clear(),this._gizmos.add(l),this._gizmos.add(c),this._gizmos.add(h)})),Po(this,"onFocusAnim",((e,t,r,n)=>{if(-1==this._timeStart&&(this._timeStart=e),this._state==Do.ANIMATION_FOCUS){const i=(e-this._timeStart)/this.focusAnimationTime;if(this._gizmoMatrixState.copy(n),i>=1)this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.focus(t,this.scaleFactor),this._timeStart=-1,this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(Oo);else{const e=this.easeOutCubic(i),s=1-e+this.scaleFactor*e;this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.focus(t,s,e),this.dispatchEvent(Oo);const a=this;this._animationId=window.requestAnimationFrame((function(e){a.onFocusAnim(e,t,r,n.clone())}))}}else this._animationId=-1,this._timeStart=-1})),Po(this,"onRotationAnim",((e,t,r)=>{if(-1==this._timeStart&&(this._anglePrev=0,this._angleCurrent=0,this._timeStart=e),this._state==Do.ANIMATION_ROTATE){const n=(e-this._timeStart)/1e3;if(r+-this.dampingFactor*n>0){this._angleCurrent=.5*-this.dampingFactor*Math.pow(n,2)+r*n+0,this.applyTransformMatrix(this.rotate(t,this._angleCurrent)),this.dispatchEvent(Oo);const e=this;this._animationId=window.requestAnimationFrame((function(n){e.onRotationAnim(n,t,r)}))}else this._animationId=-1,this._timeStart=-1,this.updateTbState(Do.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(Oo)}else this._animationId=-1,this._timeStart=-1,this._state!=Do.ROTATE&&(this.activateGizmos(!1),this.dispatchEvent(Oo))})),Po(this,"pan",((e,t,r=!1)=>{if(this.camera){const n=e.clone().sub(t);if(this.camera instanceof a.OrthographicCamera&&n.multiplyScalar(1/this.camera.zoom),this.camera instanceof a.PerspectiveCamera&&r){this._v3_1.setFromMatrixPosition(this._cameraMatrixState0),this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0);const e=this._v3_1.distanceTo(this._v3_2)/this.camera.position.distanceTo(this._gizmos.position);n.multiplyScalar(1/e)}this._v3_1.set(n.x,n.y,0).applyQuaternion(this.camera.quaternion),this._m4_1.makeTranslation(this._v3_1.x,this._v3_1.y,this._v3_1.z),this.setTransformationMatrices(this._m4_1,this._m4_1)}return Uo})),Po(this,"reset",(()=>{if(this.camera){this.camera.zoom=this._zoom0,this.camera instanceof a.PerspectiveCamera&&(this.camera.fov=this._fov0),this.camera.near=this._nearPos,this.camera.far=this._farPos,this._cameraMatrixState.copy(this._cameraMatrixState0),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.up.copy(this._up0),this.camera.updateMatrix(),this.camera.updateProjectionMatrix(),this._gizmoMatrixState.copy(this._gizmoMatrixState0),this._gizmoMatrixState0.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.updateMatrix();const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e),this.makeGizmos(this._gizmos.position,this._tbRadius),this.camera.lookAt(this._gizmos.position),this.updateTbState(Do.IDLE,!1),this.dispatchEvent(Oo)}})),Po(this,"rotate",((e,t)=>{const r=this._gizmos.position;return this._translationMatrix.makeTranslation(-r.x,-r.y,-r.z),this._rotationMatrix.makeRotationAxis(e,-t),this._m4_1.makeTranslation(r.x,r.y,r.z),this._m4_1.multiply(this._rotationMatrix),this._m4_1.multiply(this._translationMatrix),this.setTransformationMatrices(this._m4_1),Uo})),Po(this,"copyState",(()=>{if(this.camera){const e=JSON.stringify(this.camera instanceof a.OrthographicCamera?{arcballState:{cameraFar:this.camera.far,cameraMatrix:this.camera.matrix,cameraNear:this.camera.near,cameraUp:this.camera.up,cameraZoom:this.camera.zoom,gizmoMatrix:this._gizmos.matrix}}:{arcballState:{cameraFar:this.camera.far,cameraFov:this.camera.fov,cameraMatrix:this.camera.matrix,cameraNear:this.camera.near,cameraUp:this.camera.up,cameraZoom:this.camera.zoom,gizmoMatrix:this._gizmos.matrix}});navigator.clipboard.writeText(e)}})),Po(this,"pasteState",(()=>{const e=this;navigator.clipboard.readText().then((function(t){e.setStateFromJSON(t)}))})),Po(this,"saveState",(()=>{this.camera&&(this._cameraMatrixState0.copy(this.camera.matrix),this._gizmoMatrixState0.copy(this._gizmos.matrix),this._nearPos=this.camera.near,this._farPos=this.camera.far,this._zoom0=this.camera.zoom,this._up0.copy(this.camera.up),this.camera instanceof a.PerspectiveCamera&&(this._fov0=this.camera.fov))})),Po(this,"applyScale",((e,t,r=!0)=>{if(!this.camera)return;const n=t.clone();let i=1/e;if(this.camera instanceof a.OrthographicCamera){this.camera.zoom=this._zoomState,this.camera.zoom*=e,this.camera.zoom>this.maxZoom?(this.camera.zoom=this.maxZoom,i=this._zoomState/this.maxZoom):this.camera.zoomthis.maxDistance&&(i=this.maxDistance/e,t=e-e*i);let a=n.clone().sub(this._v3_1).normalize().multiplyScalar(t);if(this._m4_1.makeTranslation(a.x,a.y,a.z),r){const r=this._v3_2;e=r.distanceTo(n),t=e-e*i,a=n.clone().sub(this._v3_2).normalize().multiplyScalar(t),this._translationMatrix.makeTranslation(r.x,r.y,r.z),this._scaleMatrix.makeScale(i,i,i),this._m4_2.makeTranslation(a.x,a.y,a.z).multiply(this._translationMatrix),this._m4_2.multiply(this._scaleMatrix),this._translationMatrix.makeTranslation(-r.x,-r.y,-r.z),this._m4_2.multiply(this._translationMatrix),this.setTransformationMatrices(this._m4_1,this._m4_2)}else this.setTransformationMatrices(this._m4_1);return Uo}})),Po(this,"setFov",(e=>{this.camera instanceof a.PerspectiveCamera&&(this.camera.fov=a.MathUtils.clamp(e,this.minFov,this.maxFov),this.camera.updateProjectionMatrix())})),Po(this,"setTarget",((e,t,r)=>{if(this.camera){this.target.set(e,t,r),this._gizmos.position.set(e,t,r);const n=this.calculateTbRadius(this.camera);void 0!==n&&(this._tbRadius=n),this.makeGizmos(this.target,this._tbRadius),this.camera.lookAt(this.target)}})),Po(this,"zRotate",((e,t)=>(this._rotationMatrix.makeRotationAxis(this._rotationAxis,t),this._translationMatrix.makeTranslation(-e.x,-e.y,-e.z),this._m4_1.makeTranslation(e.x,e.y,e.z),this._m4_1.multiply(this._rotationMatrix),this._m4_1.multiply(this._translationMatrix),this._v3_1.setFromMatrixPosition(this._gizmoMatrixState).sub(e),this._v3_2.copy(this._v3_1).applyAxisAngle(this._rotationAxis,t),this._v3_2.sub(this._v3_1),this._m4_2.makeTranslation(this._v3_2.x,this._v3_2.y,this._v3_2.z),this.setTransformationMatrices(this._m4_1,this._m4_2),Uo))),Po(this,"unprojectOnObj",((e,t)=>{if(!this.scene)return null;const r=new a.Raycaster;r.near=t.near,r.far=t.far,r.setFromCamera(e,t);const n=r.intersectObjects(this.scene.children,!0);for(let i=0;i{if(e instanceof a.OrthographicCamera){this._v2_1.copy(this.getCursorPosition(t,r,n)),this._v3_1.set(this._v2_1.x,this._v2_1.y,0);const e=Math.pow(this._v2_1.x,2),i=Math.pow(this._v2_1.y,2),s=Math.pow(this._tbRadius,2);return e+i<=.5*s?this._v3_1.setZ(Math.sqrt(s-(e+i))):this._v3_1.setZ(.5*s/Math.sqrt(e+i)),this._v3_1}if(e instanceof a.PerspectiveCamera){this._v2_1.copy(this.getCursorNDC(t,r,n)),this._v3_1.set(this._v2_1.x,this._v2_1.y,-1),this._v3_1.applyMatrix4(e.projectionMatrixInverse);const s=this._v3_1.clone().normalize(),o=e.position.distanceTo(this._gizmos.position),l=Math.pow(i,2),c=this._v3_1.z,h=Math.sqrt(Math.pow(this._v3_1.x,2)+Math.pow(this._v3_1.y,2));if(0==h)return s.set(this._v3_1.x,this._v3_1.y,i),s;const u=c/h,d=o;let p=Math.pow(u,2)+1,f=2*u*d,m=Math.pow(d,2)-l,g=Math.pow(f,2)-4*p*m;if(g>=0){this._v2_1.setX((-f-Math.sqrt(g))/(2*p)),this._v2_1.setY(u*this._v2_1.x+d);if(a.MathUtils.RAD2DEG*this._v2_1.angle()>=45){const e=Math.sqrt(Math.pow(this._v2_1.x,2)+Math.pow(o-this._v2_1.y,2));return s.multiplyScalar(e),s.z+=o,s}}p=u,f=d,m=.5*-l,g=Math.pow(f,2)-4*p*m,this._v2_1.setX((-f-Math.sqrt(g))/(2*p)),this._v2_1.setY(u*this._v2_1.x+d);const A=Math.sqrt(Math.pow(this._v2_1.x,2)+Math.pow(o-this._v2_1.y,2));return s.multiplyScalar(A),s.z+=o,s}})),Po(this,"unprojectOnTbPlane",((e,t,r,n,i=!1)=>{if(e instanceof a.OrthographicCamera)return this._v2_1.copy(this.getCursorPosition(t,r,n)),this._v3_1.set(this._v2_1.x,this._v2_1.y,0),this._v3_1.clone();if(e instanceof a.PerspectiveCamera){this._v2_1.copy(this.getCursorNDC(t,r,n)),this._v3_1.set(this._v2_1.x,this._v2_1.y,-1),this._v3_1.applyMatrix4(e.projectionMatrixInverse);const s=this._v3_1.clone().normalize(),a=this._v3_1.z,o=Math.sqrt(Math.pow(this._v3_1.x,2)+Math.pow(this._v3_1.y,2));let l;if(l=i?this._v3_1.setFromMatrixPosition(this._cameraMatrixState0).distanceTo(this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0)):e.position.distanceTo(this._gizmos.position),0==o)return s.set(0,0,0),s;const c=l,h=-c/(a/o),u=Math.sqrt(Math.pow(c,2)+Math.pow(h,2));return s.multiplyScalar(u),s.z=0,s}})),Po(this,"updateMatrixState",(()=>{this.camera&&(this._cameraMatrixState.copy(this.camera.matrix),this._gizmoMatrixState.copy(this._gizmos.matrix),this.camera instanceof a.OrthographicCamera&&(this._cameraProjectionState.copy(this.camera.projectionMatrix),this.camera.updateProjectionMatrix(),this._zoomState=this.camera.zoom),this.camera instanceof a.PerspectiveCamera&&(this._fovState=this.camera.fov))})),Po(this,"updateTbState",((e,t)=>{this._state=e,t&&this.updateMatrixState()})),Po(this,"update",(()=>{const e=1e-6;if(!this.target.equals(this._currentTarget)&&this.camera){this._gizmos.position.set(this.target.x,this.target.y,this.target.z);const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e),this.makeGizmos(this.target,this._tbRadius),this._currentTarget.copy(this.target)}if(this.camera){if(this.camera instanceof a.OrthographicCamera&&(this.camera.zoom>this.maxZoom||this.camera.zoomthis.maxDistance+e||tthis.maxFov)&&(this.camera.fov=a.MathUtils.clamp(this.camera.fov,this.minFov,this.maxFov),this.camera.updateProjectionMatrix());const r=this._tbRadius,n=this.calculateTbRadius(this.camera);if(void 0!==n&&(this._tbRadius=n),rthis._tbRadius+e){const e=(this._gizmos.scale.x+this._gizmos.scale.y+this._gizmos.scale.z)/3,t=this._tbRadius/e,r=new a.EllipseCurve(0,0,t,t).getPoints(this._curvePts),n=(new a.BufferGeometry).setFromPoints(r);for(const i in this._gizmos.children){this._gizmos.children[i].geometry=n}}}this.camera.lookAt(this._gizmos.position)}})),Po(this,"setStateFromJSON",(e=>{const t=JSON.parse(e);if(t.arcballState&&this.camera){this._cameraMatrixState.fromArray(t.arcballState.cameraMatrix.elements),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.up.copy(t.arcballState.cameraUp),this.camera.near=t.arcballState.cameraNear,this.camera.far=t.arcballState.cameraFar,this.camera.zoom=t.arcballState.cameraZoom,this.camera instanceof a.PerspectiveCamera&&(this.camera.fov=t.arcballState.cameraFov),this._gizmoMatrixState.fromArray(t.arcballState.gizmoMatrix.elements),this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.camera.updateMatrix(),this.camera.updateProjectionMatrix(),this._gizmos.updateMatrix();const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e);const r=(new a.Matrix4).copy(this._gizmoMatrixState0);this.makeGizmos(this._gizmos.position,this._tbRadius),this._gizmoMatrixState0.copy(r),this.camera.lookAt(this._gizmos.position),this.updateTbState(Do.IDLE,!1),this.dispatchEvent(Oo)}})),this.camera=null,this.domElement=t,this.scene=r,this.mouseActions=[],this._mouseOp=null,this._v2_1=new a.Vector2,this._v3_1=new a.Vector3,this._v3_2=new a.Vector3,this._m4_1=new a.Matrix4,this._m4_2=new a.Matrix4,this._quat=new a.Quaternion,this._translationMatrix=new a.Matrix4,this._rotationMatrix=new a.Matrix4,this._scaleMatrix=new a.Matrix4,this._rotationAxis=new a.Vector3,this._cameraMatrixState=new a.Matrix4,this._cameraProjectionState=new a.Matrix4,this._fovState=1,this._upState=new a.Vector3,this._zoomState=1,this._nearPos=0,this._farPos=0,this._gizmoMatrixState=new a.Matrix4,this._up0=new a.Vector3,this._zoom0=1,this._fov0=0,this._initialNear=0,this._nearPos0=0,this._initialFar=0,this._farPos0=0,this._cameraMatrixState0=new a.Matrix4,this._gizmoMatrixState0=new a.Matrix4,this._button=-1,this._touchStart=[],this._touchCurrent=[],this._input=Lo.NONE,this._switchSensibility=32,this._startFingerDistance=0,this._currentFingerDistance=0,this._startFingerRotation=0,this._currentFingerRotation=0,this._devPxRatio=0,this._downValid=!0,this._nclicks=0,this._downEvents=[],this._clickStart=0,this._maxDownTime=250,this._maxInterval=300,this._posThreshold=24,this._movementThreshold=24,this._currentCursorPosition=new a.Vector3,this._startCursorPosition=new a.Vector3,this._grid=null,this._gridPosition=new a.Vector3,this._gizmos=new a.Group,this._curvePts=128,this._timeStart=-1,this._animationId=-1,this.focusAnimationTime=500,this._timePrev=0,this._timeCurrent=0,this._anglePrev=0,this._angleCurrent=0,this._cursorPosPrev=new a.Vector3,this._cursorPosCurr=new a.Vector3,this._wPrev=0,this._wCurr=0,this.adjustNearFar=!1,this.scaleFactor=1.1,this.dampingFactor=25,this.wMax=20,this.enableAnimations=!0,this.enableGrid=!1,this.cursorZoom=!1,this.minFov=5,this.maxFov=90,this.enabled=!0,this.enablePan=!0,this.enableRotate=!0,this.enableZoom=!0,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.target=new a.Vector3(0,0,0),this._currentTarget=new a.Vector3(0,0,0),this._tbRadius=1,this._state=Do.IDLE,this.setCamera(e),this.scene&&this.scene.add(this._gizmos),this._devPxRatio=window.devicePixelRatio,this.initializeMouseActions(),this.domElement&&this.connect(this.domElement),window.addEventListener("resize",this.onWindowResize)}applyTransformMatrix(e){if((null==e?void 0:e.camera)&&this.camera&&(this._m4_1.copy(this._cameraMatrixState).premultiply(e.camera),this._m4_1.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.updateMatrix(),this._state!=Do.ROTATE&&this._state!=Do.ZROTATE&&this._state!=Do.ANIMATION_ROTATE||this.camera.up.copy(this._upState).applyQuaternion(this.camera.quaternion)),(null==e?void 0:e.gizmos)&&(this._m4_1.copy(this._gizmoMatrixState).premultiply(e.gizmos),this._m4_1.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.updateMatrix()),(this._state==Do.SCALE||this._state==Do.FOCUS||this._state==Do.ANIMATION_FOCUS)&&this.camera){const e=this.calculateTbRadius(this.camera);if(void 0!==e&&(this._tbRadius=e),this.adjustNearFar){const e=this.camera.position.distanceTo(this._gizmos.position),t=new a.Box3;t.setFromObject(this._gizmos);const r=new a.Sphere;t.getBoundingSphere(r);const n=Math.max(this._nearPos0,r.radius+r.center.length()),i=e-this._initialNear,s=Math.min(n,i);this.camera.near=e-s;const o=Math.min(this._farPos0,-r.radius+r.center.length()),l=e-this._initialFar,c=Math.min(o,l);this.camera.far=e-c,this.camera.updateProjectionMatrix()}else{let e=!1;this.camera.near!=this._initialNear&&(this.camera.near=this._initialNear,e=!0),this.camera.far!=this._initialFar&&(this.camera.far=this._initialFar,e=!0),e&&this.camera.updateProjectionMatrix()}}}setGizmosVisible(e){this._gizmos.visible=e,this.dispatchEvent(Oo)}setTransformationMatrices(e=null,t=null){e?Uo.camera?Uo.camera.copy(e):Uo.camera=e.clone():Uo.camera=null,t?Uo.gizmos?Uo.gizmos.copy(t):Uo.gizmos=t.clone():Uo.gizmos=null}}const zo=(0,i.forwardRef)((({camera:e,makeDefault:t,regress:r,domElement:s,onChange:a,onStart:l,onEnd:c,...h},u)=>{const d=(0,o.useThree)((e=>e.invalidate)),p=(0,o.useThree)((e=>e.camera)),f=(0,o.useThree)((e=>e.gl)),m=(0,o.useThree)((e=>e.events)),g=(0,o.useThree)((e=>e.set)),A=(0,o.useThree)((e=>e.get)),v=(0,o.useThree)((e=>e.performance)),y=e||p,x=s||m.connected||f.domElement,b=(0,i.useMemo)((()=>new Go(y)),[y]);return(0,o.useFrame)((()=>{b.enabled&&b.update()})),(0,i.useEffect)((()=>(b.connect(x),()=>{b.dispose()})),[x,r,b,d]),(0,i.useEffect)((()=>{const e=e=>{d(),r&&v.regress(),a&&a(e)};return b.addEventListener("change",e),l&&b.addEventListener("start",l),c&&b.addEventListener("end",c),()=>{b.removeEventListener("change",e),l&&b.removeEventListener("start",l),c&&b.removeEventListener("end",c)}}),[a,l,c]),(0,i.useEffect)((()=>{if(t){const e=A().controls;return g({controls:b}),()=>g({controls:e})}}),[t,b]),i.createElement("primitive",(0,n.Z)({ref:u,object:b},h))}));var Qo=r(76427),Vo=r.n(Qo),Ho=Object.defineProperty,jo=(e,t,r)=>(((e,t,r)=>{t in e?Ho(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class Wo extends a.Object3D{constructor(e,t){super(),jo(this,"isTransformControls",!0),jo(this,"visible",!1),jo(this,"domElement"),jo(this,"raycaster",new a.Raycaster),jo(this,"gizmo"),jo(this,"plane"),jo(this,"tempVector",new a.Vector3),jo(this,"tempVector2",new a.Vector3),jo(this,"tempQuaternion",new a.Quaternion),jo(this,"unit",{X:new a.Vector3(1,0,0),Y:new a.Vector3(0,1,0),Z:new a.Vector3(0,0,1)}),jo(this,"pointStart",new a.Vector3),jo(this,"pointEnd",new a.Vector3),jo(this,"offset",new a.Vector3),jo(this,"rotationAxis",new a.Vector3),jo(this,"startNorm",new a.Vector3),jo(this,"endNorm",new a.Vector3),jo(this,"rotationAngle",0),jo(this,"cameraPosition",new a.Vector3),jo(this,"cameraQuaternion",new a.Quaternion),jo(this,"cameraScale",new a.Vector3),jo(this,"parentPosition",new a.Vector3),jo(this,"parentQuaternion",new a.Quaternion),jo(this,"parentQuaternionInv",new a.Quaternion),jo(this,"parentScale",new a.Vector3),jo(this,"worldPositionStart",new a.Vector3),jo(this,"worldQuaternionStart",new a.Quaternion),jo(this,"worldScaleStart",new a.Vector3),jo(this,"worldPosition",new a.Vector3),jo(this,"worldQuaternion",new a.Quaternion),jo(this,"worldQuaternionInv",new a.Quaternion),jo(this,"worldScale",new a.Vector3),jo(this,"eye",new a.Vector3),jo(this,"positionStart",new a.Vector3),jo(this,"quaternionStart",new a.Quaternion),jo(this,"scaleStart",new a.Vector3),jo(this,"camera"),jo(this,"object"),jo(this,"enabled",!0),jo(this,"axis",null),jo(this,"mode","translate"),jo(this,"translationSnap",null),jo(this,"rotationSnap",null),jo(this,"scaleSnap",null),jo(this,"space","world"),jo(this,"size",1),jo(this,"dragging",!1),jo(this,"showX",!0),jo(this,"showY",!0),jo(this,"showZ",!0),jo(this,"changeEvent",{type:"change"}),jo(this,"mouseDownEvent",{type:"mouseDown",mode:this.mode}),jo(this,"mouseUpEvent",{type:"mouseUp",mode:this.mode}),jo(this,"objectChangeEvent",{type:"objectChange"}),jo(this,"intersectObjectWithRay",((e,t,r)=>{const n=t.intersectObject(e,!0);for(let i=0;i(this.object=e,this.visible=!0,this))),jo(this,"detach",(()=>(this.object=void 0,this.visible=!1,this.axis=null,this))),jo(this,"reset",(()=>this.enabled?(this.dragging&&void 0!==this.object&&(this.object.position.copy(this.positionStart),this.object.quaternion.copy(this.quaternionStart),this.object.scale.copy(this.scaleStart),this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent),this.pointStart.copy(this.pointEnd)),this):this)),jo(this,"updateMatrixWorld",(()=>{void 0!==this.object&&(this.object.updateMatrixWorld(),null===this.object.parent?console.error("TransformControls: The attached 3D object must be a part of the scene graph."):this.object.parent.matrixWorld.decompose(this.parentPosition,this.parentQuaternion,this.parentScale),this.object.matrixWorld.decompose(this.worldPosition,this.worldQuaternion,this.worldScale),this.parentQuaternionInv.copy(this.parentQuaternion).invert(),this.worldQuaternionInv.copy(this.worldQuaternion).invert()),this.camera.updateMatrixWorld(),this.camera.matrixWorld.decompose(this.cameraPosition,this.cameraQuaternion,this.cameraScale),this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(),super.updateMatrixWorld()})),jo(this,"pointerHover",(e=>{if(void 0===this.object||!0===this.dragging)return;this.raycaster.setFromCamera(e,this.camera);const t=this.intersectObjectWithRay(this.gizmo.picker[this.mode],this.raycaster);this.axis=t?t.object.name:null})),jo(this,"pointerDown",(e=>{if(void 0!==this.object&&!0!==this.dragging&&0===e.button&&null!==this.axis){this.raycaster.setFromCamera(e,this.camera);const t=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(t){let e=this.space;if("scale"===this.mode?e="local":"E"!==this.axis&&"XYZE"!==this.axis&&"XYZ"!==this.axis||(e="world"),"local"===e&&"rotate"===this.mode){const e=this.rotationSnap;"X"===this.axis&&e&&(this.object.rotation.x=Math.round(this.object.rotation.x/e)*e),"Y"===this.axis&&e&&(this.object.rotation.y=Math.round(this.object.rotation.y/e)*e),"Z"===this.axis&&e&&(this.object.rotation.z=Math.round(this.object.rotation.z/e)*e)}this.object.updateMatrixWorld(),this.object.parent&&this.object.parent.updateMatrixWorld(),this.positionStart.copy(this.object.position),this.quaternionStart.copy(this.object.quaternion),this.scaleStart.copy(this.object.scale),this.object.matrixWorld.decompose(this.worldPositionStart,this.worldQuaternionStart,this.worldScaleStart),this.pointStart.copy(t.point).sub(this.worldPositionStart)}this.dragging=!0,this.mouseDownEvent.mode=this.mode,this.dispatchEvent(this.mouseDownEvent)}})),jo(this,"pointerMove",(e=>{const t=this.axis,r=this.mode,n=this.object;let i=this.space;if("scale"===r?i="local":"E"!==t&&"XYZE"!==t&&"XYZ"!==t||(i="world"),void 0===n||null===t||!1===this.dragging||-1!==e.button)return;this.raycaster.setFromCamera(e,this.camera);const s=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(s){if(this.pointEnd.copy(s.point).sub(this.worldPositionStart),"translate"===r)this.offset.copy(this.pointEnd).sub(this.pointStart),"local"===i&&"XYZ"!==t&&this.offset.applyQuaternion(this.worldQuaternionInv),-1===t.indexOf("X")&&(this.offset.x=0),-1===t.indexOf("Y")&&(this.offset.y=0),-1===t.indexOf("Z")&&(this.offset.z=0),"local"===i&&"XYZ"!==t?this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale):this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale),n.position.copy(this.offset).add(this.positionStart),this.translationSnap&&("local"===i&&(n.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert()),-1!==t.search("X")&&(n.position.x=Math.round(n.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(n.position.y=Math.round(n.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(n.position.z=Math.round(n.position.z/this.translationSnap)*this.translationSnap),n.position.applyQuaternion(this.quaternionStart)),"world"===i&&(n.parent&&n.position.add(this.tempVector.setFromMatrixPosition(n.parent.matrixWorld)),-1!==t.search("X")&&(n.position.x=Math.round(n.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(n.position.y=Math.round(n.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(n.position.z=Math.round(n.position.z/this.translationSnap)*this.translationSnap),n.parent&&n.position.sub(this.tempVector.setFromMatrixPosition(n.parent.matrixWorld))));else if("scale"===r){if(-1!==t.search("XYZ")){let e=this.pointEnd.length()/this.pointStart.length();this.pointEnd.dot(this.pointStart)<0&&(e*=-1),this.tempVector2.set(e,e,e)}else this.tempVector.copy(this.pointStart),this.tempVector2.copy(this.pointEnd),this.tempVector.applyQuaternion(this.worldQuaternionInv),this.tempVector2.applyQuaternion(this.worldQuaternionInv),this.tempVector2.divide(this.tempVector),-1===t.search("X")&&(this.tempVector2.x=1),-1===t.search("Y")&&(this.tempVector2.y=1),-1===t.search("Z")&&(this.tempVector2.z=1);n.scale.copy(this.scaleStart).multiply(this.tempVector2),this.scaleSnap&&this.object&&(-1!==t.search("X")&&(this.object.scale.x=Math.round(n.scale.x/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Y")&&(n.scale.y=Math.round(n.scale.y/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Z")&&(n.scale.z=Math.round(n.scale.z/this.scaleSnap)*this.scaleSnap||this.scaleSnap))}else if("rotate"===r){this.offset.copy(this.pointEnd).sub(this.pointStart);const e=20/this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld));"E"===t?(this.rotationAxis.copy(this.eye),this.rotationAngle=this.pointEnd.angleTo(this.pointStart),this.startNorm.copy(this.pointStart).normalize(),this.endNorm.copy(this.pointEnd).normalize(),this.rotationAngle*=this.endNorm.cross(this.startNorm).dot(this.eye)<0?1:-1):"XYZE"===t?(this.rotationAxis.copy(this.offset).cross(this.eye).normalize(),this.rotationAngle=this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye))*e):"X"!==t&&"Y"!==t&&"Z"!==t||(this.rotationAxis.copy(this.unit[t]),this.tempVector.copy(this.unit[t]),"local"===i&&this.tempVector.applyQuaternion(this.worldQuaternion),this.rotationAngle=this.offset.dot(this.tempVector.cross(this.eye).normalize())*e),this.rotationSnap&&(this.rotationAngle=Math.round(this.rotationAngle/this.rotationSnap)*this.rotationSnap),"local"===i&&"E"!==t&&"XYZE"!==t?(n.quaternion.copy(this.quaternionStart),n.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)).normalize()):(this.rotationAxis.applyQuaternion(this.parentQuaternionInv),n.quaternion.copy(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)),n.quaternion.multiply(this.quaternionStart).normalize())}this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent)}})),jo(this,"pointerUp",(e=>{0===e.button&&(this.dragging&&null!==this.axis&&(this.mouseUpEvent.mode=this.mode,this.dispatchEvent(this.mouseUpEvent)),this.dragging=!1,this.axis=null)})),jo(this,"getPointer",(e=>{var t,r;if(this.domElement&&(null==(t=this.domElement.ownerDocument)?void 0:t.pointerLockElement))return{x:0,y:0,button:e.button};{const t=e.changedTouches?e.changedTouches[0]:e,n=null==(r=this.domElement)?void 0:r.getBoundingClientRect();return{x:(t.clientX-n.left)/n.width*2-1,y:-(t.clientY-n.top)/n.height*2+1,button:e.button}}})),jo(this,"onPointerHover",(e=>{if(this.enabled)switch(e.pointerType){case"mouse":case"pen":this.pointerHover(this.getPointer(e))}})),jo(this,"onPointerDown",(e=>{this.enabled&&this.domElement&&(this.domElement.style.touchAction="none",this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.pointerHover(this.getPointer(e)),this.pointerDown(this.getPointer(e)))})),jo(this,"onPointerMove",(e=>{this.enabled&&this.pointerMove(this.getPointer(e))})),jo(this,"onPointerUp",(e=>{this.enabled&&this.domElement&&(this.domElement.style.touchAction="",this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.pointerUp(this.getPointer(e)))})),jo(this,"getMode",(()=>this.mode)),jo(this,"setMode",(e=>{this.mode=e})),jo(this,"setTranslationSnap",(e=>{this.translationSnap=e})),jo(this,"setRotationSnap",(e=>{this.rotationSnap=e})),jo(this,"setScaleSnap",(e=>{this.scaleSnap=e})),jo(this,"setSize",(e=>{this.size=e})),jo(this,"setSpace",(e=>{this.space=e})),jo(this,"update",(()=>{console.warn("THREE.TransformControls: update function has no more functionality and therefore has been deprecated.")})),jo(this,"connect",(e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointermove",this.onPointerHover),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp)})),jo(this,"dispose",(()=>{var e,t,r,n,i,s;null==(e=this.domElement)||e.removeEventListener("pointerdown",this.onPointerDown),null==(t=this.domElement)||t.removeEventListener("pointermove",this.onPointerHover),null==(n=null==(r=this.domElement)?void 0:r.ownerDocument)||n.removeEventListener("pointermove",this.onPointerMove),null==(s=null==(i=this.domElement)?void 0:i.ownerDocument)||s.removeEventListener("pointerup",this.onPointerUp),this.traverse((e=>{const t=e;t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}))})),this.domElement=t,this.camera=e,this.gizmo=new Xo,this.add(this.gizmo),this.plane=new Yo,this.add(this.plane);const r=(e,t)=>{let r=t;Object.defineProperty(this,e,{get:function(){return void 0!==r?r:t},set:function(t){r!==t&&(r=t,this.plane[e]=t,this.gizmo[e]=t,this.dispatchEvent({type:e+"-changed",value:t}),this.dispatchEvent(this.changeEvent))}}),this[e]=t,this.plane[e]=t,this.gizmo[e]=t};r("camera",this.camera),r("object",this.object),r("enabled",this.enabled),r("axis",this.axis),r("mode",this.mode),r("translationSnap",this.translationSnap),r("rotationSnap",this.rotationSnap),r("scaleSnap",this.scaleSnap),r("space",this.space),r("size",this.size),r("dragging",this.dragging),r("showX",this.showX),r("showY",this.showY),r("showZ",this.showZ),r("worldPosition",this.worldPosition),r("worldPositionStart",this.worldPositionStart),r("worldQuaternion",this.worldQuaternion),r("worldQuaternionStart",this.worldQuaternionStart),r("cameraPosition",this.cameraPosition),r("cameraQuaternion",this.cameraQuaternion),r("pointStart",this.pointStart),r("pointEnd",this.pointEnd),r("rotationAxis",this.rotationAxis),r("rotationAngle",this.rotationAngle),r("eye",this.eye),void 0!==t&&this.connect(t)}}class Xo extends a.Object3D{constructor(){super(),jo(this,"isTransformControlsGizmo",!0),jo(this,"type","TransformControlsGizmo"),jo(this,"tempVector",new a.Vector3(0,0,0)),jo(this,"tempEuler",new a.Euler),jo(this,"alignVector",new a.Vector3(0,1,0)),jo(this,"zeroVector",new a.Vector3(0,0,0)),jo(this,"lookAtMatrix",new a.Matrix4),jo(this,"tempQuaternion",new a.Quaternion),jo(this,"tempQuaternion2",new a.Quaternion),jo(this,"identityQuaternion",new a.Quaternion),jo(this,"unitX",new a.Vector3(1,0,0)),jo(this,"unitY",new a.Vector3(0,1,0)),jo(this,"unitZ",new a.Vector3(0,0,1)),jo(this,"gizmo"),jo(this,"picker"),jo(this,"helper"),jo(this,"rotationAxis",new a.Vector3),jo(this,"cameraPosition",new a.Vector3),jo(this,"worldPositionStart",new a.Vector3),jo(this,"worldQuaternionStart",new a.Quaternion),jo(this,"worldPosition",new a.Vector3),jo(this,"worldQuaternion",new a.Quaternion),jo(this,"eye",new a.Vector3),jo(this,"camera",null),jo(this,"enabled",!0),jo(this,"axis",null),jo(this,"mode","translate"),jo(this,"space","world"),jo(this,"size",1),jo(this,"dragging",!1),jo(this,"showX",!0),jo(this,"showY",!0),jo(this,"showZ",!0),jo(this,"updateMatrixWorld",(()=>{let e=this.space;"scale"===this.mode&&(e="local");const t="local"===e?this.worldQuaternion:this.identityQuaternion;this.gizmo.translate.visible="translate"===this.mode,this.gizmo.rotate.visible="rotate"===this.mode,this.gizmo.scale.visible="scale"===this.mode,this.helper.translate.visible="translate"===this.mode,this.helper.rotate.visible="rotate"===this.mode,this.helper.scale.visible="scale"===this.mode;let r=[];r=r.concat(this.picker[this.mode].children),r=r.concat(this.gizmo[this.mode].children),r=r.concat(this.helper[this.mode].children);for(let n=0;nr&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"Y"!==e.name&&"XYZY"!==e.name||Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>r&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"Z"!==e.name&&"XYZZ"!==e.name||Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>r&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"XY"===e.name&&Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye)).9&&(e.visible=!1)),"Y"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,0,Math.PI/2)),e.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>.9&&(e.visible=!1)),"Z"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),e.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>.9&&(e.visible=!1)),"XYZE"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),this.alignVector.copy(this.rotationAxis),e.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.zeroVector,this.alignVector,this.unitY)),e.quaternion.multiply(this.tempQuaternion),e.visible=this.dragging),"E"===this.axis&&(e.visible=!1)):"START"===e.name?(e.position.copy(this.worldPositionStart),e.visible=this.dragging):"END"===e.name?(e.position.copy(this.worldPosition),e.visible=this.dragging):"DELTA"===e.name?(e.position.copy(this.worldPositionStart),e.quaternion.copy(this.worldQuaternionStart),this.tempVector.set(1e-10,1e-10,1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1),this.tempVector.applyQuaternion(this.worldQuaternionStart.clone().invert()),e.scale.copy(this.tempVector),e.visible=this.dragging):(e.quaternion.copy(t),this.dragging?e.position.copy(this.worldPositionStart):e.position.copy(this.worldPosition),this.axis&&(e.visible=-1!==this.axis.search(e.name)))}super.updateMatrixWorld()}));const e=new a.MeshBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,side:a.DoubleSide,fog:!1,toneMapped:!1}),t=new a.LineBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,linewidth:1,fog:!1,toneMapped:!1}),r=e.clone();r.opacity=.15;const n=e.clone();n.opacity=.33;const i=e.clone();i.color.set(16711680);const s=e.clone();s.color.set(65280);const o=e.clone();o.color.set(255);const l=e.clone();l.opacity=.25;const c=l.clone();c.color.set(16776960);const h=l.clone();h.color.set(65535);const u=l.clone();u.color.set(16711935);e.clone().color.set(16776960);const d=t.clone();d.color.set(16711680);const p=t.clone();p.color.set(65280);const f=t.clone();f.color.set(255);const m=t.clone();m.color.set(65535);const g=t.clone();g.color.set(16711935);const A=t.clone();A.color.set(16776960);const v=t.clone();v.color.set(7895160);const y=A.clone();y.opacity=.25;const x=new a.CylinderGeometry(0,.05,.2,12,1,!1),b=new a.BoxGeometry(.125,.125,.125),E=new a.BufferGeometry;E.setAttribute("position",new a.Float32BufferAttribute([0,0,0,1,0,0],3));const _=(e,t)=>{const r=new a.BufferGeometry,n=[];for(let i=0;i<=64*t;++i)n.push(0,Math.cos(i/32*Math.PI)*e,Math.sin(i/32*Math.PI)*e);return r.setAttribute("position",new a.Float32BufferAttribute(n,3)),r},S={X:[[new a.Mesh(x,i),[1,0,0],[0,0,-Math.PI/2],null,"fwd"],[new a.Mesh(x,i),[1,0,0],[0,0,Math.PI/2],null,"bwd"],[new a.Line(E,d)]],Y:[[new a.Mesh(x,s),[0,1,0],null,null,"fwd"],[new a.Mesh(x,s),[0,1,0],[Math.PI,0,0],null,"bwd"],[new a.Line(E,p),null,[0,0,Math.PI/2]]],Z:[[new a.Mesh(x,o),[0,0,1],[Math.PI/2,0,0],null,"fwd"],[new a.Mesh(x,o),[0,0,1],[-Math.PI/2,0,0],null,"bwd"],[new a.Line(E,f),null,[0,-Math.PI/2,0]]],XYZ:[[new a.Mesh(new a.OctahedronGeometry(.1,0),l.clone()),[0,0,0],[0,0,0]]],XY:[[new a.Mesh(new a.PlaneGeometry(.295,.295),c.clone()),[.15,.15,0]],[new a.Line(E,A),[.18,.3,0],null,[.125,1,1]],[new a.Line(E,A),[.3,.18,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new a.Mesh(new a.PlaneGeometry(.295,.295),h.clone()),[0,.15,.15],[0,Math.PI/2,0]],[new a.Line(E,m),[0,.18,.3],[0,0,Math.PI/2],[.125,1,1]],[new a.Line(E,m),[0,.3,.18],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new a.Mesh(new a.PlaneGeometry(.295,.295),u.clone()),[.15,0,.15],[-Math.PI/2,0,0]],[new a.Line(E,g),[.18,0,.3],null,[.125,1,1]],[new a.Line(E,g),[.3,0,.18],[0,-Math.PI/2,0],[.125,1,1]]]},M={X:[[new a.Mesh(new a.CylinderGeometry(.2,0,1,4,1,!1),r),[.6,0,0],[0,0,-Math.PI/2]]],Y:[[new a.Mesh(new a.CylinderGeometry(.2,0,1,4,1,!1),r),[0,.6,0]]],Z:[[new a.Mesh(new a.CylinderGeometry(.2,0,1,4,1,!1),r),[0,0,.6],[Math.PI/2,0,0]]],XYZ:[[new a.Mesh(new a.OctahedronGeometry(.2,0),r)]],XY:[[new a.Mesh(new a.PlaneGeometry(.4,.4),r),[.2,.2,0]]],YZ:[[new a.Mesh(new a.PlaneGeometry(.4,.4),r),[0,.2,.2],[0,Math.PI/2,0]]],XZ:[[new a.Mesh(new a.PlaneGeometry(.4,.4),r),[.2,0,.2],[-Math.PI/2,0,0]]]},w={START:[[new a.Mesh(new a.OctahedronGeometry(.01,2),n),null,null,null,"helper"]],END:[[new a.Mesh(new a.OctahedronGeometry(.01,2),n),null,null,null,"helper"]],DELTA:[[new a.Line((()=>{const e=new a.BufferGeometry;return e.setAttribute("position",new a.Float32BufferAttribute([0,0,0,1,1,1],3)),e})(),n),null,null,null,"helper"]],X:[[new a.Line(E,n.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new a.Line(E,n.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new a.Line(E,n.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},C={X:[[new a.Line(_(1,.5),d)],[new a.Mesh(new a.OctahedronGeometry(.04,0),i),[0,0,.99],null,[1,3,1]]],Y:[[new a.Line(_(1,.5),p),null,[0,0,-Math.PI/2]],[new a.Mesh(new a.OctahedronGeometry(.04,0),s),[0,0,.99],null,[3,1,1]]],Z:[[new a.Line(_(1,.5),f),null,[0,Math.PI/2,0]],[new a.Mesh(new a.OctahedronGeometry(.04,0),o),[.99,0,0],null,[1,3,1]]],E:[[new a.Line(_(1.25,1),y),null,[0,Math.PI/2,0]],[new a.Mesh(new a.CylinderGeometry(.03,0,.15,4,1,!1),y),[1.17,0,0],[0,0,-Math.PI/2],[1,1,.001]],[new a.Mesh(new a.CylinderGeometry(.03,0,.15,4,1,!1),y),[-1.17,0,0],[0,0,Math.PI/2],[1,1,.001]],[new a.Mesh(new a.CylinderGeometry(.03,0,.15,4,1,!1),y),[0,-1.17,0],[Math.PI,0,0],[1,1,.001]],[new a.Mesh(new a.CylinderGeometry(.03,0,.15,4,1,!1),y),[0,1.17,0],[0,0,0],[1,1,.001]]],XYZE:[[new a.Line(_(1,1),v),null,[0,Math.PI/2,0]]]},T={AXIS:[[new a.Line(E,n.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]]},I={X:[[new a.Mesh(new a.TorusGeometry(1,.1,4,24),r),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new a.Mesh(new a.TorusGeometry(1,.1,4,24),r),[0,0,0],[Math.PI/2,0,0]]],Z:[[new a.Mesh(new a.TorusGeometry(1,.1,4,24),r),[0,0,0],[0,0,-Math.PI/2]]],E:[[new a.Mesh(new a.TorusGeometry(1.25,.1,2,24),r)]],XYZE:[[new a.Mesh(new a.SphereGeometry(.7,10,8),r)]]},B={X:[[new a.Mesh(b,i),[.8,0,0],[0,0,-Math.PI/2]],[new a.Line(E,d),null,null,[.8,1,1]]],Y:[[new a.Mesh(b,s),[0,.8,0]],[new a.Line(E,p),null,[0,0,Math.PI/2],[.8,1,1]]],Z:[[new a.Mesh(b,o),[0,0,.8],[Math.PI/2,0,0]],[new a.Line(E,f),null,[0,-Math.PI/2,0],[.8,1,1]]],XY:[[new a.Mesh(b,c),[.85,.85,0],null,[2,2,.2]],[new a.Line(E,A),[.855,.98,0],null,[.125,1,1]],[new a.Line(E,A),[.98,.855,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new a.Mesh(b,h),[0,.85,.85],null,[.2,2,2]],[new a.Line(E,m),[0,.855,.98],[0,0,Math.PI/2],[.125,1,1]],[new a.Line(E,m),[0,.98,.855],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new a.Mesh(b,u),[.85,0,.85],null,[2,.2,2]],[new a.Line(E,g),[.855,0,.98],null,[.125,1,1]],[new a.Line(E,g),[.98,0,.855],[0,-Math.PI/2,0],[.125,1,1]]],XYZX:[[new a.Mesh(new a.BoxGeometry(.125,.125,.125),l.clone()),[1.1,0,0]]],XYZY:[[new a.Mesh(new a.BoxGeometry(.125,.125,.125),l.clone()),[0,1.1,0]]],XYZZ:[[new a.Mesh(new a.BoxGeometry(.125,.125,.125),l.clone()),[0,0,1.1]]]},R={X:[[new a.Mesh(new a.CylinderGeometry(.2,0,.8,4,1,!1),r),[.5,0,0],[0,0,-Math.PI/2]]],Y:[[new a.Mesh(new a.CylinderGeometry(.2,0,.8,4,1,!1),r),[0,.5,0]]],Z:[[new a.Mesh(new a.CylinderGeometry(.2,0,.8,4,1,!1),r),[0,0,.5],[Math.PI/2,0,0]]],XY:[[new a.Mesh(b,r),[.85,.85,0],null,[3,3,.2]]],YZ:[[new a.Mesh(b,r),[0,.85,.85],null,[.2,3,3]]],XZ:[[new a.Mesh(b,r),[.85,0,.85],null,[3,.2,3]]],XYZX:[[new a.Mesh(new a.BoxGeometry(.2,.2,.2),r),[1.1,0,0]]],XYZY:[[new a.Mesh(new a.BoxGeometry(.2,.2,.2),r),[0,1.1,0]]],XYZZ:[[new a.Mesh(new a.BoxGeometry(.2,.2,.2),r),[0,0,1.1]]]},P={X:[[new a.Line(E,n.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new a.Line(E,n.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new a.Line(E,n.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},D=e=>{const t=new a.Object3D;for(let r in e)for(let n=e[r].length;n--;){const i=e[r][n][0].clone(),s=e[r][n][1],a=e[r][n][2],o=e[r][n][3],l=e[r][n][4];i.name=r,i.tag=l,s&&i.position.set(s[0],s[1],s[2]),a&&i.rotation.set(a[0],a[1],a[2]),o&&i.scale.set(o[0],o[1],o[2]),i.updateMatrix();const c=i.geometry.clone();c.applyMatrix4(i.matrix),i.geometry=c,i.renderOrder=1/0,i.position.set(0,0,0),i.rotation.set(0,0,0),i.scale.set(1,1,1),t.add(i)}return t};this.gizmo={},this.picker={},this.helper={},this.add(this.gizmo.translate=D(S)),this.add(this.gizmo.rotate=D(C)),this.add(this.gizmo.scale=D(B)),this.add(this.picker.translate=D(M)),this.add(this.picker.rotate=D(I)),this.add(this.picker.scale=D(R)),this.add(this.helper.translate=D(w)),this.add(this.helper.rotate=D(T)),this.add(this.helper.scale=D(P)),this.picker.translate.visible=!1,this.picker.rotate.visible=!1,this.picker.scale.visible=!1}}class Yo extends a.Mesh{constructor(){super(new a.PlaneGeometry(1e5,1e5,2,2),new a.MeshBasicMaterial({visible:!1,wireframe:!0,side:a.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1})),jo(this,"isTransformControlsPlane",!0),jo(this,"type","TransformControlsPlane"),jo(this,"unitX",new a.Vector3(1,0,0)),jo(this,"unitY",new a.Vector3(0,1,0)),jo(this,"unitZ",new a.Vector3(0,0,1)),jo(this,"tempVector",new a.Vector3),jo(this,"dirVector",new a.Vector3),jo(this,"alignVector",new a.Vector3),jo(this,"tempMatrix",new a.Matrix4),jo(this,"identityQuaternion",new a.Quaternion),jo(this,"cameraQuaternion",new a.Quaternion),jo(this,"worldPosition",new a.Vector3),jo(this,"worldQuaternion",new a.Quaternion),jo(this,"eye",new a.Vector3),jo(this,"axis",null),jo(this,"mode","translate"),jo(this,"space","world"),jo(this,"updateMatrixWorld",(()=>{let e=this.space;switch(this.position.copy(this.worldPosition),"scale"===this.mode&&(e="local"),this.unitX.set(1,0,0).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.unitY.set(0,1,0).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.unitZ.set(0,0,1).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.alignVector.copy(this.unitY),this.mode){case"translate":case"scale":switch(this.axis){case"X":this.alignVector.copy(this.eye).cross(this.unitX),this.dirVector.copy(this.unitX).cross(this.alignVector);break;case"Y":this.alignVector.copy(this.eye).cross(this.unitY),this.dirVector.copy(this.unitY).cross(this.alignVector);break;case"Z":this.alignVector.copy(this.eye).cross(this.unitZ),this.dirVector.copy(this.unitZ).cross(this.alignVector);break;case"XY":this.dirVector.copy(this.unitZ);break;case"YZ":this.dirVector.copy(this.unitX);break;case"XZ":this.alignVector.copy(this.unitZ),this.dirVector.copy(this.unitY);break;case"XYZ":case"E":this.dirVector.set(0,0,0)}break;default:this.dirVector.set(0,0,0)}0===this.dirVector.length()?this.quaternion.copy(this.cameraQuaternion):(this.tempMatrix.lookAt(this.tempVector.set(0,0,0),this.dirVector,this.alignVector),this.quaternion.setFromRotationMatrix(this.tempMatrix)),super.updateMatrixWorld()}))}}const qo=i.forwardRef((({children:e,domElement:t,onChange:r,onMouseDown:s,onMouseUp:l,onObjectChange:c,object:h,...u},d)=>{const p=["enabled","axis","mode","translationSnap","rotationSnap","scaleSnap","space","size","showX","showY","showZ"],{camera:f,...m}=u,g=to()(m,p),A=Vo()(m,p),v=(0,o.useThree)((e=>e.controls)),y=(0,o.useThree)((e=>e.gl)),x=(0,o.useThree)((e=>e.events)),b=(0,o.useThree)((e=>e.camera)),E=(0,o.useThree)((e=>e.invalidate)),_=f||b,S=t||x.connected||y.domElement,M=i.useMemo((()=>new Wo(_,S)),[_,S]),w=i.useRef();return i.useLayoutEffect((()=>(h?M.attach(h instanceof a.Object3D?h:h.current):w.current instanceof a.Object3D&&M.attach(w.current),()=>{M.detach()})),[h,e,M]),i.useEffect((()=>{if(v){const e=e=>v.enabled=!e.value;return M.addEventListener("dragging-changed",e),()=>M.removeEventListener("dragging-changed",e)}}),[M,v]),i.useEffect((()=>{const e=e=>{E(),r&&r(e)};return null==M||null==M.addEventListener||M.addEventListener("change",e),s&&(null==M||null==M.addEventListener||M.addEventListener("mouseDown",s)),l&&(null==M||null==M.addEventListener||M.addEventListener("mouseUp",l)),c&&(null==M||null==M.addEventListener||M.addEventListener("objectChange",c)),()=>{null==M||null==M.removeEventListener||M.removeEventListener("change",e),s&&(null==M||null==M.removeEventListener||M.removeEventListener("mouseDown",s)),l&&(null==M||null==M.removeEventListener||M.removeEventListener("mouseUp",l)),c&&(null==M||null==M.removeEventListener||M.removeEventListener("objectChange",c))}}),[r,s,l,c,M,E]),M?i.createElement(i.Fragment,null,i.createElement("primitive",(0,n.Z)({ref:d,dispose:void 0,object:M},g)),i.createElement("group",(0,n.Z)({ref:w},A),e)):null}));var Ko=Object.defineProperty,Jo=(e,t,r)=>(((e,t,r)=>{t in e?Ko(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const Zo=new a.Euler(0,0,0,"YXZ"),$o=new a.Vector3,el={type:"change"},tl={type:"lock"},rl={type:"unlock"},nl=Math.PI/2;class il extends a.EventDispatcher{constructor(e,t){super(),Jo(this,"camera"),Jo(this,"domElement"),Jo(this,"isLocked"),Jo(this,"minPolarAngle"),Jo(this,"maxPolarAngle"),Jo(this,"pointerSpeed"),Jo(this,"onMouseMove",(e=>{if(!this.domElement||!1===this.isLocked)return;const t=e.movementX||e.mozMovementX||e.webkitMovementX||0,r=e.movementY||e.mozMovementY||e.webkitMovementY||0;Zo.setFromQuaternion(this.camera.quaternion),Zo.y-=.002*t*this.pointerSpeed,Zo.x-=.002*r*this.pointerSpeed,Zo.x=Math.max(nl-this.maxPolarAngle,Math.min(nl-this.minPolarAngle,Zo.x)),this.camera.quaternion.setFromEuler(Zo),this.dispatchEvent(el)})),Jo(this,"onPointerlockChange",(()=>{this.domElement&&(this.domElement.ownerDocument.pointerLockElement===this.domElement?(this.dispatchEvent(tl),this.isLocked=!0):(this.dispatchEvent(rl),this.isLocked=!1))})),Jo(this,"onPointerlockError",(()=>{console.error("THREE.PointerLockControls: Unable to use Pointer Lock API")})),Jo(this,"connect",(e=>{this.domElement=e||this.domElement,this.domElement&&(this.domElement.ownerDocument.addEventListener("mousemove",this.onMouseMove),this.domElement.ownerDocument.addEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.addEventListener("pointerlockerror",this.onPointerlockError))})),Jo(this,"disconnect",(()=>{this.domElement&&(this.domElement.ownerDocument.removeEventListener("mousemove",this.onMouseMove),this.domElement.ownerDocument.removeEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.removeEventListener("pointerlockerror",this.onPointerlockError))})),Jo(this,"dispose",(()=>{this.disconnect()})),Jo(this,"getObject",(()=>this.camera)),Jo(this,"direction",new a.Vector3(0,0,-1)),Jo(this,"getDirection",(e=>e.copy(this.direction).applyQuaternion(this.camera.quaternion))),Jo(this,"moveForward",(e=>{$o.setFromMatrixColumn(this.camera.matrix,0),$o.crossVectors(this.camera.up,$o),this.camera.position.addScaledVector($o,e)})),Jo(this,"moveRight",(e=>{$o.setFromMatrixColumn(this.camera.matrix,0),this.camera.position.addScaledVector($o,e)})),Jo(this,"lock",(()=>{this.domElement&&this.domElement.requestPointerLock()})),Jo(this,"unlock",(()=>{this.domElement&&this.domElement.ownerDocument.exitPointerLock()})),this.camera=e,this.domElement=t,this.isLocked=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.pointerSpeed=1,t&&this.connect(t)}}const sl=i.forwardRef((({domElement:e,selector:t,onChange:r,onLock:s,onUnlock:a,enabled:l=!0,...c},h)=>{const{camera:u,...d}=c,p=(0,o.useThree)((({gl:e})=>e)),f=(0,o.useThree)((e=>e.camera)),m=(0,o.useThree)((e=>e.invalidate)),g=(0,o.useThree)((e=>e.raycaster)),A=(0,o.useThree)((e=>e.events)),v=u||f,y=e||A.connected||p.domElement,[x]=i.useState((()=>new il(v)));return i.useEffect((()=>{if(l){x.connect(y);const e=g.computeOffsets;return g.computeOffsets=e=>({offsetX:e.target.width/2,offsetY:e.target.height/2}),()=>{x.disconnect(),g.computeOffsets=e}}}),[l,x]),i.useEffect((()=>{const e=e=>{m(),r&&r(e)};x.addEventListener("change",e),s&&x.addEventListener("lock",s),a&&x.addEventListener("unlock",a);const n=()=>x.lock(),i=t?Array.from(document.querySelectorAll(t)):[document];return i.forEach((e=>e&&e.addEventListener("click",n))),()=>{x.removeEventListener("change",e),s&&x.addEventListener("lock",s),a&&x.addEventListener("unlock",a),i.forEach((e=>e?e.removeEventListener("click",n):void 0))}}),[r,s,a,t]),i.createElement("primitive",(0,n.Z)({ref:h,object:x},d))}));var al=Object.defineProperty,ol=(e,t,r)=>(((e,t,r)=>{t in e?al(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const ll=new a.Vector3;class cl extends a.EventDispatcher{constructor(e,t){super(),ol(this,"object"),ol(this,"domElement"),ol(this,"enabled",!0),ol(this,"movementSpeed",1),ol(this,"lookSpeed",.005),ol(this,"lookVertical",!0),ol(this,"autoForward",!1),ol(this,"activeLook",!0),ol(this,"heightSpeed",!1),ol(this,"heightCoef",1),ol(this,"heightMin",0),ol(this,"heightMax",1),ol(this,"constrainVertical",!1),ol(this,"verticalMin",0),ol(this,"verticalMax",Math.PI),ol(this,"mouseDragOn",!1),ol(this,"autoSpeedFactor",0),ol(this,"mouseX",0),ol(this,"mouseY",0),ol(this,"moveForward",!1),ol(this,"moveBackward",!1),ol(this,"moveLeft",!1),ol(this,"moveRight",!1),ol(this,"moveUp",!1),ol(this,"moveDown",!1),ol(this,"viewHalfX",0),ol(this,"viewHalfY",0),ol(this,"lat",0),ol(this,"lon",0),ol(this,"lookDirection",new a.Vector3),ol(this,"spherical",new a.Spherical),ol(this,"target",new a.Vector3),ol(this,"connect",(e=>{e.setAttribute("tabindex","-1"),e.style.touchAction="none",e.addEventListener("contextmenu",this.contextmenu),e.addEventListener("mousemove",this.onMouseMove),e.addEventListener("mousedown",this.onMouseDown),e.addEventListener("mouseup",this.onMouseUp),this.domElement=e,window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.handleResize()})),ol(this,"dispose",(()=>{var e,t,r,n;null==(e=this.domElement)||e.removeEventListener("contextmenu",this.contextmenu),null==(t=this.domElement)||t.removeEventListener("mousedown",this.onMouseDown),null==(r=this.domElement)||r.removeEventListener("mousemove",this.onMouseMove),null==(n=this.domElement)||n.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp)})),ol(this,"handleResize",(()=>{this.domElement&&(this.viewHalfX=this.domElement.offsetWidth/2,this.viewHalfY=this.domElement.offsetHeight/2)})),ol(this,"onMouseDown",(e=>{var t;if(null==(t=this.domElement)||t.focus(),this.activeLook)switch(e.button){case 0:this.moveForward=!0;break;case 2:this.moveBackward=!0}this.mouseDragOn=!0})),ol(this,"onMouseUp",(e=>{if(this.activeLook)switch(e.button){case 0:this.moveForward=!1;break;case 2:this.moveBackward=!1}this.mouseDragOn=!1})),ol(this,"onMouseMove",(e=>{this.domElement&&(this.mouseX=e.pageX-this.domElement.offsetLeft-this.viewHalfX,this.mouseY=e.pageY-this.domElement.offsetTop-this.viewHalfY)})),ol(this,"onKeyDown",(e=>{switch(e.code){case"ArrowUp":case"KeyW":this.moveForward=!0;break;case"ArrowLeft":case"KeyA":this.moveLeft=!0;break;case"ArrowDown":case"KeyS":this.moveBackward=!0;break;case"ArrowRight":case"KeyD":this.moveRight=!0;break;case"KeyR":this.moveUp=!0;break;case"KeyF":this.moveDown=!0}})),ol(this,"onKeyUp",(e=>{switch(e.code){case"ArrowUp":case"KeyW":this.moveForward=!1;break;case"ArrowLeft":case"KeyA":this.moveLeft=!1;break;case"ArrowDown":case"KeyS":this.moveBackward=!1;break;case"ArrowRight":case"KeyD":this.moveRight=!1;break;case"KeyR":this.moveUp=!1;break;case"KeyF":this.moveDown=!1}})),ol(this,"lookAt",((e,t,r)=>(e instanceof a.Vector3?this.target.copy(e):t&&r&&this.target.set(e,t,r),this.object.lookAt(this.target),this.setOrientation(),this))),ol(this,"update",(e=>{if(!this.enabled)return;if(this.heightSpeed){const t=a.MathUtils.clamp(this.object.position.y,this.heightMin,this.heightMax)-this.heightMin;this.autoSpeedFactor=e*(t*this.heightCoef)}else this.autoSpeedFactor=0;const t=e*this.movementSpeed;(this.moveForward||this.autoForward&&!this.moveBackward)&&this.object.translateZ(-(t+this.autoSpeedFactor)),this.moveBackward&&this.object.translateZ(t),this.moveLeft&&this.object.translateX(-t),this.moveRight&&this.object.translateX(t),this.moveUp&&this.object.translateY(t),this.moveDown&&this.object.translateY(-t);let r=e*this.lookSpeed;this.activeLook||(r=0);let n=1;this.constrainVertical&&(n=Math.PI/(this.verticalMax-this.verticalMin)),this.lon-=this.mouseX*r,this.lookVertical&&(this.lat-=this.mouseY*r*n),this.lat=Math.max(-85,Math.min(85,this.lat));let i=a.MathUtils.degToRad(90-this.lat);const s=a.MathUtils.degToRad(this.lon);this.constrainVertical&&(i=a.MathUtils.mapLinear(i,0,Math.PI,this.verticalMin,this.verticalMax));const o=this.object.position;ll.setFromSphericalCoords(1,i,s).add(o),this.object.lookAt(ll)})),ol(this,"contextmenu",(e=>e.preventDefault())),ol(this,"setOrientation",(()=>{this.lookDirection.set(0,0,-1).applyQuaternion(this.object.quaternion),this.spherical.setFromVector3(this.lookDirection),this.lat=90-a.MathUtils.radToDeg(this.spherical.phi),this.lon=a.MathUtils.radToDeg(this.spherical.theta)})),this.object=e,this.domElement=t,this.setOrientation(),t&&this.connect(t)}}const hl=i.forwardRef(((e,t)=>{const r=(0,o.useThree)((e=>e.camera)),s=(0,o.useThree)((e=>e.gl)),[a]=i.useState((()=>new cl(r,s.domElement)));return(0,o.useFrame)(((e,t)=>{a.update(t)})),a?i.createElement("primitive",(0,n.Z)({ref:t,object:a},e)):null}));function ul(e,t){const r=(0,o.useThree)((e=>e.mouse)),[n]=i.useState((()=>{const n=new a.Raycaster;return t&&(0,o.applyProps)(n,t,{}),function(t,i){n.setFromCamera(r,e instanceof a.Camera?e:e.current);const s=this.constructor.prototype.raycast.bind(this);s&&s(n,i)}}));return n}const dl=i.createContext({}),pl=()=>i.useContext(dl),fl=2*Math.PI,ml=new a.Object3D,gl=new a.Matrix4,[Al,vl]=[new a.Quaternion,new a.Quaternion],yl=new a.Vector3,xl=new a.Vector3,bl=({alignment:e="bottom-right",margin:t=[80,80],renderPriority:r=0,autoClear:n=!0,onUpdate:s,onTarget:l,children:c})=>{const h=(0,o.useThree)((({size:e})=>e)),u=(0,o.useThree)((({camera:e})=>e)),d=(0,o.useThree)((({controls:e})=>e)),p=(0,o.useThree)((({gl:e})=>e)),f=(0,o.useThree)((({scene:e})=>e)),m=(0,o.useThree)((({invalidate:e})=>e)),g=i.useRef(),A=i.useRef(),v=i.useRef(null),[y]=i.useState((()=>new a.Scene)),x=i.useRef(!1),b=i.useRef(0),E=i.useRef(new a.Vector3(0,0,0)),_=i.useCallback((e=>{x.current=!0,(d||l)&&(E.current=(null==d?void 0:d.target)||(null==l?void 0:l())),b.current=u.position.distanceTo(yl),Al.copy(u.quaternion),xl.copy(e).multiplyScalar(b.current).add(yl),ml.lookAt(xl),vl.copy(ml.quaternion),m()}),[d,u,l,m]);i.useEffect((()=>(f.background&&(g.current=f.background,f.background=null,y.background=g.current),()=>{g.current&&(f.background=g.current)})),[]),(0,o.useFrame)(((e,t)=>{if(v.current&&A.current){var r;if(x.current)if(Al.angleTo(vl)<.01)x.current=!1;else{const e=t*fl;Al.rotateTowards(vl,e),u.position.set(0,0,1).applyQuaternion(Al).multiplyScalar(b.current).add(E.current),u.up.set(0,1,0).applyQuaternion(Al).normalize(),u.quaternion.copy(Al),s?s():d&&d.update(),m()}gl.copy(u.matrix).invert(),null==(r=A.current)||r.quaternion.setFromRotationMatrix(gl),n&&(p.autoClear=!1),p.clearDepth(),p.render(y,v.current)}}),r);const S=ul(v),M=i.useMemo((()=>({tweenCamera:_,raycast:S})),[_]),[w,C]=t,T=e.endsWith("-left")?-h.width/2+w:h.width/2-w,I=e.startsWith("top-")?h.height/2-C:-h.height/2+C;return(0,o.createPortal)(i.createElement(dl.Provider,{value:M},i.createElement(io,{ref:v,position:[0,0,200]}),i.createElement("group",{ref:A,position:[T,I,0]},c)),y)},El="#f0f0f0",_l="#999",Sl="black",Ml="black",wl=["Right","Left","Top","Bottom","Front","Back"],Cl=e=>new a.Vector3(...e).multiplyScalar(.38),Tl=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(Cl),Il=[.25,.25,.25],Bl=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(Cl),Rl=Bl.map((e=>e.toArray().map((e=>0==e?.5:.25)))),Pl=({hover:e,index:t,font:r="20px Inter var, Arial, sans-serif",faces:n=wl,color:s=El,hoverColor:l=_l,textColor:c=Sl,strokeColor:h=Ml,opacity:u=1})=>{const d=(0,o.useThree)((e=>e.gl)),p=i.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const i=e.getContext("2d");return i.fillStyle=s,i.fillRect(0,0,e.width,e.height),i.strokeStyle=h,i.strokeRect(0,0,e.width,e.height),i.font=r,i.textAlign="center",i.fillStyle=c,i.fillText(n[t].toUpperCase(),64,76),new a.CanvasTexture(e)}),[t,n,r,s,c,h]);return i.createElement("meshLambertMaterial",{map:p,"map-anisotropy":d.capabilities.getMaxAnisotropy()||1,attachArray:"material",color:e?l:"white",transparent:!0,opacity:u})},Dl=e=>{const{tweenCamera:t,raycast:r}=pl(),[s,a]=i.useState(null);return i.createElement("mesh",{raycast:r,onPointerOut:e=>{e.stopPropagation(),a(null)},onPointerMove:e=>{e.stopPropagation(),a(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,r)=>i.createElement(Pl,(0,n.Z)({key:r,index:r,hover:s===r},e)))),i.createElement("boxGeometry",null))},Ll=({onClick:e,dimensions:t,position:r,hoverColor:n=_l})=>{const{tweenCamera:s,raycast:a}=pl(),[o,l]=i.useState(!1);return i.createElement("mesh",{scale:1.01,position:r,raycast:a,onPointerOver:e=>{e.stopPropagation(),l(!0)},onPointerOut:e=>{e.stopPropagation(),l(!1)},onClick:e||(e=>{e.stopPropagation(),s(r)})},i.createElement("meshBasicMaterial",{color:o?n:"white",transparent:!0,opacity:.6,visible:o}),i.createElement("boxGeometry",{args:t}))},Fl=e=>i.createElement("group",{scale:[60,60,60]},i.createElement(Dl,e),Bl.map(((t,r)=>i.createElement(Ll,(0,n.Z)({key:r,position:t,dimensions:Rl[r]},e)))),Tl.map(((t,r)=>i.createElement(Ll,(0,n.Z)({key:r,position:t,dimensions:Il},e)))),i.createElement("ambientLight",{intensity:.5}),i.createElement("pointLight",{position:[10,10,10],intensity:.5}));function Ul({scale:e=[.8,.05,.05],color:t,rotation:r}){return i.createElement("group",{rotation:r},i.createElement("mesh",{position:[.4,0,0]},i.createElement("boxGeometry",{args:e}),i.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function Ol({onClick:e,font:t,disabled:r,arcStyle:s,label:l,labelColor:c,axisHeadScale:h=1,...u}){const d=(0,o.useThree)((e=>e.gl)),p=i.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const r=e.getContext("2d");return r.beginPath(),r.arc(32,32,16,0,2*Math.PI),r.closePath(),r.fillStyle=s,r.fill(),l&&(r.font=t,r.textAlign="center",r.fillStyle=c,r.fillText(l,32,41)),new a.CanvasTexture(e)}),[s,l,c,t]),[f,m]=i.useState(!1),g=(l?1:.75)*(f?1.2:1)*h;return i.createElement("sprite",(0,n.Z)({scale:g,onPointerOver:r?void 0:e=>{e.stopPropagation(),m(!0)},onPointerOut:r?void 0:e||(e=>{e.stopPropagation(),m(!1)})},u),i.createElement("spriteMaterial",{map:p,"map-anisotropy":d.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:l?1:.75,toneMapped:!1}))}const Nl=({hideNegativeAxes:e,hideAxisHeads:t,disabled:r,font:s="18px Inter var, Arial, sans-serif",axisColors:a=["#ff3653","#0adb50","#2c8fdf"],axisHeadScale:o=1,axisScale:l,labels:c=["X","Y","Z"],labelColor:h="#000",onClick:u,...d})=>{const[p,f,m]=a,{tweenCamera:g,raycast:A}=pl(),v={font:s,disabled:r,labelColor:h,raycast:A,onClick:u,axisHeadScale:o,onPointerDown:r?void 0:e=>{g(e.object.position),e.stopPropagation()}};return i.createElement("group",(0,n.Z)({scale:40},d),i.createElement(Ul,{color:p,rotation:[0,0,0],scale:l}),i.createElement(Ul,{color:f,rotation:[0,0,Math.PI/2],scale:l}),i.createElement(Ul,{color:m,rotation:[0,-Math.PI/2,0],scale:l}),!t&&i.createElement(i.Fragment,null,i.createElement(Ol,(0,n.Z)({arcStyle:p,position:[1,0,0],label:c[0]},v)),i.createElement(Ol,(0,n.Z)({arcStyle:f,position:[0,1,0],label:c[1]},v)),i.createElement(Ol,(0,n.Z)({arcStyle:m,position:[0,0,1],label:c[2]},v)),!e&&i.createElement(i.Fragment,null,i.createElement(Ol,(0,n.Z)({arcStyle:p,position:[-1,0,0]},v)),i.createElement(Ol,(0,n.Z)({arcStyle:f,position:[0,-1,0]},v)),i.createElement(Ol,(0,n.Z)({arcStyle:m,position:[0,0,-1]},v)))),i.createElement("ambientLight",{intensity:.5}),i.createElement("pointLight",{position:[10,10,10],intensity:.5}))};function kl(e,{path:t}){const[r]=(0,o.useLoader)(a.CubeTextureLoader,[e],(e=>e.setPath(t)));return r}kl.preload=(e,{path:t})=>o.useLoader.preload(a.CubeTextureLoader,[e],(e=>e.setPath(t)));var Gl=Uint8Array,zl=Uint16Array,Ql=Uint32Array,Vl=new Gl([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Hl=new Gl([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),jl=new Gl([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Wl=function(e,t){for(var r=new zl(31),n=0;n<31;++n)r[n]=t+=1<>>1|(21845&$l)<<1;ec=(61680&(ec=(52428&ec)>>>2|(13107&ec)<<2))>>>4|(3855&ec)<<4,Zl[$l]=((65280&ec)>>>8|(255&ec)<<8)>>>1}var tc=function(e,t,r){for(var n=e.length,i=0,s=new zl(t);i>>l]=c}else for(a=new zl(n),i=0;i>>15-e[i]);return a},rc=new Gl(288);for($l=0;$l<144;++$l)rc[$l]=8;for($l=144;$l<256;++$l)rc[$l]=9;for($l=256;$l<280;++$l)rc[$l]=7;for($l=280;$l<288;++$l)rc[$l]=8;var nc=new Gl(32);for($l=0;$l<32;++$l)nc[$l]=5;var ic=tc(rc,9,1),sc=tc(nc,5,1),ac=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},oc=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},lc=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},cc=function(e){return(e/8|0)+(7&e&&1)},hc=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(e instanceof zl?zl:e instanceof Ql?Ql:Gl)(r-t);return n.set(e.subarray(t,r)),n},uc=function(e,t,r){var n=e.length;if(!n||r&&!r.l&&n<5)return t||new Gl(0);var i=!t||r,s=!r||r.i;r||(r={}),t||(t=new Gl(3*n));var a=function(e){var r=t.length;if(e>r){var n=new Gl(Math.max(2*r,e));n.set(t),t=n}},o=r.f||0,l=r.p||0,c=r.b||0,h=r.l,u=r.d,d=r.m,p=r.n,f=8*n;do{if(!h){r.f=o=oc(e,l,1);var m=oc(e,l+1,3);if(l+=3,!m){var g=e[(C=cc(l)+4)-4]|e[C-3]<<8,A=C+g;if(A>n){if(s)throw"unexpected EOF";break}i&&a(c+g),t.set(e.subarray(C,A),c),r.b=c+=g,r.p=l=8*A;continue}if(1==m)h=ic,u=sc,d=9,p=5;else{if(2!=m)throw"invalid block type";var v=oc(e,l,31)+257,y=oc(e,l+10,15)+4,x=v+oc(e,l+5,31)+1;l+=14;for(var b=new Gl(x),E=new Gl(19),_=0;_>>4)<16)b[_++]=C;else{var I=0,B=0;for(16==C?(B=3+oc(e,l,3),l+=2,I=b[_-1]):17==C?(B=3+oc(e,l,7),l+=3):18==C&&(B=11+oc(e,l,127),l+=7);B--;)b[_++]=I}}var R=b.subarray(0,v),P=b.subarray(v);d=ac(R),p=ac(P),h=tc(R,d,1),u=tc(P,p,1)}if(l>f){if(s)throw"unexpected EOF";break}}i&&a(c+131072);for(var D=(1<>>4;if((l+=15&I)>f){if(s)throw"unexpected EOF";break}if(!I)throw"invalid length/literal";if(U<256)t[c++]=U;else{if(256==U){F=l,h=null;break}var O=U-254;if(U>264){var N=Vl[_=U-257];O=oc(e,l,(1<>>4;if(!k)throw"invalid distance";l+=15&k;P=Jl[G];if(G>3){N=Hl[G];P+=lc(e,l)&(1<f){if(s)throw"unexpected EOF";break}i&&a(c+131072);for(var z=c+O;c>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function fc(e,t){return uc((pc(e),e.subarray(2,-4)),t)}var mc="undefined"!=typeof TextDecoder&&new TextDecoder;try{mc.decode(dc,{stream:!0}),1}catch(za){}function gc(e,t,r){const n=r.length-e-1;if(t>=r[n])return n-1;if(t<=r[e])return e;let i=e,s=n,a=Math.floor((i+s)/2);for(;t=r[a+1];)t=s&&(i[t][0]=i[e][0]/o[c+1][l],n=i[t][0]*o[l][c]);const h=u-1<=c?s-1:r-u;for(let r=l>=-1?1:-l;r<=h;++r)i[t][r]=(i[e][r]-i[e][r-1])/o[c+1][l+r],n+=i[t][r]*o[l+r][c];u<=c&&(i[t][s]=-i[e][s-1]/o[c+1][u],n+=i[t][s]*o[u][c]),a[s][u]=n;const d=e;e=t,t=d}}let h=r;for(let u=1;u<=n;++u){for(let e=0;e<=r;++e)a[u][e]*=h;h*=r-u}return a}(l,n,e,s,t),h=[];for(let a=0;a=t.length&&t===zc(e,0,t.length)}(e))bc=(new Ic).parse(e);else{const t=zc(e);if(!function(e){const t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"];let r=0;function n(t){const n=e[t-1];return e=e.slice(r+t),r++,n}for(let i=0;i0,s="string"==typeof i.Content&&""!==i.Content;if(e||s){const e=this.parseImage(r[n]);t[i.RelativeFilename||i.Filename]=e}}}}for(const r in e){const n=e[r];void 0!==t[n]?e[r]=t[n]:e[r]=e[r].split("\\").pop()}return e}parseImage(e){const t=e.Content,r=e.RelativeFilename||e.Filename,n=r.slice(r.lastIndexOf(".")+1).toLowerCase();let i;switch(n){case"bmp":i="image/bmp";break;case"jpg":case"jpeg":i="image/jpeg";break;case"png":i="image/png";break;case"tif":i="image/tiff";break;case"tga":null===this.manager.getHandler(".tga")&&console.warn("FBXLoader: TGA loader not found, skipping ",r),i="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+n+'" is not supported.')}if("string"==typeof t)return"data:"+i+";base64,"+t;{const e=new Uint8Array(t);return window.URL.createObjectURL(new Blob([e],{type:i}))}}parseTextures(e){const t=new Map;if("Texture"in bc.Objects){const r=bc.Objects.Texture;for(const n in r){const i=this.parseTexture(r[n],e);t.set(parseInt(n),i)}}return t}parseTexture(e,t){const r=this.loadTexture(e,t);r.ID=e.id,r.name=e.attrName;const n=e.WrapModeU,i=e.WrapModeV,s=void 0!==n?n.value:0,o=void 0!==i?i.value:0;if(r.wrapS=0===s?a.RepeatWrapping:a.ClampToEdgeWrapping,r.wrapT=0===o?a.RepeatWrapping:a.ClampToEdgeWrapping,"Scaling"in e){const t=e.Scaling.value;r.repeat.x=t[0],r.repeat.y=t[1]}return r}loadTexture(e,t){let r;const n=this.textureLoader.path,i=Ec.get(e.id).children;let s;void 0!==i&&i.length>0&&void 0!==t[i[0].ID]&&(r=t[i[0].ID],0!==r.indexOf("blob:")&&0!==r.indexOf("data:")||this.textureLoader.setPath(void 0));const o=e.FileName.slice(-3).toLowerCase();if("tga"===o){const t=this.manager.getHandler(".tga");null===t?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",e.RelativeFilename),s=new a.Texture):(t.setPath(this.textureLoader.path),s=t.load(r))}else"psd"===o?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",e.RelativeFilename),s=new a.Texture):s=this.textureLoader.load(r);return this.textureLoader.setPath(n),s}parseMaterials(e){const t=new Map;if("Material"in bc.Objects){const r=bc.Objects.Material;for(const n in r){const i=this.parseMaterial(r[n],e);null!==i&&t.set(parseInt(n),i)}}return t}parseMaterial(e,t){const r=e.id,n=e.attrName;let i=e.ShadingModel;if("object"==typeof i&&(i=i.value),!Ec.has(r))return null;const s=this.parseParameters(e,t,r);let o;switch(i.toLowerCase()){case"phong":o=new a.MeshPhongMaterial;break;case"lambert":o=new a.MeshLambertMaterial;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',i),o=new a.MeshPhongMaterial}return o.setValues(s),o.name=n,o}parseParameters(e,t,r){const n={};e.BumpFactor&&(n.bumpScale=e.BumpFactor.value),e.Diffuse?n.color=(new a.Color).fromArray(e.Diffuse.value):!e.DiffuseColor||"Color"!==e.DiffuseColor.type&&"ColorRGB"!==e.DiffuseColor.type||(n.color=(new a.Color).fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(n.displacementScale=e.DisplacementFactor.value),e.Emissive?n.emissive=(new a.Color).fromArray(e.Emissive.value):!e.EmissiveColor||"Color"!==e.EmissiveColor.type&&"ColorRGB"!==e.EmissiveColor.type||(n.emissive=(new a.Color).fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(n.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(n.opacity=parseFloat(e.Opacity.value)),n.opacity<1&&(n.transparent=!0),e.ReflectionFactor&&(n.reflectivity=e.ReflectionFactor.value),e.Shininess&&(n.shininess=e.Shininess.value),e.Specular?n.specular=(new a.Color).fromArray(e.Specular.value):e.SpecularColor&&"Color"===e.SpecularColor.type&&(n.specular=(new a.Color).fromArray(e.SpecularColor.value));const i=this;return Ec.get(r).children.forEach((function(e){const r=e.relationship;switch(r){case"Bump":n.bumpMap=i.getTexture(t,e.ID);break;case"Maya|TEX_ao_map":n.aoMap=i.getTexture(t,e.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":n.map=i.getTexture(t,e.ID),void 0!==n.map&&("colorSpace"in n.map?n.map.colorSpace="srgb":n.map.encoding=3001);break;case"DisplacementColor":n.displacementMap=i.getTexture(t,e.ID);break;case"EmissiveColor":n.emissiveMap=i.getTexture(t,e.ID),void 0!==n.emissiveMap&&("colorSpace"in n.emissiveMap?n.emissiveMap.colorSpace="srgb":n.emissiveMap.encoding=3001);break;case"NormalMap":case"Maya|TEX_normal_map":n.normalMap=i.getTexture(t,e.ID);break;case"ReflectionColor":n.envMap=i.getTexture(t,e.ID),void 0!==n.envMap&&(n.envMap.mapping=a.EquirectangularReflectionMapping,"colorSpace"in n.envMap?n.envMap.colorSpace="srgb":n.envMap.encoding=3001);break;case"SpecularColor":n.specularMap=i.getTexture(t,e.ID),void 0!==n.specularMap&&("colorSpace"in n.specularMap?n.specularMap.colorSpace="srgb":n.specularMap.encoding=3001);break;case"TransparentColor":case"TransparencyFactor":n.alphaMap=i.getTexture(t,e.ID),n.transparent=!0;break;default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",r)}})),n}getTexture(e,t){return"LayeredTexture"in bc.Objects&&t in bc.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=Ec.get(t).children[0].ID),e.get(t)}parseDeformers(){const e={},t={};if("Deformer"in bc.Objects){const r=bc.Objects.Deformer;for(const n in r){const i=r[n],s=Ec.get(parseInt(n));if("Skin"===i.attrType){const t=this.parseSkeleton(s,r);t.ID=n,s.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),t.geometryID=s.parents[0].ID,e[n]=t}else if("BlendShape"===i.attrType){const e={id:n};e.rawTargets=this.parseMorphTargets(s,r),e.id=n,s.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[n]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){const r=[];return e.children.forEach((function(e){const n=t[e.ID];if("Cluster"!==n.attrType)return;const i={ID:e.ID,indices:[],weights:[],transformLink:(new a.Matrix4).fromArray(n.TransformLink.a)};"Indexes"in n&&(i.indices=n.Indexes.a,i.weights=n.Weights.a),r.push(i)})),{rawBones:r,bones:[]}}parseMorphTargets(e,t){const r=[];for(let n=0;n1?s=o:o.length>0?s=o[0]:(s=new a.MeshPhongMaterial({color:13421772}),o.push(s)),"color"in i.attributes&&o.forEach((function(e){e.vertexColors=!0})),i.FBX_Deformer?(n=new a.SkinnedMesh(i,s),n.normalizeSkinWeights()):n=new a.Mesh(i,s),n}createCurve(e,t){const r=e.children.reduce((function(e,r){return t.has(r.ID)&&(e=t.get(r.ID)),e}),null),n=new a.LineBasicMaterial({color:3342591,linewidth:1});return new a.Line(r,n)}getTransformData(e,t){const r={};"InheritType"in t&&(r.inheritType=parseInt(t.InheritType.value)),r.eulerOrder="RotationOrder"in t?kc(t.RotationOrder.value):"ZYX","Lcl_Translation"in t&&(r.translation=t.Lcl_Translation.value),"PreRotation"in t&&(r.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(r.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(r.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(r.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(r.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(r.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(r.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(r.rotationPivot=t.RotationPivot.value),e.userData.transformData=r}setLookAtProperties(e,t){if("LookAtProperty"in t){Ec.get(e.ID).children.forEach((function(t){if("LookAtProperty"===t.relationship){const r=bc.Objects.Model[t.ID];if("Lcl_Translation"in r){const t=r.Lcl_Translation.value;void 0!==e.target?(e.target.position.fromArray(t),_c.add(e.target)):e.lookAt((new a.Vector3).fromArray(t))}}}))}}bindSkeleton(e,t,r){const n=this.parsePoseNodes();for(const i in e){const s=e[i];Ec.get(parseInt(s.ID)).parents.forEach((function(e){if(t.has(e.ID)){const t=e.ID;Ec.get(t).parents.forEach((function(e){if(r.has(e.ID)){r.get(e.ID).bind(new a.Skeleton(s.bones),n[e.ID])}}))}}))}}parsePoseNodes(){const e={};if("Pose"in bc.Objects){const t=bc.Objects.Pose;for(const r in t)if("BindPose"===t[r].attrType&&t[r].NbPoseNodes>0){const n=t[r].PoseNode;Array.isArray(n)?n.forEach((function(t){e[t.Node]=(new a.Matrix4).fromArray(t.Matrix.a)})):e[n.Node]=(new a.Matrix4).fromArray(n.Matrix.a)}}return e}createAmbientLight(){if("GlobalSettings"in bc&&"AmbientColor"in bc.GlobalSettings){const e=bc.GlobalSettings.AmbientColor.value,t=e[0],r=e[1],n=e[2];if(0!==t||0!==r||0!==n){const e=new a.Color(t,r,n);_c.add(new a.AmbientLight(e,1))}}}}class wc{parse(e){const t=new Map;if("Geometry"in bc.Objects){const r=bc.Objects.Geometry;for(const n in r){const i=Ec.get(parseInt(n)),s=this.parseGeometry(i,r[n],e);t.set(parseInt(n),s)}}return t}parseGeometry(e,t,r){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,r);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,r){const n=r.skeletons,i=[],s=e.parents.map((function(e){return bc.Objects.Model[e.ID]}));if(0===s.length)return;const a=e.children.reduce((function(e,t){return void 0!==n[t.ID]&&(e=n[t.ID]),e}),null);e.children.forEach((function(e){void 0!==r.morphTargets[e.ID]&&i.push(r.morphTargets[e.ID])}));const o=s[0],l={};"RotationOrder"in o&&(l.eulerOrder=kc(o.RotationOrder.value)),"InheritType"in o&&(l.inheritType=parseInt(o.InheritType.value)),"GeometricTranslation"in o&&(l.translation=o.GeometricTranslation.value),"GeometricRotation"in o&&(l.rotation=o.GeometricRotation.value),"GeometricScaling"in o&&(l.scale=o.GeometricScaling.value);const c=Nc(l);return this.genGeometry(t,a,i,c)}genGeometry(e,t,r,n){const i=new a.BufferGeometry;e.attrName&&(i.name=e.attrName);const s=this.parseGeoNode(e,t),o=this.genBuffers(s),l=new a.Float32BufferAttribute(o.vertex,3);if(l.applyMatrix4(n),i.setAttribute("position",l),o.colors.length>0&&i.setAttribute("color",new a.Float32BufferAttribute(o.colors,3)),t&&(i.setAttribute("skinIndex",new a.Uint16BufferAttribute(o.weightsIndices,4)),i.setAttribute("skinWeight",new a.Float32BufferAttribute(o.vertexWeights,4)),i.FBX_Deformer=t),o.normal.length>0){const e=(new a.Matrix3).getNormalMatrix(n),t=new a.Float32BufferAttribute(o.normal,3);t.applyNormalMatrix(e),i.setAttribute("normal",t)}if(o.uvs.forEach((function(e,t){let r="uv"+(t+1).toString();0===t&&(r="uv"),i.setAttribute(r,new a.Float32BufferAttribute(o.uvs[t],2))})),s.material&&"AllSame"!==s.material.mappingType){let e=o.materialIndex[0],t=0;if(o.materialIndex.forEach((function(r,n){r!==e&&(i.addGroup(t,n-t,e),e=r,t=n)})),i.groups.length>0){const t=i.groups[i.groups.length-1],r=t.start+t.count;r!==o.materialIndex.length&&i.addGroup(r,o.materialIndex.length-r,e)}0===i.groups.length&&i.addGroup(0,o.materialIndex.length,o.materialIndex[0])}return this.addMorphTargets(i,e,r,n),i}parseGeoNode(e,t){const r={};if(r.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],r.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(r.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(r.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(r.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){r.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&r.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return r.weightTable={},null!==t&&(r.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(n,i){void 0===r.weightTable[n]&&(r.weightTable[n]=[]),r.weightTable[n].push({id:t,weight:e.weights[i]})}))}))),r}genBuffers(e){const t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]};let r=0,n=0,i=!1,s=[],a=[],o=[],l=[],c=[],h=[];const u=this;return e.vertexIndices.forEach((function(d,p){let f,m=!1;d<0&&(d^=-1,m=!0);let g=[],A=[];if(s.push(3*d,3*d+1,3*d+2),e.color){const t=Fc(p,r,d,e.color);o.push(t[0],t[1],t[2])}if(e.skeleton){if(void 0!==e.weightTable[d]&&e.weightTable[d].forEach((function(e){A.push(e.weight),g.push(e.id)})),A.length>4){i||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),i=!0);const e=[0,0,0,0],t=[0,0,0,0];A.forEach((function(r,n){let i=r,s=g[n];t.forEach((function(t,r,n){if(i>t){n[r]=i,i=t;const a=e[r];e[r]=s,s=a}}))})),g=e,A=t}for(;A.length<4;)A.push(0),g.push(0);for(let e=0;e<4;++e)c.push(A[e]),h.push(g[e])}if(e.normal){const t=Fc(p,r,d,e.normal);a.push(t[0],t[1],t[2])}e.material&&"AllSame"!==e.material.mappingType&&(f=Fc(p,r,d,e.material)[0]),e.uv&&e.uv.forEach((function(e,t){const n=Fc(p,r,d,e);void 0===l[t]&&(l[t]=[]),l[t].push(n[0]),l[t].push(n[1])})),n++,m&&(u.genFace(t,e,s,f,a,o,l,c,h,n),r++,n=0,s=[],a=[],o=[],l=[],c=[],h=[])})),t}genFace(e,t,r,n,i,s,a,o,l,c){for(let h=2;h1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");const s=e.get(i[0].ID);r[n]={name:t[n].attrName,layer:s}}return r}addClip(e){let t=[];const r=this;return e.layer.forEach((function(e){t=t.concat(r.generateTracks(e))})),new a.AnimationClip(e.name,-1,t)}generateTracks(e){const t=[];let r=new a.Vector3,n=new a.Quaternion,i=new a.Vector3;if(e.transform&&e.transform.decompose(r,n,i),r=r.toArray(),n=(new a.Euler).setFromQuaternion(n,e.eulerOrder).toArray(),i=i.toArray(),void 0!==e.T&&Object.keys(e.T.curves).length>0){const n=this.generateVectorTrack(e.modelName,e.T.curves,r,"position");void 0!==n&&t.push(n)}if(void 0!==e.R&&Object.keys(e.R.curves).length>0){const r=this.generateRotationTrack(e.modelName,e.R.curves,n,e.preRotation,e.postRotation,e.eulerOrder);void 0!==r&&t.push(r)}if(void 0!==e.S&&Object.keys(e.S.curves).length>0){const r=this.generateVectorTrack(e.modelName,e.S.curves,i,"scale");void 0!==r&&t.push(r)}if(void 0!==e.DeformPercent){const r=this.generateMorphTrack(e);void 0!==r&&t.push(r)}return t}generateVectorTrack(e,t,r,n){const i=this.getTimesForAllAxes(t),s=this.getKeyframeTrackValues(i,t,r);return new a.VectorKeyframeTrack(e+"."+n,i,s)}generateRotationTrack(e,t,r,n,i,s){void 0!==t.x&&(this.interpolateRotations(t.x),t.x.values=t.x.values.map(a.MathUtils.degToRad)),void 0!==t.y&&(this.interpolateRotations(t.y),t.y.values=t.y.values.map(a.MathUtils.degToRad)),void 0!==t.z&&(this.interpolateRotations(t.z),t.z.values=t.z.values.map(a.MathUtils.degToRad));const o=this.getTimesForAllAxes(t),l=this.getKeyframeTrackValues(o,t,r);void 0!==n&&((n=n.map(a.MathUtils.degToRad)).push(s),n=(new a.Euler).fromArray(n),n=(new a.Quaternion).setFromEuler(n)),void 0!==i&&((i=i.map(a.MathUtils.degToRad)).push(s),i=(new a.Euler).fromArray(i),i=(new a.Quaternion).setFromEuler(i).invert());const c=new a.Quaternion,h=new a.Euler,u=[];for(let a=0;a1){let e=1,r=t[0];for(let n=1;n=180){const s=i/180,a=n/s;let o=r+a;const l=e.times[t-1],c=(e.times[t]-l)/s;let h=l+c;const u=[],d=[];for(;h1&&(r=e[1].replace(/^(\w+)::/,""),n=e[2]),{id:t,name:r,type:n}}parseNodeProperty(e,t,r){let n=t[1].replace(/^"/,"").replace(/"$/,"").trim(),i=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===n&&","===i&&(i=r.replace(/"/g,"").replace(/,$/,"").trim());const s=this.getCurrentNode();if("Properties70"!==s.name){if("C"===n){const e=i.split(",").slice(1),t=parseInt(e[0]),r=parseInt(e[1]);let a=i.split(",").slice(3);a=a.map((function(e){return e.trim().replace(/^"/,"")})),n="connections",i=[t,r],function(e,t){for(let r=0,n=e.length,i=t.length;r=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){const r={},n=t>=7500?e.getUint64():e.getUint32(),i=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();const s=e.getUint8(),a=e.getString(s);if(0===n)return null;const o=[];for(let u=0;u0?o[0]:"",c=o.length>1?o[1]:"",h=o.length>2?o[2]:"";for(r.singleProperty=1===i&&e.getOffset()===n;n>e.getOffset();){const n=this.parseNode(e,t);null!==n&&this.parseSubNode(a,r,n)}return r.propertyList=o,"number"==typeof l&&(r.id=l),""!==c&&(r.attrName=c),""!==h&&(r.attrType=h),""!==a&&(r.name=a),r}parseSubNode(e,t,r){if(!0===r.singleProperty){const e=r.propertyList[0];Array.isArray(e)?(t[r.name]=r,r.a=e):t[r.name]=e}else if("Connections"===e&&"C"===r.name){const e=[];r.propertyList.forEach((function(t,r){0!==r&&e.push(t)})),void 0===t.connections&&(t.connections=[]),t.connections.push(e)}else if("Properties70"===r.name){Object.keys(r).forEach((function(e){t[e]=r[e]}))}else if("Properties70"===e&&"P"===r.name){let e=r.propertyList[0],n=r.propertyList[1];const i=r.propertyList[2],s=r.propertyList[3];let a;0===e.indexOf("Lcl ")&&(e=e.replace("Lcl ","Lcl_")),0===n.indexOf("Lcl ")&&(n=n.replace("Lcl ","Lcl_")),a="Color"===n||"ColorRGB"===n||"Vector"===n||"Vector3D"===n||0===n.indexOf("Lcl_")?[r.propertyList[4],r.propertyList[5],r.propertyList[6]]:r.propertyList[4],t[e]={type:n,type2:i,flag:s,value:a}}else void 0===t[r.name]?"number"==typeof r.id?(t[r.name]={},t[r.name][r.id]=r):t[r.name]=r:"PoseNode"===r.name?(Array.isArray(t[r.name])||(t[r.name]=[t[r.name]]),t[r.name].push(r)):void 0===t[r.name][r.id]&&(t[r.name][r.id]=r)}parseProperty(e){const t=e.getString(1);let r;switch(t){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return r=e.getUint32(),e.getArrayBuffer(r);case"S":return r=e.getUint32(),e.getString(r);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":const n=e.getUint32(),i=e.getUint32(),s=e.getUint32();if(0===i)switch(t){case"b":case"c":return e.getBooleanArray(n);case"d":return e.getFloat64Array(n);case"f":return e.getFloat32Array(n);case"i":return e.getInt32Array(n);case"l":return e.getInt64Array(n)}const a=fc(new Uint8Array(e.getArrayBuffer(s))),o=new Bc(a.buffer);switch(t){case"b":case"c":return o.getBooleanArray(n);case"d":return o.getFloat64Array(n);case"f":return o.getFloat32Array(n);case"i":return o.getInt32Array(n);case"l":return o.getInt64Array(n)}default:throw new Error("THREE.FBXLoader: Unknown property type "+t)}}}class Bc{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return 1==(1&this.getUint8())}getBooleanArray(e){const t=[];for(let r=0;r=0&&(t=t.slice(0,r)),a.LoaderUtils.decodeText(new Uint8Array(t))}}class Rc{add(e,t){this[e]=t}}function Pc(e){const t=e.match(/FBXVersion: (\d+)/);if(t){return parseInt(t[1])}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function Dc(e){return e/46186158e3}const Lc=[];function Fc(e,t,r,n){let i;switch(n.mappingType){case"ByPolygonVertex":i=e;break;case"ByPolygon":i=t;break;case"ByVertice":i=r;break;case"AllSame":i=n.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+n.mappingType)}"IndexToDirect"===n.referenceType&&(i=n.indices[i]);const s=i*n.dataSize,a=s+n.dataSize;return function(e,t,r,n){for(let i=r,s=0;io.useLoader.preload(Sc,e),Vc.clear=e=>o.useLoader.clear(Sc,e);const Hc=new WeakMap;class jc extends a.Loader{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,r,n){const i=new a.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{const r={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,r).then(t).catch(n)}),r,n)}decodeDracoFile(e,t,r,n){const i={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(const o in t.attributeTypes){const e=t.attributeTypes[o];void 0!==e.BYTES_PER_ELEMENT&&(t.attributeTypes[o]=e.name)}const r=JSON.stringify(t);if(Hc.has(e)){const t=Hc.get(e);if(t.key===r)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let n;const i=this.workerNextTaskID++,s=e.byteLength,a=this._getWorker(i,s).then((r=>(n=r,new Promise(((r,s)=>{n._callbacks[i]={resolve:r,reject:s},n.postMessage({type:"decode",id:i,taskConfig:t,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return a.catch((()=>!0)).then((()=>{n&&i&&this._releaseTask(n,i)})),Hc.set(e,{key:r,promise:a}),a}_createGeometry(e){const t=new a.BufferGeometry;e.index&&t.setIndex(new a.BufferAttribute(e.index.array,1));for(let r=0;r{r.load(e,t,void 0,n)}))}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{const r=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const n=Wc.toString(),i=["/* draco decoder */",r,"","/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i]))})),this.decoderPending}_getWorker(e,t){return this._initDecoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}dispose(){for(let e=0;e{const t=e.draco,a=new t.Decoder,o=new t.DecoderBuffer;o.Init(new Int8Array(n),n.byteLength);try{const e=function(e,t,n,i){const s=i.attributeIDs,a=i.attributeTypes;let o,l;const c=t.GetEncodedGeometryType(n);if(c===e.TRIANGULAR_MESH)o=new e.Mesh,l=t.DecodeBufferToMesh(n,o);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");o=new e.PointCloud,l=t.DecodeBufferToPointCloud(n,o)}if(!l.ok()||0===o.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const h={index:null,attributes:[]};for(const u in s){const n=self[a[u]];let l,c;if(i.useUniqueIDs)c=s[u],l=t.GetAttributeByUniqueId(o,c);else{if(c=t.GetAttributeId(o,e[s[u]]),-1===c)continue;l=t.GetAttribute(o,c)}h.attributes.push(r(e,t,o,u,n,l))}c===e.TRIANGULAR_MESH&&(h.index=function(e,t,r){const n=r.num_faces(),i=3*n,s=4*i,a=e._malloc(s);t.GetTrianglesUInt32Array(r,s,a);const o=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:o,itemSize:1}}(e,t,o));return e.destroy(o),h}(t,a,o,s),n=e.attributes.map((e=>e.array.buffer));e.index&&n.push(e.index.array.buffer),self.postMessage({type:"decode",id:i.id,geometry:e},n)}catch(l){console.error(l),self.postMessage({type:"error",id:i.id,error:l.message})}finally{t.destroy(o),t.destroy(a)}}))}}}let Xc;const Yc=()=>{if(Xc)return Xc;const e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if("object"!=typeof WebAssembly)return{supported:!1};let r,n="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";WebAssembly.validate(e)&&(n="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");const i=WebAssembly.instantiate(function(e){const r=new Uint8Array(e.length);for(let t=0;t96?n-71:n>64?n-65:n>47?n+4:n>46?63:62}let n=0;for(let i=0;i{r=e.instance,r.exports.__wasm_call_ctors()}));function s(e,t,n,i,s,a){const o=r.exports.sbrk,l=n+3&-4,c=o(l*i),h=o(s.length),u=new Uint8Array(r.exports.memory.buffer);u.set(s,h);const d=e(c,n,i,h,s.length);if(0===d&&a&&a(c,l,i),t.set(u.subarray(c,c+n*i)),o(c-o(0)),0!==d)throw new Error(`Malformed buffer data: ${d}`)}const a={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},o={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return Xc={ready:i,supported:!0,decodeVertexBuffer(e,t,n,i,o){s(r.exports.meshopt_decodeVertexBuffer,e,t,n,i,r.exports[a[o]])},decodeIndexBuffer(e,t,n,i){s(r.exports.meshopt_decodeIndexBuffer,e,t,n,i)},decodeIndexSequence(e,t,n,i){s(r.exports.meshopt_decodeIndexSequence,e,t,n,i)},decodeGltfBuffer(e,t,n,i,l,c){s(r.exports[o[l]],e,t,n,i,r.exports[a[c]])}},Xc};function qc(e,t){if(t===a.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t===a.TriangleFanDrawMode||t===a.TriangleStripDrawMode){let r=e.getIndex();if(null===r){const t=[],n=e.getAttribute("position");if(void 0===n)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e=2.0 are supported.")));const l=new Hh(i,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});l.fileLoader.setRequestHeader(this.requestHeader);for(let a=0;a=0&&void 0===o[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}l.setExtensions(s),l.setPlugins(o),l.parse(r,n)}parseAsync(e,t){const r=this;return new Promise((function(n,i){r.parse(e,t,n,i)}))}}function Zc(){let e={};return{get:function(t){return e[t]},add:function(t,r){e[t]=r},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const $c={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class eh{constructor(e){this.parser=e,this.name=$c.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let r=0,n=t.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,i.source,s)}}class dh{constructor(e){this.parser=e,this.name=$c.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,r=this.parser,n=r.json,i=n.textures[e];if(!i.extensions||!i.extensions[t])return null;const s=i.extensions[t],a=n.images[s.source];let o=r.textureLoader;if(a.uri){const e=r.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(i){if(i)return r.loadTextureImage(e,s.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class ph{constructor(e){this.parser=e,this.name=$c.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,r=this.parser,n=r.json,i=n.textures[e];if(!i.extensions||!i.extensions[t])return null;const s=i.extensions[t],a=n.images[s.source];let o=r.textureLoader;if(a.uri){const e=r.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(i){if(i)return r.loadTextureImage(e,s.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class fh{constructor(e){this.name=$c.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,r=t.bufferViews[e];if(r.extensions&&r.extensions[this.name]){const e=r.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return n.then((function(t){const r=e.byteOffset||0,n=e.byteLength||0,s=e.count,a=e.byteStride,o=new Uint8Array(t,r,n);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(s,a,o,e.mode,e.filter).then((function(e){return e.buffer})):i.ready.then((function(){const t=new ArrayBuffer(s*a);return i.decodeGltfBuffer(new Uint8Array(t),s,a,o,e.mode,e.filter),t}))}))}return null}}class mh{constructor(e){this.name=$c.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,r=t.nodes[e];if(!r.extensions||!r.extensions[this.name]||void 0===r.mesh)return null;const n=t.meshes[r.mesh];for(const a of n.primitives)if(a.mode!==wh.TRIANGLES&&a.mode!==wh.TRIANGLE_STRIP&&a.mode!==wh.TRIANGLE_FAN&&void 0!==a.mode)return null;const i=r.extensions[this.name].attributes,s=[],o={};for(const a in i)s.push(this.parser.getDependency("accessor",i[a]).then((e=>(o[a]=e,o[a]))));return s.length<1?null:(s.push(this.parser.createNodeMesh(e)),Promise.all(s).then((e=>{const t=e.pop(),r=t.isGroup?t.children:[t],n=e[0].count,i=[];for(const s of r){const e=new a.Matrix4,t=new a.Vector3,r=new a.Quaternion,l=new a.Vector3(1,1,1),c=new a.InstancedMesh(s.geometry,s.material,n);for(let i=0;i=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Ph={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Dh={CUBICSPLINE:void 0,LINEAR:a.InterpolateLinear,STEP:a.InterpolateDiscrete},Lh="OPAQUE",Fh="MASK",Uh="BLEND";function Oh(e,t,r){for(const n in r.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=r.extensions[n])}function Nh(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function kh(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let r=0,n=t.weights.length;r-1,i=n?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||r||n&&i<98?this.textureLoader=new a.TextureLoader(this.options.manager):this.textureLoader=new a.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new a.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const r=this,n=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])})).then((function(t){const s={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:r,userData:{}};Oh(i,s,n),Nh(s,n),Promise.all(r._invokeAll((function(e){return e.afterRoot&&e.afterRoot(s)}))).then((function(){e(s)}))})).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],r=this.json.meshes||[];for(let n=0,i=t.length;n{const r=this.associations.get(e);null!=r&&this.associations.set(t,r);for(const[n,s]of e.children.entries())i(s,t.children[n])};return i(r,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let r=0;r=2&&f.setY(t,u[e*s+1]),s>=3&&f.setZ(t,u[e*s+2]),s>=4&&f.setW(t,u[e*s+3]),s>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return f}))}loadTexture(e){const t=this.json,r=this.options,n=t.textures[e].source,i=t.images[n];let s=this.textureLoader;if(i.uri){const e=r.manager.getHandler(i.uri);null!==e&&(s=e)}return this.loadTextureImage(e,n,s)}loadTextureImage(e,t,r){const n=this,i=this.json,s=i.textures[e],o=i.images[t],l=(o.uri||o.bufferView)+":"+s.sampler;if(this.textureCache[l])return this.textureCache[l];const c=this.loadImageSource(t,r).then((function(t){t.flipY=!1,t.name=s.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);const r=(i.samplers||{})[s.sampler]||{};return t.magFilter=Th[r.magFilter]||a.LinearFilter,t.minFilter=Th[r.minFilter]||a.LinearMipmapLinearFilter,t.wrapS=Ih[r.wrapS]||a.RepeatWrapping,t.wrapT=Ih[r.wrapT]||a.RepeatWrapping,n.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[l]=c,c}loadImageSource(e,t){const r=this,n=this.json,i=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const s=n.images[e],o=self.URL||self.webkitURL;let l=s.uri||"",c=!1;if(void 0!==s.bufferView)l=r.getDependency("bufferView",s.bufferView).then((function(e){c=!0;const t=new Blob([e],{type:s.mimeType});return l=o.createObjectURL(t),l}));else if(void 0===s.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const h=Promise.resolve(l).then((function(e){return new Promise((function(r,n){let s=r;!0===t.isImageBitmapLoader&&(s=function(e){const t=new a.Texture(e);t.needsUpdate=!0,r(t)}),t.load(a.LoaderUtils.resolveURL(e,i.path),s,void 0,n)}))})).then((function(e){var t;return!0===c&&o.revokeObjectURL(l),e.userData.mimeType=s.mimeType||((t=s.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",l),e}));return this.sourceCache[e]=h,h}assignTexture(e,t,r,n){const i=this;return this.getDependency("texture",r.index).then((function(s){if(!s)return null;if(void 0!==r.texCoord&&r.texCoord>0&&((s=s.clone()).channel=r.texCoord),i.extensions[$c.KHR_TEXTURE_TRANSFORM]){const e=void 0!==r.extensions?r.extensions[$c.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=i.associations.get(s);s=i.extensions[$c.KHR_TEXTURE_TRANSFORM].extendTexture(s,e),i.associations.set(s,t)}}return void 0!==n&&("colorSpace"in s?s.colorSpace=3001===n?"srgb":"srgb-linear":s.encoding=n),e[t]=s,s}))}assignFinalMaterial(e){const t=e.geometry;let r=e.material;const n=void 0===t.attributes.tangent,i=void 0!==t.attributes.color,s=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+r.uuid;let t=this.cache.get(e);t||(t=new a.PointsMaterial,a.Material.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,t.sizeAttenuation=!1,this.cache.add(e,t)),r=t}else if(e.isLine){const e="LineBasicMaterial:"+r.uuid;let t=this.cache.get(e);t||(t=new a.LineBasicMaterial,a.Material.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,this.cache.add(e,t)),r=t}if(n||i||s){let e="ClonedMaterial:"+r.uuid+":";n&&(e+="derivative-tangents:"),i&&(e+="vertex-colors:"),s&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=r.clone(),i&&(t.vertexColors=!0),s&&(t.flatShading=!0),n&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(r))),r=t}e.material=r}getMaterialType(){return a.MeshStandardMaterial}loadMaterial(e){const t=this,r=this.json,n=this.extensions,i=r.materials[e];let s;const o={},l=[];if((i.extensions||{})[$c.KHR_MATERIALS_UNLIT]){const e=n[$c.KHR_MATERIALS_UNLIT];s=e.getMaterialType(),l.push(e.extendParams(o,i,t))}else{const r=i.pbrMetallicRoughness||{};if(o.color=new a.Color(1,1,1),o.opacity=1,Array.isArray(r.baseColorFactor)){const e=r.baseColorFactor;o.color.fromArray(e),o.opacity=e[3]}void 0!==r.baseColorTexture&&l.push(t.assignTexture(o,"map",r.baseColorTexture,3001)),o.metalness=void 0!==r.metallicFactor?r.metallicFactor:1,o.roughness=void 0!==r.roughnessFactor?r.roughnessFactor:1,void 0!==r.metallicRoughnessTexture&&(l.push(t.assignTexture(o,"metalnessMap",r.metallicRoughnessTexture)),l.push(t.assignTexture(o,"roughnessMap",r.metallicRoughnessTexture))),s=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),l.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)}))))}!0===i.doubleSided&&(o.side=a.DoubleSide);const c=i.alphaMode||Lh;if(c===Uh?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===Fh&&(o.alphaTest=void 0!==i.alphaCutoff?i.alphaCutoff:.5)),void 0!==i.normalTexture&&s!==a.MeshBasicMaterial&&(l.push(t.assignTexture(o,"normalMap",i.normalTexture)),o.normalScale=new a.Vector2(1,1),void 0!==i.normalTexture.scale)){const e=i.normalTexture.scale;o.normalScale.set(e,e)}return void 0!==i.occlusionTexture&&s!==a.MeshBasicMaterial&&(l.push(t.assignTexture(o,"aoMap",i.occlusionTexture)),void 0!==i.occlusionTexture.strength&&(o.aoMapIntensity=i.occlusionTexture.strength)),void 0!==i.emissiveFactor&&s!==a.MeshBasicMaterial&&(o.emissive=(new a.Color).fromArray(i.emissiveFactor)),void 0!==i.emissiveTexture&&s!==a.MeshBasicMaterial&&l.push(t.assignTexture(o,"emissiveMap",i.emissiveTexture,3001)),Promise.all(l).then((function(){const r=new s(o);return i.name&&(r.name=i.name),Nh(r,i),t.associations.set(r,{materials:e}),i.extensions&&Oh(n,r,i),r}))}createUniqueName(e){const t=a.PropertyBinding.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,r=this.extensions,n=this.primitiveCache;function i(e){return r[$c.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(r){return jh(r,e,t)}))}const s=[];for(let o=0,l=e.length;o0&&kh(d,i),d.name=t.createUniqueName(i.name||"mesh_"+e),Nh(d,i),h.extensions&&Oh(n,d,h),t.assignFinalMaterial(d),c.push(d)}for(let n=0,i=c.length;n1?new a.Group:1===t.length?t[0]:new a.Object3D,o!==t[0])for(let e=0,r=t.length;e{const t=new Map;for(const[r,i]of n.associations)(r instanceof a.Material||r instanceof a.Texture)&&t.set(r,i);return e.traverse((e=>{const r=n.associations.get(e);null!=r&&t.set(e,r)})),t})(i),i}))}}function jh(e,t,r){const n=t.attributes,i=[];function s(t,n){return r.getDependency("accessor",t).then((function(t){e.setAttribute(n,t)}))}for(const a in n){const t=Rh[a]||a.toLowerCase();t in e.attributes||i.push(s(n[a],t))}if(void 0!==t.indices&&!e.index){const n=r.getDependency("accessor",t.indices).then((function(t){e.setIndex(t)}));i.push(n)}return Nh(e,t),function(e,t,r){const n=t.attributes,i=new a.Box3;if(void 0===n.POSITION)return;{const e=r.json.accessors[n.POSITION],t=e.min,s=e.max;if(void 0===t||void 0===s)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(i.set(new a.Vector3(t[0],t[1],t[2]),new a.Vector3(s[0],s[1],s[2])),e.normalized){const t=Qh(Ch[e.componentType]);i.min.multiplyScalar(t),i.max.multiplyScalar(t)}}const s=t.targets;if(void 0!==s){const e=new a.Vector3,t=new a.Vector3;for(let n=0,i=s.length;n{r&&r(n),e&&(Wh||(Wh=new jc),Wh.setDecoderPath("string"==typeof e?e:"https://www.gstatic.com/draco/versioned/decoders/1.4.3/"),n.setDRACOLoader(Wh)),t&&n.setMeshoptDecoder("function"==typeof Yc?Yc():Yc)}}function Yh(e,t=!0,r=!0,n){return(0,o.useLoader)(Jc,e,Xh(t,r,n))}Yh.preload=(e,t=!0,r=!0,n)=>o.useLoader.preload(Jc,e,Xh(t,r,n)),Yh.clear=e=>o.useLoader.clear(Jc,e);class qh{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e{const n=this._getIdleWorker();-1!==n?(this._initWorker(n),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}class Kh{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class Jh{constructor(e,t,r,n){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(e.buffer,e.byteOffset+t,r),this._littleEndian=n,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint8Array(e){const t=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,e);return this._offset+=e,t}_skip(e){return this._offset+=e,this}_scan(e,t){void 0===t&&(t=0);const r=this._offset;let n=0;for(;this._dataView.getUint8(this._offset)!==t&&ne.arrayBuffer())).then((e=>WebAssembly.instantiate(e,nu))).then(this._init):WebAssembly.instantiate(Buffer.from(su,"base64"),nu).then(this._init),eu)}_init(e){tu=e.instance,nu.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!tu)throw new Error("ZSTDDecoder: Await .init() before decoding.");const r=e.byteLength,n=tu.exports.malloc(r);ru.set(e,n),t=t||Number(tu.exports.ZSTD_findDecompressedSize(n,r));const i=tu.exports.malloc(t),s=tu.exports.ZSTD_decompress(i,t,n,r),a=ru.slice(i,i+s);return tu.exports.free(n),tu.exports.free(i),a}}const su="AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigCACACaiAAQQZ2IgFBAnRBsB5qKAIAaiAAQSBxIgBFaiABRSAAQQV2cWoFQbh/CwsdACAAKAKQ4gEQWiAAQQA2AqDiASAAQgA3A5DiAQu1AwEFfyMAQZACayIKJABBuH8hBgJAIAVFDQAgBCwAACIIQf8BcSEHAkAgCEF/TARAIAdBgn9qQQF2IgggBU8NAkFsIQYgB0GBf2oiBUGAAk8NAiAEQQFqIQdBACEGA0AgBiAFTwRAIAUhBiAIIQcMAwUgACAGaiAHIAZBAXZqIgQtAABBBHY6AAAgACAGQQFyaiAELQAAQQ9xOgAAIAZBAmohBgwBCwAACwALIAcgBU8NASAAIARBAWogByAKEFMiBhADDQELIAYhBEEAIQYgAUEAQTQQECEJQQAhBQNAIAQgBkcEQCAAIAZqIggtAAAiAUELSwRAQWwhBgwDBSAJIAFBAnRqIgEgASgCAEEBajYCACAGQQFqIQZBASAILQAAdEEBdSAFaiEFDAILAAsLQWwhBiAFRQ0AIAUQFEEBaiIBQQxLDQAgAyABNgIAQQFBASABdCAFayIDEBQiAXQgA0cNACAAIARqIAFBAWoiADoAACAJIABBAnRqIgAgACgCAEEBajYCACAJKAIEIgBBAkkgAEEBcXINACACIARBAWo2AgAgB0EBaiEGCyAKQZACaiQAIAYLxhEBDH8jAEHwAGsiBSQAQWwhCwJAIANBCkkNACACLwAAIQogAi8AAiEJIAIvAAQhByAFQQhqIAQQDgJAIAMgByAJIApqakEGaiIMSQ0AIAUtAAohCCAFQdgAaiACQQZqIgIgChAGIgsQAw0BIAVBQGsgAiAKaiICIAkQBiILEAMNASAFQShqIAIgCWoiAiAHEAYiCxADDQEgBUEQaiACIAdqIAMgDGsQBiILEAMNASAAIAFqIg9BfWohECAEQQRqIQZBASELIAAgAUEDakECdiIDaiIMIANqIgIgA2oiDiEDIAIhBCAMIQcDQCALIAMgEElxBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgCS0AAyELIAcgBiAFQUBrIAgQAkECdGoiCS8BADsAACAFQUBrIAktAAIQASAJLQADIQogBCAGIAVBKGogCBACQQJ0aiIJLwEAOwAAIAVBKGogCS0AAhABIAktAAMhCSADIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgDS0AAyENIAAgC2oiCyAGIAVB2ABqIAgQAkECdGoiAC8BADsAACAFQdgAaiAALQACEAEgAC0AAyEAIAcgCmoiCiAGIAVBQGsgCBACQQJ0aiIHLwEAOwAAIAVBQGsgBy0AAhABIActAAMhByAEIAlqIgkgBiAFQShqIAgQAkECdGoiBC8BADsAACAFQShqIAQtAAIQASAELQADIQQgAyANaiIDIAYgBUEQaiAIEAJBAnRqIg0vAQA7AAAgBUEQaiANLQACEAEgACALaiEAIAcgCmohByAEIAlqIQQgAyANLQADaiEDIAVB2ABqEA0gBUFAaxANciAFQShqEA1yIAVBEGoQDXJFIQsMAQsLIAQgDksgByACS3INAEFsIQsgACAMSw0BIAxBfWohCQNAQQAgACAJSSAFQdgAahAEGwRAIAAgBiAFQdgAaiAIEAJBAnRqIgovAQA7AAAgBUHYAGogCi0AAhABIAAgCi0AA2oiACAGIAVB2ABqIAgQAkECdGoiCi8BADsAACAFQdgAaiAKLQACEAEgACAKLQADaiEADAEFIAxBfmohCgNAIAVB2ABqEAQgACAKS3JFBEAgACAGIAVB2ABqIAgQAkECdGoiCS8BADsAACAFQdgAaiAJLQACEAEgACAJLQADaiEADAELCwNAIAAgCk0EQCAAIAYgBUHYAGogCBACQQJ0aiIJLwEAOwAAIAVB2ABqIAktAAIQASAAIAktAANqIQAMAQsLAkAgACAMTw0AIAAgBiAFQdgAaiAIEAIiAEECdGoiDC0AADoAACAMLQADQQFGBEAgBUHYAGogDC0AAhABDAELIAUoAlxBH0sNACAFQdgAaiAGIABBAnRqLQACEAEgBSgCXEEhSQ0AIAVBIDYCXAsgAkF9aiEMA0BBACAHIAxJIAVBQGsQBBsEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiIAIAYgBUFAayAIEAJBAnRqIgcvAQA7AAAgBUFAayAHLQACEAEgACAHLQADaiEHDAEFIAJBfmohDANAIAVBQGsQBCAHIAxLckUEQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwNAIAcgDE0EQCAHIAYgBUFAayAIEAJBAnRqIgAvAQA7AAAgBUFAayAALQACEAEgByAALQADaiEHDAELCwJAIAcgAk8NACAHIAYgBUFAayAIEAIiAEECdGoiAi0AADoAACACLQADQQFGBEAgBUFAayACLQACEAEMAQsgBSgCREEfSw0AIAVBQGsgBiAAQQJ0ai0AAhABIAUoAkRBIUkNACAFQSA2AkQLIA5BfWohAgNAQQAgBCACSSAFQShqEAQbBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2oiACAGIAVBKGogCBACQQJ0aiIELwEAOwAAIAVBKGogBC0AAhABIAAgBC0AA2ohBAwBBSAOQX5qIQIDQCAFQShqEAQgBCACS3JFBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsDQCAEIAJNBEAgBCAGIAVBKGogCBACQQJ0aiIALwEAOwAAIAVBKGogAC0AAhABIAQgAC0AA2ohBAwBCwsCQCAEIA5PDQAgBCAGIAVBKGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBKGogAi0AAhABDAELIAUoAixBH0sNACAFQShqIAYgAEECdGotAAIQASAFKAIsQSFJDQAgBUEgNgIsCwNAQQAgAyAQSSAFQRBqEAQbBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2oiACAGIAVBEGogCBACQQJ0aiICLwEAOwAAIAVBEGogAi0AAhABIAAgAi0AA2ohAwwBBSAPQX5qIQIDQCAFQRBqEAQgAyACS3JFBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsDQCADIAJNBEAgAyAGIAVBEGogCBACQQJ0aiIALwEAOwAAIAVBEGogAC0AAhABIAMgAC0AA2ohAwwBCwsCQCADIA9PDQAgAyAGIAVBEGogCBACIgBBAnRqIgItAAA6AAAgAi0AA0EBRgRAIAVBEGogAi0AAhABDAELIAUoAhRBH0sNACAFQRBqIAYgAEECdGotAAIQASAFKAIUQSFJDQAgBUEgNgIUCyABQWwgBUHYAGoQCiAFQUBrEApxIAVBKGoQCnEgBUEQahAKcRshCwwJCwAACwALAAALAAsAAAsACwAACwALQWwhCwsgBUHwAGokACALC7UEAQ5/IwBBEGsiBiQAIAZBBGogABAOQVQhBQJAIARB3AtJDQAgBi0ABCEHIANB8ARqQQBB7AAQECEIIAdBDEsNACADQdwJaiIJIAggBkEIaiAGQQxqIAEgAhAxIhAQA0UEQCAGKAIMIgQgB0sNASADQdwFaiEPIANBpAVqIREgAEEEaiESIANBqAVqIQEgBCEFA0AgBSICQX9qIQUgCCACQQJ0aigCAEUNAAsgAkEBaiEOQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgASALaiAKNgIAIAVBAWohBSAKIAxqIQoMAQsLIAEgCjYCAEEAIQUgBigCCCELA0AgBSALRkUEQCABIAUgCWotAAAiDEECdGoiDSANKAIAIg1BAWo2AgAgDyANQQF0aiINIAw6AAEgDSAFOgAAIAVBAWohBQwBCwtBACEBIANBADYCqAUgBEF/cyAHaiEJQQEhBQNAIAUgDk9FBEAgCCAFQQJ0IgtqKAIAIQwgAyALaiABNgIAIAwgBSAJanQgAWohASAFQQFqIQUMAQsLIAcgBEEBaiIBIAJrIgRrQQFqIQgDQEEBIQUgBCAIT0UEQANAIAUgDk9FBEAgBUECdCIJIAMgBEE0bGpqIAMgCWooAgAgBHY2AgAgBUEBaiEFDAELCyAEQQFqIQQMAQsLIBIgByAPIAogESADIAIgARBkIAZBAToABSAGIAc6AAYgACAGKAIENgIACyAQIQULIAZBEGokACAFC8ENAQt/IwBB8ABrIgUkAEFsIQkCQCADQQpJDQAgAi8AACEKIAIvAAIhDCACLwAEIQYgBUEIaiAEEA4CQCADIAYgCiAMampBBmoiDUkNACAFLQAKIQcgBUHYAGogAkEGaiICIAoQBiIJEAMNASAFQUBrIAIgCmoiAiAMEAYiCRADDQEgBUEoaiACIAxqIgIgBhAGIgkQAw0BIAVBEGogAiAGaiADIA1rEAYiCRADDQEgACABaiIOQX1qIQ8gBEEEaiEGQQEhCSAAIAFBA2pBAnYiAmoiCiACaiIMIAJqIg0hAyAMIQQgCiECA0AgCSADIA9JcQRAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAACAGIAVBQGsgBxACQQF0aiIILQAAIQsgBUFAayAILQABEAEgAiALOgAAIAYgBUEoaiAHEAJBAXRqIggtAAAhCyAFQShqIAgtAAEQASAEIAs6AAAgBiAFQRBqIAcQAkEBdGoiCC0AACELIAVBEGogCC0AARABIAMgCzoAACAGIAVB2ABqIAcQAkEBdGoiCC0AACELIAVB2ABqIAgtAAEQASAAIAs6AAEgBiAFQUBrIAcQAkEBdGoiCC0AACELIAVBQGsgCC0AARABIAIgCzoAASAGIAVBKGogBxACQQF0aiIILQAAIQsgBUEoaiAILQABEAEgBCALOgABIAYgBUEQaiAHEAJBAXRqIggtAAAhCyAFQRBqIAgtAAEQASADIAs6AAEgA0ECaiEDIARBAmohBCACQQJqIQIgAEECaiEAIAkgBUHYAGoQDUVxIAVBQGsQDUVxIAVBKGoQDUVxIAVBEGoQDUVxIQkMAQsLIAQgDUsgAiAMS3INAEFsIQkgACAKSw0BIApBfWohCQNAIAVB2ABqEAQgACAJT3JFBEAgBiAFQdgAaiAHEAJBAXRqIggtAAAhCyAFQdgAaiAILQABEAEgACALOgAAIAYgBUHYAGogBxACQQF0aiIILQAAIQsgBUHYAGogCC0AARABIAAgCzoAASAAQQJqIQAMAQsLA0AgBUHYAGoQBCAAIApPckUEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCwNAIAAgCkkEQCAGIAVB2ABqIAcQAkEBdGoiCS0AACEIIAVB2ABqIAktAAEQASAAIAg6AAAgAEEBaiEADAELCyAMQX1qIQADQCAFQUBrEAQgAiAAT3JFBEAgBiAFQUBrIAcQAkEBdGoiCi0AACEJIAVBQGsgCi0AARABIAIgCToAACAGIAVBQGsgBxACQQF0aiIKLQAAIQkgBUFAayAKLQABEAEgAiAJOgABIAJBAmohAgwBCwsDQCAFQUBrEAQgAiAMT3JFBEAgBiAFQUBrIAcQAkEBdGoiAC0AACEKIAVBQGsgAC0AARABIAIgCjoAACACQQFqIQIMAQsLA0AgAiAMSQRAIAYgBUFAayAHEAJBAXRqIgAtAAAhCiAFQUBrIAAtAAEQASACIAo6AAAgAkEBaiECDAELCyANQX1qIQADQCAFQShqEAQgBCAAT3JFBEAgBiAFQShqIAcQAkEBdGoiAi0AACEKIAVBKGogAi0AARABIAQgCjoAACAGIAVBKGogBxACQQF0aiICLQAAIQogBUEoaiACLQABEAEgBCAKOgABIARBAmohBAwBCwsDQCAFQShqEAQgBCANT3JFBEAgBiAFQShqIAcQAkEBdGoiAC0AACECIAVBKGogAC0AARABIAQgAjoAACAEQQFqIQQMAQsLA0AgBCANSQRAIAYgBUEoaiAHEAJBAXRqIgAtAAAhAiAFQShqIAAtAAEQASAEIAI6AAAgBEEBaiEEDAELCwNAIAVBEGoQBCADIA9PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIAYgBUEQaiAHEAJBAXRqIgAtAAAhAiAFQRBqIAAtAAEQASADIAI6AAEgA0ECaiEDDAELCwNAIAVBEGoQBCADIA5PckUEQCAGIAVBEGogBxACQQF0aiIALQAAIQIgBUEQaiAALQABEAEgAyACOgAAIANBAWohAwwBCwsDQCADIA5JBEAgBiAFQRBqIAcQAkEBdGoiAC0AACECIAVBEGogAC0AARABIAMgAjoAACADQQFqIQMMAQsLIAFBbCAFQdgAahAKIAVBQGsQCnEgBUEoahAKcSAFQRBqEApxGyEJDAELQWwhCQsgBUHwAGokACAJC8oCAQR/IwBBIGsiBSQAIAUgBBAOIAUtAAIhByAFQQhqIAIgAxAGIgIQA0UEQCAEQQRqIQIgACABaiIDQX1qIQQDQCAFQQhqEAQgACAET3JFBEAgAiAFQQhqIAcQAkEBdGoiBi0AACEIIAVBCGogBi0AARABIAAgCDoAACACIAVBCGogBxACQQF0aiIGLQAAIQggBUEIaiAGLQABEAEgACAIOgABIABBAmohAAwBCwsDQCAFQQhqEAQgACADT3JFBEAgAiAFQQhqIAcQAkEBdGoiBC0AACEGIAVBCGogBC0AARABIAAgBjoAACAAQQFqIQAMAQsLA0AgACADT0UEQCACIAVBCGogBxACQQF0aiIELQAAIQYgBUEIaiAELQABEAEgACAGOgAAIABBAWohAAwBCwsgAUFsIAVBCGoQChshAgsgBUEgaiQAIAILtgMBCX8jAEEQayIGJAAgBkEANgIMIAZBADYCCEFUIQQCQAJAIANBQGsiDCADIAZBCGogBkEMaiABIAIQMSICEAMNACAGQQRqIAAQDiAGKAIMIgcgBi0ABEEBaksNASAAQQRqIQogBkEAOgAFIAYgBzoABiAAIAYoAgQ2AgAgB0EBaiEJQQEhBANAIAQgCUkEQCADIARBAnRqIgEoAgAhACABIAU2AgAgACAEQX9qdCAFaiEFIARBAWohBAwBCwsgB0EBaiEHQQAhBSAGKAIIIQkDQCAFIAlGDQEgAyAFIAxqLQAAIgRBAnRqIgBBASAEdEEBdSILIAAoAgAiAWoiADYCACAHIARrIQhBACEEAkAgC0EDTQRAA0AgBCALRg0CIAogASAEakEBdGoiACAIOgABIAAgBToAACAEQQFqIQQMAAALAAsDQCABIABPDQEgCiABQQF0aiIEIAg6AAEgBCAFOgAAIAQgCDoAAyAEIAU6AAIgBCAIOgAFIAQgBToABCAEIAg6AAcgBCAFOgAGIAFBBGohAQwAAAsACyAFQQFqIQUMAAALAAsgAiEECyAGQRBqJAAgBAutAQECfwJAQYQgKAIAIABHIAAoAgBBAXYiAyABa0F4aiICQXhxQQhHcgR/IAIFIAMQJ0UNASACQQhqC0EQSQ0AIAAgACgCACICQQFxIAAgAWpBD2pBeHEiASAAa0EBdHI2AgAgASAANgIEIAEgASgCAEEBcSAAIAJBAXZqIAFrIgJBAXRyNgIAQYQgIAEgAkH/////B3FqQQRqQYQgKAIAIABGGyABNgIAIAEQJQsLygIBBX8CQAJAAkAgAEEIIABBCEsbZ0EfcyAAaUEBR2oiAUEESSAAIAF2cg0AIAFBAnRB/B5qKAIAIgJFDQADQCACQXhqIgMoAgBBAXZBeGoiBSAATwRAIAIgBUEIIAVBCEsbZ0Efc0ECdEGAH2oiASgCAEYEQCABIAIoAgQ2AgALDAMLIARBHksNASAEQQFqIQQgAigCBCICDQALC0EAIQMgAUEgTw0BA0AgAUECdEGAH2ooAgAiAkUEQCABQR5LIQIgAUEBaiEBIAJFDQEMAwsLIAIgAkF4aiIDKAIAQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgBGBEAgASACKAIENgIACwsgAigCACIBBEAgASACKAIENgIECyACKAIEIgEEQCABIAIoAgA2AgALIAMgAygCAEEBcjYCACADIAAQNwsgAwvhCwINfwV+IwBB8ABrIgckACAHIAAoAvDhASIINgJcIAEgAmohDSAIIAAoAoDiAWohDwJAAkAgBUUEQCABIQQMAQsgACgCxOABIRAgACgCwOABIREgACgCvOABIQ4gAEEBNgKM4QFBACEIA0AgCEEDRwRAIAcgCEECdCICaiAAIAJqQazQAWooAgA2AkQgCEEBaiEIDAELC0FsIQwgB0EYaiADIAQQBhADDQEgB0EsaiAHQRhqIAAoAgAQEyAHQTRqIAdBGGogACgCCBATIAdBPGogB0EYaiAAKAIEEBMgDUFgaiESIAEhBEEAIQwDQCAHKAIwIAcoAixBA3RqKQIAIhRCEIinQf8BcSEIIAcoAkAgBygCPEEDdGopAgAiFUIQiKdB/wFxIQsgBygCOCAHKAI0QQN0aikCACIWQiCIpyEJIBVCIIghFyAUQiCIpyECAkAgFkIQiKdB/wFxIgNBAk8EQAJAIAZFIANBGUlyRQRAIAkgB0EYaiADQSAgBygCHGsiCiAKIANLGyIKEAUgAyAKayIDdGohCSAHQRhqEAQaIANFDQEgB0EYaiADEAUgCWohCQwBCyAHQRhqIAMQBSAJaiEJIAdBGGoQBBoLIAcpAkQhGCAHIAk2AkQgByAYNwNIDAELAkAgA0UEQCACBEAgBygCRCEJDAMLIAcoAkghCQwBCwJAAkAgB0EYakEBEAUgCSACRWpqIgNBA0YEQCAHKAJEQX9qIgMgA0VqIQkMAQsgA0ECdCAHaigCRCIJIAlFaiEJIANBAUYNAQsgByAHKAJINgJMCwsgByAHKAJENgJIIAcgCTYCRAsgF6chAyALBEAgB0EYaiALEAUgA2ohAwsgCCALakEUTwRAIAdBGGoQBBoLIAgEQCAHQRhqIAgQBSACaiECCyAHQRhqEAQaIAcgB0EYaiAUQhiIp0H/AXEQCCAUp0H//wNxajYCLCAHIAdBGGogFUIYiKdB/wFxEAggFadB//8DcWo2AjwgB0EYahAEGiAHIAdBGGogFkIYiKdB/wFxEAggFqdB//8DcWo2AjQgByACNgJgIAcoAlwhCiAHIAk2AmggByADNgJkAkACQAJAIAQgAiADaiILaiASSw0AIAIgCmoiEyAPSw0AIA0gBGsgC0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ";class au extends a.CompressedTexture{constructor(e,t,r,n,i,s){super(e,t,r,i,s),this.isCompressedArrayTexture=!0,this.image.depth=n,this.wrapR=a.ClampToEdgeWrapping}}class ou extends a.Texture{constructor(e=null,t=1,r=1,n=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:r,depth:n},this.magFilter=a.NearestFilter,this.minFilter=a.NearestFilter,this.wrapR=a.ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}var lu=Object.defineProperty,cu=(e,t,r)=>(((e,t,r)=>{t in e?lu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const hu=new WeakMap;let uu,du=0;const pu=class extends a.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new qh,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}detectSupport(e){return this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},e.capabilities.isWebGL2&&(this.workerConfig.etc1Supported=!1),this}init(){if(!this.transcoderPending){const e=new a.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),r=new a.FileLoader(this.manager);r.setPath(this.transcoderPath),r.setResponseType("arraybuffer"),r.setWithCredentials(this.withCredentials);const n=r.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,n]).then((([e,t])=>{const r=pu.BasisWorker.toString(),n=["/* constants */","let _EngineFormat = "+JSON.stringify(pu.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(pu.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(pu.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([n])),this.transcoderBinary=t,this.workerPool.setWorkerCreator((()=>{const e=new Worker(this.workerSourceURL),t=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:t},[t]),e}))})),du>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),du++}return this.transcoderPending}load(e,t,r,n){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const i=new a.FileLoader(this.manager);i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{if(hu.has(e)){return hu.get(e).promise.then(t).catch(n)}this._createTexture(e).then((e=>t?t(e):null)).catch(n)}),r,n)}_createTextureFrom(e,t){const{mipmaps:r,width:n,height:i,format:s,type:o,error:l,dfdTransferFn:c,dfdFlags:h}=e;if("error"===o)return Promise.reject(l);const u=t.layerCount>1?new au(r,n,i,t.layerCount,s,a.UnsignedByteType):new a.CompressedTexture(r,n,i,s,a.UnsignedByteType);return u.minFilter=1===r.length?a.LinearFilter:a.LinearMipmapLinearFilter,u.magFilter=a.LinearFilter,u.generateMipmaps=!1,u.needsUpdate=!0,"colorSpace"in u?u.colorSpace=2===c?"srgb":"srgb-linear":u.encoding=2===c?3001:3e3,u.premultiplyAlpha=!!(1&h),u}async _createTexture(e,t={}){const r=function(e){const t=new Uint8Array(e.buffer,e.byteOffset,Zh.length);if(t[0]!==Zh[0]||t[1]!==Zh[1]||t[2]!==Zh[2]||t[3]!==Zh[3]||t[4]!==Zh[4]||t[5]!==Zh[5]||t[6]!==Zh[6]||t[7]!==Zh[7]||t[8]!==Zh[8]||t[9]!==Zh[9]||t[10]!==Zh[10]||t[11]!==Zh[11])throw new Error("Missing KTX 2.0 identifier.");const r=new Kh,n=17*Uint32Array.BYTES_PER_ELEMENT,i=new Jh(e,Zh.length,n,!0);r.vkFormat=i._nextUint32(),r.typeSize=i._nextUint32(),r.pixelWidth=i._nextUint32(),r.pixelHeight=i._nextUint32(),r.pixelDepth=i._nextUint32(),r.layerCount=i._nextUint32(),r.faceCount=i._nextUint32();const s=i._nextUint32();r.supercompressionScheme=i._nextUint32();const a=i._nextUint32(),o=i._nextUint32(),l=i._nextUint32(),c=i._nextUint32(),h=i._nextUint64(),u=i._nextUint64(),d=new Jh(e,Zh.length+n,3*s*8,!0);for(let D=0;D{const t=new iu;await t.init(),e(t)}))),o=(await uu).decode(s.levelData,s.uncompressedByteLength)}l=gu[t]===a.FloatType?new Float32Array(o.buffer,o.byteOffset,o.byteLength/Float32Array.BYTES_PER_ELEMENT):gu[t]===a.HalfFloatType?new Uint16Array(o.buffer,o.byteOffset,o.byteLength/Uint16Array.BYTES_PER_ELEMENT):o;const c=0===i?new a.DataTexture(l,r,n):new ou(l,r,n,i);return c.type=gu[t],c.format=mu[t],c.encoding=Au[t]||3e3,c.needsUpdate=!0,Promise.resolve(c)}(r);const n=t,i=this.init().then((()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:n},[e]))).then((e=>this._createTextureFrom(e.data,r)));return hu.set(e,{promise:i}),i}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),du--,this}};let fu=pu;cu(fu,"BasisFormat",{ETC1S:0,UASTC_4x4:1}),cu(fu,"TranscoderFormat",{ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16}),cu(fu,"EngineFormat",{RGBAFormat:a.RGBAFormat,RGBA_ASTC_4x4_Format:a.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:a.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:a.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:a.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:a.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:a.RGB_ETC1_Format,RGB_ETC2_Format:a.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:a.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:a.RGB_S3TC_DXT1_Format}),cu(fu,"BasisWorker",(function(){let e,t,r;const n=_EngineFormat,i=_TranscoderFormat,s=_BasisFormat;self.addEventListener("message",(function(a){const u=a.data;switch(u.type){case"init":e=u.config,d=u.transcoderBinary,t=new Promise((e=>{r={wasmBinary:d,onRuntimeInitialized:e},BASIS(r)})).then((()=>{r.initializeBasis(),void 0===r.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:a,hasAlpha:d,mipmaps:p,format:f,dfdTransferFn:m,dfdFlags:g}=function(t){const a=new r.KTX2File(new Uint8Array(t));function u(){a.close(),a.delete()}if(!a.isValid())throw u(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const d=a.isUASTC()?s.UASTC_4x4:s.ETC1S,p=a.getWidth(),f=a.getHeight(),m=a.getLayers()||1,g=a.getLevels(),A=a.getHasAlpha(),v=a.getDFDTransferFunc(),y=a.getDFDFlags(),{transcoderFormat:x,engineFormat:b}=function(t,r,a,h){let u,d;const p=t===s.ETC1S?o:l;for(let n=0;ne.gl)),n=(0,o.useLoader)(fu,Ua(e)?Object.values(e):e,(e=>{e.detectSupport(r),e.setTranscoderPath(t)}));if((0,i.useEffect)((()=>{(Array.isArray(n)?n:[n]).forEach(r.initTexture)}),[r,n]),Ua(e)){const t=Object.keys(e),r={};return t.forEach((e=>Object.assign(r,{[e]:n[t.indexOf(e)]}))),r}return n}yu.preload=(e,t=`${vu}/basis/`)=>o.useLoader.preload(fu,e,(e=>{e.setTranscoderPath(t)})),yu.clear=e=>o.useLoader.clear(fu,e);var xu=r(73466),bu=r.n(xu);function Eu(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)}function _u({showPanel:e=0,className:t,parent:r}){const n=function(e,t=[],r){const[n,s]=i.useState();return i.useLayoutEffect((()=>{const t=e();return s(t),Eu(r,t),()=>Eu(r,null)}),t),n}((()=>new(bu())),[]);return i.useEffect((()=>{if(n){const i=r&&r.current||document.body;n.showPanel(e),null==i||i.appendChild(n.dom),t&&n.dom.classList.add(...t.split(" ").filter((e=>e)));const s=(0,o.addEffect)((()=>n.begin())),a=(0,o.addAfterEffect)((()=>n.end()));return()=>{null==i||i.removeChild(n.dom),s(),a()}}}),[r,n,t,e]),null}function Su(e,t,r){const{gl:n,size:s}=(0,o.useThree)(),l=i.useMemo((()=>n.getPixelRatio()),[n]),c="number"==typeof e?e:s.width*l,h="number"==typeof t?t:s.height*l,u=("number"==typeof e?r:e)||{},{samples:d,...p}=u,f=i.useMemo((()=>{let e;return e=new a.WebGLRenderTarget(c,h,{minFilter:a.LinearFilter,magFilter:a.LinearFilter,encoding:n.outputEncoding,type:a.HalfFloatType,...p}),e.samples=d,e}),[]);return i.useLayoutEffect((()=>{f.setSize(c,h),d&&(f.samples=d)}),[d,f,c,h]),i.useEffect((()=>()=>f.dispose()),[]),f}function Mu({size:e=256,frames:t=1/0}={}){const r=(0,o.useThree)((e=>e.viewport.dpr)),{width:n,height:s}=(0,o.useThree)((e=>e.size)),l=e||n*r,c=e||s*r,h=i.useMemo((()=>{const e=new a.DepthTexture(l,c);return e.format=a.DepthFormat,e.type=a.UnsignedShortType,{depthTexture:e}}),[l,c]);let u=0;const d=Su(l,c,h);return(0,o.useFrame)((e=>{(t===1/0||ue.viewport)),i=t*(n.aspect>e/t?n.width/e:n.height/t);return[e*(n.aspect>e/t?n.width/e:n.height/t)*r,i*r,1]}function Cu(e,t,r,n){return new(r||(r=Promise))((function(i,s){function a(e){try{l(n.next(e))}catch(e){s(e)}}function o(e){try{l(n.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,o)}l((n=n.apply(e,t||[])).next())}))}const Tu=["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"];function Iu(e){return e.toLowerCase().replace(/^angle ?\((.+)\)*$/,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const Bu="undefined"==typeof window,Ru=(()=>{if(Bu)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,n=/(iphone|ipod|ipad)/i.test(e),i="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:i,isMobile:/android/i.test(e)||n||i,isSafari12:/Version\/12.+Safari/.test(e)}})();const Pu=[],Du=[];function Lu(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,i=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-i);)n--,i--;let s,a=0;for(;ac?l>c?c+1:l:l>o?o+1:l;return c}function Fu(e){return null!=e}class Uu extends Error{constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const Ou=({mobileTiers:e=[0,15,30,60],desktopTiers:t=[0,15,30,60],override:r={},glContext:n,failIfMajorPerformanceCaveat:i=!1,benchmarksURL:s="https://unpkg.com/detect-gpu@4.0.50/dist/benchmarks"}={})=>Cu(void 0,void 0,void 0,(function*(){const a={};if(Bu)return{tier:0,type:"SSR"};const{isIpad:o=!!(null==Ru?void 0:Ru.isIpad),isMobile:l=!!(null==Ru?void 0:Ru.isMobile),screenSize:c=window.screen,loadBenchmarks:h=(e=>Cu(void 0,void 0,void 0,(function*(){const t=yield fetch(`${s}/${e}`).then((e=>e.json()));if(parseInt(t.shift().split(".")[0],10)<4)throw new Uu("Detect GPU benchmark data is out of date. Please update to version 4x");return t})))}=r;let{renderer:u}=r;const d=(e,t,r,n,i)=>({device:i,fps:n,gpu:r,isMobile:l,tier:e,type:t});let p,f="";if(u)u=Iu(u),p=[u];else{const e=n||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),i=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=i?i:void 0}(null==Ru?void 0:Ru.isSafari12,i);if(!e)return d(0,"WEBGL_UNSUPPORTED");const t=e.getExtension("WEBGL_debug_renderer_info");if(t&&(u=e.getParameter(t.UNMASKED_RENDERER_WEBGL)),!u)return d(1,"FALLBACK");f=u,u=Iu(u),p=function(e,t,r){return"apple gpu"===t?function(e,t,r){if(!r)return[t];const n=function(e){const t=e.createShader(35633),r=e.createShader(35632),n=e.createProgram();if(!(r&&t&&n))return;e.shaderSource(t,"\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n "),e.shaderSource(r,"\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n "),e.compileShader(t),e.compileShader(r),e.attachShader(n,t),e.attachShader(n,r),e.linkProgram(n),e.detachShader(n,t),e.detachShader(n,r),e.deleteShader(t),e.deleteShader(r),e.useProgram(n);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const s=e.getAttribLocation(n,"aPosition");e.vertexAttribPointer(s,3,5126,!1,0,0),e.enableVertexAttribArray(s),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const a=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,a),e.deleteProgram(n),e.deleteBuffer(i),a.join("")}(e),i="801621810",s="8016218135",a="80162181161",o=(null==Ru?void 0:Ru.isIpad)?[["a7",a,12],["a8",s,15],["a8x",s,15],["a9",s,15],["a9x",s,15],["a10",s,15],["a10x",s,15],["a12",i,15],["a12x",i,15],["a12z",i,15],["a14",i,15],["m1",i,15]]:[["a7",a,12],["a8",s,12],["a9",s,15],["a10",s,15],["a11",i,15],["a12",i,15],["a13",i,15],["a14",i,15]];let l;return"80162181255"===n?l=o.filter((([,,e])=>e>=14)):(l=o.filter((([,e])=>e===n)),l.length||(l=o)),l.map((([e])=>`apple ${e} gpu`))}(e,t,r):[t]}(e,u,l)}const m=(yield Promise.all(p.map((function(e){var t;return Cu(this,void 0,void 0,(function*(){const r=(e=>{const t=l?["adreno","apple","mali-t","mali","nvidia","powervr"]:["intel","apple","amd","radeon","nvidia","geforce"];for(const r of t)if(e.includes(r))return r})(e);if(!r)return;const n=`${l?"m":"d"}-${r}${o?"-ipad":""}.json`,i=a[n]=null!==(t=a[n])&&void 0!==t?t:h(n);let s;try{s=yield i}catch(r){if(r instanceof Uu)throw r;return}const u=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(e);let d=s.filter((([,e])=>e===u));d.length||(d=s.filter((([t])=>t.includes(e))));const p=d.length;if(0===p)return;let f,[m,,,g]=p>1?d.map((t=>[t,Lu(e,t[0])])).sort((([,e],[,t])=>e-t))[0][0]:d[0],A=Number.MAX_VALUE;const{devicePixelRatio:v}=window,y=c.width*v*c.height*v;for(const e of g){const[t,r]=e,n=t*r,i=Math.abs(y-n);ie===r?t-n:e-r));if(!m.length){const e=Tu.find((e=>u.includes(e)));return e?d(0,"BLOCKLISTED",e):d(1,"FALLBACK",`${u} (${f})`)}const[,g,A,v]=m[0];if(-1===g)return d(0,"BLOCKLISTED",A,g,v);const y=l?e:t;let x=0;for(let e=0;e=y[e]&&(x=e);return d(x,"BENCHMARK",A,g,v)})),Nu=e=>pa((()=>Ou(e)),["useDetectGPU"]);function ku(e,t,...r){const n=i.useRef(),s=(0,o.useThree)((e=>e.scene));return i.useEffect((()=>(e&&t&&null!=e&&e.current&&(n.current=new t(e.current,...r),n.current&&s.add(n.current)),!e&&n.current&&s.remove(n.current),()=>{n.current&&s.remove(n.current)})),[s,t,e,r]),(0,o.useFrame)((()=>{var e;null!=(e=n.current)&&e.update&&n.current.update()})),n}const Gu=new a.Vector3,zu=new a.Vector3,Qu=new a.Vector3,Vu=new a.Vector2,Hu=new a.Vector2,ju=new a.Vector2,Wu=new a.Vector3;function Xu(e,t,r,n,i,s,o){Gu.fromBufferAttribute(t,n),zu.fromBufferAttribute(t,i),Qu.fromBufferAttribute(t,s);const l=function(e,t,r,n,i,s){let o;return o=s===a.BackSide?e.intersectTriangle(n,r,t,!0,i):e.intersectTriangle(t,r,n,s!==a.DoubleSide,i),null===o?null:{distance:e.origin.distanceTo(i),point:i.clone()}}(e,Gu,zu,Qu,Wu,o);if(l){r&&(Vu.fromBufferAttribute(r,n),Hu.fromBufferAttribute(r,i),ju.fromBufferAttribute(r,s),l.uv=a.Triangle.getUV(Wu,Gu,zu,Qu,Vu,Hu,ju,new a.Vector2));const e={a:n,b:i,c:s,normal:new a.Vector3,materialIndex:0};a.Triangle.getNormal(Gu,zu,Qu,e.normal),l.face=e,l.faceIndex=n}return l}function Yu(e,t,r,n,i){const s=3*n,a=e.index.getX(s),o=e.index.getX(s+1),l=e.index.getX(s+2),c=Xu(r,e.attributes.position,e.attributes.uv,a,o,l,t);return c?(c.faceIndex=n,i&&i.push(c),c):null}function qu(e,t,r){return null===e?null:(e.point.applyMatrix4(t.matrixWorld),e.distance=e.point.distanceTo(r.ray.origin),e.object=t,e.distancer.far?null:e)}const Ku=0,Ju=1,Zu=2,$u=1.25,ed=1,td=65535,rd=Math.pow(2,-24);class nd{constructor(){}}function id(e,t,r){return r.min.x=t[e],r.min.y=t[e+1],r.min.z=t[e+2],r.max.x=t[e+3],r.max.y=t[e+4],r.max.z=t[e+5],r}function sd(e){let t=-1,r=-1/0;for(let n=0;n<3;n++){const i=e[n+3]-e[n];i>r&&(r=i,t=n)}return t}function ad(e,t){t.set(e)}function od(e,t,r){let n,i;for(let s=0;s<3;s++){const a=s+3;n=e[s],i=t[s],r[s]=ni?n:i}}function ld(e,t,r){for(let n=0;n<3;n++){const i=t[e+2*n],s=t[e+2*n+1],a=i-s,o=i+s;ar[n+3]&&(r[n+3]=o)}}function cd(e){const t=e[3]-e[0],r=e[4]-e[1],n=e[5]-e[2];return 2*(t*r+r*n+n*t)}function hd(e,t,r,n,i=null){let s=1/0,a=1/0,o=1/0,l=-1/0,c=-1/0,h=-1/0,u=1/0,d=1/0,p=1/0,f=-1/0,m=-1/0,g=-1/0;const A=null!==i;for(let v=6*t,y=6*(t+r);vl&&(l=i),A&&tf&&(f=t);const y=e[v+2],x=e[v+3],b=y-x,E=y+x;bc&&(c=E),A&&ym&&(m=y);const _=e[v+4],S=e[v+5],M=_-S,w=_+S;Mh&&(h=w),A&&_g&&(g=_)}n[0]=s,n[1]=a,n[2]=o,n[3]=l,n[4]=c,n[5]=h,A&&(i[0]=u,i[1]=d,i[2]=p,i[3]=f,i[4]=m,i[5]=g)}const ud=32,dd=(e,t)=>e.candidate-t.candidate,pd=new Array(ud).fill().map((()=>({count:0,bounds:new Float32Array(6),rightCacheBounds:new Float32Array(6),leftCacheBounds:new Float32Array(6),candidate:0}))),fd=new Float32Array(6);function md(e,t){function r(e){p&&p(e/f)}function n(t,i,a,p=null,f=0){if(!m&&f>=c&&(m=!0,h&&(console.warn(`MeshBVH: Max depth of ${c} reached when generating BVH. Consider increasing maxDepth.`),console.warn(e))),a<=u||f>=c)return r(i+a),t.offset=i,t.count=a,t;const g=function(e,t,r,n,i,s){let a=-1,o=0;if(s===Ku)a=sd(t),-1!==a&&(o=(t[a]+t[a+3])/2);else if(s===Ju)a=sd(e),-1!==a&&(o=function(e,t,r,n){let i=0;for(let s=t,a=t+r;s=s.candidate?ld(i,r,s.rightCacheBounds):(ld(i,r,s.leftCacheBounds),s.count++)}}for(let r=0;r=ud&&(t=ud-1);const s=pd[t];s.count++,ld(i,r,s.bounds)}const t=pd[ud-1];ad(t.bounds,t.rightCacheBounds);for(let e=ud-2;e>=0;e--){const t=pd[e],r=pd[e+1];od(t.bounds,r.rightCacheBounds,t.rightCacheBounds)}let d=0;for(let r=0;r=o;)a--;if(!(s65535?new Uint32Array(new n(4*r)):new Uint16Array(new n(2*r)),e.setIndex(new a.BufferAttribute(i,1));for(let e=0;em&&(m=l),c>m&&(m=c);const g=(m-u)/2,A=2*n;s[i+A+0]=u+g,s[i+A+1]=g+(Math.abs(u)+g)*rd,ut[n+3]&&(t[n+3]=m)}}return s}(e,i),l=e.index.array,c=t.maxDepth,h=t.verbose,u=t.maxLeafTris,d=t.strategy,p=t.onProgress,f=e.index.count/3;let m=!1;const g=[],A=function(e){if(!e.groups||!e.groups.length)return[{offset:0,count:e.index.count/3}];const t=[],r=new Set;for(const i of e.groups)r.add(i.start),r.add(i.start+i.count);const n=Array.from(r.values()).sort(((e,t)=>e-t));for(let i=0;io&&(o=t);const r=e[h+2];rl&&(l=r);const n=e[h+4];nc&&(c=n)}n[0]=i,n[1]=s,n[2]=a,n[3]=o,n[4]=l,n[5]=c}(o,e.offset,e.count,s),n(t,e.offset,e.count,s),g.push(t)}else for(let a of A){const e=new nd;e.boundingData=new Float32Array(6),hd(o,a.offset,a.count,e.boundingData,s),n(e,a.offset,a.count,s),g.push(e)}return g}class gd{constructor(){this.min=1/0,this.max=-1/0}setFromPointsField(e,t){let r=1/0,n=-1/0;for(let i=0,s=e.length;in?s:n}this.min=r,this.max=n}setFromPoints(e,t){let r=1/0,n=-1/0;for(let i=0,s=t.length;in?a:n}this.min=r,this.max=n}isSeparated(e){return this.min>e.max||e.min>this.max}}gd.prototype.setFromBox=function(){const e=new a.Vector3;return function(t,r){const n=r.min,i=r.max;let s=1/0,a=-1/0;for(let o=0;o<=1;o++)for(let r=0;r<=1;r++)for(let l=0;l<=1;l++){e.x=n.x*o+i.x*(1-o),e.y=n.y*r+i.y*(1-r),e.z=n.z*l+i.z*(1-l);const c=t.dot(e);s=Math.min(c,s),a=Math.max(c,a)}this.min=s,this.max=a}}();!function(){const e=new gd}();const Ad=function(){const e=new a.Vector3,t=new a.Vector3,r=new a.Vector3;return function(n,i,s){const a=n.start,o=e,l=i.start,c=t;r.subVectors(a,l),e.subVectors(n.end,n.start),t.subVectors(i.end,i.start);const h=r.dot(c),u=c.dot(o),d=c.dot(c),p=r.dot(o),f=o.dot(o)*d-u*u;let m,g;m=0!==f?(h*u-p*d)/f:0,g=(h+m*u)/d,s.x=m,s.y=g}}(),vd=function(){const e=new a.Vector2,t=new a.Vector3,r=new a.Vector3;return function(n,i,s,a){Ad(n,i,e);let o=e.x,l=e.y;if(o>=0&&o<=1&&l>=0&&l<=1)return n.at(o,s),void i.at(l,a);if(o>=0&&o<=1)return l<0?i.at(0,a):i.at(1,a),void n.closestPointToPoint(a,!0,s);if(l>=0&&l<=1)return o<0?n.at(0,s):n.at(1,s),void i.closestPointToPoint(s,!0,a);{let e,c;e=o<0?n.start:n.end,c=l<0?i.start:i.end;const h=t,u=r;return n.closestPointToPoint(c,!0,t),i.closestPointToPoint(e,!0,r),h.distanceToSquared(c)<=u.distanceToSquared(e)?(s.copy(h),void a.copy(c)):(s.copy(e),void a.copy(u))}}}(),yd=function(){const e=new a.Vector3,t=new a.Vector3,r=new a.Plane,n=new a.Line3;return function(i,s){const{radius:a,center:o}=i,{a:l,b:c,c:h}=s;n.start=l,n.end=c;if(n.closestPointToPoint(o,!0,e).distanceTo(o)<=a)return!0;n.start=l,n.end=h;if(n.closestPointToPoint(o,!0,e).distanceTo(o)<=a)return!0;n.start=c,n.end=h;if(n.closestPointToPoint(o,!0,e).distanceTo(o)<=a)return!0;const u=s.getPlane(r);if(Math.abs(u.distanceToPoint(o))<=a){const e=u.projectPoint(o,t);if(s.containsPoint(e))return!0}return!1}}();function xd(e){return Math.abs(e)<1e-15}class bd extends a.Triangle{constructor(...e){super(...e),this.isExtendedTriangle=!0,this.satAxes=new Array(4).fill().map((()=>new a.Vector3)),this.satBounds=new Array(4).fill().map((()=>new gd)),this.points=[this.a,this.b,this.c],this.sphere=new a.Sphere,this.plane=new a.Plane,this.needsUpdate=!0}intersectsSphere(e){return yd(e,this)}update(){const e=this.a,t=this.b,r=this.c,n=this.points,i=this.satAxes,s=this.satBounds,a=i[0],o=s[0];this.getNormal(a),o.setFromPoints(a,n);const l=i[1],c=s[1];l.subVectors(e,t),c.setFromPoints(l,n);const h=i[2],u=s[2];h.subVectors(t,r),u.setFromPoints(h,n);const d=i[3],p=s[3];d.subVectors(r,e),p.setFromPoints(d,n),this.sphere.setFromPoints(this.points),this.plane.setFromNormalAndCoplanarPoint(a,e),this.needsUpdate=!1}}bd.prototype.closestPointToSegment=function(){const e=new a.Vector3,t=new a.Vector3,r=new a.Line3;return function(n,i=null,s=null){const{start:a,end:o}=n,l=this.points;let c,h=1/0;for(let u=0;u<3;u++){const a=(u+1)%3;r.start.copy(l[u]),r.end.copy(l[a]),vd(r,n,e,t),c=e.distanceToSquared(t),c1-1e-10){const e=this.satBounds,o=this.satAxes;r[0]=a.a,r[1]=a.b,r[2]=a.c;for(let t=0;t<4;t++){const i=e[t],s=o[t];if(n.setFromPoints(s,r),i.isSeparated(n))return!1}const l=a.satBounds,c=a.satAxes;t[0]=this.a,t[1]=this.b,t[2]=this.c;for(let r=0;r<4;r++){const e=l[r],i=c[r];if(n.setFromPoints(i,t),e.isSeparated(n))return!1}for(let a=0;a<4;a++){const e=o[a];for(let a=0;a<4;a++){const o=c[a];if(s.crossVectors(e,o),n.setFromPoints(s,t),i.setFromPoints(s,r),n.isSeparated(i))return!1}}return p&&(f||console.warn("ExtendedTriangle.intersectsTriangle: Triangles are coplanar which does not support an output edge. Setting edge to 0, 0, 0."),p.start.set(0,0,0),p.end.set(0,0,0)),!0}{const e=this.points;let t=!1,r=0;for(let a=0;a<3;a++){const n=e[a],i=e[(a+1)%3];h.start.copy(n),h.end.copy(i),h.delta(o);const s=t?u.start:u.end,l=xd(g.distanceToPoint(n));if(xd(g.normal.dot(o))&&l){u.copy(h),r=2;break}if((g.intersectLine(h,s)||l)&&!xd(s.distanceTo(i))){if(r++,t)break;t=!0}}if(1===r&&a.containsPoint(u.end))return p&&(p.start.copy(u.end),p.end.copy(u.end)),!0;if(2!==r)return!1;const n=a.points;let i=!1,s=0;for(let a=0;a<3;a++){const e=n[a],t=n[(a+1)%3];h.start.copy(e),h.end.copy(t),h.delta(l);const r=i?d.start:d.end,o=xd(m.distanceToPoint(e));if(xd(m.normal.dot(l))&&o){d.copy(h),s=2;break}if((m.intersectLine(h,r)||o)&&!xd(r.distanceTo(t))){if(s++,i)break;i=!0}}if(1===s&&this.containsPoint(d.end))return p&&(p.start.copy(d.end),p.end.copy(d.end)),!0;if(2!==s)return!1;if(u.delta(o),d.delta(l),o.dot(l)<0){let e=d.start;d.start=d.end,d.end=e}const f=u.start.dot(o),A=u.end.dot(o),v=d.start.dot(o),y=d.end.dot(o);return(f===y||v===A||A0?p.start.copy(u.start):p.start.copy(d.start),c.subVectors(u.end,d.end),c.dot(o)<0?p.end.copy(u.end):p.end.copy(d.end)),!0)}}}(),bd.prototype.distanceToPoint=function(){const e=new a.Vector3;return function(t){return this.closestPointToPoint(t,e),t.distanceTo(e)}}(),bd.prototype.distanceToTriangle=function(){const e=new a.Vector3,t=new a.Vector3,r=["a","b","c"],n=new a.Line3,i=new a.Line3;return function(s,a=null,o=null){const l=a||o?n:null;if(this.intersectsTriangle(s,l))return(a||o)&&(a&&l.getCenter(a),o&&l.getCenter(o)),0;let c=1/0;for(let t=0;t<3;t++){let n;const i=r[t],l=s[i];this.closestPointToPoint(l,e),n=l.distanceToSquared(e),nnew a.Vector3)),this.satAxes=new Array(3).fill().map((()=>new a.Vector3)),this.satBounds=new Array(3).fill().map((()=>new gd)),this.alignedSatBounds=new Array(3).fill().map((()=>new gd)),this.needsUpdate=!1,e&&this.min.copy(e),t&&this.max.copy(t),r&&this.matrix.copy(r)}set(e,t,r){this.min.copy(e),this.max.copy(t),this.matrix.copy(r),this.needsUpdate=!0}copy(e){this.min.copy(e.min),this.max.copy(e.max),this.matrix.copy(e.matrix),this.needsUpdate=!0}}function _d(e,t,r,n){const i=e.a,s=e.b,a=e.c;let o=t,l=t+1,c=t+2;r&&(o=r.getX(t),l=r.getX(t+1),c=r.getX(t+2)),i.x=n.getX(o),i.y=n.getY(o),i.z=n.getZ(o),s.x=n.getX(l),s.y=n.getY(l),s.z=n.getZ(l),a.x=n.getX(c),a.y=n.getY(c),a.z=n.getZ(c)}function Sd(e,t,r,n,i,s,a){const o=r.index,l=r.attributes.position;for(let c=e,h=t+e;cnew a.Line3)),r=new Array(12).fill().map((()=>new a.Line3)),n=new a.Vector3,i=new a.Vector3;return function(s,a=0,o=null,l=null){if(this.needsUpdate&&this.update(),this.intersectsBox(s))return(o||l)&&(s.getCenter(i),this.closestPointToPoint(i,n),s.closestPointToPoint(n,i),o&&o.copy(n),l&&l.copy(i)),0;const c=a*a,h=s.min,u=s.max,d=this.points;let p=1/0;for(let e=0;e<8;e++){const t=d[e];i.copy(t).clamp(h,u);const r=t.distanceToSquared(i);if(r=0;let c,h;l?(c=Id(e),h=Bd(e,o)):(c=Bd(e,o),h=Id(e));const u=Nd(c,s,n,Pd)?Fd(c,t,r,n):null;if(u){const e=u.point[a];if(l?e<=s[h+i]:e>=s[h+i+3])return u}const d=Nd(h,s,n,Pd)?Fd(h,t,r,n):null;return u&&d?u.distance<=d.distance?u:d:u||d||null}}const Ud=function(){let e,t;const r=[],n=new Md((()=>new a.Box3));return function(...s){e=n.getPrimitive(),t=n.getPrimitive(),r.push(e,t);const a=i(...s);n.releasePrimitive(e),n.releasePrimitive(t),r.pop(),r.pop();const o=r.length;return o>0&&(t=r[o-1],e=r[o-2]),a};function i(r,n,s,a,o=null,l=0,c=0){function h(e){let t=2*e,r=Qd,n=Vd;for(;!wd(t,r);)t=2*(e=Id(e));return Cd(e,n)}function u(e){let t=2*e,r=Qd,n=Vd;for(;!wd(t,r);)t=2*(e=Bd(e,n));return Cd(e,n)+Td(t,r)}let d=2*r,p=zd,f=Qd,m=Vd;if(wd(d,f)){const t=Cd(r,m),n=Td(d,f);return id(r,p,e),a(t,n,!1,c,l+r,e)}{const d=Id(r),g=Bd(r,m);let A,v,y,x,b=d,E=g;if(o&&(y=e,x=t,id(b,p,y),id(E,p,x),A=o(y),v=o(x),vi.intersectsBox(e),intersectsTriangle:e=>{e.a.applyMatrix4(c),e.b.applyMatrix4(c),e.c.applyMatrix4(c),e.needsUpdate=!0;for(let r=3*A,n=3*(v+A);rnew bd));class sp{static serialize(e,t={}){if(t.isBufferGeometry)return console.warn("MeshBVH.serialize: The arguments for the function have changed. See documentation for new signature."),sp.serialize(arguments[0],{cloneBuffers:void 0===arguments[2]||arguments[2]});t={cloneBuffers:!0,...t};const r=e.geometry,n=e._roots,i=r.getIndex();let s;return s=t.cloneBuffers?{roots:n.map((e=>e.slice())),index:i.array.slice()}:{roots:n,index:i.array},s}static deserialize(e,t,r={}){if("boolean"==typeof r)return console.warn("MeshBVH.deserialize: The arguments for the function have changed. See documentation for new signature."),sp.deserialize(arguments[0],arguments[1],{setIndex:void 0===arguments[2]||arguments[2]});r={setIndex:!0,...r};const{index:n,roots:i}=e,s=new sp(t,{...r,[Wd]:!0});if(s._roots=i,r.setIndex){const r=t.getIndex();if(null===r){const r=new a.BufferAttribute(e.index,1,!1);t.setIndex(r)}else r.array!==n&&(r.array.set(n),r.needsUpdate=!0)}return s}constructor(e,t={}){if(!e.isBufferGeometry)throw new Error("MeshBVH: Only BufferGeometries are supported.");if(e.index&&e.index.isInterleavedBufferAttribute)throw new Error("MeshBVH: InterleavedBufferAttribute is not supported for the index attribute.");if((t=Object.assign({strategy:Ku,maxDepth:40,maxLeafTris:10,verbose:!0,useSharedArrayBuffer:!1,setBoundingBox:!0,onProgress:null,[Wd]:!1},t)).useSharedArrayBuffer&&"undefined"==typeof SharedArrayBuffer)throw new Error("MeshBVH: SharedArrayBuffer is not available.");this._roots=null,t[Wd]||(this._roots=function(e,t){const r=md(e,t);let n,i,s;const a=[],o=t.useSharedArrayBuffer?SharedArrayBuffer:ArrayBuffer;for(let h=0;hMath.pow(2,32))throw new Error("MeshBVH: Cannot store child pointer greater than 32 bits.");return i[r+6]=o/4,o=c(o,s),i[r+7]=a,o}}}(e,t),!e.boundingBox&&t.setBoundingBox&&(e.boundingBox=this.getBoundingBox(new a.Box3))),this.geometry=e}refit(e=null){e&&Array.isArray(e)&&(e=new Set(e));const t=this.geometry,r=t.index.array,n=t.attributes.position;let i,s,a,o,l=0;const c=this._roots;for(let u=0,d=c.length;uu&&(u=s),ad&&(d=a),op&&(p=o)}return(o[t+0]!==i||o[t+1]!==l||o[t+2]!==h||o[t+3]!==u||o[t+4]!==d||o[t+5]!==p)&&(o[t+0]=i,o[t+1]=l,o[t+2]=h,o[t+3]=u,o[t+4]=d,o[t+5]=p,!0)}{const r=t+8,n=s[t+6],a=r+i,c=n+i;let u=l,d=!1,p=!1;e?u||(d=e.has(a),p=e.has(c),u=!d&&!p):(d=!0,p=!0);const f=u||p;let m=!1;(u||d)&&(m=h(r,i,u));let g=!1;f&&(g=h(n,i,u));const A=m||g;if(A)for(let e=0;e<3;e++){const i=r+e,s=n+e,a=o[i],l=o[i+3],c=o[s],h=o[s+3];o[t+e]=ah?l:h}return A}}}traverse(e,t=0){const r=this._roots[t],n=new Uint32Array(r),i=new Uint16Array(r);!function t(s,a=0){const o=2*s,l=i[o+15]===td;if(l){const t=n[s+6],c=i[o+14];e(a,l,new Float32Array(r,4*s,6),t,c)}else{const i=s+8,o=n[s+6],c=n[s+7];e(a,l,new Float32Array(r,4*s,6),c)||(t(i,a+1),t(o,a+1))}}(0)}raycast(e,t=a.FrontSide){const r=this._roots,n=this.geometry,i=[],s=t.isMaterial,o=Array.isArray(t),l=n.groups,c=s?t.side:t;for(let a=0,h=r.length;a{const s=3*r;return e(t,s,s+1,s+2,n,i)}}e={boundsTraverseOrder:r,intersectsBounds:e,intersectsTriangle:t,intersectsRange:null},console.warn("MeshBVH: Shapecast function signature has changed and now takes an object of callbacks as a second argument. See docs for new signature.")}const i=ip.getPrimitive();let{boundsTraverseOrder:s,intersectsBounds:a,intersectsRange:o,intersectsTriangle:l}=e;if(o&&l){const e=o;o=(t,r,s,a,o)=>!!e(t,r,s,a,o)||Sd(t,r,n,l,s,a,i)}else o||(o=l?(e,t,r,s)=>Sd(e,t,n,l,r,s,i):(e,t,r)=>r);let c=!1,h=0;for(const u of this._roots){if(Hd(u),c=Ud(0,n,a,o,s,h),jd(),c)break;h+=u.byteLength}return ip.releasePrimitive(i),c}bvhcast(e,t,r){let{intersectsRanges:n,intersectsTriangles:i}=r;const s=this.geometry.index,a=this.geometry.attributes.position,o=e.geometry.index,l=e.geometry.attributes.position;qd.copy(t).invert();const c=ip.getPrimitive(),h=ip.getPrimitive();if(i){function d(e,r,n,u,d,p,f,m){for(let g=n,A=n+u;gYd.intersectsBox(e),intersectsRange:(t,r,i,s,a,o)=>(Xd.copy(o),Xd.applyMatrix4(qd),e.shapecast({intersectsBounds:e=>Xd.intersectsBox(e),intersectsRange:(e,i,o,l,c)=>n(t,r,e,i,s,a,l,c)}))});return ip.releasePrimitive(c),ip.releasePrimitive(h),u}intersectsBox(e,t){return Kd.set(e.min,e.max,t),Kd.needsUpdate=!0,this.shapecast({intersectsBounds:e=>Kd.intersectsBox(e),intersectsTriangle:e=>Kd.intersectsTriangle(e)})}intersectsSphere(e){return this.shapecast({intersectsBounds:t=>e.intersectsBox(t),intersectsTriangle:t=>t.intersectsSphere(e)})}closestPointToGeometry(e,t,r={},n={},i=0,s=1/0){e.boundingBox||e.computeBoundingBox(),Kd.set(e.boundingBox.min,e.boundingBox.max,t),Kd.needsUpdate=!0;const a=this.geometry,o=a.attributes.position,l=a.index,c=e.attributes.position,h=e.index,u=ip.getPrimitive(),d=ip.getPrimitive();let p=$d,f=ep,m=null,g=null;n&&(m=tp,g=rp);let A=1/0,v=null,y=null;return qd.copy(t).invert(),Jd.matrix.copy(qd),this.shapecast({boundsTraverseOrder:e=>Kd.distanceToBox(e),intersectsBounds:(e,t,r)=>r{if(e.boundsTree)return e.boundsTree.shapecast({boundsTraverseOrder:e=>Jd.distanceToBox(e),intersectsBounds:(e,t,r)=>r{for(let a=3*e,x=3*(e+s);a(Zd.copy(e).clamp(t.min,t.max),Zd.distanceToSquared(e)),intersectsBounds:(e,t,r)=>r{t.closestPointToPoint(e,Zd);const n=e.distanceToSquared(Zd);return n{id(0,new Float32Array(t),np),e.union(np)})),e}}const ap=new a.Ray,op=new a.Matrix4,lp=a.Mesh.prototype.raycast;function cp(e,t){if(this.geometry.boundsTree){if(void 0===this.material)return;op.copy(this.matrixWorld).invert(),ap.copy(e.ray).applyMatrix4(op);const r=this.geometry.boundsTree;if(!0===e.firstHitOnly){const n=qu(r.raycastFirst(ap,this.material),this,e);n&&t.push(n)}else{const n=r.raycast(ap,this.material);for(let r=0,i=n.length;r{if(e.current){e.current.raycast=cp;const r=e.current.geometry;return r.computeBoundsTree=hp,r.disposeBoundsTree=up,r.computeBoundsTree(t),()=>{r.boundsTree&&r.disposeBoundsTree()}}}),[e,t])}function pp(...e){const t=i.useRef([]);return t.current=e.map((e=>i.useContext(e))),i.useMemo((()=>({children:r})=>e.reduceRight(((e,r,n)=>i.createElement(r.Provider,{value:t.current[n],children:e})),r)),[])}function fp(e,t){const r=i.useRef(),[n]=i.useState((()=>t?t instanceof a.Object3D?{current:t}:t:r)),[s]=i.useState((()=>new a.AnimationMixer(void 0))),l=i.useRef({}),[c]=i.useState((()=>{const t={};return e.forEach((e=>Object.defineProperty(t,e.name,{enumerable:!0,get(){if(n.current)return l.current[e.name]||(l.current[e.name]=s.clipAction(e,n.current))}}))),{ref:n,clips:e,actions:t,names:e.map((e=>e.name)),mixer:s}}));return(0,o.useFrame)(((e,t)=>s.update(t))),i.useEffect((()=>{const e=n.current;return()=>{l.current={},Object.values(c.actions).forEach((t=>{e&&s.uncacheAction(t,e)}))}}),[e]),c}function mp(e){const t=i.useRef(null),r=i.useRef(!1),n=i.useRef(!1);return i.useEffect((()=>{const i=t.current;if(i){const t=(0,o.addEffect)((()=>(r.current=!1,!0))),s=i.onBeforeRender;i.onBeforeRender=()=>r.current=!0;const a=(0,o.addAfterEffect)((()=>(r.current!==n.current&&e(n.current=r.current),!0)));return()=>{i.onBeforeRender=s,t(),a()}}}),[]),t}const gp="\n#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\n vec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n #ifdef BOX_PROJECTED_ENV_MAP\n vWorldPosition = worldPosition.xyz;\n #endif\n#endif\n",Ap="\n#ifdef BOX_PROJECTED_ENV_MAP\n uniform vec3 envMapSize;\n uniform vec3 envMapPosition;\n varying vec3 vWorldPosition;\n \n vec3 parallaxCorrectNormal( vec3 v, vec3 cubeSize, vec3 cubePos ) {\n vec3 nDir = normalize( v );\n vec3 rbmax = ( .5 * cubeSize + cubePos - vWorldPosition ) / nDir;\n vec3 rbmin = ( -.5 * cubeSize + cubePos - vWorldPosition ) / nDir;\n vec3 rbminmax;\n rbminmax.x = ( nDir.x > 0. ) ? rbmax.x : rbmin.x;\n rbminmax.y = ( nDir.y > 0. ) ? rbmax.y : rbmin.y;\n rbminmax.z = ( nDir.z > 0. ) ? rbmax.z : rbmin.z;\n float correction = min( min( rbminmax.x, rbminmax.y ), rbminmax.z );\n vec3 boxIntersection = vWorldPosition + nDir * correction; \n return boxIntersection - cubePos;\n }\n#endif\n",vp="\n#ifdef BOX_PROJECTED_ENV_MAP\n worldNormal = parallaxCorrectNormal( worldNormal, envMapSize, envMapPosition );\n#endif\n",yp="\n#ifdef BOX_PROJECTED_ENV_MAP\n reflectVec = parallaxCorrectNormal( reflectVec, envMapSize, envMapPosition );\n#endif\n";function xp(e=new a.Vector3,t=new a.Vector3){const[r]=i.useState((()=>({position:new a.Vector3,size:new a.Vector3})));(0,o.applyProps)(r,{position:e,size:t});const n=i.useRef(null),s=i.useMemo((()=>({ref:n,onBeforeCompile:e=>function(e,t,r){e.defines.BOX_PROJECTED_ENV_MAP=!0,e.uniforms.envMapPosition={value:t},e.uniforms.envMapSize={value:r},e.vertexShader=`\n varying vec3 vWorldPosition;\n ${e.vertexShader.replace("#include ",gp)}`,e.fragmentShader=`\n ${Ap}\n ${e.fragmentShader.replace("#include ",a.ShaderChunk.envmap_physical_pars_fragment).replace("vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );",`vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n ${vp}\n `).replace("reflectVec = inverseTransformDirection( reflectVec, viewMatrix );",`reflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n ${yp}\n `)}`}(e,r.position,r.size),customProgramCacheKey:()=>JSON.stringify(r.position.toArray())+JSON.stringify(r.size.toArray())})),[...r.position.toArray(),...r.size.toArray()]);return i.useLayoutEffect((()=>{n.current.needsUpdate=!0}),[r]),s}var bp=Object.defineProperty,Ep=(e,t,r)=>(((e,t,r)=>{t in e?bp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const _p=1024,Sp=(e,t,r,n,i,s)=>{const a=e.image,{data:o}=a,l=4096*s;o[4*t+l+0]=r,o[4*t+l+1]=n,o[4*t+l+2]=i,o[4*t+l+3]=1};class Mp{constructor(e,t=1){Ep(this,"curveArray"),Ep(this,"curveLengthArray"),Ep(this,"object3D"),Ep(this,"splineTexure"),Ep(this,"uniforms");const r=e.clone(),n=((e=1)=>{const t=new Float32Array(4096*e*4),r=new a.DataTexture(t,_p,4*e,a.RGBAFormat,a.FloatType);return r.wrapS=a.RepeatWrapping,r.wrapT=a.RepeatWrapping,r.magFilter=a.NearestFilter,r.needsUpdate=!0,r})(t),i={spineTexture:{value:n},pathOffset:{type:"f",value:0},pathSegment:{type:"f",value:1},spineOffset:{type:"f",value:161},spineLength:{type:"f",value:400},flow:{type:"i",value:1}};r.traverse((e=>{(e instanceof a.Mesh||e instanceof a.InstancedMesh)&&(e.material=e.material.clone(),function(e,t,r=1){e.__ok||(e.__ok=!0,e.onBeforeCompile=e=>{if(e.__modified)return;e.__modified=!0,Object.assign(e.uniforms,t);const n=`\n\t\tuniform sampler2D spineTexture;\n\t\tuniform float pathOffset;\n\t\tuniform float pathSegment;\n\t\tuniform float spineOffset;\n\t\tuniform float spineLength;\n\t\tuniform int flow;\n\n\t\tfloat textureLayers = ${4*r}.;\n\t\tfloat textureStacks = 1.;\n\n\t\t${e.vertexShader}\n\t\t`.replace("#include ","").replace("#include ","").replace("#include ","").replace(/void\s*main\s*\(\)\s*\{/,"\n void main() {\n #include \n\n vec4 worldPos = modelMatrix * vec4(position, 1.);\n\n bool bend = flow > 0;\n float xWeight = bend ? 0. : 1.;\n\n #ifdef USE_INSTANCING\n float pathOffsetFromInstanceMatrix = instanceMatrix[3][2];\n float spineLengthFromInstanceMatrix = instanceMatrix[3][0];\n float spinePortion = bend ? (worldPos.x + spineOffset) / spineLengthFromInstanceMatrix : 0.;\n float mt = (spinePortion * pathSegment + pathOffset + pathOffsetFromInstanceMatrix)*textureStacks;\n #else\n float spinePortion = bend ? (worldPos.x + spineOffset) / spineLength : 0.;\n float mt = (spinePortion * pathSegment + pathOffset)*textureStacks;\n #endif\n\n mt = mod(mt, textureStacks);\n float rowOffset = floor(mt);\n\n #ifdef USE_INSTANCING\n rowOffset += instanceMatrix[3][1] * 4.;\n #endif\n\n vec3 spinePos = texture2D(spineTexture, vec2(mt, (0. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 a = texture2D(spineTexture, vec2(mt, (1. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 b = texture2D(spineTexture, vec2(mt, (2. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 c = texture2D(spineTexture, vec2(mt, (3. + rowOffset + 0.5) / textureLayers)).xyz;\n mat3 basis = mat3(a, b, c);\n\n vec3 transformed = basis\n * vec3(worldPos.x * xWeight, worldPos.y * 1., worldPos.z * 1.)\n + spinePos;\n\n vec3 transformedNormal = normalMatrix * (basis * objectNormal);\n\t\t\t").replace("#include ","vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\n\t\t\t\tgl_Position = projectionMatrix * mvPosition;");e.vertexShader=n})}(e.material,i,t))})),this.curveArray=new Array(t),this.curveLengthArray=new Array(t),this.object3D=r,this.splineTexure=n,this.uniforms=i}updateCurve(e,t){if(e>=this.curveArray.length)throw Error("Index out of range for Flow");const r=t.getLength();this.uniforms.spineLength.value=r,this.curveLengthArray[e]=r,this.curveArray[e]=t,((e,t,r=0)=>{const n=Math.floor(1024);t.arcLengthDivisions=n/2,t.updateArcLengths();const i=t.getSpacedPoints(n),s=t.computeFrenetFrames(n,!0);for(let a=0;a{const[n]=i.useState((()=>new a.Scene)),[s,l]=i.useState(),c=i.useRef();return i.useEffect((()=>{c.current=new Mp(n.children[0]),l(c.current.object3D)}),[e]),i.useEffect((()=>{var e;t&&(null==(e=c.current)||e.updateCurve(0,t))}),[t]),i.useImperativeHandle(r,(()=>({moveAlongCurve:e=>{var t;null==(t=c.current)||t.moveAlongCurve(e)}}))),i.createElement(i.Fragment,null,(0,o.createPortal)(e,n),s&&i.createElement("primitive",{object:s}))}));class Cp extends a.MeshPhysicalMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._distort={value:.4},this._radius={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.radius=this._radius,e.uniforms.distort=this._distort,e.vertexShader=`\n uniform float time;\n uniform float radius;\n uniform float distort;\n #define GLSLIFY 1\nvec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.79284291400159-0.85373472095314*r;}float snoise(vec3 v){const vec2 C=vec2(1.0/6.0,1.0/3.0);const vec4 D=vec4(0.0,0.5,1.0,2.0);vec3 i=floor(v+dot(v,C.yyy));vec3 x0=v-i+dot(i,C.xxx);vec3 g=step(x0.yzx,x0.xyz);vec3 l=1.0-g;vec3 i1=min(g.xyz,l.zxy);vec3 i2=max(g.xyz,l.zxy);vec3 x1=x0-i1+C.xxx;vec3 x2=x0-i2+C.yyy;vec3 x3=x0-D.yyy;i=mod289(i);vec4 p=permute(permute(permute(i.z+vec4(0.0,i1.z,i2.z,1.0))+i.y+vec4(0.0,i1.y,i2.y,1.0))+i.x+vec4(0.0,i1.x,i2.x,1.0));float n_=0.142857142857;vec3 ns=n_*D.wyz-D.xzx;vec4 j=p-49.0*floor(p*ns.z*ns.z);vec4 x_=floor(j*ns.z);vec4 y_=floor(j-7.0*x_);vec4 x=x_*ns.x+ns.yyyy;vec4 y=y_*ns.x+ns.yyyy;vec4 h=1.0-abs(x)-abs(y);vec4 b0=vec4(x.xy,y.xy);vec4 b1=vec4(x.zw,y.zw);vec4 s0=floor(b0)*2.0+1.0;vec4 s1=floor(b1)*2.0+1.0;vec4 sh=-step(h,vec4(0.0));vec4 a0=b0.xzyw+s0.xzyw*sh.xxyy;vec4 a1=b1.xzyw+s1.xzyw*sh.zzww;vec3 p0=vec3(a0.xy,h.x);vec3 p1=vec3(a0.zw,h.y);vec3 p2=vec3(a1.xy,h.z);vec3 p3=vec3(a1.zw,h.w);vec4 norm=taylorInvSqrt(vec4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;vec4 m=max(0.6-vec4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m;return 42.0*dot(m*m,vec4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include ","\n float updateTime = time / 50.0;\n float noise = snoise(vec3(position / 2.0 + updateTime * 5.0));\n vec3 transformed = vec3(position * (noise * pow(distort, 2.0) + radius));\n ")}get time(){return this._time.value}set time(e){this._time.value=e}get distort(){return this._distort.value}set distort(e){this._distort.value=e}get radius(){return this._radius.value}set radius(e){this._radius.value=e}}const Tp=i.forwardRef((({speed:e=1,...t},r)=>{const[s]=i.useState((()=>new Cp));return(0,o.useFrame)((t=>s&&(s.time=t.clock.getElapsedTime()*e))),i.createElement("primitive",(0,n.Z)({dispose:void 0,object:s,ref:r,attach:"material"},t))}));class Ip extends a.MeshStandardMaterial{constructor(e={}){super(e),this.setValues(e),this._time={value:0},this._factor={value:1}}onBeforeCompile(e){e.uniforms.time=this._time,e.uniforms.factor=this._factor,e.vertexShader=`\n uniform float time;\n uniform float factor;\n ${e.vertexShader}\n `,e.vertexShader=e.vertexShader.replace("#include ","float theta = sin( time + position.y ) / 2.0 * factor;\n float c = cos( theta );\n float s = sin( theta );\n mat3 m = mat3( c, 0, s, 0, 1, 0, -s, 0, c );\n vec3 transformed = vec3( position ) * m;\n vNormal = vNormal * m;")}get time(){return this._time.value}set time(e){this._time.value=e}get factor(){return this._factor.value}set factor(e){this._factor.value=e}}const Bp=i.forwardRef((({speed:e=1,...t},r)=>{const[s]=i.useState((()=>new Ip));return(0,o.useFrame)((t=>s&&(s.time=t.clock.getElapsedTime()*e))),i.createElement("primitive",(0,n.Z)({dispose:void 0,object:s,ref:r,attach:"material"},t))}));class Rp extends a.ShaderMaterial{constructor(e=new a.Vector2){super({uniforms:{inputBuffer:new a.Uniform(null),depthBuffer:new a.Uniform(null),resolution:new a.Uniform(new a.Vector2),texelSize:new a.Uniform(new a.Vector2),halfTexelSize:new a.Uniform(new a.Vector2),kernel:new a.Uniform(0),scale:new a.Uniform(1),cameraNear:new a.Uniform(0),cameraFar:new a.Uniform(1),minDepthThreshold:new a.Uniform(0),maxDepthThreshold:new a.Uniform(1),depthScale:new a.Uniform(0),depthToBlurRatioBias:new a.Uniform(.25)},fragmentShader:"#include \n #include \n uniform sampler2D inputBuffer;\n uniform sampler2D depthBuffer;\n uniform float cameraNear;\n uniform float cameraFar;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n float depthFactor = 0.0;\n \n #ifdef USE_DEPTH\n vec4 depth = texture2D(depthBuffer, vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0, min(1.0, depthFactor + 0.25));\n #endif\n \n vec4 sum = texture2D(inputBuffer, mix(vUv0, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv1, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv2, vUv, depthFactor));\n sum += texture2D(inputBuffer, mix(vUv3, vUv, depthFactor));\n gl_FragColor = sum * 0.25 ;\n\n #include \n #include \n #include \n }",vertexShader:"uniform vec2 texelSize;\n uniform vec2 halfTexelSize;\n uniform float kernel;\n uniform float scale;\n varying vec2 vUv;\n varying vec2 vUv0;\n varying vec2 vUv1;\n varying vec2 vUv2;\n varying vec2 vUv3;\n\n void main() {\n vec2 uv = position.xy * 0.5 + 0.5;\n vUv = uv;\n\n vec2 dUv = (texelSize * vec2(kernel) + halfTexelSize) * scale;\n vUv0 = vec2(uv.x - dUv.x, uv.y + dUv.y);\n vUv1 = vec2(uv.x + dUv.x, uv.y + dUv.y);\n vUv2 = vec2(uv.x + dUv.x, uv.y - dUv.y);\n vUv3 = vec2(uv.x - dUv.x, uv.y - dUv.y);\n\n gl_Position = vec4(position.xy, 1.0, 1.0);\n }",blending:a.NoBlending,depthWrite:!1,depthTest:!1}),this.toneMapped=!1,this.setTexelSize(e.x,e.y),this.kernel=new Float32Array([0,1,2,2,3])}setTexelSize(e,t){this.uniforms.texelSize.value.set(e,t),this.uniforms.halfTexelSize.value.set(e,t).multiplyScalar(.5)}setResolution(e){this.uniforms.resolution.value.copy(e)}}class Pp{constructor({gl:e,resolution:t,width:r=500,height:n=500,minDepthThreshold:i=0,maxDepthThreshold:s=1,depthScale:o=0,depthToBlurRatioBias:l=.25}){this.renderToScreen=!1,this.renderTargetA=new a.WebGLRenderTarget(t,t,{minFilter:a.LinearFilter,magFilter:a.LinearFilter,stencilBuffer:!1,depthBuffer:!1,encoding:e.outputEncoding}),this.renderTargetB=this.renderTargetA.clone(),this.convolutionMaterial=new Rp,this.convolutionMaterial.setTexelSize(1/r,1/n),this.convolutionMaterial.setResolution(new a.Vector2(r,n)),this.scene=new a.Scene,this.camera=new a.Camera,this.convolutionMaterial.uniforms.minDepthThreshold.value=i,this.convolutionMaterial.uniforms.maxDepthThreshold.value=s,this.convolutionMaterial.uniforms.depthScale.value=o,this.convolutionMaterial.uniforms.depthToBlurRatioBias.value=l,this.convolutionMaterial.defines.USE_DEPTH=o>0;const c=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),h=new Float32Array([0,0,2,0,0,2]),u=new a.BufferGeometry;u.setAttribute("position",new a.BufferAttribute(c,3)),u.setAttribute("uv",new a.BufferAttribute(h,2)),this.screen=new a.Mesh(u,this.convolutionMaterial),this.screen.frustumCulled=!1,this.scene.add(this.screen)}render(e,t,r){const n=this.scene,i=this.camera,s=this.renderTargetA,a=this.renderTargetB;let o=this.convolutionMaterial,l=o.uniforms;l.depthBuffer.value=t.depthTexture;const c=o.kernel;let h,u,d,p=t;for(u=0,d=c.length-1;u","#include \n my_vUv = textureMatrix * vec4( position, 1.0 );\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"),e.fragmentShader=`\n uniform sampler2D tDiffuse;\n uniform sampler2D tDiffuseBlur;\n uniform sampler2D tDepth;\n uniform sampler2D distortionMap;\n uniform float distortion;\n uniform float cameraNear;\n\t\t\t uniform float cameraFar;\n uniform bool hasBlur;\n uniform float mixBlur;\n uniform float mirror;\n uniform float mixStrength;\n uniform float minDepthThreshold;\n uniform float maxDepthThreshold;\n uniform float mixContrast;\n uniform float depthScale;\n uniform float depthToBlurRatioBias;\n varying vec4 my_vUv; \n ${e.fragmentShader}`,e.fragmentShader=e.fragmentShader.replace("#include ","#include \n \n float distortionFactor = 0.0;\n #ifdef USE_DISTORTION\n distortionFactor = texture2D(distortionMap, vUv).r * distortion;\n #endif\n\n vec4 new_vUv = my_vUv;\n new_vUv.x += distortionFactor;\n new_vUv.y += distortionFactor;\n\n vec4 base = texture2DProj(tDiffuse, new_vUv);\n vec4 blur = texture2DProj(tDiffuseBlur, new_vUv);\n \n vec4 merge = base;\n \n #ifdef USE_NORMALMAP\n vec2 normal_uv = vec2(0.0);\n vec4 normalColor = texture2D(normalMap, vUv * normalScale);\n vec3 my_normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n vec3 coord = new_vUv.xyz / new_vUv.w;\n normal_uv = coord.xy + coord.z * my_normal.xz * 0.05;\n vec4 base_normal = texture2D(tDiffuse, normal_uv);\n vec4 blur_normal = texture2D(tDiffuseBlur, normal_uv);\n merge = base_normal;\n blur = blur_normal;\n #endif\n\n float depthFactor = 0.0001;\n float blurFactor = 0.0;\n\n #ifdef USE_DEPTH\n vec4 depth = texture2DProj(tDepth, new_vUv);\n depthFactor = smoothstep(minDepthThreshold, maxDepthThreshold, 1.0-(depth.r * depth.a));\n depthFactor *= depthScale;\n depthFactor = max(0.0001, min(1.0, depthFactor));\n\n #ifdef USE_BLUR\n blur = blur * min(1.0, depthFactor + depthToBlurRatioBias);\n merge = merge * min(1.0, depthFactor + 0.5);\n #else\n merge = merge * depthFactor;\n #endif\n \n #endif\n\n float reflectorRoughnessFactor = roughness;\n #ifdef USE_ROUGHNESSMAP\n vec4 reflectorTexelRoughness = texture2D( roughnessMap, vUv );\n reflectorRoughnessFactor *= reflectorTexelRoughness.g;\n #endif\n \n #ifdef USE_BLUR\n blurFactor = min(1.0, mixBlur * reflectorRoughnessFactor);\n merge = mix(merge, blur, blurFactor);\n #endif\n\n vec4 newMerge = vec4(0.0, 0.0, 0.0, 1.0);\n newMerge.r = (merge.r - 0.5) * mixContrast + 0.5;\n newMerge.g = (merge.g - 0.5) * mixContrast + 0.5;\n newMerge.b = (merge.b - 0.5) * mixContrast + 0.5;\n\n diffuseColor.rgb = diffuseColor.rgb * ((1.0 - min(1.0, mirror)) + newMerge.rgb * mixStrength);\n ")}get tDiffuse(){return this._tDiffuse.value}set tDiffuse(e){this._tDiffuse.value=e}get tDepth(){return this._tDepth.value}set tDepth(e){this._tDepth.value=e}get distortionMap(){return this._distortionMap.value}set distortionMap(e){this._distortionMap.value=e}get tDiffuseBlur(){return this._tDiffuseBlur.value}set tDiffuseBlur(e){this._tDiffuseBlur.value=e}get textureMatrix(){return this._textureMatrix.value}set textureMatrix(e){this._textureMatrix.value=e}get hasBlur(){return this._hasBlur.value}set hasBlur(e){this._hasBlur.value=e}get mirror(){return this._mirror.value}set mirror(e){this._mirror.value=e}get mixBlur(){return this._mixBlur.value}set mixBlur(e){this._mixBlur.value=e}get mixStrength(){return this._blurStrength.value}set mixStrength(e){this._blurStrength.value=e}get minDepthThreshold(){return this._minDepthThreshold.value}set minDepthThreshold(e){this._minDepthThreshold.value=e}get maxDepthThreshold(){return this._maxDepthThreshold.value}set maxDepthThreshold(e){this._maxDepthThreshold.value=e}get depthScale(){return this._depthScale.value}set depthScale(e){this._depthScale.value=e}get depthToBlurRatioBias(){return this._depthToBlurRatioBias.value}set depthToBlurRatioBias(e){this._depthToBlurRatioBias.value=e}get distortion(){return this._distortion.value}set distortion(e){this._distortion.value=e}get mixContrast(){return this._mixContrast.value}set mixContrast(e){this._mixContrast.value=e}}(0,o.extend)({MeshReflectorMaterialImpl:Dp});const Lp=i.forwardRef((({mixBlur:e=0,mixStrength:t=1,resolution:r=256,blur:s=[0,0],minDepthThreshold:l=.9,maxDepthThreshold:c=1,depthScale:h=0,depthToBlurRatioBias:u=.25,mirror:d=0,distortion:p=1,mixContrast:f=1,distortionMap:m,reflectorOffset:g=0,...A},v)=>{const y=(0,o.useThree)((({gl:e})=>e)),x=(0,o.useThree)((({camera:e})=>e)),b=(0,o.useThree)((({scene:e})=>e)),E=(s=Array.isArray(s)?s:[s,s])[0]+s[1]>0,_=i.useRef(null),[S]=i.useState((()=>new a.Plane)),[M]=i.useState((()=>new a.Vector3)),[C]=i.useState((()=>new a.Vector3)),[T]=i.useState((()=>new a.Vector3)),[I]=i.useState((()=>new a.Matrix4)),[B]=i.useState((()=>new a.Vector3(0,0,-1))),[R]=i.useState((()=>new a.Vector4)),[P]=i.useState((()=>new a.Vector3)),[D]=i.useState((()=>new a.Vector3)),[L]=i.useState((()=>new a.Vector4)),[F]=i.useState((()=>new a.Matrix4)),[U]=i.useState((()=>new a.PerspectiveCamera)),O=i.useCallback((()=>{var e;const t=_.current.parent||(null==(e=_.current)?void 0:e.__r3f.parent);if(!t)return;if(C.setFromMatrixPosition(t.matrixWorld),T.setFromMatrixPosition(x.matrixWorld),I.extractRotation(t.matrixWorld),M.set(0,0,1),M.applyMatrix4(I),C.addScaledVector(M,g),P.subVectors(C,T),P.dot(M)>0)return;P.reflect(M).negate(),P.add(C),I.extractRotation(x.matrixWorld),B.set(0,0,-1),B.applyMatrix4(I),B.add(T),D.subVectors(C,B),D.reflect(M).negate(),D.add(C),U.position.copy(P),U.up.set(0,1,0),U.up.applyMatrix4(I),U.up.reflect(M),U.lookAt(D),U.far=x.far,U.updateMatrixWorld(),U.projectionMatrix.copy(x.projectionMatrix),F.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),F.multiply(U.projectionMatrix),F.multiply(U.matrixWorldInverse),F.multiply(t.matrixWorld),S.setFromNormalAndCoplanarPoint(M,C),S.applyMatrix4(U.matrixWorldInverse),R.set(S.normal.x,S.normal.y,S.normal.z,S.constant);const r=U.projectionMatrix;L.x=(Math.sign(R.x)+r.elements[8])/r.elements[0],L.y=(Math.sign(R.y)+r.elements[9])/r.elements[5],L.z=-1,L.w=(1+r.elements[10])/r.elements[14],R.multiplyScalar(2/R.dot(L)),r.elements[2]=R.x,r.elements[6]=R.y,r.elements[10]=R.z+1,r.elements[14]=R.w}),[x,g]),[N,k,G,z]=i.useMemo((()=>{const n={minFilter:a.LinearFilter,magFilter:a.LinearFilter,encoding:y.outputEncoding,type:a.HalfFloatType},i=new a.WebGLRenderTarget(r,r,n);i.depthBuffer=!0,i.depthTexture=new a.DepthTexture(r,r),i.depthTexture.format=a.DepthFormat,i.depthTexture.type=a.UnsignedShortType;const o=new a.WebGLRenderTarget(r,r,n);return[i,o,new Pp({gl:y,resolution:r,width:s[0],height:s[1],minDepthThreshold:l,maxDepthThreshold:c,depthScale:h,depthToBlurRatioBias:u}),{mirror:d,textureMatrix:F,mixBlur:e,tDiffuse:i.texture,tDepth:i.depthTexture,tDiffuseBlur:o.texture,hasBlur:E,mixStrength:t,minDepthThreshold:l,maxDepthThreshold:c,depthScale:h,depthToBlurRatioBias:u,transparent:!0,distortion:p,distortionMap:m,mixContrast:f,"defines-USE_BLUR":E?"":void 0,"defines-USE_DEPTH":h>0?"":void 0,"defines-USE_DISTORTION":m?"":void 0}]}),[y,s,F,r,d,E,e,t,l,c,h,u,p,m,f]);return(0,o.useFrame)((()=>{var e;const t=_.current.parent||(null==(e=_.current)?void 0:e.__r3f.parent);if(!t)return;t.visible=!1;const r=y.xr.enabled,n=y.shadowMap.autoUpdate;O(),y.xr.enabled=!1,y.shadowMap.autoUpdate=!1,y.setRenderTarget(N),y.state.buffers.depth.setMask(!0),y.autoClear||y.clear(),y.render(b,U),E&&G.render(y,N,k),y.xr.enabled=r,y.shadowMap.autoUpdate=n,t.visible=!0,y.setRenderTarget(null)})),i.createElement("meshReflectorMaterialImpl",(0,n.Z)({attach:"material",key:"key"+z["defines-USE_BLUR"]+z["defines-USE_DEPTH"]+z["defines-USE_DISTORTION"],ref:w([_,v])},z,A))}));class Fp extends a.PointsMaterial{constructor(e){super(e),this.onBeforeCompile=e=>{e.fragmentShader=e.fragmentShader.replace("#include ","\n #include \n vec2 cxy = 2.0 * gl_PointCoord - 1.0;\n float r = dot(cxy, cxy);\n float delta = fwidth(r); \n float mask = 1.0 - smoothstep(1.0 - delta, 1.0 + delta, r);\n gl_FragColor = vec4(gl_FragColor.rgb, mask * gl_FragColor.a );\n ")}}}const Up=i.forwardRef(((e,t)=>{const[r]=i.useState((()=>new Fp(null)));return i.createElement("primitive",(0,n.Z)({},e,{object:r,ref:t,attach:"material"}))}));let Op=!1;const Np=e=>{if(!Op){Op=!0;let t=a.ShaderChunk.shadowmap_pars_fragment;t=t.replace("#ifdef USE_SHADOWMAP","#ifdef USE_SHADOWMAP\n"+(({frustum:e=3.75,size:t=.005,near:r=9.5,samples:n=17,rings:i=11}={})=>`#define LIGHT_WORLD_SIZE ${t}\n#define LIGHT_FRUSTUM_WIDTH ${e}\n#define LIGHT_SIZE_UV (LIGHT_WORLD_SIZE / LIGHT_FRUSTUM_WIDTH)\n#define NEAR_PLANE ${r}\n\n#define NUM_SAMPLES ${n}\n#define NUM_RINGS ${i}\n#define BLOCKER_SEARCH_NUM_SAMPLES NUM_SAMPLES\n#define PCF_NUM_SAMPLES NUM_SAMPLES\n\nvec2 poissonDisk[NUM_SAMPLES];\n\nvoid initPoissonSamples(const in vec2 randomSeed) {\n float ANGLE_STEP = PI2 * float(NUM_RINGS) / float(NUM_SAMPLES);\n float INV_NUM_SAMPLES = 1.0 / float(NUM_SAMPLES);\n float angle = rand(randomSeed) * PI2;\n float radius = INV_NUM_SAMPLES;\n float radiusStep = radius;\n for (int i = 0; i < NUM_SAMPLES; i++) {\n poissonDisk[i] = vec2(cos(angle), sin(angle)) * pow(radius, 0.75);\n radius += radiusStep;\n angle += ANGLE_STEP;\n }\n}\n\nfloat penumbraSize(const in float zReceiver, const in float zBlocker) { // Parallel plane estimation\n return (zReceiver - zBlocker) / zBlocker;\n}\n\nfloat findBlocker(sampler2D shadowMap, const in vec2 uv, const in float zReceiver) {\n float searchRadius = LIGHT_SIZE_UV * (zReceiver - NEAR_PLANE) / zReceiver;\n float blockerDepthSum = 0.0;\n int numBlockers = 0;\n for (int i = 0; i < BLOCKER_SEARCH_NUM_SAMPLES; i++) {\n float shadowMapDepth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[i] * searchRadius));\n if (shadowMapDepth < zReceiver) {\n blockerDepthSum += shadowMapDepth;\n numBlockers++;\n }\n }\n if (numBlockers == 0) return -1.0;\n return blockerDepthSum / float(numBlockers);\n}\n\nfloat PCF_Filter(sampler2D shadowMap, vec2 uv, float zReceiver, float filterRadius) {\n float sum = 0.0;\n for (int i = 0; i < PCF_NUM_SAMPLES; i++) {\n float depth = unpackRGBAToDepth(texture2D(shadowMap, uv + poissonDisk[ i ] * filterRadius));\n if (zReceiver <= depth) sum += 1.0;\n }\n for (int i = 0; i < PCF_NUM_SAMPLES; i++) {\n float depth = unpackRGBAToDepth(texture2D(shadowMap, uv + -poissonDisk[ i ].yx * filterRadius));\n if (zReceiver <= depth) sum += 1.0;\n }\n return sum / (2.0 * float(PCF_NUM_SAMPLES));\n}\n\nfloat PCSS(sampler2D shadowMap, vec4 coords) {\n vec2 uv = coords.xy;\n float zReceiver = coords.z; // Assumed to be eye-space z in this code\n initPoissonSamples(uv);\n float avgBlockerDepth = findBlocker(shadowMap, uv, zReceiver);\n if (avgBlockerDepth == -1.0) return 1.0;\n float penumbraRatio = penumbraSize(zReceiver, avgBlockerDepth);\n float filterRadius = penumbraRatio * LIGHT_SIZE_UV * NEAR_PLANE / zReceiver;\n return PCF_Filter(shadowMap, uv, zReceiver, filterRadius);\n}`)({...e})),t=t.replace("#if defined( SHADOWMAP_TYPE_PCF )","\nreturn PCSS(shadowMap, shadowCoord);\n#if defined( SHADOWMAP_TYPE_PCF )"),a.ShaderChunk.shadowmap_pars_fragment=t}};function kp(e){const t=e+"BufferGeometry";return i.forwardRef((({args:e,children:r,...s},a)=>i.createElement("mesh",(0,n.Z)({ref:a},s),i.createElement(t,{attach:"geometry",args:e}),r)))}const Gp=kp("box"),zp=kp("circle"),Qp=kp("cone"),Vp=kp("cylinder"),Hp=kp("sphere"),jp=kp("plane"),Wp=kp("tube"),Xp=kp("torus"),Yp=kp("torusKnot"),qp=kp("tetrahedron"),Kp=kp("ring"),Jp=kp("polyhedron"),Zp=kp("icosahedron"),$p=kp("octahedron"),ef=kp("dodecahedron"),tf=kp("extrude"),rf=kp("lathe"),nf=1e-5;const sf=i.forwardRef((function({args:[e=1,t=1,r=1]=[],radius:s=.05,steps:o=1,smoothness:l=4,children:c,...h},u){const d=i.useMemo((()=>function(e,t,r){const n=new a.Shape,i=r-nf;return n.absarc(nf,nf,nf,-Math.PI/2,-Math.PI,!0),n.absarc(nf,t-2*i,nf,Math.PI,Math.PI/2,!0),n.absarc(e-2*i,t-2*i,nf,Math.PI/2,0,!0),n.absarc(e-2*i,nf,nf,0,-Math.PI/2,!0),n}(e,t,s)),[e,t,s]),p=i.useMemo((()=>({depth:r-2*s,bevelEnabled:!0,bevelSegments:2*l,steps:o,bevelSize:s-nf,bevelThickness:s,curveSegments:l})),[r,s,l]),f=i.useRef();return i.useLayoutEffect((()=>{f.current&&f.current.center()}),[d,p]),i.createElement("mesh",(0,n.Z)({ref:u},h),i.createElement("extrudeBufferGeometry",{attach:"geometry",ref:f,args:[d,p]}),c)}));function af(){const e=new a.BufferGeometry,t=new Float32Array([-1,-1,3,-1,-1,3]);return e.setAttribute("position",new a.BufferAttribute(t,2)),e}const of=i.forwardRef((function({children:e,...t},r){const s=i.useMemo(af,[]);return i.createElement("mesh",(0,n.Z)({ref:r,geometry:s,frustumCulled:!1},t),e)})),lf=i.forwardRef((function({children:e,alignTop:t,...r},s){const o=i.useRef(null),l=i.useRef(null);return i.useLayoutEffect((()=>{o.current.position.set(0,0,0),o.current.updateWorldMatrix(!0,!0);const e=(new a.Box3).setFromObject(l.current),r=new a.Vector3,n=new a.Sphere,i=e.max.y-e.min.y;e.getCenter(r),e.getBoundingSphere(n),o.current.position.set(-r.x,-r.y+(t?i/2:0),-r.z)}),[e]),i.createElement("group",(0,n.Z)({ref:s},r),i.createElement("group",{ref:o},i.createElement("group",{ref:l},e)))})),cf=e=>e&&e.isOrthographicCamera,hf=e=>e&&e.isBox3,uf=i.createContext(null);function df({children:e,damping:t=6,fit:r,clip:n,observe:s,margin:l=1.2,eps:c=.01,onFit:h}){const u=i.useRef(null),{camera:d,invalidate:p,size:f,controls:m}=(0,o.useThree)(),g=i.useRef(h);function A(e,t){return Math.abs(e.x-t.x)({animating:!1,focus:new a.Vector3,camera:new a.Vector3,zoom:1}))),[x]=i.useState((()=>({focus:new a.Vector3,camera:new a.Vector3,zoom:1}))),[b]=i.useState((()=>new a.Box3)),E=i.useMemo((()=>{function e(){const e=b.getSize(new a.Vector3),t=b.getCenter(new a.Vector3),r=Math.max(e.x,e.y,e.z),n=cf(d)?4*r:r/(2*Math.atan(Math.PI*d.fov/360)),i=cf(d)?4*r:n/d.aspect,s=l*Math.max(n,i);return{box:b,size:e,center:t,distance:s}}return{getSize:e,refresh(t){if(hf(t))b.copy(t);else{const e=t||u.current;e.updateWorldMatrix(!0,!0),b.setFromObject(e)}if(b.isEmpty()){const e=d.position.length()||10;b.setFromCenterAndSize(new a.Vector3,new a.Vector3(e,e,e))}if("OrthographicTrackballControls"===(null==m?void 0:m.constructor.name)){const{distance:t}=e(),r=d.position.clone().sub(m.target).normalize().multiplyScalar(t),n=m.target.clone().add(r);d.position.copy(n)}return this},clip(){const{distance:t}=e();return m&&(m.maxDistance=10*t),d.near=t/100,d.far=100*t,d.updateProjectionMatrix(),m&&m.update(),p(),this},fit(){y.camera.copy(d.position),m&&y.focus.copy(m.target);const{center:r,distance:n}=e(),i=r.clone().sub(d.position).normalize().multiplyScalar(n);if(x.camera.copy(r).sub(i),x.focus.copy(r),cf(d)){y.zoom=d.zoom;let e=0,n=0;const i=[new a.Vector3(b.min.x,b.min.y,b.min.z),new a.Vector3(b.min.x,b.max.y,b.min.z),new a.Vector3(b.min.x,b.min.y,b.max.z),new a.Vector3(b.min.x,b.max.y,b.max.z),new a.Vector3(b.max.x,b.max.y,b.max.z),new a.Vector3(b.max.x,b.max.y,b.min.z),new a.Vector3(b.max.x,b.min.y,b.max.z),new a.Vector3(b.max.x,b.min.y,b.min.z)];r.applyMatrix4(d.matrixWorldInverse);for(const t of i)t.applyMatrix4(d.matrixWorldInverse),e=Math.max(e,Math.abs(t.y-r.y)),n=Math.max(n,Math.abs(t.x-r.x));e*=2,n*=2;const s=(d.top-d.bottom)/e,o=(d.right-d.left)/n;x.zoom=Math.min(s,o)/l,t||(d.zoom=x.zoom,d.updateProjectionMatrix())}return t?y.animating=!0:(d.position.copy(x.camera),d.lookAt(x.focus),m&&(m.target.copy(x.focus),m.update())),g.current&&g.current(this.getSize()),p(),this}}}),[b,d,m,l,t,p]);i.useLayoutEffect((()=>{if(m){const e=()=>y.animating=!1;return m.addEventListener("start",e),()=>m.removeEventListener("start",e)}}),[m]);const _=i.useRef(0);return i.useLayoutEffect((()=>{(s||0==_.current++)&&(E.refresh(),r&&E.fit(),n&&E.clip())}),[f,n,r,s]),(0,o.useFrame)(((e,r)=>{if(y.animating){if(v(y.focus,x.focus,t,r),v(y.camera,x.camera,t,r),y.zoom=a.MathUtils.damp(y.zoom,x.zoom,t,r),d.position.copy(y.camera),cf(d)&&(d.zoom=y.zoom,d.updateProjectionMatrix()),m?(m.target.copy(y.focus),m.update()):d.lookAt(y.focus),p(),cf(d)&&!(Math.abs(y.zoom-x.zoom)(((e,t,r)=>{t in e?ff(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);class gf{constructor(e=Math){mf(this,"grad3",[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]]),mf(this,"grad4",[[0,1,1,1],[0,1,1,-1],[0,1,-1,1],[0,1,-1,-1],[0,-1,1,1],[0,-1,1,-1],[0,-1,-1,1],[0,-1,-1,-1],[1,0,1,1],[1,0,1,-1],[1,0,-1,1],[1,0,-1,-1],[-1,0,1,1],[-1,0,1,-1],[-1,0,-1,1],[-1,0,-1,-1],[1,1,0,1],[1,1,0,-1],[1,-1,0,1],[1,-1,0,-1],[-1,1,0,1],[-1,1,0,-1],[-1,-1,0,1],[-1,-1,0,-1],[1,1,1,0],[1,1,-1,0],[1,-1,1,0],[1,-1,-1,0],[-1,1,1,0],[-1,1,-1,0],[-1,-1,1,0],[-1,-1,-1,0]]),mf(this,"p",[]),mf(this,"perm",[]),mf(this,"simplex",[[0,1,2,3],[0,1,3,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]),mf(this,"dot",((e,t,r)=>e[0]*t+e[1]*r)),mf(this,"dot3",((e,t,r,n)=>e[0]*t+e[1]*r+e[2]*n)),mf(this,"dot4",((e,t,r,n,i)=>e[0]*t+e[1]*r+e[2]*n+e[3]*i)),mf(this,"noise",((e,t)=>{let r,n,i;const s=(e+t)*(.5*(Math.sqrt(3)-1)),a=Math.floor(e+s),o=Math.floor(t+s),l=(3-Math.sqrt(3))/6,c=(a+o)*l,h=e-(a-c),u=t-(o-c);let d=0,p=1;h>u&&(d=1,p=0);const f=h-d+l,m=u-p+l,g=h-1+2*l,A=u-1+2*l,v=255&a,y=255&o,x=this.perm[v+this.perm[y]]%12,b=this.perm[v+d+this.perm[y+p]]%12,E=this.perm[v+1+this.perm[y+1]]%12;let _=.5-h*h-u*u;_<0?r=0:(_*=_,r=_*_*this.dot(this.grad3[x],h,u));let S=.5-f*f-m*m;S<0?n=0:(S*=S,n=S*S*this.dot(this.grad3[b],f,m));let M=.5-g*g-A*A;return M<0?i=0:(M*=M,i=M*M*this.dot(this.grad3[E],g,A)),70*(r+n+i)})),mf(this,"noise3d",((e,t,r)=>{let n,i,s,a;const o=(e+t+r)*(1/3),l=Math.floor(e+o),c=Math.floor(t+o),h=Math.floor(r+o),u=1/6,d=(l+c+h)*u,p=e-(l-d),f=t-(c-d),m=r-(h-d);let g,A,v,y,x,b;p>=f?f>=m?(g=1,A=0,v=0,y=1,x=1,b=0):p>=m?(g=1,A=0,v=0,y=1,x=0,b=1):(g=0,A=0,v=1,y=1,x=0,b=1):f{const i=this.grad4,s=this.simplex,a=this.perm,o=(Math.sqrt(5)-1)/4,l=(5-Math.sqrt(5))/20;let c,h,u,d,p;const f=(e+t+r+n)*o,m=Math.floor(e+f),g=Math.floor(t+f),A=Math.floor(r+f),v=Math.floor(n+f),y=(m+g+A+v)*l,x=e-(m-y),b=t-(g-y),E=r-(A-y),_=n-(v-y),S=(x>b?32:0)+(x>E?16:0)+(b>E?8:0)+(x>_?4:0)+(b>_?2:0)+(E>_?1:0);let M,w,C,T,I,B,R,P,D,L,F,U;M=s[S][0]>=3?1:0,w=s[S][1]>=3?1:0,C=s[S][2]>=3?1:0,T=s[S][3]>=3?1:0,I=s[S][0]>=2?1:0,B=s[S][1]>=2?1:0,R=s[S][2]>=2?1:0,P=s[S][3]>=2?1:0,D=s[S][0]>=1?1:0,L=s[S][1]>=1?1:0,F=s[S][2]>=1?1:0,U=s[S][3]>=1?1:0;const O=x-M+l,N=b-w+l,k=E-C+l,G=_-T+l,z=x-I+2*l,Q=b-B+2*l,V=E-R+2*l,H=_-P+2*l,j=x-D+3*l,W=b-L+3*l,X=E-F+3*l,Y=_-U+3*l,q=x-1+4*l,K=b-1+4*l,J=E-1+4*l,Z=_-1+4*l,$=255&m,ee=255&g,te=255&A,re=255&v,ne=a[$+a[ee+a[te+a[re]]]]%32,ie=a[$+M+a[ee+w+a[te+C+a[re+T]]]]%32,se=a[$+I+a[ee+B+a[te+R+a[re+P]]]]%32,ae=a[$+D+a[ee+L+a[te+F+a[re+U]]]]%32,oe=a[$+1+a[ee+1+a[te+1+a[re+1]]]]%32;let le=.6-x*x-b*b-E*E-_*_;le<0?c=0:(le*=le,c=le*le*this.dot4(i[ne],x,b,E,_));let ce=.6-O*O-N*N-k*k-G*G;ce<0?h=0:(ce*=ce,h=ce*ce*this.dot4(i[ie],O,N,k,G));let he=.6-z*z-Q*Q-V*V-H*H;he<0?u=0:(he*=he,u=he*he*this.dot4(i[se],z,Q,V,H));let ue=.6-j*j-W*W-X*X-Y*Y;ue<0?d=0:(ue*=ue,d=ue*ue*this.dot4(i[ae],j,W,X,Y));let de=.6-q*q-K*K-J*J-Z*Z;return de<0?p=0:(de*=de,p=de*de*this.dot4(i[oe],q,K,J,Z)),27*(c+h+u+d+p)}));for(let t=0;t<256;t++)this.p[t]=Math.floor(256*e.random());for(let t=0;t<512;t++)this.perm[t]=this.p[255&t]}}const Af=i.forwardRef((({intensity:e=1,decay:t,decayRate:r=.65,maxYaw:n=.1,maxPitch:s=.1,maxRoll:a=.1,yawFrequency:l=.1,pitchFrequency:c=.1,rollFrequency:h=.1,controls:u},d)=>{const p=(0,o.useThree)((e=>e.camera)),f=(0,o.useThree)((e=>e.controls)),m=i.useRef(e),g=i.useRef(p.rotation.clone()),[A]=i.useState((()=>new gf)),[v]=i.useState((()=>new gf)),[y]=i.useState((()=>new gf)),x=()=>{(m.current<0||m.current>1)&&(m.current=m.current<0?0:1)};return i.useImperativeHandle(d,(()=>({getIntensity:()=>m.current,setIntensity:e=>{m.current=e,x()}})),[]),i.useEffect((()=>{const e=f||(null==u?void 0:u.current),t=()=>{g.current=p.rotation.clone()};return null==e||e.addEventListener("change",t),()=>{null==e||e.removeEventListener("change",t)}}),[u,f]),(0,o.useFrame)((({clock:e},i)=>{const o=Math.pow(m.current,2),u=n*o*A.noise(e.elapsedTime*l,1),d=s*o*v.noise(e.elapsedTime*c,1),f=a*o*y.noise(e.elapsedTime*h,1);p.rotation.set(g.current.x+d,g.current.y+u,g.current.z+f),t&&m.current>0&&(m.current-=r*i,x())})),null})),vf=i.forwardRef((({children:e,speed:t=1,rotationIntensity:r=1,floatIntensity:n=1,...s},a)=>{const l=i.useRef(null),c=i.useRef(1e4*Math.random());return(0,o.useFrame)((e=>{const i=c.current+e.clock.getElapsedTime();l.current.rotation.x=Math.cos(i/4*t)/8*r,l.current.rotation.y=Math.sin(i/4*t)/8*r,l.current.rotation.z=Math.sin(i/4*t)/20*r,l.current.position.y=Math.sin(i/4*t)/10*n})),i.createElement("group",s,i.createElement("group",{ref:w([l,a])},e))}));class yf extends a.DataTextureLoader{constructor(e){super(e),this.type=a.HalfFloatType}parse(e){const t=function(e,t){switch(e){case 1:console.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:console.error("THREE.RGBELoader: Error: "+(t||""))}return-1},r=function(e,t,r){t=t||1024;let n=e.pos,i=-1,s=0,a="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));for(;0>(i=o.indexOf("\n"))&&s=e.byteLength||!(l=r(e)))return t(1,"no header found");if(!(c=l.match(/^#\?(\S+)/)))return t(3,"bad initial token");for(o.valid|=1,o.programtype=c[1],o.string+=l+"\n";l=r(e),!1!==l;)if(o.string+=l+"\n","#"!==l.charAt(0)){if((c=l.match(n))&&(o.gamma=parseFloat(c[1])),(c=l.match(i))&&(o.exposure=parseFloat(c[1])),(c=l.match(s))&&(o.valid|=2,o.format=c[1]),(c=l.match(a))&&(o.valid|=4,o.height=parseInt(c[1],10),o.width=parseInt(c[2],10)),2&o.valid&&4&o.valid)break}else o.comments+=l+"\n";return 2&o.valid?4&o.valid?o:t(3,"missing image size specifier"):t(3,"missing format specifier")}(s);if(-1!==o){const e=o.width,r=o.height,l=function(e,r,n){const i=r;if(i<8||i>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);if(i!==(e[2]<<8|e[3]))return t(3,"wrong scanline width");const s=new Uint8Array(4*r*n);if(!s.length)return t(4,"unable to allocate buffer space");let a=0,o=0;const l=4*i,c=new Uint8Array(4),h=new Uint8Array(l);let u=n;for(;u>0&&oe.byteLength)return t(1);if(c[0]=e[o++],c[1]=e[o++],c[2]=e[o++],c[3]=e[o++],2!=c[0]||2!=c[1]||(c[2]<<8|c[3])!=i)return t(3,"bad rgbe scanline format");let r,n=0;for(;n128;if(i&&(r-=128),0===r||n+r>l)return t(3,"bad scanline data");if(i){const t=e[o++];for(let e=0;e{return(t=e).current&&t.current.isScene?e.current:e;var t};function _f(e){return e.map?i.createElement(Sf,e):e.children?i.createElement(Mf,e):i.createElement(wf,e)}function Sf({scene:e,background:t=!1,map:r}){const n=(0,o.useThree)((e=>e.scene));return i.useLayoutEffect((()=>{if(r){const i=Ef(e||n),s=i.background,a=i.environment;return"only"!==t&&(i.environment=r),t&&(i.background=r),()=>{"only"!==t&&(i.environment=a),t&&(i.background=s)}}}),[e,r]),null}function Mf({children:e,near:t=1,far:r=1e3,resolution:n=256,frames:s=1,background:l=!1,scene:c,files:h,path:u,preset:d,extensions:p}){const f=(0,o.useThree)((e=>e.gl)),m=(0,o.useThree)((e=>e.scene)),g=i.useRef(null),[A]=i.useState((()=>new a.Scene)),v=i.useMemo((()=>{const e=new a.WebGLCubeRenderTarget(n);return e.texture.type=a.HalfFloatType,e}),[n]);i.useLayoutEffect((()=>{1===s&&g.current.update(f,A);const e=Ef(c||m),t=e.background,r=e.environment;return"only"!==l&&(e.environment=v.texture),l&&(e.background=v.texture),()=>{"only"!==l&&(e.environment=r),l&&(e.background=t)}}),[e,c]);let y=1;return(0,o.useFrame)((()=>{(s===1/0||ye.scene)),h=Array.isArray(t),u=h?a.CubeTextureLoader:yf,d=(0,o.useLoader)(u,h?[t]:t,(e=>{e.setPath(r),null==e.setDataType||e.setDataType(a.FloatType),l&&l(e)})),p=h?d[0]:d;return p.mapping=h?a.CubeReflectionMapping:a.EquirectangularReflectionMapping,i.useLayoutEffect((()=>{const t=Ef(s||c),r=t.background,n=t.environment;return"only"!==e&&(t.environment=p),e&&(t.background=p),()=>{"only"!==e&&(t.environment=n),e&&(t.background=r)}}),[p,e,s]),null}const Cf={uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n ",fragmentShader:"\n uniform sampler2D tDiffuse;\n uniform float h;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec4 sum = vec4( 0.0 );\n\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n \tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n \tgl_FragColor = sum;\n\n }\n "},Tf={uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n ",fragmentShader:"\n\n uniform sampler2D tDiffuse;\n uniform float v;\n\n varying vec2 vUv;\n\n void main() {\n\n vec4 sum = vec4( 0.0 );\n\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n gl_FragColor = sum;\n\n }\n "},If=i.forwardRef((({scale:e,frames:t=1/0,opacity:r=1,width:s=1,height:l=1,blur:c=1,far:h=10,resolution:u=256,smooth:d=!0,color:p="#000000",...f},m)=>{const g=(0,o.useThree)((({scene:e})=>e)),A=(0,o.useThree)((({gl:e})=>e)),v=i.useRef(null);s*=Array.isArray(e)?e[0]:e||1,l*=Array.isArray(e)?e[1]:e||1;const[y,x,b,E,_,S,M]=i.useMemo((()=>{const e=new a.WebGLRenderTarget(u,u),t=new a.WebGLRenderTarget(u,u);t.texture.generateMipmaps=e.texture.generateMipmaps=!1;const r=new a.PlaneBufferGeometry(s,l).rotateX(Math.PI/2),n=new a.Mesh(r),i=new a.MeshDepthMaterial;i.depthTest=i.depthWrite=!1,i.onBeforeCompile=e=>{e.uniforms={...e.uniforms,ucolor:{value:new a.Color(p).convertSRGBToLinear()}},e.fragmentShader=e.fragmentShader.replace("void main() {","uniform vec3 ucolor;\n void main() {\n "),e.fragmentShader=e.fragmentShader.replace("vec4( vec3( 1.0 - fragCoordZ ), opacity );","vec4( ucolor, ( 1.0 - fragCoordZ ) * 1.0 );")};const o=new a.ShaderMaterial(Cf),c=new a.ShaderMaterial(Tf);return c.depthTest=o.depthTest=!1,[e,r,i,n,o,c,t]}),[u,s,l,e]),w=i.useCallback((e=>{E.visible=!0,E.material=_,_.uniforms.tDiffuse.value=y.texture,_.uniforms.h.value=1*e/256,A.setRenderTarget(M),A.render(E,v.current),E.material=S,S.uniforms.tDiffuse.value=M.texture,S.uniforms.v.value=1*e/256,A.setRenderTarget(y),A.render(E,v.current),E.visible=!1}),[]);let C=0;return(0,o.useFrame)((()=>{if(v.current&&(t===1/0||Ce.camera)),g=(0,o.useThree)((e=>e.controls)),A=i.useRef(null),v=i.useRef(null),[{radius:y,width:x,height:b},E]=i.useState({radius:0,width:0,height:0});return i.useLayoutEffect((()=>{A.current.position.set(0,0,0),A.current.updateWorldMatrix(!0,!0);const e=(new a.Box3).setFromObject(v.current),t=new a.Vector3,r=new a.Sphere,n=e.max.y-e.min.y,i=e.max.x-e.min.x;e.getCenter(t),e.getBoundingSphere(r),E({radius:r.radius,width:i,height:n}),A.current.position.set(-t.x,-t.y+n/2,-t.z)}),[e]),i.useLayoutEffect((()=>{if(s){const e=y/(b>x?1.5:2.5);m.position.set(0,.5*y,2.5*y),m.near=.1,m.far=Math.max(5e3,4*y),m.lookAt(0,e,0);const r=g||(null==t?void 0:t.current);r&&(r.target.set(0,e,0),r.update())}}),[g,y,b,x,s]),i.createElement("group",p,i.createElement("group",{ref:A},i.createElement("group",{ref:v},e)),d&&i.createElement(If,(0,n.Z)({scale:2*y,far:y/2},d)),l&&i.createElement(_f,{preset:l}),i.createElement("ambientLight",{intensity:c/3}),i.createElement("spotLight",{penumbra:1,position:[f.main[0]*y,f.main[1]*y,f.main[2]*y],intensity:2*c,castShadow:r,"shadow-bias":u}),i.createElement("pointLight",{position:[f.fill[0]*y,f.fill[1]*y,f.fill[2]*y],intensity:c}))}const Pf=e=>0===e?0:Math.pow(2,10*e-10);function Df({children:e,floor:t=.25,segments:r=20,receiveShadow:n,...s}){const a=i.useRef(null);return i.useLayoutEffect((()=>{let e=0;const n=r/r/2,i=a.current.attributes.position;for(let s=0;s{const c=i.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const n=e.getContext("2d"),i=n.createRadialGradient(e.width/2,e.height/2,0,e.width/2,e.height/2,e.width/2);return i.addColorStop(t,new a.Color(r).getStyle()),i.addColorStop(1,"rgba(0,0,0,0)"),n.fillStyle=i,n.fillRect(0,0,e.width,e.height),e}),[r,t]);return i.createElement("mesh",(0,n.Z)({ref:l},o),i.createElement("planeBufferGeometry",{attach:"geometry",args:[1,1]}),i.createElement("meshBasicMaterial",{attach:"material",transparent:!0,opacity:s,fog:e},i.createElement("canvasTexture",{attach:"map",args:[c]})))}));(0,o.extend)({MeshReflectorMaterial:Dp});const Ff=i.forwardRef((({mixBlur:e=0,mixStrength:t=.5,resolution:r=256,blur:s=[0,0],args:l=[1,1],minDepthThreshold:c=.9,maxDepthThreshold:h=1,depthScale:u=0,depthToBlurRatioBias:d=.25,mirror:p=0,children:f,debug:m=0,distortion:g=1,mixContrast:A=1,distortionMap:v,...y},x)=>{i.useEffect((()=>{console.warn("Reflector has been deprecated and will be removed next major. Replace it with !")}),[]);const b=(0,o.useThree)((({gl:e})=>e)),E=(0,o.useThree)((({camera:e})=>e)),_=(0,o.useThree)((({scene:e})=>e)),S=(s=Array.isArray(s)?s:[s,s])[0]+s[1]>0,M=i.useRef(null),[C]=i.useState((()=>new a.Plane)),[T]=i.useState((()=>new a.Vector3)),[I]=i.useState((()=>new a.Vector3)),[B]=i.useState((()=>new a.Vector3)),[R]=i.useState((()=>new a.Matrix4)),[P]=i.useState((()=>new a.Vector3(0,0,-1))),[D]=i.useState((()=>new a.Vector4)),[L]=i.useState((()=>new a.Vector3)),[F]=i.useState((()=>new a.Vector3)),[U]=i.useState((()=>new a.Vector4)),[O]=i.useState((()=>new a.Matrix4)),[N]=i.useState((()=>new a.PerspectiveCamera)),k=i.useCallback((()=>{if(I.setFromMatrixPosition(M.current.matrixWorld),B.setFromMatrixPosition(E.matrixWorld),R.extractRotation(M.current.matrixWorld),T.set(0,0,1),T.applyMatrix4(R),L.subVectors(I,B),L.dot(T)>0)return;L.reflect(T).negate(),L.add(I),R.extractRotation(E.matrixWorld),P.set(0,0,-1),P.applyMatrix4(R),P.add(B),F.subVectors(I,P),F.reflect(T).negate(),F.add(I),N.position.copy(L),N.up.set(0,1,0),N.up.applyMatrix4(R),N.up.reflect(T),N.lookAt(F),N.far=E.far,N.updateMatrixWorld(),N.projectionMatrix.copy(E.projectionMatrix),O.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),O.multiply(N.projectionMatrix),O.multiply(N.matrixWorldInverse),O.multiply(M.current.matrixWorld),C.setFromNormalAndCoplanarPoint(T,I),C.applyMatrix4(N.matrixWorldInverse),D.set(C.normal.x,C.normal.y,C.normal.z,C.constant);const e=N.projectionMatrix;U.x=(Math.sign(D.x)+e.elements[8])/e.elements[0],U.y=(Math.sign(D.y)+e.elements[9])/e.elements[5],U.z=-1,U.w=(1+e.elements[10])/e.elements[14],D.multiplyScalar(2/D.dot(U)),e.elements[2]=D.x,e.elements[6]=D.y,e.elements[10]=D.z+1,e.elements[14]=D.w}),[]),[G,z,Q,V]=i.useMemo((()=>{const n={minFilter:a.LinearFilter,magFilter:a.LinearFilter,encoding:b.outputEncoding},i=new a.WebGLRenderTarget(r,r,n);i.depthBuffer=!0,i.depthTexture=new a.DepthTexture(r,r),i.depthTexture.format=a.DepthFormat,i.depthTexture.type=a.UnsignedShortType;const o=new a.WebGLRenderTarget(r,r,n);return[i,o,new Pp({gl:b,resolution:r,width:s[0],height:s[1],minDepthThreshold:c,maxDepthThreshold:h,depthScale:u,depthToBlurRatioBias:d}),{mirror:p,textureMatrix:O,mixBlur:e,tDiffuse:i.texture,tDepth:i.depthTexture,tDiffuseBlur:o.texture,hasBlur:S,mixStrength:t,minDepthThreshold:c,maxDepthThreshold:h,depthScale:u,depthToBlurRatioBias:d,transparent:!0,debug:m,distortion:g,distortionMap:v,mixContrast:A,"defines-USE_BLUR":S?"":void 0,"defines-USE_DEPTH":u>0?"":void 0,"defines-USE_DISTORTION":v?"":void 0}]}),[b,s,O,r,p,S,e,t,c,h,u,d,m,g,v,A]);return(0,o.useFrame)((()=>{if(null==M||!M.current)return;M.current.visible=!1;const e=b.xr.enabled,t=b.shadowMap.autoUpdate;k(),b.xr.enabled=!1,b.shadowMap.autoUpdate=!1,b.setRenderTarget(G),b.state.buffers.depth.setMask(!0),b.autoClear||b.clear(),b.render(_,N),S&&Q.render(b,G,z),b.xr.enabled=e,b.shadowMap.autoUpdate=t,M.current.visible=!0,b.setRenderTarget(null)})),i.createElement("mesh",(0,n.Z)({ref:w([M,x])},y),i.createElement("planeBufferGeometry",{args:l}),f?f("meshReflectorMaterial",V):i.createElement("meshReflectorMaterial",V))}));class Uf extends a.ShaderMaterial{constructor(){super({uniforms:{depth:{value:null},opacity:{value:1},attenuation:{value:2.5},anglePower:{value:12},spotPosition:{value:new a.Vector3(0,0,0)},lightColor:{value:new a.Color("white")},cameraNear:{value:0},cameraFar:{value:1},resolution:{value:new a.Vector2(0,0)}},transparent:!0,depthWrite:!1,vertexShader:"\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n varying float vViewZ;\n varying float vIntensity;\n uniform vec3 spotPosition;\n uniform float attenuation; \n\n void main() {\n // compute intensity\n vNormal = normalize( normalMatrix * normal );\n vec4 worldPosition\t= modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n vec4 viewPosition = viewMatrix * worldPosition;\n vViewZ = viewPosition.z;\n float intensity\t= distance(worldPosition.xyz, spotPosition) / attenuation;\n intensity\t= 1.0 - clamp(intensity, 0.0, 1.0);\n vIntensity = intensity; \n // set gl_Position\n gl_Position\t= projectionMatrix * viewPosition;\n\n }",fragmentShader:"\n #include \n\n varying vec3 vNormal;\n varying vec3 vWorldPosition;\n uniform vec3 lightColor;\n uniform vec3 spotPosition;\n uniform float attenuation;\n uniform float anglePower;\n uniform sampler2D depth;\n uniform vec2 resolution;\n uniform float cameraNear;\n uniform float cameraFar;\n varying float vViewZ;\n varying float vIntensity;\n uniform float opacity;\n\n float readDepth( sampler2D depthSampler, vec2 coord ) {\n float fragCoordZ = texture2D( depthSampler, coord ).x;\n float viewZ = perspectiveDepthToViewZ(fragCoordZ, cameraNear, cameraFar);\n return viewZ;\n }\n\n void main() {\n float d = 1.0;\n bool isSoft = resolution[0] > 0.0 && resolution[1] > 0.0;\n if (isSoft) {\n vec2 sUv = gl_FragCoord.xy / resolution;\n d = readDepth(depth, sUv);\n }\n float intensity = vIntensity;\n vec3 normal\t= vec3(vNormal.x, vNormal.y, abs(vNormal.z));\n float angleIntensity\t= pow( dot(normal, vec3(0.0, 0.0, 1.0)), anglePower );\n intensity\t*= angleIntensity;\n // fades when z is close to sampled depth, meaning the cone is intersecting existing geometry\n if (isSoft) {\n intensity\t*= smoothstep(0., 1., vViewZ - d);\n }\n gl_FragColor = vec4(lightColor, intensity * opacity);\n\n #include \n\t #include \n }"})}}const Of=new a.Vector3,Nf=i.forwardRef((({opacity:e=1,radiusTop:t,radiusBottom:r,depthBuffer:s,color:l="white",distance:c=5,angle:h=.15,attenuation:u=5,anglePower:d=5,...p},f)=>{const m=i.useRef(null),g=(0,o.useThree)((e=>e.size)),A=(0,o.useThree)((e=>e.camera)),v=(0,o.useThree)((e=>e.viewport.dpr)),[y]=i.useState((()=>new Uf));t=void 0===t?.1:t,r=void 0===r?7*h:r,(0,o.useFrame)((()=>{y.uniforms.spotPosition.value.copy(m.current.getWorldPosition(Of)),m.current.lookAt(m.current.parent.target.getWorldPosition(Of))}));const x=i.useMemo((()=>{const e=new a.CylinderGeometry(t,r,c,128,64,!0);return e.applyMatrix4((new a.Matrix4).makeTranslation(0,-c/2,0)),e.applyMatrix4((new a.Matrix4).makeRotationX(-Math.PI/2)),e}),[h,c,t,r]);return i.createElement("spotLight",(0,n.Z)({ref:f,angle:h,color:l,distance:c},p),i.createElement("mesh",{ref:m,geometry:x,raycast:()=>null},i.createElement("primitive",{object:y,attach:"material","uniforms-opacity-value":e,"uniforms-lightColor-value":l,"uniforms-attenuation-value":u,"uniforms-anglePower-value":d,"uniforms-depth-value":s,"uniforms-cameraNear-value":A.near,"uniforms-cameraFar-value":A.far,"uniforms-resolution-value":s?[g.width*v,g.height*v]:[0,0]})))})),kf=i.forwardRef((({args:e,map:t,toneMapped:r=!1,color:s="white",form:l="rect",intensity:c=1,scale:h=1,target:u,children:d,...p},f)=>{const m=i.useRef(null);return i.useLayoutEffect((()=>{d||p.material||((0,o.applyProps)(m.current.material,{color:s}),m.current.material.color.multiplyScalar(c))}),[s,c,d,p.material]),i.useLayoutEffect((()=>{u&&m.current.lookAt(Array.isArray(u)?new a.Vector3(...u):u)}),[u]),h=Array.isArray(h)&&2===h.length?[h[0],h[1],1]:h,i.createElement("mesh",(0,n.Z)({ref:w([m,f]),scale:h},p),"circle"===l?i.createElement("ringGeometry",{args:[0,1,64]}):"ring"===l?i.createElement("ringGeometry",{args:[.5,1,64]}):"rect"===l?i.createElement("planeGeometry",null):i.createElement(l,{args:e}),d||(p.material?null:i.createElement("meshBasicMaterial",{toneMapped:r,map:t,side:a.DoubleSide})))}));var Gf=Object.defineProperty,zf=(e,t,r)=>(((e,t,r)=>{t in e?Gf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);const Qf={uniforms:{turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new a.Vector3},up:{value:new a.Vector3(0,1,0)}},vertexShader:"\n uniform vec3 sunPosition;\n uniform float rayleigh;\n uniform float turbidity;\n uniform float mieCoefficient;\n uniform vec3 up;\n\n varying vec3 vWorldPosition;\n varying vec3 vSunDirection;\n varying float vSunfade;\n varying vec3 vBetaR;\n varying vec3 vBetaM;\n varying float vSunE;\n\n // constants for atmospheric scattering\n const float e = 2.71828182845904523536028747135266249775724709369995957;\n const float pi = 3.141592653589793238462643383279502884197169;\n\n // wavelength of used primaries, according to preetham\n const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 );\n // this pre-calcuation replaces older TotalRayleigh(vec3 lambda) function:\n // (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn))\n const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 );\n\n // mie stuff\n // K coefficient for the primaries\n const float v = 4.0;\n const vec3 K = vec3( 0.686, 0.678, 0.666 );\n // MieConst = pi * pow( ( 2.0 * pi ) / lambda, vec3( v - 2.0 ) ) * K\n const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 );\n\n // earth shadow hack\n // cutoffAngle = pi / 1.95;\n const float cutoffAngle = 1.6110731556870734;\n const float steepness = 1.5;\n const float EE = 1000.0;\n\n float sunIntensity( float zenithAngleCos ) {\n zenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 );\n return EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) );\n }\n\n vec3 totalMie( float T ) {\n float c = ( 0.2 * T ) * 10E-18;\n return 0.434 * c * MieConst;\n }\n\n void main() {\n\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n gl_Position.z = gl_Position.w; // set z to camera.far\n\n vSunDirection = normalize( sunPosition );\n\n vSunE = sunIntensity( dot( vSunDirection, up ) );\n\n vSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 );\n\n float rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) );\n\n // extinction (absorbtion + out scattering)\n // rayleigh coefficients\n vBetaR = totalRayleigh * rayleighCoefficient;\n\n // mie coefficients\n vBetaM = totalMie( turbidity ) * mieCoefficient;\n\n }\n ",fragmentShader:`\n varying vec3 vWorldPosition;\n varying vec3 vSunDirection;\n varying float vSunfade;\n varying vec3 vBetaR;\n varying vec3 vBetaM;\n varying float vSunE;\n\n uniform float mieDirectionalG;\n uniform vec3 up;\n\n const vec3 cameraPos = vec3( 0.0, 0.0, 0.0 );\n\n // constants for atmospheric scattering\n const float pi = 3.141592653589793238462643383279502884197169;\n\n const float n = 1.0003; // refractive index of air\n const float N = 2.545E25; // number of molecules per unit volume for air at 288.15K and 1013mb (sea level -45 celsius)\n\n // optical length at zenith for molecules\n const float rayleighZenithLength = 8.4E3;\n const float mieZenithLength = 1.25E3;\n // 66 arc seconds -> degrees, and the cosine of that\n const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;\n\n // 3.0 / ( 16.0 * pi )\n const float THREE_OVER_SIXTEENPI = 0.05968310365946075;\n // 1.0 / ( 4.0 * pi )\n const float ONE_OVER_FOURPI = 0.07957747154594767;\n\n float rayleighPhase( float cosTheta ) {\n return THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) );\n }\n\n float hgPhase( float cosTheta, float g ) {\n float g2 = pow( g, 2.0 );\n float inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 );\n return ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse );\n }\n\n void main() {\n\n vec3 direction = normalize( vWorldPosition - cameraPos );\n\n // optical length\n // cutoff angle at 90 to avoid singularity in next formula.\n float zenithAngle = acos( max( 0.0, dot( up, direction ) ) );\n float inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) );\n float sR = rayleighZenithLength * inverse;\n float sM = mieZenithLength * inverse;\n\n // combined extinction factor\n vec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) );\n\n // in scattering\n float cosTheta = dot( direction, vSunDirection );\n\n float rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 );\n vec3 betaRTheta = vBetaR * rPhase;\n\n float mPhase = hgPhase( cosTheta, mieDirectionalG );\n vec3 betaMTheta = vBetaM * mPhase;\n\n vec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) );\n Lin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) );\n\n // nightsky\n float theta = acos( direction.y ); // elevation --\x3e y-axis, [-pi/2, pi/2]\n float phi = atan( direction.z, direction.x ); // azimuth --\x3e x-axis [-pi/2, pi/2]\n vec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 );\n vec3 L0 = vec3( 0.1 ) * Fex;\n\n // composition + solar disc\n float sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta );\n L0 += ( vSunE * 19000.0 * Fex ) * sundisk;\n\n vec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 );\n\n vec3 retColor = pow( texColor, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) );\n\n gl_FragColor = vec4( retColor, 1.0 );\n\n #include \n #include <${Kc>=154?"colorspace_fragment":"encodings_fragment"}>\n\n }\n `},Vf=new a.ShaderMaterial({name:"SkyShader",fragmentShader:Qf.fragmentShader,vertexShader:Qf.vertexShader,uniforms:a.UniformsUtils.clone(Qf.uniforms),side:a.BackSide,depthWrite:!1});class Hf extends a.Mesh{constructor(){super(new a.BoxGeometry(1,1,1),Vf)}}function jf(e,t,r=new a.Vector3){const n=Math.PI*(e-.5),i=2*Math.PI*(t-.5);return r.x=Math.cos(i),r.y=Math.sin(n),r.z=Math.sin(i),r}zf(Hf,"SkyShader",Qf),zf(Hf,"material",Vf);const Wf=i.forwardRef((({inclination:e=.6,azimuth:t=.1,distance:r=1e3,mieCoefficient:s=.005,mieDirectionalG:o=.8,rayleigh:l=.5,turbidity:c=10,sunPosition:h=jf(e,t),...u},d)=>{const p=i.useMemo((()=>(new a.Vector3).setScalar(r)),[r]),[f]=i.useState((()=>new Hf));return i.createElement("primitive",(0,n.Z)({dispose:void 0,object:f,ref:d,"material-uniforms-mieCoefficient-value":s,"material-uniforms-mieDirectionalG-value":o,"material-uniforms-rayleigh-value":l,"material-uniforms-sunPosition-value":h,"material-uniforms-turbidity-value":c,scale:p},u))}));class Xf extends a.ShaderMaterial{constructor(){super({uniforms:{time:{value:0},fade:{value:1}},vertexShader:"\n uniform float time;\n attribute float size;\n varying vec3 vColor;\n void main() {\n vColor = color;\n vec4 mvPosition = modelViewMatrix * vec4(position, 0.5);\n gl_PointSize = size * (30.0 / -mvPosition.z) * (3.0 + sin(mvPosition.x + 2.0 * time + 100.0));\n gl_Position = projectionMatrix * mvPosition;\n }",fragmentShader:"\n uniform sampler2D pointTexture;\n uniform float fade;\n varying vec3 vColor;\n void main() {\n float opacity = 1.0;\n if (fade == 1.0) {\n float d = distance(gl_PointCoord, vec2(0.5, 0.5));\n opacity = 1.0 / (1.0 + exp(16.0 * (d - 0.25)));\n }\n gl_FragColor = vec4(vColor, opacity);\n\n #include \n\t #include \n }"})}}const Yf=e=>(new a.Vector3).setFromSpherical(new a.Spherical(e,Math.acos(1-2*Math.random()),2*Math.random()*Math.PI)),qf=i.forwardRef((({radius:e=100,depth:t=50,count:r=5e3,saturation:n=0,factor:s=4,fade:l=!1},c)=>{const h=i.useRef(),[u,d,p]=i.useMemo((()=>{const i=[],o=[],l=Array.from({length:r},(()=>(.5+.5*Math.random())*s)),c=new a.Color;let h=e+t;const u=t/r;for(let e=0;eh.current&&(h.current.uniforms.time.value=e.clock.getElapsedTime())));const[f]=i.useState((()=>new Xf));return i.createElement("points",{ref:c},i.createElement("bufferGeometry",{attach:"geometry"},i.createElement("bufferAttribute",{attachObject:["attributes","position"],args:[u,3]}),i.createElement("bufferAttribute",{attachObject:["attributes","color"],args:[d,3]}),i.createElement("bufferAttribute",{attachObject:["attributes","size"],args:[p,1]})),i.createElement("primitive",{dispose:void 0,ref:h,object:f,attach:"material",blending:a.AdditiveBlending,"uniforms-fade-value":l,transparent:!0,vertexColors:!0}))})),Kf="https://rawcdn.githack.com/pmndrs/drei-assets/9225a9f1fbd449d9411125c2f419b843d0308c9f/cloud.png";function Jf({opacity:e=.5,speed:t=.4,width:r=10,depth:n=1.5,segments:s=20,texture:a=Kf,color:l="#ffffff",depthTest:c=!0,...h}){const u=i.useRef(),d=Oa(a),p=i.useMemo((()=>[...new Array(s)].map(((e,n)=>({x:r/2-Math.random()*r,y:r/2-Math.random()*r,scale:.4+Math.sin((n+1)/s*Math.PI)*(10*(.2+Math.random())),density:Math.max(.2,Math.random()),rotation:Math.max(.002,.005*Math.random())*t})))),[r,s,t]);return(0,o.useFrame)((e=>{var t;return null==(t=u.current)?void 0:t.children.forEach(((t,r)=>{t.children[0].rotation.z+=p[r].rotation,t.children[0].scale.setScalar(p[r].scale+(1+Math.sin(e.clock.getElapsedTime()/10))/2*r/10)}))})),i.createElement("group",h,i.createElement("group",{position:[0,0,s/2*n],ref:u},p.map((({x:t,y:r,scale:s,density:a},o)=>i.createElement(Oi,{key:o,position:[t,r,-o*n]},i.createElement(jp,{scale:s,rotation:[0,0,0]},i.createElement("meshStandardMaterial",{map:d,transparent:!0,opacity:s/6*a*e,depthTest:c,color:l})))))))}const Zf="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/matcaps.json",$f="https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d";function em(e=0,t=1024){const r=pa((()=>fetch(Zf).then((e=>e.json()))),["matcapList"]),n=r[0],s=i.useMemo((()=>Object.keys(r).length),[]),a=`${i.useMemo((()=>"string"==typeof e?e:"number"==typeof e?r[e]:null),[e])||n}${function(e){switch(e){case 64:return"-64px";case 128:return"-128px";case 256:return"-256px";case 512:return"-512px";default:return""}}(t)}.png`,o=`${$f}/${t}/${a}`;return[Oa(o),o,s]}const tm="https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb",rm="https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json";function nm(e=0,t={}){const{repeat:r=[1,1],anisotropy:n=1,offset:s=[0,0]}=t,o=pa((()=>fetch(rm).then((e=>e.json()))),["normalsList"]),l=i.useMemo((()=>Object.keys(o).length),[]),c=o[0],h=o[e]||c,u=`${tm}/normals/${h}`,d=Oa(u);return i.useLayoutEffect((()=>{d&&(d.wrapS=d.wrapT=a.RepeatWrapping,d.repeat=new a.Vector2(r[0],r[1]),d.offset=new a.Vector2(s[0],s[1]),d.anisotropy=n)}),[d,n,r,s]),[d,u,l]}const im=new a.Matrix4,sm=new a.Matrix4,am=[],om=new a.Mesh;class lm extends a.Group{constructor(){super(),this.color=new a.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;om.geometry=r.geometry;const n=r.matrixWorld;let i=r.userData.instances.indexOf(this.instanceKey);if(!(-1===i||i>r.count)){r.getMatrixAt(i,im),sm.multiplyMatrices(n,im),om.matrixWorld=sm,om.raycast(e,am);for(let e=0,r=am.length;e{const c=i.useRef(null),[h,u]=i.useState([]),[[d,p,f]]=i.useState((()=>[new Float32Array(3*r),Float32Array.from({length:3*r},(()=>1)),Float32Array.from({length:r},(()=>1))]));i.useLayoutEffect((()=>{c.current.geometry.drawRange.count=Math.min(r,void 0!==t?t:r,h.length)}),[h,t]),i.useEffect((()=>{c.current.geometry.attributes.position.needsUpdate=!0})),(0,o.useFrame)((()=>{for(c.current.updateMatrix(),c.current.updateMatrixWorld(),dm.copy(c.current.matrixWorld).invert(),cm=0;cm{const e={};for(cm=0;cm({...e,[t]:e=>{var r,n,i;const s=null==(r=h[e.index])?void 0:r.current;return null==s||null==(n=s.__r3f)||null==(i=n.handlers)?void 0:i[t]({...e,object:s})}})),{})}),[e,h]),g=i.useMemo((()=>({subscribe:e=>(u((t=>[...t,e])),()=>u((t=>t.filter((t=>t.current!==e.current)))))})),[]);return i.createElement("points",(0,n.Z)({matrixAutoUpdate:!1,ref:w([l,c])},m,s),i.createElement("bufferGeometry",null,i.createElement("bufferAttribute",{attachObject:["attributes","position"],count:d.length/3,array:d,itemSize:3,usage:a.DynamicDrawUsage}),i.createElement("bufferAttribute",{attachObject:["attributes","color"],count:p.length/3,array:p,itemSize:3,usage:a.DynamicDrawUsage}),i.createElement("bufferAttribute",{attachObject:["attributes","size"],count:f.length,array:f,itemSize:1,usage:a.DynamicDrawUsage})),i.createElement(um.Provider,{value:g},e))})),mm=i.forwardRef((({children:e,...t},r)=>{i.useMemo((()=>(0,o.extend)({Position:lm})),[]);const s=i.useRef(),{subscribe:a}=i.useContext(um);return i.useLayoutEffect((()=>a(s)),[]),i.createElement("position",(0,n.Z)({ref:w([r,s])},t),e)})),gm=i.forwardRef((({children:e,positions:t,colors:r,sizes:s,stride:l=3,...c},h)=>{const u=i.useRef(null);return(0,o.useFrame)((()=>{const e=u.current.geometry.attributes;e.position.needsUpdate=!0,r&&(e.color.needsUpdate=!0),s&&(e.size.needsUpdate=!0)})),i.createElement("points",(0,n.Z)({ref:w([h,u])},c),i.createElement("bufferGeometry",null,i.createElement("bufferAttribute",{attachObject:["attributes","position"],count:t.length/l,array:t,itemSize:l,usage:a.DynamicDrawUsage}),r&&i.createElement("bufferAttribute",{attachObject:["attributes","color"],count:r.length/l,array:r,itemSize:3,usage:a.DynamicDrawUsage}),s&&i.createElement("bufferAttribute",{attachObject:["attributes","size"],count:s.length/l,array:s,itemSize:1,usage:a.DynamicDrawUsage})),e)})),Am=i.forwardRef(((e,t)=>e.positions instanceof Float32Array?i.createElement(gm,(0,n.Z)({},e,{ref:t})):i.createElement(fm,(0,n.Z)({},e,{ref:t}))));var vm=r(45697),ym=r.n(vm);function xm(e){return bm(e.children,e.components)}function bm(e,t,r){if(r=r||[],!t[0])return e(r);function n(n){return bm(e,t.slice(1),r.concat([n]))}return"function"==typeof t[0]?t[0]({results:r,render:n}):(0,i.cloneElement)(t[0],{children:n})}let Em,_m;xm.propTypes={children:ym().func.isRequired,components:ym().arrayOf(ym().oneOfType([ym().element,ym().func])).isRequired};const Sm=i.createContext(null),Mm=new a.Matrix4,wm=new a.Matrix4,Cm=new a.Matrix4;new a.Color;const Tm=new a.Vector3,Im=new a.Quaternion,Bm=new a.Vector3,Rm=i.forwardRef((({context:e,children:t,...r},s)=>{i.useMemo((()=>(0,o.extend)({Position:lm})),[]);const a=i.useRef(),{subscribe:l,getParent:c}=i.useContext(e||Sm);return i.useLayoutEffect((()=>l(a)),[]),i.createElement("position",(0,n.Z)({instance:c(),instanceKey:a,ref:w([s,a])},r),t)})),Pm=i.forwardRef((({children:e,range:t,limit:r=1e3,frames:s=1/0,...l},c)=>{const[{context:h,instance:u}]=i.useState((()=>{const e=i.createContext(null);return{context:e,instance:i.forwardRef(((t,r)=>i.createElement(Rm,(0,n.Z)({context:e},t,{ref:r}))))}})),d=i.useRef(null),[p,f]=i.useState([]),[[m,g]]=i.useState((()=>{const e=new Float32Array(16*r);for(Em=0;Em1)))]}));i.useLayoutEffect((()=>{d.current.count=d.current.instanceMatrix.updateRange.count=d.current.instanceColor.updateRange.count=Math.min(r,void 0!==t?t:r,p.length)}),[p,t]),i.useEffect((()=>{d.current.instanceMatrix.needsUpdate=!0}));let A=0;(0,o.useFrame)((()=>{if(s===1/0||A({getParent:()=>d,subscribe:e=>(f((t=>[...t,e])),()=>f((t=>t.filter((t=>t.current!==e.current)))))})),[]);return i.createElement("instancedMesh",(0,n.Z)({userData:{instances:p},matrixAutoUpdate:!1,ref:w([c,d]),args:[null,null,0],raycast:()=>null},l),i.createElement("instancedBufferAttribute",{attach:"instanceMatrix",count:m.length/16,array:m,itemSize:16,usage:a.DynamicDrawUsage}),i.createElement("instancedBufferAttribute",{attach:"instanceColor",count:g.length/3,array:g,itemSize:3,usage:a.DynamicDrawUsage}),"function"==typeof e?i.createElement(h.Provider,{value:v},e(u)):i.createElement(Sm.Provider,{value:v},e))}));function Dm({meshes:e,children:t,...r}){const s=Array.isArray(e);if(!s)for(const n of Object.keys(e))e[n].isMesh||delete e[n];return i.createElement(xm,{components:(s?e:Object.values(e)).map((({geometry:e,material:t})=>i.createElement(Pm,(0,n.Z)({key:e.uuid,geometry:e,material:t},r))))},(r=>s?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{}))))}const Lm=i.createContext(null),Fm=e=>e instanceof a.Vector3?e.toArray():e,Um=i.forwardRef(((e,t)=>{const{limit:r=1e3,lineWidth:s=1,children:l,...c}=e,[h,u]=i.useState([]),[d]=i.useState((()=>new os)),[p]=i.useState((()=>new zi)),[f]=i.useState((()=>new Gi)),[m]=i.useState((()=>new a.Vector2(512,512))),[g]=i.useState((()=>Array(6*r).fill(0))),[A]=i.useState((()=>Array(6*r).fill(0))),v=i.useMemo((()=>({subscribe:e=>(u((t=>[...t,e])),()=>u((t=>t.filter((t=>t.current!==e.current)))))})),[]);return(0,o.useFrame)((()=>{for(let i=0;i{const r=i.useContext(Lm);if(!r)throw"Segment must used inside Segments component.";const s=i.useRef();return i.useMemo((()=>(0,o.extend)({SegmentObject:Om})),[]),i.useLayoutEffect((()=>r.subscribe(s)),[]),i.createElement("segmentObject",(0,n.Z)({ref:w([s,t])},e))})),km=i.forwardRef((({children:e,distances:t,...r},s)=>{const a=i.useRef(null);return i.useLayoutEffect((()=>{const{current:e}=a;e.levels.length=0,e.children.forEach(((r,n)=>e.levels.push({object:r,distance:t[n]})))})),(0,o.useFrame)((e=>{var t;return null==(t=a.current)?void 0:t.update(e.camera)})),i.createElement("lOD",(0,n.Z)({ref:w([a,s])},r),e)}));function Gm({all:e,scene:t,camera:r}){const n=(0,o.useThree)((({gl:e})=>e)),s=(0,o.useThree)((({camera:e})=>e)),l=(0,o.useThree)((({scene:e})=>e));return i.useLayoutEffect((()=>{const i=[];e&&(t||l).traverse((e=>{!1===e.visible&&(i.push(e),e.visible=!0)})),n.compile(t||l,r||s);const o=new a.WebGLCubeRenderTarget(128);new a.CubeCamera(.01,1e5,o).update(n,t||l),o.dispose(),i.forEach((e=>e.visible=!1))}),[]),null}function zm(){const e=(0,o.useThree)((e=>e.gl));return(0,i.useEffect)((()=>(e.shadowMap.autoUpdate=!1,e.shadowMap.needsUpdate=!0,()=>{e.shadowMap.autoUpdate=e.shadowMap.needsUpdate=!0})),[e.shadowMap]),null}const Qm=new a.Matrix4,Vm=new a.Ray,Hm=new a.Sphere,jm=new a.Vector3;function Wm(e,t){const r=this.geometry,n=this.material,i=this.matrixWorld;void 0!==n&&(null===r.boundingSphere&&r.computeBoundingSphere(),Hm.copy(r.boundingSphere),Hm.applyMatrix4(i),!1!==e.ray.intersectsSphere(Hm)&&(Qm.copy(i).invert(),Vm.copy(e.ray).applyMatrix4(Qm),null!==r.boundingBox&&null===Vm.intersectBox(r.boundingBox,jm)||t.push({distance:jm.distanceTo(e.ray.origin),point:jm.clone(),object:this})))}function Xm({pixelated:e}){const t=(0,o.useThree)((e=>e.gl)),r=(0,o.useThree)((e=>e.internal.active)),n=(0,o.useThree)((e=>e.performance.current)),s=(0,o.useThree)((e=>e.viewport.initialDpr)),a=(0,o.useThree)((e=>e.setDpr));return i.useEffect((()=>{const n=t.domElement;return()=>{r&&a(s),e&&n&&(n.style.imageRendering="auto")}}),[]),i.useEffect((()=>{a(n*s),e&&t.domElement&&(t.domElement.style.imageRendering=1===n?"auto":"pixelated")}),[n]),null}function Ym(){const e=(0,o.useThree)((e=>e.get)),t=(0,o.useThree)((e=>e.performance.current));return i.useEffect((()=>{const t=e().raycaster.enabled;return()=>{e().raycaster.enabled=t}}),[]),i.useEffect((()=>{e().raycaster.enabled=1===t}),[t]),null}},64232:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Canvas:()=>J,ReactThreeFiber:()=>E,_roots:()=>ie,act:()=>me,addAfterEffect:()=>V,addEffect:()=>Q,addTail:()=>H,advance:()=>oe,applyProps:()=>ce,context:()=>F,createPortal:()=>Ae,dispose:()=>fe,events:()=>X,extend:()=>P,invalidate:()=>ae,reconciler:()=>le,render:()=>ue,unmountComponentAtNode:()=>pe,useFrame:()=>$,useGraph:()=>te,useLoader:()=>ne,useThree:()=>Z});var n=r(99477),i=r(67294),s=r(14671),a=r(60374),o=r(76525),l=r.n(o),c=r(63840),h=r(64063),u=r.n(h);const d=[];function p(e,t,r,n=0,i=!1){for(const a of t)if(u()(r,a.args)){if(i)return;if(a.error)throw a.error;if(a.response)return a.response;throw a.promise}const s={args:r,promise:e(...r).then((e=>s.response=null==e||e)).catch((e=>s.error=null!=e?e:"unknown error")).then((()=>{n>0&&setTimeout((()=>{const e=t.indexOf(s);-1!==e&&t.splice(e,1)}),n)}))};if(t.push(s),!i)throw s.promise}function f(e,...t){if(void 0===t||0===t.length)e.splice(0,e.length);else{const r=e.find((e=>u()(t,e.args)));if(r){const t=e.indexOf(r);-1!==t&&e.splice(t,1)}}}function m(e,...t){return p(e,d,t,m.lifespan)}m.lifespan=0,m.clear=(...e)=>f(d,...e),m.preload=(e,...t)=>{p(e,d,t,m.lifespan,!0)},m.peek=(...e)=>{var t;return null==(t=d.find((t=>u()(e,t.args))))?void 0:t.response};var g=r(20296),A=r.n(g);function v(e){let{debounce:t,scroll:r,polyfill:n,offsetSize:s}=void 0===e?{debounce:0,scroll:!1,offsetSize:!1}:e;const a=n||("undefined"==typeof window?class{}:window.ResizeObserver);if(!a)throw new Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");const[o,l]=(0,i.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),c=(0,i.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:o}),h=t?"number"==typeof t?t:t.scroll:null,u=t?"number"==typeof t?t:t.resize:null,d=(0,i.useRef)(!1);(0,i.useEffect)((()=>(d.current=!0,()=>{d.current=!1})));const[p,f,m]=(0,i.useMemo)((()=>{const e=()=>{if(!c.current.element)return;const{left:e,top:t,width:r,height:n,bottom:i,right:a,x:o,y:h}=c.current.element.getBoundingClientRect(),u={left:e,top:t,width:r,height:n,bottom:i,right:a,x:o,y:h};c.current.element instanceof HTMLElement&&s&&(u.height=c.current.element.offsetHeight,u.width=c.current.element.offsetWidth),Object.freeze(u),d.current&&!b(c.current.lastBounds,u)&&l(c.current.lastBounds=u)};return[e,u?A()(e,u):e,h?A()(e,h):e]}),[l,s,h,u]);function g(){c.current.scrollContainers&&(c.current.scrollContainers.forEach((e=>e.removeEventListener("scroll",m,!0))),c.current.scrollContainers=null),c.current.resizeObserver&&(c.current.resizeObserver.disconnect(),c.current.resizeObserver=null)}function v(){c.current.element&&(c.current.resizeObserver=new a(m),c.current.resizeObserver.observe(c.current.element),r&&c.current.scrollContainers&&c.current.scrollContainers.forEach((e=>e.addEventListener("scroll",m,{capture:!0,passive:!0}))))}var x;return function(e,t){(0,i.useEffect)((()=>{if(t){const t=e;return window.addEventListener("scroll",t,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",t,!0)}}}),[e,t])}(m,Boolean(r)),x=f,(0,i.useEffect)((()=>{const e=x;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[x]),(0,i.useEffect)((()=>{g(),v()}),[r,m,f]),(0,i.useEffect)((()=>g),[]),[e=>{e&&e!==c.current.element&&(g(),c.current.element=e,c.current.scrollContainers=y(e),v())},o,p]}function y(e){const t=[];if(!e||e===document.body)return t;const{overflow:r,overflowX:n,overflowY:i}=window.getComputedStyle(e);return[r,n,i].some((e=>"auto"===e||"scroll"===e))&&t.push(e),[...t,...y(e.parentElement)]}const x=["x","y","top","bottom","left","right","width","height"],b=(e,t)=>x.every((r=>e[r]===t[r]));var E=Object.freeze({__proto__:null});const _={obj:e=>e===Object(e)&&!_.arr(e)&&"function"!=typeof e,fun:e=>"function"==typeof e,str:e=>"string"==typeof e,num:e=>"number"==typeof e,und:e=>void 0===e,arr:e=>Array.isArray(e),equ(e,t){if(typeof e!=typeof t||!!e!=!!t)return!1;if(_.str(e)||_.num(e)||_.obj(e))return e===t;if(_.arr(e)&&e==t)return!0;let r;for(r in e)if(!(r in t))return!1;for(r in t)if(e[r]!==t[r])return!1;return!_.und(r)||e===t}};function S(e){return(e.eventObject||e.object).uuid+"/"+e.index}function M(e){const t=new n.Vector3;function r(t){const{internal:r}=e.getState(),n=t.offsetX-r.initialClick[0],i=t.offsetY-r.initialClick[1];return Math.round(Math.sqrt(n*n+i*i))}function i(e){return e.filter((e=>["Move","Over","Enter","Out","Leave"].some((t=>{var r;return null==(r=e.__r3f.handlers)?void 0:r["onPointer"+t]}))))}function s(t){const{internal:r}=e.getState();Array.from(r.hovered.values()).forEach((e=>{if(!t.length||!t.find((t=>t.object===e.object&&t.index===e.index))){const n=e.eventObject.__r3f.handlers;if(r.hovered.delete(S(e)),n){const r={...e,intersections:t||[]};null==n.onPointerOut||n.onPointerOut(r),null==n.onPointerLeave||n.onPointerLeave(r)}}}))}function a(e,t){t.forEach((t=>{var r;return null==(r=t.__r3f.handlers)||null==r.onPointerMissed?void 0:r.onPointerMissed(e)}))}return{handlePointer:n=>{switch(n){case"onPointerLeave":case"onPointerCancel":return()=>s([]);case"onLostPointerCapture":return t=>{"pointerId"in t&&e.getState().internal.capturedMap.delete(t.pointerId),s([])}}return o=>{const{onPointerMissed:l,internal:c}=e.getState();!function(t){var r;const n=e.getState(),{raycaster:i,mouse:s,camera:a,size:o}=n,{offsetX:l,offsetY:c}=null!=(r=null==i.computeOffsets?void 0:i.computeOffsets(t,n))?r:t,{width:h,height:u}=o;s.set(l/h*2-1,-c/u*2+1),i.setFromCamera(s,a)}(o);const h="onPointerMove"===n,u=function(t,r){const{internal:n}=e.getState();return"pointerId"in r&&n.capturedMap.has(r.pointerId)&&t.push(...n.capturedMap.get(r.pointerId).values()),t}(function(t){const r=e.getState(),{raycaster:n,internal:i}=r;if(!n.enabled)return[];const s=new Set,a=[],o=t?t(i.interaction):i.interaction;let l=n.intersectObjects(o,!0).filter((e=>{const t=S(e);return!s.has(t)&&(s.add(t),!0)}));n.filter&&(l=n.filter(l,r));for(const e of l){let t=e.object;for(;t;){var c;(null==(c=t.__r3f)?void 0:c.handlers)&&a.push({...e,eventObject:t}),t=t.parent}}return a}(h?i:void 0),o);h&&s(u),function(n,i,a){const{raycaster:o,mouse:l,camera:c,internal:h}=e.getState();if(n.length){const e=t.set(l.x,l.y,0).unproject(c),u="click"===i.type?r(i):0,d=e=>i.target.releasePointerCapture(e),p={stopped:!1};for(const t of n){const r=e=>{var r,n;return null!=(r=null==(n=h.capturedMap.get(e))?void 0:n.has(t.eventObject))&&r},f=e=>{h.capturedMap.has(e)?h.capturedMap.get(e).set(t.eventObject,t):h.capturedMap.set(e,new Map([[t.eventObject,t]])),i.target.setPointerCapture(e)};let m={};for(let e in Object.getPrototypeOf(i)){let t=i[e];"function"!=typeof t&&(m[e]=t)}let g={...t,...m,spaceX:l.x,spaceY:l.y,intersections:n,stopped:p.stopped,delta:u,unprojectedPoint:e,ray:o.ray,camera:c,stopPropagation:()=>{const e="pointerId"in i&&h.capturedMap.get(i.pointerId);(!e||e.has(t.eventObject))&&(g.stopped=p.stopped=!0,h.hovered.size&&Array.from(h.hovered.values()).find((e=>e.eventObject===t.eventObject)))&&s([...n.slice(0,n.indexOf(t)),t])},target:{hasPointerCapture:r,setPointerCapture:f,releasePointerCapture:d},currentTarget:{hasPointerCapture:r,setPointerCapture:f,releasePointerCapture:d},sourceEvent:i,nativeEvent:i};if(a(g),!0===p.stopped)break}}}(u,o,(e=>{const t=e.eventObject,r=t.__r3f.handlers;if(r)if(h){if(r.onPointerOver||r.onPointerEnter||r.onPointerOut||r.onPointerLeave){const t=S(e),n=c.hovered.get(t);n?n.stopped&&e.stopPropagation():(c.hovered.set(t,e),null==r.onPointerOver||r.onPointerOver(e),null==r.onPointerEnter||r.onPointerEnter(e))}null==r.onPointerMove||r.onPointerMove(e)}else{const i=null==r?void 0:r[n];i&&("onClick"!==n&&"onContextMenu"!==n&&"onDoubleClick"!==n||c.initialHits.includes(t))&&(i(e),a(o,c.interaction.filter((e=>e!==t))))}})),"onPointerDown"===n&&(c.initialClick=[o.offsetX,o.offsetY],c.initialHits=u.map((e=>e.eventObject))),"onClick"!==n&&"onContextMenu"!==n&&"onDoubleClick"!==n||u.length||r(o)<=2&&(a(o,c.interaction),l&&l(o))}}}}const w=e=>e&&!!e.getState,C=(e,t)=>{var r,n;return{root:w(e)?e:null!=(r=null==(n=e.__r3f)?void 0:n.root)?r:t.__r3f.root,container:w(e)?e.getState().scene:e}},T="__default",I={},B=["children","key","ref"];let R={},P=e=>{R={...R,...e}};function D(e,t){const r=e;return(null!=t&&t.instance||!r.__r3f)&&(r.__r3f={root:null,memoizedProps:{},objects:[],...t}),e}const L=e=>e&&e.isOrthographicCamera,F=i.createContext(null),U=(e,t,r,i)=>{const{gl:o,size:l,shadows:c=!1,linear:h=!1,flat:u=!1,vr:d=!1,orthographic:p=!1,frameloop:f="always",dpr:m=1,performance:g,clock:A=new n.Clock,raycaster:v,camera:y,onPointerMissed:x}=i;c&&(o.shadowMap.enabled=!0,"object"==typeof c?Object.assign(o.shadowMap,c):o.shadowMap.type=n.PCFSoftShadowMap),h||(u||(o.toneMapping=n.ACESFilmicToneMapping),o.outputEncoding=n.sRGBEncoding),"never"===f&&(A.stop(),A.elapsedTime=0);const b=(0,s.Z)(((s,a)=>{const l=new n.Raycaster,{params:c,...b}=v||{};e(l,{enabled:!0,...b,params:{...l.params,...c}},{});const E=y instanceof n.Camera,_=E?y:p?new n.OrthographicCamera(0,0,0,0,.1,1e3):new n.PerspectiveCamera(75,0,.1,1e3);function S(e){return Array.isArray(e)?Math.min(Math.max(e[0],window.devicePixelRatio),e[1]):e}E||(_.position.z=5,y&&e(_,y,{}),_.lookAt(0,0,0));const M=S(m),w=new n.Vector3,C=new n.Vector3;function T(e=a().camera,t=C,r=a().size){const{width:n,height:i}=r,s=n/i,o=e.getWorldPosition(w).distanceTo(t);if(L(e))return{width:n/e.zoom,height:i/e.zoom,factor:1,distance:o,aspect:s};{const t=e.fov*Math.PI/180,r=2*Math.tan(t/2)*o,a=r*(n/i);return{width:a,height:r,factor:n/a,distance:o,aspect:s}}}let I;const B=e=>s((t=>({performance:{...t.performance,current:e}})));return{gl:o,set:s,get:a,invalidate:()=>t(a()),advance:(e,t)=>r(e,t,a()),linear:h,flat:u,scene:D(new n.Scene),camera:_,raycaster:l,clock:A,mouse:new n.Vector2,vr:d,frameloop:f,onPointerMissed:x,performance:{current:1,min:.5,max:1,debounce:200,...g,regress:()=>{const e=a();I&&clearTimeout(I),e.performance.current!==e.performance.min&&B(e.performance.min),I=setTimeout((()=>B(a().performance.max)),e.performance.debounce)}},size:{width:0,height:0},viewport:{initialDpr:M,dpr:M,width:0,height:0,aspect:0,distance:0,factor:0,getCurrentViewport:T},setSize:(e,t)=>{const r={width:e,height:t};s((e=>({size:r,viewport:{...e.viewport,...T(_,C,r)}})))},setDpr:e=>s((t=>({viewport:{...t.viewport,dpr:S(e)}}))),events:{connected:!1},internal:{active:!1,priority:0,frames:0,lastProps:i,interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,subscribe:(e,t=0)=>(s((({internal:r})=>({internal:{...r,priority:r.priority+(t?1:0),subscribers:[...r.subscribers,{ref:e,priority:t}].sort(((e,t)=>e.priority-t.priority))}}))),()=>{s((({internal:r})=>({internal:{...r,priority:r.priority-(t?1:0),subscribers:r.subscribers.filter((t=>t.ref!==e))}})))})}}}));b.subscribe((()=>{const{camera:e,size:t,viewport:r,internal:i}=b.getState();i.lastProps.camera instanceof n.Camera||(L(e)?(e.left=t.width/-2,e.right=t.width/2,e.top=t.height/2,e.bottom=t.height/-2):e.aspect=t.width/t.height,e.updateProjectionMatrix(),e.updateMatrixWorld()),o.setPixelRatio(r.dpr),o.setSize(t.width,t.height)}),(e=>[e.viewport.dpr,e.size]),a.Z);const E=b.getState();return l&&E.setSize(l.width,l.height),b.subscribe((e=>t(e))),b};function O(e,t){const r=t.length;return t.push(e),()=>{t.splice(r,1)}}let N,k=[],G=[],z=[];const Q=e=>O(e,k),V=e=>O(e,G),H=e=>O(e,z);function j(e,t){for(N=0;N({...e,[r]:t(r)})),{}),connect:t=>{var n;const{set:i,events:s}=e.getState();null==s.disconnect||s.disconnect(),i((e=>({events:{...e.events,connected:t}}))),Object.entries(null!=(n=null==s?void 0:s.handlers)?n:[]).forEach((([e,n])=>{const[i,s]=r[e];t.addEventListener(i,n,{passive:s})}))},disconnect:()=>{const{set:t,events:n}=e.getState();var i;n.connected&&(Object.entries(null!=(i=n.handlers)?i:[]).forEach((([e,t])=>{if(n&&n.connected instanceof HTMLElement){const[i]=r[e];n.connected.removeEventListener(i,t)}})),t((e=>({events:{...e.events,connected:!1}}))))}}}const Y="undefined"!=typeof window?i.useLayoutEffect:i.useEffect;function q({set:e}){return Y((()=>(e(new Promise((()=>null))),()=>e(!1))),[]),null}class K extends i.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}}function J({children:e,fallback:t,tabIndex:r,resize:n,id:s,style:a,className:o,events:l,...c}){const[h,u]=v({scroll:!0,debounce:{scroll:50,resize:0},...n}),d=i.useRef(null),[p,f]=i.useState(!1),[m,g]=i.useState(!1);if(p)throw p;if(m)throw m;return Y((()=>{u.width>0&&u.height>0&&ue(i.createElement(K,{set:g},i.createElement(i.Suspense,{fallback:i.createElement(q,{set:f})},e)),d.current,{...c,size:u,events:l||X})}),[u,e]),Y((()=>{const e=d.current;return()=>pe(e)}),[]),i.createElement("div",{ref:h,id:s,className:o,tabIndex:r,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",...a}},i.createElement("canvas",{ref:d,style:{display:"block"}},t))}function Z(e=(e=>e),t){const r=i.useContext(F);if(!r)throw"R3F hooks can only be used within the Canvas component!";return r(e,t)}function $(e,t=0){const{subscribe:r}=i.useContext(F).getState().internal,n=i.useRef(e);return i.useLayoutEffect((()=>{n.current=e}),[e]),i.useLayoutEffect((()=>{const e=r(n,t);return()=>e()}),[t,r]),null}function ee(e){const t={nodes:{},materials:{}};return e&&e.traverse((e=>{e.name&&(t.nodes[e.name]=e),e.material&&!t.materials[e.material.name]&&(t.materials[e.material.name]=e.material)})),t}function te(e){return i.useMemo((()=>ee(e)),[e])}function re(e,t){return function(r,...n){const i=new r;return e&&e(i),Promise.all(n.map((e=>new Promise(((r,n)=>i.load(e,(e=>{e.scene&&Object.assign(e,ee(e.scene)),r(e)}),t,(t=>n(`Could not load ${e}: ${t.message}`))))))))}}function ne(e,t,r,n){const i=Array.isArray(t)?t:[t],s=m(re(r,n),e,...i);return Array.isArray(t)?s:s[0]}K.getDerivedStateFromError=()=>({error:!0}),ne.preload=function(e,t,r){const n=Array.isArray(t)?t:[t];return m.preload(re(r),e,...n)};const ie=new Map,se=["legacy","blocking","concurrent"],{invalidate:ae,advance:oe}=function(e){let t,r=!1;function n(i){if(r=!0,t=0,j(k,i),e.forEach((e=>{const r=e.store.getState();r.internal.active&&("always"===r.frameloop||r.internal.frames>0)&&(t+=W(i,r))})),j(G,i),t>0)return requestAnimationFrame(n);j(z,i),r=!1}return{loop:n,invalidate:function t(i){if(!i)return e.forEach((e=>t(e.store.getState())));!i.vr&&i.internal.active&&"never"!==i.frameloop&&(i.internal.frames=Math.min(60,i.internal.frames+1),r||(r=!0,requestAnimationFrame(n)))},advance:function(t,r=!0,n){r&&j(k,t),n?W(t,n):e.forEach((e=>W(t,e.store.getState()))),r&&j(G,t)}}}(ie),{reconciler:le,applyProps:ce}=function(e){function t(e,t,s={},a=!1){var o,l,c;const h=null!=(o=null==e?void 0:e.__r3f)?o:{},u=h.root,d=null!=(l=null==u||null==u.getState?void 0:u.getState())?l:{},p=[],f=[],m={};let g=0;Object.entries(t).forEach((([e,t])=>{-1===B.indexOf(e)&&(m[e]=t)})),h.memoizedProps&&h.memoizedProps.args&&(m.args=h.memoizedProps.args),h.memoizedProps&&h.memoizedProps.attach&&(m.attach=h.memoizedProps.attach),e.__r3f&&(e.__r3f.memoizedProps=m);let A=Object.keys(t);for(g=0;g-1&&delete x[A[g]];const b=Object.entries(x);for(g=0;g0){if(b.forEach((([t,i])=>{if(!f.includes(t)){let s=e,a=s[t];if(t.includes("-")){const r=t.split("-");if(a=r.reduce(((e,t)=>e[t]),e),!a||!a.set){const[n,...i]=r.reverse();s=i.reverse().reduce(((e,t)=>e[t]),e),t=n}}if(i===T+"remove")if(a&&a.constructor)i=new a.constructor(m.args);else if(s.constructor){const e=new s.constructor(s.__r3f.memoizedProps.args);i=e[a],e.dispose&&e.dispose()}else i=0;if(a&&a.set&&(a.copy||a instanceof n.Layers)){if(Array.isArray(i))a.fromArray?a.fromArray(i):a.set(...i);else if(a.copy&&i&&i.constructor&&a.constructor.name===i.constructor.name)a.copy(i);else if(void 0!==i){const e=a instanceof n.Color;!e&&a.setScalar?a.setScalar(i):a instanceof n.Layers&&i instanceof n.Layers?a.mask=i.mask:a.set(i),!d.linear&&e&&a.convertSRGBToLinear()}}else s[t]=i,!d.linear&&s[t]instanceof n.Texture&&(s[t].encoding=n.sRGBEncoding);r(e)}})),a&&u&&e.raycast&&h.handlers){h.handlers=void 0;const t=d.internal.interaction.indexOf(e);t>-1&&d.internal.interaction.splice(t,1)}f.length&&(a&&u&&e.raycast&&d.internal.interaction.push(e),h.handlers=f.reduce(((e,r)=>({...e,[r]:t[r]})),{})),e.parent&&i(e)}}function r(e){var t,r;const n=null==(t=e.__r3f)||null==(r=t.root)||null==r.getState?void 0:r.getState();n&&0===n.internal.frames&&n.invalidate()}function i(e){null==e.onUpdate||e.onUpdate(e)}function s(e,{args:r=[],...i},s,a,o){let l,c=`${e[0].toUpperCase()}${e.slice(1)}`;if(!w(s)&&o){const e=t=>t.return?e(t.return):t.stateNode&&t.stateNode.containerInfo;s=e(o)}if(!s||!w(s))throw`No valid root for ${c}!`;if("primitive"===e){if(void 0===i.object)throw"Primitives without 'object' are invalid!";l=D(i.object,{root:s,instance:!0})}else{const e=R[c]||n[c];if(!e)throw`${c} is not part of the THREE namespace! Did you forget to extend? See: https://github.com/pmndrs/react-three-fiber/blob/master/markdown/api.md#using-3rd-party-objects-declaratively`;const t=_.arr(r);l=D(t?new e(...r):new e(r),{root:s,memoizedProps:{args:t&&0===r.length?null:r}})}return c.endsWith("Geometry")?i={attach:"geometry",...i}:c.endsWith("Material")&&(i={attach:"material",...i}),t(l,i,{}),l}function a(e,t){let n=!1;t&&(t.attachArray?(_.arr(e[t.attachArray])||(e[t.attachArray]=[]),e[t.attachArray].push(t)):t.attachObject?(_.obj(e[t.attachObject[0]])||(e[t.attachObject[0]]={}),e[t.attachObject[0]][t.attachObject[1]]=t):t.attach&&!_.fun(t.attach)?e[t.attach]=t:t.isObject3D&&(e.add(t),n=!0),n||(e.__r3f.objects.push(t),t.parent=e),i(t),r(t))}function o(e,t,n){let s=!1;if(t){if(t.attachArray){const r=e[t.attachArray];_.arr(r)||(e[t.attachArray]=[]),r.splice(r.indexOf(n),0,t)}else{if(t.attachObject||t.attach&&!_.fun(t.attach))return s=!0,a(e,t);if(t.isObject3D){t.parent=e,t.dispatchEvent({type:"added"});const r=e.children.filter((e=>e!==t)),i=r.indexOf(n);e.children=[...r.slice(0,i),t,...r.slice(i)],s=!0}}s||(e.__r3f.objects.push(t),t.parent=e),i(t),r(t)}}function h(e,t,r=!1){e&&[...e].forEach((e=>u(t,e,r)))}function u(e,t,n){if(t){var i;if(e.__r3f.objects){const r=e.__r3f.objects.length;e.__r3f.objects=e.__r3f.objects.filter((e=>e!==t));e.__r3f.objects.lengthe!==t));else if(t.attachObject)delete e[t.attachObject[0]][t.attachObject[1]];else if(t.attach&&!_.fun(t.attach))e[t.attach]=null;else if(t.isObject3D){var s;e.remove(t),null!=(s=t.__r3f)&&s.root&&function(e,t){const{internal:r}=e.getState();r.interaction=r.interaction.filter((e=>e!==t)),r.initialHits=r.initialHits.filter((e=>e!==t)),r.hovered.forEach(((e,n)=>{e.eventObject!==t&&e.object!==t||r.hovered.delete(n)}))}(t.__r3f.root,t)}const o=null==(i=t.__r3f)?void 0:i.instance,l=void 0===n?null!==t.dispose&&!o:n;var a;if(!o)h(null==(a=t.__r3f)?void 0:a.objects,t,l),h(t.children,t,l);t.__r3f&&(delete t.__r3f.root,delete t.__r3f.objects,delete t.__r3f.handlers,delete t.__r3f.memoizedProps,o||delete t.__r3f),l&&t.dispose&&"Scene"!==t.type&&(0,c.unstable_runWithPriority)(c.unstable_IdlePriority,(()=>t.dispose())),r(e)}}function d(e,t,r,n){const i=e.parent;if(!i)return;const o=s(t,r,e.__r3f.root);e.children&&(e.children.forEach((e=>a(o,e))),e.children=[]),e.__r3f.objects.forEach((e=>a(o,e))),e.__r3f.objects=[],u(i,e),a(i,o),[n,n.alternate].forEach((e=>{null!==e&&(e.stateNode=o,e.ref&&("function"==typeof e.ref?e.ref(o):e.ref.current=o))}))}return{reconciler:l()({now:c.unstable_now,createInstance:s,removeChild:u,appendChild:a,appendInitialChild:a,insertBefore:o,warnsIfNotActing:!0,supportsMutation:!0,isPrimaryRenderer:!1,scheduleTimeout:_.fun(setTimeout)?setTimeout:void 0,cancelTimeout:_.fun(clearTimeout)?clearTimeout:void 0,setTimeout:_.fun(setTimeout)?setTimeout:void 0,clearTimeout:_.fun(clearTimeout)?clearTimeout:void 0,noTimeout:-1,appendChildToContainer:(e,t)=>{const{container:r,root:n}=C(e,t);r.__r3f.root=n,a(r,t)},removeChildFromContainer:(e,t)=>{const{container:r}=C(e,t);u(r,t)},insertInContainerBefore:(e,t,r)=>{const{container:n}=C(e,t);o(n,t,r)},commitUpdate(e,r,n,i,s,a){if(e.__r3f.instance&&s.object&&s.object!==e)d(e,n,s,a);else{const{args:r=[],...o}=s,{args:l=[],...c}=i;r.some(((e,t)=>_.obj(e)?Object.entries(e).some((([e,r])=>r!==l[t][e])):e!==l[t]))?d(e,n,s,a):t(e,o,c,!0)}},hideInstance(e){e.isObject3D&&(e.visible=!1,r(e))},unhideInstance(e,t){(e.isObject3D&&null==t.visible||t.visible)&&(e.visible=!0,r(e))},hideTextInstance(){throw new Error("Text is not allowed in the R3F tree.")},getPublicInstance:e=>e,getRootHostContext:e=>I,getChildHostContext:e=>I,createTextInstance(){},finalizeInitialChildren:e=>!!e.__r3f.handlers,commitMount(e){e.raycast&&e.__r3f.handlers&&e.__r3f.root.getState().internal.interaction.push(e)},prepareUpdate:()=>I,shouldDeprioritizeSubtree:()=>!1,prepareForCommit:()=>null,preparePortalMount(...e){},resetAfterCommit(){},shouldSetTextContent:()=>!1,clearContainer:()=>!1}),applyProps:t}}(),he=(e,t)=>{return(r=e)&&r.render?e:new n.WebGLRenderer({powerPreference:"high-performance",canvas:t,antialias:!0,alpha:!0,...e});var r};function ue(e,t,{gl:r,size:n,mode:s=se[1],events:a,onCreated:o,...l}={}){var c,h,u,d,p;n||(n={width:null!=(h=null==(u=t.parentElement)?void 0:u.clientWidth)?h:0,height:null!=(d=null==(p=t.parentElement)?void 0:p.clientHeight)?d:0});let f=ie.get(t),m=null==f?void 0:f.fiber,g=null==f?void 0:f.store,A=null==(c=g)?void 0:c.getState();if(m&&A){const e=A.internal.lastProps;void 0===l.dpr||_.equ(e.dpr,l.dpr)||A.setDpr(l.dpr),void 0===n||_.equ(e.size,n)||A.setSize(n.width,n.height);l.linear!==e.linear&&(pe(t),m=void 0)}if(!m){const e=he(r,t);l.vr&&(e.xr.enabled=!0,e.setAnimationLoop((e=>oe(e,!0)))),g=U(ce,ae,oe,{gl:e,size:n,...l});const i=g.getState();i.get,m=le.createContainer(g,se.indexOf(s),!1,null),ie.set(t,{fiber:m,store:g}),a&&i.set({events:a(g)})}if(g&&m)return le.updateContainer(i.createElement(de,{store:g,element:e,onCreated:o,target:t}),m,null,(()=>{})),g;throw"Error creating root!"}function de({store:e,element:t,onCreated:r,target:n}){return i.useEffect((()=>{const t=e.getState();t.set((e=>({internal:{...e.internal,active:!0}}))),null==t.events.connect||t.events.connect(n),r&&r(t)}),[]),i.createElement(F.Provider,{value:e},t)}function pe(e,t){const r=ie.get(e),n=null==r?void 0:r.fiber;if(n){const i=null==r?void 0:r.store.getState();i&&(i.internal.active=!1),le.updateContainer(null,n,null,(()=>{i&&setTimeout((()=>{var r,n,s;null==i.events.disconnect||i.events.disconnect(),null==(r=i.gl)||null==(n=r.renderLists)||null==n.dispose||n.dispose(),null==(s=i.gl)||null==s.forceContextLoss||s.forceContextLoss(),fe(i),ie.delete(e),t&&t(e)}),500)}))}}function fe(e){e.dispose&&"Scene"!==e.type&&e.dispose();for(const n in e){var t,r;null==(t=(r=n).dispose)||t.call(r),delete e[n]}}const me=le.act,ge=_.fun(Symbol)&&Symbol.for?Symbol.for("react.portal"):60106;function Ae(e,t,r,n=null){return{$$typeof:ge,key:null==n?null:""+n,children:e,containerInfo:D(t),implementation:r}}le.injectIntoDevTools({bundleType:0,rendererPackageName:"@react-three/fiber",version:"17.0.2"})},27460:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KeepRatio=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294)),a=n.__importDefault(r(58147));t.KeepRatio=e=>{let{children:t,width:r,height:n,fullHeight:o=!1,fullWidth:l=!0,rootProps:c,contentProps:h,containerWidth:u,containerHeight:d,keep:p=!0}=e;const f=!o&&l,m=!f,g=100*(m?n/r:r/n);return s.default.createElement("div",{...c??{},className:(0,i.default)(a.default.root,f&&a.default.fullWidth,m&&a.default.fullHeight,p&&a.default.keep,c?.className)},s.default.createElement("div",{...h??{},className:(0,i.default)(a.default.content,h?.className)},t),p&&s.default.createElement("svg",{style:{pointerEvents:"none",height:m?"100%":d?`calc(${n} / ${r} * ${u})`:"auto",width:f?"100%":d?`calc(${r} / ${n} * ${d})`:"auto"},viewBox:`0 0 ${f?g:100} ${m?g:100}`}))}},94428:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(27460),t)},44323:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AccordionItem=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importStar(r(67294));r(11403);const a=r(31665),o=r(78870),l=n.__importDefault(r(73955));t.AccordionItem=e=>{let{open:t,onToggle:r,title:n,className:c,children:h,...u}=e;const d=(0,l.default)("accordion-item-"),[p,f]=(0,s.useState)(t??!1);void 0!==t&&t!==p&&f(t);return s.default.createElement("div",{className:(0,i.default)(c,"mdx-accordion-item",p&&"mdx-accordion-item--open"),...u},s.default.createElement("input",{type:"checkbox",id:d,checked:p}),s.default.createElement("div",{role:"button",className:"mdx-accordion-item__header",onClick:()=>{void 0!==t?r&&r(!p):f((e=>!e))}},s.default.createElement(a.Typography,{className:"mdx-accordion-item__title",variant:"h5",component:"label",htmlFor:d},n),s.default.createElement("div",{className:"mdx-accordion-item__icon"},p?s.default.createElement(o.IconRemove,null):s.default.createElement(o.IconAdd,null))),s.default.createElement("div",{className:"mdx-accordion-item__content-wrapper"},s.default.createElement("div",{className:"mdx-accordion-item__content"},h)))}},56027:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(44323),t)},80584:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AppCard=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(16019)),a=n.__importDefault(r(86010)),o=n.__importDefault(r(67294));r(93255);t.AppCard=e=>{let{logoSrc:t,logoSrcDark:r,name:n,description:l,link:c,linkLabel:h,...u}=e;return o.default.createElement("div",{...u,className:(0,a.default)(u.className,"mdx-app-card")},(t||r)&&o.default.createElement(s.default,{sources:{dark:r??t??"",light:t??r??""},alt:"string"==typeof n?n:"",className:"mdx-app-card__logo"}),o.default.createElement(i.Typography,{component:"span",variant:"h5",className:"mdx-app-card__name"},n),o.default.createElement(i.Typography,{variant:"subtitle1",className:"mdx-app-card__description"},l),c&&o.default.createElement("a",{href:c,target:"_blank",className:"mdx-app-card__link"},o.default.createElement(i.Button,{size:"large",variant:"outlined"},o.default.createElement(i.Typography,{variant:"label1",component:"span"},h??o.default.createElement(o.default.Fragment,null,"Visit ",n)),o.default.createElement("span",null,o.default.createElement(i.PickIcon,{color:"primary"})))))}},45138:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(80584),t)},53997:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AssetCard=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294)),o=r(78870),l=r(94428);r(77877);t.AssetCard=e=>{let{title:t,previewSrc:r,downloadable:n,forceDownload:c=!1,...h}=e;const u=n&&n.length>0;return a.default.createElement("div",{...h,className:(0,s.default)(h.className,"mdx-asset-card",u&&"mdx-asset-card--downloadable")},a.default.createElement("div",{className:"mdx-asset-card__inner"},t&&a.default.createElement(i.Typography,{component:"div",variant:"subtitle2",className:"mdx-asset-card__title"},t),a.default.createElement(l.KeepRatio,{width:16,height:9,fullWidth:!0,rootProps:{className:"mdx-asset-card__image"}},a.default.createElement("img",{src:r,alt:"string"==typeof t&&t||"asset image"}))),u&&a.default.createElement("div",{className:"mdx-asset-card__downloadables"},n.map(((e,r)=>a.default.createElement("a",{href:e.src,target:"_blank",download:!0,onClick:r=>((e,r)=>{if(!c)return;e.preventDefault();const{src:n,filename:i}=r,s=document.createElement("a");s.download=i||"string"==typeof t&&t||"",fetch(n).then((e=>e.blob())).then((e=>{const t=window.URL.createObjectURL(e);s.href=t,window.document.body.appendChild(s),s.click(),window.document.body.removeChild(s)})).catch((e=>{console.error("failed to download asset:"+e),s.href=n,s.target="_blank",window.document.body.appendChild(s),s.click(),window.document.body.removeChild(s)}))})(r,e)},a.default.createElement(i.Button,{key:r,variant:"outlined",size:"small",icon:a.default.createElement(o.IconDownload,null)},e.title))))))}},11734:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(53997),t)},84481:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Box=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294)),a=r(39320);function o(e,t,r,n){const i="string"==typeof t||"number"==typeof t?{xs:t}:t,s=[],a=e=>"number"==typeof e&&n?`${e}${n}`:`${e}`;return["xs","sm","md","lg","xl"].forEach(((t,n)=>{const o=i[t];if(o)s.push([`${e}-${t}`,a(o)]);else{const i=s[n-1]?.[1];s.push([`${e}-${t}`,i||a(r)])}})),Object.fromEntries(s)}r(56216);t.Box=e=>{let{top:t=0,bottom:r=0,className:n,style:l={},children:c,...h}=e;return s.default.createElement("div",{className:(0,i.default)(n,"mdx-box"),style:(0,a.makeStyle)({...l},{...o("mdx-box-top",t,0,"px"),...o("mdx-box-bottom",r,0,"px")}),...h},c)}},84777:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(84481),t)},81992:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CallToActionButton=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(39960)),a=n.__importDefault(r(86010)),o=n.__importDefault(r(67294));r(51928);t.CallToActionButton=e=>{let{className:t,variant:r="filled",size:n="large",children:l,...c}=e;return o.default.createElement(s.default,{className:(0,a.default)("mdx-cta-button",t),...c},o.default.createElement(i.Typography,{component:"span",variant:"large"===n?"label1":"label2"},o.default.createElement(i.Button,{size:n,variant:r},l)))}},16607:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(81992),t)},4666:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CallToActionSection=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294)),o=r(83639);r(8981);t.CallToActionSection=e=>{let{label:t,href:r,title:n,columns:l=1,description:c,list:h=[],target:u,className:d,children:p,variant:f="outlined",...m}=e;const g=!!c,A=h.length>0,v=!!r,y=!n||g||v||A?n&&!c&&!A&&v?"title-button":n&&c&&2===l?"full-width":n&&c&&h.length>0?"list":"simple":"title-only";return a.default.createElement("div",{className:(0,s.default)(d,"mdx-cta-section",`mdx-cta-section--${y}`),...m},a.default.createElement("div",{className:"mdx-cta-section__container"},a.default.createElement(i.Typography,{component:"h2",className:"mdx-cta-section__title"},n),a.default.createElement(i.Typography,{component:"h3",className:"mdx-cta-section__description"},c),r&&a.default.createElement(o.CallToActionButton,{target:u,href:r,className:"mdx-cta-section__link",variant:f},t)),h.length>0&&a.default.createElement("div",{className:"mdx-cta-section__list"},h.map(((e,t)=>{const r=a.default.createElement("div",{className:"mdx-cta-section__list-item",key:t},a.default.createElement(i.Typography,{component:"div",variant:"subtitle2",className:"mdx-cta-section__item-title"},e.title),a.default.createElement(i.Typography,{variant:"h2",component:"p",className:"mdx-cta-section__item-description"},e.description));return e.href?a.default.createElement("a",{href:e.href,target:"_blank"},r):r}))))}},3447:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(4666),t)},83113:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DocMetadata=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(39960)),a=n.__importDefault(r(86010)),o=n.__importDefault(r(67294)),l=r(54400);r(46774);const c=r(94294);t.DocMetadata=e=>{let{className:t,children:r,...n}=e;const{date:h,authors:u}=(0,c.useDocMetadata)(),{content:{authorPage:d}={}}=(0,l.useDocThemeOptions)();return o.default.createElement("div",{className:(0,a.default)(t,"mdx-doc-metadata"),...n},h&&o.default.createElement(i.Typography,{variant:"body2"},h),u&&u.length>0&&o.default.createElement(o.default.Fragment,null,o.default.createElement(i.Typography,{variant:"body2"},"by"," ",u.map(((e,t)=>o.default.createElement(o.default.Fragment,{key:e.key},d?o.default.createElement(s.default,{to:`author/${e.key}`},e.name):e.name,t{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(83113),t)},94294:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useDocMetadata=void 0;const n=r(97582),i=r(53458),s=r(54400),a=n.__importDefault(r(8260));t.useDocMetadata=()=>{const e=(0,s.useDocThemeOptions)(),{content:{authors:t=[]}={}}=e,{frontMatter:r={}}=(0,i.useDoc)(),{author:n=[],date:o}=r,l=(Array.isArray(n)?n:[n]).map((e=>t.find((t=>e===t.key)))).filter((e=>!!e));return{date:o?(0,a.default)(new Date(o),"MMM d yyyy"):"",authors:l}}},66109:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventAbout=void 0;const n=r(97582).__importDefault(r(67294));r(6420);const i=r(31665);t.EventAbout=e=>{let{children:t}=e;return n.default.createElement("div",{className:"mdx-event-about__container"},n.default.createElement(i.Typography,{variant:"h2",component:"h2",className:"mdx-event-about__title"},"About"),n.default.createElement(i.Typography,{variant:"body1"},t))}},43189:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(66109),t)},72460:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventBanner=void 0;const n=r(97582),i=n.__importDefault(r(16019)),s=n.__importDefault(r(67294));r(34822);t.EventBanner=e=>{let{src:t}=e;return s.default.createElement(i.default,{sources:{dark:t,light:t},alt:"event thumbnail",className:"mdx-event-banner__thumbnail"})}},57011:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(72460),t)},45786:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventCTA=void 0;const n=r(97582),i=n.__importDefault(r(67294));r(52399);const s=r(31665),a=n.__importDefault(r(39960)),o=r(78870);t.EventCTA=e=>{let{title:t,label:r,link:n,linkProps:l}=e;return i.default.createElement("div",{className:"mdx-event-cta__container"},t&&i.default.createElement(s.Typography,{variant:"h2",component:"h2",className:"mdx-event-cta__title"},t),i.default.createElement(a.default,{to:n,...l},i.default.createElement(s.Button,{className:"mdx-event-cta__button"},i.default.createElement(s.Typography,{variant:"body1"},r),i.default.createElement(o.IconExternalLink,null))))}},50060:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(45786),t)},17019:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventCTASection=void 0;const n=r(97582),i=n.__importDefault(r(67294));r(4061);const s=r(31665),a=n.__importDefault(r(39960));t.EventCTASection=e=>{let{title:t,description:r,label:n,link:o,linkProps:l,formInput:c}=e;const[h,u]=i.default.useState({email:"",name:""}),[d,p]=i.default.useState(""),f=e=>{u({...h,[e.target.name]:e.target.value})};return i.default.createElement("div",{className:"mdx-event-cta-section__container"},i.default.createElement(s.Typography,{variant:"subtitle1",component:"p",className:"mdx-event-cta-section__title"},t),i.default.createElement(s.Typography,{component:"h3",variant:"h3",className:"mdx-event-cta-section__description"},r),c?.length?i.default.createElement("form",{className:"mdx-event-cta-section__form",onSubmit:async e=>{e.preventDefault();try{const e=await fetch("https://odoo.logos.co/website_mass_mailing/subscribe2",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"call",params:{value:h?.email,name:h?.name||"",list_id:2,subscription_type:"email"}})}),t=await e.json();p(t.result.message)}catch(t){console.log(t),p("There was an error submitting the form. Please try again.")}}},i.default.createElement("div",{className:"mdx-event-cta-section__input-fields"},c.map(((e,t)=>i.default.createElement(s.TextField,{key:t,className:"mdx-event-cta-section__input",onChange:f,value:h[e.name],inputProps:{...e}})))),i.default.createElement("div",null,i.default.createElement(s.Button,{type:"submit",className:"mdx-event-cta-section__cta"},i.default.createElement(s.Typography,{variant:"body1"},n)),i.default.createElement(s.Typography,{variant:"body2"},d))):i.default.createElement(a.default,{to:o,...l},i.default.createElement(s.Button,{className:"mdx-event-cta-section__cta"},i.default.createElement(s.Typography,{variant:"body1"},n))))}},82665:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(17019),t)},84591:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventCard=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(16019)),a=n.__importDefault(r(86010)),o=n.__importDefault(r(67294));r(95497);t.EventCard=e=>{let{thumbnail:t,title:r,date:n,location:l,...c}=e;return o.default.createElement("a",{target:"_self",...c,className:(0,a.default)(c.className,"mdx-event-card")},o.default.createElement(s.default,{sources:{dark:t,light:t},alt:r??"event thumbnail",className:"mdx-event-card__thumbnail"}),o.default.createElement(i.Typography,{component:"h5",variant:"h5",className:"mdx-event-card__title"},r),o.default.createElement("div",{className:"mdx-event-card__row"},o.default.createElement("div",{className:"mdx-event-card__info"},o.default.createElement(i.Typography,{variant:"body2"},"Date"),o.default.createElement(i.Typography,{variant:"body2"},n)),o.default.createElement("div",{className:"mdx-event-card__info"},o.default.createElement(i.Typography,{variant:"body2"},"Location"),o.default.createElement(i.Typography,{variant:"body2"},l))))}},71743:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(84591),t)},18080:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventCardList=void 0;const n=r(97582).__importStar(r(67294));r(90980);const i=r(31665),s=r(83639);t.EventCardList=e=>{let{data:t}=e;const[r,a]=(0,n.useState)(t?.length>6),[o,l]=(0,n.useState)(6);return n.default.createElement("div",{className:"mdx-event-card-list__container"},n.default.createElement(s.Box,{top:56,bottom:80},n.default.createElement(s.Grid,{xs:{cols:1,gap:"80px 16px"},md:{cols:2}},t.slice(0,o).map(((e,t)=>n.default.createElement(s.Grid.Item,{xs:1,key:t},n.default.createElement(s.EventCard,{...e})))))),r&&n.default.createElement(i.Button,{className:"mdx-event-card-list__button",onClick:()=>{l((e=>e+6)),o+6>=t?.length&&a(!1)},size:"large"},"See more"))}},45210:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(18080),t)},60875:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventHeader=void 0;const n=r(97582).__importDefault(r(67294));r(44429);const i=r(31665);t.EventHeader=e=>{let{title:t,description:r}=e;return n.default.createElement("div",{className:"mdx-event-header__container"},n.default.createElement(i.Typography,{variant:"h1",component:"h1",className:"mdx-event-header__label"},t),n.default.createElement(i.Typography,{variant:"subtitle1",className:"mdx-event-header__content"},r))}},69605:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(60875),t)},23358:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventInfo=void 0;const n=r(97582).__importDefault(r(67294));r(94318);const i=r(31665);t.EventInfo=e=>{let{label:t,content:r}=e;return n.default.createElement("div",{className:"mdx-event-info__container"},n.default.createElement(i.Typography,{variant:"body2",className:"mdx-event-info__label"},t),n.default.createElement(i.Typography,{variant:"body1",className:"mdx-event-info__content"},r))}},44804:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(23358),t)},23547:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventProfile=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(16019)),a=n.__importDefault(r(67294));r(6465);const o=r(78870);t.EventProfile=e=>{let{image:t,name:r,role:n,email:l,linkedin:c,...h}=e;return a.default.createElement("div",{...h,className:"mdx-event-profile"},a.default.createElement(s.default,{sources:{dark:t,light:t},alt:t??"event profile",className:"mdx-event-profile__image"}),a.default.createElement("div",{className:"mdx-event-profile__info"},a.default.createElement(i.Typography,{component:"p",variant:"subtitle1",className:"mdx-event-profile__title"},r),a.default.createElement(i.Typography,{variant:"body2",className:"mdx-event-profile__role"},n),a.default.createElement("div",{className:"mdx-event-profile__social"},l&&a.default.createElement("a",{href:`mailto:${l}`,target:"_blank",rel:"noopener noreferrer"},a.default.createElement(o.IconEmail,null)),c&&a.default.createElement("a",{href:c,target:"_blank",rel:"noopener noreferrer"},a.default.createElement(o.IconLinkedin,null)))))}},75835:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(23547),t)},71081:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventProfileList=void 0;const n=r(97582).__importDefault(r(67294));r(54627);const i=r(31665),s=r(83639);t.EventProfileList=e=>{let{title:t,description:r,data:a}=e;return n.default.createElement("div",{className:"mdx-event-profile-list__container"},t&&n.default.createElement(i.Typography,{variant:"h2",component:"h2",className:"mdx-event-profile-list__title"},t),r&&n.default.createElement(i.Typography,{variant:"subtitle1"},r),n.default.createElement(s.Box,{top:40},n.default.createElement(s.Grid,{xs:{cols:1,gap:"16px"},md:{cols:3}},a.map(((e,t)=>n.default.createElement(s.Grid.Item,{xs:1,key:t},n.default.createElement(s.EventProfile,{...e})))))))}},56127:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(71081),t)},56398:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExternalResourceCard=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(16019)),a=n.__importDefault(r(86010)),o=n.__importDefault(r(67294)),l=r(78870);r(84238);const c=r(94428);t.ExternalResourceCard=e=>{let{title:t,logoSrc:r,logoSrcDark:n,description:h,previewSrc:u,previewSrcDark:d,...p}=e;const f=!(!u&&!d);return o.default.createElement("a",{target:"_blank",...p,className:(0,a.default)(p.className,"mdx-erc",f&&"mdx-erc--with-preview")},f&&o.default.createElement(c.KeepRatio,{width:16,height:9,fullWidth:!0},o.default.createElement(s.default,{sources:{dark:d??u??"",light:u??d??""},alt:"string"==typeof t&&t||"preview image",className:"mdx-erc__preview-image"})),o.default.createElement("div",{className:"mdx-erc__inner"},(r||n)&&o.default.createElement(s.default,{sources:{dark:n??r??"",light:r??n??""},alt:"string"==typeof t&&t||"logo",className:"mdx-erc__logo"}),o.default.createElement(i.Typography,{variant:"body1",component:"div",className:"mdx-erc__title"},t),h&&o.default.createElement(i.Typography,{variant:"label2",component:"div",className:"mdx-erc__description"},h)),o.default.createElement("div",{className:"mdx-erc__icon"},o.default.createElement(l.IconExternalLink,{className:"mdx-erc__external-link"})))}},44385:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(56398),t)},95482:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FeatureList=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294));r(69774);t.FeatureList=e=>{let{title:t="Features",alignment:r="bottom",features:n=[],className:o,ctaPosition:l="bottom",children:c,...h}=e;return a.default.createElement("div",{className:(0,s.default)(o,"mdx-feature-list",`mdx-feature-list--${r}-aligned`,`mdx-feature-list--cta-${l}`),...h},a.default.createElement("div",{className:"mdx-feature-list__header"},a.default.createElement(i.Typography,{variant:"h5",component:"h1",className:"mdx-feature-list__title"},t),c&&"top"===l&&a.default.createElement("div",{className:"mdx-feature-list__extra"},c)),a.default.createElement("div",{className:"mdx-feature-list__list"},n.map(((e,t)=>a.default.createElement("div",{key:t,className:(0,s.default)("mdx-feature-list__feature")},a.default.createElement("div",{className:"mdx-feature-list__feature-inner"},a.default.createElement(i.Typography,{variant:"subtitle1",component:"div",className:"mdx-feature-list__feature-index"},t+1),a.default.createElement(i.Typography,{variant:"h2",component:"h2",className:"mdx-feature-list__feature-title"},e.title),a.default.createElement(i.Typography,{variant:"h5",component:"h3",className:"mdx-feature-list__feature-description"},a.default.createElement("span",null,e.description))),a.default.createElement("div",{className:"mdx-feature-list__feature-border"}))))),c&&"bottom"===l&&a.default.createElement("div",{className:"mdx-feature-list__extra"},c))}},88819:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(95482),t)},58994:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GithubChallenges=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(67294)),a=r(39939),o=r(27747),l=e=>{let{message:t}=e;return s.default.createElement(s.default.Fragment,null,s.default.createElement(i.Typography,{variant:"h1",className:"mdx-ghc__header"},"Open challenges"),!!t&&s.default.createElement(i.Typography,{variant:"body1"},t))};t.GithubChallenges=e=>{let{challengesData:t,useDummyData:r,subheaderText:n,filterByName:c,...h}=e,u=r?[a.dummyGithubIssue]:(e=>{let t=[];return Object.keys(e).forEach((r=>{if(!isNaN(Number(r))){const n=Object.values(e[r])[0];Array.isArray(n)&&(t=t.concat(n))}})),t})(t);if(!u||(d=u,!Array.isArray(d)||!d.length))return s.default.createElement(l,{message:"No challenges to show"});var d;if(c)try{const e=new RegExp(c,"i");u=u?.filter((t=>e.test(t.title)))}catch(p){console.error("Invalid regex pattern:",p)}return s.default.createElement("div",{...h},s.default.createElement(l,null),!!n&&s.default.createElement(i.Typography,{variant:"body1",className:"mdx-ghc-subheader-text",component:"div"},n),u.map((e=>s.default.createElement(o.SingleGithubChallenge,{key:e.id,issue:e}))))}},27747:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleGithubChallenge=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(67294)),a=r(78870);r(58918);const o=n.__importDefault(r(39960));function l(e,t){void 0===t&&(t=24);const r=new URL(e),n=new URLSearchParams(r.search);return n.set("s",t.toString()),r.search=Array.from(n.entries()).map((e=>{let[t,r]=e;return`${t}=${r}`})).join("&"),r.toString()}t.SingleGithubChallenge=e=>{let{issue:t}=e;const r=(e=>{const t=new Map;return t.set(e.user.login,{name:e.user.login,avatarUrl:e.user.avatarUrl}),e.assignees.forEach((e=>{t.set(e.login,{name:e.login,avatarUrl:e.avatarUrl})})),e.comments.forEach((e=>{t.set(e.author.login,{name:e.author.login,avatarUrl:e.author.avatarUrl})})),Array.from(t.values())})(t),n=(e=>{const t=e.projects.map((e=>e.name));return 0===t.length?"":Array.from(new Set(t)).join(", ")})(t),c=""!==n,h=!!t.milestone,u=[];return c&&u.push(s.default.createElement(s.default.Fragment,null,s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__label"},n.includes(", ")?"Projects":"Project"),s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__project-name"},n))),h&&u.push(s.default.createElement(s.default.Fragment,null,s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__label"},"Milestone"),s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__milestone-text"},t.milestone))),s.default.createElement("div",{className:"mdx-ghc__container"},s.default.createElement(o.default,{href:t.url,className:"mdx-ghc__issue-title-link"},s.default.createElement(i.Typography,{variant:"h5",className:"mdx-ghc__issue-title"},t.title)),s.default.createElement("div",{className:"mdx-ghc__challenge-labels"},t.labels.map(((e,t)=>s.default.createElement(i.Typography,{variant:"body3",key:t,className:"mdx-ghc__challenge-label"},e)))),s.default.createElement("div",{className:"mdx-ghc__issue-content-grid"},s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__label"},"Participants"),s.default.createElement("div",{className:"mdx-ghc__participant-photo-container"},s.default.createElement(i.Typography,{variant:"body3",className:"mdx-ghc__comment-count",component:"div"},r.length),r.map(((e,t)=>s.default.createElement("img",{key:t,className:"mdx-ghc__participant-photo",src:l(e.avatarUrl),alt:e.name})))),u.map(((e,t)=>s.default.createElement(s.default.Fragment,{key:t},e)))),s.default.createElement(o.default,{href:t.url,className:"mdx-ghc__view-on-github-link"},s.default.createElement(i.Button,{className:"mdx-ghc__view-on-github-button",icon:s.default.createElement(a.IconExternalLink,null)},"View on GitHub")))}},39939:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.dummyGithubIssue=void 0,t.dummyGithubIssue={id:"12345",title:"Bug in pagination",body:"When navigating to the second page, the first item repeats.",url:"https://github.com/user/repo/issues/12345",user:{login:"user123",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},labels:["bug","frontend"],commentCount:3,comments:[{id:"c1",author:{login:"alice123",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},body:"I have also noticed this issue. Working on a fix now.",createdAt:"2021-01-01T12:00:00Z"},{id:"c2",author:{login:"bob456",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},body:"Any updates on this?",createdAt:"2021-01-02T15:30:00Z"},{id:"c3",author:{login:"jaquim",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},body:"I like turtles.",createdAt:"2021-01-03T09:45:00Z"}],assignees:[{login:"alice123",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"},{login:"bob456",avatarUrl:"https://avatars.githubusercontent.com/u/8811422?v=4"}],milestone:"v1.0.0",created_at:"2020-12-31T11:00:00Z",updated_at:"2021-01-04T13:00:00Z",projects:[{name:"Awesome Project"}]}},2561:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(58994),t)},11907:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Grid=void 0;const n=r(97582),i=r(31665),s=r(70917),a=n.__importDefault(r(16829)),o=n.__importDefault(r(86010)),l=n.__importStar(r(67294)),c=r(98823),h=r(38915),u=r(21723);t.Grid=e=>{let{actions:t,leftLabel:r="",rightLabel:n="",spacingButtons:i=!1,children:s,...a}=e;const c=(0,l.useRef)(null);return l.default.createElement(d,{...a,className:(0,o.default)(a.className,"mdx-grid")},l.default.createElement("div",{className:"mdx-grid__actions"},t,l.default.createElement(h.ScrollButtons,{containerRef:c,className:"mdx-grid__scroll",leftLabel:r,rightLabel:n,spacing:i?"spaced":"grouped"})),l.default.createElement("div",{ref:c,className:(0,o.default)("mdx-grid__content","hidden-scrollbar")},s))},t.Grid.Item=u.GridItem;const d=a.default.div` + width: 100%; + + .mdx-grid__scroll { + display: flex; + } + + .mdx-grid__content { + display: grid; + gap: var(--grid-gap); + grid-template-columns: repeat(var(--grid-cols), minmax(0, 1fr)); + overflow: hidden; + } + + .mdx-grid__actions { + display: flex; + flex-direction: row; + align-items: center; + gap: 1rem; + + & > * { + margin-bottom: 3rem; + } + } + + ${e=>i.THEME_BREAKPOINTS.map((t=>{if(!e[t])return null;const r=e[t];return c.lsdUtils.responsive(e.theme,t,"up")(s.css` + ${void 0!==r.cols&&`\n --grid-cols: ${r.cols};\n `} + + ${void 0!==r.gap&&`\n --grid-gap: ${r.gap};\n `} + + ${(void 0===r.wrap||!0===r.wrap)&&s.css` + .mdx-grid__scroll { + display: none; + } + .mdx-grid__content { + display: grid; + flex-wrap: unset; + overflow-x: unset; + overflow-y: unset; + scroll-snap-type: unset; + } + `} + + ${void 0!==r.wrap&&!1===r.wrap&&s.css` + .mdx-grid__scroll { + display: flex; + } + .mdx-grid__content { + display: flex; + flex-wrap: nowrap; + overflow-x: scroll; + overflow-y: hidden; + scroll-snap-type: x mandatory; + } + `} + + ${!1===r.scrollButtons&&s.css` + .mdx-grid__scroll { + display: none; + } + `} + `)}))} +`},21723:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GridItem=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294)),a=n.__importDefault(r(16829)),o=r(31665),l=r(98823),c=r(70917);t.GridItem=e=>{let{children:t,...r}=e;return s.default.createElement(h,{...r,className:(0,i.default)(r.className)},t)};const h=a.default.div` + ${e=>o.THEME_BREAKPOINTS.map((t=>{if(!e[t])return null;const r=e[t];return l.lsdUtils.responsive(e.theme,t,"up")(c.css` + grid-column: span ${r}; + flex-basis: calc(100% / var(--grid-cols) * ${r}); + `)}))} +`},7757:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(97582);n.__exportStar(r(11907),t),n.__exportStar(r(21723),t)},42265:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useHero=t.HeroContext=void 0;const n=r(97582).__importStar(r(67294));t.HeroContext=n.default.createContext({size:"medium"});t.useHero=()=>(0,n.useContext)(t.HeroContext)},28789:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Hero=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294)),a=r(42265);r(91786);t.Hero=e=>{let{size:t="medium",className:r,children:n,...o}=e;return s.default.createElement(a.HeroContext.Provider,{value:{size:t}},s.default.createElement("div",{className:(0,i.default)(r,"mdx-hero",`mdx-hero--${t}`),...o},n))}},24834:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(28789),t)},96417:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroAction=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(39960)),a=n.__importDefault(r(86010)),o=n.__importDefault(r(67294));r(85661);t.HeroAction=e=>{let{size:t="large",variant:r="outlined",className:n,children:l,...c}=e;return o.default.createElement(s.default,{className:(0,a.default)(n,"mdx-hero-action",`mdx-hero-action--${t}`),...c},o.default.createElement(i.Button,{variant:r,size:t},o.default.createElement(i.Typography,{component:"span",variant:"label1",style:{color:"inherit"}},l)))}},83398:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(96417),t)},70906:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroActions=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294));r(57255);t.HeroActions=e=>{let{className:t,children:r,...n}=e;return s.default.createElement("div",{className:(0,i.default)(t,"mdx-hero-actions"),...n},r)}},31889:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(70906),t)},65031:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroDescription=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294)),o=r(42265);r(30204);t.HeroDescription=e=>{let{size:t,className:r,uppercase:n=!1,children:l,...c}=e;const h=(0,o.useHero)(),u=t??(h?h.size:"medium");return a.default.createElement(i.Typography,{variant:"h4",className:(0,s.default)(r,"mdx-hero-description",`mdx-hero-description--${u}`,n?"mdx-hero-description--uppercase":""),...c},l)}},18355:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(65031),t)},9757:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroInfo=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294)),a=r(96507),o=r(42265),l=r(83639);r(6460);t.HeroInfo=e=>{let{size:t,className:r,children:n,...c}=e;const h=(0,o.useHero)(),u=(0,a.useHydrated)(),d=t||(h?h.size:"medium");return s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:(0,i.default)(r,"mdx-hero-info",`mdx-hero-info--${d}`),...c},n),u&&s.default.createElement(l.ScrollToBottom,null))}},32922:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(9757),t)},74067:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsciiRenderer=void 0;const n=r(97582),i=r(46008),s=r(64232),a=n.__importStar(r(67294)),o=r(56475),l=r(37805);t.AsciiRenderer=e=>(function(e){void 0===e&&(e={});const{renderIndex:t=i.defaultAsciiConfigs.renderIndex,characters:r=i.defaultAsciiConfigs.characters,invert:n=i.defaultAsciiConfigs.invert,color:c=i.defaultAsciiConfigs.color,resolution:h=i.defaultAsciiConfigs.resolution,bgColor:u=i.defaultAsciiConfigs.bgColor,fgColor:d=i.defaultAsciiConfigs.fgColor,textShadowSize:p=i.defaultAsciiConfigs.textShadowSize,withTextShadow:f=!1}=e,{gl:m,size:g,scene:A,camera:v,viewport:y}=(0,s.useThree)(),x=(0,a.useMemo)((()=>{const e=new o.AsciiEffect(m,r,{invert:n,color:c,resolution:h});return e.domElement.style.position="absolute",e.domElement.style.top="0px",e.domElement.style.left="0px",e.domElement.style.pointerEvents="none",e}),[r,n,c,h]);(0,a.useLayoutEffect)((()=>{x.domElement.style.color=d}),[d,u]),(0,a.useEffect)((()=>{if(m.domElement.style.opacity="0",m.domElement.parentNode.appendChild(x.domElement),f){const e=document.createElement("style");e.innerHTML=`table *{text-shadow: ${(0,l.generateTextShadow)(p)};`,x.domElement.appendChild(e)}return()=>{m.domElement.style.opacity="1",m.domElement.parentNode.removeChild(x.domElement)}}),[x]),(0,a.useEffect)((()=>{x.setSize(g.width,g.height)}),[x,g]),(0,s.useFrame)((e=>{x.render(A,v)}),t)}(e),a.default.createElement(a.default.Fragment,null))},21945:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Controls=void 0;const n=r(97582),i=r(46008),s=n.__importStar(r(67294)),a=r(46439),o=r(64232),l=r(96979),c=r(37805),h=(e,t,r)=>(1-r)*e+r*t;function u(e,t,r,n){const i=Math.min(e,t)/t,s=[0,0,0];for(let a=0;a<3;a++)s[a]=h(r[a],n[a],i);return s}t.Controls=e=>{let{rotateSpeed:t=i.ROTATE_SPEED,enableZoom:r=!0,enableRotateOnScroll:n=!0,preset:h,targetPreset:d,children:p,...f}=e;const m=(0,s.useRef)(),g=(0,a.useScrollY)(),{camera:A,size:v}=(0,o.useThree)(),y=(0,s.useRef)(),[x,b]=s.default.useState(!1),[E,_]=s.default.useState(1),[S,M]=s.default.useState(0);return(0,o.useFrame)(((e,r)=>{m.current.rotation.y-=r*((0,c.isMobile)()?.6*t:t)})),(0,s.useEffect)((()=>{const e=()=>{console.log(JSON.stringify({cameraPos:A.position.toArray(),cameraRot:A.rotation.toArray().slice(0,3),controlsTarget:y.current.target.toArray()},null,2))};return window.addEventListener("click",e),()=>window.removeEventListener("click",e)}),[A]),(0,s.useEffect)((()=>{(0,c.isTouchDevice)()&&(y.current.minPolarAngle=Math.PI/2,y.current.maxPolarAngle=Math.PI/2,setTimeout((()=>{b(!0)}),1e3))}),[]),(0,s.useEffect)((()=>{(0,c.isMobile)()&&(_((0,c.mapFloat)(g,0,(0,c.calcScrollThreshold)(),1,.65)),M((0,c.mapFloat)(g,0,(0,c.calcScrollThreshold)(),0,.35)))}),[g]),(0,s.useEffect)((()=>{if(!r)return;if(!d)return;const e=u(g,400,h.cameraPos,d.cameraPos),t=u(g,400,h.cameraRot,d.cameraRot),n=u(g,400,h.controlsTarget,d.controlsTarget);A.position.set(...e),A.rotation.set(...t),y.current.target.set(...n),A.updateProjectionMatrix()}),[g,A]),s.default.createElement("group",{ref:m,...f,scale:E,"position-y":S},p,s.default.createElement(l.OrbitControls,{ref:y,enableZoom:!1,target:y.current?y.current.target:h.controlsTarget,enabled:!x}))}},46008:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OBJECTS_PRESETS=t.defaultPresets=t.defaultAsciiConfigs=t.INITIAL_ZOOM=t.RESIZE_SPEED_FACTOR=t.MIN_ZOOM=t.MAX_ROTATE_SPEED=t.MIN_ROTATE_SPEED=t.ROTATE_SPEED=void 0,t.ROTATE_SPEED=.1,t.MIN_ROTATE_SPEED=0,t.MAX_ROTATE_SPEED=1,t.MIN_ZOOM=.22,t.RESIZE_SPEED_FACTOR=.9,t.INITIAL_ZOOM=3,t.defaultAsciiConfigs={renderIndex:1,bgColor:"rgb(var(--lsd-surface-primary))",fgColor:"rgb(var(--lsd-text-primary))",characters:" l.o.g.o.s ",invert:!1,color:!1,resolution:.21,textShadowSize:15},t.defaultPresets={modelId:"default",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[-2.733342169570335,1.127956558492365,2.7690180385429666],controlsTarget:[-.2185887974027981,3.4320197290105474,-.08409377618890646]},abstract:{cameraPos:[-1.4826176635786852,4.021180061821954,-1.5929058418153597],cameraRot:[-2.9244096935808908,-.8625529112689497,-2.9755407843387185],controlsTarget:[-.3236695017538898,3.8072918272567,-.6236093222013962]}},t.OBJECTS_PRESETS=[t.defaultPresets,{modelId:"architecture01",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"architecture02",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"architecture03",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"architecture04",simple:{cameraPos:[2.263701079468784,.6448855513810133,-1.1446840846564066],cameraRot:[-2.3314571674867457,.984733935216302,2.422537357648925],controlsTarget:[.6593539926170827,-.1266335925222026,-.4104215479626598]},abstract:{cameraPos:[1.8397825927313005,.5006635210357668,-.7112749496103248],cameraRot:[-2.0637769654190388,.941591559117755,2.1572780914058356],controlsTarget:[.7525282128865571,-.19650999135957886,-.33673737792715125]},targetLook:{cameraPos:[1.2775067913826557,1.3342390202957728,-3.123518037652026],cameraRot:[-2.6905895797482686,.32826936260575107,2.9867046984290964],controlsTarget:[.27965301570358253,.05724884619536415,-.48670374558576035]}},{modelId:"architecture05",simple:{cameraPos:[2.783916402572475,.8560027544276005,2.7596737879252995],cameraRot:[-.16075199314229247,.8310730403125255,.11920589473418516],controlsTarget:[-.13283501637059433,.4299574965789378,.13221598116033606]},abstract:{cameraPos:[-.5465903796360435,.8773980794748312,.08538618930043433],cameraRot:[-.26855166005001807,-1.1713993239674987,-.24830772343977955],controlsTarget:[-.0544632211815667,.8222830795164463,-.1148867151943581]},targetLook:{cameraPos:[-.08633866196975185,1.065498410363367,3.299441795447572],cameraRot:[-.30705338387773307,-.04232616594886318,-.01341603621000156],controlsTarget:[.057360484222938594,.03995565554668334,.06512362298065871]}},{modelId:"architecture06",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"architecture07",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"atlas",simple:{cameraPos:[-.05747471409961126,1.1561369169508278,.2934743027588207],cameraRot:[.13523803197626882,-.45004875426349367,.05912213357583956],controlsTarget:[-.03052411570622545,1.1636581998026059,.23819862568800665]},abstract:{cameraPos:[-.18886266143333627,1.0759713173211645,.49472614307040697],cameraRot:[.11827338438455919,-.49355424749746096,.056236459481599846],controlsTarget:[-.03586918676122722,1.1095292429426495,.21231853618809665]},targetLook:{cameraPos:[-.6194495673706852,.6791728914823414,1.1145248759455844],cameraRot:[.08253419059538356,-.589296072042965,.045942607479927136],controlsTarget:[.09058057232790886,.7667301800204325,.05607398084523753]}},{modelId:"bust01",simple:{cameraPos:[-.6865425525854476,.9101267370893742,.6192780523604176],cameraRot:[-.39660492694232563,-.962317303218196,-.3309893133032883],controlsTarget:[.008888669206507317,.7229784900626205,.17240700391361993]},abstract:{cameraPos:[.025758408225725123,.9432728632646389,.5085343068565109],cameraRot:[-.016796160047877214,.23199352927595504,.003862085219634371],controlsTarget:[-.04849025797636223,.9379943498483801,.19429480114059927]},targetLook:{cameraPos:[-.0995637601904456,.9905193985583883,1.2844592429465957],cameraRot:[-.21489715158374015,-.011908392248228742,-.002599147273856083],controlsTarget:[-.08519853311178426,.7332893758986562,.10595091334036527]}},{modelId:"bust02",simple:{cameraPos:[-1.4566842350476759,1.3228318382357354,.3529107224325513],cameraRot:[-.7212161402570414,-1.161345100016008,-.6787189972933454],controlsTarget:[.13759890903780844,.8659810364239205,-.1666973840261623]},abstract:{cameraPos:[-.3488062269042841,1.3111379960412364,.033354968216059155],cameraRot:[-.7212161402570405,-1.1613451000160089,-.6787189972933446],controlsTarget:[.2227218365835886,1.147363414950647,-.15291722311874764]}},{modelId:"bust03",simple:{cameraPos:[6.898858137575106,4.772099506970454,-3.1821660872368627],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"discobolus",simple:{cameraPos:[.9321278495515372,1.1243517299151449,1.0437243089401456],cameraRot:[-.05449607597993083,.5948614803388417,.030560026854436973],controlsTarget:[.17851738112859908,1.0636847191934362,-.06840974825492452]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"hand",simple:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"vase01",simple:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}},{modelId:"venus",simple:{cameraPos:[-.33960257176056113,1.3731114512210183,.5843851218219973],cameraRot:[.19165735697369993,-.4160172409280952,.07825504508386714],controlsTarget:[.1766806722765915,1.595709756901872,-.5627979418735829]},abstract:{cameraPos:[-.2543046264127692,1.591894996466899,.21161310295797725],cameraRot:[.17078534527374745,-.637502107706861,.10229142114685894],controlsTarget:[.2766995177502174,1.7137410300309837,-.49488235116491014]}},{modelId:"flower",simple:{cameraPos:[-.33960257176056113,1.3731114512210183,.5843851218219973],cameraRot:[0,0,0],controlsTarget:[0,0,0]},abstract:{cameraPos:[0,0,0],cameraRot:[0,0,0],controlsTarget:[0,0,0]}}]},35020:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroModel=void 0;const n=r(97582),i=r(96979),s=r(64232),a=n.__importDefault(r(86010)),o=n.__importStar(r(67294)),l=r(46008),c=r(37805),h=r(74067),u=r(21945);r(61588);const d=r(46439);function p(e){let{url:t,onMount:r=(()=>{}),...n}=e;const{scene:s}=(0,i.useGLTF)(t,"/scripts/draco-1.4.3/");return(0,o.useEffect)((()=>{r()}),[]),o.default.createElement("primitive",{object:s,...n})}t.HeroModel=e=>{const{modelId:t,preset:r,mode:n="simple",className:i,children:f,asciiConfig:m,rotateSpeed:g=l.ROTATE_SPEED,enableZoom:A,enableRotateOnScroll:v,withParallelEffect:y=!0,startY:x="bottom",...b}=e,E=((e,t,r)=>(0,o.useMemo)((()=>{if(t)return{...l.defaultPresets,[e]:t};if(!r)return l.defaultPresets;return l.OBJECTS_PRESETS.find((e=>e.modelId===r))||l.defaultPresets}),[t,r]))(n,r,t),_=(0,d.useScrollY)();return o.default.createElement("div",{className:(0,a.default)(i,"mdx-hero-model","mdx-hero-model--ascii",`mdx-hero-model--${n}`,`mdx-hero-model--${x}`),...b},o.default.createElement("div",{className:"mdx-hero-model--inner",style:{...y?{transform:"translateY(0px) scale(var(--mdx-hero-model-wrapper-scale))"}:{}}},o.default.createElement(o.Suspense,{fallback:o.default.createElement("span",null," ")},o.default.createElement(s.Canvas,{dpr:[1,2],style:{height:"100vh"},camera:{fov:50,position:E[n].cameraPos,rotation:E[n].cameraRot}},o.default.createElement("directionalLight",{position:[-10,10,0],intensity:1.5}),o.default.createElement("directionalLight",{position:[-10,10,5],intensity:.3}),o.default.createElement("directionalLight",{position:[-10,20,0],intensity:1.5}),o.default.createElement("directionalLight",{position:[100,-10,0],intensity:.25}),o.default.createElement(u.Controls,{rotateSpeed:g,preset:E[n],targetPreset:E.targetLook,enableZoom:"simple"!==n},o.default.createElement(o.Suspense,{fallback:o.default.createElement(p,{url:`/hero/${E.modelId}/lo.glb`})},o.default.createElement(p,{url:`/hero/${E.modelId}/hi.glb`}),o.default.createElement(h.AsciiRenderer,{...m})))))),o.default.createElement("div",{className:"mdx-hero-model--shade",style:{opacity:(0,c.mapFloat)(_,0,(0,c.calcScrollThreshold)()*l.RESIZE_SPEED_FACTOR,0,1)}}))}},10052:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroModel=void 0;const n=r(97582).__importDefault(r(67294)),i=r(37805),s=r(46439),a=r(35020);t.HeroModel=e=>{if("undefined"==typeof window)return null;const t=(0,s.useScrollY)();(0,i.mapFloat)(t,0,(0,i.calcScrollThreshold)(),0,.1*window.innerHeight);return n.default.createElement("div",{style:{position:"absolute",top:0,left:0}},n.default.createElement(a.HeroModel,{...e}))}},75289:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroTitle=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294)),o=r(42265);r(92751);t.HeroTitle=e=>{let{size:t,uppercase:r,className:n,children:l,...c}=e;const h=(0,o.useHero)(),u=t||(h?h.size:"medium"),d=void 0!==r?r:"large"===h?.size;return a.default.createElement(i.Typography,{variant:"h1",component:"h1",className:(0,s.default)(n,"mdx-hero-title",`mdx-hero-title--${u}`,d&&"mdx-hero-title--uppercase"),...c},l)}},69562:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(75289),t)},59879:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HeroVideo=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importStar(r(67294)),a=r(39320),o=r(89321),l=r(96507),c=r(42265);r(53175);t.HeroVideo=e=>{let{placeholderSrc:t,desktop:r,mobile:n,className:h,style:u={},children:d,...p}=e;(0,c.useHero)();const f=(0,l.useHydrated)(),m=(0,s.useRef)(null),[g,A]=(0,s.useState)(!0),v=async()=>{const e=m.current;if(!e)return;e.muted=!0,e.defaultMuted=!0;const[t,r]=await(0,o.settle)((()=>e.play()));r||A(!1)};return(0,s.useEffect)((()=>{const e=document.querySelector(".col > article");if(e)return e.classList.add("overflow-hidden"),()=>{e.classList.remove("overflow-hidden")}}),[]),s.default.createElement(s.default.Fragment,null,s.default.createElement("div",{className:(0,i.default)(h,"mdx-hero-video",g&&"mdx-hero-video--loading"),style:(0,a.makeStyle)({...u},{"hero-video-scale":r?.scale??"1.70951586","hero-video-offset-y":r?.offsetY??"-150px","hero-video-height":r?.height??"100%","hero-video-min-height":r?.minHeight??"min(100vh, var(--hero-max-height))","hero-video-scale-mobile":n?.scale??"1.70951586","hero-video-offset-y-mobile":n?.offsetY??"-50px","hero-video-height-mobile":n?.height??"120%","hero-video-min-height-mobile":n?.minHeight??"100vh"}),...p},s.default.createElement("div",{className:"mdx-hero-video__placeholder"},s.default.createElement("img",{src:t,alt:""})),s.default.createElement("div",{className:"mdx-hero-video__video"},f&&s.default.createElement("video",{ref:m,loop:!0,muted:!0,autoPlay:!0,playsInline:!0,onCanPlay:v,onLoadedMetadata:v},d))))}},13526:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(59879),t)},94386:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.JobsPerDepartment=void 0;const n=r(97582),i=r(31665),s=r(74676),a=n.__importDefault(r(67294)),o=r(68193),l=e=>{let{message:t}=e;return a.default.createElement(a.default.Fragment,null,a.default.createElement(i.Typography,{variant:"h1",className:"mdx-jpd__header"},"Current job openings"),!!t&&a.default.createElement(i.Typography,{variant:"body1"},t))};t.JobsPerDepartment=e=>{let{jobData:t,titleFilter:r="",useDummyData:n=!1,...i}=e,c=n?o.jobsPerDepartmentDummyData:t?.departments;return c&&(h=c)&&h.some((e=>e.jobs&&e.jobs.length>0))?(c&&r&&(c=c.map((e=>({...e,jobs:e.jobs.filter((e=>e.title.includes(r)))})))),a.default.createElement("div",{...i},a.default.createElement(l,null),c.map((e=>a.default.createElement(s.SingleDepartmentJobs,{key:e.name,department:e}))))):a.default.createElement(l,{message:"No job openings to show"});var h}},74676:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleDepartmentJobs=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(67294)),a=r(78870);r(37477);const o=n.__importDefault(r(39960));t.SingleDepartmentJobs=e=>{let{department:t}=e;return t.jobs&&0!==t.jobs.length?s.default.createElement("div",{className:"mdx-jpd__single-job-department-container"},s.default.createElement(i.Typography,{variant:"subtitle2",className:"mdx-jpd__department-title"},t.name),s.default.createElement("ul",{className:"mdx-jpd__job-list"},t.jobs.map(((e,t)=>s.default.createElement("li",{key:t,className:"mdx-jpd__job-list-item"},s.default.createElement(o.default,{href:e.absolute_url,target:"_blank",className:"mdx-jpd__job-link"},s.default.createElement("div",{className:"mdx-jpd__job-title-container"},s.default.createElement(i.Typography,{variant:"h5",className:"mdx-jpd__job-title"},e.title),s.default.createElement(a.IconExternalLink,{className:"mdx-jpd__external-link-icon"})),!!e.location?.name&&s.default.createElement(i.Typography,{variant:"subtitle2",component:"div"},e.location.name))))))):null}},75686:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(94386),t)},68193:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.jobsPerDepartmentDummyData=void 0,t.jobsPerDepartmentDummyData=[{id:87842,name:"App",parent_id:43806,child_ids:[87847,87852,87850,87848,45530,87849],jobs:[]},{id:54504,name:"Brand Design Studio",parent_id:null,child_ids:[],jobs:[]},{id:45532,name:"Business Development",parent_id:null,child_ids:[],jobs:[]},{id:87841,name:"Codex",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5329400",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2662332,location:{name:"Remote (Worldwide)"},metadata:null,id:5329400,updated_at:"2023-10-13T09:40:03-04:00",requisition_id:"Cod-6",title:"Technical Business Development Lead [Codex]"}]},{id:84549,name:"Communications",parent_id:null,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5276254",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2645076,location:{name:"Remote (Worldwide)"},metadata:null,id:5276254,updated_at:"2023-10-19T03:08:59-04:00",requisition_id:"PROV-Com-16",title:"Motion Designer"}]},{id:45531,name:"Design",parent_id:null,child_ids:[],jobs:[]},{id:87847,name:"Desktop",parent_id:87842,child_ids:[],jobs:[]},{id:87852,name:"Documentation",parent_id:87842,child_ids:[],jobs:[]},{id:45547,name:"Engineering ",parent_id:null,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5419957",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2693761,location:{name:"Remote (Worldwide)"},metadata:null,id:5419957,updated_at:"2023-10-24T07:30:00-04:00",requisition_id:"APP-QA-2",title:"Desktop QA Engineer "},{absolute_url:"https://jobs.status.im/?gh_jid=3694379",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2055210,location:{name:"Remote (Worldwide)"},metadata:null,id:3694379,updated_at:"2023-10-24T16:23:12-04:00",requisition_id:"BACK-1050",title:"Senior C++ Qt/QML developer for blockchain app"},{absolute_url:"https://jobs.status.im/?gh_jid=3702173",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2058858,location:{name:"Remote (Worldwide)"},metadata:null,id:3702173,updated_at:"2023-10-24T16:21:54-04:00",requisition_id:"93",title:"Senior Mobile ClojureScript UI Developer "}]},{id:49925,name:"Finance",parent_id:87845,child_ids:[],jobs:[]},{id:87854,name:"Infrastructure",parent_id:43806,child_ids:[],jobs:[]},{id:87853,name:"Insights",parent_id:87845,child_ids:[],jobs:[]},{id:87850,name:"Keycard",parent_id:87842,child_ids:[],jobs:[]},{id:145838,name:"Leadership",parent_id:null,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5447463",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2704948,location:{name:"Remote (Worldwide)"},metadata:null,id:5447463,updated_at:"2023-10-24T09:07:22-04:00",requisition_id:"LEAD-1",title:"Chief of Staff [whole ecosystem]"}]},{id:74156,name:"Legal",parent_id:87845,child_ids:[],jobs:[]},{id:91698,name:"Logos",parent_id:null,child_ids:[],jobs:[]},{id:43807,name:"Marketing",parent_id:null,child_ids:[],jobs:[]},{id:87848,name:"Mobile",parent_id:87842,child_ids:[],jobs:[]},{id:87843,name:"Nimbus",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5370820",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2679527,location:{name:"Remote (Worldwide)"},metadata:null,id:5370820,updated_at:"2023-10-19T03:05:07-04:00",requisition_id:"LIDO-1",title:"Senior DevOps Engineer (Blockchain)"}]},{id:144866,name:"Nomos",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5433423",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2315608,location:{name:"Remote (Worldwide)"},metadata:null,id:5433423,updated_at:"2023-10-12T11:20:52-04:00",requisition_id:"PROV-Nom-5",title:"Applied Network Researcher"}]},{id:45548,name:"People Operations",parent_id:87845,child_ids:[],jobs:[]},{id:45530,name:"Product Design",parent_id:87842,child_ids:[],jobs:[]},{id:90941,name:"Program Management",parent_id:null,child_ids:[],jobs:[]},{id:43806,name:"Research & Development",parent_id:null,child_ids:[87842,87841,87854,87843,144866,87846,87981,87847,87852,87850,87848,45530,87849],jobs:[]},{id:87851,name:"Security",parent_id:87845,child_ids:[],jobs:[]},{id:87845,name:"Services",parent_id:null,child_ids:[49925,87853,74156,45548,87851],jobs:[]},{id:91697,name:"Status App ",parent_id:null,child_ids:[],jobs:[]},{id:54783,name:"Technical Writing ",parent_id:null,child_ids:[],jobs:[]},{id:87846,name:"Vac",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=4460860",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2331302,location:{name:"Remote (Worldwide)"},metadata:null,id:4460860,updated_at:"2023-10-04T05:13:53-04:00",requisition_id:"PROV-zkV-1",title:"Zero Knowledge Research Engineer "}]},{id:87981,name:"Waku",parent_id:43806,child_ids:[],jobs:[{absolute_url:"https://jobs.status.im/?gh_jid=5456032",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2707470,location:{name:"Remote (Worldwide)"},metadata:null,id:5456032,updated_at:"2023-10-23T11:40:19-04:00",requisition_id:"WAK-GL-1",title:"Growth Lead"},{absolute_url:"https://jobs.status.im/?gh_jid=3693623",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2055187,location:{name:"Remote (Worldwide)"},metadata:null,id:3693623,updated_at:"2023-10-04T05:13:53-04:00",requisition_id:"PROV-Sec-2",title:"Protocol Engineer"},{absolute_url:"https://jobs.status.im/?gh_jid=3157908",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:1830496,location:{name:"Remote, Worldwide"},metadata:null,id:3157908,updated_at:"2023-10-04T05:13:53-04:00",requisition_id:"PROV-Sec-3",title:"Protocol Researcher (Distributed Systems)"},{absolute_url:"https://jobs.status.im/?gh_jid=5175038",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2584916,location:{name:"Remote (Worldwide)"},metadata:null,id:5175038,updated_at:"2023-10-09T05:53:53-04:00",requisition_id:"SDK-2",title:"Software Engineer (Chat SDK)"},{absolute_url:"https://jobs.status.im/?gh_jid=5310503",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2656108,location:{name:"Remote (Worldwide)"},metadata:null,id:5310503,updated_at:"2023-10-19T03:12:53-04:00",requisition_id:"PROV-Wak-13",title:"Software Engineer Distributed Systems Testing"},{absolute_url:"https://jobs.status.im/?gh_jid=5423094",data_compliance:[{type:"gdpr",requires_consent:!1,requires_processing_consent:!1,requires_retention_consent:!1,retention_period:null}],internal_job_id:2694724,location:{name:"Remote (Worldwide)"},metadata:null,id:5423094,updated_at:"2023-10-24T12:39:05-04:00",requisition_id:"WAK-BD-1",title:"Technical Business Development Lead "}]},{id:87849,name:"Web",parent_id:87842,child_ids:[],jobs:[]},{id:0,name:"No Department",parent_id:null,child_ids:[],jobs:[]}]},3223:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LogoCarousel=void 0;const n=r(97582),i=n.__importDefault(r(16019)),s=n.__importDefault(r(86010)),a=n.__importStar(r(67294));r(11620);const o=r(83639),l=r(38915),c=r(96507);t.LogoCarousel=e=>{let{title:t,className:r,items:n=[],children:h,...u}=e;const d=(0,c.useHydrated)(),p=(0,a.useRef)(null),f=(0,a.useRef)(null);return"undefined"!=typeof window&&d&&!f.current&&(f.current=p.current?.querySelector(".mdx-grid__content")??null,console.log(f.current,p.current)),a.default.createElement("div",{ref:p,className:(0,s.default)(r,"mdx-logo-carousel"),...u},a.default.createElement(o.SectionHeader,{title:t},a.default.createElement(l.ScrollButtons,{containerRef:f})),a.default.createElement(o.Grid,{className:"mdx-logo-carousel__inner",xs:{wrap:!1,gap:"96px",scrollButtons:!1}},n.map((e=>a.default.createElement(o.Grid.Item,{className:"mdx-logo-carousel__item"},a.default.createElement(i.default,{className:"mdx-logo-carousel__logo",title:e.title,sources:{dark:e.logoSrcDark??e.logoSrc??"",light:e.logoSrc??e.logoSrcDark??""}}))))))}},28466:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(3223),t)},40031:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NewsletterSubscription=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294)),o=r(83639),l=r(39617),c=r(54400);r(58287);t.NewsletterSubscription=e=>{let{title:t,description:r,mailingListId:n,...h}=e;const u=(0,c.useThemeOptions)()?.newsletterSubscription?.mailingListId??0,d=n??u,p=(0,l.useNewsletterApi)(),f=!p.message||p.error,m=t??"Newsletter",g=r??a.default.createElement(a.default.Fragment,null,"Subscribe",a.default.createElement("br",null),"to our newsletter");return a.default.createElement(o.CallToActionSection,{className:"mdx-ns",title:a.default.createElement("span",{className:"mdx-ns__title"},m),description:a.default.createElement("div",{className:"mdx-ns__inner"},a.default.createElement("span",{className:"mdx-ns__description"},g),a.default.createElement("form",{onSubmit:e=>{e.preventDefault();const t=e.target,r=t.elements.namedItem("name").value,n=t.elements.namedItem("email").value;p.subscribe(d,n,r)}},p.message&&a.default.createElement(i.Toast,{title:p.message,className:"mdx-ns__toast",icon:p.error?i.ErrorIcon:i.CheckIcon}),a.default.createElement("div",{className:(0,s.default)("mdx-ns__inputs",!f&&"hidden")},a.default.createElement(i.TextField,{inputProps:{type:"text",name:"name"},variant:"underlined",placeholder:"First name or pseudonym"}),a.default.createElement(i.TextField,{inputProps:{type:"email",name:"email",required:!0},variant:"underlined",placeholder:"Email address (required)"})),a.default.createElement(i.Button,{size:"large",color:"primary",variant:"outlined",className:(0,s.default)("mdx-ns__submit-button",!f&&"hidden"),disabled:p.busy},"Subscribe"))),columns:2})}},46287:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(40031),t)},69702:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PoweredBy=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294)),a=r(83639);r(63428);t.PoweredBy=e=>{let{items:t=[],className:r,...n}=e;return s.default.createElement(a.Grid,{className:(0,i.default)(r,"mdx-powered-by"),xs:{cols:1,wrap:!0,gap:"0 1rem"},lg:{cols:2},...n},t.map(((e,t)=>s.default.createElement(a.Grid.Item,{key:t,xs:1},s.default.createElement(a.AppCard,{...e})))))}},91089:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(69702),t)},4816:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProfileCard=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(39960)),a=n.__importDefault(r(67294)),o=r(78870);r(36489);const l=n.__importDefault(r(86010));t.ProfileCard=e=>{let{imgSrc:t,name:r,githubUsername:n,githubLink:c,discordUsername:h,discordLink:u,...d}=e;return a.default.createElement("div",{...d,className:(0,l.default)("mdx-profile-card",d.className)},a.default.createElement("div",{className:"mdx-profile-card__profile"},void 0===t?a.default.createElement(o.IconAvatar,{className:"mdx-profile-card__avatar"}):a.default.createElement("img",{alt:"string"==typeof r?r:"",className:"mdx-profile-card__avatar",src:t}),a.default.createElement(i.Typography,{className:"mdx-profile-card__name",variant:"h3",component:"h4"},r)),a.default.createElement("div",{className:"mdx-profile-card__buttons"},n&&c&&a.default.createElement(s.default,{href:c,target:"_blank",className:"mdx-profile-card__link"},a.default.createElement(o.IconGithub,null)),h&&u&&a.default.createElement(s.default,{href:u,target:"_blank",className:"mdx-profile-card__link"},a.default.createElement(o.IconDiscordWhite,null))))}},50922:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(4816),t)},6306:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Roadmap=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294)),a=r(83639),o=r(40851);r(74166);t.Roadmap=e=>{let{title:t,description:r,timeline:n=[],className:l,children:c,...h}=e;const u=(new Date).getFullYear(),d=(e,t,r)=>{if(t===r.length-1)return"none";return e.period[0]===r[t+1].period[0]?"solid":"dashed"},p=e=>{const t=(new Date).getFullYear(),r=(()=>{const e=(new Date).getMonth();return"Q"+Math.ceil((e+1)/3)})();let n,i;return Array.isArray(e)?[n,i]=e:n=e,nt?"transparent":i&&"+"!==i?i<=r?"filled":"transparent":"filled"};return s.default.createElement("div",{className:(0,i.default)(l,"mdx-roadmap"),...h},s.default.createElement(a.SectionHeader,{className:"mdx-roadmap__header",title:t,description:r},c),n.length>0&&s.default.createElement(a.Grid,{className:"mdx-roadmap__timeline",xs:{cols:6,wrap:!1,gap:"0 1rem",scrollButtons:!0},spacingButtons:!0,leftLabel:"Past",rightLabel:"Future"},n.map(((e,t)=>s.default.createElement(a.Grid.Item,{key:t,xs:1},s.default.createElement(o.TimelineItem,{...e,index:t,period:e.period??u,description:e.description,borderStyle:d(e,t,n),periodStyle:p(e?.period??u),className:(0,i.default)("mdx-roadmap__timeline-item",e.className)}))))))}},57890:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(6306),t)},81367:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScrollButtons=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294));r(79832);t.ScrollButtons=e=>{let{leftLabel:t,rightLabel:r,containerRef:n,containerId:o,spacing:l="grouped",...c}=e;const h=e=>{const t=n?n.current:document.querySelector(`#${o}`);if(!t)return;const r=t.children[0]?.getBoundingClientRect?.()?.width??236;t.scrollTo({behavior:"smooth",left:t.scrollLeft+(t.getBoundingClientRect()?.width-r)*e})};return a.default.createElement("div",{...c,className:(0,s.default)(c.className,"mdx-scroll-buttons","spaced"===l&&"mdx-scroll-buttons--spaced")},a.default.createElement(i.IconButtonGroup,{size:"small",color:"primary"},a.default.createElement(i.IconButton,{className:(0,s.default)("mdx-scroll-buttons__button",t&&t.length>0&&"mdx-scroll-buttons__button--with-label"),size:"small",onClick:h.bind(null,-1)},a.default.createElement(i.ChevronLeftIcon,null),t&&t.length>0&&a.default.createElement("span",{className:"mdx-scroll-buttons__label"},t)),a.default.createElement(i.IconButton,{className:(0,s.default)("mdx-scroll-buttons__button",r&&r.length&&"mdx-scroll-buttons__button--with-label"),size:"small",onClick:h.bind(null,1)},r&&r.length>0&&a.default.createElement("span",{className:"mdx-scroll-buttons__label"},r),a.default.createElement(i.ChevronRightIcon,null))))}},38915:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(81367),t)},24728:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScrollToBottom=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importStar(r(67294)),o=r(89164),l=r(39320),c=r(53708),h=r(46439),u=n.__importDefault(r(49933));t.ScrollToBottom=e=>{const{children:t,className:r,style:n,...d}=e,p=(0,h.useScrollY)(),f=(0,c.useIsMobile)(),m=(0,o.useWindowSize)(),g=(0,a.useMemo)((()=>(document.querySelector(".mdx-hero")?.getBoundingClientRect()?.bottom??0)+window.scrollY),[m.height]);return a.default.createElement(i.IconButton,{onClick:()=>{const e=document.querySelector(".main-wrapper article"),t=e?.children?.[1];if(t)return window.scrollTo({left:0,top:t.getBoundingClientRect().top-(f?200:0),behavior:"smooth"});window.scrollTo({top:document.body.scrollHeight,behavior:"smooth"})},size:f?"small":"large",className:(0,s.default)(u.default.scrollToBottom,r,p>20&&u.default.hide),style:(0,l.makeStyle)({...n??{}},{vh:m.height/100+"px",maxTop:g+"px"}),...d},a.default.createElement(i.ChevronDownIcon,{color:"primary"}))}},42073:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(24728),t)},56533:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SectionHeader=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294)),o=r(83639);r(92476);t.SectionHeader=e=>{let{title:t,description:r,className:n,children:l,...c}=e;const h=!!r;return a.default.createElement(o.Box,{className:(0,s.default)(n,"mdx-section-header",h&&"mdx-section-header--with-description"),...c},a.default.createElement(i.Typography,{className:"mdx-section-header__title",component:"h2",variant:"h5"},t,!h&&l&&a.default.createElement("div",{className:"mdx-section-header__extra"},l)),r&&a.default.createElement(i.Typography,{className:"mdx-section-header__description",component:"p",variant:"h3"},r,a.default.createElement("div",{className:"mdx-section-header__extra"},l)))}},68151:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(56533),t)},39439:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Showcase=void 0;const n=r(97582),i=n.__importDefault(r(86010)),s=n.__importDefault(r(67294)),a=r(83639);r(13344);t.Showcase=e=>{let{items:t=[],className:r,...n}=e;return s.default.createElement(a.Grid,{className:(0,i.default)(r,"mdx-showcase"),xs:{cols:2,wrap:!0,gap:"1.5rem 1em"},lg:{cols:3,gap:"1rem"},...n},t.map(((e,t)=>s.default.createElement(a.Grid.Item,{key:t,className:"mdx-showcase__item",xs:1},s.default.createElement(a.ShowcaseCard,{...e})))))}},8760:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(39439),t)},96909:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ShowcaseCard=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(16019)),a=n.__importDefault(r(86010)),o=n.__importDefault(r(67294));r(29188);t.ShowcaseCard=e=>{let{index:t,name:r,logoSrc:n,logoSrcDark:l,description:c,className:h,size:u="large",borderStyle:d="solid",children:p,...f}=e;return o.default.createElement("div",{className:(0,a.default)(h,"mdx-showcase-card",`mdx-showcase-card--${u}`,`mdx-showcase-card--border-${d}`),...f},o.default.createElement("div",{className:"mdx-showcase-card__inner"},t&&o.default.createElement(i.Typography,{className:"mdx-showcase-card__index",variant:"subtitle2",component:"div"},t),(n||l)&&o.default.createElement(s.default,{sources:{dark:l??n??"",light:n??l??""},alt:"string"==typeof r?r:"",className:"mdx-showcase-card__logo"}),r&&o.default.createElement(i.Typography,{variant:"h2",component:"h2",className:"mdx-showcase-card__name"},r),c&&o.default.createElement(i.Typography,{variant:"body1",component:"p",className:"mdx-showcase-card__description"},c)))}},4385:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(96909),t)},9847:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SocialCard=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(16019)),a=n.__importDefault(r(86010)),o=n.__importDefault(r(67294)),l=r(78870);r(63933);t.SocialCard=e=>{let{title:t,logoSrc:r,logoSrcDark:n,description:c,...h}=e;return o.default.createElement("a",{target:"_blank",...h,className:(0,a.default)(h.className,"mdx-social-card")},o.default.createElement("div",{className:"mdx-social-card__row"},(r||n)&&o.default.createElement(s.default,{sources:{dark:n??r??"",light:r??n??""},alt:t??"social card logo",className:"mdx-social-card__logo"}),o.default.createElement(l.IconExternalLink,{className:"mdx-social-card__external-link"})),o.default.createElement(i.Typography,{variant:"body1",component:"span",className:"mdx-social-card__description"},c))}},26325:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(9847),t)},56732:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TimelineItem=void 0;const n=r(97582),i=r(31665),s=n.__importDefault(r(86010)),a=n.__importDefault(r(67294));r(86782);t.TimelineItem=e=>{let{index:t,period:r,description:n,borderStyle:o,periodStyle:l,className:c,children:h,...u}=e;return a.default.createElement("div",{className:(0,s.default)(c,"mdx-timeline-item","dashed"===o&&"mdx-timeline-item--border-dashed"),...u},a.default.createElement("div",{className:"mdx-timeline-item__header"},a.default.createElement("div",{className:"mdx-timeline-item__period-container"},"none"!==o&&a.default.createElement("div",{className:(0,s.default)("mdx-timeline-item__border")}),a.default.createElement(i.Typography,{variant:"subtitle2",component:"span",className:(0,s.default)("mdx-timeline-item__period",`mdx-timeline-item__period--${l}`)},(e=>{if(Array.isArray(e)&&e.length>0){let t=e[0].toString();return e.length>1&&("+"===e[1]?t+="+":t+=" "+e[1]),t}return""})(r))),a.default.createElement(i.Typography,{variant:"h2",component:"span",className:"mdx-timeline-item__index"},"number"==typeof t?`${t<9?"0":""}${t+1}`:t)),a.default.createElement(i.Typography,{variant:"h5",component:"p",className:"mdx-timeline-item__description"},n))}},40851:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});r(97582).__exportStar(r(56732),t)},83639:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(97582);n.__exportStar(r(56027),t),n.__exportStar(r(45138),t),n.__exportStar(r(11734),t),n.__exportStar(r(84777),t),n.__exportStar(r(16607),t),n.__exportStar(r(3447),t),n.__exportStar(r(9110),t),n.__exportStar(r(44385),t),n.__exportStar(r(88819),t),n.__exportStar(r(2561),t),n.__exportStar(r(7757),t),n.__exportStar(r(24834),t),n.__exportStar(r(83398),t),n.__exportStar(r(31889),t),n.__exportStar(r(18355),t),n.__exportStar(r(32922),t),n.__exportStar(r(10052),t),n.__exportStar(r(69562),t),n.__exportStar(r(13526),t),n.__exportStar(r(75686),t),n.__exportStar(r(28466),t),n.__exportStar(r(46287),t),n.__exportStar(r(91089),t),n.__exportStar(r(50922),t),n.__exportStar(r(57890),t),n.__exportStar(r(42073),t),n.__exportStar(r(68151),t),n.__exportStar(r(8760),t),n.__exportStar(r(4385),t),n.__exportStar(r(26325),t),n.__exportStar(r(40851),t),n.__exportStar(r(71743),t),n.__exportStar(r(45210),t),n.__exportStar(r(57011),t),n.__exportStar(r(44804),t),n.__exportStar(r(43189),t),n.__exportStar(r(75835),t),n.__exportStar(r(56127),t),n.__exportStar(r(50060),t),n.__exportStar(r(82665),t),n.__exportStar(r(69605),t)},98823:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.lsdUtils=t.LsdUtils=void 0;const n=r(31665),i=r(70917);class s{_breakpoints={};getBreakpoints=e=>{if(this._breakpoints[e.name])return this._breakpoints[e.name];const t={};for(let r=0;rthis.getBreakpoints(e)[t];breakpoints=(()=>function(e){return void 0===e&&(e=[]),n.THEME_BREAKPOINTS.filter((t=>!e.find((e=>e===t))))})();typography=function(e,t){return void 0===t&&(t=!1),"subtitle3"===e?"\n font-size: 12px !important;\n font-weight: 400 !important;\n line-height: 16px !important;\n ":`\n font-size: var(--lsd-${e}-fontSize)${t?"!important":""};\n font-weight: var(--lsd-${e}-fontWeight)${t?"!important":""};\n line-height: var(--lsd-${e}-lineHeight)${t?"!important":""};\n `};breakpoint=(()=>{var e=this;return function(t,r,n,i){void 0===n&&(n="up");const{min:s,max:a}=e.getBreakpoint(t,r);let o="@media ";if("up"===n)o+=`(min-width: ${s}px)`;else if("down"===n)o+=`(max-width: ${a}px)`;else if("between"===n&&i){o+=`(min-width: ${s}px) and (max-width: ${e.getBreakpoint(t,i).min-1}px)`}else o+=`(min-width: ${s}px) and (max-width: ${a}px)`;return`${o}`}})();responsive=(()=>function(e,r,n){void 0===n&&(n="up");const s=t.lsdUtils.breakpoint(e,r,n);return e=>i.css` + ${s} { + ${e} + } + `})()}t.LsdUtils=s,t.lsdUtils=new s},39320:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.makeStyle=void 0;t.makeStyle=function(e,t){return void 0===t&&(t={}),{...e,...Object.entries(t).reduce(((e,t)=>{let[r,n]=t;return{...e,[`--${r}`]:n}}),{})}}},37805:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.calcHeroInfoMb=t.isMobile=t.generateTextShadow=t.isTouchDevice=t.calcScrollThreshold=t.mapFloat=t.random=void 0;t.random=(e,t)=>Math.random()*(t-e)+e;t.mapFloat=(e,t,r,n,i)=>(e-t)*(i-n)/(r-t)+n;t.calcScrollThreshold=()=>.4*window.innerHeight;t.isTouchDevice=()=>"undefined"!=typeof window&&("ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints&&navigator.msMaxTouchPoints>0);t.generateTextShadow=e=>{let t="";for(let r=0;r"undefined"!=typeof window&&window.innerWidth<997;t.calcHeroInfoMb=e=>(0,t.mapFloat)(scrollY,0,(0,t.calcScrollThreshold)(),0,100)},39617:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useNewsletterApi=void 0;const n=r(67294);t.useNewsletterApi=()=>{const[e,t]=(0,n.useState)(!1),[r,i]=(0,n.useState)({error:!1,message:""});return{busy:e,error:r.error,message:r.message,subscribe:async(e,r,n)=>{t(!0);try{const t=await fetch("https://odoo.logos.co/website_mass_mailing/subscribe2",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",method:"call",params:{name:n,value:r,list_id:e,subscription_type:"email"}})}),s=await t.json();i({error:!1,message:s.result.message})}catch(s){i({error:!0,message:"Something went wrong!"})}t(!1)}}}},46439:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useScrollY=void 0;const n=r(521),i=r(67294);t.useScrollY=()=>{const[e,t]=(0,i.useState)(0);return(0,n.useWindowEventListener)("scroll",(()=>{t(window.scrollY)})),e}},8260:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}function i(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function s(e){i(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"===n(e)&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn((new Error).stack)),new Date(NaN))}function a(e){if(i(1,arguments),!function(e){return i(1,arguments),e instanceof Date||"object"===n(e)&&"[object Date]"===Object.prototype.toString.call(e)}(e)&&"number"!=typeof e)return!1;var t=s(e);return!isNaN(Number(t))}function o(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function l(e,t){return i(2,arguments),function(e,t){i(2,arguments);var r=s(e).getTime(),n=o(t);return new Date(r+n)}(e,-o(t))}r.r(t),r.d(t,{default:()=>J});function c(e){i(1,arguments);var t=s(e),r=t.getUTCDay(),n=(r<1?7:0)+r-1;return t.setUTCDate(t.getUTCDate()-n),t.setUTCHours(0,0,0,0),t}function h(e){i(1,arguments);var t=s(e),r=t.getUTCFullYear(),n=new Date(0);n.setUTCFullYear(r+1,0,4),n.setUTCHours(0,0,0,0);var a=c(n),o=new Date(0);o.setUTCFullYear(r,0,4),o.setUTCHours(0,0,0,0);var l=c(o);return t.getTime()>=a.getTime()?r+1:t.getTime()>=l.getTime()?r:r-1}function u(e){i(1,arguments);var t=s(e),r=c(t).getTime()-function(e){i(1,arguments);var t=h(e),r=new Date(0);return r.setUTCFullYear(t,0,4),r.setUTCHours(0,0,0,0),c(r)}(t).getTime();return Math.round(r/6048e5)+1}var d={};function p(){return d}function f(e,t){var r,n,a,l,c,h,u,d;i(1,arguments);var f=p(),m=o(null!==(r=null!==(n=null!==(a=null!==(l=null==t?void 0:t.weekStartsOn)&&void 0!==l?l:null==t||null===(c=t.locale)||void 0===c||null===(h=c.options)||void 0===h?void 0:h.weekStartsOn)&&void 0!==a?a:f.weekStartsOn)&&void 0!==n?n:null===(u=f.locale)||void 0===u||null===(d=u.options)||void 0===d?void 0:d.weekStartsOn)&&void 0!==r?r:0);if(!(m>=0&&m<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var g=s(e),A=g.getUTCDay(),v=(A=1&&v<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var y=new Date(0);y.setUTCFullYear(g+1,0,v),y.setUTCHours(0,0,0,0);var x=f(y,t),b=new Date(0);b.setUTCFullYear(g,0,v),b.setUTCHours(0,0,0,0);var E=f(b,t);return m.getTime()>=x.getTime()?g+1:m.getTime()>=E.getTime()?g:g-1}function g(e,t){i(1,arguments);var r=s(e),n=f(r,t).getTime()-function(e,t){var r,n,s,a,l,c,h,u;i(1,arguments);var d=p(),g=o(null!==(r=null!==(n=null!==(s=null!==(a=null==t?void 0:t.firstWeekContainsDate)&&void 0!==a?a:null==t||null===(l=t.locale)||void 0===l||null===(c=l.options)||void 0===c?void 0:c.firstWeekContainsDate)&&void 0!==s?s:d.firstWeekContainsDate)&&void 0!==n?n:null===(h=d.locale)||void 0===h||null===(u=h.options)||void 0===u?void 0:u.firstWeekContainsDate)&&void 0!==r?r:1),A=m(e,t),v=new Date(0);return v.setUTCFullYear(A,0,g),v.setUTCHours(0,0,0,0),f(v,t)}(r,t).getTime();return Math.round(n/6048e5)+1}function A(e,t){for(var r=e<0?"-":"",n=Math.abs(e).toString();n.length0?r:1-r;return A("yy"===t?n%100:n,t.length)},M:function(e,t){var r=e.getUTCMonth();return"M"===t?String(r+1):A(r+1,2)},d:function(e,t){return A(e.getUTCDate(),t.length)},a:function(e,t){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];default:return"am"===r?"a.m.":"p.m."}},h:function(e,t){return A(e.getUTCHours()%12||12,t.length)},H:function(e,t){return A(e.getUTCHours(),t.length)},m:function(e,t){return A(e.getUTCMinutes(),t.length)},s:function(e,t){return A(e.getUTCSeconds(),t.length)},S:function(e,t){var r=t.length,n=e.getUTCMilliseconds();return A(Math.floor(n*Math.pow(10,r-3)),t.length)}};var y="midnight",x="noon",b="morning",E="afternoon",_="evening",S="night",M={G:function(e,t,r){var n=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});default:return r.era(n,{width:"wide"})}},y:function(e,t,r){if("yo"===t){var n=e.getUTCFullYear(),i=n>0?n:1-n;return r.ordinalNumber(i,{unit:"year"})}return v.y(e,t)},Y:function(e,t,r,n){var i=m(e,n),s=i>0?i:1-i;return"YY"===t?A(s%100,2):"Yo"===t?r.ordinalNumber(s,{unit:"year"}):A(s,t.length)},R:function(e,t){return A(h(e),t.length)},u:function(e,t){return A(e.getUTCFullYear(),t.length)},Q:function(e,t,r){var n=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(n);case"QQ":return A(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,t,r){var n=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(n);case"qq":return A(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,t,r){var n=e.getUTCMonth();switch(t){case"M":case"MM":return v.M(e,t);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(e,t,r){var n=e.getUTCMonth();switch(t){case"L":return String(n+1);case"LL":return A(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(e,t,r,n){var i=g(e,n);return"wo"===t?r.ordinalNumber(i,{unit:"week"}):A(i,t.length)},I:function(e,t,r){var n=u(e);return"Io"===t?r.ordinalNumber(n,{unit:"week"}):A(n,t.length)},d:function(e,t,r){return"do"===t?r.ordinalNumber(e.getUTCDate(),{unit:"date"}):v.d(e,t)},D:function(e,t,r){var n=function(e){i(1,arguments);var t=s(e),r=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var n=r-t.getTime();return Math.floor(n/864e5)+1}(e);return"Do"===t?r.ordinalNumber(n,{unit:"dayOfYear"}):A(n,t.length)},E:function(e,t,r){var n=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(e,t,r,n){var i=e.getUTCDay(),s=(i-n.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return A(s,2);case"eo":return r.ordinalNumber(s,{unit:"day"});case"eee":return r.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(i,{width:"short",context:"formatting"});default:return r.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,r,n){var i=e.getUTCDay(),s=(i-n.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return A(s,t.length);case"co":return r.ordinalNumber(s,{unit:"day"});case"ccc":return r.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(i,{width:"narrow",context:"standalone"});case"cccccc":return r.day(i,{width:"short",context:"standalone"});default:return r.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,r){var n=e.getUTCDay(),i=0===n?7:n;switch(t){case"i":return String(i);case"ii":return A(i,t.length);case"io":return r.ordinalNumber(i,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(e,t,r){var n=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},b:function(e,t,r){var n,i=e.getUTCHours();switch(n=12===i?x:0===i?y:i/12>=1?"pm":"am",t){case"b":case"bb":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},B:function(e,t,r){var n,i=e.getUTCHours();switch(n=i>=17?_:i>=12?E:i>=4?b:S,t){case"B":case"BB":case"BBB":return r.dayPeriod(n,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(n,{width:"narrow",context:"formatting"});default:return r.dayPeriod(n,{width:"wide",context:"formatting"})}},h:function(e,t,r){if("ho"===t){var n=e.getUTCHours()%12;return 0===n&&(n=12),r.ordinalNumber(n,{unit:"hour"})}return v.h(e,t)},H:function(e,t,r){return"Ho"===t?r.ordinalNumber(e.getUTCHours(),{unit:"hour"}):v.H(e,t)},K:function(e,t,r){var n=e.getUTCHours()%12;return"Ko"===t?r.ordinalNumber(n,{unit:"hour"}):A(n,t.length)},k:function(e,t,r){var n=e.getUTCHours();return 0===n&&(n=24),"ko"===t?r.ordinalNumber(n,{unit:"hour"}):A(n,t.length)},m:function(e,t,r){return"mo"===t?r.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):v.m(e,t)},s:function(e,t,r){return"so"===t?r.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):v.s(e,t)},S:function(e,t){return v.S(e,t)},X:function(e,t,r,n){var i=(n._originalDate||e).getTimezoneOffset();if(0===i)return"Z";switch(t){case"X":return C(i);case"XXXX":case"XX":return T(i);default:return T(i,":")}},x:function(e,t,r,n){var i=(n._originalDate||e).getTimezoneOffset();switch(t){case"x":return C(i);case"xxxx":case"xx":return T(i);default:return T(i,":")}},O:function(e,t,r,n){var i=(n._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+w(i,":");default:return"GMT"+T(i,":")}},z:function(e,t,r,n){var i=(n._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+w(i,":");default:return"GMT"+T(i,":")}},t:function(e,t,r,n){var i=n._originalDate||e;return A(Math.floor(i.getTime()/1e3),t.length)},T:function(e,t,r,n){return A((n._originalDate||e).getTime(),t.length)}};function w(e,t){var r=e>0?"-":"+",n=Math.abs(e),i=Math.floor(n/60),s=n%60;if(0===s)return r+String(i);var a=t||"";return r+String(i)+a+A(s,2)}function C(e,t){return e%60==0?(e>0?"-":"+")+A(Math.abs(e)/60,2):T(e,t)}function T(e,t){var r=t||"",n=e>0?"-":"+",i=Math.abs(e);return n+A(Math.floor(i/60),2)+r+A(i%60,2)}const I=M;var B=function(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},R=function(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},P={p:R,P:function(e,t){var r,n=e.match(/(P+)(p+)?/)||[],i=n[1],s=n[2];if(!s)return B(e,t);switch(i){case"P":r=t.dateTime({width:"short"});break;case"PP":r=t.dateTime({width:"medium"});break;case"PPP":r=t.dateTime({width:"long"});break;default:r=t.dateTime({width:"full"})}return r.replace("{{date}}",B(i,t)).replace("{{time}}",R(s,t))}};const D=P;var L=["D","DD"],F=["YY","YYYY"];function U(e,t,r){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("YY"===e)throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("D"===e)throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if("DD"===e)throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var O={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};const N=function(e,t,r){var n,i=O[e];return n="string"==typeof i?i:1===t?i.one:i.other.replace("{{count}}",t.toString()),null!=r&&r.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n};function k(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.width?String(t.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var G={date:k({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:k({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:k({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})};var z={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function Q(e){return function(t,r){var n;if("formatting"===(null!=r&&r.context?String(r.context):"standalone")&&e.formattingValues){var i=e.defaultFormattingWidth||e.defaultWidth,s=null!=r&&r.width?String(r.width):i;n=e.formattingValues[s]||e.formattingValues[i]}else{var a=e.defaultWidth,o=null!=r&&r.width?String(r.width):e.defaultWidth;n=e.values[o]||e.values[a]}return n[e.argumentCallback?e.argumentCallback(t):t]}}function V(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.width,i=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],s=t.match(i);if(!s)return null;var a,o=s[0],l=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?function(e,t){for(var r=0;r20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},era:Q({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:Q({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return e-1}}),month:Q({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:Q({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:Q({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(H={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.match(H.matchPattern);if(!r)return null;var n=r[0],i=e.match(H.parsePattern);if(!i)return null;var s=H.valueCallback?H.valueCallback(i[0]):i[0];return{value:s=t.valueCallback?t.valueCallback(s):s,rest:e.slice(n.length)}}),era:V({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:V({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:V({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:V({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:V({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};var W=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,X=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Y=/^'([^]*?)'?$/,q=/''/g,K=/[a-zA-Z]/;function J(e,t,r){var n,c,h,u,d,f,m,g,A,v,y,x,b,E,_,S,M,w;i(2,arguments);var C=String(t),T=p(),B=null!==(n=null!==(c=null==r?void 0:r.locale)&&void 0!==c?c:T.locale)&&void 0!==n?n:j,R=o(null!==(h=null!==(u=null!==(d=null!==(f=null==r?void 0:r.firstWeekContainsDate)&&void 0!==f?f:null==r||null===(m=r.locale)||void 0===m||null===(g=m.options)||void 0===g?void 0:g.firstWeekContainsDate)&&void 0!==d?d:T.firstWeekContainsDate)&&void 0!==u?u:null===(A=T.locale)||void 0===A||null===(v=A.options)||void 0===v?void 0:v.firstWeekContainsDate)&&void 0!==h?h:1);if(!(R>=1&&R<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var P=o(null!==(y=null!==(x=null!==(b=null!==(E=null==r?void 0:r.weekStartsOn)&&void 0!==E?E:null==r||null===(_=r.locale)||void 0===_||null===(S=_.options)||void 0===S?void 0:S.weekStartsOn)&&void 0!==b?b:T.weekStartsOn)&&void 0!==x?x:null===(M=T.locale)||void 0===M||null===(w=M.options)||void 0===w?void 0:w.weekStartsOn)&&void 0!==y?y:0);if(!(P>=0&&P<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!B.localize)throw new RangeError("locale must contain localize property");if(!B.formatLong)throw new RangeError("locale must contain formatLong property");var O=s(e);if(!a(O))throw new RangeError("Invalid time value");var N=function(e){var t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),e.getTime()-t.getTime()}(O),k=l(O,N),G={firstWeekContainsDate:R,weekStartsOn:P,locale:B,_originalDate:O};return C.match(X).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,D[t])(e,B.formatLong):e})).join("").match(W).map((function(n){if("''"===n)return"'";var i=n[0];if("'"===i)return function(e){var t=e.match(Y);if(!t)return e;return t[1].replace(q,"'")}(n);var s,a=I[i];if(a)return null!=r&&r.useAdditionalWeekYearTokens||(s=n,-1===F.indexOf(s))||U(n,t,String(e)),null!=r&&r.useAdditionalDayOfYearTokens||!function(e){return-1!==L.indexOf(e)}(n)||U(n,t,String(e)),a(k,n,B.localize,G);if(i.match(K))throw new RangeError("Format string contains an unescaped latin alphabet character `"+i+"`");return n})).join("")}},20296:e=>{function t(e,t,r){var n,i,s,a,o;function l(){var c=Date.now()-a;c=0?n=setTimeout(l,t-c):(n=null,r||(o=e.apply(s,i),s=i=null))}null==t&&(t=100);var c=function(){s=this,i=arguments,a=Date.now();var c=r&&!n;return n||(n=setTimeout(l,t)),c&&(o=e.apply(s,i),s=i=null),o};return c.clear=function(){n&&(clearTimeout(n),n=null)},c.flush=function(){n&&(o=e.apply(s,i),s=i=null,clearTimeout(n),n=null)},c}t.debounce=t,e.exports=t},64063:e=>{"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,i,s;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(i=n;0!=i--;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(s=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(r,s[i]))return!1;for(i=n;0!=i--;){var a=s[i];if(!e(t[a],r[a]))return!1}return!0}return t!=t&&r!=r}},76427:(e,t,r)=>{var n="__lodash_hash_undefined__",i=9007199254740991,s="[object Arguments]",a="[object Function]",o="[object GeneratorFunction]",l="[object Symbol]",c=/^\[object .+?Constructor\]$/,h=/^(?:0|[1-9]\d*)$/,u="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,d="object"==typeof self&&self&&self.Object===Object&&self,p=u||d||Function("return this")();function f(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var i=e.length,s=r+(n?1:-1);for(;n?s--:++s-1}function m(e,t,r){for(var n=-1,i=e?e.length:0;++n0&&r(o)?t>1?W(o,t-1,r,n,i):A(i,o):n||(i[i.length]=o)}return i}function X(e){if(!oe(e)||(t=e,w&&w in t))return!1;var t,r=ae(e)||function(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(r){}return t}(e)?B:c;return r.test(function(e){if(null!=e){try{return C.call(e)}catch(t){}try{return e+""}catch(t){}}return""}(e))}function Y(e){if(!oe(e))return function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}(e);var t,r,n,i=(r=(t=e)&&t.constructor,n="function"==typeof r&&r.prototype||S,t===n),s=[];for(var a in e)("constructor"!=a||!i&&T.call(e,a))&&s.push(a);return s}function q(e){return function(e,t,r){var n=t(e);return ie(e)?n:A(n,r(e))}(e,ce,$)}function K(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function J(e,t){var r=function(e,t){return null==e?void 0:e[t]}(e,t);return X(r)?r:void 0}G.prototype.clear=function(){this.__data__=k?k(null):{}},G.prototype.delete=function(e){return this.has(e)&&delete this.__data__[e]},G.prototype.get=function(e){var t=this.__data__;if(k){var r=t[e];return r===n?void 0:r}return T.call(t,e)?t[e]:void 0},G.prototype.has=function(e){var t=this.__data__;return k?void 0!==t[e]:T.call(t,e)},G.prototype.set=function(e,t){return this.__data__[e]=k&&void 0===t?n:t,this},z.prototype.clear=function(){this.__data__=[]},z.prototype.delete=function(e){var t=this.__data__,r=j(t,e);return!(r<0)&&(r==t.length-1?t.pop():L.call(t,r,1),!0)},z.prototype.get=function(e){var t=this.__data__,r=j(t,e);return r<0?void 0:t[r][1]},z.prototype.has=function(e){return j(this.__data__,e)>-1},z.prototype.set=function(e,t){var r=this.__data__,n=j(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},Q.prototype.clear=function(){this.__data__={hash:new G,map:new(N||z),string:new G}},Q.prototype.delete=function(e){return K(this,e).delete(e)},Q.prototype.get=function(e){return K(this,e).get(e)},Q.prototype.has=function(e){return K(this,e).has(e)},Q.prototype.set=function(e,t){return K(this,e).set(e,t),this},V.prototype.add=V.prototype.push=function(e){return this.__data__.set(e,n),this},V.prototype.has=function(e){return this.__data__.has(e)};var Z=U?x(U,Object):pe,$=U?function(e){for(var t=[];e;)A(t,Z(e)),e=P(e);return t}:pe;function ee(e){return ie(e)||ne(e)||!!(F&&e&&e[F])}function te(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||h.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=i}(e.length)&&!ae(e)}function ae(e){var t=oe(e)?I.call(e):"";return t==a||t==o}function oe(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function le(e){return!!e&&"object"==typeof e}function ce(e){return se(e)?H(e,!0):Y(e)}var he,ue,de=(he=function(e,t){return null==e?{}:(t=g(W(t,1),re),function(e,t){return function(e,t,r){for(var n=-1,i=t.length,s={};++n=200&&(a=y,o=!1,t=new V(t));e:for(;++s{var n=9007199254740991,i="[object Arguments]",s="[object Function]",a="[object GeneratorFunction]",o="[object Symbol]",l="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,c="object"==typeof self&&self&&self.Object===Object&&self,h=l||c||Function("return this")();function u(e,t){for(var r=-1,n=t.length,i=e.length;++r0&&r(o)?t>1?y(o,t-1,r,n,i):u(i,o):n||(i[i.length]=o)}return i}function x(e){return E(e)||function(e){return function(e){return _(e)&&function(e){return null!=e&&function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}(e.length)&&!function(e){var t=function(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}(e)?f.call(e):"";return t==s||t==a}(e)}(e)}(e)&&p.call(e,"callee")&&(!g.call(e,"callee")||f.call(e)==i)}(e)||!!(A&&e&&e[A])}function b(e){if("string"==typeof e||function(e){return"symbol"==typeof e||_(e)&&f.call(e)==o}(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}var E=Array.isArray;function _(e){return!!e&&"object"==typeof e}var S,M,w=(S=function(e,t){return null==e?{}:function(e,t){return function(e,t,r){for(var n=-1,i=t.length,s={};++n{var n=r(79833),i=0;e.exports=function(e){var t=++i;return n(e)+t}},58147:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={root:"root_TTsz",fullWidth:"fullWidth_HBtH",fullHeight:"fullHeight_ls1u",content:"content_feMR",keep:"keep_Y9Ea"}},49933:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={scrollToBottom:"scrollToBottom_NE5w",hide:"hide_q_kn"}},11403:(e,t,r)=>{"use strict";r.r(t)},93255:(e,t,r)=>{"use strict";r.r(t)},77877:(e,t,r)=>{"use strict";r.r(t)},56216:(e,t,r)=>{"use strict";r.r(t)},51928:(e,t,r)=>{"use strict";r.r(t)},8981:(e,t,r)=>{"use strict";r.r(t)},46774:(e,t,r)=>{"use strict";r.r(t)},6420:(e,t,r)=>{"use strict";r.r(t)},34822:(e,t,r)=>{"use strict";r.r(t)},52399:(e,t,r)=>{"use strict";r.r(t)},4061:(e,t,r)=>{"use strict";r.r(t)},95497:(e,t,r)=>{"use strict";r.r(t)},90980:(e,t,r)=>{"use strict";r.r(t)},44429:(e,t,r)=>{"use strict";r.r(t)},94318:(e,t,r)=>{"use strict";r.r(t)},6465:(e,t,r)=>{"use strict";r.r(t)},54627:(e,t,r)=>{"use strict";r.r(t)},84238:(e,t,r)=>{"use strict";r.r(t)},69774:(e,t,r)=>{"use strict";r.r(t)},58918:(e,t,r)=>{"use strict";r.r(t)},91786:(e,t,r)=>{"use strict";r.r(t)},85661:(e,t,r)=>{"use strict";r.r(t)},57255:(e,t,r)=>{"use strict";r.r(t)},30204:(e,t,r)=>{"use strict";r.r(t)},6460:(e,t,r)=>{"use strict";r.r(t)},61588:(e,t,r)=>{"use strict";r.r(t)},92751:(e,t,r)=>{"use strict";r.r(t)},53175:(e,t,r)=>{"use strict";r.r(t)},37477:(e,t,r)=>{"use strict";r.r(t)},11620:(e,t,r)=>{"use strict";r.r(t)},58287:(e,t,r)=>{"use strict";r.r(t)},63428:(e,t,r)=>{"use strict";r.r(t)},36489:(e,t,r)=>{"use strict";r.r(t)},74166:(e,t,r)=>{"use strict";r.r(t)},79832:(e,t,r)=>{"use strict";r.r(t)},92476:(e,t,r)=>{"use strict";r.r(t)},13344:(e,t,r)=>{"use strict";r.r(t)},29188:(e,t,r)=>{"use strict";r.r(t)},63933:(e,t,r)=>{"use strict";r.r(t)},86782:(e,t,r)=>{"use strict";r.r(t)},67287:(e,t,r)=>{(e=r.nmd(e)).exports=function(t){var n={},i=r(27418),s=r(67294),a=r(63840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r--o||i[a]!==s[o])return"\n"+i[a].replace(" at new "," at ")}while(1<=a&&0<=o);break}}}finally{Xe=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?We(e):""}var qe=[],Ke=-1;function Je(e){return{current:e}}function Ze(e){0>Ke||(e.current=qe[Ke],qe[Ke]=null,Ke--)}function $e(e,t){Ke++,qe[Ke]=e.current,e.current=t}var et={},tt=Je(et),rt=Je(!1),nt=et;function it(e,t){var r=e.type.contextTypes;if(!r)return et;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i,s={};for(i in r)s[i]=t[i];return n&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function st(e){return null!=(e=e.childContextTypes)}function at(){Ze(rt),Ze(tt)}function ot(e,t,r){if(tt.current!==et)throw Error(o(168));$e(tt,t),$e(rt,r)}function lt(e,t,r){var n=e.stateNode;if(e=t.childContextTypes,"function"!=typeof n.getChildContext)return r;for(var s in n=n.getChildContext())if(!(s in e))throw Error(o(108,T(t)||"Unknown",s));return i({},r,n)}function ct(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||et,nt=tt.current,$e(tt,e),$e(rt,rt.current),!0}function ht(e,t,r){var n=e.stateNode;if(!n)throw Error(o(169));r?(e=lt(e,t,nt),n.__reactInternalMemoizedMergedChildContext=e,Ze(rt),Ze(tt),$e(tt,e)):Ze(rt),$e(rt,r)}var ut=null,dt=null;(0,a.unstable_now)();var pt=0,ft=8;function mt(e){if(0!=(1&e))return ft=15,1;if(0!=(2&e))return ft=14,2;if(0!=(4&e))return ft=13,4;var t=24&e;return 0!==t?(ft=12,t):0!=(32&e)?(ft=11,32):0!==(t=192&e)?(ft=10,t):0!=(256&e)?(ft=9,256):0!==(t=3584&e)?(ft=8,t):0!=(4096&e)?(ft=7,4096):0!==(t=4186112&e)?(ft=6,t):0!==(t=62914560&e)?(ft=5,t):67108864&e?(ft=4,67108864):0!=(134217728&e)?(ft=3,134217728):0!==(t=805306368&e)?(ft=2,t):0!=(1073741824&e)?(ft=1,1073741824):(ft=8,e)}function gt(e,t){var r=e.pendingLanes;if(0===r)return ft=0;var n=0,i=0,s=e.expiredLanes,a=e.suspendedLanes,o=e.pingedLanes;if(0!==s)n=s,i=ft=15;else if(0!==(s=134217727&r)){var l=s&~a;0!==l?(n=mt(l),i=ft):0!==(o&=s)&&(n=mt(o),i=ft)}else 0!==(s=r&~a)?(n=mt(s),i=ft):0!==o&&(n=mt(o),i=ft);if(0===n)return 0;if(n=r&((0>(n=31-Et(n))?0:1<r;r++)t.push(e);return t}function bt(e,t,r){e.pendingLanes|=t;var n=t-1;e.suspendedLanes&=n,e.pingedLanes&=n,(e=e.eventTimes)[t=31-Et(t)]=r}var Et=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(_t(e)/St|0)|0},_t=Math.log,St=Math.LN2;var Mt=a.unstable_runWithPriority,wt=a.unstable_scheduleCallback,Ct=a.unstable_cancelCallback,Tt=a.unstable_shouldYield,It=a.unstable_requestPaint,Bt=a.unstable_now,Rt=a.unstable_getCurrentPriorityLevel,Pt=a.unstable_ImmediatePriority,Dt=a.unstable_UserBlockingPriority,Lt=a.unstable_NormalPriority,Ft=a.unstable_LowPriority,Ut=a.unstable_IdlePriority,Ot={},Nt=void 0!==It?It:function(){},kt=null,Gt=null,zt=!1,Qt=Bt(),Vt=1e4>Qt?Bt:function(){return Bt()-Qt};function Ht(){switch(Rt()){case Pt:return 99;case Dt:return 98;case Lt:return 97;case Ft:return 96;case Ut:return 95;default:throw Error(o(332))}}function jt(e){switch(e){case 99:return Pt;case 98:return Dt;case 97:return Lt;case 96:return Ft;case 95:return Ut;default:throw Error(o(332))}}function Wt(e,t){return e=jt(e),Mt(e,t)}function Xt(e,t,r){return e=jt(e),wt(e,t,r)}function Yt(){if(null!==Gt){var e=Gt;Gt=null,Ct(e)}qt()}function qt(){if(!zt&&null!==kt){zt=!0;var e=0;try{var t=kt;Wt(99,(function(){for(;ed?(p=u,u=null):p=u.sibling;var f=g(i,u,o[d],l);if(null===f){null===u&&(u=p);break}e&&u&&null===f.alternate&&t(i,u),a=s(f,a,d),null===h?c=f:h.sibling=f,h=f,u=p}if(d===o.length)return r(i,u),c;if(null===u){for(;dp?(f=d,d=null):f=d.sibling;var y=g(i,d,v.value,c);if(null===y){null===d&&(d=f);break}e&&d&&null===y.alternate&&t(i,d),a=s(y,a,p),null===u?h=y:u.sibling=y,u=y,d=f}if(v.done)return r(i,d),h;if(null===d){for(;!v.done;p++,v=l.next())null!==(v=m(i,v.value,c))&&(a=s(v,a,p),null===u?h=v:u.sibling=v,u=v);return h}for(d=n(i,d);!v.done;p++,v=l.next())null!==(v=A(d,i,p,v.value,c))&&(e&&null!==v.alternate&&d.delete(null===v.key?p:v.key),a=s(v,a,p),null===u?h=v:u.sibling=v,u=v);return e&&d.forEach((function(e){return t(i,e)})),h}return function(e,n,s,l){var d="object"==typeof s&&null!==s&&s.type===u&&null===s.key;d&&(s=s.props.children);var p="object"==typeof s&&null!==s;if(p)switch(s.$$typeof){case c:e:{for(p=s.key,d=n;null!==d;){if(d.key===p){if(7===d.tag){if(s.type===u){r(e,d.sibling),(n=i(d,s.props.children)).return=e,e=n;break e}}else if(d.elementType===s.type){r(e,d.sibling),(n=i(d,s.props)).ref=Tr(e,d,s),n.return=e,e=n;break e}r(e,d);break}t(e,d),d=d.sibling}s.type===u?((n=Ma(s.props.children,e.mode,l,s.key)).return=e,e=n):((l=Sa(s.type,s.key,s.props,null,e.mode,l)).ref=Tr(e,n,s),l.return=e,e=l)}return a(e);case h:e:{for(d=s.key;null!==n;){if(n.key===d){if(4===n.tag&&n.stateNode.containerInfo===s.containerInfo&&n.stateNode.implementation===s.implementation){r(e,n.sibling),(n=i(n,s.children||[])).return=e,e=n;break e}r(e,n);break}t(e,n),n=n.sibling}(n=Ta(s,e.mode,l)).return=e,e=n}return a(e)}if("string"==typeof s||"number"==typeof s)return s=""+s,null!==n&&6===n.tag?(r(e,n.sibling),(n=i(n,s)).return=e,e=n):(r(e,n),(n=Ca(s,e.mode,l)).return=e,e=n),a(e);if(Cr(s))return v(e,n,s,l);if(C(s))return y(e,n,s,l);if(p&&Ir(e,s),void 0===s&&!d)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(o(152,T(e.type)||"Component"))}return r(e,n)}}var Rr=Br(!0),Pr=Br(!1),Dr={},Lr=Je(Dr),Fr=Je(Dr),Ur=Je(Dr);function Or(e){if(e===Dr)throw Error(o(174));return e}function Nr(e,t){$e(Ur,t),$e(Fr,e),$e(Lr,Dr),e=U(t),Ze(Lr),$e(Lr,e)}function kr(){Ze(Lr),Ze(Fr),Ze(Ur)}function Gr(e){var t=Or(Ur.current),r=Or(Lr.current);r!==(t=O(r,e.type,t))&&($e(Fr,e),$e(Lr,t))}function zr(e){Fr.current===e&&(Ze(Lr),Ze(Fr))}var Qr=Je(0);function Vr(e){for(var t=e;null!==t;){if(13===t.tag){var r=t.memoizedState;if(null!==r&&(null===(r=r.dehydrated)||Oe(r)||Ne(r)))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Hr=null,jr=null,Wr=!1;function Xr(e,t){var r=ba(5,null,null,0);r.elementType="DELETED",r.type="DELETED",r.stateNode=t,r.return=e,r.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=r,e.lastEffect=r):e.firstEffect=e.lastEffect=r}function Yr(e,t){switch(e.tag){case 5:return null!==(t=Fe(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=Ue(t,e.pendingProps))&&(e.stateNode=t,!0);default:return!1}}function qr(e){if(Wr){var t=jr;if(t){var r=t;if(!Yr(e,t)){if(!(t=ke(r))||!Yr(e,t))return e.flags=-1025&e.flags|2,Wr=!1,void(Hr=e);Xr(Hr,r)}Hr=e,jr=Ge(t)}else e.flags=-1025&e.flags|2,Wr=!1,Hr=e}}function Kr(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Hr=e}function Jr(e){if(!Z||e!==Hr)return!1;if(!Wr)return Kr(e),Wr=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!H(t,e.memoizedProps))for(t=jr;t;)Xr(e,t),t=ke(t);if(Kr(e),13===e.tag){if(!Z)throw Error(o(316));if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));jr=Ve(e)}else jr=Hr?ke(e.stateNode):null;return!0}function Zr(){Z&&(jr=Hr=null,Wr=!1)}var $r=[];function en(){for(var e=0;e<$r.length;e++){var t=$r[e];q?t._workInProgressVersionPrimary=null:t._workInProgressVersionSecondary=null}$r.length=0}var tn=l.ReactCurrentDispatcher,rn=l.ReactCurrentBatchConfig,nn=0,sn=null,an=null,on=null,ln=!1,cn=!1;function hn(){throw Error(o(321))}function un(e,t){if(null===t)return!1;for(var r=0;rs))throw Error(o(301));s+=1,on=an=null,t.updateQueue=null,tn.current=Gn,e=r(n,i)}while(cn)}if(tn.current=On,t=null!==an&&null!==an.next,nn=0,on=an=sn=null,ln=!1,t)throw Error(o(300));return e}function pn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===on?sn.memoizedState=on=e:on=on.next=e,on}function fn(){if(null===an){var e=sn.alternate;e=null!==e?e.memoizedState:null}else e=an.next;var t=null===on?sn.memoizedState:on.next;if(null!==t)on=t,an=e;else{if(null===e)throw Error(o(310));e={memoizedState:(an=e).memoizedState,baseState:an.baseState,baseQueue:an.baseQueue,queue:an.queue,next:null},null===on?sn.memoizedState=on=e:on=on.next=e}return on}function mn(e,t){return"function"==typeof t?t(e):t}function gn(e){var t=fn(),r=t.queue;if(null===r)throw Error(o(311));r.lastRenderedReducer=e;var n=an,i=n.baseQueue,s=r.pending;if(null!==s){if(null!==i){var a=i.next;i.next=s.next,s.next=a}n.baseQueue=i=s,r.pending=null}if(null!==i){i=i.next,n=n.baseState;var l=a=s=null,c=i;do{var h=c.lane;if((nn&h)===h)null!==l&&(l=l.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),n=c.eagerReducer===e?c.eagerState:e(n,c.action);else{var u={lane:h,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};null===l?(a=l=u,s=n):l=l.next=u,sn.lanes|=h,us|=h}c=c.next}while(null!==c&&c!==i);null===l?s=n:l.next=a,Jt(n,t.memoizedState)||(Qn=!0),t.memoizedState=n,t.baseState=s,t.baseQueue=l,r.lastRenderedState=n}return[t.memoizedState,r.dispatch]}function An(e){var t=fn(),r=t.queue;if(null===r)throw Error(o(311));r.lastRenderedReducer=e;var n=r.dispatch,i=r.pending,s=t.memoizedState;if(null!==i){r.pending=null;var a=i=i.next;do{s=e(s,a.action),a=a.next}while(a!==i);Jt(s,t.memoizedState)||(Qn=!0),t.memoizedState=s,null===t.baseQueue&&(t.baseState=s),r.lastRenderedState=s}return[s,n]}function vn(e,t,r){var n=t._getVersion;n=n(t._source);var i=q?t._workInProgressVersionPrimary:t._workInProgressVersionSecondary;if(null!==i?e=i===n:(e=e.mutableReadLanes,(e=(nn&e)===e)&&(q?t._workInProgressVersionPrimary=n:t._workInProgressVersionSecondary=n,$r.push(t))),e)return r(t._source);throw $r.push(t),Error(o(350))}function yn(e,t,r,n){var i=ns;if(null===i)throw Error(o(349));var s=t._getVersion,a=s(t._source),l=tn.current,c=l.useState((function(){return vn(i,t,r)})),h=c[1],u=c[0];c=on;var d=e.memoizedState,p=d.refs,f=p.getSnapshot,m=d.source;d=d.subscribe;var g=sn;return e.memoizedState={refs:p,source:t,subscribe:n},l.useEffect((function(){p.getSnapshot=r,p.setSnapshot=h;var e=s(t._source);if(!Jt(a,e)){e=r(t._source),Jt(u,e)||(h(e),e=Os(g),i.mutableReadLanes|=e&i.pendingLanes),e=i.mutableReadLanes,i.entangledLanes|=e;for(var n=i.entanglements,o=e;0r?98:r,(function(){e(!0)})),Wt(97gs&&(t.flags|=64,i=!0,fi(n,!1),t.lanes=33554432)}else{if(!i)if(null!==(e=Vr(s))){if(t.flags|=64,i=!0,null!==(e=e.updateQueue)&&(t.updateQueue=e,t.flags|=4),fi(n,!0),null===n.tail&&"hidden"===n.tailMode&&!s.alternate&&!Wr)return null!==(t=t.lastEffect=n.lastEffect)&&(t.nextEffect=null),null}else 2*Vt()-n.renderingStartTime>gs&&1073741824!==r&&(t.flags|=64,i=!0,fi(n,!1),t.lanes=33554432);n.isBackwards?(s.sibling=t.child,t.child=s):(null!==(e=n.last)?e.sibling=s:t.child=s,n.last=s)}return null!==n.tail?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.lastEffect=t.lastEffect,n.renderingStartTime=Vt(),e.sibling=null,t=Qr.current,$e(Qr,i?1&t|2:1&t),e):null;case 23:case 24:return Xs(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==n.mode&&(t.flags|=4),null}throw Error(o(156,t.tag))}function gi(e){switch(e.tag){case 1:st(e.type)&&at();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(kr(),Ze(rt),Ze(tt),en(),0!=(64&(t=e.flags)))throw Error(o(285));return e.flags=-4097&t|64,e;case 5:return zr(e),null;case 13:return Ze(Qr),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return Ze(Qr),null;case 4:return kr(),null;case 10:return lr(e),null;case 23:case 24:return Xs(),null;default:return null}}function Ai(e,t){try{var r="",n=t;do{r+=er(n),n=n.return}while(n);var i=r}catch(s){i="\nError generating stack: "+s.message+"\n"+s.stack}return{value:e,source:t,stack:i}}function vi(e,t){try{console.error(t.value)}catch(r){setTimeout((function(){throw r}))}}var yi="function"==typeof WeakMap?WeakMap:Map;function xi(e,t,r){(r=mr(-1,r)).tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){xs||(xs=!0,bs=n),vi(0,t)},r}function bi(e,t,r){(r=mr(-1,r)).tag=3;var n=e.type.getDerivedStateFromError;if("function"==typeof n){var i=t.value;r.payload=function(){return vi(0,t),n(i)}}var s=e.stateNode;return null!==s&&"function"==typeof s.componentDidCatch&&(r.callback=function(){"function"!=typeof n&&(null===Es?Es=new Set([this]):Es.add(this),vi(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),r}var Ei="function"==typeof WeakSet?WeakSet:Set;function _i(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(r){ha(e,r)}else t.current=null}function Si(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var r=e.memoizedProps,n=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?r:tr(t.type,r),n),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(K&&256&t.flags&&Ce(t.stateNode.containerInfo))}throw Error(o(163))}function Mi(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var r=t=t.next;do{if((r.tag&e)===e){var n=r.destroy;r.destroy=void 0,void 0!==n&&n()}r=r.next}while(r!==t)}}function wi(e,t,r){switch(r.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=r.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var n=e.create;e.destroy=n()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=r.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var i=e;n=i.next,0!=(4&(i=i.tag))&&0!=(1&i)&&(oa(r,e),aa(r,e)),e=n}while(e!==t)}return;case 1:return e=r.stateNode,4&r.flags&&(null===t?e.componentDidMount():(n=r.elementType===r.type?t.memoizedProps:tr(r.type,t.memoizedProps),e.componentDidUpdate(n,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=r.updateQueue)&&yr(r,t,e));case 3:if(null!==(t=r.updateQueue)){if(e=null,null!==r.child)switch(r.child.tag){case 5:e=F(r.child.stateNode);break;case 1:e=r.child.stateNode}yr(r,t,e)}return;case 5:return e=r.stateNode,void(null===t&&4&r.flags&&ge(e,r.type,r.memoizedProps,r));case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(Z&&null===r.memoizedState&&(r=r.alternate,null!==r&&(r=r.memoizedState,null!==r&&(r=r.dehydrated,null!==r&&je(r)))))}throw Error(o(163))}function Ci(e,t){if(K)for(var r=e;;){if(5===r.tag){var n=r.stateNode;t?_e(n):Me(r.stateNode,r.memoizedProps)}else if(6===r.tag)n=r.stateNode,t?Se(n):we(n,r.memoizedProps);else if((23!==r.tag&&24!==r.tag||null===r.memoizedState||r===e)&&null!==r.child){r.child.return=r,r=r.child;continue}if(r===e)break;for(;null===r.sibling;){if(null===r.return||r.return===e)return;r=r.return}r.sibling.return=r.return,r=r.sibling}}function Ti(e,t){if(dt&&"function"==typeof dt.onCommitFiberUnmount)try{dt.onCommitFiberUnmount(ut,t)}catch(s){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var r=e=e.next;do{var n=r,i=n.destroy;if(n=n.tag,void 0!==i)if(0!=(4&n))oa(t,r);else{n=t;try{i()}catch(s){ha(n,s)}}r=r.next}while(r!==e)}break;case 1:if(_i(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(s){ha(t,s)}break;case 5:_i(t);break;case 4:K?Fi(e,t):J&&J&&(t=t.stateNode.containerInfo,e=Ie(t),Pe(t,e))}}function Ii(e,t){for(var r=t;;)if(Ti(e,r),null===r.child||K&&4===r.tag){if(r===t)break;for(;null===r.sibling;){if(null===r.return||r.return===t)return;r=r.return}r.sibling.return=r.return,r=r.sibling}else r.child.return=r,r=r.child}function Bi(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function Ri(e){return 5===e.tag||3===e.tag||4===e.tag}function Pi(e){if(K){e:{for(var t=e.return;null!==t;){if(Ri(t))break e;t=t.return}throw Error(o(160))}var r=t;switch(t=r.stateNode,r.tag){case 5:var n=!1;break;case 3:case 4:t=t.containerInfo,n=!0;break;default:throw Error(o(161))}16&r.flags&&(Ee(t),r.flags&=-17);e:t:for(r=e;;){for(;null===r.sibling;){if(null===r.return||Ri(r.return)){r=null;break e}r=r.return}for(r.sibling.return=r.return,r=r.sibling;5!==r.tag&&6!==r.tag&&18!==r.tag;){if(2&r.flags)continue t;if(null===r.child||4===r.tag)continue t;r.child.return=r,r=r.child}if(!(2&r.flags)){r=r.stateNode;break e}}n?Di(e,r,t):Li(e,r,t)}}function Di(e,t,r){var n=e.tag,i=5===n||6===n;if(i)e=i?e.stateNode:e.stateNode.instance,t?ye(r,e,t):fe(r,e);else if(4!==n&&null!==(e=e.child))for(Di(e,t,r),e=e.sibling;null!==e;)Di(e,t,r),e=e.sibling}function Li(e,t,r){var n=e.tag,i=5===n||6===n;if(i)e=i?e.stateNode:e.stateNode.instance,t?ve(r,e,t):pe(r,e);else if(4!==n&&null!==(e=e.child))for(Li(e,t,r),e=e.sibling;null!==e;)Li(e,t,r),e=e.sibling}function Fi(e,t){for(var r,n,i=t,s=!1;;){if(!s){s=i.return;e:for(;;){if(null===s)throw Error(o(160));switch(r=s.stateNode,s.tag){case 5:n=!1;break e;case 3:case 4:r=r.containerInfo,n=!0;break e}s=s.return}s=!0}if(5===i.tag||6===i.tag)Ii(e,i),n?be(r,i.stateNode):xe(r,i.stateNode);else if(4===i.tag){if(null!==i.child){r=i.stateNode.containerInfo,n=!0,i.child.return=i,i=i.child;continue}}else if(Ti(e,i),null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;4===(i=i.return).tag&&(s=!1)}i.sibling.return=i.return,i=i.sibling}}function Ui(e,t){if(K){switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void Mi(3,t);case 1:case 12:case 17:return;case 5:var r=t.stateNode;if(null!=r){var n=t.memoizedProps;e=null!==e?e.memoizedProps:n;var i=t.type,s=t.updateQueue;t.updateQueue=null,null!==s&&Ae(r,s,i,e,n,t)}return;case 6:if(null===t.stateNode)throw Error(o(162));return r=t.memoizedProps,void me(t.stateNode,null!==e?e.memoizedProps:r,r);case 3:return void(Z&&(t=t.stateNode,t.hydrate&&(t.hydrate=!1,He(t.containerInfo))));case 13:return Oi(t),void Ni(t);case 19:return void Ni(t);case 23:case 24:return void Ci(t,null!==t.memoizedState)}throw Error(o(163))}switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void Mi(3,t);case 12:case 23:case 24:return;case 13:return Oi(t),void Ni(t);case 19:return void Ni(t);case 3:Z&&((r=t.stateNode).hydrate&&(r.hydrate=!1,He(r.containerInfo)))}e:if(J){switch(t.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:t=t.stateNode,Pe(t.containerInfo,t.pendingChildren);break e}throw Error(o(163))}}function Oi(e){null!==e.memoizedState&&(ms=Vt(),K&&Ci(e.child,!0))}function Ni(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var r=e.stateNode;null===r&&(r=e.stateNode=new Ei),t.forEach((function(t){var n=da.bind(null,e,t);r.has(t)||(r.add(t),t.then(n,n))}))}}function ki(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Gi=0,zi=1,Qi=2,Vi=3,Hi=4;if("function"==typeof Symbol&&Symbol.for){var ji=Symbol.for;Gi=ji("selector.component"),zi=ji("selector.has_pseudo_class"),Qi=ji("selector.role"),Vi=ji("selector.test_id"),Hi=ji("selector.text")}function Wi(e){var t=$(e);if(null!=t){if("string"!=typeof t.memoizedProps["data-testname"])throw Error(o(364));return t}if(null===(e=ae(e)))throw Error(o(362));return e.stateNode.current}function Xi(e,t){switch(t.$$typeof){case Gi:if(e.type===t.value)return!0;break;case zi:e:{t=t.value,e=[e,0];for(var r=0;r";case zi:return":has("+(Yi(e)||"")+")";case Qi:return'[role="'+e.value+'"]';case Hi:return'"'+e.value+'"';case Vi:return'[data-testname="'+e.value+'"]';default:throw Error(o(365,e))}}function qi(e,t){var r=[];e=[e,0];for(var n=0;ni&&(i=a),r&=~s}if(r=i,10<(r=(120>(r=Vt()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Zi(r/1960))-r)){e.timeoutHandle=W(ra.bind(null,e),r);break}ra(e);break;default:throw Error(o(329))}}return Gs(e,Vt()),e.callbackNode===t?zs.bind(null,e):null}function Qs(e,t){for(t&=~ps,t&=~ds,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0 component higher in the tree to provide a loading indicator or placeholder to display.")}5!==ls&&(ls=2),l=Ai(l,o),d=a;do{switch(d.tag){case 3:s=l,d.flags|=4096,t&=-t,d.lanes|=t,Ar(d,xi(0,s,t));break e;case 1:s=l;var b=d.type,E=d.stateNode;if(0==(64&d.flags)&&("function"==typeof b.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Es||!Es.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,Ar(d,bi(d,s,t));break e}}d=d.return}while(null!==d)}ta(r)}catch(_){t=_,is===r&&null!==r&&(is=r=r.return);continue}break}}function Ks(){var e=$i.current;return $i.current=On,null===e?On:e}function Js(e,t){var r=rs;rs|=16;var n=Ks();for(ns===e&&ss===t||Ys(e,t);;)try{Zs();break}catch(i){qs(e,i)}if(ar(),rs=r,$i.current=n,null!==is)throw Error(o(261));return ns=null,ss=0,ls}function Zs(){for(;null!==is;)ea(is)}function $s(){for(;null!==is&&!Tt();)ea(is)}function ea(e){var t=vs(e.alternate,e,as);e.memoizedProps=e.pendingProps,null===t?ta(e):is=t,es.current=null}function ta(e){var t=e;do{var r=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(r=mi(r,t,as)))return void(is=r);if(24!==(r=t).tag&&23!==r.tag||null===r.memoizedState||0!=(1073741824&as)||0==(4&r.mode)){for(var n=0,i=r.child;null!==i;)n|=i.lanes|i.childLanes,i=i.sibling;r.childLanes=n}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1Vt()-ms?Ys(e,0):ps|=r),Gs(e,t)}function da(e,t){var r=e.stateNode;null!==r&&r.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Ht()?1:2:(0===Ps&&(Ps=hs),0===(t=yt(62914560&~Ps))&&(t=4194304))),r=Us(),null!==(e=ks(e,t))&&(bt(e,t,r),Gs(e,r))}vs=function(e,t,r){var n=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||rt.current)Qn=!0;else{if(0==(r&n)){switch(Qn=!1,t.tag){case 3:Zn(t),Zr();break;case 5:Gr(t);break;case 1:st(t.type)&&ct(t);break;case 4:Nr(t,t.stateNode.containerInfo);break;case 10:or(t,t.memoizedProps.value);break;case 13:if(null!==t.memoizedState)return 0!=(r&t.child.childLanes)?ii(e,t,r):($e(Qr,1&Qr.current),null!==(t=ui(e,t,r))?t.sibling:null);$e(Qr,1&Qr.current);break;case 19:if(n=0!=(r&t.childLanes),0!=(64&e.flags)){if(n)return hi(e,t,r);t.flags|=64}var i=t.memoizedState;if(null!==i&&(i.rendering=null,i.tail=null,i.lastEffect=null),$e(Qr,Qr.current),n)break;return null;case 23:case 24:return t.lanes=0,Xn(e,t,r)}return ui(e,t,r)}Qn=0!=(16384&e.flags)}else Qn=!1;switch(t.lanes=0,t.tag){case 2:if(n=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=it(t,tt.current),hr(t,r),i=dn(null,t,n,e,i,r),t.flags|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,st(n)){var s=!0;ct(t)}else s=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,pr(t);var a=n.getDerivedStateFromProps;"function"==typeof a&&br(t,n,a,e),i.updater=Er,t.stateNode=i,i._reactInternals=t,wr(t,n,e,r),t=Jn(null,t,n,!0,s,r)}else t.tag=0,Vn(null,t,i,r),t=t.child;return t;case 16:i=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=(s=i._init)(i._payload),t.type=i,s=t.tag=function(e){if("function"==typeof e)return Ea(e)?1:0;if(null!=e){if((e=e.$$typeof)===g)return 11;if(e===y)return 14}return 2}(i),e=tr(i,e),s){case 0:t=qn(null,t,i,e,r);break e;case 1:t=Kn(null,t,i,e,r);break e;case 11:t=Hn(null,t,i,e,r);break e;case 14:t=jn(null,t,i,tr(i.type,e),n,r);break e}throw Error(o(306,i,""))}return t;case 0:return n=t.type,i=t.pendingProps,qn(e,t,n,i=t.elementType===n?i:tr(n,i),r);case 1:return n=t.type,i=t.pendingProps,Kn(e,t,n,i=t.elementType===n?i:tr(n,i),r);case 3:if(Zn(t),n=t.updateQueue,null===e||null===n)throw Error(o(282));if(n=t.pendingProps,i=null!==(i=t.memoizedState)?i.element:null,fr(e,t),vr(t,n,null,r),(n=t.memoizedState.element)===i)Zr(),t=ui(e,t,r);else{if((s=(i=t.stateNode).hydrate)&&(Z?(jr=Ge(t.stateNode.containerInfo),Hr=t,s=Wr=!0):s=!1),s){if(Z&&null!=(e=i.mutableSourceEagerHydrationData))for(i=0;i=h&&s>=d&&i<=u&&a<=p){e.splice(t,1);break}if(!(n!==h||r.width!==c.width||pa)){d>s&&(c.height+=d-s,c.y=s),pi)){h>n&&(c.width+=h-n,c.x=n),ur&&(r=a)),a ")+"\n\nNo matching component was found for:\n "+e.join(" > ")}return null},n.getPublicRootInstance=function(e){return(e=e.current).child?5===e.child.tag?F(e.child.stateNode):e.child.stateNode:null},n.injectIntoDevTools=function(e){if(e={bundleType:e.bundleType,version:e.version,rendererPackageName:e.rendererPackageName,rendererConfig:e.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:l.ReactCurrentDispatcher,findHostInstanceByFiber:Da,findFiberByHostInstance:e.findFiberByHostInstance||La,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!t.isDisabled&&t.supportsFiber)try{ut=t.inject(e),dt=t}catch(r){}e=!0}return e},n.observeVisibleRects=function(e,t,r,n){if(!se)throw Error(o(363));e=Ki(e,t);var i=de(e,r,n).disconnect;return{disconnect:function(){i()}}},n.registerMutableSourceForHydration=function(e,t){var r=t._getVersion;r=r(t._source),null==e.mutableSourceEagerHydrationData?e.mutableSourceEagerHydrationData=[t,r]:e.mutableSourceEagerHydrationData.push(t,r)},n.runWithPriority=function(e,t){var r=pt;try{return pt=e,t()}finally{pt=r}},n.shouldSuspend=function(){return!1},n.unbatchedUpdates=function(e,t){var r=rs;rs&=-2,rs|=8;try{return e(t)}finally{0===(rs=r)&&(As(),Yt())}},n.updateContainer=function(e,t,r,n){var i=t.current,s=Us(),a=Os(i);e:if(r){t:{if(I(r=r._reactInternals)!==r||1!==r.tag)throw Error(o(170));var l=r;do{switch(l.tag){case 3:l=l.stateNode.context;break t;case 1:if(st(l.type)){l=l.stateNode.__reactInternalMemoizedMergedChildContext;break t}}l=l.return}while(null!==l);throw Error(o(171))}if(1===r.tag){var c=r.type;if(st(c)){r=lt(r,c,l);break e}}r=l}else r=et;return null===t.context?t.context=r:t.pendingContext=r,(t=mr(s,a)).payload={element:e},null!==(n=void 0===n?null:n)&&(t.callback=n),gr(i,t),Ns(i,a,s),a},n}},76525:(e,t,r)=>{"use strict";e.exports=r(67287)},73466:function(e){var t;e.exports=((t=function(){function e(e){return i.appendChild(e.dom),e}function r(e){for(var t=0;ta+1e3&&(l.update(1e3*o/(e-a),100),a=e,o=0,h)){var t=performance.memory;h.update(t.usedJSHeapSize/1048576,t.jsHeapSizeLimit/1048576)}return e},update:function(){s=this.end()},domElement:i,setMode:r}}).Panel=function(e,t,r){var n=1/0,i=0,s=Math.round,a=s(window.devicePixelRatio||1),o=80*a,l=48*a,c=3*a,h=2*a,u=3*a,d=15*a,p=74*a,f=30*a,m=document.createElement("canvas");m.width=o,m.height=l,m.style.cssText="width:80px;height:48px";var g=m.getContext("2d");return g.font="bold "+9*a+"px Helvetica,Arial,sans-serif",g.textBaseline="top",g.fillStyle=r,g.fillRect(0,0,o,l),g.fillStyle=t,g.fillText(e,c,h),g.fillRect(u,d,p,f),g.fillStyle=r,g.globalAlpha=.9,g.fillRect(u,d,p,f),{dom:m,update:function(l,A){n=Math.min(n,l),i=Math.max(i,l),g.fillStyle=r,g.globalAlpha=1,g.fillRect(0,0,o,d),g.fillStyle=t,g.fillText(s(l)+" "+e+" ("+s(n)+"-"+s(i)+")",c,h),g.drawImage(m,u+a,d,p-a,f,u,d,p-a,f),g.fillRect(u+p-a,d,a,f),g.fillStyle=r,g.globalAlpha=.9,g.fillRect(u+p-a,d,a,s((1-l/A)*f))}}},t)},14671:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var n=r(67294);function i(e){let t;const r=new Set,n=(e,n)=>{const i="function"==typeof e?e(t):e;if(i!==t){const e=t;t=n?i:Object.assign({},t,i),r.forEach((r=>r(t,e)))}},i=()=>t,s={setState:n,getState:i,subscribe:(e,n,s)=>n||s?((e,n=i,s=Object.is)=>{console.warn("[DEPRECATED] Please use `subscribeWithSelector` middleware");let a=n(t);function o(){const r=n(t);if(!s(a,r)){const t=a;e(a=r,t)}}return r.add(o),()=>r.delete(o)})(e,n,s):(r.add(e),()=>r.delete(e)),destroy:()=>r.clear()};return t=e(n,i,s),s}const s="undefined"==typeof window||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent)?n.useEffect:n.useLayoutEffect;function a(e){const t="function"==typeof e?i(e):e,r=(e=t.getState,r=Object.is)=>{const[,i]=(0,n.useReducer)((e=>e+1),0),a=t.getState(),o=(0,n.useRef)(a),l=(0,n.useRef)(e),c=(0,n.useRef)(r),h=(0,n.useRef)(!1),u=(0,n.useRef)();let d;void 0===u.current&&(u.current=e(a));let p=!1;(o.current!==a||l.current!==e||c.current!==r||h.current)&&(d=e(a),p=!r(u.current,d)),s((()=>{p&&(u.current=d),o.current=a,l.current=e,c.current=r,h.current=!1}));const f=(0,n.useRef)(a);s((()=>{const e=()=>{try{const e=t.getState(),r=l.current(e);c.current(u.current,r)||(o.current=e,u.current=r,i())}catch(e){h.current=!0,i()}},r=t.subscribe(e);return t.getState()!==f.current&&e(),r}),[]);const m=p?d:u.current;return(0,n.useDebugValue)(m),m};return Object.assign(r,t),r[Symbol.iterator]=function(){console.warn("[useStore, api] = create() is deprecated and will be removed in v4");const e=[r,t];return{next(){const t=e.length<=0;return{value:e.shift(),done:t}}}},r}},60374:(e,t,r)=>{"use strict";function n(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(let n=0;nn})},8083:(e,t,r)=>{"use strict";var n=r(45928),i=Uint8Array,s=Uint16Array,a=Uint32Array,o=new i([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),l=new i([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),c=new i([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),h=function(e,t){for(var r=new s(31),n=0;n<31;++n)r[n]=t+=1<>>1|(21845&v)<<1;y=(61680&(y=(52428&y)>>>2|(13107&y)<<2))>>>4|(3855&y)<<4,A[v]=((65280&y)>>>8|(255&y)<<8)>>>1}var x=function(e,t,r){for(var n=e.length,i=0,a=new s(t);i>>c]=h}else for(o=new s(n),i=0;i>>15-e[i]);return o},b=new i(288);for(v=0;v<144;++v)b[v]=8;for(v=144;v<256;++v)b[v]=9;for(v=256;v<280;++v)b[v]=7;for(v=280;v<288;++v)b[v]=8;var E=new i(32);for(v=0;v<32;++v)E[v]=5;var _=x(b,9,0),S=x(b,9,1),M=x(E,5,0),w=x(E,5,1),C=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},T=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<<8)>>(7&t)&r},I=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<<16)>>(7&t)},B=function(e){return(e/8|0)+(7&e&&1)},R=function(e,t,r){(null==t||t<0)&&(t=0),(null==r||r>e.length)&&(r=e.length);var n=new(e instanceof s?s:e instanceof a?a:i)(r-t);return n.set(e.subarray(t,r)),n},P=function(e,t,r){var n=e.length;if(!n||r&&!r.l&&n<5)return t||new i(0);var s=!t||r,a=!r||r.i;r||(r={}),t||(t=new i(3*n));var h=function(e){var r=t.length;if(e>r){var n=new i(Math.max(2*r,e));n.set(t),t=n}},u=r.f||0,p=r.p||0,f=r.b||0,g=r.l,A=r.d,v=r.m,y=r.n,b=8*n;do{if(!g){r.f=u=T(e,p,1);var E=T(e,p+1,3);if(p+=3,!E){var _=e[(z=B(p)+4)-4]|e[z-3]<<8,M=z+_;if(M>n){if(a)throw"unexpected EOF";break}s&&h(f+_),t.set(e.subarray(z,M),f),r.b=f+=_,r.p=p=8*M;continue}if(1==E)g=S,A=w,v=9,y=5;else{if(2!=E)throw"invalid block type";var P=T(e,p,31)+257,D=T(e,p+10,15)+4,L=P+T(e,p+5,31)+1;p+=14;for(var F=new i(L),U=new i(19),O=0;O>>4)<16)F[O++]=z;else{var V=0,H=0;for(16==z?(H=3+T(e,p,3),p+=2,V=F[O-1]):17==z?(H=3+T(e,p,7),p+=3):18==z&&(H=11+T(e,p,127),p+=7);H--;)F[O++]=V}}var j=F.subarray(0,P),W=F.subarray(P);v=C(j),y=C(W),g=x(j,v,1),A=x(W,y,1)}if(p>b){if(a)throw"unexpected EOF";break}}s&&h(f+131072);for(var X=(1<>>4;if((p+=15&V)>b){if(a)throw"unexpected EOF";break}if(!V)throw"invalid length/literal";if(K<256)t[f++]=K;else{if(256==K){q=p,g=null;break}var J=K-254;if(K>264){var Z=o[O=K-257];J=T(e,p,(1<>>4;if(!$)throw"invalid distance";p+=15&$;W=m[ee];if(ee>3){Z=l[ee];W+=I(e,p)&(1<b){if(a)throw"unexpected EOF";break}s&&h(f+131072);for(var te=f+J;f>>8},L=function(e,t,r){r<<=7&t;var n=t/8|0;e[n]|=r,e[n+1]|=r>>>8,e[n+2]|=r>>>16},F=function(e,t){for(var r=[],n=0;nf&&(f=o[n].s);var m=new s(f+1),g=U(r[d-1],m,0);if(g>t){n=0;var A=0,v=g-t,y=1<t))break;A+=y-(1<>>=v;A>0;){var b=o[n].s;m[b]=0&&A;--n){var E=o[n].s;m[E]==t&&(--m[E],++A)}g=t}return[new i(m),g]},U=function(e,t,r){return-1==e.s?Math.max(U(e.l,t,r+1),U(e.r,t,r+1)):t[e.s]=r},O=function(e){for(var t=e.length;t&&!e[--t];);for(var r=new s(++t),n=0,i=e[0],a=1,o=function(e){r[n++]=e},l=1;l<=t;++l)if(e[l]==i&&l!=t)++a;else{if(!i&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(i),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(i);a=1,i=e[l]}return[r.subarray(0,n),t]},N=function(e,t){for(var r=0,n=0;n>>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var s=0;s4&&!z[c[V-1]];--V);var H,j,W,X,Y=p+5<<3,q=N(i,b)+N(a,E)+h,K=N(i,g)+N(a,y)+h+14+3*V+N(P,z)+(2*P[16]+3*P[17]+7*P[18]);if(Y<=q&&Y<=K)return k(t,f,e.subarray(d,d+p));if(D(t,f,1+(K15&&(D(t,f,ee[U]>>>5&127),f+=ee[U]>>>12)}}}else H=_,j=b,W=M,X=E;for(U=0;U255){te=n[U]>>>18&31;L(t,f,H[te+257]),f+=j[te+257],te>7&&(D(t,f,n[U]>>>23&31),f+=o[te]);var re=31&n[U];L(t,f,W[re]),f+=X[re],re>3&&(L(t,f,n[U]>>>5&8191),f+=l[re])}else L(t,f,H[n[U]]),f+=j[n[U]];return L(t,f,H[256]),f+j[256]},z=new a([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Q=new i(0),V=function(e,t,r,n,c,h){var u=e.length,d=new i(n+u+5*(1+Math.ceil(u/7e3))+c),f=d.subarray(n,d.length-c),m=0;if(!t||u<8)for(var A=0;A<=u;A+=65535){var v=A+65535;v>>13,b=8191&y,E=(1<7e3||F>24576)&&j>423){m=G(e,f,0,T,I,P,L,F,O,A-O,m),F=D=L=0,O=A;for(var W=0;W<286;++W)I[W]=0;for(W=0;W<30;++W)P[W]=0}var X=2,Y=0,q=b,K=V-H&32767;if(j>2&&N==C(A-K))for(var J=Math.min(x,j)-1,Z=Math.min(32767,A),$=Math.min(258,j);K<=Z&&--q&&V!=H;){if(e[A+X]==e[A+X-K]){for(var ee=0;ee<$&&e[A+ee]==e[A+ee-K];++ee);if(ee>X){if(X=ee,Y=K,ee>J)break;var te=Math.min(K,ee-2),re=0;for(W=0;Wre&&(re=ie,H=ne)}}}K+=(V=H)-(H=_[V])+32768&32767}if(Y){T[F++]=268435456|p[X]<<18|g[Y];var se=31&p[X],ae=31&g[Y];L+=o[se]+l[ae],++I[257+se],++P[ae],U=A+X,++D}else T[F++]=e[A],++I[e[A]]}}m=G(e,f,h,T,I,P,L,F,O,A-O,m),!h&&7&m&&(m=k(f,m+1,Q))}return R(d,0,n+B(m)+c)},H=function(){for(var e=new Int32Array(256),t=0;t<256;++t){for(var r=t,n=9;--n;)r=(1&r&&-306674912)^r>>>1;e[t]=r}return e}(),j=function(){var e=-1;return{p:function(t){for(var r=e,n=0;n>>8;e=r},d:function(){return~e}}},W=function(){var e=1,t=0;return{p:function(r){for(var n=e,i=t,s=r.length,a=0;a!=s;){for(var o=Math.min(a+2655,s);a>16),i=(65535&i)+15*(i>>16)}e=n,t=i},d:function(){return(255&(e%=65521))<<24|e>>>8<<16|(255&(t%=65521))<<8|t>>>8}}},X=function(e,t,r,n,i){return V(e,null==t.level?6:t.level,null==t.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,r,n,!i)},Y=function(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r},q=function(e,t,r){for(var n=e(),i=e.toString(),s=i.slice(i.indexOf("[")+1,i.lastIndexOf("]")).replace(/ /g,"").split(","),a=0;a>>0},ue=function(e,t){return he(e,t)+4294967296*he(e,t+4)},de=function(e,t,r){for(;r;++t)e[t]=r,r>>>=8},pe=function(e,t){var r=t.filename;if(e[0]=31,e[1]=139,e[2]=8,e[8]=t.level<2?4:9==t.level?2:0,e[9]=3,0!=t.mtime&&de(e,4,Math.floor(new Date(t.mtime||Date.now())/1e3)),r){e[3]=8;for(var n=0;n<=r.length;++n)e[n+10]=r.charCodeAt(n)}},fe=function(e){if(31!=e[0]||139!=e[1]||8!=e[2])throw"invalid gzip data";var t=e[3],r=10;4&t&&(r+=e[10]|2+(e[11]<<8));for(var n=(t>>3&1)+(t>>4&1);n>0;n-=!e[r++]);return r+(2&t)},me=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0},ge=function(e){return 10+(e.filename&&e.filename.length+1||0)},Ae=function(e,t){var r=t.level,n=0==r?0:r<6?1:9==r?3:2;e[0]=120,e[1]=n<<6|(n?32-2*n:1)},ve=function(e){if(8!=(15&e[0])||e[0]>>>4>7||(e[0]<<8|e[1])%31)throw"invalid zlib data";if(32&e[1])throw"invalid zlib data: preset dictionaries not supported"};function ye(e,t){return t||"function"!=typeof e||(t=e,e={}),this.ondata=t,e}var xe=function(){function e(e,t){t||"function"!=typeof e||(t=e,e={}),this.ondata=t,this.o=e||{}}return e.prototype.p=function(e,t){this.ondata(X(e,this.o,0,0,!t),t)},e.prototype.push=function(e,t){if(this.d)throw"stream finished";if(!this.ondata)throw"no stream handler";this.d=t,this.p(e,t||!1)},e}();t.Deflate=xe;var be=function(){return function(e,t){le([$,function(){return[oe,xe]}],this,ye.call(this,e,t),(function(e){var t=new xe(e.data);onmessage=oe(t)}),6)}}();function Ee(e,t,r){if(r||(r=t,t={}),"function"!=typeof r)throw"no callback";return ae(e,t,[$],(function(e){return ie(_e(e.data[0],e.data[1]))}),0,r)}function _e(e,t){return X(e,t||{},0,0)}t.AsyncDeflate=be,t.deflate=Ee,t.deflateSync=_e;var Se=function(){function e(e){this.s={},this.p=new i(0),this.ondata=e}return e.prototype.e=function(e){if(this.d)throw"stream finished";if(!this.ondata)throw"no stream handler";var t=this.p.length,r=new i(t+e.length);r.set(this.p),r.set(e,t),this.p=r},e.prototype.c=function(e){this.d=this.s.i=e||!1;var t=this.s.b,r=P(this.p,this.o,this.s);this.ondata(R(r,t,this.s.b),this.d),this.o=R(r,this.s.b-32768),this.s.b=this.o.length,this.p=R(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}();t.Inflate=Se;var Me=function(){return function(e){this.ondata=e,le([Z,function(){return[oe,Se]}],this,0,(function(){var e=new Se;onmessage=oe(e)}),7)}}();function we(e,t,r){if(r||(r=t,t={}),"function"!=typeof r)throw"no callback";return ae(e,t,[Z],(function(e){return ie(Ce(e.data[0],se(e.data[1])))}),1,r)}function Ce(e,t){return P(e,t)}t.AsyncInflate=Me,t.inflate=we,t.inflateSync=Ce;var Te=function(){function e(e,t){this.c=j(),this.l=0,this.v=1,xe.call(this,e,t)}return e.prototype.push=function(e,t){xe.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e),this.l+=e.length;var r=X(e,this.o,this.v&&ge(this.o),t&&8,!t);this.v&&(pe(r,this.o),this.v=0),t&&(de(r,r.length-8,this.c.d()),de(r,r.length-4,this.l)),this.ondata(r,t)},e}();t.Gzip=Te,t.Compress=Te;var Ie=function(){return function(e,t){le([$,ee,function(){return[oe,xe,Te]}],this,ye.call(this,e,t),(function(e){var t=new Te(e.data);onmessage=oe(t)}),8)}}();function Be(e,t,r){if(r||(r=t,t={}),"function"!=typeof r)throw"no callback";return ae(e,t,[$,ee,function(){return[Re]}],(function(e){return ie(Re(e.data[0],e.data[1]))}),2,r)}function Re(e,t){t||(t={});var r=j(),n=e.length;r.p(e);var i=X(e,t,ge(t),8),s=i.length;return pe(i,t),de(i,s-8,r.d()),de(i,s-4,n),i}t.AsyncGzip=Ie,t.AsyncCompress=Ie,t.gzip=Be,t.compress=Be,t.gzipSync=Re,t.compressSync=Re;var Pe=function(){function e(e){this.v=1,Se.call(this,e)}return e.prototype.push=function(e,t){if(Se.prototype.e.call(this,e),this.v){var r=this.p.length>3?fe(this.p):4;if(r>=this.p.length&&!t)return;this.p=this.p.subarray(r),this.v=0}if(t){if(this.p.length<8)throw"invalid gzip stream";this.p=this.p.subarray(0,-8)}Se.prototype.c.call(this,t)},e}();t.Gunzip=Pe;var De=function(){return function(e){this.ondata=e,le([Z,te,function(){return[oe,Se,Pe]}],this,0,(function(){var e=new Pe;onmessage=oe(e)}),9)}}();function Le(e,t,r){if(r||(r=t,t={}),"function"!=typeof r)throw"no callback";return ae(e,t,[Z,te,function(){return[Fe]}],(function(e){return ie(Fe(e.data[0]))}),3,r)}function Fe(e,t){return P(e.subarray(fe(e),-8),t||new i(me(e)))}t.AsyncGunzip=De,t.gunzip=Le,t.gunzipSync=Fe;var Ue=function(){function e(e,t){this.c=W(),this.v=1,xe.call(this,e,t)}return e.prototype.push=function(e,t){xe.prototype.push.call(this,e,t)},e.prototype.p=function(e,t){this.c.p(e);var r=X(e,this.o,this.v&&2,t&&4,!t);this.v&&(Ae(r,this.o),this.v=0),t&&de(r,r.length-4,this.c.d()),this.ondata(r,t)},e}();t.Zlib=Ue;var Oe=function(){return function(e,t){le([$,re,function(){return[oe,xe,Ue]}],this,ye.call(this,e,t),(function(e){var t=new Ue(e.data);onmessage=oe(t)}),10)}}();function Ne(e,t){t||(t={});var r=W();r.p(e);var n=X(e,t,2,4);return Ae(n,t),de(n,n.length-4,r.d()),n}t.AsyncZlib=Oe,t.zlib=function(e,t,r){if(r||(r=t,t={}),"function"!=typeof r)throw"no callback";return ae(e,t,[$,re,function(){return[Ne]}],(function(e){return ie(Ne(e.data[0],e.data[1]))}),4,r)},t.zlibSync=Ne;var ke=function(){function e(e){this.v=1,Se.call(this,e)}return e.prototype.push=function(e,t){if(Se.prototype.e.call(this,e),this.v){if(this.p.length<2&&!t)return;this.p=this.p.subarray(2),this.v=0}if(t){if(this.p.length<4)throw"invalid zlib stream";this.p=this.p.subarray(0,-4)}Se.prototype.c.call(this,t)},e}();t.Unzlib=ke;var Ge=function(){return function(e){this.ondata=e,le([Z,ne,function(){return[oe,Se,ke]}],this,0,(function(){var e=new ke;onmessage=oe(e)}),11)}}();function ze(e,t,r){if(r||(r=t,t={}),"function"!=typeof r)throw"no callback";return ae(e,t,[Z,ne,function(){return[Qe]}],(function(e){return ie(Qe(e.data[0],se(e.data[1])))}),5,r)}function Qe(e,t){return P((ve(e),e.subarray(2,-4)),t)}t.AsyncUnzlib=Ge,t.unzlib=ze,t.unzlibSync=Qe;var Ve=function(){function e(e){this.G=Pe,this.I=Se,this.Z=ke,this.ondata=e}return e.prototype.push=function(e,t){if(!this.ondata)throw"no stream handler";if(this.s)this.s.push(e,t);else{if(this.p&&this.p.length){var r=new i(this.p.length+e.length);r.set(this.p),r.set(e,this.p.length)}else this.p=e;if(this.p.length>2){var n=this,s=function(){n.ondata.apply(n,arguments)};this.s=31==this.p[0]&&139==this.p[1]&&8==this.p[2]?new this.G(s):8!=(15&this.p[0])||this.p[0]>>4>7||(this.p[0]<<8|this.p[1])%31?new this.I(s):new this.Z(s),this.s.push(this.p,t),this.p=null}}},e}();t.Decompress=Ve;var He=function(){function e(e){this.G=De,this.I=Me,this.Z=Ge,this.ondata=e}return e.prototype.push=function(e,t){Ve.prototype.push.call(this,e,t)},e}();t.AsyncDecompress=He,t.decompress=function(e,t,r){if(r||(r=t,t={}),"function"!=typeof r)throw"no callback";return 31==e[0]&&139==e[1]&&8==e[2]?Le(e,t,r):8!=(15&e[0])||e[0]>>4>7||(e[0]<<8|e[1])%31?we(e,t,r):ze(e,t,r)},t.decompressSync=function(e,t){return 31==e[0]&&139==e[1]&&8==e[2]?Fe(e,t):8!=(15&e[0])||e[0]>>4>7||(e[0]<<8|e[1])%31?Ce(e,t):Qe(e,t)};var je=function(e,t,r,n){for(var s in e){var a=e[s],o=t+s;a instanceof i?r[o]=[a,n]:Array.isArray(a)?r[o]=[a[0],Y(n,a[1])]:je(a,o+"/",r,n)}},We="undefined"!=typeof TextEncoder&&new TextEncoder,Xe="undefined"!=typeof TextDecoder&&new TextDecoder,Ye=0;try{Xe.decode(Q,{stream:!0}),Ye=1}catch(mt){}var qe=function(e){for(var t="",r=0;;){var n=e[r++],i=(n>127)+(n>223)+(n>239);if(r+i>e.length)return[t,R(e,r-1)];i?3==i?(n=((15&n)<<18|(63&e[r++])<<12|(63&e[r++])<<6|63&e[r++])-65536,t+=String.fromCharCode(55296|n>>10,56320|1023&n)):t+=1&i?String.fromCharCode((31&n)<<6|63&e[r++]):String.fromCharCode((15&n)<<12|(63&e[r++])<<6|63&e[r++]):t+=String.fromCharCode(n)}},Ke=function(){function e(e){this.ondata=e,Ye?this.t=new TextDecoder:this.p=Q}return e.prototype.push=function(e,t){if(!this.ondata)throw"no callback";if(t=!!t,this.t){if(this.ondata(this.t.decode(e,{stream:!0}),t),t){if(this.t.decode().length)throw"invalid utf-8 data";this.t=null}}else{if(!this.p)throw"stream finished";var r=new i(this.p.length+e.length);r.set(this.p),r.set(e,this.p.length);var n=qe(r),s=n[0],a=n[1];if(t){if(a.length)throw"invalid utf-8 data";this.p=null}else this.p=a;this.ondata(s,t)}},e}();t.DecodeUTF8=Ke;var Je=function(){function e(e){this.ondata=e}return e.prototype.push=function(e,t){if(!this.ondata)throw"no callback";if(this.d)throw"stream finished";this.ondata(Ze(e),this.d=t||!1)},e}();function Ze(e,t){if(t){for(var r=new i(e.length),n=0;n>1)),o=0,l=function(e){a[o++]=e};for(n=0;na.length){var c=new i(o+8+(s-n<<1));c.set(a),a=c}var h=e.charCodeAt(n);h<128||t?l(h):h<2048?(l(192|h>>6),l(128|63&h)):h>55295&&h<57344?(l(240|(h=65536+(1047552&h)|1023&e.charCodeAt(++n))>>18),l(128|h>>12&63),l(128|h>>6&63),l(128|63&h)):(l(224|h>>12),l(128|h>>6&63),l(128|63&h))}return R(a,0,o)}function $e(e,t){if(t){for(var r="",n=0;n65535)throw"extra field too long";t+=n+4}return t},st=function(e,t,r,n,i,s,a,o){var l=n.length,c=r.extra,h=o&&o.length,u=it(c);de(e,t,null!=a?33639248:67324752),t+=4,null!=a&&(e[t++]=20,e[t++]=r.os),e[t]=20,t+=2,e[t++]=r.flag<<1|(null==s&&8),e[t++]=i&&8,e[t++]=255&r.compression,e[t++]=r.compression>>8;var d=new Date(null==r.mtime?Date.now():r.mtime),p=d.getFullYear()-1980;if(p<0||p>119)throw"date not in range 1980-2099";if(de(e,t,p<<25|d.getMonth()+1<<21|d.getDate()<<16|d.getHours()<<11|d.getMinutes()<<5|d.getSeconds()>>>1),t+=4,null!=s&&(de(e,t,r.crc),de(e,t+4,s),de(e,t+8,r.size)),de(e,t+12,l),de(e,t+14,u),t+=16,null!=a&&(de(e,t,h),de(e,t+6,r.attrs),de(e,t+10,a),t+=14),e.set(n,t),t+=l,u)for(var f in c){var m=c[f],g=m.length;de(e,t,+f),de(e,t+2,g),e.set(m,t+4),t+=4+g}return h&&(e.set(o,t),t+=h),t},at=function(e,t,r,n,i){de(e,t,101010256),de(e,t+8,r),de(e,t+10,r),de(e,t+12,n),de(e,t+16,i)},ot=function(){function e(e){this.filename=e,this.c=j(),this.size=0,this.compression=0}return e.prototype.process=function(e,t){this.ondata(null,e,t)},e.prototype.push=function(e,t){if(!this.ondata)throw"no callback - add to ZIP archive before pushing";this.c.p(e),this.size+=e.length,t&&(this.crc=this.c.d()),this.process(e,t||!1)},e}();t.ZipPassThrough=ot;var lt=function(){function e(e,t){var r=this;t||(t={}),ot.call(this,e),this.d=new xe(t,(function(e,t){r.ondata(null,e,t)})),this.compression=8,this.flag=et(t.level)}return e.prototype.process=function(e,t){try{this.d.push(e,t)}catch(mt){this.ondata(mt,null,t)}},e.prototype.push=function(e,t){ot.prototype.push.call(this,e,t)},e}();t.ZipDeflate=lt;var ct=function(){function e(e,t){var r=this;t||(t={}),ot.call(this,e),this.d=new be(t,(function(e,t,n){r.ondata(e,t,n)})),this.compression=8,this.flag=et(t.level),this.terminate=this.d.terminate}return e.prototype.process=function(e,t){this.d.push(e,t)},e.prototype.push=function(e,t){ot.prototype.push.call(this,e,t)},e}();t.AsyncZipDeflate=ct;var ht=function(){function e(e){this.ondata=e,this.u=[],this.d=1}return e.prototype.add=function(e){var t=this;if(2&this.d)throw"stream finished";var r=Ze(e.filename),n=r.length,s=e.comment,a=s&&Ze(s),o=n!=e.filename.length||a&&s.length!=a.length,l=n+it(e.extra)+30;if(n>65535)throw"filename too long";var c=new i(l);st(c,0,e,r,o);var h=[c],u=function(){for(var e=0,r=h;e65535&&S("filename too long",null),_)if(g<16e4)try{S(null,_e(c,f))}catch(mt){S(mt,null)}else u.push(Ee(c,f,S));else S(null,c)},m=0;m65535)throw"filename too long";var A=u?_e(c,h):c,v=A.length,y=j();y.p(c),n.push(Y(h,{size:c.length,crc:y.d(),c:A,f:S,m:f,u:d!=o.length||f&&p.length!=m,o:s,compression:u})),s+=30+d+g+v,a+=76+2*(d+g)+(m||0)+v}for(var x=new i(a+22),b=s,E=a-s,_=0;_0){var n=Math.min(this.c,e.length),s=e.subarray(0,n);if(this.c-=n,this.d?this.d.push(s,!this.c):this.k[0].push(s),(e=e.subarray(n)).length)return this.push(e,t)}else{var a=0,o=0,l=void 0,c=void 0;this.p.length?e.length?((c=new i(this.p.length+e.length)).set(this.p),c.set(e,this.p.length)):c=this.p:c=e;for(var h=c.length,u=this.c,d=u&&this.d,p=function(){var e,t=he(c,o);if(67324752==t){a=1,l=o,f.d=null,f.c=0;var n=ce(c,o+6),i=ce(c,o+8),s=2048&n,d=8&n,p=ce(c,o+26),m=ce(c,o+28);if(h>o+30+p+m){var g=[];f.k.unshift(g),a=2;var A,v=he(c,o+18),y=he(c,o+22),x=$e(c.subarray(o+30,o+=30+p),!s);4294967295==v?(e=d?[-2]:nt(c,o),v=e[0],y=e[1]):d&&(v=-1),o+=m,f.c=v;var b={name:x,compression:i,start:function(){if(!b.ondata)throw"no callback";if(v){var e=r.o[i];if(!e)throw"unknown compression type "+i;(A=v<0?new e(x):new e(x,v,y)).ondata=function(e,t,r){b.ondata(e,t,r)};for(var t=0,n=g;t=0&&(b.size=v,b.originalSize=y),f.onfile(b)}return"break"}if(u){if(134695760==t)return l=o+=12+(-2==u&&8),a=3,f.c=0,"break";if(33639248==t)return l=o-=4,a=3,f.c=0,"break"}},f=this;o65558)return void t("invalid zip file",null);var o=ce(e,a+8);o||t(null,{});var l=o,c=he(e,a+16),h=4294967295==c;if(h){if(a=he(e,a-12),101075792!=he(e,a))return void t("invalid zip file",null);l=o=he(e,a+32),c=he(e,a+48)}for(var u=function(l){var u=rt(e,c,h),d=u[0],p=u[1],f=u[2],m=u[3],g=u[4],A=u[5],v=tt(e,A);c=g;var y=function(e,r){e?(n(),t(e,null)):(s[m]=r,--o||t(null,s))};if(d)if(8==d){var x=e.subarray(v,v+p);if(p<32e4)try{y(null,Ce(x,new i(f)))}catch(a){y(a,null)}else r.push(we(x,{size:f},y))}else y("unknown compression type "+d,null);else y(null,R(e,v,v+p))},d=0;d65558)throw"invalid zip file";var n=ce(e,r+8);if(!n)return{};var s=he(e,r+16),a=4294967295==s;if(a){if(r=he(e,r-12),101075792!=he(e,r))throw"invalid zip file";n=he(e,r+32),s=he(e,r+48)}for(var o=0;o{"use strict";var r={};t.default=function(e,t,n,i,s){var a=new Worker(r[t]||(r[t]=URL.createObjectURL(new Blob([e],{type:"text/javascript"}))));return a.onerror=function(e){return s(e.error,null)},a.onmessage=function(e){return s(null,e.data)},a.postMessage(n,i),a}},31649:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.LatheGeometry{constructor(e=1,t=1,r=4,i=8){const s=new n.Path;s.absarc(0,-t/2,e,1.5*Math.PI,0),s.absarc(0,t/2,e,0,.5*Math.PI),super(s.getPoints(r),i),this.type="CapsuleGeometry",this.parameters={radius:e,height:t,capSegments:r,radialSegments:i}}static fromJSON(e){return new i(e.radius,e.length,e.capSegments,e.radialSegments)}}t.CapsuleGeometry=i},84951:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.CompressedTexture{constructor(e,t,r,i,s,a){super(e,t,r,s,a),this.isCompressedArrayTexture=!0,this.image.depth=i,this.wrapR=n.ClampToEdgeWrapping}}t.CompressedArrayTexture=i},79836:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Texture{constructor(e=null,t=1,r=1,i=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:r,depth:i},this.magFilter=n.NearestFilter,this.minFilter=n.NearestFilter,this.wrapR=n.ClampToEdgeWrapping,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}t.Data3DTexture=i},65236:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=parseInt(n.REVISION.replace(/\D+/g,""));t.version=i},83713:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.AnimationClipCreator=class{static CreateRotationAnimation(e,t="x"){const r=[0,e],i=".rotation["+t+"]",s=new n.NumberKeyframeTrack(i,r,[0,360]);return new n.AnimationClip(null,e,[s])}static CreateScaleAxisAnimation(e,t="x"){const r=[0,e],i=".scale["+t+"]",s=new n.NumberKeyframeTrack(i,r,[0,1]);return new n.AnimationClip(null,e,[s])}static CreateShakeAnimation(e,t){const r=[],i=[],s=new n.Vector3;for(let n=0;n<10*e;n++)r.push(n/10),s.set(2*Math.random()-1,2*Math.random()-1,2*Math.random()-1).multiply(t).toArray(i,i.length);const a=new n.VectorKeyframeTrack(".position",r,i);return new n.AnimationClip(null,e,[a])}static CreatePulsationAnimation(e,t){const r=[],i=[],s=new n.Vector3;for(let n=0;n<10*e;n++){r.push(n/10);const e=Math.random()*t;s.set(e,e,e).toArray(i,i.length)}const a=new n.VectorKeyframeTrack(".scale",r,i);return new n.AnimationClip(null,e,[a])}static CreateVisibilityAnimation(e){const t=[0,e/2,e],r=new n.BooleanKeyframeTrack(".visible",t,[!0,!1,!0]);return new n.AnimationClip(null,e,[r])}static CreateMaterialColorAnimation(e,t){const r=[],i=[],s=e/t.length;for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Quaternion,s=new n.Vector3,a=new n.Vector3,o=new n.Vector3,l=new n.Vector3,c=new n.Vector3,h=new n.Quaternion,u=new n.Vector3,d=new n.Vector3,p=new n.Vector3,f=new n.Matrix4;function m(e,t){return p.setFromMatrixPosition(e.matrixWorld).applyMatrix4(t)}function g(e,t,r,n){const i=m(r,n);e[3*t+0]=i.x,e[3*t+1]=i.y,e[3*t+2]=i.z}class A extends n.Object3D{constructor(e,t=[],r=.25){super(),this.root=e,this.iks=t,this.matrix.copy(e.matrixWorld),this.matrixAutoUpdate=!1,this.sphereGeometry=new n.SphereGeometry(r,16,8),this.targetSphereMaterial=new n.MeshBasicMaterial({color:new n.Color(16746632),depthTest:!1,depthWrite:!1,transparent:!0}),this.effectorSphereMaterial=new n.MeshBasicMaterial({color:new n.Color(8978312),depthTest:!1,depthWrite:!1,transparent:!0}),this.linkSphereMaterial=new n.MeshBasicMaterial({color:new n.Color(8947967),depthTest:!1,depthWrite:!1,transparent:!0}),this.lineMaterial=new n.LineBasicMaterial({color:new n.Color(16711680),depthTest:!1,depthWrite:!1,transparent:!0}),this._init()}updateMatrixWorld(e){const t=this.root;if(this.visible){let e=0;const r=this.iks,n=t.skeleton.bones;f.copy(t.matrixWorld).invert();for(let t=0,i=r.length;t1?b=1:b<-1&&(b=-1),b=r.acos(b),!(b<1e-5)){if(void 0!==e.minAngle&&be.maxAngle&&(b=e.maxAngle),d.crossVectors(l,a),d.normalize(),i.setFromAxisAngle(d,b),A.quaternion.multiply(i),void 0!==v){let e=A.quaternion.w;e>1&&(e=1);const t=r.sqrt(1-e*e);A.quaternion.set(v.x*t,v.y*t,v.z*t,e)}void 0!==y&&A.rotation.setFromVector3(p.setFromEuler(A.rotation).max(y)),void 0!==x&&A.rotation.setFromVector3(p.setFromEuler(A.rotation).min(x)),A.updateMatrixWorld(!0),f=!0}}if(!f)break}return this}createHelper(){return new A(this.mesh,this.iks)}_valid(){const e=this.iks,t=this.mesh.skeleton.bones;for(let r=0,n=e.length;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(69457),s=r(36217);const a=[];let o=0;const l=new Map;function c(e,t,r,i){const s=e.skeleton.bones,h=e.geometry.userData.MMD.bones[t],u=s[t];if(l.has(t))return;const d=(o>=a.length&&a.push(new n.Quaternion),a[o++]);if(l.set(t,d.copy(u.quaternion)),i&&h.grant&&!h.grant.isLocal&&h.grant.affectRotation){const t=h.grant.parentIndex,n=h.grant.ratio;l.has(t)||c(e,t,r,i),i.addGrantRotation(u,l.get(t),n)}if(r&&h.ik){e.updateMatrixWorld(!0),r.updateOne(h.ik);const t=h.ik.links;for(let e=0,r=t.length;e=this.duration;)this.currentTime-=this.duration;return!(this.currentTimethis.audioDuration)}_shouldStopAudio(){return this.audio.isPlaying&&this.currentTime>=this.duration}}const u=new n.Quaternion;class d{constructor(e,t=[]){this.mesh=e,this.grants=t}update(){const e=this.grants;for(let t=0,r=e.length;t=0)throw new Error("THREE.MMDAnimationHelper._addMesh: SkinnedMesh '"+e.name+"' has already been added.");return this.meshes.push(e),this.objects.set(e,{looped:!1}),this._setupMeshAnimation(e,t.animation),!1!==t.physics&&this._setupMeshPhysics(e,t),this}_setupCamera(e,t){if(this.camera===e)throw new Error("THREE.MMDAnimationHelper._setupCamera: Camera '"+e.name+"' has already been set.");return this.camera&&this.clearCamera(this.camera),this.camera=e,e.add(this.cameraTarget),this.objects.set(e,{}),void 0!==t.animation&&this._setupCameraAnimation(e,t.animation),this}_setupAudio(e,t){if(this.audio===e)throw new Error("THREE.MMDAnimationHelper._setupAudio: Audio '"+e.name+"' has already been set.");return this.audio&&this.clearAudio(this.audio),this.audio=e,this.audioManager=new h(e,t),this.objects.set(this.audioManager,{duration:this.audioManager.duration}),this}_removeMesh(e){let t=!1,r=0;for(let n=0,i=this.meshes.length;n0&&".bones"!==t[0].name.slice(0,6)||(r.looped=!0)}))}return r.ikSolver=this._createCCDIKSolver(e),r.grantSolver=this.createGrantSolver(e),this}_setupCameraAnimation(e,t){const r=Array.isArray(t)?t:[t],i=this.objects.get(e);i.mixer=new n.AnimationMixer(e);for(let n=0,s=r.length;n0)}}}_createCCDIKSolver(e){if(void 0===i.CCDIKSolver)throw new Error("THREE.MMDAnimationHelper: Import CCDIKSolver.");return new i.CCDIKSolver(e,e.geometry.userData.MMD.iks)}_createMMDPhysics(e,t){if(void 0===s.MMDPhysics)throw new Error("THREE.MMDPhysics: Import MMDPhysics.");return new s.MMDPhysics(e,e.geometry.userData.MMD.rigidBodies,e.geometry.userData.MMD.constraints,t)}_syncDuration(){let e=0;const t=this.objects,r=this.meshes,n=this.camera,i=this.audioManager;for(let s=0,a=r.length;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(31649);class s{constructor(){this.threeVector3s=[],this.threeMatrix4s=[],this.threeQuaternions=[],this.threeEulers=[],this.transforms=[],this.quaternions=[],this.vector3s=[]}allocThreeVector3(){return this.threeVector3s.length>0?this.threeVector3s.pop():new n.Vector3}freeThreeVector3(e){this.threeVector3s.push(e)}allocThreeMatrix4(){return this.threeMatrix4s.length>0?this.threeMatrix4s.pop():new n.Matrix4}freeThreeMatrix4(e){this.threeMatrix4s.push(e)}allocThreeQuaternion(){return this.threeQuaternions.length>0?this.threeQuaternions.pop():new n.Quaternion}freeThreeQuaternion(e){this.threeQuaternions.push(e)}allocThreeEuler(){return this.threeEulers.length>0?this.threeEulers.pop():new n.Euler}freeThreeEuler(e){this.threeEulers.push(e)}allocTransform(){return this.transforms.length>0?this.transforms.pop():new Ammo.btTransform}freeTransform(e){this.transforms.push(e)}allocQuaternion(){return this.quaternions.length>0?this.quaternions.pop():new Ammo.btQuaternion}freeQuaternion(e){this.quaternions.push(e)}allocVector3(){return this.vector3s.length>0?this.vector3s.pop():new Ammo.btVector3}freeVector3(e){this.vector3s.push(e)}setIdentity(e){e.setIdentity()}getBasis(e){var t=this.allocQuaternion();return e.getBasis().getRotation(t),t}getBasisAsMatrix3(e){var t=this.getBasis(e),r=this.quaternionToMatrix3(t);return this.freeQuaternion(t),r}getOrigin(e){return e.getOrigin()}setOrigin(e,t){e.getOrigin().setValue(t.x(),t.y(),t.z())}copyOrigin(e,t){var r=t.getOrigin();this.setOrigin(e,r)}setBasis(e,t){e.setRotation(t)}setBasisFromMatrix3(e,t){var r=this.matrix3ToQuaternion(t);this.setBasis(e,r),this.freeQuaternion(r)}setOriginFromArray3(e,t){e.getOrigin().setValue(t[0],t[1],t[2])}setOriginFromThreeVector3(e,t){e.getOrigin().setValue(t.x,t.y,t.z)}setBasisFromArray3(e,t){var r=this.allocThreeQuaternion(),n=this.allocThreeEuler();n.set(t[0],t[1],t[2]),this.setBasisFromThreeQuaternion(e,r.setFromEuler(n)),this.freeThreeEuler(n),this.freeThreeQuaternion(r)}setBasisFromThreeQuaternion(e,t){var r=this.allocQuaternion();r.setX(t.x),r.setY(t.y),r.setZ(t.z),r.setW(t.w),this.setBasis(e,r),this.freeQuaternion(r)}multiplyTransforms(e,t){var r=this.allocTransform();this.setIdentity(r);var n=this.getBasisAsMatrix3(e),i=this.getBasisAsMatrix3(t),s=this.getOrigin(e),a=this.getOrigin(t),o=this.multiplyMatrix3ByVector3(n,a),l=this.addVector3(o,s);this.setOrigin(r,l);var c=this.multiplyMatrices3(n,i);return this.setBasisFromMatrix3(r,c),this.freeVector3(o),this.freeVector3(l),r}inverseTransform(e){var t=this.allocTransform(),r=this.getBasisAsMatrix3(e),n=this.getOrigin(e),i=this.transposeMatrix3(r),s=this.negativeVector3(n),a=this.multiplyMatrix3ByVector3(i,s);return this.setOrigin(t,a),this.setBasisFromMatrix3(t,i),this.freeVector3(s),this.freeVector3(a),t}multiplyMatrices3(e,t){var r=[],n=this.rowOfMatrix3(e,0),i=this.rowOfMatrix3(e,1),s=this.rowOfMatrix3(e,2),a=this.columnOfMatrix3(t,0),o=this.columnOfMatrix3(t,1),l=this.columnOfMatrix3(t,2);return r[0]=this.dotVectors3(n,a),r[1]=this.dotVectors3(n,o),r[2]=this.dotVectors3(n,l),r[3]=this.dotVectors3(i,a),r[4]=this.dotVectors3(i,o),r[5]=this.dotVectors3(i,l),r[6]=this.dotVectors3(s,a),r[7]=this.dotVectors3(s,o),r[8]=this.dotVectors3(s,l),this.freeVector3(n),this.freeVector3(i),this.freeVector3(s),this.freeVector3(a),this.freeVector3(o),this.freeVector3(l),r}addVector3(e,t){var r=this.allocVector3();return r.setValue(e.x()+t.x(),e.y()+t.y(),e.z()+t.z()),r}dotVectors3(e,t){return e.x()*t.x()+e.y()*t.y()+e.z()*t.z()}rowOfMatrix3(e,t){var r=this.allocVector3();return r.setValue(e[3*t+0],e[3*t+1],e[3*t+2]),r}columnOfMatrix3(e,t){var r=this.allocVector3();return r.setValue(e[t+0],e[t+3],e[t+6]),r}negativeVector3(e){var t=this.allocVector3();return t.setValue(-e.x(),-e.y(),-e.z()),t}multiplyMatrix3ByVector3(e,t){var r=this.allocVector3(),n=this.rowOfMatrix3(e,0),i=this.rowOfMatrix3(e,1),s=this.rowOfMatrix3(e,2),a=this.dotVectors3(n,t),o=this.dotVectors3(i,t),l=this.dotVectors3(s,t);return r.setValue(a,o,l),this.freeVector3(n),this.freeVector3(i),this.freeVector3(s),r}transposeMatrix3(e){var t=[];return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t}quaternionToMatrix3(e){var t=[],r=e.x(),n=e.y(),i=e.z(),s=e.w(),a=r*r,o=n*n,l=i*i,c=r*n,h=n*i,u=i*r,d=r*s,p=n*s,f=i*s;return t[0]=1-2*(o+l),t[1]=2*(c-f),t[2]=2*(u+p),t[3]=2*(c+f),t[4]=1-2*(l+a),t[5]=2*(h-d),t[6]=2*(u-p),t[7]=2*(h+d),t[8]=1-2*(a+o),t}matrix3ToQuaternion(e){var t,r,n,i,s,a=e[0]+e[4]+e[8];a>0?(s=.25*(t=2*Math.sqrt(a+1)),r=(e[7]-e[5])/t,n=(e[2]-e[6])/t,i=(e[3]-e[1])/t):e[0]>e[4]&&e[0]>e[8]?(t=2*Math.sqrt(1+e[0]-e[4]-e[8]),s=(e[7]-e[5])/t,r=.25*t,n=(e[1]+e[3])/t,i=(e[2]+e[6])/t):e[4]>e[8]?(t=2*Math.sqrt(1+e[4]-e[0]-e[8]),s=(e[2]-e[6])/t,r=(e[1]+e[3])/t,n=.25*t,i=(e[5]+e[7])/t):(t=2*Math.sqrt(1+e[8]-e[0]-e[4]),s=(e[3]-e[1])/t,r=(e[2]+e[6])/t,n=(e[5]+e[7])/t,i=.25*t);var o=this.allocQuaternion();return o.setX(r),o.setY(n),o.setZ(i),o.setW(s),o}}class a{constructor(e,t,r,n){this.mesh=e,this.world=t,this.params=r,this.manager=n,this.body=null,this.bone=null,this.boneOffsetForm=null,this.boneOffsetFormInverse=null,this._init()}reset(){return this._setTransformFromBone(),this}updateFromBone(){return-1!==this.params.boneIndex&&0===this.params.type&&this._setTransformFromBone(),this}updateBone(){return 0===this.params.type||-1===this.params.boneIndex||(this._updateBoneRotation(),1===this.params.type&&this._updateBonePosition(),this.bone.updateMatrixWorld(!0),2===this.params.type&&this._setPositionFromBone()),this}_init(){const e=this.manager,t=this.params,r=this.mesh.skeleton.bones,i=-1===t.boneIndex?new n.Bone:r[t.boneIndex],s=function(e){switch(e.shapeType){case 0:return new Ammo.btSphereShape(e.width);case 1:return new Ammo.btBoxShape(new Ammo.btVector3(e.width,e.height,e.depth));case 2:return new Ammo.btCapsuleShape(e.width,e.height);default:throw new Error("unknown shape type "+e.shapeType)}}(t),a=0===t.type?0:t.weight,o=e.allocVector3();o.setValue(0,0,0),0!==a&&s.calculateLocalInertia(a,o);const l=e.allocTransform();e.setIdentity(l),e.setOriginFromArray3(l,t.position),e.setBasisFromArray3(l,t.rotation);const c=e.allocThreeVector3(),h=e.allocTransform();e.setIdentity(h),e.setOriginFromThreeVector3(h,i.getWorldPosition(c));const u=e.multiplyTransforms(h,l),d=new Ammo.btDefaultMotionState(u),p=new Ammo.btRigidBodyConstructionInfo(a,d,s,o);p.set_m_friction(t.friction),p.set_m_restitution(t.restitution);const f=new Ammo.btRigidBody(p);0===t.type&&(f.setCollisionFlags(2|f.getCollisionFlags()),f.setActivationState(4)),f.setDamping(t.positionDamping,t.rotationDamping),f.setSleepingThresholds(0,0),this.world.addRigidBody(f,1<this.maxStepNum&&(n=this.maxStepNum),this.world.stepSimulation(r,n,t)}_updateRigidBodies(){for(let e=0,t=this.bodies.length;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(67971);class s extends n.PerspectiveCamera{constructor(e,t,r,s){super(e,t,r,s),this.type="CinematicCamera",this.postprocessing={enabled:!0},this.shaderSettings={rings:3,samples:4};const a=i.BokehDepthShader;this.materialDepth=new n.ShaderMaterial({uniforms:a.uniforms,vertexShader:a.vertexShader,fragmentShader:a.fragmentShader}),this.materialDepth.uniforms.mNear.value=r,this.materialDepth.uniforms.mFar.value=s,this.setLens(),this.initPostProcessing()}setLens(e,t,r,n){void 0===e&&(e=35),void 0!==t&&(this.filmGauge=t),this.setFocalLength(e),void 0===r&&(r=8),void 0===n&&(n=.019),this.fNumber=r,this.coc=n,this.aperture=e/this.fNumber,this.hyperFocal=e*e/(this.aperture*this.coc)}linearize(e){const t=this.far,r=this.near;return-t*r/(e*(t-r)-t)}smoothstep(e,t,r){const n=this.saturate((r-e)/(t-e));return n*n*(3-2*n)}saturate(e){return Math.max(0,Math.min(1,e))}focusAt(e){void 0===e&&(e=20);const t=this.getFocalLength();this.focus=e,this.nearPoint=this.hyperFocal*this.focus/(this.hyperFocal+(this.focus-t)),this.farPoint=this.hyperFocal*this.focus/(this.hyperFocal-(this.focus-t)),this.depthOfField=this.farPoint-this.nearPoint,this.depthOfField<0&&(this.depthOfField=0),this.sdistance=this.smoothstep(this.near,this.far,this.focus),this.ldistance=this.linearize(1-this.sdistance),this.postprocessing.bokeh_uniforms.focalDepth.value=this.ldistance}initPostProcessing(){if(this.postprocessing.enabled){this.postprocessing.scene=new n.Scene,this.postprocessing.camera=new n.OrthographicCamera(window.innerWidth/-2,window.innerWidth/2,window.innerHeight/2,window.innerHeight/-2,-1e4,1e4),this.postprocessing.scene.add(this.postprocessing.camera),this.postprocessing.rtTextureDepth=new n.WebGLRenderTarget(window.innerWidth,window.innerHeight),this.postprocessing.rtTextureColor=new n.WebGLRenderTarget(window.innerWidth,window.innerHeight);const e=i.BokehShader2;this.postprocessing.bokeh_uniforms=n.UniformsUtils.clone(e.uniforms),this.postprocessing.bokeh_uniforms.tColor.value=this.postprocessing.rtTextureColor.texture,this.postprocessing.bokeh_uniforms.tDepth.value=this.postprocessing.rtTextureDepth.texture,this.postprocessing.bokeh_uniforms.manualdof.value=0,this.postprocessing.bokeh_uniforms.shaderFocus.value=0,this.postprocessing.bokeh_uniforms.fstop.value=2.8,this.postprocessing.bokeh_uniforms.showFocus.value=1,this.postprocessing.bokeh_uniforms.focalDepth.value=.1,this.postprocessing.bokeh_uniforms.znear.value=this.near,this.postprocessing.bokeh_uniforms.zfar.value=this.near,this.postprocessing.bokeh_uniforms.textureWidth.value=window.innerWidth,this.postprocessing.bokeh_uniforms.textureHeight.value=window.innerHeight,this.postprocessing.materialBokeh=new n.ShaderMaterial({uniforms:this.postprocessing.bokeh_uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,defines:{RINGS:this.shaderSettings.rings,SAMPLES:this.shaderSettings.samples,DEPTH_PACKING:1}}),this.postprocessing.quad=new n.Mesh(new n.PlaneGeometry(window.innerWidth,window.innerHeight),this.postprocessing.materialBokeh),this.postprocessing.quad.position.z=-500,this.postprocessing.scene.add(this.postprocessing.quad)}}renderCinematic(e,t){if(this.postprocessing.enabled){const r=t.getRenderTarget();t.clear(),e.overrideMaterial=null,t.setRenderTarget(this.postprocessing.rtTextureColor),t.clear(),t.render(e,this),e.overrideMaterial=this.materialDepth,t.setRenderTarget(this.postprocessing.rtTextureDepth),t.clear(),t.render(e,this),t.setRenderTarget(null),t.render(this.postprocessing.scene,this.postprocessing.camera),t.setRenderTarget(r)}}}t.CinematicCamera=s},22845:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a={IDLE:Symbol(),ROTATE:Symbol(),PAN:Symbol(),SCALE:Symbol(),FOV:Symbol(),FOCUS:Symbol(),ZROTATE:Symbol(),TOUCH_MULTI:Symbol(),ANIMATION_FOCUS:Symbol(),ANIMATION_ROTATE:Symbol()},o={NONE:Symbol(),ONE_FINGER:Symbol(),ONE_FINGER_SWITCHED:Symbol(),TWO_FINGER:Symbol(),MULT_FINGER:Symbol(),CURSOR:Symbol()},l={x:0,y:0},c={camera:new s.Matrix4,gizmos:new s.Matrix4},h={type:"change"},u={type:"start"},d={type:"end"};class p extends s.EventDispatcher{constructor(e,t=null,r=null){super(),i(this,"camera"),i(this,"domElement"),i(this,"scene"),i(this,"mouseActions"),i(this,"_mouseOp"),i(this,"_v2_1"),i(this,"_v3_1"),i(this,"_v3_2"),i(this,"_m4_1"),i(this,"_m4_2"),i(this,"_quat"),i(this,"_translationMatrix"),i(this,"_rotationMatrix"),i(this,"_scaleMatrix"),i(this,"_rotationAxis"),i(this,"_cameraMatrixState"),i(this,"_cameraProjectionState"),i(this,"_fovState"),i(this,"_upState"),i(this,"_zoomState"),i(this,"_nearPos"),i(this,"_farPos"),i(this,"_gizmoMatrixState"),i(this,"_up0"),i(this,"_zoom0"),i(this,"_fov0"),i(this,"_initialNear"),i(this,"_nearPos0"),i(this,"_initialFar"),i(this,"_farPos0"),i(this,"_cameraMatrixState0"),i(this,"_gizmoMatrixState0"),i(this,"_button"),i(this,"_touchStart"),i(this,"_touchCurrent"),i(this,"_input"),i(this,"_switchSensibility"),i(this,"_startFingerDistance"),i(this,"_currentFingerDistance"),i(this,"_startFingerRotation"),i(this,"_currentFingerRotation"),i(this,"_devPxRatio"),i(this,"_downValid"),i(this,"_nclicks"),i(this,"_downEvents"),i(this,"_clickStart"),i(this,"_maxDownTime"),i(this,"_maxInterval"),i(this,"_posThreshold"),i(this,"_movementThreshold"),i(this,"_currentCursorPosition"),i(this,"_startCursorPosition"),i(this,"_grid"),i(this,"_gridPosition"),i(this,"_gizmos"),i(this,"_curvePts"),i(this,"_timeStart"),i(this,"_animationId"),i(this,"focusAnimationTime"),i(this,"_timePrev"),i(this,"_timeCurrent"),i(this,"_anglePrev"),i(this,"_angleCurrent"),i(this,"_cursorPosPrev"),i(this,"_cursorPosCurr"),i(this,"_wPrev"),i(this,"_wCurr"),i(this,"adjustNearFar"),i(this,"scaleFactor"),i(this,"dampingFactor"),i(this,"wMax"),i(this,"enableAnimations"),i(this,"enableGrid"),i(this,"cursorZoom"),i(this,"minFov"),i(this,"maxFov"),i(this,"enabled"),i(this,"enablePan"),i(this,"enableRotate"),i(this,"enableZoom"),i(this,"minDistance"),i(this,"maxDistance"),i(this,"minZoom"),i(this,"maxZoom"),i(this,"target"),i(this,"_currentTarget"),i(this,"_tbRadius"),i(this,"_state"),i(this,"onWindowResize",(()=>{const e=(this._gizmos.scale.x+this._gizmos.scale.y+this._gizmos.scale.z)/3;if(this.camera){const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e)}const t=this._tbRadius/e,r=new s.EllipseCurve(0,0,t,t).getPoints(this._curvePts),n=(new s.BufferGeometry).setFromPoints(r);for(const i in this._gizmos.children){this._gizmos.children[i].geometry=n}this.dispatchEvent(h)})),i(this,"onContextMenu",(e=>{if(this.enabled)for(let t=0;t{this._touchStart.splice(0,this._touchStart.length),this._touchCurrent.splice(0,this._touchCurrent.length),this._input=o.NONE})),i(this,"onPointerDown",(e=>{if(0==e.button&&e.isPrimary?(this._downValid=!0,this._downEvents.push(e)):this._downValid=!1,"touch"==e.pointerType&&this._input!=o.CURSOR)switch(this._touchStart.push(e),this._touchCurrent.push(e),this._input){case o.NONE:this._input=o.ONE_FINGER,this.onSinglePanStart(e,"ROTATE"),window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp);break;case o.ONE_FINGER:case o.ONE_FINGER_SWITCHED:this._input=o.TWO_FINGER,this.onRotateStart(),this.onPinchStart(),this.onDoublePanStart();break;case o.TWO_FINGER:this._input=o.MULT_FINGER,this.onTriplePanStart()}else if("touch"!=e.pointerType&&this._input==o.NONE){let t=null;e.ctrlKey||e.metaKey?t="CTRL":e.shiftKey&&(t="SHIFT"),this._mouseOp=this.getOpFromAction(e.button,t),this._mouseOp&&(window.addEventListener("pointermove",this.onPointerMove),window.addEventListener("pointerup",this.onPointerUp),this._input=o.CURSOR,this._button=e.button,this.onSinglePanStart(e,this._mouseOp))}})),i(this,"onPointerMove",(e=>{if("touch"==e.pointerType&&this._input!=o.CURSOR)switch(this._input){case o.ONE_FINGER:this.updateTouchEvent(e),this.onSinglePanMove(e,a.ROTATE);break;case o.ONE_FINGER_SWITCHED:if(this.calculatePointersDistance(this._touchCurrent[0],e)*this._devPxRatio>=this._switchSensibility){this._input=o.ONE_FINGER,this.updateTouchEvent(e),this.onSinglePanStart(e,"ROTATE");break}break;case o.TWO_FINGER:this.updateTouchEvent(e),this.onRotateMove(),this.onPinchMove(),this.onDoublePanMove();break;case o.MULT_FINGER:this.updateTouchEvent(e),this.onTriplePanMove()}else if("touch"!=e.pointerType&&this._input==o.CURSOR){let t=null;e.ctrlKey||e.metaKey?t="CTRL":e.shiftKey&&(t="SHIFT");const r=this.getOpStateFromAction(this._button,t);r&&this.onSinglePanMove(e,r)}if(this._downValid){this.calculatePointersDistance(this._downEvents[this._downEvents.length-1],e)*this._devPxRatio>this._movementThreshold&&(this._downValid=!1)}})),i(this,"onPointerUp",(e=>{if("touch"==e.pointerType&&this._input!=o.CURSOR){const t=this._touchCurrent.length;for(let r=0;r{var t,r;if(this.enabled&&this.enableZoom&&this.domElement){let n=null;e.ctrlKey||e.metaKey?n="CTRL":e.shiftKey&&(n="SHIFT");const i=this.getOpFromAction("WHEEL",n);if(i){e.preventDefault(),this.dispatchEvent(u);const n=125;let o=e.deltaY/n,l=1;switch(o>0?l=1/this.scaleFactor:o<0&&(l=this.scaleFactor),i){case"ZOOM":if(this.updateTbState(a.SCALE,!0),o>0?l=1/Math.pow(this.scaleFactor,o):o<0&&(l=Math.pow(this.scaleFactor,-o)),this.cursorZoom&&this.enablePan){let n;this.camera instanceof s.OrthographicCamera&&(n=null==(t=this.unprojectOnTbPlane(this.camera,e.clientX,e.clientY,this.domElement))?void 0:t.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._gizmos.position)),this.camera instanceof s.PerspectiveCamera&&(n=null==(r=this.unprojectOnTbPlane(this.camera,e.clientX,e.clientY,this.domElement))?void 0:r.applyQuaternion(this.camera.quaternion).add(this._gizmos.position)),void 0!==n&&this.applyTransformMatrix(this.applyScale(l,n))}else this.applyTransformMatrix(this.applyScale(l,this._gizmos.position));this._grid&&(this.disposeGrid(),this.drawGrid()),this.updateTbState(a.IDLE,!1),this.dispatchEvent(h),this.dispatchEvent(d);break;case"FOV":if(this.camera instanceof s.PerspectiveCamera){this.updateTbState(a.FOV,!0),0!=e.deltaX&&(o=e.deltaX/n,l=1,o>0?l=1/Math.pow(this.scaleFactor,o):o<0&&(l=Math.pow(this.scaleFactor,-o))),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const t=this._v3_1.distanceTo(this._gizmos.position);let r=t/l;r=s.MathUtils.clamp(r,this.minDistance,this.maxDistance);const i=t*Math.tan(s.MathUtils.DEG2RAD*this.camera.fov*.5);let c=s.MathUtils.RAD2DEG*(2*Math.atan(i/r));c>this.maxFov?c=this.maxFov:c{if(this.enabled&&this.domElement)switch(this.dispatchEvent(u),this.setCenter(e.clientX,e.clientY),t){case"PAN":if(!this.enablePan)return;if(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(h)),this.camera){this.updateTbState(a.PAN,!0);const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&(this.drawGrid(),this.dispatchEvent(h))}break;case"ROTATE":if(!this.enableRotate)return;if(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1),this.camera){this.updateTbState(a.ROTATE,!0);const e=this.unprojectOnTbSurface(this.camera,l.x,l.y,this.domElement,this._tbRadius);void 0!==e&&this._startCursorPosition.copy(e),this.activateGizmos(!0),this.enableAnimations&&(this._timePrev=this._timeCurrent=performance.now(),this._angleCurrent=this._anglePrev=0,this._cursorPosPrev.copy(this._startCursorPosition),this._cursorPosCurr.copy(this._cursorPosPrev),this._wCurr=0,this._wPrev=this._wCurr)}this.dispatchEvent(h);break;case"FOV":if(!this.enableZoom)return;this.camera instanceof s.PerspectiveCamera&&(-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(h)),this.updateTbState(a.FOV,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition));break;case"ZOOM":if(!this.enableZoom)return;-1!=this._animationId&&(cancelAnimationFrame(this._animationId),this._animationId=-1,this._timeStart=-1,this.activateGizmos(!1),this.dispatchEvent(h)),this.updateTbState(a.SCALE,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition)}})),i(this,"onSinglePanMove",((e,t)=>{if(this.enabled&&this.domElement){const r=t!=this._state;switch(this.setCenter(e.clientX,e.clientY),t){case a.PAN:if(this.enablePan&&this.camera)if(r){this.dispatchEvent(d),this.dispatchEvent(u),this.updateTbState(t,!0);const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&this.drawGrid(),this.activateGizmos(!1)}else{const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement);void 0!==e&&this._currentCursorPosition.copy(e),this.applyTransformMatrix(this.pan(this._startCursorPosition,this._currentCursorPosition))}break;case a.ROTATE:if(this.enableRotate&&this.camera)if(r){this.dispatchEvent(d),this.dispatchEvent(u),this.updateTbState(t,!0);const e=this.unprojectOnTbSurface(this.camera,l.x,l.y,this.domElement,this._tbRadius);void 0!==e&&this._startCursorPosition.copy(e),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!0)}else{const e=this.unprojectOnTbSurface(this.camera,l.x,l.y,this.domElement,this._tbRadius);void 0!==e&&this._currentCursorPosition.copy(e);const t=this._startCursorPosition.distanceTo(this._currentCursorPosition),r=this._startCursorPosition.angleTo(this._currentCursorPosition),n=Math.max(t/this._tbRadius,r);this.applyTransformMatrix(this.rotate(this.calculateRotationAxis(this._startCursorPosition,this._currentCursorPosition),n)),this.enableAnimations&&(this._timePrev=this._timeCurrent,this._timeCurrent=performance.now(),this._anglePrev=this._angleCurrent,this._angleCurrent=n,this._cursorPosPrev.copy(this._cursorPosCurr),this._cursorPosCurr.copy(this._currentCursorPosition),this._wPrev=this._wCurr,this._wCurr=this.calculateAngularSpeed(this._anglePrev,this._angleCurrent,this._timePrev,this._timeCurrent))}break;case a.SCALE:if(this.enableZoom)if(r)this.dispatchEvent(d),this.dispatchEvent(u),this.updateTbState(t,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1);else{const e=8;this._currentCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y);const t=this._currentCursorPosition.y-this._startCursorPosition.y;let r=1;t<0?r=1/Math.pow(this.scaleFactor,-t*e):t>0&&(r=Math.pow(this.scaleFactor,t*e)),this.applyTransformMatrix(this.applyScale(r,this._gizmos.position))}break;case a.FOV:if(this.enableZoom&&this.camera instanceof s.PerspectiveCamera)if(r)this.dispatchEvent(d),this.dispatchEvent(u),this.updateTbState(t,!0),this._startCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y),this._currentCursorPosition.copy(this._startCursorPosition),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1);else{const e=8;this._currentCursorPosition.setY(.5*this.getCursorNDC(l.x,l.y,this.domElement).y);const t=this._currentCursorPosition.y-this._startCursorPosition.y;let r=1;t<0?r=1/Math.pow(this.scaleFactor,-t*e):t>0&&(r=Math.pow(this.scaleFactor,t*e)),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const n=this._v3_1.distanceTo(this._gizmos.position);let i=n/r;i=s.MathUtils.clamp(i,this.minDistance,this.maxDistance);const a=n*Math.tan(s.MathUtils.DEG2RAD*this._fovState*.5);let o=s.MathUtils.RAD2DEG*(2*Math.atan(a/i));o=s.MathUtils.clamp(o,this.minFov,this.maxFov);const c=a/Math.tan(s.MathUtils.DEG2RAD*(o/2));r=n/c,this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),this.setFov(o),this.applyTransformMatrix(this.applyScale(r,this._v3_2,!1));const h=this._gizmos.position.clone().sub(this.camera.position).normalize().multiplyScalar(c/n);this._m4_1.makeTranslation(h.x,h.y,h.z)}}this.dispatchEvent(h)}})),i(this,"onSinglePanEnd",(()=>{if(this._state==a.ROTATE){if(!this.enableRotate)return;if(this.enableAnimations){if(performance.now()-this._timeCurrent<120){const e=Math.abs((this._wPrev+this._wCurr)/2),t=this;this._animationId=window.requestAnimationFrame((function(r){t.updateTbState(a.ANIMATION_ROTATE,!0);const n=t.calculateRotationAxis(t._cursorPosPrev,t._cursorPosCurr);t.onRotationAnim(r,n,Math.min(e,t.wMax))}))}else this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(h)}else this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(h)}else this._state!=a.PAN&&this._state!=a.IDLE||(this.updateTbState(a.IDLE,!1),this.enableGrid&&this.disposeGrid(),this.activateGizmos(!1),this.dispatchEvent(h));this.dispatchEvent(d)})),i(this,"onDoubleTap",(e=>{if(this.enabled&&this.enablePan&&this.scene&&this.camera&&this.domElement){this.dispatchEvent(u),this.setCenter(e.clientX,e.clientY);const t=this.unprojectOnObj(this.getCursorNDC(l.x,l.y,this.domElement),this.camera);if(t&&this.enableAnimations){const e=this;-1!=this._animationId&&window.cancelAnimationFrame(this._animationId),this._timeStart=-1,this._animationId=window.requestAnimationFrame((function(r){e.updateTbState(a.ANIMATION_FOCUS,!0),e.onFocusAnim(r,t,e._cameraMatrixState,e._gizmoMatrixState)}))}else t&&!this.enableAnimations&&(this.updateTbState(a.FOCUS,!0),this.focus(t,this.scaleFactor),this.updateTbState(a.IDLE,!1),this.dispatchEvent(h))}this.dispatchEvent(d)})),i(this,"onDoublePanStart",(()=>{if(this.enabled&&this.enablePan&&this.camera&&this.domElement){this.dispatchEvent(u),this.updateTbState(a.PAN,!0),this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2);const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement,!0);void 0!==e&&this._startCursorPosition.copy(e),this._currentCursorPosition.copy(this._startCursorPosition),this.activateGizmos(!1)}})),i(this,"onDoublePanMove",(()=>{if(this.enabled&&this.enablePan&&this.camera&&this.domElement){this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2),this._state!=a.PAN&&(this.updateTbState(a.PAN,!0),this._startCursorPosition.copy(this._currentCursorPosition));const e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement,!0);void 0!==e&&this._currentCursorPosition.copy(e),this.applyTransformMatrix(this.pan(this._startCursorPosition,this._currentCursorPosition,!0)),this.dispatchEvent(h)}})),i(this,"onDoublePanEnd",(()=>{this.updateTbState(a.IDLE,!1),this.dispatchEvent(d)})),i(this,"onRotateStart",(()=>{var e;this.enabled&&this.enableRotate&&(this.dispatchEvent(u),this.updateTbState(a.ZROTATE,!0),this._startFingerRotation=this.getAngle(this._touchCurrent[1],this._touchCurrent[0])+this.getAngle(this._touchStart[1],this._touchStart[0]),this._currentFingerRotation=this._startFingerRotation,null==(e=this.camera)||e.getWorldDirection(this._rotationAxis),this.enablePan||this.enableZoom||this.activateGizmos(!0))})),i(this,"onRotateMove",(()=>{var e;if(this.enabled&&this.enableRotate&&this.camera&&this.domElement){let t;this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2),this._state!=a.ZROTATE&&(this.updateTbState(a.ZROTATE,!0),this._startFingerRotation=this._currentFingerRotation),this._currentFingerRotation=this.getAngle(this._touchCurrent[1],this._touchCurrent[0])+this.getAngle(this._touchStart[1],this._touchStart[0]),this.enablePan?this.camera&&(this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),t=null==(e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement))?void 0:e.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._v3_2)):t=(new s.Vector3).setFromMatrixPosition(this._gizmoMatrixState);const r=s.MathUtils.DEG2RAD*(this._startFingerRotation-this._currentFingerRotation);void 0!==t&&this.applyTransformMatrix(this.zRotate(t,r)),this.dispatchEvent(h)}})),i(this,"onRotateEnd",(()=>{this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(d)})),i(this,"onPinchStart",(()=>{this.enabled&&this.enableZoom&&(this.dispatchEvent(u),this.updateTbState(a.SCALE,!0),this._startFingerDistance=this.calculatePointersDistance(this._touchCurrent[0],this._touchCurrent[1]),this._currentFingerDistance=this._startFingerDistance,this.activateGizmos(!1))})),i(this,"onPinchMove",(()=>{var e,t;if(this.enabled&&this.enableZoom&&this.domElement){this.setCenter((this._touchCurrent[0].clientX+this._touchCurrent[1].clientX)/2,(this._touchCurrent[0].clientY+this._touchCurrent[1].clientY)/2);const r=12;this._state!=a.SCALE&&(this._startFingerDistance=this._currentFingerDistance,this.updateTbState(a.SCALE,!0)),this._currentFingerDistance=Math.max(this.calculatePointersDistance(this._touchCurrent[0],this._touchCurrent[1]),r*this._devPxRatio);const n=this._currentFingerDistance/this._startFingerDistance;let i;this.enablePan?this.camera instanceof s.OrthographicCamera?i=null==(e=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement))?void 0:e.applyQuaternion(this.camera.quaternion).multiplyScalar(1/this.camera.zoom).add(this._gizmos.position):this.camera instanceof s.PerspectiveCamera&&(i=null==(t=this.unprojectOnTbPlane(this.camera,l.x,l.y,this.domElement))?void 0:t.applyQuaternion(this.camera.quaternion).add(this._gizmos.position)):i=this._gizmos.position,void 0!==i&&this.applyTransformMatrix(this.applyScale(n,i)),this.dispatchEvent(h)}})),i(this,"onPinchEnd",(()=>{this.updateTbState(a.IDLE,!1),this.dispatchEvent(d)})),i(this,"onTriplePanStart",(()=>{if(this.enabled&&this.enableZoom&&this.domElement){this.dispatchEvent(u),this.updateTbState(a.SCALE,!0);let e=0,t=0;const r=this._touchCurrent.length;for(let n=0;n{if(this.enabled&&this.enableZoom&&this.camera&&this.domElement){let e=0,t=0;const r=this._touchCurrent.length;for(let s=0;s0&&(a=Math.pow(this.scaleFactor,i*n)),this._v3_1.setFromMatrixPosition(this._cameraMatrixState);const o=this._v3_1.distanceTo(this._gizmos.position);let c=o/a;c=s.MathUtils.clamp(c,this.minDistance,this.maxDistance);const u=o*Math.tan(s.MathUtils.DEG2RAD*this._fovState*.5);let d=s.MathUtils.RAD2DEG*(2*Math.atan(u/c));d=s.MathUtils.clamp(d,this.minFov,this.maxFov);const p=u/Math.tan(s.MathUtils.DEG2RAD*(d/2));a=o/p,this._v3_2.setFromMatrixPosition(this._gizmoMatrixState),this.setFov(d),this.applyTransformMatrix(this.applyScale(a,this._v3_2,!1));const f=this._gizmos.position.clone().sub(this.camera.position).normalize().multiplyScalar(p/o);this._m4_1.makeTranslation(f.x,f.y,f.z),this.dispatchEvent(h)}})),i(this,"onTriplePanEnd",(()=>{this.updateTbState(a.IDLE,!1),this.dispatchEvent(d)})),i(this,"setCenter",((e,t)=>{l.x=e,l.y=t})),i(this,"initializeMouseActions",(()=>{this.setMouseAction("PAN",0,"CTRL"),this.setMouseAction("PAN",2),this.setMouseAction("ROTATE",0),this.setMouseAction("ZOOM","WHEEL"),this.setMouseAction("ZOOM",1),this.setMouseAction("FOV","WHEEL","SHIFT"),this.setMouseAction("FOV",1,"SHIFT")})),i(this,"setMouseAction",((e,t,r=null)=>{let n;if(!["PAN","ROTATE","ZOOM","FOV"].includes(e)||![0,1,2,"WHEEL"].includes(t)||!["CTRL","SHIFT",null].includes(r))return!1;if("WHEEL"==t&&"ZOOM"!=e&&"FOV"!=e)return!1;switch(e){case"PAN":n=a.PAN;break;case"ROTATE":n=a.ROTATE;break;case"ZOOM":n=a.SCALE;break;case"FOV":n=a.FOV}const i={operation:e,mouse:t,key:r,state:n};for(let s=0;s{let r;for(let n=0;n{let r;for(let n=0;n180*Math.atan2(t.clientY-e.clientY,t.clientX-e.clientX)/Math.PI)),i(this,"updateTouchEvent",(e=>{for(let t=0;t{const i=(n-r)/1e3;return 0==i?0:(t-e)/i})),i(this,"calculatePointersDistance",((e,t)=>Math.sqrt(Math.pow(t.clientX-e.clientX,2)+Math.pow(t.clientY-e.clientY,2)))),i(this,"calculateRotationAxis",((e,t)=>(this._rotationMatrix.extractRotation(this._cameraMatrixState),this._quat.setFromRotationMatrix(this._rotationMatrix),this._rotationAxis.crossVectors(e,t).applyQuaternion(this._quat),this._rotationAxis.normalize().clone()))),i(this,"calculateTbRadius",(e=>{const t=e.position.distanceTo(this._gizmos.position);if(e instanceof s.PerspectiveCamera){const r=s.MathUtils.DEG2RAD*e.fov*.5,n=Math.atan(e.aspect*Math.tan(r));return Math.tan(Math.min(r,n))*t*.67}if(e instanceof s.OrthographicCamera)return.67*Math.min(e.top,e.right)})),i(this,"focus",((e,t,r=1)=>{if(this.camera){const n=e.clone();n.sub(this._gizmos.position).multiplyScalar(r),this._translationMatrix.makeTranslation(n.x,n.y,n.z);const i=this._gizmoMatrixState.clone();this._gizmoMatrixState.premultiply(this._translationMatrix),this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale);const s=this._cameraMatrixState.clone();this._cameraMatrixState.premultiply(this._translationMatrix),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.enableZoom&&this.applyTransformMatrix(this.applyScale(t,this._gizmos.position)),this._gizmoMatrixState.copy(i),this._cameraMatrixState.copy(s)}})),i(this,"drawGrid",(()=>{if(this.scene){const e=8947848,t=3;let r,n,i,a;if(this.camera instanceof s.OrthographicCamera){const e=this.camera.right-this.camera.left,s=this.camera.bottom-this.camera.top;i=Math.max(e,s),a=i/20,r=i/this.camera.zoom*t,n=r/a*this.camera.zoom}else if(this.camera instanceof s.PerspectiveCamera){const e=this.camera.position.distanceTo(this._gizmos.position),o=s.MathUtils.DEG2RAD*this.camera.fov*.5,l=Math.atan(this.camera.aspect*Math.tan(o));i=Math.tan(Math.max(o,l))*e*2,a=i/20,r=i*t,n=r/a}null==this._grid&&this.camera&&(this._grid=new s.GridHelper(r,n,e,e),this._grid.position.copy(this._gizmos.position),this._gridPosition.copy(this._grid.position),this._grid.quaternion.copy(this.camera.quaternion),this._grid.rotateX(.5*Math.PI),this.scene.add(this._grid))}})),i(this,"connect",(e=>{e===document&&console.error('THREE.ArcballControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.style.touchAction="none",this.domElement.addEventListener("contextmenu",this.onContextMenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointercancel",this.onPointerCancel),this.domElement.addEventListener("wheel",this.onWheel)})),i(this,"dispose",(()=>{var e,t,r,n,i;-1!=this._animationId&&window.cancelAnimationFrame(this._animationId),null==(e=this.domElement)||e.removeEventListener("pointerdown",this.onPointerDown),null==(t=this.domElement)||t.removeEventListener("pointercancel",this.onPointerCancel),null==(r=this.domElement)||r.removeEventListener("wheel",this.onWheel),null==(n=this.domElement)||n.removeEventListener("contextmenu",this.onContextMenu),window.removeEventListener("pointermove",this.onPointerMove),window.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("resize",this.onWindowResize),null==(i=this.scene)||i.remove(this._gizmos),this.disposeGrid()})),i(this,"disposeGrid",(()=>{this._grid&&this.scene&&(this.scene.remove(this._grid),this._grid=null)})),i(this,"easeOutCubic",(e=>1-Math.pow(1-e,3))),i(this,"activateGizmos",(e=>{for(const t of this._gizmos.children)t.material.setValues({opacity:e?1:.6})})),i(this,"getCursorNDC",((e,t,r)=>{const n=r.getBoundingClientRect();return this._v2_1.setX((e-n.left)/n.width*2-1),this._v2_1.setY((n.bottom-t)/n.height*2-1),this._v2_1.clone()})),i(this,"getCursorPosition",((e,t,r)=>(this._v2_1.copy(this.getCursorNDC(e,t,r)),this.camera instanceof s.OrthographicCamera&&(this._v2_1.x*=.5*(this.camera.right-this.camera.left),this._v2_1.y*=.5*(this.camera.top-this.camera.bottom)),this._v2_1.clone()))),i(this,"setCamera",(e=>{if(e){e.lookAt(this.target),e.updateMatrix(),e instanceof s.PerspectiveCamera&&(this._fov0=e.fov,this._fovState=e.fov),this._cameraMatrixState0.copy(e.matrix),this._cameraMatrixState.copy(this._cameraMatrixState0),this._cameraProjectionState.copy(e.projectionMatrix),this._zoom0=e.zoom,this._zoomState=this._zoom0,this._initialNear=e.near,this._nearPos0=e.position.distanceTo(this.target)-e.near,this._nearPos=this._initialNear,this._initialFar=e.far,this._farPos0=e.position.distanceTo(this.target)-e.far,this._farPos=this._initialFar,this._up0.copy(e.up),this._upState.copy(e.up),this.camera=e,this.camera.updateProjectionMatrix();const t=this.calculateTbRadius(e);void 0!==t&&(this._tbRadius=t),this.makeGizmos(this.target,this._tbRadius)}})),i(this,"makeGizmos",((e,t)=>{const r=new s.EllipseCurve(0,0,t,t).getPoints(this._curvePts),n=(new s.BufferGeometry).setFromPoints(r),i=new s.LineBasicMaterial({color:16744576,fog:!1,transparent:!0,opacity:.6}),a=new s.LineBasicMaterial({color:8454016,fog:!1,transparent:!0,opacity:.6}),o=new s.LineBasicMaterial({color:8421631,fog:!1,transparent:!0,opacity:.6}),l=new s.Line(n,i),c=new s.Line(n,a),h=new s.Line(n,o),u=.5*Math.PI;if(l.rotation.x=u,c.rotation.y=u,this._gizmoMatrixState0.identity().setPosition(e),this._gizmoMatrixState.copy(this._gizmoMatrixState0),this.camera&&1!=this.camera.zoom){const t=1/this.camera.zoom;this._scaleMatrix.makeScale(t,t,t),this._translationMatrix.makeTranslation(-e.x,-e.y,-e.z),this._gizmoMatrixState.premultiply(this._translationMatrix).premultiply(this._scaleMatrix),this._translationMatrix.makeTranslation(e.x,e.y,e.z),this._gizmoMatrixState.premultiply(this._translationMatrix)}this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.clear(),this._gizmos.add(l),this._gizmos.add(c),this._gizmos.add(h)})),i(this,"onFocusAnim",((e,t,r,n)=>{if(-1==this._timeStart&&(this._timeStart=e),this._state==a.ANIMATION_FOCUS){const i=(e-this._timeStart)/this.focusAnimationTime;if(this._gizmoMatrixState.copy(n),i>=1)this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.focus(t,this.scaleFactor),this._timeStart=-1,this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(h);else{const e=this.easeOutCubic(i),s=1-e+this.scaleFactor*e;this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.focus(t,s,e),this.dispatchEvent(h);const a=this;this._animationId=window.requestAnimationFrame((function(e){a.onFocusAnim(e,t,r,n.clone())}))}}else this._animationId=-1,this._timeStart=-1})),i(this,"onRotationAnim",((e,t,r)=>{if(-1==this._timeStart&&(this._anglePrev=0,this._angleCurrent=0,this._timeStart=e),this._state==a.ANIMATION_ROTATE){const n=(e-this._timeStart)/1e3;if(r+-this.dampingFactor*n>0){this._angleCurrent=.5*-this.dampingFactor*Math.pow(n,2)+r*n+0,this.applyTransformMatrix(this.rotate(t,this._angleCurrent)),this.dispatchEvent(h);const e=this;this._animationId=window.requestAnimationFrame((function(n){e.onRotationAnim(n,t,r)}))}else this._animationId=-1,this._timeStart=-1,this.updateTbState(a.IDLE,!1),this.activateGizmos(!1),this.dispatchEvent(h)}else this._animationId=-1,this._timeStart=-1,this._state!=a.ROTATE&&(this.activateGizmos(!1),this.dispatchEvent(h))})),i(this,"pan",((e,t,r=!1)=>{if(this.camera){const n=e.clone().sub(t);if(this.camera instanceof s.OrthographicCamera&&n.multiplyScalar(1/this.camera.zoom),this.camera instanceof s.PerspectiveCamera&&r){this._v3_1.setFromMatrixPosition(this._cameraMatrixState0),this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0);const e=this._v3_1.distanceTo(this._v3_2)/this.camera.position.distanceTo(this._gizmos.position);n.multiplyScalar(1/e)}this._v3_1.set(n.x,n.y,0).applyQuaternion(this.camera.quaternion),this._m4_1.makeTranslation(this._v3_1.x,this._v3_1.y,this._v3_1.z),this.setTransformationMatrices(this._m4_1,this._m4_1)}return c})),i(this,"reset",(()=>{if(this.camera){this.camera.zoom=this._zoom0,this.camera instanceof s.PerspectiveCamera&&(this.camera.fov=this._fov0),this.camera.near=this._nearPos,this.camera.far=this._farPos,this._cameraMatrixState.copy(this._cameraMatrixState0),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.up.copy(this._up0),this.camera.updateMatrix(),this.camera.updateProjectionMatrix(),this._gizmoMatrixState.copy(this._gizmoMatrixState0),this._gizmoMatrixState0.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.updateMatrix();const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e),this.makeGizmos(this._gizmos.position,this._tbRadius),this.camera.lookAt(this._gizmos.position),this.updateTbState(a.IDLE,!1),this.dispatchEvent(h)}})),i(this,"rotate",((e,t)=>{const r=this._gizmos.position;return this._translationMatrix.makeTranslation(-r.x,-r.y,-r.z),this._rotationMatrix.makeRotationAxis(e,-t),this._m4_1.makeTranslation(r.x,r.y,r.z),this._m4_1.multiply(this._rotationMatrix),this._m4_1.multiply(this._translationMatrix),this.setTransformationMatrices(this._m4_1),c})),i(this,"copyState",(()=>{if(this.camera){const e=JSON.stringify(this.camera instanceof s.OrthographicCamera?{arcballState:{cameraFar:this.camera.far,cameraMatrix:this.camera.matrix,cameraNear:this.camera.near,cameraUp:this.camera.up,cameraZoom:this.camera.zoom,gizmoMatrix:this._gizmos.matrix}}:{arcballState:{cameraFar:this.camera.far,cameraFov:this.camera.fov,cameraMatrix:this.camera.matrix,cameraNear:this.camera.near,cameraUp:this.camera.up,cameraZoom:this.camera.zoom,gizmoMatrix:this._gizmos.matrix}});navigator.clipboard.writeText(e)}})),i(this,"pasteState",(()=>{const e=this;navigator.clipboard.readText().then((function(t){e.setStateFromJSON(t)}))})),i(this,"saveState",(()=>{this.camera&&(this._cameraMatrixState0.copy(this.camera.matrix),this._gizmoMatrixState0.copy(this._gizmos.matrix),this._nearPos=this.camera.near,this._farPos=this.camera.far,this._zoom0=this.camera.zoom,this._up0.copy(this.camera.up),this.camera instanceof s.PerspectiveCamera&&(this._fov0=this.camera.fov))})),i(this,"applyScale",((e,t,r=!0)=>{if(!this.camera)return;const n=t.clone();let i=1/e;if(this.camera instanceof s.OrthographicCamera){this.camera.zoom=this._zoomState,this.camera.zoom*=e,this.camera.zoom>this.maxZoom?(this.camera.zoom=this.maxZoom,i=this._zoomState/this.maxZoom):this.camera.zoomthis.maxDistance&&(i=this.maxDistance/e,t=e-e*i);let a=n.clone().sub(this._v3_1).normalize().multiplyScalar(t);if(this._m4_1.makeTranslation(a.x,a.y,a.z),r){const r=this._v3_2;e=r.distanceTo(n),t=e-e*i,a=n.clone().sub(this._v3_2).normalize().multiplyScalar(t),this._translationMatrix.makeTranslation(r.x,r.y,r.z),this._scaleMatrix.makeScale(i,i,i),this._m4_2.makeTranslation(a.x,a.y,a.z).multiply(this._translationMatrix),this._m4_2.multiply(this._scaleMatrix),this._translationMatrix.makeTranslation(-r.x,-r.y,-r.z),this._m4_2.multiply(this._translationMatrix),this.setTransformationMatrices(this._m4_1,this._m4_2)}else this.setTransformationMatrices(this._m4_1);return c}})),i(this,"setFov",(e=>{this.camera instanceof s.PerspectiveCamera&&(this.camera.fov=s.MathUtils.clamp(e,this.minFov,this.maxFov),this.camera.updateProjectionMatrix())})),i(this,"setTarget",((e,t,r)=>{if(this.camera){this.target.set(e,t,r),this._gizmos.position.set(e,t,r);const n=this.calculateTbRadius(this.camera);void 0!==n&&(this._tbRadius=n),this.makeGizmos(this.target,this._tbRadius),this.camera.lookAt(this.target)}})),i(this,"zRotate",((e,t)=>(this._rotationMatrix.makeRotationAxis(this._rotationAxis,t),this._translationMatrix.makeTranslation(-e.x,-e.y,-e.z),this._m4_1.makeTranslation(e.x,e.y,e.z),this._m4_1.multiply(this._rotationMatrix),this._m4_1.multiply(this._translationMatrix),this._v3_1.setFromMatrixPosition(this._gizmoMatrixState).sub(e),this._v3_2.copy(this._v3_1).applyAxisAngle(this._rotationAxis,t),this._v3_2.sub(this._v3_1),this._m4_2.makeTranslation(this._v3_2.x,this._v3_2.y,this._v3_2.z),this.setTransformationMatrices(this._m4_1,this._m4_2),c))),i(this,"unprojectOnObj",((e,t)=>{if(!this.scene)return null;const r=new s.Raycaster;r.near=t.near,r.far=t.far,r.setFromCamera(e,t);const n=r.intersectObjects(this.scene.children,!0);for(let i=0;i{if(e instanceof s.OrthographicCamera){this._v2_1.copy(this.getCursorPosition(t,r,n)),this._v3_1.set(this._v2_1.x,this._v2_1.y,0);const e=Math.pow(this._v2_1.x,2),i=Math.pow(this._v2_1.y,2),s=Math.pow(this._tbRadius,2);return e+i<=.5*s?this._v3_1.setZ(Math.sqrt(s-(e+i))):this._v3_1.setZ(.5*s/Math.sqrt(e+i)),this._v3_1}if(e instanceof s.PerspectiveCamera){this._v2_1.copy(this.getCursorNDC(t,r,n)),this._v3_1.set(this._v2_1.x,this._v2_1.y,-1),this._v3_1.applyMatrix4(e.projectionMatrixInverse);const a=this._v3_1.clone().normalize(),o=e.position.distanceTo(this._gizmos.position),l=Math.pow(i,2),c=this._v3_1.z,h=Math.sqrt(Math.pow(this._v3_1.x,2)+Math.pow(this._v3_1.y,2));if(0==h)return a.set(this._v3_1.x,this._v3_1.y,i),a;const u=c/h,d=o;let p=Math.pow(u,2)+1,f=2*u*d,m=Math.pow(d,2)-l,g=Math.pow(f,2)-4*p*m;if(g>=0){this._v2_1.setX((-f-Math.sqrt(g))/(2*p)),this._v2_1.setY(u*this._v2_1.x+d);if(s.MathUtils.RAD2DEG*this._v2_1.angle()>=45){const e=Math.sqrt(Math.pow(this._v2_1.x,2)+Math.pow(o-this._v2_1.y,2));return a.multiplyScalar(e),a.z+=o,a}}p=u,f=d,m=.5*-l,g=Math.pow(f,2)-4*p*m,this._v2_1.setX((-f-Math.sqrt(g))/(2*p)),this._v2_1.setY(u*this._v2_1.x+d);const A=Math.sqrt(Math.pow(this._v2_1.x,2)+Math.pow(o-this._v2_1.y,2));return a.multiplyScalar(A),a.z+=o,a}})),i(this,"unprojectOnTbPlane",((e,t,r,n,i=!1)=>{if(e instanceof s.OrthographicCamera)return this._v2_1.copy(this.getCursorPosition(t,r,n)),this._v3_1.set(this._v2_1.x,this._v2_1.y,0),this._v3_1.clone();if(e instanceof s.PerspectiveCamera){this._v2_1.copy(this.getCursorNDC(t,r,n)),this._v3_1.set(this._v2_1.x,this._v2_1.y,-1),this._v3_1.applyMatrix4(e.projectionMatrixInverse);const s=this._v3_1.clone().normalize(),a=this._v3_1.z,o=Math.sqrt(Math.pow(this._v3_1.x,2)+Math.pow(this._v3_1.y,2));let l;if(l=i?this._v3_1.setFromMatrixPosition(this._cameraMatrixState0).distanceTo(this._v3_2.setFromMatrixPosition(this._gizmoMatrixState0)):e.position.distanceTo(this._gizmos.position),0==o)return s.set(0,0,0),s;const c=l,h=-c/(a/o),u=Math.sqrt(Math.pow(c,2)+Math.pow(h,2));return s.multiplyScalar(u),s.z=0,s}})),i(this,"updateMatrixState",(()=>{this.camera&&(this._cameraMatrixState.copy(this.camera.matrix),this._gizmoMatrixState.copy(this._gizmos.matrix),this.camera instanceof s.OrthographicCamera&&(this._cameraProjectionState.copy(this.camera.projectionMatrix),this.camera.updateProjectionMatrix(),this._zoomState=this.camera.zoom),this.camera instanceof s.PerspectiveCamera&&(this._fovState=this.camera.fov))})),i(this,"updateTbState",((e,t)=>{this._state=e,t&&this.updateMatrixState()})),i(this,"update",(()=>{const e=1e-6;if(!this.target.equals(this._currentTarget)&&this.camera){this._gizmos.position.set(this.target.x,this.target.y,this.target.z);const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e),this.makeGizmos(this.target,this._tbRadius),this._currentTarget.copy(this.target)}if(this.camera){if(this.camera instanceof s.OrthographicCamera&&(this.camera.zoom>this.maxZoom||this.camera.zoomthis.maxDistance+e||tthis.maxFov)&&(this.camera.fov=s.MathUtils.clamp(this.camera.fov,this.minFov,this.maxFov),this.camera.updateProjectionMatrix());const r=this._tbRadius,n=this.calculateTbRadius(this.camera);if(void 0!==n&&(this._tbRadius=n),rthis._tbRadius+e){const e=(this._gizmos.scale.x+this._gizmos.scale.y+this._gizmos.scale.z)/3,t=this._tbRadius/e,r=new s.EllipseCurve(0,0,t,t).getPoints(this._curvePts),n=(new s.BufferGeometry).setFromPoints(r);for(const i in this._gizmos.children){this._gizmos.children[i].geometry=n}}}this.camera.lookAt(this._gizmos.position)}})),i(this,"setStateFromJSON",(e=>{const t=JSON.parse(e);if(t.arcballState&&this.camera){this._cameraMatrixState.fromArray(t.arcballState.cameraMatrix.elements),this._cameraMatrixState.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.up.copy(t.arcballState.cameraUp),this.camera.near=t.arcballState.cameraNear,this.camera.far=t.arcballState.cameraFar,this.camera.zoom=t.arcballState.cameraZoom,this.camera instanceof s.PerspectiveCamera&&(this.camera.fov=t.arcballState.cameraFov),this._gizmoMatrixState.fromArray(t.arcballState.gizmoMatrix.elements),this._gizmoMatrixState.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this.camera.updateMatrix(),this.camera.updateProjectionMatrix(),this._gizmos.updateMatrix();const e=this.calculateTbRadius(this.camera);void 0!==e&&(this._tbRadius=e);const r=(new s.Matrix4).copy(this._gizmoMatrixState0);this.makeGizmos(this._gizmos.position,this._tbRadius),this._gizmoMatrixState0.copy(r),this.camera.lookAt(this._gizmos.position),this.updateTbState(a.IDLE,!1),this.dispatchEvent(h)}})),this.camera=null,this.domElement=t,this.scene=r,this.mouseActions=[],this._mouseOp=null,this._v2_1=new s.Vector2,this._v3_1=new s.Vector3,this._v3_2=new s.Vector3,this._m4_1=new s.Matrix4,this._m4_2=new s.Matrix4,this._quat=new s.Quaternion,this._translationMatrix=new s.Matrix4,this._rotationMatrix=new s.Matrix4,this._scaleMatrix=new s.Matrix4,this._rotationAxis=new s.Vector3,this._cameraMatrixState=new s.Matrix4,this._cameraProjectionState=new s.Matrix4,this._fovState=1,this._upState=new s.Vector3,this._zoomState=1,this._nearPos=0,this._farPos=0,this._gizmoMatrixState=new s.Matrix4,this._up0=new s.Vector3,this._zoom0=1,this._fov0=0,this._initialNear=0,this._nearPos0=0,this._initialFar=0,this._farPos0=0,this._cameraMatrixState0=new s.Matrix4,this._gizmoMatrixState0=new s.Matrix4,this._button=-1,this._touchStart=[],this._touchCurrent=[],this._input=o.NONE,this._switchSensibility=32,this._startFingerDistance=0,this._currentFingerDistance=0,this._startFingerRotation=0,this._currentFingerRotation=0,this._devPxRatio=0,this._downValid=!0,this._nclicks=0,this._downEvents=[],this._clickStart=0,this._maxDownTime=250,this._maxInterval=300,this._posThreshold=24,this._movementThreshold=24,this._currentCursorPosition=new s.Vector3,this._startCursorPosition=new s.Vector3,this._grid=null,this._gridPosition=new s.Vector3,this._gizmos=new s.Group,this._curvePts=128,this._timeStart=-1,this._animationId=-1,this.focusAnimationTime=500,this._timePrev=0,this._timeCurrent=0,this._anglePrev=0,this._angleCurrent=0,this._cursorPosPrev=new s.Vector3,this._cursorPosCurr=new s.Vector3,this._wPrev=0,this._wCurr=0,this.adjustNearFar=!1,this.scaleFactor=1.1,this.dampingFactor=25,this.wMax=20,this.enableAnimations=!0,this.enableGrid=!1,this.cursorZoom=!1,this.minFov=5,this.maxFov=90,this.enabled=!0,this.enablePan=!0,this.enableRotate=!0,this.enableZoom=!0,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.target=new s.Vector3(0,0,0),this._currentTarget=new s.Vector3(0,0,0),this._tbRadius=1,this._state=a.IDLE,this.setCamera(e),this.scene&&this.scene.add(this._gizmos),this._devPxRatio=window.devicePixelRatio,this.initializeMouseActions(),this.domElement&&this.connect(this.domElement),window.addEventListener("resize",this.onWindowResize)}applyTransformMatrix(e){if((null==e?void 0:e.camera)&&this.camera&&(this._m4_1.copy(this._cameraMatrixState).premultiply(e.camera),this._m4_1.decompose(this.camera.position,this.camera.quaternion,this.camera.scale),this.camera.updateMatrix(),this._state!=a.ROTATE&&this._state!=a.ZROTATE&&this._state!=a.ANIMATION_ROTATE||this.camera.up.copy(this._upState).applyQuaternion(this.camera.quaternion)),(null==e?void 0:e.gizmos)&&(this._m4_1.copy(this._gizmoMatrixState).premultiply(e.gizmos),this._m4_1.decompose(this._gizmos.position,this._gizmos.quaternion,this._gizmos.scale),this._gizmos.updateMatrix()),(this._state==a.SCALE||this._state==a.FOCUS||this._state==a.ANIMATION_FOCUS)&&this.camera){const e=this.calculateTbRadius(this.camera);if(void 0!==e&&(this._tbRadius=e),this.adjustNearFar){const e=this.camera.position.distanceTo(this._gizmos.position),t=new s.Box3;t.setFromObject(this._gizmos);const r=new s.Sphere;t.getBoundingSphere(r);const n=Math.max(this._nearPos0,r.radius+r.center.length()),i=e-this._initialNear,a=Math.min(n,i);this.camera.near=e-a;const o=Math.min(this._farPos0,-r.radius+r.center.length()),l=e-this._initialFar,c=Math.min(o,l);this.camera.far=e-c,this.camera.updateProjectionMatrix()}else{let e=!1;this.camera.near!=this._initialNear&&(this.camera.near=this._initialNear,e=!0),this.camera.far!=this._initialFar&&(this.camera.far=this._initialFar,e=!0),e&&this.camera.updateProjectionMatrix()}}}setGizmosVisible(e){this._gizmos.visible=e,this.dispatchEvent(h)}setTransformationMatrices(e=null,t=null){e?c.camera?c.camera.copy(e):c.camera=e.clone():c.camera=null,t?c.gizmos?c.gizmos.copy(t):c.gizmos=t.clone():c.gizmos=null}}t.ArcballControls=p},97573:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);class a extends s.EventDispatcher{constructor(e){super(),i(this,"object"),i(this,"changeEvent",{type:"change"}),i(this,"EPS",1e-6),i(this,"enabled",!0),i(this,"deviceOrientation",{alpha:0,beta:0,gamma:0}),i(this,"screenOrientation",0),i(this,"alphaOffset",0),i(this,"onDeviceOrientationChangeEvent",(e=>{this.deviceOrientation=e})),i(this,"onScreenOrientationChangeEvent",(()=>{this.screenOrientation=window.orientation||0})),i(this,"zee",new s.Vector3(0,0,1)),i(this,"euler",new s.Euler),i(this,"q0",new s.Quaternion),i(this,"q1",new s.Quaternion(-Math.sqrt(.5),0,0,Math.sqrt(.5))),i(this,"setObjectQuaternion",((e,t,r,n,i)=>{this.euler.set(r,t,-n,"YXZ"),e.setFromEuler(this.euler),e.multiply(this.q1),e.multiply(this.q0.setFromAxisAngle(this.zee,-i))})),i(this,"connect",(()=>{this.onScreenOrientationChangeEvent(),void 0!==window.DeviceOrientationEvent&&"function"==typeof window.DeviceOrientationEvent.requestPermission?window.DeviceOrientationEvent.requestPermission().then((e=>{"granted"==e&&(window.addEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.addEventListener("deviceorientation",this.onDeviceOrientationChangeEvent))})).catch((e=>{console.error("THREE.DeviceOrientationControls: Unable to use DeviceOrientation API:",e)})):(window.addEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.addEventListener("deviceorientation",this.onDeviceOrientationChangeEvent)),this.enabled=!0})),i(this,"disconnect",(()=>{window.removeEventListener("orientationchange",this.onScreenOrientationChangeEvent),window.removeEventListener("deviceorientation",this.onDeviceOrientationChangeEvent),this.enabled=!1})),i(this,"lastQuaternion",new s.Quaternion),i(this,"update",(()=>{if(!1===this.enabled)return;const e=this.deviceOrientation;if(e){const t=e.alpha?s.MathUtils.degToRad(e.alpha)+this.alphaOffset:0,r=e.beta?s.MathUtils.degToRad(e.beta):0,n=e.gamma?s.MathUtils.degToRad(e.gamma):0,i=this.screenOrientation?s.MathUtils.degToRad(this.screenOrientation):0;this.setObjectQuaternion(this.object.quaternion,t,r,n,i),8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS&&(this.lastQuaternion.copy(this.object.quaternion),this.dispatchEvent(this.changeEvent))}})),i(this,"dispose",(()=>this.disconnect())),this.object=e,this.object.rotation.reorder("YXZ"),this.connect()}}t.DeviceOrientationControls=a},45830:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);class a extends s.EventDispatcher{constructor(e,t,r){super(),i(this,"enabled",!0),i(this,"transformGroup",!1),i(this,"_objects"),i(this,"_camera"),i(this,"_domElement"),i(this,"_plane",new s.Plane),i(this,"_raycaster",new s.Raycaster),i(this,"_mouse",new s.Vector2),i(this,"_offset",new s.Vector3),i(this,"_intersection",new s.Vector3),i(this,"_worldPosition",new s.Vector3),i(this,"_inverseMatrix",new s.Matrix4),i(this,"_intersections",[]),i(this,"_selected",null),i(this,"_hovered",null),i(this,"activate",(()=>{this._domElement.addEventListener("pointermove",this.onPointerMove),this._domElement.addEventListener("pointerdown",this.onPointerDown),this._domElement.addEventListener("pointerup",this.onPointerCancel),this._domElement.addEventListener("pointerleave",this.onPointerCancel),this._domElement.addEventListener("touchmove",this.onTouchMove),this._domElement.addEventListener("touchstart",this.onTouchStart),this._domElement.addEventListener("touchend",this.onTouchEnd)})),i(this,"deactivate",(()=>{this._domElement.removeEventListener("pointermove",this.onPointerMove),this._domElement.removeEventListener("pointerdown",this.onPointerDown),this._domElement.removeEventListener("pointerup",this.onPointerCancel),this._domElement.removeEventListener("pointerleave",this.onPointerCancel),this._domElement.removeEventListener("touchmove",this.onTouchMove),this._domElement.removeEventListener("touchstart",this.onTouchStart),this._domElement.removeEventListener("touchend",this.onTouchEnd),this._domElement.style.cursor=""})),i(this,"dispose",(()=>this.deactivate())),i(this,"getObjects",(()=>this._objects)),i(this,"getRaycaster",(()=>this._raycaster)),i(this,"onMouseMove",(e=>{const t=this._domElement.getBoundingClientRect();if(this._mouse.x=(e.clientX-t.left)/t.width*2-1,this._mouse.y=-(e.clientY-t.top)/t.height*2+1,this._raycaster.setFromCamera(this._mouse,this._camera),this._selected&&this.enabled)return this._raycaster.ray.intersectPlane(this._plane,this._intersection)&&this._selected.position.copy(this._intersection.sub(this._offset).applyMatrix4(this._inverseMatrix)),void this.dispatchEvent({type:"drag",object:this._selected});if(this._intersections.length=0,this._raycaster.setFromCamera(this._mouse,this._camera),this._raycaster.intersectObjects(this._objects,!0,this._intersections),this._intersections.length>0){const e=this._intersections[0].object;this._plane.setFromNormalAndCoplanarPoint(this._camera.getWorldDirection(this._plane.normal),this._worldPosition.setFromMatrixPosition(e.matrixWorld)),this._hovered!==e&&(this.dispatchEvent({type:"hoveron",object:e}),this._domElement.style.cursor="pointer",this._hovered=e)}else null!==this._hovered&&(this.dispatchEvent({type:"hoveroff",object:this._hovered}),this._domElement.style.cursor="auto",this._hovered=null)})),i(this,"onMouseDown",(()=>{this._intersections.length=0,this._raycaster.setFromCamera(this._mouse,this._camera),this._raycaster.intersectObjects(this._objects,!0,this._intersections),this._intersections.length>0&&(this._selected=!0===this.transformGroup?this._objects[0]:this._intersections[0].object,this._raycaster.ray.intersectPlane(this._plane,this._intersection)&&this._selected.parent&&(this._inverseMatrix.copy(this._selected.parent.matrixWorld).invert(),this._offset.copy(this._intersection).sub(this._worldPosition.setFromMatrixPosition(this._selected.matrixWorld))),this._domElement.style.cursor="move",this.dispatchEvent({type:"dragstart",object:this._selected}))})),i(this,"onMouseCancel",(()=>{this._selected&&(this.dispatchEvent({type:"dragend",object:this._selected}),this._selected=null),this._domElement.style.cursor=this._hovered?"pointer":"auto"})),i(this,"onPointerMove",(e=>{switch(e.pointerType){case"mouse":case"pen":this.onMouseMove(e)}})),i(this,"onPointerDown",(e=>{switch(e.pointerType){case"mouse":case"pen":this.onMouseDown()}})),i(this,"onPointerCancel",(e=>{switch(e.pointerType){case"mouse":case"pen":this.onMouseCancel()}})),i(this,"onTouchMove",(e=>{e.preventDefault();const t=e.changedTouches[0],r=this._domElement.getBoundingClientRect();if(this._mouse.x=(t.clientX-r.left)/r.width*2-1,this._mouse.y=-(t.clientY-r.top)/r.height*2+1,this._raycaster.setFromCamera(this._mouse,this._camera),this._selected&&this.enabled)return this._raycaster.ray.intersectPlane(this._plane,this._intersection)&&this._selected.position.copy(this._intersection.sub(this._offset).applyMatrix4(this._inverseMatrix)),void this.dispatchEvent({type:"drag",object:this._selected})})),i(this,"onTouchStart",(e=>{e.preventDefault();const t=e.changedTouches[0],r=this._domElement.getBoundingClientRect();this._mouse.x=(t.clientX-r.left)/r.width*2-1,this._mouse.y=-(t.clientY-r.top)/r.height*2+1,this._intersections.length=0,this._raycaster.setFromCamera(this._mouse,this._camera),this._raycaster.intersectObjects(this._objects,!0,this._intersections),this._intersections.length>0&&(this._selected=!0===this.transformGroup?this._objects[0]:this._intersections[0].object,this._plane.setFromNormalAndCoplanarPoint(this._camera.getWorldDirection(this._plane.normal),this._worldPosition.setFromMatrixPosition(this._selected.matrixWorld)),this._raycaster.ray.intersectPlane(this._plane,this._intersection)&&this._selected.parent&&(this._inverseMatrix.copy(this._selected.parent.matrixWorld).invert(),this._offset.copy(this._intersection).sub(this._worldPosition.setFromMatrixPosition(this._selected.matrixWorld))),this._domElement.style.cursor="move",this.dispatchEvent({type:"dragstart",object:this._selected}))})),i(this,"onTouchEnd",(e=>{e.preventDefault(),this._selected&&(this.dispatchEvent({type:"dragend",object:this._selected}),this._selected=null),this._domElement.style.cursor="auto"})),this._objects=e,this._camera=t,this._domElement=r,this.activate()}}t.DragControls=a},53667:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=new s.Vector3;class o extends s.EventDispatcher{constructor(e,t){super(),i(this,"object"),i(this,"domElement"),i(this,"enabled",!0),i(this,"movementSpeed",1),i(this,"lookSpeed",.005),i(this,"lookVertical",!0),i(this,"autoForward",!1),i(this,"activeLook",!0),i(this,"heightSpeed",!1),i(this,"heightCoef",1),i(this,"heightMin",0),i(this,"heightMax",1),i(this,"constrainVertical",!1),i(this,"verticalMin",0),i(this,"verticalMax",Math.PI),i(this,"mouseDragOn",!1),i(this,"autoSpeedFactor",0),i(this,"mouseX",0),i(this,"mouseY",0),i(this,"moveForward",!1),i(this,"moveBackward",!1),i(this,"moveLeft",!1),i(this,"moveRight",!1),i(this,"moveUp",!1),i(this,"moveDown",!1),i(this,"viewHalfX",0),i(this,"viewHalfY",0),i(this,"lat",0),i(this,"lon",0),i(this,"lookDirection",new s.Vector3),i(this,"spherical",new s.Spherical),i(this,"target",new s.Vector3),i(this,"connect",(e=>{e.setAttribute("tabindex","-1"),e.style.touchAction="none",e.addEventListener("contextmenu",this.contextmenu),e.addEventListener("mousemove",this.onMouseMove),e.addEventListener("mousedown",this.onMouseDown),e.addEventListener("mouseup",this.onMouseUp),this.domElement=e,window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp),this.handleResize()})),i(this,"dispose",(()=>{var e,t,r,n;null==(e=this.domElement)||e.removeEventListener("contextmenu",this.contextmenu),null==(t=this.domElement)||t.removeEventListener("mousedown",this.onMouseDown),null==(r=this.domElement)||r.removeEventListener("mousemove",this.onMouseMove),null==(n=this.domElement)||n.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp)})),i(this,"handleResize",(()=>{this.domElement&&(this.viewHalfX=this.domElement.offsetWidth/2,this.viewHalfY=this.domElement.offsetHeight/2)})),i(this,"onMouseDown",(e=>{var t;if(null==(t=this.domElement)||t.focus(),this.activeLook)switch(e.button){case 0:this.moveForward=!0;break;case 2:this.moveBackward=!0}this.mouseDragOn=!0})),i(this,"onMouseUp",(e=>{if(this.activeLook)switch(e.button){case 0:this.moveForward=!1;break;case 2:this.moveBackward=!1}this.mouseDragOn=!1})),i(this,"onMouseMove",(e=>{this.domElement&&(this.mouseX=e.pageX-this.domElement.offsetLeft-this.viewHalfX,this.mouseY=e.pageY-this.domElement.offsetTop-this.viewHalfY)})),i(this,"onKeyDown",(e=>{switch(e.code){case"ArrowUp":case"KeyW":this.moveForward=!0;break;case"ArrowLeft":case"KeyA":this.moveLeft=!0;break;case"ArrowDown":case"KeyS":this.moveBackward=!0;break;case"ArrowRight":case"KeyD":this.moveRight=!0;break;case"KeyR":this.moveUp=!0;break;case"KeyF":this.moveDown=!0}})),i(this,"onKeyUp",(e=>{switch(e.code){case"ArrowUp":case"KeyW":this.moveForward=!1;break;case"ArrowLeft":case"KeyA":this.moveLeft=!1;break;case"ArrowDown":case"KeyS":this.moveBackward=!1;break;case"ArrowRight":case"KeyD":this.moveRight=!1;break;case"KeyR":this.moveUp=!1;break;case"KeyF":this.moveDown=!1}})),i(this,"lookAt",((e,t,r)=>(e instanceof s.Vector3?this.target.copy(e):t&&r&&this.target.set(e,t,r),this.object.lookAt(this.target),this.setOrientation(),this))),i(this,"update",(e=>{if(!this.enabled)return;if(this.heightSpeed){const t=s.MathUtils.clamp(this.object.position.y,this.heightMin,this.heightMax)-this.heightMin;this.autoSpeedFactor=e*(t*this.heightCoef)}else this.autoSpeedFactor=0;const t=e*this.movementSpeed;(this.moveForward||this.autoForward&&!this.moveBackward)&&this.object.translateZ(-(t+this.autoSpeedFactor)),this.moveBackward&&this.object.translateZ(t),this.moveLeft&&this.object.translateX(-t),this.moveRight&&this.object.translateX(t),this.moveUp&&this.object.translateY(t),this.moveDown&&this.object.translateY(-t);let r=e*this.lookSpeed;this.activeLook||(r=0);let n=1;this.constrainVertical&&(n=Math.PI/(this.verticalMax-this.verticalMin)),this.lon-=this.mouseX*r,this.lookVertical&&(this.lat-=this.mouseY*r*n),this.lat=Math.max(-85,Math.min(85,this.lat));let i=s.MathUtils.degToRad(90-this.lat);const o=s.MathUtils.degToRad(this.lon);this.constrainVertical&&(i=s.MathUtils.mapLinear(i,0,Math.PI,this.verticalMin,this.verticalMax));const l=this.object.position;a.setFromSphericalCoords(1,i,o).add(l),this.object.lookAt(a)})),i(this,"contextmenu",(e=>e.preventDefault())),i(this,"setOrientation",(()=>{this.lookDirection.set(0,0,-1).applyQuaternion(this.object.quaternion),this.spherical.setFromVector3(this.lookDirection),this.lat=90-s.MathUtils.radToDeg(this.spherical.phi),this.lon=s.MathUtils.radToDeg(this.spherical.theta)})),this.object=e,this.domElement=t,this.setOrientation(),t&&this.connect(t)}}t.FirstPersonControls=o},49888:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);function a(e){e.preventDefault()}class o extends s.EventDispatcher{constructor(e,t){super(),i(this,"object"),i(this,"domElement",null),i(this,"movementSpeed",1),i(this,"rollSpeed",.005),i(this,"dragToLook",!1),i(this,"autoForward",!1),i(this,"changeEvent",{type:"change"}),i(this,"EPS",1e-6),i(this,"tmpQuaternion",new s.Quaternion),i(this,"mouseStatus",0),i(this,"movementSpeedMultiplier",1),i(this,"moveState",{up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0}),i(this,"moveVector",new s.Vector3(0,0,0)),i(this,"rotationVector",new s.Vector3(0,0,0)),i(this,"keydown",(e=>{if(!e.altKey){switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=.1;break;case"KeyW":this.moveState.forward=1;break;case"KeyS":this.moveState.back=1;break;case"KeyA":this.moveState.left=1;break;case"KeyD":this.moveState.right=1;break;case"KeyR":this.moveState.up=1;break;case"KeyF":this.moveState.down=1;break;case"ArrowUp":this.moveState.pitchUp=1;break;case"ArrowDown":this.moveState.pitchDown=1;break;case"ArrowLeft":this.moveState.yawLeft=1;break;case"ArrowRight":this.moveState.yawRight=1;break;case"KeyQ":this.moveState.rollLeft=1;break;case"KeyE":this.moveState.rollRight=1}this.updateMovementVector(),this.updateRotationVector()}})),i(this,"keyup",(e=>{switch(e.code){case"ShiftLeft":case"ShiftRight":this.movementSpeedMultiplier=1;break;case"KeyW":this.moveState.forward=0;break;case"KeyS":this.moveState.back=0;break;case"KeyA":this.moveState.left=0;break;case"KeyD":this.moveState.right=0;break;case"KeyR":this.moveState.up=0;break;case"KeyF":this.moveState.down=0;break;case"ArrowUp":this.moveState.pitchUp=0;break;case"ArrowDown":this.moveState.pitchDown=0;break;case"ArrowLeft":this.moveState.yawLeft=0;break;case"ArrowRight":this.moveState.yawRight=0;break;case"KeyQ":this.moveState.rollLeft=0;break;case"KeyE":this.moveState.rollRight=0}this.updateMovementVector(),this.updateRotationVector()})),i(this,"pointerdown",(e=>{if(this.dragToLook)this.mouseStatus++;else{switch(e.button){case 0:this.moveState.forward=1;break;case 2:this.moveState.back=1}this.updateMovementVector()}})),i(this,"pointermove",(e=>{if(!this.dragToLook||this.mouseStatus>0){const t=this.getContainerDimensions(),r=t.size[0]/2,n=t.size[1]/2;this.moveState.yawLeft=-(e.pageX-t.offset[0]-r)/r,this.moveState.pitchDown=(e.pageY-t.offset[1]-n)/n,this.updateRotationVector()}})),i(this,"pointerup",(e=>{if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else{switch(e.button){case 0:this.moveState.forward=0;break;case 2:this.moveState.back=0}this.updateMovementVector()}this.updateRotationVector()})),i(this,"lastQuaternion",new s.Quaternion),i(this,"lastPosition",new s.Vector3),i(this,"update",(e=>{const t=e*this.movementSpeed,r=e*this.rollSpeed;this.object.translateX(this.moveVector.x*t),this.object.translateY(this.moveVector.y*t),this.object.translateZ(this.moveVector.z*t),this.tmpQuaternion.set(this.rotationVector.x*r,this.rotationVector.y*r,this.rotationVector.z*r,1).normalize(),this.object.quaternion.multiply(this.tmpQuaternion),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS)&&(this.dispatchEvent(this.changeEvent),this.lastQuaternion.copy(this.object.quaternion),this.lastPosition.copy(this.object.position))})),i(this,"updateMovementVector",(()=>{const e=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right,this.moveVector.y=-this.moveState.down+this.moveState.up,this.moveVector.z=-e+this.moveState.back})),i(this,"updateRotationVector",(()=>{this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp,this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft,this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft})),i(this,"getContainerDimensions",(()=>this.domElement==document||this.domElement instanceof Document?{size:[window.innerWidth,window.innerHeight],offset:[0,0]}:{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]})),i(this,"connect",(e=>{this.domElement=e,!e||e instanceof Document||e.setAttribute("tabindex",-1),this.domElement.addEventListener("contextmenu",a),this.domElement.addEventListener("pointermove",this.pointermove),this.domElement.addEventListener("pointerdown",this.pointerdown),this.domElement.addEventListener("pointerup",this.pointerup),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup)})),i(this,"dispose",(()=>{this.domElement.removeEventListener("contextmenu",a),this.domElement.removeEventListener("pointermove",this.pointermove),this.domElement.removeEventListener("pointerdown",this.pointerdown),this.domElement.removeEventListener("pointerup",this.pointerup),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup)})),this.object=e,void 0!==t&&this.connect(t),this.updateMovementVector(),this.updateRotationVector()}}t.FlyControls=o},78122:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=new s.Ray,o=new s.Plane,l=Math.cos(Math.PI/180*70),c=(e,t)=>(e%t+t)%t;class h extends s.EventDispatcher{constructor(e,t){super(),i(this,"object"),i(this,"domElement"),i(this,"enabled",!0),i(this,"target",new s.Vector3),i(this,"minDistance",0),i(this,"maxDistance",1/0),i(this,"minZoom",0),i(this,"maxZoom",1/0),i(this,"minPolarAngle",0),i(this,"maxPolarAngle",Math.PI),i(this,"minAzimuthAngle",-1/0),i(this,"maxAzimuthAngle",1/0),i(this,"enableDamping",!1),i(this,"dampingFactor",.05),i(this,"enableZoom",!0),i(this,"zoomSpeed",1),i(this,"enableRotate",!0),i(this,"rotateSpeed",1),i(this,"enablePan",!0),i(this,"panSpeed",1),i(this,"screenSpacePanning",!0),i(this,"keyPanSpeed",7),i(this,"zoomToCursor",!1),i(this,"autoRotate",!1),i(this,"autoRotateSpeed",2),i(this,"reverseOrbit",!1),i(this,"reverseHorizontalOrbit",!1),i(this,"reverseVerticalOrbit",!1),i(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),i(this,"mouseButtons",{LEFT:s.MOUSE.ROTATE,MIDDLE:s.MOUSE.DOLLY,RIGHT:s.MOUSE.PAN}),i(this,"touches",{ONE:s.TOUCH.ROTATE,TWO:s.TOUCH.DOLLY_PAN}),i(this,"target0"),i(this,"position0"),i(this,"zoom0"),i(this,"_domElementKeyEvents",null),i(this,"getPolarAngle"),i(this,"getAzimuthalAngle"),i(this,"setPolarAngle"),i(this,"setAzimuthalAngle"),i(this,"getDistance"),i(this,"listenToKeyEvents"),i(this,"stopListenToKeyEvents"),i(this,"saveState"),i(this,"reset"),i(this,"update"),i(this,"connect"),i(this,"dispose"),this.object=e,this.domElement=t,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this.getPolarAngle=()=>m.phi,this.getAzimuthalAngle=()=>m.theta,this.setPolarAngle=e=>{let t=c(e,2*Math.PI),n=m.phi;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-n);2*Math.PI-i{let t=c(e,2*Math.PI),n=m.theta;n<0&&(n+=2*Math.PI),t<0&&(t+=2*Math.PI);let i=Math.abs(t-n);2*Math.PI-ir.object.position.distanceTo(r.target),this.listenToKeyEvents=e=>{e.addEventListener("keydown",re),this._domElementKeyEvents=e},this.stopListenToKeyEvents=()=>{this._domElementKeyEvents.removeEventListener("keydown",re),this._domElementKeyEvents=null},this.saveState=()=>{r.target0.copy(r.target),r.position0.copy(r.object.position),r.zoom0=r.object.zoom},this.reset=()=>{r.target.copy(r.target0),r.object.position.copy(r.position0),r.object.zoom=r.zoom0,r.object.updateProjectionMatrix(),r.dispatchEvent(n),r.update(),p=d.NONE},this.update=(()=>{const t=new s.Vector3,i=new s.Vector3(0,1,0),c=(new s.Quaternion).setFromUnitVectors(e.up,i),h=c.clone().invert(),u=new s.Vector3,y=new s.Quaternion,x=2*Math.PI;return function(){const b=r.object.position;c.setFromUnitVectors(e.up,i),h.copy(c).invert(),t.copy(b).sub(r.target),t.applyQuaternion(c),m.setFromVector3(t),r.autoRotate&&p===d.NONE&&L(2*Math.PI/60/60*r.autoRotateSpeed),r.enableDamping?(m.theta+=g.theta*r.dampingFactor,m.phi+=g.phi*r.dampingFactor):(m.theta+=g.theta,m.phi+=g.phi);let E=r.minAzimuthAngle,_=r.maxAzimuthAngle;isFinite(E)&&isFinite(_)&&(E<-Math.PI?E+=x:E>Math.PI&&(E-=x),_<-Math.PI?_+=x:_>Math.PI&&(_-=x),m.theta=E<=_?Math.max(E,Math.min(_,m.theta)):m.theta>(E+_)/2?Math.max(E,m.theta):Math.min(_,m.theta)),m.phi=Math.max(r.minPolarAngle,Math.min(r.maxPolarAngle,m.phi)),m.makeSafe(),!0===r.enableDamping?r.target.addScaledVector(v,r.dampingFactor):r.target.add(v),r.zoomToCursor&&B||r.object.isOrthographicCamera?m.radius=Q(m.radius):m.radius=Q(m.radius*A),t.setFromSpherical(m),t.applyQuaternion(h),b.copy(r.target).add(t),r.object.lookAt(r.target),!0===r.enableDamping?(g.theta*=1-r.dampingFactor,g.phi*=1-r.dampingFactor,v.multiplyScalar(1-r.dampingFactor)):(g.set(0,0,0),v.set(0,0,0));let S=!1;if(r.zoomToCursor&&B){let n=null;if(r.object instanceof s.PerspectiveCamera&&r.object.isPerspectiveCamera){const e=t.length();n=Q(e*A);const i=e-n;r.object.position.addScaledVector(T,i),r.object.updateMatrixWorld()}else if(r.object.isOrthographicCamera){const e=new s.Vector3(I.x,I.y,0);e.unproject(r.object),r.object.zoom=Math.max(r.minZoom,Math.min(r.maxZoom,r.object.zoom/A)),r.object.updateProjectionMatrix(),S=!0;const i=new s.Vector3(I.x,I.y,0);i.unproject(r.object),r.object.position.sub(i).add(e),r.object.updateMatrixWorld(),n=t.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),r.zoomToCursor=!1;null!==n&&(r.screenSpacePanning?r.target.set(0,0,-1).transformDirection(r.object.matrix).multiplyScalar(n).add(r.object.position):(a.origin.copy(r.object.position),a.direction.set(0,0,-1).transformDirection(r.object.matrix),Math.abs(r.object.up.dot(a.direction))f||8*(1-y.dot(r.object.quaternion))>f)&&(r.dispatchEvent(n),u.copy(r.object.position),y.copy(r.object.quaternion),S=!1,!0)}})(),this.connect=e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),r.domElement=e,r.domElement.style.touchAction="none",r.domElement.addEventListener("contextmenu",ne),r.domElement.addEventListener("pointerdown",J),r.domElement.addEventListener("pointercancel",ee),r.domElement.addEventListener("wheel",te)},this.dispose=()=>{var e,t,n,i,s,a;null==(e=r.domElement)||e.removeEventListener("contextmenu",ne),null==(t=r.domElement)||t.removeEventListener("pointerdown",J),null==(n=r.domElement)||n.removeEventListener("pointercancel",ee),null==(i=r.domElement)||i.removeEventListener("wheel",te),null==(s=r.domElement)||s.ownerDocument.removeEventListener("pointermove",Z),null==(a=r.domElement)||a.ownerDocument.removeEventListener("pointerup",$),null!==r._domElementKeyEvents&&r._domElementKeyEvents.removeEventListener("keydown",re)};const r=this,n={type:"change"},h={type:"start"},u={type:"end"},d={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let p=d.NONE;const f=1e-6,m=new s.Spherical,g=new s.Spherical;let A=1;const v=new s.Vector3,y=new s.Vector2,x=new s.Vector2,b=new s.Vector2,E=new s.Vector2,_=new s.Vector2,S=new s.Vector2,M=new s.Vector2,w=new s.Vector2,C=new s.Vector2,T=new s.Vector3,I=new s.Vector2;let B=!1;const R=[],P={};function D(){return Math.pow(.95,r.zoomSpeed)}function L(e){r.reverseOrbit||r.reverseHorizontalOrbit?g.theta+=e:g.theta-=e}function F(e){r.reverseOrbit||r.reverseVerticalOrbit?g.phi+=e:g.phi-=e}const U=(()=>{const e=new s.Vector3;return function(t,r){e.setFromMatrixColumn(r,0),e.multiplyScalar(-t),v.add(e)}})(),O=(()=>{const e=new s.Vector3;return function(t,n){!0===r.screenSpacePanning?e.setFromMatrixColumn(n,1):(e.setFromMatrixColumn(n,0),e.crossVectors(r.object.up,e)),e.multiplyScalar(t),v.add(e)}})(),N=(()=>{const e=new s.Vector3;return function(t,n){const i=r.domElement;if(i&&r.object instanceof s.PerspectiveCamera&&r.object.isPerspectiveCamera){const s=r.object.position;e.copy(s).sub(r.target);let a=e.length();a*=Math.tan(r.object.fov/2*Math.PI/180),U(2*t*a/i.clientHeight,r.object.matrix),O(2*n*a/i.clientHeight,r.object.matrix)}else i&&r.object instanceof s.OrthographicCamera&&r.object.isOrthographicCamera?(U(t*(r.object.right-r.object.left)/r.object.zoom/i.clientWidth,r.object.matrix),O(n*(r.object.top-r.object.bottom)/r.object.zoom/i.clientHeight,r.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),r.enablePan=!1)}})();function k(e){r.object instanceof s.PerspectiveCamera&&r.object.isPerspectiveCamera||r.object instanceof s.OrthographicCamera&&r.object.isOrthographicCamera?A/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r.enableZoom=!1)}function G(e){r.object instanceof s.PerspectiveCamera&&r.object.isPerspectiveCamera||r.object instanceof s.OrthographicCamera&&r.object.isOrthographicCamera?A*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),r.enableZoom=!1)}function z(e){if(!r.zoomToCursor||!r.domElement)return;B=!0;const t=r.domElement.getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top,s=t.width,a=t.height;I.x=n/s*2-1,I.y=-i/a*2+1,T.set(I.x,I.y,1).unproject(r.object).sub(r.object.position).normalize()}function Q(e){return Math.max(r.minDistance,Math.min(r.maxDistance,e))}function V(e){y.set(e.clientX,e.clientY)}function H(e){E.set(e.clientX,e.clientY)}function j(){if(1==R.length)y.set(R[0].pageX,R[0].pageY);else{const e=.5*(R[0].pageX+R[1].pageX),t=.5*(R[0].pageY+R[1].pageY);y.set(e,t)}}function W(){if(1==R.length)E.set(R[0].pageX,R[0].pageY);else{const e=.5*(R[0].pageX+R[1].pageX),t=.5*(R[0].pageY+R[1].pageY);E.set(e,t)}}function X(){const e=R[0].pageX-R[1].pageX,t=R[0].pageY-R[1].pageY,r=Math.sqrt(e*e+t*t);M.set(0,r)}function Y(e){if(1==R.length)x.set(e.pageX,e.pageY);else{const t=ae(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);x.set(r,n)}b.subVectors(x,y).multiplyScalar(r.rotateSpeed);const t=r.domElement;t&&(L(2*Math.PI*b.x/t.clientHeight),F(2*Math.PI*b.y/t.clientHeight)),y.copy(x)}function q(e){if(1==R.length)_.set(e.pageX,e.pageY);else{const t=ae(e),r=.5*(e.pageX+t.x),n=.5*(e.pageY+t.y);_.set(r,n)}S.subVectors(_,E).multiplyScalar(r.panSpeed),N(S.x,S.y),E.copy(_)}function K(e){const t=ae(e),n=e.pageX-t.x,i=e.pageY-t.y,s=Math.sqrt(n*n+i*i);w.set(0,s),C.set(0,Math.pow(w.y/M.y,r.zoomSpeed)),k(C.y),M.copy(w)}function J(e){var t,n;!1!==r.enabled&&(0===R.length&&(null==(t=r.domElement)||t.ownerDocument.addEventListener("pointermove",Z),null==(n=r.domElement)||n.ownerDocument.addEventListener("pointerup",$)),function(e){R.push(e)}(e),"touch"===e.pointerType?function(e){switch(se(e),R.length){case 1:switch(r.touches.ONE){case s.TOUCH.ROTATE:if(!1===r.enableRotate)return;j(),p=d.TOUCH_ROTATE;break;case s.TOUCH.PAN:if(!1===r.enablePan)return;W(),p=d.TOUCH_PAN;break;default:p=d.NONE}break;case 2:switch(r.touches.TWO){case s.TOUCH.DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;r.enableZoom&&X(),r.enablePan&&W(),p=d.TOUCH_DOLLY_PAN;break;case s.TOUCH.DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;r.enableZoom&&X(),r.enableRotate&&j(),p=d.TOUCH_DOLLY_ROTATE;break;default:p=d.NONE}break;default:p=d.NONE}p!==d.NONE&&r.dispatchEvent(h)}(e):function(e){let t;switch(e.button){case 0:t=r.mouseButtons.LEFT;break;case 1:t=r.mouseButtons.MIDDLE;break;case 2:t=r.mouseButtons.RIGHT;break;default:t=-1}switch(t){case s.MOUSE.DOLLY:if(!1===r.enableZoom)return;!function(e){z(e),M.set(e.clientX,e.clientY)}(e),p=d.DOLLY;break;case s.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enablePan)return;H(e),p=d.PAN}else{if(!1===r.enableRotate)return;V(e),p=d.ROTATE}break;case s.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===r.enableRotate)return;V(e),p=d.ROTATE}else{if(!1===r.enablePan)return;H(e),p=d.PAN}break;default:p=d.NONE}p!==d.NONE&&r.dispatchEvent(h)}(e))}function Z(e){!1!==r.enabled&&("touch"===e.pointerType?function(e){switch(se(e),p){case d.TOUCH_ROTATE:if(!1===r.enableRotate)return;Y(e),r.update();break;case d.TOUCH_PAN:if(!1===r.enablePan)return;q(e),r.update();break;case d.TOUCH_DOLLY_PAN:if(!1===r.enableZoom&&!1===r.enablePan)return;!function(e){r.enableZoom&&K(e),r.enablePan&&q(e)}(e),r.update();break;case d.TOUCH_DOLLY_ROTATE:if(!1===r.enableZoom&&!1===r.enableRotate)return;!function(e){r.enableZoom&&K(e),r.enableRotate&&Y(e)}(e),r.update();break;default:p=d.NONE}}(e):function(e){if(!1===r.enabled)return;switch(p){case d.ROTATE:if(!1===r.enableRotate)return;!function(e){x.set(e.clientX,e.clientY),b.subVectors(x,y).multiplyScalar(r.rotateSpeed);const t=r.domElement;t&&(L(2*Math.PI*b.x/t.clientHeight),F(2*Math.PI*b.y/t.clientHeight)),y.copy(x),r.update()}(e);break;case d.DOLLY:if(!1===r.enableZoom)return;!function(e){w.set(e.clientX,e.clientY),C.subVectors(w,M),C.y>0?k(D()):C.y<0&&G(D()),M.copy(w),r.update()}(e);break;case d.PAN:if(!1===r.enablePan)return;!function(e){_.set(e.clientX,e.clientY),S.subVectors(_,E).multiplyScalar(r.panSpeed),N(S.x,S.y),E.copy(_),r.update()}(e)}}(e))}function $(e){var t,n,i;ie(e),0===R.length&&(null==(t=r.domElement)||t.releasePointerCapture(e.pointerId),null==(n=r.domElement)||n.ownerDocument.removeEventListener("pointermove",Z),null==(i=r.domElement)||i.ownerDocument.removeEventListener("pointerup",$)),r.dispatchEvent(u),p=d.NONE}function ee(e){ie(e)}function te(e){!1===r.enabled||!1===r.enableZoom||p!==d.NONE&&p!==d.ROTATE||(e.preventDefault(),r.dispatchEvent(h),function(e){z(e),e.deltaY<0?G(D()):e.deltaY>0&&k(D()),r.update()}(e),r.dispatchEvent(u))}function re(e){!1!==r.enabled&&!1!==r.enablePan&&function(e){let t=!1;switch(e.code){case r.keys.UP:N(0,r.keyPanSpeed),t=!0;break;case r.keys.BOTTOM:N(0,-r.keyPanSpeed),t=!0;break;case r.keys.LEFT:N(r.keyPanSpeed,0),t=!0;break;case r.keys.RIGHT:N(-r.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),r.update())}(e)}function ne(e){!1!==r.enabled&&e.preventDefault()}function ie(e){delete P[e.pointerId];for(let t=0;t{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=new s.Euler(0,0,0,"YXZ"),o=new s.Vector3,l={type:"change"},c={type:"lock"},h={type:"unlock"},u=Math.PI/2;class d extends s.EventDispatcher{constructor(e,t){super(),i(this,"camera"),i(this,"domElement"),i(this,"isLocked"),i(this,"minPolarAngle"),i(this,"maxPolarAngle"),i(this,"pointerSpeed"),i(this,"onMouseMove",(e=>{if(!this.domElement||!1===this.isLocked)return;const t=e.movementX||e.mozMovementX||e.webkitMovementX||0,r=e.movementY||e.mozMovementY||e.webkitMovementY||0;a.setFromQuaternion(this.camera.quaternion),a.y-=.002*t*this.pointerSpeed,a.x-=.002*r*this.pointerSpeed,a.x=Math.max(u-this.maxPolarAngle,Math.min(u-this.minPolarAngle,a.x)),this.camera.quaternion.setFromEuler(a),this.dispatchEvent(l)})),i(this,"onPointerlockChange",(()=>{this.domElement&&(this.domElement.ownerDocument.pointerLockElement===this.domElement?(this.dispatchEvent(c),this.isLocked=!0):(this.dispatchEvent(h),this.isLocked=!1))})),i(this,"onPointerlockError",(()=>{console.error("THREE.PointerLockControls: Unable to use Pointer Lock API")})),i(this,"connect",(e=>{this.domElement=e||this.domElement,this.domElement&&(this.domElement.ownerDocument.addEventListener("mousemove",this.onMouseMove),this.domElement.ownerDocument.addEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.addEventListener("pointerlockerror",this.onPointerlockError))})),i(this,"disconnect",(()=>{this.domElement&&(this.domElement.ownerDocument.removeEventListener("mousemove",this.onMouseMove),this.domElement.ownerDocument.removeEventListener("pointerlockchange",this.onPointerlockChange),this.domElement.ownerDocument.removeEventListener("pointerlockerror",this.onPointerlockError))})),i(this,"dispose",(()=>{this.disconnect()})),i(this,"getObject",(()=>this.camera)),i(this,"direction",new s.Vector3(0,0,-1)),i(this,"getDirection",(e=>e.copy(this.direction).applyQuaternion(this.camera.quaternion))),i(this,"moveForward",(e=>{o.setFromMatrixColumn(this.camera.matrix,0),o.crossVectors(this.camera.up,o),this.camera.position.addScaledVector(o,e)})),i(this,"moveRight",(e=>{o.setFromMatrixColumn(this.camera.matrix,0),this.camera.position.addScaledVector(o,e)})),i(this,"lock",(()=>{this.domElement&&this.domElement.requestPointerLock()})),i(this,"unlock",(()=>{this.domElement&&this.domElement.ownerDocument.exitPointerLock()})),this.camera=e,this.domElement=t,this.isLocked=!1,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.pointerSpeed=1,t&&this.connect(t)}}t.PointerLockControls=d},46603:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);class a extends s.EventDispatcher{constructor(e,t){super(),i(this,"enabled",!0),i(this,"screen",{left:0,top:0,width:0,height:0}),i(this,"rotateSpeed",1),i(this,"zoomSpeed",1.2),i(this,"panSpeed",.3),i(this,"noRotate",!1),i(this,"noZoom",!1),i(this,"noPan",!1),i(this,"staticMoving",!1),i(this,"dynamicDampingFactor",.2),i(this,"minDistance",0),i(this,"maxDistance",1/0),i(this,"keys",["KeyA","KeyS","KeyD"]),i(this,"mouseButtons",{LEFT:s.MOUSE.ROTATE,MIDDLE:s.MOUSE.DOLLY,RIGHT:s.MOUSE.PAN}),i(this,"object"),i(this,"domElement"),i(this,"cursorZoom",!1),i(this,"target",new s.Vector3),i(this,"mousePosition",new s.Vector2),i(this,"STATE",{NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4}),i(this,"EPS",1e-6),i(this,"lastZoom",1),i(this,"lastPosition",new s.Vector3),i(this,"cursorVector",new s.Vector3),i(this,"targetVector",new s.Vector3),i(this,"_state",this.STATE.NONE),i(this,"_keyState",this.STATE.NONE),i(this,"_eye",new s.Vector3),i(this,"_movePrev",new s.Vector2),i(this,"_moveCurr",new s.Vector2),i(this,"_lastAxis",new s.Vector3),i(this,"_lastAngle",0),i(this,"_zoomStart",new s.Vector2),i(this,"_zoomEnd",new s.Vector2),i(this,"_touchZoomDistanceStart",0),i(this,"_touchZoomDistanceEnd",0),i(this,"_panStart",new s.Vector2),i(this,"_panEnd",new s.Vector2),i(this,"target0"),i(this,"position0"),i(this,"up0"),i(this,"zoom0"),i(this,"changeEvent",{type:"change"}),i(this,"startEvent",{type:"start"}),i(this,"endEvent",{type:"end"}),i(this,"onScreenVector",new s.Vector2),i(this,"getMouseOnScreen",((e,t)=>(this.onScreenVector.set((e-this.screen.left)/this.screen.width,(t-this.screen.top)/this.screen.height),this.onScreenVector))),i(this,"onCircleVector",new s.Vector2),i(this,"getMouseOnCircle",((e,t)=>(this.onCircleVector.set((e-.5*this.screen.width-this.screen.left)/(.5*this.screen.width),(this.screen.height+2*(this.screen.top-t))/this.screen.width),this.onCircleVector))),i(this,"axis",new s.Vector3),i(this,"quaternion",new s.Quaternion),i(this,"eyeDirection",new s.Vector3),i(this,"objectUpDirection",new s.Vector3),i(this,"objectSidewaysDirection",new s.Vector3),i(this,"moveDirection",new s.Vector3),i(this,"angle",0),i(this,"rotateCamera",(()=>{this.moveDirection.set(this._moveCurr.x-this._movePrev.x,this._moveCurr.y-this._movePrev.y,0),this.angle=this.moveDirection.length(),this.angle?(this._eye.copy(this.object.position).sub(this.target),this.eyeDirection.copy(this._eye).normalize(),this.objectUpDirection.copy(this.object.up).normalize(),this.objectSidewaysDirection.crossVectors(this.objectUpDirection,this.eyeDirection).normalize(),this.objectUpDirection.setLength(this._moveCurr.y-this._movePrev.y),this.objectSidewaysDirection.setLength(this._moveCurr.x-this._movePrev.x),this.moveDirection.copy(this.objectUpDirection.add(this.objectSidewaysDirection)),this.axis.crossVectors(this.moveDirection,this._eye).normalize(),this.angle*=this.rotateSpeed,this.quaternion.setFromAxisAngle(this.axis,this.angle),this._eye.applyQuaternion(this.quaternion),this.object.up.applyQuaternion(this.quaternion),this._lastAxis.copy(this.axis),this._lastAngle=this.angle):!this.staticMoving&&this._lastAngle&&(this._lastAngle*=Math.sqrt(1-this.dynamicDampingFactor),this._eye.copy(this.object.position).sub(this.target),this.quaternion.setFromAxisAngle(this._lastAxis,this._lastAngle),this._eye.applyQuaternion(this.quaternion),this.object.up.applyQuaternion(this.quaternion)),this._movePrev.copy(this._moveCurr)})),i(this,"zoomCamera",(()=>{let e;if(this._state===this.STATE.TOUCH_ZOOM_PAN)e=this._touchZoomDistanceStart/this._touchZoomDistanceEnd,this._touchZoomDistanceStart=this._touchZoomDistanceEnd,this.object.isPerspectiveCamera?this._eye.multiplyScalar(e):this.object.isOrthographicCamera?(this.object.zoom/=e,this.object.updateProjectionMatrix()):console.warn("THREE.TrackballControls: Unsupported camera type");else{if(e=1+(this._zoomEnd.y-this._zoomStart.y)*this.zoomSpeed,Math.abs(e-1)>this.EPS&&e>0&&(this.object.isPerspectiveCamera?(e>1&&this._eye.length()>=this.maxDistance-this.EPS&&(e=1),this._eye.multiplyScalar(e)):this.object.isOrthographicCamera?(e>1&&this.object.zoom{if(this.domElement&&(this.mouseChange.copy(this._panEnd).sub(this._panStart),this.mouseChange.lengthSq()>this.EPS)){if(this.object.isOrthographicCamera){const e=this.object,t=(e.right-e.left)/this.object.zoom,r=(e.top-e.bottom)/this.object.zoom;this.mouseChange.x*=t,this.mouseChange.y*=r}else this.mouseChange.multiplyScalar(this._eye.length()*this.panSpeed);this.pan.copy(this._eye).cross(this.object.up).setLength(this.mouseChange.x),this.pan.add(this.objectUp.copy(this.object.up).setLength(this.mouseChange.y)),this.object.position.add(this.pan),this.target.add(this.pan),this.staticMoving?this._panStart.copy(this._panEnd):this._panStart.add(this.mouseChange.subVectors(this._panEnd,this._panStart).multiplyScalar(this.dynamicDampingFactor))}})),i(this,"checkDistances",(()=>{this.noZoom&&this.noPan||(this._eye.lengthSq()>this.maxDistance*this.maxDistance&&(this.object.position.addVectors(this.target,this._eye.setLength(this.maxDistance)),this._zoomStart.copy(this._zoomEnd)),this._eye.lengthSq(){if(!this.domElement)return;const e=this.domElement.getBoundingClientRect(),t=this.domElement.ownerDocument.documentElement;this.screen.left=e.left+window.pageXOffset-t.clientLeft,this.screen.top=e.top+window.pageYOffset-t.clientTop,this.screen.width=e.width,this.screen.height=e.height})),i(this,"update",(()=>{this._eye.subVectors(this.object.position,this.target),this.noRotate||this.rotateCamera(),this.noZoom||this.zoomCamera(),this.noPan||this.panCamera(),this.object.position.addVectors(this.target,this._eye),this.object.isPerspectiveCamera?(this.checkDistances(),this.object.lookAt(this.target),this.lastPosition.distanceToSquared(this.object.position)>this.EPS&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position))):this.object.isOrthographicCamera?(this.object.lookAt(this.target),(this.lastPosition.distanceToSquared(this.object.position)>this.EPS||this.lastZoom!==this.object.zoom)&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastZoom=this.object.zoom)):console.warn("THREE.TrackballControls: Unsupported camera type")})),i(this,"reset",(()=>{this._state=this.STATE.NONE,this._keyState=this.STATE.NONE,this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.up.copy(this.up0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this._eye.subVectors(this.object.position,this.target),this.object.lookAt(this.target),this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastZoom=this.object.zoom})),i(this,"keydown",(e=>{!1!==this.enabled&&(window.removeEventListener("keydown",this.keydown),this._keyState===this.STATE.NONE&&(e.code!==this.keys[this.STATE.ROTATE]||this.noRotate?e.code!==this.keys[this.STATE.ZOOM]||this.noZoom?e.code!==this.keys[this.STATE.PAN]||this.noPan||(this._keyState=this.STATE.PAN):this._keyState=this.STATE.ZOOM:this._keyState=this.STATE.ROTATE))})),i(this,"onPointerDown",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseDown(e)}})),i(this,"onPointerMove",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseMove(e)}})),i(this,"onPointerUp",(e=>{if(!1!==this.enabled)switch(e.pointerType){case"mouse":case"pen":this.onMouseUp()}})),i(this,"keyup",(()=>{!1!==this.enabled&&(this._keyState=this.STATE.NONE,window.addEventListener("keydown",this.keydown))})),i(this,"onMouseDown",(e=>{if(!this.domElement)return;if(this._state===this.STATE.NONE)switch(e.button){case this.mouseButtons.LEFT:this._state=this.STATE.ROTATE;break;case this.mouseButtons.MIDDLE:this._state=this.STATE.ZOOM;break;case this.mouseButtons.RIGHT:this._state=this.STATE.PAN;break;default:this._state=this.STATE.NONE}const t=this._keyState!==this.STATE.NONE?this._keyState:this._state;t!==this.STATE.ROTATE||this.noRotate?t!==this.STATE.ZOOM||this.noZoom?t!==this.STATE.PAN||this.noPan||(this._panStart.copy(this.getMouseOnScreen(e.pageX,e.pageY)),this._panEnd.copy(this._panStart)):(this._zoomStart.copy(this.getMouseOnScreen(e.pageX,e.pageY)),this._zoomEnd.copy(this._zoomStart)):(this._moveCurr.copy(this.getMouseOnCircle(e.pageX,e.pageY)),this._movePrev.copy(this._moveCurr)),this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),this.dispatchEvent(this.startEvent)})),i(this,"onMouseMove",(e=>{if(!1===this.enabled)return;const t=this._keyState!==this.STATE.NONE?this._keyState:this._state;t!==this.STATE.ROTATE||this.noRotate?t!==this.STATE.ZOOM||this.noZoom?t!==this.STATE.PAN||this.noPan||this._panEnd.copy(this.getMouseOnScreen(e.pageX,e.pageY)):this._zoomEnd.copy(this.getMouseOnScreen(e.pageX,e.pageY)):(this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this.getMouseOnCircle(e.pageX,e.pageY)))})),i(this,"onMouseUp",(()=>{this.domElement&&!1!==this.enabled&&(this._state=this.STATE.NONE,this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),this.dispatchEvent(this.endEvent))})),i(this,"mousewheel",(e=>{if(!1!==this.enabled&&!0!==this.noZoom){switch(e.preventDefault(),e.deltaMode){case 2:this._zoomStart.y-=.025*e.deltaY;break;case 1:this._zoomStart.y-=.01*e.deltaY;break;default:this._zoomStart.y-=25e-5*e.deltaY}this.mousePosition.x=e.offsetX/this.screen.width*2-1,this.mousePosition.y=-e.offsetY/this.screen.height*2+1,this.dispatchEvent(this.startEvent),this.dispatchEvent(this.endEvent)}})),i(this,"touchstart",(e=>{if(!1!==this.enabled){if(e.preventDefault(),1===e.touches.length)this._state=this.STATE.TOUCH_ROTATE,this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY)),this._movePrev.copy(this._moveCurr);else{this._state=this.STATE.TOUCH_ZOOM_PAN;const t=e.touches[0].pageX-e.touches[1].pageX,r=e.touches[0].pageY-e.touches[1].pageY;this._touchZoomDistanceEnd=this._touchZoomDistanceStart=Math.sqrt(t*t+r*r);const n=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;this._panStart.copy(this.getMouseOnScreen(n,i)),this._panEnd.copy(this._panStart)}this.dispatchEvent(this.startEvent)}})),i(this,"touchmove",(e=>{if(!1!==this.enabled)if(e.preventDefault(),1===e.touches.length)this._movePrev.copy(this._moveCurr),this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY));else{const t=e.touches[0].pageX-e.touches[1].pageX,r=e.touches[0].pageY-e.touches[1].pageY;this._touchZoomDistanceEnd=Math.sqrt(t*t+r*r);const n=(e.touches[0].pageX+e.touches[1].pageX)/2,i=(e.touches[0].pageY+e.touches[1].pageY)/2;this._panEnd.copy(this.getMouseOnScreen(n,i))}})),i(this,"touchend",(e=>{if(!1!==this.enabled){switch(e.touches.length){case 0:this._state=this.STATE.NONE;break;case 1:this._state=this.STATE.TOUCH_ROTATE,this._moveCurr.copy(this.getMouseOnCircle(e.touches[0].pageX,e.touches[0].pageY)),this._movePrev.copy(this._moveCurr)}this.dispatchEvent(this.endEvent)}})),i(this,"contextmenu",(e=>{!1!==this.enabled&&e.preventDefault()})),i(this,"connect",(e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.addEventListener("contextmenu",this.contextmenu),this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("wheel",this.mousewheel),this.domElement.addEventListener("touchstart",this.touchstart),this.domElement.addEventListener("touchend",this.touchend),this.domElement.addEventListener("touchmove",this.touchmove),this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp),window.addEventListener("keydown",this.keydown),window.addEventListener("keyup",this.keyup),this.handleResize()})),i(this,"dispose",(()=>{this.domElement&&(this.domElement.removeEventListener("contextmenu",this.contextmenu),this.domElement.removeEventListener("pointerdown",this.onPointerDown),this.domElement.removeEventListener("wheel",this.mousewheel),this.domElement.removeEventListener("touchstart",this.touchstart),this.domElement.removeEventListener("touchend",this.touchend),this.domElement.removeEventListener("touchmove",this.touchmove),this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this.onPointerUp),window.removeEventListener("keydown",this.keydown),window.removeEventListener("keyup",this.keyup))})),this.object=e,this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone(),this.zoom0=this.object.zoom,void 0!==t&&this.connect(t),this.update()}}t.TrackballControls=a},3442:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);class a extends s.Object3D{constructor(e,t){super(),i(this,"isTransformControls",!0),i(this,"visible",!1),i(this,"domElement"),i(this,"raycaster",new s.Raycaster),i(this,"gizmo"),i(this,"plane"),i(this,"tempVector",new s.Vector3),i(this,"tempVector2",new s.Vector3),i(this,"tempQuaternion",new s.Quaternion),i(this,"unit",{X:new s.Vector3(1,0,0),Y:new s.Vector3(0,1,0),Z:new s.Vector3(0,0,1)}),i(this,"pointStart",new s.Vector3),i(this,"pointEnd",new s.Vector3),i(this,"offset",new s.Vector3),i(this,"rotationAxis",new s.Vector3),i(this,"startNorm",new s.Vector3),i(this,"endNorm",new s.Vector3),i(this,"rotationAngle",0),i(this,"cameraPosition",new s.Vector3),i(this,"cameraQuaternion",new s.Quaternion),i(this,"cameraScale",new s.Vector3),i(this,"parentPosition",new s.Vector3),i(this,"parentQuaternion",new s.Quaternion),i(this,"parentQuaternionInv",new s.Quaternion),i(this,"parentScale",new s.Vector3),i(this,"worldPositionStart",new s.Vector3),i(this,"worldQuaternionStart",new s.Quaternion),i(this,"worldScaleStart",new s.Vector3),i(this,"worldPosition",new s.Vector3),i(this,"worldQuaternion",new s.Quaternion),i(this,"worldQuaternionInv",new s.Quaternion),i(this,"worldScale",new s.Vector3),i(this,"eye",new s.Vector3),i(this,"positionStart",new s.Vector3),i(this,"quaternionStart",new s.Quaternion),i(this,"scaleStart",new s.Vector3),i(this,"camera"),i(this,"object"),i(this,"enabled",!0),i(this,"axis",null),i(this,"mode","translate"),i(this,"translationSnap",null),i(this,"rotationSnap",null),i(this,"scaleSnap",null),i(this,"space","world"),i(this,"size",1),i(this,"dragging",!1),i(this,"showX",!0),i(this,"showY",!0),i(this,"showZ",!0),i(this,"changeEvent",{type:"change"}),i(this,"mouseDownEvent",{type:"mouseDown",mode:this.mode}),i(this,"mouseUpEvent",{type:"mouseUp",mode:this.mode}),i(this,"objectChangeEvent",{type:"objectChange"}),i(this,"intersectObjectWithRay",((e,t,r)=>{const n=t.intersectObject(e,!0);for(let i=0;i(this.object=e,this.visible=!0,this))),i(this,"detach",(()=>(this.object=void 0,this.visible=!1,this.axis=null,this))),i(this,"reset",(()=>this.enabled?(this.dragging&&void 0!==this.object&&(this.object.position.copy(this.positionStart),this.object.quaternion.copy(this.quaternionStart),this.object.scale.copy(this.scaleStart),this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent),this.pointStart.copy(this.pointEnd)),this):this)),i(this,"updateMatrixWorld",(()=>{void 0!==this.object&&(this.object.updateMatrixWorld(),null===this.object.parent?console.error("TransformControls: The attached 3D object must be a part of the scene graph."):this.object.parent.matrixWorld.decompose(this.parentPosition,this.parentQuaternion,this.parentScale),this.object.matrixWorld.decompose(this.worldPosition,this.worldQuaternion,this.worldScale),this.parentQuaternionInv.copy(this.parentQuaternion).invert(),this.worldQuaternionInv.copy(this.worldQuaternion).invert()),this.camera.updateMatrixWorld(),this.camera.matrixWorld.decompose(this.cameraPosition,this.cameraQuaternion,this.cameraScale),this.eye.copy(this.cameraPosition).sub(this.worldPosition).normalize(),super.updateMatrixWorld()})),i(this,"pointerHover",(e=>{if(void 0===this.object||!0===this.dragging)return;this.raycaster.setFromCamera(e,this.camera);const t=this.intersectObjectWithRay(this.gizmo.picker[this.mode],this.raycaster);this.axis=t?t.object.name:null})),i(this,"pointerDown",(e=>{if(void 0!==this.object&&!0!==this.dragging&&0===e.button&&null!==this.axis){this.raycaster.setFromCamera(e,this.camera);const t=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(t){let e=this.space;if("scale"===this.mode?e="local":"E"!==this.axis&&"XYZE"!==this.axis&&"XYZ"!==this.axis||(e="world"),"local"===e&&"rotate"===this.mode){const e=this.rotationSnap;"X"===this.axis&&e&&(this.object.rotation.x=Math.round(this.object.rotation.x/e)*e),"Y"===this.axis&&e&&(this.object.rotation.y=Math.round(this.object.rotation.y/e)*e),"Z"===this.axis&&e&&(this.object.rotation.z=Math.round(this.object.rotation.z/e)*e)}this.object.updateMatrixWorld(),this.object.parent&&this.object.parent.updateMatrixWorld(),this.positionStart.copy(this.object.position),this.quaternionStart.copy(this.object.quaternion),this.scaleStart.copy(this.object.scale),this.object.matrixWorld.decompose(this.worldPositionStart,this.worldQuaternionStart,this.worldScaleStart),this.pointStart.copy(t.point).sub(this.worldPositionStart)}this.dragging=!0,this.mouseDownEvent.mode=this.mode,this.dispatchEvent(this.mouseDownEvent)}})),i(this,"pointerMove",(e=>{const t=this.axis,r=this.mode,n=this.object;let i=this.space;if("scale"===r?i="local":"E"!==t&&"XYZE"!==t&&"XYZ"!==t||(i="world"),void 0===n||null===t||!1===this.dragging||-1!==e.button)return;this.raycaster.setFromCamera(e,this.camera);const s=this.intersectObjectWithRay(this.plane,this.raycaster,!0);if(s){if(this.pointEnd.copy(s.point).sub(this.worldPositionStart),"translate"===r)this.offset.copy(this.pointEnd).sub(this.pointStart),"local"===i&&"XYZ"!==t&&this.offset.applyQuaternion(this.worldQuaternionInv),-1===t.indexOf("X")&&(this.offset.x=0),-1===t.indexOf("Y")&&(this.offset.y=0),-1===t.indexOf("Z")&&(this.offset.z=0),"local"===i&&"XYZ"!==t?this.offset.applyQuaternion(this.quaternionStart).divide(this.parentScale):this.offset.applyQuaternion(this.parentQuaternionInv).divide(this.parentScale),n.position.copy(this.offset).add(this.positionStart),this.translationSnap&&("local"===i&&(n.position.applyQuaternion(this.tempQuaternion.copy(this.quaternionStart).invert()),-1!==t.search("X")&&(n.position.x=Math.round(n.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(n.position.y=Math.round(n.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(n.position.z=Math.round(n.position.z/this.translationSnap)*this.translationSnap),n.position.applyQuaternion(this.quaternionStart)),"world"===i&&(n.parent&&n.position.add(this.tempVector.setFromMatrixPosition(n.parent.matrixWorld)),-1!==t.search("X")&&(n.position.x=Math.round(n.position.x/this.translationSnap)*this.translationSnap),-1!==t.search("Y")&&(n.position.y=Math.round(n.position.y/this.translationSnap)*this.translationSnap),-1!==t.search("Z")&&(n.position.z=Math.round(n.position.z/this.translationSnap)*this.translationSnap),n.parent&&n.position.sub(this.tempVector.setFromMatrixPosition(n.parent.matrixWorld))));else if("scale"===r){if(-1!==t.search("XYZ")){let e=this.pointEnd.length()/this.pointStart.length();this.pointEnd.dot(this.pointStart)<0&&(e*=-1),this.tempVector2.set(e,e,e)}else this.tempVector.copy(this.pointStart),this.tempVector2.copy(this.pointEnd),this.tempVector.applyQuaternion(this.worldQuaternionInv),this.tempVector2.applyQuaternion(this.worldQuaternionInv),this.tempVector2.divide(this.tempVector),-1===t.search("X")&&(this.tempVector2.x=1),-1===t.search("Y")&&(this.tempVector2.y=1),-1===t.search("Z")&&(this.tempVector2.z=1);n.scale.copy(this.scaleStart).multiply(this.tempVector2),this.scaleSnap&&this.object&&(-1!==t.search("X")&&(this.object.scale.x=Math.round(n.scale.x/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Y")&&(n.scale.y=Math.round(n.scale.y/this.scaleSnap)*this.scaleSnap||this.scaleSnap),-1!==t.search("Z")&&(n.scale.z=Math.round(n.scale.z/this.scaleSnap)*this.scaleSnap||this.scaleSnap))}else if("rotate"===r){this.offset.copy(this.pointEnd).sub(this.pointStart);const e=20/this.worldPosition.distanceTo(this.tempVector.setFromMatrixPosition(this.camera.matrixWorld));"E"===t?(this.rotationAxis.copy(this.eye),this.rotationAngle=this.pointEnd.angleTo(this.pointStart),this.startNorm.copy(this.pointStart).normalize(),this.endNorm.copy(this.pointEnd).normalize(),this.rotationAngle*=this.endNorm.cross(this.startNorm).dot(this.eye)<0?1:-1):"XYZE"===t?(this.rotationAxis.copy(this.offset).cross(this.eye).normalize(),this.rotationAngle=this.offset.dot(this.tempVector.copy(this.rotationAxis).cross(this.eye))*e):"X"!==t&&"Y"!==t&&"Z"!==t||(this.rotationAxis.copy(this.unit[t]),this.tempVector.copy(this.unit[t]),"local"===i&&this.tempVector.applyQuaternion(this.worldQuaternion),this.rotationAngle=this.offset.dot(this.tempVector.cross(this.eye).normalize())*e),this.rotationSnap&&(this.rotationAngle=Math.round(this.rotationAngle/this.rotationSnap)*this.rotationSnap),"local"===i&&"E"!==t&&"XYZE"!==t?(n.quaternion.copy(this.quaternionStart),n.quaternion.multiply(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)).normalize()):(this.rotationAxis.applyQuaternion(this.parentQuaternionInv),n.quaternion.copy(this.tempQuaternion.setFromAxisAngle(this.rotationAxis,this.rotationAngle)),n.quaternion.multiply(this.quaternionStart).normalize())}this.dispatchEvent(this.changeEvent),this.dispatchEvent(this.objectChangeEvent)}})),i(this,"pointerUp",(e=>{0===e.button&&(this.dragging&&null!==this.axis&&(this.mouseUpEvent.mode=this.mode,this.dispatchEvent(this.mouseUpEvent)),this.dragging=!1,this.axis=null)})),i(this,"getPointer",(e=>{var t,r;if(this.domElement&&(null==(t=this.domElement.ownerDocument)?void 0:t.pointerLockElement))return{x:0,y:0,button:e.button};{const t=e.changedTouches?e.changedTouches[0]:e,n=null==(r=this.domElement)?void 0:r.getBoundingClientRect();return{x:(t.clientX-n.left)/n.width*2-1,y:-(t.clientY-n.top)/n.height*2+1,button:e.button}}})),i(this,"onPointerHover",(e=>{if(this.enabled)switch(e.pointerType){case"mouse":case"pen":this.pointerHover(this.getPointer(e))}})),i(this,"onPointerDown",(e=>{this.enabled&&this.domElement&&(this.domElement.style.touchAction="none",this.domElement.ownerDocument.addEventListener("pointermove",this.onPointerMove),this.pointerHover(this.getPointer(e)),this.pointerDown(this.getPointer(e)))})),i(this,"onPointerMove",(e=>{this.enabled&&this.pointerMove(this.getPointer(e))})),i(this,"onPointerUp",(e=>{this.enabled&&this.domElement&&(this.domElement.style.touchAction="",this.domElement.ownerDocument.removeEventListener("pointermove",this.onPointerMove),this.pointerUp(this.getPointer(e)))})),i(this,"getMode",(()=>this.mode)),i(this,"setMode",(e=>{this.mode=e})),i(this,"setTranslationSnap",(e=>{this.translationSnap=e})),i(this,"setRotationSnap",(e=>{this.rotationSnap=e})),i(this,"setScaleSnap",(e=>{this.scaleSnap=e})),i(this,"setSize",(e=>{this.size=e})),i(this,"setSpace",(e=>{this.space=e})),i(this,"update",(()=>{console.warn("THREE.TransformControls: update function has no more functionality and therefore has been deprecated.")})),i(this,"connect",(e=>{e===document&&console.error('THREE.OrbitControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.domElement=e,this.domElement.addEventListener("pointerdown",this.onPointerDown),this.domElement.addEventListener("pointermove",this.onPointerHover),this.domElement.ownerDocument.addEventListener("pointerup",this.onPointerUp)})),i(this,"dispose",(()=>{var e,t,r,n,i,s;null==(e=this.domElement)||e.removeEventListener("pointerdown",this.onPointerDown),null==(t=this.domElement)||t.removeEventListener("pointermove",this.onPointerHover),null==(n=null==(r=this.domElement)?void 0:r.ownerDocument)||n.removeEventListener("pointermove",this.onPointerMove),null==(s=null==(i=this.domElement)?void 0:i.ownerDocument)||s.removeEventListener("pointerup",this.onPointerUp),this.traverse((e=>{const t=e;t.geometry&&t.geometry.dispose(),t.material&&t.material.dispose()}))})),this.domElement=t,this.camera=e,this.gizmo=new o,this.add(this.gizmo),this.plane=new l,this.add(this.plane);const r=(e,t)=>{let r=t;Object.defineProperty(this,e,{get:function(){return void 0!==r?r:t},set:function(t){r!==t&&(r=t,this.plane[e]=t,this.gizmo[e]=t,this.dispatchEvent({type:e+"-changed",value:t}),this.dispatchEvent(this.changeEvent))}}),this[e]=t,this.plane[e]=t,this.gizmo[e]=t};r("camera",this.camera),r("object",this.object),r("enabled",this.enabled),r("axis",this.axis),r("mode",this.mode),r("translationSnap",this.translationSnap),r("rotationSnap",this.rotationSnap),r("scaleSnap",this.scaleSnap),r("space",this.space),r("size",this.size),r("dragging",this.dragging),r("showX",this.showX),r("showY",this.showY),r("showZ",this.showZ),r("worldPosition",this.worldPosition),r("worldPositionStart",this.worldPositionStart),r("worldQuaternion",this.worldQuaternion),r("worldQuaternionStart",this.worldQuaternionStart),r("cameraPosition",this.cameraPosition),r("cameraQuaternion",this.cameraQuaternion),r("pointStart",this.pointStart),r("pointEnd",this.pointEnd),r("rotationAxis",this.rotationAxis),r("rotationAngle",this.rotationAngle),r("eye",this.eye),void 0!==t&&this.connect(t)}}class o extends s.Object3D{constructor(){super(),i(this,"isTransformControlsGizmo",!0),i(this,"type","TransformControlsGizmo"),i(this,"tempVector",new s.Vector3(0,0,0)),i(this,"tempEuler",new s.Euler),i(this,"alignVector",new s.Vector3(0,1,0)),i(this,"zeroVector",new s.Vector3(0,0,0)),i(this,"lookAtMatrix",new s.Matrix4),i(this,"tempQuaternion",new s.Quaternion),i(this,"tempQuaternion2",new s.Quaternion),i(this,"identityQuaternion",new s.Quaternion),i(this,"unitX",new s.Vector3(1,0,0)),i(this,"unitY",new s.Vector3(0,1,0)),i(this,"unitZ",new s.Vector3(0,0,1)),i(this,"gizmo"),i(this,"picker"),i(this,"helper"),i(this,"rotationAxis",new s.Vector3),i(this,"cameraPosition",new s.Vector3),i(this,"worldPositionStart",new s.Vector3),i(this,"worldQuaternionStart",new s.Quaternion),i(this,"worldPosition",new s.Vector3),i(this,"worldQuaternion",new s.Quaternion),i(this,"eye",new s.Vector3),i(this,"camera",null),i(this,"enabled",!0),i(this,"axis",null),i(this,"mode","translate"),i(this,"space","world"),i(this,"size",1),i(this,"dragging",!1),i(this,"showX",!0),i(this,"showY",!0),i(this,"showZ",!0),i(this,"updateMatrixWorld",(()=>{let e=this.space;"scale"===this.mode&&(e="local");const t="local"===e?this.worldQuaternion:this.identityQuaternion;this.gizmo.translate.visible="translate"===this.mode,this.gizmo.rotate.visible="rotate"===this.mode,this.gizmo.scale.visible="scale"===this.mode,this.helper.translate.visible="translate"===this.mode,this.helper.rotate.visible="rotate"===this.mode,this.helper.scale.visible="scale"===this.mode;let r=[];r=r.concat(this.picker[this.mode].children),r=r.concat(this.gizmo[this.mode].children),r=r.concat(this.helper[this.mode].children);for(let n=0;nr&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"Y"!==e.name&&"XYZY"!==e.name||Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>r&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"Z"!==e.name&&"XYZZ"!==e.name||Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>r&&(e.scale.set(1e-10,1e-10,1e-10),e.visible=!1),"XY"===e.name&&Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye)).9&&(e.visible=!1)),"Y"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,0,Math.PI/2)),e.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitY).applyQuaternion(t).dot(this.eye))>.9&&(e.visible=!1)),"Z"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),e.quaternion.copy(t).multiply(this.tempQuaternion),Math.abs(this.alignVector.copy(this.unitZ).applyQuaternion(t).dot(this.eye))>.9&&(e.visible=!1)),"XYZE"===this.axis&&(this.tempQuaternion.setFromEuler(this.tempEuler.set(0,Math.PI/2,0)),this.alignVector.copy(this.rotationAxis),e.quaternion.setFromRotationMatrix(this.lookAtMatrix.lookAt(this.zeroVector,this.alignVector,this.unitY)),e.quaternion.multiply(this.tempQuaternion),e.visible=this.dragging),"E"===this.axis&&(e.visible=!1)):"START"===e.name?(e.position.copy(this.worldPositionStart),e.visible=this.dragging):"END"===e.name?(e.position.copy(this.worldPosition),e.visible=this.dragging):"DELTA"===e.name?(e.position.copy(this.worldPositionStart),e.quaternion.copy(this.worldQuaternionStart),this.tempVector.set(1e-10,1e-10,1e-10).add(this.worldPositionStart).sub(this.worldPosition).multiplyScalar(-1),this.tempVector.applyQuaternion(this.worldQuaternionStart.clone().invert()),e.scale.copy(this.tempVector),e.visible=this.dragging):(e.quaternion.copy(t),this.dragging?e.position.copy(this.worldPositionStart):e.position.copy(this.worldPosition),this.axis&&(e.visible=-1!==this.axis.search(e.name)))}super.updateMatrixWorld()}));const e=new s.MeshBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,side:s.DoubleSide,fog:!1,toneMapped:!1}),t=new s.LineBasicMaterial({depthTest:!1,depthWrite:!1,transparent:!0,linewidth:1,fog:!1,toneMapped:!1}),r=e.clone();r.opacity=.15;const n=e.clone();n.opacity=.33;const a=e.clone();a.color.set(16711680);const o=e.clone();o.color.set(65280);const l=e.clone();l.color.set(255);const c=e.clone();c.opacity=.25;const h=c.clone();h.color.set(16776960);const u=c.clone();u.color.set(65535);const d=c.clone();d.color.set(16711935);e.clone().color.set(16776960);const p=t.clone();p.color.set(16711680);const f=t.clone();f.color.set(65280);const m=t.clone();m.color.set(255);const g=t.clone();g.color.set(65535);const A=t.clone();A.color.set(16711935);const v=t.clone();v.color.set(16776960);const y=t.clone();y.color.set(7895160);const x=v.clone();x.opacity=.25;const b=new s.CylinderGeometry(0,.05,.2,12,1,!1),E=new s.BoxGeometry(.125,.125,.125),_=new s.BufferGeometry;_.setAttribute("position",new s.Float32BufferAttribute([0,0,0,1,0,0],3));const S=(e,t)=>{const r=new s.BufferGeometry,n=[];for(let i=0;i<=64*t;++i)n.push(0,Math.cos(i/32*Math.PI)*e,Math.sin(i/32*Math.PI)*e);return r.setAttribute("position",new s.Float32BufferAttribute(n,3)),r},M={X:[[new s.Mesh(b,a),[1,0,0],[0,0,-Math.PI/2],null,"fwd"],[new s.Mesh(b,a),[1,0,0],[0,0,Math.PI/2],null,"bwd"],[new s.Line(_,p)]],Y:[[new s.Mesh(b,o),[0,1,0],null,null,"fwd"],[new s.Mesh(b,o),[0,1,0],[Math.PI,0,0],null,"bwd"],[new s.Line(_,f),null,[0,0,Math.PI/2]]],Z:[[new s.Mesh(b,l),[0,0,1],[Math.PI/2,0,0],null,"fwd"],[new s.Mesh(b,l),[0,0,1],[-Math.PI/2,0,0],null,"bwd"],[new s.Line(_,m),null,[0,-Math.PI/2,0]]],XYZ:[[new s.Mesh(new s.OctahedronGeometry(.1,0),c.clone()),[0,0,0],[0,0,0]]],XY:[[new s.Mesh(new s.PlaneGeometry(.295,.295),h.clone()),[.15,.15,0]],[new s.Line(_,v),[.18,.3,0],null,[.125,1,1]],[new s.Line(_,v),[.3,.18,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new s.Mesh(new s.PlaneGeometry(.295,.295),u.clone()),[0,.15,.15],[0,Math.PI/2,0]],[new s.Line(_,g),[0,.18,.3],[0,0,Math.PI/2],[.125,1,1]],[new s.Line(_,g),[0,.3,.18],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new s.Mesh(new s.PlaneGeometry(.295,.295),d.clone()),[.15,0,.15],[-Math.PI/2,0,0]],[new s.Line(_,A),[.18,0,.3],null,[.125,1,1]],[new s.Line(_,A),[.3,0,.18],[0,-Math.PI/2,0],[.125,1,1]]]},w={X:[[new s.Mesh(new s.CylinderGeometry(.2,0,1,4,1,!1),r),[.6,0,0],[0,0,-Math.PI/2]]],Y:[[new s.Mesh(new s.CylinderGeometry(.2,0,1,4,1,!1),r),[0,.6,0]]],Z:[[new s.Mesh(new s.CylinderGeometry(.2,0,1,4,1,!1),r),[0,0,.6],[Math.PI/2,0,0]]],XYZ:[[new s.Mesh(new s.OctahedronGeometry(.2,0),r)]],XY:[[new s.Mesh(new s.PlaneGeometry(.4,.4),r),[.2,.2,0]]],YZ:[[new s.Mesh(new s.PlaneGeometry(.4,.4),r),[0,.2,.2],[0,Math.PI/2,0]]],XZ:[[new s.Mesh(new s.PlaneGeometry(.4,.4),r),[.2,0,.2],[-Math.PI/2,0,0]]]},C={START:[[new s.Mesh(new s.OctahedronGeometry(.01,2),n),null,null,null,"helper"]],END:[[new s.Mesh(new s.OctahedronGeometry(.01,2),n),null,null,null,"helper"]],DELTA:[[new s.Line((()=>{const e=new s.BufferGeometry;return e.setAttribute("position",new s.Float32BufferAttribute([0,0,0,1,1,1],3)),e})(),n),null,null,null,"helper"]],X:[[new s.Line(_,n.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new s.Line(_,n.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new s.Line(_,n.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},T={X:[[new s.Line(S(1,.5),p)],[new s.Mesh(new s.OctahedronGeometry(.04,0),a),[0,0,.99],null,[1,3,1]]],Y:[[new s.Line(S(1,.5),f),null,[0,0,-Math.PI/2]],[new s.Mesh(new s.OctahedronGeometry(.04,0),o),[0,0,.99],null,[3,1,1]]],Z:[[new s.Line(S(1,.5),m),null,[0,Math.PI/2,0]],[new s.Mesh(new s.OctahedronGeometry(.04,0),l),[.99,0,0],null,[1,3,1]]],E:[[new s.Line(S(1.25,1),x),null,[0,Math.PI/2,0]],[new s.Mesh(new s.CylinderGeometry(.03,0,.15,4,1,!1),x),[1.17,0,0],[0,0,-Math.PI/2],[1,1,.001]],[new s.Mesh(new s.CylinderGeometry(.03,0,.15,4,1,!1),x),[-1.17,0,0],[0,0,Math.PI/2],[1,1,.001]],[new s.Mesh(new s.CylinderGeometry(.03,0,.15,4,1,!1),x),[0,-1.17,0],[Math.PI,0,0],[1,1,.001]],[new s.Mesh(new s.CylinderGeometry(.03,0,.15,4,1,!1),x),[0,1.17,0],[0,0,0],[1,1,.001]]],XYZE:[[new s.Line(S(1,1),y),null,[0,Math.PI/2,0]]]},I={AXIS:[[new s.Line(_,n.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]]},B={X:[[new s.Mesh(new s.TorusGeometry(1,.1,4,24),r),[0,0,0],[0,-Math.PI/2,-Math.PI/2]]],Y:[[new s.Mesh(new s.TorusGeometry(1,.1,4,24),r),[0,0,0],[Math.PI/2,0,0]]],Z:[[new s.Mesh(new s.TorusGeometry(1,.1,4,24),r),[0,0,0],[0,0,-Math.PI/2]]],E:[[new s.Mesh(new s.TorusGeometry(1.25,.1,2,24),r)]],XYZE:[[new s.Mesh(new s.SphereGeometry(.7,10,8),r)]]},R={X:[[new s.Mesh(E,a),[.8,0,0],[0,0,-Math.PI/2]],[new s.Line(_,p),null,null,[.8,1,1]]],Y:[[new s.Mesh(E,o),[0,.8,0]],[new s.Line(_,f),null,[0,0,Math.PI/2],[.8,1,1]]],Z:[[new s.Mesh(E,l),[0,0,.8],[Math.PI/2,0,0]],[new s.Line(_,m),null,[0,-Math.PI/2,0],[.8,1,1]]],XY:[[new s.Mesh(E,h),[.85,.85,0],null,[2,2,.2]],[new s.Line(_,v),[.855,.98,0],null,[.125,1,1]],[new s.Line(_,v),[.98,.855,0],[0,0,Math.PI/2],[.125,1,1]]],YZ:[[new s.Mesh(E,u),[0,.85,.85],null,[.2,2,2]],[new s.Line(_,g),[0,.855,.98],[0,0,Math.PI/2],[.125,1,1]],[new s.Line(_,g),[0,.98,.855],[0,-Math.PI/2,0],[.125,1,1]]],XZ:[[new s.Mesh(E,d),[.85,0,.85],null,[2,.2,2]],[new s.Line(_,A),[.855,0,.98],null,[.125,1,1]],[new s.Line(_,A),[.98,0,.855],[0,-Math.PI/2,0],[.125,1,1]]],XYZX:[[new s.Mesh(new s.BoxGeometry(.125,.125,.125),c.clone()),[1.1,0,0]]],XYZY:[[new s.Mesh(new s.BoxGeometry(.125,.125,.125),c.clone()),[0,1.1,0]]],XYZZ:[[new s.Mesh(new s.BoxGeometry(.125,.125,.125),c.clone()),[0,0,1.1]]]},P={X:[[new s.Mesh(new s.CylinderGeometry(.2,0,.8,4,1,!1),r),[.5,0,0],[0,0,-Math.PI/2]]],Y:[[new s.Mesh(new s.CylinderGeometry(.2,0,.8,4,1,!1),r),[0,.5,0]]],Z:[[new s.Mesh(new s.CylinderGeometry(.2,0,.8,4,1,!1),r),[0,0,.5],[Math.PI/2,0,0]]],XY:[[new s.Mesh(E,r),[.85,.85,0],null,[3,3,.2]]],YZ:[[new s.Mesh(E,r),[0,.85,.85],null,[.2,3,3]]],XZ:[[new s.Mesh(E,r),[.85,0,.85],null,[3,.2,3]]],XYZX:[[new s.Mesh(new s.BoxGeometry(.2,.2,.2),r),[1.1,0,0]]],XYZY:[[new s.Mesh(new s.BoxGeometry(.2,.2,.2),r),[0,1.1,0]]],XYZZ:[[new s.Mesh(new s.BoxGeometry(.2,.2,.2),r),[0,0,1.1]]]},D={X:[[new s.Line(_,n.clone()),[-1e3,0,0],null,[1e6,1,1],"helper"]],Y:[[new s.Line(_,n.clone()),[0,-1e3,0],[0,0,Math.PI/2],[1e6,1,1],"helper"]],Z:[[new s.Line(_,n.clone()),[0,0,-1e3],[0,-Math.PI/2,0],[1e6,1,1],"helper"]]},L=e=>{const t=new s.Object3D;for(let r in e)for(let n=e[r].length;n--;){const i=e[r][n][0].clone(),s=e[r][n][1],a=e[r][n][2],o=e[r][n][3],l=e[r][n][4];i.name=r,i.tag=l,s&&i.position.set(s[0],s[1],s[2]),a&&i.rotation.set(a[0],a[1],a[2]),o&&i.scale.set(o[0],o[1],o[2]),i.updateMatrix();const c=i.geometry.clone();c.applyMatrix4(i.matrix),i.geometry=c,i.renderOrder=1/0,i.position.set(0,0,0),i.rotation.set(0,0,0),i.scale.set(1,1,1),t.add(i)}return t};this.gizmo={},this.picker={},this.helper={},this.add(this.gizmo.translate=L(M)),this.add(this.gizmo.rotate=L(T)),this.add(this.gizmo.scale=L(R)),this.add(this.picker.translate=L(w)),this.add(this.picker.rotate=L(B)),this.add(this.picker.scale=L(P)),this.add(this.helper.translate=L(C)),this.add(this.helper.rotate=L(I)),this.add(this.helper.scale=L(D)),this.picker.translate.visible=!1,this.picker.rotate.visible=!1,this.picker.scale.visible=!1}}class l extends s.Mesh{constructor(){super(new s.PlaneGeometry(1e5,1e5,2,2),new s.MeshBasicMaterial({visible:!1,wireframe:!0,side:s.DoubleSide,transparent:!0,opacity:.1,toneMapped:!1})),i(this,"isTransformControlsPlane",!0),i(this,"type","TransformControlsPlane"),i(this,"unitX",new s.Vector3(1,0,0)),i(this,"unitY",new s.Vector3(0,1,0)),i(this,"unitZ",new s.Vector3(0,0,1)),i(this,"tempVector",new s.Vector3),i(this,"dirVector",new s.Vector3),i(this,"alignVector",new s.Vector3),i(this,"tempMatrix",new s.Matrix4),i(this,"identityQuaternion",new s.Quaternion),i(this,"cameraQuaternion",new s.Quaternion),i(this,"worldPosition",new s.Vector3),i(this,"worldQuaternion",new s.Quaternion),i(this,"eye",new s.Vector3),i(this,"axis",null),i(this,"mode","translate"),i(this,"space","world"),i(this,"updateMatrixWorld",(()=>{let e=this.space;switch(this.position.copy(this.worldPosition),"scale"===this.mode&&(e="local"),this.unitX.set(1,0,0).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.unitY.set(0,1,0).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.unitZ.set(0,0,1).applyQuaternion("local"===e?this.worldQuaternion:this.identityQuaternion),this.alignVector.copy(this.unitY),this.mode){case"translate":case"scale":switch(this.axis){case"X":this.alignVector.copy(this.eye).cross(this.unitX),this.dirVector.copy(this.unitX).cross(this.alignVector);break;case"Y":this.alignVector.copy(this.eye).cross(this.unitY),this.dirVector.copy(this.unitY).cross(this.alignVector);break;case"Z":this.alignVector.copy(this.eye).cross(this.unitZ),this.dirVector.copy(this.unitZ).cross(this.alignVector);break;case"XY":this.dirVector.copy(this.unitZ);break;case"YZ":this.dirVector.copy(this.unitX);break;case"XZ":this.alignVector.copy(this.unitZ),this.dirVector.copy(this.unitY);break;case"XYZ":case"E":this.dirVector.set(0,0,0)}break;default:this.dirVector.set(0,0,0)}0===this.dirVector.length()?this.quaternion.copy(this.cameraQuaternion):(this.tempMatrix.lookAt(this.tempVector.set(0,0,0),this.dirVector,this.alignVector),this.quaternion.setFromRotationMatrix(this.tempMatrix)),super.updateMatrixWorld()}))}}t.TransformControls=a,t.TransformControlsGizmo=o,t.TransformControlsPlane=l},60173:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};class o extends s.EventDispatcher{constructor(e,t){super(),i(this,"object"),i(this,"domElement"),i(this,"enabled",!0),i(this,"target",new s.Vector3),i(this,"trackball",!1),i(this,"minDistance",0),i(this,"maxDistance",1/0),i(this,"minZoom",0),i(this,"maxZoom",1/0),i(this,"minPolarAngle",0),i(this,"maxPolarAngle",Math.PI),i(this,"minAzimuthAngle",-1/0),i(this,"maxAzimuthAngle",1/0),i(this,"enableDamping",!1),i(this,"dampingFactor",.05),i(this,"enableZoom",!0),i(this,"zoomSpeed",1),i(this,"enableRotate",!0),i(this,"rotateSpeed",1),i(this,"enablePan",!0),i(this,"panSpeed",1),i(this,"screenSpacePanning",!1),i(this,"keyPanSpeed",7),i(this,"autoRotate",!1),i(this,"autoRotateSpeed",2),i(this,"enableKeys",!0),i(this,"keys",{LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"}),i(this,"mouseButtons"),i(this,"touches",{ONE:s.TOUCH.ROTATE,TWO:s.TOUCH.DOLLY_PAN}),i(this,"target0"),i(this,"position0"),i(this,"quaternion0"),i(this,"zoom0"),i(this,"spherical",new s.Spherical),i(this,"sphericalDelta",new s.Spherical),i(this,"changeEvent",{type:"change"}),i(this,"startEvent",{type:"start"}),i(this,"endEvent",{type:"end"}),i(this,"state",a.NONE),i(this,"EPS",1e-6),i(this,"scale",1),i(this,"panOffset",new s.Vector3),i(this,"zoomChanged",!1),i(this,"rotateStart",new s.Vector2),i(this,"rotateEnd",new s.Vector2),i(this,"rotateDelta",new s.Vector2),i(this,"panStart",new s.Vector2),i(this,"panEnd",new s.Vector2),i(this,"panDelta",new s.Vector2),i(this,"dollyStart",new s.Vector2),i(this,"dollyEnd",new s.Vector2),i(this,"dollyDelta",new s.Vector2),i(this,"offset",new s.Vector3),i(this,"lastPosition",new s.Vector3),i(this,"lastQuaternion",new s.Quaternion),i(this,"q",new s.Quaternion),i(this,"v",new s.Vector3),i(this,"vec",new s.Vector3),i(this,"quat"),i(this,"quatInverse"),i(this,"getPolarAngle",(()=>this.spherical.phi)),i(this,"getAzimuthalAngle",(()=>this.spherical.theta)),i(this,"saveState",(()=>{this.target0.copy(this.target),this.position0.copy(this.object.position),this.quaternion0.copy(this.object.quaternion),this.zoom0=this.object.zoom})),i(this,"reset",(()=>{this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.quaternion.copy(this.quaternion0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(this.changeEvent),this.update(),this.state=a.NONE})),i(this,"dispose",(()=>{this.domElement.removeEventListener("contextmenu",this.onContextMenu,!1),this.domElement.removeEventListener("mousedown",this.onMouseDown,!1),this.domElement.removeEventListener("wheel",this.onMouseWheel,!1),this.domElement.removeEventListener("touchstart",this.onTouchStart,!1),this.domElement.removeEventListener("touchend",this.onTouchEnd,!1),this.domElement.removeEventListener("touchmove",this.onTouchMove,!1),document.removeEventListener("mousemove",this.onMouseMove,!1),document.removeEventListener("mouseup",this.onMouseUp,!1),this.domElement.removeEventListener("keydown",this.onKeyDown,!1)})),i(this,"update",(()=>{const e=this.object.position;if(this.offset.copy(e).sub(this.target),this.trackball){if(this.sphericalDelta.theta){this.vec.set(0,1,0).applyQuaternion(this.object.quaternion);const e=this.enableDamping?this.dampingFactor:1;this.q.setFromAxisAngle(this.vec,this.sphericalDelta.theta*e),this.object.quaternion.premultiply(this.q),this.offset.applyQuaternion(this.q)}if(this.sphericalDelta.phi){this.vec.set(1,0,0).applyQuaternion(this.object.quaternion);const e=this.enableDamping?this.dampingFactor:1;this.q.setFromAxisAngle(this.vec,this.sphericalDelta.phi*e),this.object.quaternion.premultiply(this.q),this.offset.applyQuaternion(this.q)}this.offset.multiplyScalar(this.scale),this.offset.clampLength(this.minDistance,this.maxDistance)}else this.offset.applyQuaternion(this.quat),this.autoRotate&&this.state===a.NONE&&this.rotateLeft(this.getAutoRotationAngle()),this.spherical.setFromVector3(this.offset),this.enableDamping?(this.spherical.theta+=this.sphericalDelta.theta*this.dampingFactor,this.spherical.phi+=this.sphericalDelta.phi*this.dampingFactor):(this.spherical.theta+=this.sphericalDelta.theta,this.spherical.phi+=this.sphericalDelta.phi),this.spherical.theta=Math.max(this.minAzimuthAngle,Math.min(this.maxAzimuthAngle,this.spherical.theta)),this.spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this.spherical.phi)),this.spherical.makeSafe(),this.spherical.radius*=this.scale,this.spherical.radius=Math.max(this.minDistance,Math.min(this.maxDistance,this.spherical.radius)),this.offset.setFromSpherical(this.spherical),this.offset.applyQuaternion(this.quatInverse);return!0===this.enableDamping?this.target.addScaledVector(this.panOffset,this.dampingFactor):this.target.add(this.panOffset),e.copy(this.target).add(this.offset),!1===this.trackball&&this.object.lookAt(this.target),!0===this.enableDamping?(this.sphericalDelta.theta*=1-this.dampingFactor,this.sphericalDelta.phi*=1-this.dampingFactor,this.panOffset.multiplyScalar(1-this.dampingFactor)):(this.sphericalDelta.set(0,0,0),this.panOffset.set(0,0,0)),this.scale=1,!!(this.zoomChanged||this.lastPosition.distanceToSquared(this.object.position)>this.EPS||8*(1-this.lastQuaternion.dot(this.object.quaternion))>this.EPS)&&(this.dispatchEvent(this.changeEvent),this.lastPosition.copy(this.object.position),this.lastQuaternion.copy(this.object.quaternion),this.zoomChanged=!1,!0)})),i(this,"getAutoRotationAngle",(()=>2*Math.PI/60/60*this.autoRotateSpeed)),i(this,"getZoomScale",(()=>Math.pow(.95,this.zoomSpeed))),i(this,"rotateLeft",(e=>{this.sphericalDelta.theta-=e})),i(this,"rotateUp",(e=>{this.sphericalDelta.phi-=e})),i(this,"panLeft",((e,t)=>{this.v.setFromMatrixColumn(t,0),this.v.multiplyScalar(-e),this.panOffset.add(this.v)})),i(this,"panUp",((e,t)=>{!0===this.screenSpacePanning?this.v.setFromMatrixColumn(t,1):(this.v.setFromMatrixColumn(t,0),this.v.crossVectors(this.object.up,this.v)),this.v.multiplyScalar(e),this.panOffset.add(this.v)})),i(this,"pan",((e,t)=>{const r=this.domElement;if(this.object instanceof s.PerspectiveCamera){const n=this.object.position;this.offset.copy(n).sub(this.target);let i=this.offset.length();i*=Math.tan(this.object.fov/2*Math.PI/180),this.panLeft(2*e*i/r.clientHeight,this.object.matrix),this.panUp(2*t*i/r.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this.panLeft(e*(this.object.right-this.object.left)/this.object.zoom/r.clientWidth,this.object.matrix),this.panUp(t*(this.object.top-this.object.bottom)/this.object.zoom/r.clientHeight,this.object.matrix)):(console.warn("WARNING: CameraControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)})),i(this,"dollyIn",(e=>{this.object instanceof s.PerspectiveCamera?this.scale/=e:this.object instanceof s.OrthographicCamera?(this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom*e)),this.object.updateProjectionMatrix(),this.zoomChanged=!0):(console.warn("WARNING: CameraControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)})),i(this,"dollyOut",(e=>{this.object instanceof s.PerspectiveCamera?this.scale*=e:this.object instanceof s.OrthographicCamera?(this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/e)),this.object.updateProjectionMatrix(),this.zoomChanged=!0):(console.warn("WARNING: CameraControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)})),i(this,"handleMouseDownRotate",(e=>{this.rotateStart.set(e.clientX,e.clientY)})),i(this,"handleMouseDownDolly",(e=>{this.dollyStart.set(e.clientX,e.clientY)})),i(this,"handleMouseDownPan",(e=>{this.panStart.set(e.clientX,e.clientY)})),i(this,"handleMouseMoveRotate",(e=>{this.rotateEnd.set(e.clientX,e.clientY),this.rotateDelta.subVectors(this.rotateEnd,this.rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this.rotateLeft(2*Math.PI*this.rotateDelta.x/t.clientHeight),this.rotateUp(2*Math.PI*this.rotateDelta.y/t.clientHeight),this.rotateStart.copy(this.rotateEnd),this.update()})),i(this,"handleMouseMoveDolly",(e=>{this.dollyEnd.set(e.clientX,e.clientY),this.dollyDelta.subVectors(this.dollyEnd,this.dollyStart),this.dollyDelta.y>0?this.dollyIn(this.getZoomScale()):this.dollyDelta.y<0&&this.dollyOut(this.getZoomScale()),this.dollyStart.copy(this.dollyEnd),this.update()})),i(this,"handleMouseMovePan",(e=>{this.panEnd.set(e.clientX,e.clientY),this.panDelta.subVectors(this.panEnd,this.panStart).multiplyScalar(this.panSpeed),this.pan(this.panDelta.x,this.panDelta.y),this.panStart.copy(this.panEnd),this.update()})),i(this,"handleMouseWheel",(e=>{e.deltaY<0?this.dollyOut(this.getZoomScale()):e.deltaY>0&&this.dollyIn(this.getZoomScale()),this.update()})),i(this,"handleKeyDown",(e=>{let t=!1;switch(e.code){case this.keys.UP:this.pan(0,this.keyPanSpeed),t=!0;break;case this.keys.BOTTOM:this.pan(0,-this.keyPanSpeed),t=!0;break;case this.keys.LEFT:this.pan(this.keyPanSpeed,0),t=!0;break;case this.keys.RIGHT:this.pan(-this.keyPanSpeed,0),t=!0}t&&(e.preventDefault(),this.update())})),i(this,"handleTouchStartRotate",(e=>{if(1==e.touches.length)this.rotateStart.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),r=.5*(e.touches[0].pageY+e.touches[1].pageY);this.rotateStart.set(t,r)}})),i(this,"handleTouchStartPan",(e=>{if(1==e.touches.length)this.panStart.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),r=.5*(e.touches[0].pageY+e.touches[1].pageY);this.panStart.set(t,r)}})),i(this,"handleTouchStartDolly",(e=>{const t=e.touches[0].pageX-e.touches[1].pageX,r=e.touches[0].pageY-e.touches[1].pageY,n=Math.sqrt(t*t+r*r);this.dollyStart.set(0,n)})),i(this,"handleTouchStartDollyPan",(e=>{this.enableZoom&&this.handleTouchStartDolly(e),this.enablePan&&this.handleTouchStartPan(e)})),i(this,"handleTouchStartDollyRotate",(e=>{this.enableZoom&&this.handleTouchStartDolly(e),this.enableRotate&&this.handleTouchStartRotate(e)})),i(this,"handleTouchMoveRotate",(e=>{if(1==e.touches.length)this.rotateEnd.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),r=.5*(e.touches[0].pageY+e.touches[1].pageY);this.rotateEnd.set(t,r)}this.rotateDelta.subVectors(this.rotateEnd,this.rotateStart).multiplyScalar(this.rotateSpeed);const t=this.domElement;this.rotateLeft(2*Math.PI*this.rotateDelta.x/t.clientHeight),this.rotateUp(2*Math.PI*this.rotateDelta.y/t.clientHeight),this.rotateStart.copy(this.rotateEnd)})),i(this,"handleTouchMovePan",(e=>{if(1==e.touches.length)this.panEnd.set(e.touches[0].pageX,e.touches[0].pageY);else{const t=.5*(e.touches[0].pageX+e.touches[1].pageX),r=.5*(e.touches[0].pageY+e.touches[1].pageY);this.panEnd.set(t,r)}this.panDelta.subVectors(this.panEnd,this.panStart).multiplyScalar(this.panSpeed),this.pan(this.panDelta.x,this.panDelta.y),this.panStart.copy(this.panEnd)})),i(this,"handleTouchMoveDolly",(e=>{const t=e.touches[0].pageX-e.touches[1].pageX,r=e.touches[0].pageY-e.touches[1].pageY,n=Math.sqrt(t*t+r*r);this.dollyEnd.set(0,n),this.dollyDelta.set(0,Math.pow(this.dollyEnd.y/this.dollyStart.y,this.zoomSpeed)),this.dollyIn(this.dollyDelta.y),this.dollyStart.copy(this.dollyEnd)})),i(this,"handleTouchMoveDollyPan",(e=>{this.enableZoom&&this.handleTouchMoveDolly(e),this.enablePan&&this.handleTouchMovePan(e)})),i(this,"handleTouchMoveDollyRotate",(e=>{this.enableZoom&&this.handleTouchMoveDolly(e),this.enableRotate&&this.handleTouchMoveRotate(e)})),i(this,"onMouseDown",(e=>{if(!1===this.enabled)return;let t;switch(e.preventDefault(),this.domElement.focus?this.domElement.focus():window.focus(),e.button){case 0:t=this.mouseButtons.LEFT;break;case 1:t=this.mouseButtons.MIDDLE;break;case 2:t=this.mouseButtons.RIGHT;break;default:t=-1}switch(t){case s.MOUSE.DOLLY:if(!1===this.enableZoom)return;this.handleMouseDownDolly(e),this.state=a.DOLLY;break;case s.MOUSE.ROTATE:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===this.enablePan)return;this.handleMouseDownPan(e),this.state=a.PAN}else{if(!1===this.enableRotate)return;this.handleMouseDownRotate(e),this.state=a.ROTATE}break;case s.MOUSE.PAN:if(e.ctrlKey||e.metaKey||e.shiftKey){if(!1===this.enableRotate)return;this.handleMouseDownRotate(e),this.state=a.ROTATE}else{if(!1===this.enablePan)return;this.handleMouseDownPan(e),this.state=a.PAN}break;default:this.state=a.NONE}this.state!==a.NONE&&(document.addEventListener("mousemove",this.onMouseMove,!1),document.addEventListener("mouseup",this.onMouseUp,!1),this.dispatchEvent(this.startEvent))})),i(this,"onMouseMove",(e=>{if(!1!==this.enabled)switch(e.preventDefault(),this.state){case a.ROTATE:if(!1===this.enableRotate)return;this.handleMouseMoveRotate(e);break;case a.DOLLY:if(!1===this.enableZoom)return;this.handleMouseMoveDolly(e);break;case a.PAN:if(!1===this.enablePan)return;this.handleMouseMovePan(e)}})),i(this,"onMouseUp",(()=>{!1!==this.enabled&&(document.removeEventListener("mousemove",this.onMouseMove,!1),document.removeEventListener("mouseup",this.onMouseUp,!1),this.dispatchEvent(this.endEvent),this.state=a.NONE)})),i(this,"onMouseWheel",(e=>{!1===this.enabled||!1===this.enableZoom||this.state!==a.NONE&&this.state!==a.ROTATE||(e.preventDefault(),this.dispatchEvent(this.startEvent),this.handleMouseWheel(e),this.dispatchEvent(this.endEvent))})),i(this,"onKeyDown",(e=>{!1!==this.enabled&&!1!==this.enableKeys&&!1!==this.enablePan&&this.handleKeyDown(e)})),i(this,"onTouchStart",(e=>{if(!1!==this.enabled){switch(e.preventDefault(),e.touches.length){case 1:switch(this.touches.ONE){case s.TOUCH.ROTATE:if(!1===this.enableRotate)return;this.handleTouchStartRotate(e),this.state=a.TOUCH_ROTATE;break;case s.TOUCH.PAN:if(!1===this.enablePan)return;this.handleTouchStartPan(e),this.state=a.TOUCH_PAN;break;default:this.state=a.NONE}break;case 2:switch(this.touches.TWO){case s.TOUCH.DOLLY_PAN:if(!1===this.enableZoom&&!1===this.enablePan)return;this.handleTouchStartDollyPan(e),this.state=a.TOUCH_DOLLY_PAN;break;case s.TOUCH.DOLLY_ROTATE:if(!1===this.enableZoom&&!1===this.enableRotate)return;this.handleTouchStartDollyRotate(e),this.state=a.TOUCH_DOLLY_ROTATE;break;default:this.state=a.NONE}break;default:this.state=a.NONE}this.state!==a.NONE&&this.dispatchEvent(this.startEvent)}})),i(this,"onTouchMove",(e=>{if(!1!==this.enabled)switch(e.preventDefault(),this.state){case a.TOUCH_ROTATE:if(!1===this.enableRotate)return;this.handleTouchMoveRotate(e),this.update();break;case a.TOUCH_PAN:if(!1===this.enablePan)return;this.handleTouchMovePan(e),this.update();break;case a.TOUCH_DOLLY_PAN:if(!1===this.enableZoom&&!1===this.enablePan)return;this.handleTouchMoveDollyPan(e),this.update();break;case a.TOUCH_DOLLY_ROTATE:if(!1===this.enableZoom&&!1===this.enableRotate)return;this.handleTouchMoveDollyRotate(e),this.update();break;default:this.state=a.NONE}})),i(this,"onTouchEnd",(()=>{!1!==this.enabled&&(this.dispatchEvent(this.endEvent),this.state=a.NONE)})),i(this,"onContextMenu",(e=>{!1!==this.enabled&&e.preventDefault()})),void 0===t&&console.warn('THREE.CameraControls: The second parameter "domElement" is now mandatory.'),t instanceof Document&&console.error('THREE.CameraControls: "document" should not be used as the target "domElement". Please use "renderer.domElement" instead.'),this.object=e,this.domElement=t,this.mouseButtons={LEFT:s.MOUSE.ROTATE,MIDDLE:s.MOUSE.DOLLY,RIGHT:s.MOUSE.PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.quaternion0=this.object.quaternion.clone(),this.zoom0=this.object.zoom,this.quat=(new s.Quaternion).setFromUnitVectors(this.object.up,new s.Vector3(0,1,0)),this.quatInverse=this.quat.clone().invert(),this.lastPosition=new s.Vector3,this.lastQuaternion=new s.Quaternion,this.domElement.addEventListener("contextmenu",this.onContextMenu,!1),this.domElement.addEventListener("mousedown",this.onMouseDown,!1),this.domElement.addEventListener("wheel",this.onMouseWheel,!1),this.domElement.addEventListener("touchstart",this.onTouchStart,!1),this.domElement.addEventListener("touchend",this.onTouchEnd,!1),this.domElement.addEventListener("touchmove",this.onTouchMove,!1),this.domElement.addEventListener("keydown",this.onKeyDown,!1),-1===this.domElement.tabIndex&&(this.domElement.tabIndex=0),this.object.lookAt(this.target),this.update(),this.saveState()}handleMouseUp(){}handleTouchEnd(){}}t.CameraControls=o,t.MapControlsExp=class extends o{constructor(e,t){super(e,t),i(this,"mouseButtons"),i(this,"touches"),this.mouseButtons={LEFT:s.MOUSE.PAN,RIGHT:s.MOUSE.ROTATE},this.touches={ONE:s.TOUCH.PAN,TWO:s.TOUCH.DOLLY_ROTATE}}},t.OrbitControlsExp=class extends o{constructor(e,t){super(e,t),i(this,"mouseButtons"),i(this,"touches"),this.mouseButtons={LEFT:s.MOUSE.ROTATE,RIGHT:s.MOUSE.PAN},this.touches={ONE:s.TOUCH.ROTATE,TWO:s.TOUCH.DOLLY_PAN}}},t.STATE=a,t.TrackballControlsExp=class extends o{constructor(e,t){super(e,t),i(this,"trackball"),i(this,"screenSpacePanning"),i(this,"autoRotate"),i(this,"mouseButtons"),i(this,"touches"),this.trackball=!0,this.screenSpacePanning=!0,this.autoRotate=!1,this.mouseButtons={LEFT:s.MOUSE.ROTATE,RIGHT:s.MOUSE.PAN},this.touches={ONE:s.TOUCH.ROTATE,TWO:s.TOUCH.DOLLY_PAN}}}},30824:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(95703),s=r(62602),a=new n.Matrix4,o=new i.CSMFrustum,l=new n.Vector3,c=new n.Box3,h=[],u=[];t.CSM=class{constructor(e){e=e||{},this.camera=e.camera,this.parent=e.parent,this.cascades=e.cascades||3,this.maxFar=e.maxFar||1e5,this.mode=e.mode||"practical",this.shadowMapSize=e.shadowMapSize||2048,this.shadowBias=e.shadowBias||1e-6,this.lightDirection=e.lightDirection||new n.Vector3(1,-1,1).normalize(),this.lightIntensity=e.lightIntensity||1,this.lightNear=e.lightNear||1,this.lightFar=e.lightFar||2e3,this.lightMargin=e.lightMargin||200,this.customSplitsCallback=e.customSplitsCallback,this.fade=!1,this.mainFrustum=new i.CSMFrustum,this.frustums=[],this.breaks=[],this.lights=[],this.shaders=new Map,this.createLights(),this.updateFrustums(),this.injectInclude()}createLights(){for(let e=0;es.distanceTo(n[2])?i[2]:n[2];let o=s.distanceTo(a);if(this.fade){const e=this.camera,t=Math.max(e.far,this.maxFar),n=r.vertices.far[0].z/(t-e.near);o+=.25*Math.pow(n,2)*(t-e.near)}e.left=-o/2,e.right=o/2,e.top=o/2,e.bottom=-o/2,e.updateProjectionMatrix()}}getBreaks(){const e=this.camera,t=Math.min(e.far,this.maxFar);switch(this.breaks.length=0,this.mode){case"uniform":r(this.cascades,e.near,t,this.breaks);break;case"logarithmic":i(this.cascades,e.near,t,this.breaks);break;case"practical":!function(e,t,s,a,o){h.length=0,u.length=0,i(e,t,s,u),r(e,t,s,h);for(let r=1;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Matrix4;class s{constructor(e){e=e||{},this.vertices={near:[new n.Vector3,new n.Vector3,new n.Vector3,new n.Vector3],far:[new n.Vector3,new n.Vector3,new n.Vector3,new n.Vector3]},void 0!==e.projectionMatrix&&this.setFromProjectionMatrix(e.projectionMatrix,e.maxFar||1e4)}setFromProjectionMatrix(e,t){const r=0===e.elements[11];return i.copy(e).invert(),this.vertices.near[0].set(1,1,-1),this.vertices.near[1].set(1,-1,-1),this.vertices.near[2].set(-1,-1,-1),this.vertices.near[3].set(-1,1,-1),this.vertices.near.forEach((function(e){e.applyMatrix4(i)})),this.vertices.far[0].set(1,1,1),this.vertices.far[1].set(1,-1,1),this.vertices.far[2].set(-1,-1,1),this.vertices.far[3].set(-1,1,1),this.vertices.far.forEach((function(e){e.applyMatrix4(i);const n=Math.abs(e.z);r?e.z*=Math.min(t/n,1):e.multiplyScalar(Math.min(t/n,1))})),this.vertices}split(e,t){for(;e.length>t.length;)t.push(new s);t.length=e.length;for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Group{constructor(e){super(),this.csm=e,this.displayFrustum=!0,this.displayPlanes=!0,this.displayShadowBounds=!0;const t=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new Float32Array(24),i=new n.BufferGeometry;i.setIndex(new n.BufferAttribute(t,1)),i.setAttribute("position",new n.BufferAttribute(r,3,!1));const s=new n.LineSegments(i,new n.LineBasicMaterial);this.add(s),this.frustumLines=s,this.cascadeLines=[],this.cascadePlanes=[],this.shadowLines=[]}updateVisibility(){const e=this.displayFrustum,t=this.displayPlanes,r=this.displayShadowBounds,n=this.frustumLines,i=this.cascadeLines,s=this.cascadePlanes,a=this.shadowLines;for(let o=0,l=i.length;or;)this.remove(l.pop()),this.remove(c.pop()),this.remove(h.pop());for(;l.length{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={lights_fragment_begin:"\nGeometricContext geometry;\n\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n\n#ifdef CLEARCOAT\n\n\tgeometry.clearcoatNormal = clearcoatNormal;\n\n#endif\n\nIncidentLight directLight;\n\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\n\t\tpointLight = pointLights[ i ];\n\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t}\n\t#pragma unroll_loop_end\n\n#endif\n\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\n\t\tspotLight = spotLights[ i ];\n\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t}\n\t#pragma unroll_loop_end\n\n#endif\n\n#if ( NUM_DIR_LIGHTS > 0) && defined( RE_Direct ) && defined( USE_CSM ) && defined( CSM_CASCADES )\n\n\tDirectionalLight directionalLight;\n\tfloat linearDepth = (vViewPosition.z) / (shadowFar - cameraNear);\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\n\t#if defined( USE_SHADOWMAP ) && defined( CSM_FADE )\n\tvec2 cascade;\n\tfloat cascadeCenter;\n\tfloat closestEdge;\n\tfloat margin;\n\tfloat csmx;\n\tfloat csmy;\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\n\t \t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\t\t// NOTE: Depth gets larger away from the camera.\n\t\t\t// cascade.x is closer, cascade.y is further\n\t\t\tcascade = CSM_cascades[ i ];\n\t\t\tcascadeCenter = ( cascade.x + cascade.y ) / 2.0;\n\t\t\tclosestEdge = linearDepth < cascadeCenter ? cascade.x : cascade.y;\n\t\t\tmargin = 0.25 * pow( closestEdge, 2.0 );\n\t\t\tcsmx = cascade.x - margin / 2.0;\n\t\t\tcsmy = cascade.y + margin / 2.0;\n\t\t\tif( linearDepth >= csmx && ( linearDepth < csmy || UNROLLED_LOOP_INDEX == CSM_CASCADES - 1 ) ) {\n\n\t\t\t\tfloat dist = min( linearDepth - csmx, csmy - linearDepth );\n\t\t\t\tfloat ratio = clamp( dist / margin, 0.0, 1.0 );\n\n\t\t\t\tvec3 prevColor = directLight.color;\n\t\t\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\t\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\n\t\t\t\tbool shouldFadeLastCascade = UNROLLED_LOOP_INDEX == CSM_CASCADES - 1 && linearDepth > cascadeCenter;\n\t\t\t\tdirectLight.color = mix( prevColor, directLight.color, shouldFadeLastCascade ? ratio : 1.0 );\n\n\t\t\t\tReflectedLight prevLight = reflectedLight;\n\t\t\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t\t\t\tbool shouldBlend = UNROLLED_LOOP_INDEX != CSM_CASCADES - 1 || UNROLLED_LOOP_INDEX == CSM_CASCADES - 1 && linearDepth < cascadeCenter;\n\t\t\t\tfloat blendRatio = shouldBlend ? ratio : 1.0;\n\n\t\t\t\treflectedLight.directDiffuse = mix( prevLight.directDiffuse, reflectedLight.directDiffuse, blendRatio );\n\t\t\t\treflectedLight.directSpecular = mix( prevLight.directSpecular, reflectedLight.directSpecular, blendRatio );\n\t\t\t\treflectedLight.indirectDiffuse = mix( prevLight.indirectDiffuse, reflectedLight.indirectDiffuse, blendRatio );\n\t\t\t\treflectedLight.indirectSpecular = mix( prevLight.indirectSpecular, reflectedLight.indirectSpecular, blendRatio );\n\n\t\t\t}\n\t \t#endif\n\n\t}\n\t#pragma unroll_loop_end\n\t#else\n\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\n\t\t\tdirectionalLight = directionalLights[ i ];\n\t\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\n\t\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\n\t\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\t\tif(linearDepth >= CSM_cascades[UNROLLED_LOOP_INDEX].x && linearDepth < CSM_cascades[UNROLLED_LOOP_INDEX].y) directLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\n\t\t\tif(linearDepth >= CSM_cascades[UNROLLED_LOOP_INDEX].x && (linearDepth < CSM_cascades[UNROLLED_LOOP_INDEX].y || UNROLLED_LOOP_INDEX == CSM_CASCADES - 1)) RE_Direct( directLight, geometry, material, reflectedLight );\n\n\t\t\t#endif\n\n\t\t}\n\t\t#pragma unroll_loop_end\n\n\t#endif\n\n\t#if ( NUM_DIR_LIGHTS > NUM_DIR_LIGHT_SHADOWS)\n\t\t// compute the lights not casting shadows (if any)\n\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = NUM_DIR_LIGHT_SHADOWS; i < NUM_DIR_LIGHTS; i ++ ) {\n\n\t\t\tdirectionalLight = directionalLights[ i ];\n\n\t\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\n\t\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t\t}\n\t\t#pragma unroll_loop_end\n\n\t#endif\n\n#endif\n\n\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) && !defined( USE_CSM ) && !defined( CSM_CASCADES )\n\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\n\t\tdirectionalLight = directionalLights[ i ];\n\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\n\t}\n\t#pragma unroll_loop_end\n\n#endif\n\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\n\tRectAreaLight rectAreaLight;\n\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\n\t}\n\t#pragma unroll_loop_end\n\n#endif\n\n#if defined( RE_IndirectDiffuse )\n\n\tvec3 iblIrradiance = vec3( 0.0 );\n\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\n\t\t}\n\t\t#pragma unroll_loop_end\n\n\t#endif\n\n#endif\n\n#if defined( RE_IndirectSpecular )\n\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n\n#endif\n",getlights_pars_begin:()=>`\n\t\t\t#if defined( USE_CSM ) && defined( CSM_CASCADES )\n\t\t\tuniform vec2 CSM_cascades[CSM_CASCADES];\n\t\t\tuniform float cameraNear;\n\t\t\tuniform float shadowFar;\n\t\t\t#endif\n\n\t\t\t${n.ShaderChunk.lights_pars_begin}\n\t\t`};t.CSMShader=i},4668:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Curve{getPoint(e,t=new n.Vector3){const r=t;e=2*Math.PI*e;const i=-.22*Math.cos(e)-1.28*Math.sin(e)-.44*Math.cos(3*e)-.78*Math.sin(3*e),s=-.1*Math.cos(2*e)-.27*Math.sin(2*e)+.38*Math.cos(4*e)+.46*Math.sin(4*e),a=.7*Math.cos(3*e)-.4*Math.sin(3*e);return r.set(i,s,a).multiplyScalar(20)}}class s extends n.Curve{constructor(e=5){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t;e*=2*Math.PI;const i=16*Math.pow(Math.sin(e),3),s=13*Math.cos(e)-5*Math.cos(2*e)-2*Math.cos(3*e)-Math.cos(4*e);return r.set(i,s,0).multiplyScalar(this.scale)}}class a extends n.Curve{constructor(e=70){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t;e=4*e*Math.PI;const i=this.scale/2,s=i*(1+Math.cos(e)),a=i*Math.sin(e),o=2*i*Math.sin(e/2);return r.set(s,a,o)}}class o extends n.Curve{getPoint(e,t=new n.Vector3){const r=t;e*=2*Math.PI;const i=50*Math.sin(e),s=Math.cos(e)*(10+50*Math.cos(e)),a=Math.sin(e)*(10+50*Math.cos(e));return r.set(i,s,a)}}class l extends n.Curve{getPoint(e,t=new n.Vector3){const r=t,i=2*Math.PI*e*150/30,s=30*Math.cos(i),a=30*Math.sin(i),o=150*e;return r.set(s,a,o)}}class c extends n.Curve{constructor(e=10){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t;e*=2*Math.PI;const i=(2+Math.cos(3*e))*Math.cos(2*e),s=(2+Math.cos(3*e))*Math.sin(2*e),a=Math.sin(3*e);return r.set(i,s,a).multiplyScalar(this.scale)}}class h extends n.Curve{constructor(e=10){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t;e*=2*Math.PI;const i=(2+Math.cos(4*e))*Math.cos(3*e),s=(2+Math.cos(4*e))*Math.sin(3*e),a=Math.sin(4*e);return r.set(i,s,a).multiplyScalar(this.scale)}}class u extends n.Curve{constructor(e=10){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t;e*=2*Math.PI;const i=(2+Math.cos(5*e))*Math.cos(2*e),s=(2+Math.cos(5*e))*Math.sin(2*e),a=Math.sin(5*e);return r.set(i,s,a).multiplyScalar(this.scale)}}class d extends n.Curve{constructor(e=10){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t;e=4*e-2;const i=Math.pow(e,3)-3*e,s=Math.pow(e,4)-4*e*e,a=.2*Math.pow(e,5)-2*e;return r.set(i,s,a).multiplyScalar(this.scale)}}class p extends n.Curve{constructor(e=1){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t;e=function(e,t,r){return r*(t-e)+e}(-4,4,e);const i=.4*e*(e*e-7)*(e*e-10),s=Math.pow(e,4)-13*e*e,a=.1*e*(e*e-4)*(e*e-9)*(e*e-12);return r.set(i,s,a).multiplyScalar(this.scale)}}class f extends n.Curve{constructor(e=40){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t;e*=2*Math.PI;const i=Math.cos(2*e)*(1+.6*(Math.cos(5*e)+.75*Math.cos(10*e))),s=Math.sin(2*e)*(1+.6*(Math.cos(5*e)+.75*Math.cos(10*e))),a=.35*Math.sin(5*e);return r.set(i,s,a).multiplyScalar(this.scale)}}class m extends n.Curve{constructor(e=40){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t,i=e*Math.PI*2,s=Math.cos(2*i)*(1+.45*Math.cos(3*i)+.4*Math.cos(9*i)),a=Math.sin(2*i)*(1+.45*Math.cos(3*i)+.4*Math.cos(9*i)),o=.2*Math.sin(9*i);return r.set(s,a,o).multiplyScalar(this.scale)}}class g extends n.Curve{constructor(e=40){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t,i=e*Math.PI*2,s=Math.cos(3*i)*(1+.3*Math.cos(5*i)+.5*Math.cos(10*i)),a=Math.sin(3*i)*(1+.3*Math.cos(5*i)+.5*Math.cos(10*i)),o=.2*Math.sin(20*i);return r.set(s,a,o).multiplyScalar(this.scale)}}class A extends n.Curve{constructor(e=40){super(),this.scale=e}getPoint(e,t=new n.Vector3){const r=t,i=e*Math.PI*2,s=Math.cos(4*i)*(1+.5*(Math.cos(5*i)+.4*Math.cos(20*i))),a=Math.sin(4*i)*(1+.5*(Math.cos(5*i)+.4*Math.cos(20*i))),o=.35*Math.sin(15*i);return r.set(s,a,o).multiplyScalar(this.scale)}}t.CinquefoilKnot=u,t.DecoratedTorusKnot4a=f,t.DecoratedTorusKnot4b=m,t.DecoratedTorusKnot5a=g,t.DecoratedTorusKnot5c=A,t.FigureEightPolynomialKnot=p,t.GrannyKnot=i,t.HeartCurve=s,t.HelixCurve=l,t.KnotCurve=o,t.TorusKnot=h,t.TrefoilKnot=c,t.TrefoilPolynomialKnot=d,t.VivianiCurve=a},98001:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(11576);class s extends n.Curve{constructor(e,t,r,i,s){super(),this.degree=e,this.knots=t,this.controlPoints=[],this.startKnot=i||0,this.endKnot=s||this.knots.length-1;for(let a=0;a{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(11576);t.NURBSSurface=class{constructor(e,t,r,i,s){this.degree1=e,this.degree2=t,this.knots1=r,this.knots2=i,this.controlPoints=[];const a=r.length-e-1,o=i.length-t-1;for(let l=0;l{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);function i(e,t,r){const n=r.length-e-1;if(t>=r[n])return n-1;if(t<=r[e])return e;let i=e,s=n,a=Math.floor((i+s)/2);for(;t=r[a+1];)t=s&&(i[t][0]=i[e][0]/o[c+1][l],n=i[t][0]*o[l][c]);const h=u-1<=c?s-1:r-u;for(let r=l>=-1?1:-l;r<=h;++r)i[t][r]=(i[e][r]-i[e][r-1])/o[c+1][l+r],n+=i[t][r]*o[l+r][c];u<=c&&(i[t][s]=-i[e][s-1]/o[c+1][u],n+=i[t][s]*o[u][c]),a[s][u]=n;const d=e;e=t,t=d}}let h=r;for(let u=1;u<=n;++u){for(let e=0;e<=r;++e)a[u][e]*=h;h*=r-u}return a}function o(e,t,r,s,o){const l=o{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Matrix4,s=new n.Object3D,a=new n.Vector3;class o extends n.EventDispatcher{static createBufferGeometryFromObject(e){let t=new n.BufferGeometry;const r=e.geometry;if(e.isPoints||e.isLine){const e=new n.Float32BufferAttribute(3*r.vertices.length,3),i=new n.Float32BufferAttribute(3*r.colors.length,3);if(t.setAttribute("position",e.copyVector3sArray(r.vertices)),t.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){const e=new n.Float32BufferAttribute(r.lineDistances.length,1);t.setAttribute("lineDistance",e.copyArray(r.lineDistances))}null!==r.boundingSphere&&(t.boundingSphere=r.boundingSphere.clone()),null!==r.boundingBox&&(t.boundingBox=r.boundingBox.clone())}else e.isMesh&&(t=r.toBufferGeometry());return t}constructor(){super(),this.isGeometry=!0,this.uuid=n.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(e){const t=(new n.Matrix3).getNormalMatrix(e);for(let r=0,n=this.vertices.length;r0)for(let n=0;n0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let e=0,t=this.faces.length;e0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let t=0,r=this.faces.length;t=0;o--){const e=s[o];this.faces.splice(e,1);for(let t=0,r=this.faceVertexUvs.length;t0,a=e.vertexNormals.length>0,o=1!==e.color.r||1!==e.color.g||1!==e.color.b,l=e.vertexColors.length>0;let f=0;if(f=c(f,0,0),f=c(f,1,t),f=c(f,2,n),f=c(f,3,i),f=c(f,4,s),f=c(f,5,a),f=c(f,6,o),f=c(f,7,l),r.push(f),r.push(e.a,e.b,e.c),r.push(e.materialIndex),i){const e=this.faceVertexUvs[0][p];r.push(d(e[0]),d(e[1]),d(e[2]))}if(s&&r.push(h(e.normal)),a){const t=e.vertexNormals;r.push(h(t[0]),h(t[1]),h(t[2]))}if(o&&r.push(u(e.color)),l){const t=e.vertexColors;r.push(u(t[0]),u(t[1]),u(t[2]))}}function c(e,t,r){return r?e|1<0&&(e.data.colors=s),o.length>0&&(e.data.uvs=[o]),e.data.faces=r,e}clone(){return(new o).copy(this)}copy(e){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=e.name;const t=e.vertices;for(let u=0,d=t.length;u0){const r=new Float32Array(3*e.normals.length);t.setAttribute("normal",new n.BufferAttribute(r,3).copyVector3sArray(e.normals))}if(e.colors.length>0){const r=new Float32Array(3*e.colors.length);t.setAttribute("color",new n.BufferAttribute(r,3).copyColorsArray(e.colors))}if(e.uvs.length>0){const r=new Float32Array(2*e.uvs.length);t.setAttribute("uv",new n.BufferAttribute(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){const r=new Float32Array(2*e.uvs2.length);t.setAttribute("uv2",new n.BufferAttribute(r,2).copyVector2sArray(e.uvs2))}t.groups=e.groups;for(let i in e.morphTargets){const r=[],s=e.morphTargets[i];for(let e=0,t=s.length;e0){const r=new n.Float32BufferAttribute(4*e.skinIndices.length,4);t.setAttribute("skinIndex",r.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){const r=new n.Float32BufferAttribute(4*e.skinWeights.length,4);t.setAttribute("skinWeight",r.copyVector4sArray(e.skinWeights))}return null!==e.boundingSphere&&(t.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(t.boundingBox=e.boundingBox.clone()),t}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(e){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}dispose(){this.dispatchEvent({type:"dispose"})}}class l{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(e){const t=[];let r,n,i;const s=e.faces;for(n=0;n0,a=i[1]&&i[1].length>0,o=e.morphTargets,l=o.length;let c;if(l>0){c=[];for(let e=0;e0){d=[];for(let e=0;e0&&0===t.length&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let A=0;A{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.AnaglyphEffect=class{constructor(e,t=512,r=512){this.colorMatrixLeft=(new n.Matrix3).fromArray([.4561,-.0400822,-.0152161,.500484,-.0378246,-.0205971,.176381,-.0157589,-.00546856]),this.colorMatrixRight=(new n.Matrix3).fromArray([-.0434706,.378476,-.0721527,-.0879388,.73364,-.112961,-.00155529,-.0184503,1.2264]);const i=new n.OrthographicCamera(-1,1,1,-1,0,1),s=new n.Scene,a=new n.StereoCamera,o={minFilter:n.LinearFilter,magFilter:n.NearestFilter,format:n.RGBAFormat},l=new n.WebGLRenderTarget(t,r,o),c=new n.WebGLRenderTarget(t,r,o),h=new n.ShaderMaterial({uniforms:{mapLeft:{value:l.texture},mapRight:{value:c.texture},colorMatrixLeft:{value:this.colorMatrixLeft},colorMatrixRight:{value:this.colorMatrixRight}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = vec2( uv.x, uv.y );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D mapLeft;","uniform sampler2D mapRight;","varying vec2 vUv;","uniform mat3 colorMatrixLeft;","uniform mat3 colorMatrixRight;","void main() {","\tvec2 uv = vUv;","\tvec4 colorL = texture2D( mapLeft, uv );","\tvec4 colorR = texture2D( mapRight, uv );","\tvec3 color = clamp(","\t\t\tcolorMatrixLeft * colorL.rgb +","\t\t\tcolorMatrixRight * colorR.rgb, 0., 1. );","\tgl_FragColor = vec4(","\t\t\tcolor.r, color.g, color.b,","\t\t\tmax( colorL.a, colorR.a ) );","\t#include ",`\t#include <${parseInt(n.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>`,"}"].join("\n")}),u=new n.Mesh(new n.PlaneGeometry(2,2),h);s.add(u),this.setSize=function(t,r){e.setSize(t,r);const n=e.getPixelRatio();l.setSize(t*n,r*n),c.setSize(t*n,r*n)},this.render=function(t,r){const n=e.getRenderTarget();!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===r.parent&&!0===r.matrixWorldAutoUpdate&&r.updateMatrixWorld(),a.update(r),e.setRenderTarget(l),e.clear(),e.render(t,a.cameraL),e.setRenderTarget(c),e.clear(),e.render(t,a.cameraR),e.setRenderTarget(null),e.render(s,i),e.setRenderTarget(n)},this.dispose=function(){l.dispose(),c.dispose(),u.geometry.dispose(),u.material.dispose()}}}},19574:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.AsciiEffect=class{constructor(e,t=" .:-=+*#%@",r={}){const n=r.resolution||.15,i=r.scale||1,s=r.color||!1,a=r.alpha||!1,o=r.block||!1,l=r.invert||!1,c=r.strResolution||"low";let h,u;const d=document.createElement("div");d.style.cursor="default";const p=document.createElement("table");let f,m,g;d.appendChild(p),this.setSize=function(t,r){h=t,u=r,e.setSize(t,r),function(){f=Math.floor(h*n),m=Math.floor(u*n),b.width=f,b.height=m,g=e.domElement,g.style.backgroundColor&&(p.rows[0].cells[0].style.backgroundColor=g.style.backgroundColor,p.rows[0].cells[0].style.color=g.style.color);p.cellSpacing=0,p.cellPadding=0;const t=p.style;t.whiteSpace="pre",t.margin="0px",t.padding="0px",t.letterSpacing=w+"px",t.fontFamily=y,t.fontSize=S+"px",t.lineHeight=M+"px",t.textAlign="left",t.textDecoration="none"}()},this.render=function(t,r){e.render(t,r),function(e){E.clearRect(0,0,f,m),E.drawImage(x,0,0,f,m);const t=E.getImageData(0,0,f,m).data;let r="";for(let n=0;n"+g+"":g}r+="
"}e.innerHTML=`${r}`}(p)},this.domElement=d;const A=" .,:;i1tfLCG08@".split(""),v=" CGO08@".split(""),y="courier new, monospace",x=e.domElement,b=document.createElement("canvas");if(!b.getContext)return;const E=b.getContext("2d");if(!E.getImageData)return;let _=s?v:A;t&&(_=t);const S=2/n*i,M=2/n*i;let w=0;if("low"==c)switch(i){case 1:w=-1;break;case 2:case 3:w=-2.1;break;case 4:w=-3.1;break;case 5:w=-4.15}if("medium"==c)switch(i){case 1:w=0;break;case 2:w=-1;break;case 3:w=-1.04;break;case 4:case 5:w=-2.1}if("high"==c)switch(i){case 1:case 2:w=0;break;case 3:case 4:case 5:w=-1}}}},71253:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.OutlineEffect=class{constructor(e,t={}){this.enabled=!0;const r=void 0!==t.defaultThickness?t.defaultThickness:.003,i=(new n.Color).fromArray(void 0!==t.defaultColor?t.defaultColor:[0,0,0]),s=void 0!==t.defaultAlpha?t.defaultAlpha:1,a=void 0!==t.defaultKeepAlive&&t.defaultKeepAlive,o={},l={},c={},h={outlineThickness:{value:r},outlineColor:{value:i},outlineAlpha:{value:s}},u=["#include ","#include ","#include ","#include ","#include ","#include ","#include ","#include ","uniform float outlineThickness;","vec4 calculateOutline( vec4 pos, vec3 normal, vec4 skinned ) {","\tfloat thickness = outlineThickness;","\tconst float ratio = 1.0;","\tvec4 pos2 = projectionMatrix * modelViewMatrix * vec4( skinned.xyz + normal, 1.0 );","\tvec4 norm = normalize( pos - pos2 );","\treturn pos + norm * thickness * pos.w * ratio;","}","void main() {","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\t#include ","\tvec3 outlineNormal = - objectNormal;","\tgl_Position = calculateOutline( gl_Position, outlineNormal, vec4( transformed, 1.0 ) );","\t#include ","\t#include ","\t#include ","}"].join("\n"),d=["#include ","#include ","#include ","#include ","uniform vec3 outlineColor;","uniform float outlineAlpha;","void main() {","\t#include ","\t#include ","\tgl_FragColor = vec4( outlineColor, outlineAlpha );","\t#include ",`\t#include <${parseInt(n.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>`,"\t#include ","\t#include ","}"].join("\n");function p(e){const t=function(e){let t=o[e.uuid];return void 0===t&&(t={material:new n.ShaderMaterial({type:"OutlineEffect",uniforms:n.UniformsUtils.merge([n.UniformsLib.fog,n.UniformsLib.displacementmap,h]),vertexShader:u,fragmentShader:d,side:n.BackSide}),used:!0,keepAlive:a,count:0},o[e.uuid]=t),t.used=!0,t.material}(e);return l[t.uuid]=e,function(e,t){if("invisible"===e.name)return;const r=t.userData.outlineParameters;e.fog=t.fog,e.toneMapped=t.toneMapped,e.premultipliedAlpha=t.premultipliedAlpha,e.displacementMap=t.displacementMap,void 0!==r?(!1===t.visible?e.visible=!1:e.visible=void 0===r.visible||r.visible,e.transparent=void 0!==r.alpha&&r.alpha<1||t.transparent,void 0!==r.keepAlive&&(o[t.uuid].keepAlive=r.keepAlive)):(e.transparent=t.transparent,e.visible=t.visible);!0!==t.wireframe&&!1!==t.depthTest||(e.visible=!1);t.clippingPlanes&&(e.clipping=!0,e.clippingPlanes=t.clippingPlanes,e.clipIntersection=t.clipIntersection,e.clipShadows=t.clipShadows);e.version=t.version}(t,e),t}function f(e){const t=e.geometry,r=void 0!==t&&void 0!==t.attributes.normal;return!0===e.isMesh&&void 0!==e.material&&!0===r}function m(e){if(!1!==f(e)){if(Array.isArray(e.material))for(let t=0,r=e.material.length;t60&&delete o[r]):(o[r].used=!1,o[r].count=0)}}(),t.matrixWorldAutoUpdate=i,t.background=s,e.autoClear=n,e.shadowMap.enabled=a},this.autoClear=e.autoClear,this.domElement=e.domElement,this.shadowMap=e.shadowMap,this.clear=function(t,r,n){e.clear(t,r,n)},this.getPixelRatio=function(){return e.getPixelRatio()},this.setPixelRatio=function(t){e.setPixelRatio(t)},this.getSize=function(t){return e.getSize(t)},this.setSize=function(t,r,n){e.setSize(t,r,n)},this.setViewport=function(t,r,n,i){e.setViewport(t,r,n,i)},this.setScissor=function(t,r,n,i){e.setScissor(t,r,n,i)},this.setScissorTest=function(t){e.setScissorTest(t)},this.setRenderTarget=function(t){e.setRenderTarget(t)}}}},24826:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.ParallaxBarrierEffect=class{constructor(e){const t=new n.OrthographicCamera(-1,1,1,-1,0,1),r=new n.Scene,i=new n.StereoCamera,s={minFilter:n.LinearFilter,magFilter:n.NearestFilter,format:n.RGBAFormat},a=new n.WebGLRenderTarget(512,512,s),o=new n.WebGLRenderTarget(512,512,s),l=new n.ShaderMaterial({uniforms:{mapLeft:{value:a.texture},mapRight:{value:o.texture}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = vec2( uv.x, uv.y );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D mapLeft;","uniform sampler2D mapRight;","varying vec2 vUv;","void main() {","\tvec2 uv = vUv;","\tif ( ( mod( gl_FragCoord.y, 2.0 ) ) > 1.00 ) {","\t\tgl_FragColor = texture2D( mapLeft, uv );","\t} else {","\t\tgl_FragColor = texture2D( mapRight, uv );","\t}","\t#include ",`\t#include <${parseInt(n.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>`,"}"].join("\n")}),c=new n.Mesh(new n.PlaneGeometry(2,2),l);r.add(c),this.setSize=function(t,r){e.setSize(t,r);const n=e.getPixelRatio();a.setSize(t*n,r*n),o.setSize(t*n,r*n)},this.render=function(n,s){!0===n.matrixWorldAutoUpdate&&n.updateMatrixWorld(),null===s.parent&&!0===s.matrixWorldAutoUpdate&&s.updateMatrixWorld(),i.update(s),e.setRenderTarget(a),e.clear(),e.render(n,i.cameraL),e.setRenderTarget(o),e.clear(),e.render(n,i.cameraR),e.setRenderTarget(null),e.render(r,t)}}}},18233:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.PeppersGhostEffect=class{constructor(e){const t=this;let r,i,s;t.cameraDistance=15,t.reflectFromAbove=!1;const a=new n.PerspectiveCamera,o=new n.PerspectiveCamera,l=new n.PerspectiveCamera,c=new n.PerspectiveCamera,h=new n.Vector3,u=new n.Quaternion,d=new n.Vector3;e.autoClear=!1,this.setSize=function(t,n){r=t/2,t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.StereoEffect=class{constructor(e){const t=new n.StereoCamera;t.aspect=.5;const r=new n.Vector2;this.setEyeSeparation=function(e){t.eyeSep=e},this.setSize=function(t,r){e.setSize(t,r)},this.render=function(n,i){!0===n.matrixWorldAutoUpdate&&n.updateMatrixWorld(),null===i.parent&&!0===i.matrixWorldAutoUpdate&&i.updateMatrixWorld(),t.update(i),e.getSize(r),e.autoClear&&e.clear(),e.setScissorTest(!0),e.setScissor(0,0,r.width/2,r.height),e.setViewport(0,0,r.width/2,r.height),e.render(n,t.cameraL),e.setScissor(r.width/2,0,r.width/2,r.height),e.setViewport(r.width/2,0,r.width/2,r.height),e.render(n,t.cameraR),e.setScissorTest(!1)}}}},53374:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function n(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)}const i=n(r(85232));t.RoomEnvironment=function(){const e=new i.Scene,t=new i.BoxGeometry;t.deleteAttribute("uv");const r=new i.MeshStandardMaterial({side:i.BackSide}),n=new i.MeshStandardMaterial,s=new i.PointLight(16777215,5,28,2);s.position.set(.418,16.199,.3),e.add(s);const a=new i.Mesh(t,r);a.position.set(-.757,13.219,.717),a.scale.set(31.713,28.305,28.591),e.add(a);const o=new i.Mesh(t,n);o.position.set(-10.906,2.009,1.846),o.rotation.set(0,-.195,0),o.scale.set(2.328,7.905,4.651),e.add(o);const l=new i.Mesh(t,n);l.position.set(-5.607,-.754,-.758),l.rotation.set(0,.994,0),l.scale.set(1.97,1.534,3.955),e.add(l);const c=new i.Mesh(t,n);c.position.set(6.167,.857,7.803),c.rotation.set(0,.561,0),c.scale.set(3.927,6.285,3.687),e.add(c);const h=new i.Mesh(t,n);h.position.set(-2.017,.018,6.124),h.rotation.set(0,.333,0),h.scale.set(2.002,4.566,2.064),e.add(h);const u=new i.Mesh(t,n);u.position.set(2.291,-.756,-2.621),u.rotation.set(0,-.286,0),u.scale.set(1.546,1.552,1.496),e.add(u);const d=new i.Mesh(t,n);d.position.set(-2.193,-.369,-5.547),d.rotation.set(0,.516,0),d.scale.set(3.875,3.487,2.986),e.add(d);const p=new i.Mesh(t,y(50));p.position.set(-16.116,14.37,8.208),p.scale.set(.1,2.428,2.739),e.add(p);const f=new i.Mesh(t,y(50));f.position.set(-16.109,18.021,-8.207),f.scale.set(.1,2.425,2.751),e.add(f);const m=new i.Mesh(t,y(17));m.position.set(14.904,12.198,-1.832),m.scale.set(.15,4.265,6.331),e.add(m);const g=new i.Mesh(t,y(43));g.position.set(-.462,8.89,14.52),g.scale.set(4.38,5.441,.088),e.add(g);const A=new i.Mesh(t,y(20));A.position.set(3.235,11.486,-12.541),A.scale.set(2.5,2,.1),e.add(A);const v=new i.Mesh(t,y(100));function y(e){const t=new i.MeshBasicMaterial;return t.color.setScalar(e),t}return v.position.set(0,20,0),v.scale.set(1,.1,1),e.add(v),e}},19338:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);t.ColladaExporter=class{constructor(){i(this,"options"),i(this,"geometryInfo"),i(this,"materialMap"),i(this,"imageMap"),i(this,"textures"),i(this,"libraryImages"),i(this,"libraryGeometries"),i(this,"libraryEffects"),i(this,"libraryMaterials"),i(this,"canvas"),i(this,"ctx"),i(this,"transMat"),i(this,"getFuncs",["getX","getY","getZ","getW"]),this.options={version:"1.4.1",author:null,textureDirectory:"",upAxis:"Y_UP",unitName:null,unitMeter:null},this.geometryInfo=new WeakMap,this.materialMap=new WeakMap,this.imageMap=new WeakMap,this.textures=[],this.libraryImages=[],this.libraryGeometries=[],this.libraryEffects=[],this.libraryMaterials=[],this.canvas=null,this.ctx=null,this.transMat=null}parse(e,t,r={}){if(this.options={...this.options,...r},null===this.options.upAxis.match(/^[XYZ]_UP$/))return console.error("ColladaExporter: Invalid upAxis: valid values are X_UP, Y_UP or Z_UP."),null;if(null!==this.options.unitName&&null===this.options.unitMeter)return console.error("ColladaExporter: unitMeter needs to be specified if unitName is specified."),null;if(null!==this.options.unitMeter&&null===this.options.unitName)return console.error("ColladaExporter: unitName needs to be specified if unitMeter is specified."),null;if(""!==this.options.textureDirectory&&(this.options.textureDirectory=`${this.options.textureDirectory}/`.replace(/\\/g,"/").replace(/\/+/g,"/")),"1.4.1"!==this.options.version&&"1.5.0"!==this.options.version)return console.warn(`ColladaExporter : Version ${this.options.version} not supported for export. Only 1.4.1 and 1.5.0.`),null;const n=this.processObject(e);let i=`three.js Collada Exporter${null!==this.options.author?`${this.options.author}`:""}${(new Date).toISOString()}${(new Date).toISOString()}Y_UP`;i+=`${this.libraryImages.join("")}`,i+=`${this.libraryEffects.join("")}`,i+=`${this.libraryMaterials.join("")}`,i+=`${this.libraryGeometries.join("")}`,i+=`${n}`,i+='',i+="";const s={data:this.format(i),textures:this.textures};return"function"==typeof t&&requestAnimationFrame((()=>t(s))),s}format(e){var t,r;const n=/^<\//,i=/(\?>$)|(\/>$)/,s=/<[^>]+>[^<]*<\/[^<]+>/,a=(e,t)=>t>0?e+a(e,t-1):"";let o=0;return null!=(r=null==(t=e.match(/(<[^>]+>[^<]+<\/[^<]+>)|(<[^>]+>)/g))?void 0:t.map((e=>{s.test(e)||i.test(e)||!n.test(e)||o--;const t=`${a(" ",o)}${e}`;return s.test(e)||i.test(e)||n.test(e)||o++,t})).join("\n"))?r:""}base64ToBuffer(e){const t=atob(e),r=new Uint8Array(t.length);for(let n=0,i=r.length;n`+i.join(" ")}${r.map((e=>``)).join("")}`:""}getTransform(e){return e.updateMatrix(),this.transMat=this.transMat||new s.Matrix4,this.transMat.copy(e.matrix),this.transMat.transpose(),`${this.transMat.toArray().join(" ")}`}processGeometry(e){let t=this.geometryInfo.get(e);if(!t){const r=e;if(!r.isBufferGeometry)throw new Error("THREE.ColladaExporter: Geometry is not of type THREE.BufferGeometry.");const n=`Mesh${this.libraryGeometries.length+1}`,i=r.index?r.index.count*r.index.itemSize:r.attributes.position.count,s=null!=r.groups&&0!==r.groups.length?r.groups:[{start:0,count:i,materialIndex:0}];let a=``;const o=`${n}-position`,l=`${n}-vertices`;a+=this.getAttribute(r.attributes.position,o,["X","Y","Z"],"float"),a+=``;let c=``;if("normal"in r.attributes){const e=`${n}-normal`;a+=this.getAttribute(r.attributes.normal,e,["X","Y","Z"],"float"),c+=``}if("uv"in r.attributes){const e=`${n}-texcoord`;a+=this.getAttribute(r.attributes.uv,e,["S","T"],"float"),c+=``}if("uv2"in r.attributes){const e=`${n}-texcoord2`;a+=this.getAttribute(r.attributes.uv2,e,["S","T"],"float"),c+=``}if("color"in r.attributes){const e=`${n}-color`;a+=this.getAttribute(r.attributes.color,e,["X","Y","Z"],"uint8"),c+=``}let h=null;if(r.index)h=this.attrBufferToArray(r.index);else{h=new Array(i);for(let e=0,t=h.length;e`,a+=c,a+=`

${r.join(" ")}

`,a+=""}a+="
",this.libraryGeometries.push(a),t={meshid:n,bufferGeometry:r},this.geometryInfo.set(e,t)}return t}processTexture(e){let t=this.imageMap.get(e);if(null==t){t=`image-${this.libraryImages.length+1}`;const r="png",n=e.name||t;let i=``;"1.5.0"===this.options.version?i+=`${this.options.textureDirectory}${n}.${r}`:i+=`${this.options.textureDirectory}${n}.${r}`,i+="",this.libraryImages.push(i),this.imageMap.set(e,t),this.textures.push({directory:this.options.textureDirectory,name:n,ext:r,data:this.imageToData(e.image,r),original:e})}return t}processMaterial(e){let t=this.materialMap.get(e);if(null==t){t=`Mat${this.libraryEffects.length+1}`;let r="phong";if(e instanceof s.MeshLambertMaterial?r="lambert":e instanceof s.MeshBasicMaterial&&(r="constant",null!==e.map&&console.warn("ColladaExporter: Texture maps not supported with MeshBasicMaterial.")),e instanceof s.MeshPhongMaterial){const n=e.emissive?e.emissive:new s.Color(0,0,0),i=e.color?e.color:new s.Color(0,0,0),a=e.specular?e.specular:new s.Color(1,1,1),o=e.shininess||0,l=e.reflectivity||0;let c="";e.transparent&&(c+=`${e.map?'':"1"}`,e.opacity<1&&(c+=`${e.opacity}`));const h=`<${r}>${e.emissiveMap?'':`${n.r} ${n.g} ${n.b} 1`}${"constant"!==r?`${e.map?'':`${i.r} ${i.g} ${i.b} 1`}`:""}${"constant"!==r?`${e.normalMap?'':""}`:""}${"phong"===r?`${a.r} ${a.g} ${a.b} 1${e.specularMap?'':`${o}`}`:""}${i.r} ${i.g} ${i.b} 1${l}${c}`,u=`${e.map?`${this.processTexture(e.map)}diffuse-surface`:""}${e.specularMap?`${this.processTexture(e.specularMap)}specular-surface`:""}${e.emissiveMap?`${this.processTexture(e.emissiveMap)}emissive-surface`:""}${e.normalMap?`${this.processTexture(e.normalMap)}bump-surface`:""}${h}${e.side===s.DoubleSide?'1':""}`,d=``;this.libraryMaterials.push(d),this.libraryEffects.push(u),this.materialMap.set(e,t)}}return t}processObject(e){let t=``;t+=this.getTransform(e);if((new s.Mesh).geometry,e instanceof s.Mesh&&e.isMesh&&null!==e.geometry){const r=this.processGeometry(e.geometry),n=r.meshid,i=r.bufferGeometry;let a,o=null;const l=e.material||new s.MeshBasicMaterial,c=Array.isArray(l)?l:[l];a=i.groups.length>c.length?new Array(i.groups.length):new Array(c.length),o=a.fill(null).map(((e,t)=>this.processMaterial(c[t%c.length]))),t+=``+(null!=o?`${o.map(((e,t)=>``)).join("")}`:"")+""}return e.children.forEach((e=>t+=this.processObject(e))),t+="",t}}},74918:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=class{parse(e,t={decodeSpeed:5,encodeSpeed:5,encoderMethod:a.MESH_EDGEBREAKER_ENCODING,quantization:[16,8,8,8,8],exportUvs:!0,exportNormals:!0,exportColor:!1}){if(e instanceof s.BufferGeometry&&e.isBufferGeometry)throw new Error("DRACOExporter: The first parameter of parse() is now an instance of Mesh or Points.");if(void 0===DracoEncoderModule)throw new Error("THREE.DRACOExporter: required the draco_encoder to work.");const r=e.geometry,n=DracoEncoderModule(),i=new n.Encoder;let o,l;if(!r.isBufferGeometry)throw new Error("THREE.DRACOExporter.parse(geometry, options): geometry is not a THREE.BufferGeometry instance.");if(e instanceof s.Mesh&&e.isMesh){o=new n.MeshBuilder,l=new n.Mesh;const e=r.getAttribute("position");o.AddFloatAttributeToMesh(l,n.POSITION,e.count,e.itemSize,e.array);const i=r.getIndex();if(null!==i)o.AddFacesToMesh(l,i.count/3,i.array);else{const t=new(e.count>65535?Uint32Array:Uint16Array)(e.count);for(let e=0;e{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=r(85232),s=r(65236);async function a(e){const t=await e.arrayBuffer(),r=btoa(String.fromCharCode(...new Uint8Array(t)));return`data:${e.type||""};base64,${r}`}let o,l,c,h;function u(e,t=1/0,r=null){l||(l=new i.PlaneGeometry(2,2,1,1)),c||(c=new i.ShaderMaterial({uniforms:{blitTexture:new i.Uniform(e)},vertexShader:"\n varying vec2 vUv;\n void main(){\n vUv = uv;\n gl_Position = vec4(position.xy * 1.0,0.,.999999);\n }\n ",fragmentShader:"\n uniform sampler2D blitTexture; \n varying vec2 vUv;\n\n void main(){ \n gl_FragColor = vec4(vUv.xy, 0, 1);\n \n #ifdef IS_SRGB\n gl_FragColor = LinearTosRGB( texture2D( blitTexture, vUv) );\n #else\n gl_FragColor = texture2D( blitTexture, vUv);\n #endif\n }\n "})),c.uniforms.blitTexture.value=e,c.defines.IS_SRGB="colorSpace"in e?"srgb"===e.colorSpace:3001===e.encoding,c.needsUpdate=!0,h||(h=new i.Mesh(l,c),h.frustrumCulled=!1);const n=new i.PerspectiveCamera,s=new i.Scene;s.add(h),r||(r=o=new i.WebGLRenderer({antialias:!1})),r.setSize(Math.min(e.image.width,t),Math.min(e.image.height,t)),r.clear(),r.render(s,n);const a=new i.Texture(r.domElement);return a.minFilter=e.minFilter,a.magFilter=e.magFilter,a.wrapS=e.wrapS,a.wrapT=e.wrapT,a.name=e.name,o&&(o.dispose(),o=null),a}const d={POSITION:["byte","byte normalized","unsigned byte","unsigned byte normalized","short","short normalized","unsigned short","unsigned short normalized"],NORMAL:["byte normalized","short normalized"],TANGENT:["byte normalized","short normalized"],TEXCOORD:["byte","byte normalized","unsigned byte","short","short normalized","unsigned short"]};class p{constructor(){this.pluginCallbacks=[],this.register((function(e){return new Y(e)})),this.register((function(e){return new q(e)})),this.register((function(e){return new Z(e)})),this.register((function(e){return new $(e)})),this.register((function(e){return new ee(e)})),this.register((function(e){return new te(e)})),this.register((function(e){return new K(e)})),this.register((function(e){return new J(e)})),this.register((function(e){return new re(e)})),this.register((function(e){return new ne(e)})),this.register((function(e){return new ie(e)}))}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,r,n){const i=new X,s=[];for(let a=0,o=this.pluginCallbacks.length;a{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(p,"symbol"!=typeof(f="Utils")?f+"":f,{insertKeyframe:function(e,t){const r=.001,n=e.getValueSize(),i=new e.TimeBufferType(e.times.length+1),s=new e.ValueBufferType(e.values.length+n),a=e.createInterpolant(new e.ValueBufferType(n));let o;if(0===e.times.length){i[0]=t;for(let e=0;ee.times[e.times.length-1]){if(Math.abs(e.times[e.times.length-1]-t)t){i.set(e.times.slice(0,l+1),0),i[l+1]=t,i.set(e.times.slice(l+1),l+2),s.set(e.values.slice(0,(l+1)*n),0),s.set(a.evaluate(t),(l+1)*n),s.set(e.values.slice((l+1)*n),(l+2)*n),o=l+1;break}}return e.times=i,e.values=s,o},mergeMorphTargetTracks:function(e,t){const r=[],n={},s=e.tracks;for(let a=0;ae.toBlob(r,t)));let r;return"image/jpeg"===t?r=.92:"image/webp"===t&&(r=.8),e.convertToBlob({type:t,quality:r})}class X{constructor(){this.plugins=[],this.options={},this.pending=[],this.buffers=[],this.byteOffset=0,this.buffers=[],this.nodeMap=new Map,this.skins=[],this.extensionsUsed={},this.extensionsRequired={},this.uids=new Map,this.uid=0,this.json={asset:{version:"2.0",generator:"THREE.GLTFExporter"}},this.cache={meshes:new Map,attributes:new Map,attributesNormalized:new Map,materials:new Map,textures:new Map,images:new Map}}setPlugins(e){this.plugins=e}async write(e,t,r={}){this.options=Object.assign({binary:!1,trs:!1,onlyVisible:!0,maxTextureSize:1/0,animations:[],includeCustomExtensions:!1},r),this.options.animations.length>0&&(this.options.trs=!0),this.processInput(e),await Promise.all(this.pending);const n=this,i=n.buffers,s=n.json;r=n.options;const o=n.extensionsUsed,l=n.extensionsRequired,c=new Blob(i,{type:"application/octet-stream"}),h=Object.keys(o),u=Object.keys(l);h.length>0&&(s.extensionsUsed=h),u.length>0&&(s.extensionsRequired=u),s.buffers&&s.buffers.length>0&&(s.buffers[0].byteLength=c.size),!0===r.binary?c.arrayBuffer().then((e=>{const r=H(e),n=new DataView(new ArrayBuffer(8));n.setUint32(0,r.byteLength,!0),n.setUint32(4,5130562,!0);const i=H((a=JSON.stringify(s),(new TextEncoder).encode(a).buffer),32);var a;const o=new DataView(new ArrayBuffer(8));o.setUint32(0,i.byteLength,!0),o.setUint32(4,1313821514,!0);const l=new ArrayBuffer(12),c=new DataView(l);c.setUint32(0,1179937895,!0),c.setUint32(4,2,!0);const h=12+o.byteLength+i.byteLength+n.byteLength+r.byteLength;c.setUint32(8,h,!0);new Blob([l,o,i,n,r],{type:"application/octet-stream"}).arrayBuffer().then(t)})):s.buffers&&s.buffers.length>0?a(c).then((e=>{s.buffers[0].uri=e,t(s)})):t(s)}serializeUserData(e,t){if(0===Object.keys(e.userData).length)return;const r=this.options,n=this.extensionsUsed;try{const i=JSON.parse(JSON.stringify(e.userData));if(r.includeCustomExtensions&&i.gltfExtensions){void 0===t.extensions&&(t.extensions={});for(const e in i.gltfExtensions)t.extensions[e]=i.gltfExtensions[e],n[e]=!0;delete i.gltfExtensions}Object.keys(i).length>0&&(t.extras=i)}catch(i){console.warn("THREE.GLTFExporter: userData of '"+e.name+"' won't be serialized because of JSON.stringify error - "+i.message)}}getUID(e,t=!1){if(!1===this.uids.has(e)){const t=new Map;t.set(!0,this.uid++),t.set(!1,this.uid++),this.uids.set(e,t)}return this.uids.get(e).get(t)}isNormalizedNormalAttribute(e){if(this.cache.attributesNormalized.has(e))return!1;const t=new i.Vector3;for(let r=0,n=e.count;r5e-4)return!1;return!0}createNormalizedNormalAttribute(e){const t=this.cache;if(t.attributesNormalized.has(e))return t.attributesNormalized.get(e);const r=e.clone(),n=new i.Vector3;for(let i=0,s=r.count;i4?n=e.array[d*e.itemSize+r]:(0===r?n=e.getX(d):1===r?n=e.getY(d):2===r?n=e.getZ(d):3===r&&(n=e.getW(d)),!0===e.normalized&&(n=i.MathUtils.normalize(n,e.array))),t===w?c.setFloat32(h,n,!0):t===S?c.setInt32(h,n,!0):t===M?c.setUint32(h,n,!0):t===E?c.setInt16(h,n,!0):t===_?c.setUint16(h,n,!0):t===x?c.setInt8(h,n):t===b&&c.setUint8(h,n),h+=o}const u={buffer:this.processBuffer(c.buffer),byteOffset:this.byteOffset,byteLength:l};void 0!==s&&(u.target=s),s===C&&(u.byteStride=e.itemSize*o),this.byteOffset+=l,a.bufferViews.push(u);return{id:a.bufferViews.length-1,byteLength:0}}processBufferViewImage(e){const t=this,r=t.json;return r.bufferViews||(r.bufferViews=[]),e.arrayBuffer().then((e=>{const n=H(e),i={buffer:t.processBuffer(n),byteOffset:t.byteOffset,byteLength:n.byteLength};return t.byteOffset+=n.byteLength,r.bufferViews.push(i)-1}))}processAccessor(e,t,r,n){const s=this.json;let a;if(e.array.constructor===Float32Array)a=w;else if(e.array.constructor===Int32Array)a=S;else if(e.array.constructor===Uint32Array)a=M;else if(e.array.constructor===Int16Array)a=E;else if(e.array.constructor===Uint16Array)a=_;else if(e.array.constructor===Int8Array)a=x;else{if(e.array.constructor!==Uint8Array)throw new Error("THREE.GLTFExporter: Unsupported bufferAttribute component type: "+e.array.constructor.name);a=b}if(void 0===r&&(r=0),void 0===n&&(n=e.count),0===n)return null;const o=function(e,t,r){const n={min:new Array(e.itemSize).fill(Number.POSITIVE_INFINITY),max:new Array(e.itemSize).fill(Number.NEGATIVE_INFINITY)};for(let s=t;s4?r=e.array[s*e.itemSize+t]:(0===t?r=e.getX(s):1===t?r=e.getY(s):2===t?r=e.getZ(s):3===t&&(r=e.getW(s)),!0===e.normalized&&(r=i.MathUtils.normalize(r,e.array))),n.min[t]=Math.min(n.min[t],r),n.max[t]=Math.max(n.max[t],r)}return n}(e,r,n);let l;void 0!==t&&(l=e===t.index?T:C);const c=this.processBufferView(e,a,r,n,l),h={bufferView:c.id,byteOffset:c.byteOffset,componentType:a,count:n,max:o.max,min:o.min,type:{1:"SCALAR",2:"VEC2",3:"VEC3",4:"VEC4",9:"MAT3",16:"MAT4"}[e.itemSize]};return!0===e.normalized&&(h.normalized=!0),s.accessors||(s.accessors=[]),s.accessors.push(h)-1}processImage(e,t,r,n="image/png"){if(null!==e){const s=this,o=s.cache,l=s.json,c=s.options,h=s.pending;o.images.has(e)||o.images.set(e,{});const u=o.images.get(e),d=n+":flipY/"+r.toString();if(void 0!==u[d])return u[d];l.images||(l.images=[]);const p={mimeType:n},f=j();f.width=Math.min(e.width,c.maxTextureSize),f.height=Math.min(e.height,c.maxTextureSize);const m=f.getContext("2d");if(!0===r&&(m.translate(0,f.height),m.scale(1,-1)),void 0!==e.data){t!==i.RGBAFormat&&console.error("GLTFExporter: Only RGBAFormat is supported.",t),(e.width>c.maxTextureSize||e.height>c.maxTextureSize)&&console.warn("GLTFExporter: Image size is bigger than maxTextureSize",e);const r=new Uint8ClampedArray(e.height*e.width*4);for(let t=0;ts.processBufferViewImage(e))).then((e=>{p.bufferView=e}))):void 0!==f.toDataURL?p.uri=f.toDataURL(n):h.push(W(f,n).then(a).then((e=>{p.uri=e})));const g=l.images.push(p)-1;return u[d]=g,g}throw new Error("THREE.GLTFExporter: No valid image data found. Unable to process texture.")}processSampler(e){const t=this.json;t.samplers||(t.samplers=[]);const r={magFilter:k[e.magFilter],minFilter:k[e.minFilter],wrapS:k[e.wrapS],wrapT:k[e.wrapT]};return t.samplers.push(r)-1}processTexture(e){const t=this.options,r=this.cache,n=this.json;if(r.textures.has(e))return r.textures.get(e);n.textures||(n.textures=[]),e instanceof i.CompressedTexture&&(e=u(e,t.maxTextureSize));let s=e.userData.mimeType;"image/webp"===s&&(s="image/png");const a={sampler:this.processSampler(e),source:this.processImage(e.image,e.format,e.flipY,s)};e.name&&(a.name=e.name),this._invokeAll((function(t){t.writeTexture&&t.writeTexture(e,a)}));const o=n.textures.push(a)-1;return r.textures.set(e,o),o}processMaterial(e){const t=this.cache,r=this.json;if(t.materials.has(e))return t.materials.get(e);if(e.isShaderMaterial)return console.warn("GLTFExporter: THREE.ShaderMaterial not supported."),null;r.materials||(r.materials=[]);const n={pbrMetallicRoughness:{}};!0!==e.isMeshStandardMaterial&&!0!==e.isMeshBasicMaterial&&console.warn("GLTFExporter: Use MeshStandardMaterial or MeshBasicMaterial for best results.");const s=e.color.toArray().concat([e.opacity]);if(Q(s,[1,1,1,1])||(n.pbrMetallicRoughness.baseColorFactor=s),e.isMeshStandardMaterial?(n.pbrMetallicRoughness.metallicFactor=e.metalness,n.pbrMetallicRoughness.roughnessFactor=e.roughness):(n.pbrMetallicRoughness.metallicFactor=.5,n.pbrMetallicRoughness.roughnessFactor=.5),e.metalnessMap||e.roughnessMap){const t=this.buildMetalRoughTexture(e.metalnessMap,e.roughnessMap),r={index:this.processTexture(t),channel:t.channel};this.applyTextureTransform(r,t),n.pbrMetallicRoughness.metallicRoughnessTexture=r}if(e.map){const t={index:this.processTexture(e.map),texCoord:e.map.channel};this.applyTextureTransform(t,e.map),n.pbrMetallicRoughness.baseColorTexture=t}if(e.emissive){const t=e.emissive;if(Math.max(t.r,t.g,t.b)>0&&(n.emissiveFactor=e.emissive.toArray()),e.emissiveMap){const t={index:this.processTexture(e.emissiveMap),texCoord:e.emissiveMap.channel};this.applyTextureTransform(t,e.emissiveMap),n.emissiveTexture=t}}if(e.normalMap){const t={index:this.processTexture(e.normalMap),texCoord:e.normalMap.channel};e.normalScale&&1!==e.normalScale.x&&(t.scale=e.normalScale.x),this.applyTextureTransform(t,e.normalMap),n.normalTexture=t}if(e.aoMap){const t={index:this.processTexture(e.aoMap),texCoord:e.aoMap.channel};1!==e.aoMapIntensity&&(t.strength=e.aoMapIntensity),this.applyTextureTransform(t,e.aoMap),n.occlusionTexture=t}e.transparent?n.alphaMode="BLEND":e.alphaTest>0&&(n.alphaMode="MASK",n.alphaCutoff=e.alphaTest),e.side===i.DoubleSide&&(n.doubleSided=!0),""!==e.name&&(n.name=e.name),this.serializeUserData(e,n),this._invokeAll((function(t){t.writeMaterial&&t.writeMaterial(e,n)}));const a=r.materials.push(n)-1;return t.materials.set(e,a),a}processMesh(e){const t=this.cache,r=this.json,n=[e.geometry.uuid];if(Array.isArray(e.material))for(let i=0,s=e.material.length;i=152?{uv:"TEXCOORD_0",uv1:"TEXCOORD_1",uv2:"TEXCOORD_2",uv3:"TEXCOORD_3"}:{uv:"TEXCOORD_0",uv2:"TEXCOORD_1"},color:"COLOR_0",skinWeight:"WEIGHTS_0",skinIndex:"JOINTS_0"},f=o.getAttribute("normal");void 0===f||this.isNormalizedNormalAttribute(f)||(console.warn("THREE.GLTFExporter: Creating normalized normal attribute from the non-normalized one."),o.setAttribute("normal",this.createNormalizedNormalAttribute(f)));let x=null;for(let s in o.attributes){if("morph"===s.slice(0,5))continue;const e=o.attributes[s];s=p[s]||s.toUpperCase();if(/^(POSITION|NORMAL|TANGENT|TEXCOORD_\d+|COLOR_\d+|JOINTS_\d+|WEIGHTS_\d+)$/.test(s)||(s="_"+s),t.attributes.has(this.getUID(e))){h[s]=t.attributes.get(this.getUID(e));continue}x=null;const r=e.array;"JOINTS_0"!==s||r instanceof Uint16Array||r instanceof Uint8Array||(console.warn('GLTFExporter: Attribute "skinIndex" converted to type UNSIGNED_SHORT.'),x=new i.BufferAttribute(new Uint16Array(r),e.itemSize,e.normalized));const n=this.processAccessor(x||e,o);null!==n&&(s.startsWith("_")||this.detectMeshQuantization(s,e),h[s]=n,t.attributes.set(this.getUID(e),n))}if(void 0!==f&&o.setAttribute("normal",f),0===Object.keys(h).length)return null;if(void 0!==e.morphTargetInfluences&&e.morphTargetInfluences.length>0){const r=[],n=[],i={};if(void 0!==e.morphTargetDictionary)for(const t in e.morphTargetDictionary)i[e.morphTargetDictionary[t]]=t;for(let s=0;s0&&(c.extras={},c.extras.targetNames=n)}const b=Array.isArray(e.material);if(b&&0===o.groups.length)return null;const E=b?e.material:[e.material],_=b?o.groups:[{materialIndex:0,start:void 0,count:void 0}];for(let i=0,s=_.length;i0&&(e.targets=d),null!==o.index){let r=this.getUID(o.index);void 0===_[i].start&&void 0===_[i].count||(r+=":"+_[i].start+":"+_[i].count),t.attributes.has(r)?e.indices=t.attributes.get(r):(e.indices=this.processAccessor(o.index,o,_[i].start,_[i].count),t.attributes.set(r,e.indices)),null===e.indices&&delete e.indices}const r=this.processMaterial(E[_[i].materialIndex]);null!==r&&(e.material=r),u.push(e)}c.primitives=u,r.meshes||(r.meshes=[]),this._invokeAll((function(t){t.writeMesh&&t.writeMesh(e,c)}));const S=r.meshes.push(c)-1;return t.meshes.set(a,S),S}detectMeshQuantization(e,t){if(this.extensionsUsed[N])return;let r;switch(t.array.constructor){case Int8Array:r="byte";break;case Uint8Array:r="unsigned byte";break;case Int16Array:r="short";break;case Uint16Array:r="unsigned short";break;default:return}t.normalized&&(r+=" normalized");const n=e.split("_",1)[0];d[n]&&d[n].includes(r)&&(this.extensionsUsed[N]=!0,this.extensionsRequired[N]=!0)}processCamera(e){const t=this.json;t.cameras||(t.cameras=[]);const r=e.isOrthographicCamera,n={type:r?"orthographic":"perspective"};return r?n.orthographic={xmag:2*e.right,ymag:2*e.top,zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near}:n.perspective={aspectRatio:e.aspect,yfov:i.MathUtils.degToRad(e.fov),zfar:e.far<=0?.001:e.far,znear:e.near<0?0:e.near},""!==e.name&&(n.name=e.type),t.cameras.push(n)-1}processAnimation(e,t){const r=this.json,n=this.nodeMap;r.animations||(r.animations=[]);const s=(e=p.Utils.mergeMorphTargetTracks(e.clone(),t)).tracks,a=[],o=[];for(let l=0;l0){const t=[];for(let n=0,i=e.children.length;n0&&(i.children=t)}this._invokeAll((function(t){t.writeNode&&t.writeNode(e,i)}));const s=t.nodes.push(i)-1;return n.set(e,s),s}processScene(e){const t=this.json,r=this.options;t.scenes||(t.scenes=[],t.scene=0);const n={};""!==e.name&&(n.name=e.name),t.scenes.push(n);const i=[];for(let s=0,a=e.children.length;s0&&(n.nodes=i),this.serializeUserData(e,n)}processObjects(e){const t=new i.Scene;t.name="AuxScene";for(let r=0;r0&&this.processObjects(r);for(let n=0;n0&&(s.range=e.distance)):e.isSpotLight&&(s.type="spot",e.distance>0&&(s.range=e.distance),s.spot={},s.spot.innerConeAngle=(e.penumbra-1)*e.angle*-1,s.spot.outerConeAngle=e.angle),void 0!==e.decay&&2!==e.decay&&console.warn("THREE.GLTFExporter: Light decay may be lost. glTF is physically-based, and expects light.decay=2."),!e.target||e.target.parent===e&&0===e.target.position.x&&0===e.target.position.y&&-1===e.target.position.z||console.warn("THREE.GLTFExporter: Light direction may be lost. For best results, make light.target a child of the light with position 0,0,-1."),i[this.name]||(n.extensions=n.extensions||{},n.extensions[this.name]={lights:[]},i[this.name]=!0);const a=n.extensions[this.name].lights;a.push(s),t.extensions=t.extensions||{},t.extensions[this.name]={light:a.length-1}}}class q{constructor(e){this.writer=e,this.name="KHR_materials_unlit"}writeMaterial(e,t){if(!e.isMeshBasicMaterial)return;const r=this.writer.extensionsUsed;t.extensions=t.extensions||{},t.extensions[this.name]={},r[this.name]=!0,t.pbrMetallicRoughness.metallicFactor=0,t.pbrMetallicRoughness.roughnessFactor=.9}}class K{constructor(e){this.writer=e,this.name="KHR_materials_clearcoat"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.clearcoat)return;const r=this.writer,n=r.extensionsUsed,i={};if(i.clearcoatFactor=e.clearcoat,e.clearcoatMap){const t={index:r.processTexture(e.clearcoatMap),texCoord:e.clearcoatMap.channel};r.applyTextureTransform(t,e.clearcoatMap),i.clearcoatTexture=t}if(i.clearcoatRoughnessFactor=e.clearcoatRoughness,e.clearcoatRoughnessMap){const t={index:r.processTexture(e.clearcoatRoughnessMap),texCoord:e.clearcoatRoughnessMap.channel};r.applyTextureTransform(t,e.clearcoatRoughnessMap),i.clearcoatRoughnessTexture=t}if(e.clearcoatNormalMap){const t={index:r.processTexture(e.clearcoatNormalMap),texCoord:e.clearcoatNormalMap.channel};r.applyTextureTransform(t,e.clearcoatNormalMap),i.clearcoatNormalTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}}class J{constructor(e){this.writer=e,this.name="KHR_materials_iridescence"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.iridescence)return;const r=this.writer,n=r.extensionsUsed,i={};if(i.iridescenceFactor=e.iridescence,e.iridescenceMap){const t={index:r.processTexture(e.iridescenceMap),texCoord:e.iridescenceMap.channel};r.applyTextureTransform(t,e.iridescenceMap),i.iridescenceTexture=t}if(i.iridescenceIor=e.iridescenceIOR,i.iridescenceThicknessMinimum=e.iridescenceThicknessRange[0],i.iridescenceThicknessMaximum=e.iridescenceThicknessRange[1],e.iridescenceThicknessMap){const t={index:r.processTexture(e.iridescenceThicknessMap),texCoord:e.iridescenceThicknessMap.channel};r.applyTextureTransform(t,e.iridescenceThicknessMap),i.iridescenceThicknessTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}}class Z{constructor(e){this.writer=e,this.name="KHR_materials_transmission"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;const r=this.writer,n=r.extensionsUsed,i={};if(i.transmissionFactor=e.transmission,e.transmissionMap){const t={index:r.processTexture(e.transmissionMap),texCoord:e.transmissionMap.channel};r.applyTextureTransform(t,e.transmissionMap),i.transmissionTexture=t}t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}}class ${constructor(e){this.writer=e,this.name="KHR_materials_volume"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0===e.transmission)return;const r=this.writer,n=r.extensionsUsed,i={};if(i.thicknessFactor=e.thickness,e.thicknessMap){const t={index:r.processTexture(e.thicknessMap),texCoord:e.thicknessMap.channel};r.applyTextureTransform(t,e.thicknessMap),i.thicknessTexture=t}i.attenuationDistance=e.attenuationDistance,i.attenuationColor=e.attenuationColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}}class ee{constructor(e){this.writer=e,this.name="KHR_materials_ior"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1.5===e.ior)return;const r=this.writer.extensionsUsed,n={};n.ior=e.ior,t.extensions=t.extensions||{},t.extensions[this.name]=n,r[this.name]=!0}}class te{constructor(e){this.writer=e,this.name="KHR_materials_specular"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||1===e.specularIntensity&&e.specularColor.equals(z)&&!e.specularIntensityMap&&!e.specularColorTexture)return;const r=this.writer,n=r.extensionsUsed,i={};if(e.specularIntensityMap){const t={index:r.processTexture(e.specularIntensityMap),texCoord:e.specularIntensityMap.channel};r.applyTextureTransform(t,e.specularIntensityMap),i.specularTexture=t}if(e.specularColorMap){const t={index:r.processTexture(e.specularColorMap),texCoord:e.specularColorMap.channel};r.applyTextureTransform(t,e.specularColorMap),i.specularColorTexture=t}i.specularFactor=e.specularIntensity,i.specularColorFactor=e.specularColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}}class re{constructor(e){this.writer=e,this.name="KHR_materials_sheen"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.sheen)return;const r=this.writer,n=r.extensionsUsed,i={};if(e.sheenRoughnessMap){const t={index:r.processTexture(e.sheenRoughnessMap),texCoord:e.sheenRoughnessMap.channel};r.applyTextureTransform(t,e.sheenRoughnessMap),i.sheenRoughnessTexture=t}if(e.sheenColorMap){const t={index:r.processTexture(e.sheenColorMap),texCoord:e.sheenColorMap.channel};r.applyTextureTransform(t,e.sheenColorMap),i.sheenColorTexture=t}i.sheenRoughnessFactor=e.sheenRoughness,i.sheenColorFactor=e.sheenColor.toArray(),t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}}class ne{constructor(e){this.writer=e,this.name="KHR_materials_anisotropy"}writeMaterial(e,t){if(!e.isMeshPhysicalMaterial||0==e.anisotropy)return;const r=this.writer,n=r.extensionsUsed,i={};if(e.anisotropyMap){const t={index:r.processTexture(e.anisotropyMap)};r.applyTextureTransform(t,e.anisotropyMap),i.anisotropyTexture=t}i.anisotropyStrength=e.anisotropy,i.anisotropyRotation=e.anisotropyRotation,t.extensions=t.extensions||{},t.extensions[this.name]=i,n[this.name]=!0}}class ie{constructor(e){this.writer=e,this.name="KHR_materials_emissive_strength"}writeMaterial(e,t){if(!e.isMeshStandardMaterial||1===e.emissiveIntensity)return;const r=this.writer.extensionsUsed,n={};n.emissiveStrength=e.emissiveIntensity,t.extensions=t.extensions||{},t.extensions[this.name]=n,r[this.name]=!0}}t.GLTFExporter=p},17351:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(62717);t.MMDExporter=class{constructor(){i(this,"u2sTable")}parseVpd(e,t,r){if(!0!==e.isSkinnedMesh)return console.warn("THREE.MMDExporter: parseVpd() requires SkinnedMesh instance."),null;function n(e){Math.abs(e)<1e-6&&(e=0);let t=e.toString();-1===t.indexOf(".")&&(t+="."),t+="000000";const r=t.indexOf(".");return t.slice(0,r)+"."+t.slice(r+1,r+7)}function i(e){const t=[];for(let r=0,i=e.length;r255?(t.push(i>>8&255),t.push(255&i)):t.push(255&i)}return new Uint8Array(t)}getBindBones(e){const t=e.clone();return t.pose(),t.skeleton.bones}}},32434:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);t.OBJExporter=class{constructor(){i(this,"output"),i(this,"indexVertex"),i(this,"indexVertexUvs"),i(this,"indexNormals"),i(this,"vertex"),i(this,"color"),i(this,"normal"),i(this,"uv"),i(this,"face"),this.output="",this.indexVertex=0,this.indexVertexUvs=0,this.indexNormals=0,this.vertex=new s.Vector3,this.color=new s.Color,this.normal=new s.Vector3,this.uv=new s.Vector2,this.face=[]}parse(e){return e.traverse((e=>{e instanceof s.Mesh&&e.isMesh&&this.parseMesh(e),e instanceof s.Line&&e.isLine&&this.parseLine(e),e instanceof s.Points&&e.isPoints&&this.parsePoints(e)})),this.output}parseMesh(e){let t=0,r=0,n=0;const i=e.geometry,a=new s.Matrix3;if(!i.isBufferGeometry)throw new Error("THREE.OBJExporter: Geometry is not of type THREE.BufferGeometry.");const o=i.getAttribute("position"),l=i.getAttribute("normal"),c=i.getAttribute("uv"),h=i.getIndex();if(this.output+=`o ${e.name}\n`,e.material&&!Array.isArray(e.material)&&e.material.name&&(this.output+=`usemtl ${e.material.name}\n`),void 0!==o)for(let s=0,u=o.count;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.PLYExporter=class{parse(e,t,r){t&&"object"==typeof t&&(console.warn('THREE.PLYExporter: The options parameter is now the third argument to the "parse" function. See the documentation for the new API.'),r=t,t=void 0);const i=(r=Object.assign({binary:!1,excludeAttributes:[],littleEndian:!1},r)).excludeAttributes;let s=!1,a=!1,o=!1,l=0,c=0;e.traverse((function(e){if(e instanceof n.Mesh&&e.isMesh){const t=e.geometry;if(!t.isBufferGeometry)throw new Error("THREE.PLYExporter: Geometry is not of type THREE.BufferGeometry.");const r=t.getAttribute("position"),n=t.getAttribute("normal"),i=t.getAttribute("uv"),h=t.getAttribute("color"),u=t.getIndex();if(void 0===r)return;l+=r.count,c+=u?u.count/3:r.count/3,void 0!==n&&(s=!0),void 0!==i&&(o=!0),void 0!==h&&(a=!0)}}));const h=-1===(null==i?void 0:i.indexOf("index"));if(s=s&&-1===(null==i?void 0:i.indexOf("normal")),a=a&&-1===(null==i?void 0:i.indexOf("color")),o=o&&-1===(null==i?void 0:i.indexOf("uv")),h&&c!==Math.floor(c))return console.error("PLYExporter: Failed to generate a valid PLY file with triangle indices because the number of indices is not divisible by 3."),null;let u=`ply\nformat ${r.binary?r.littleEndian?"binary_little_endian":"binary_big_endian":"ascii"} 1.0\nelement vertex ${l}\nproperty float x\nproperty float y\nproperty float z\n`;s&&(u+="property float nx\nproperty float ny\nproperty float nz\n"),o&&(u+="property float s\nproperty float t\n"),a&&(u+="property uchar red\nproperty uchar green\nproperty uchar blue\n"),h&&(u+=`element face ${c}\nproperty list uchar int vertex_index\n`),u+="end_header\n";const d=new n.Vector3,p=new n.Matrix3;let f=null;if(r.binary){const t=(new TextEncoder).encode(u),n=l*(12+(s?12:0)+(a?3:0)+(o?8:0)),i=h?13*c:0,m=new DataView(new ArrayBuffer(t.length+n+i));new Uint8Array(m.buffer).set(t,0);let g=t.length,A=t.length+n,v=0;this.traverseMeshes(e,(function(e,t){const n=t.getAttribute("position"),i=t.getAttribute("normal"),l=t.getAttribute("uv"),c=t.getAttribute("color"),u=t.getIndex();p.getNormalMatrix(e.matrixWorld);for(let h=0,f=n.count;ht&&t("string"==typeof f?f:""))),f}traverseMeshes(e,t){e.traverse((function(e){if(e instanceof n.Mesh&&e.isMesh){const r=e,n=r.geometry;if(!n.isBufferGeometry)throw new Error("THREE.PLYExporter: Geometry is not of type THREE.BufferGeometry.");n.hasAttribute("position")&&t(r,n)}}))}}},37181:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);t.STLExporter=class{constructor(){i(this,"binary"),i(this,"output"),i(this,"offset"),i(this,"objects"),i(this,"triangles"),i(this,"vA"),i(this,"vB"),i(this,"vC"),i(this,"cb"),i(this,"ab"),i(this,"normal"),this.binary=!1,this.output="",this.offset=80,this.objects=[],this.triangles=0,this.vA=new s.Vector3,this.vB=new s.Vector3,this.vC=new s.Vector3,this.cb=new s.Vector3,this.ab=new s.Vector3,this.normal=new s.Vector3}parse(e,t){if(this.binary=void 0!==t.binary&&t.binary,e.traverse((e=>{if(e instanceof s.Mesh&&e.isMesh){const t=e.geometry;if(!t.isBufferGeometry)throw new Error("THREE.STLExporter: Geometry is not of type THREE.BufferGeometry.");const r=t.index,n=t.getAttribute("position");this.triangles+=null!==r?r.count/3:n.count/3,this.objects.push({object3d:e,geometry:t})}})),this.binary){const e=2*this.triangles+3*this.triangles*4*4+80+4,t=new ArrayBuffer(e);this.output=new DataView(t),this.output.setUint32(this.offset,this.triangles,!0),this.offset+=4}else this.output="",this.output+="solid exported\n";for(let r=0,n=this.objects.length;r{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(8083),a=r(85232);t.USDZExporter=class{constructor(){i(this,"PRECISION",7),i(this,"materials"),i(this,"textures"),i(this,"files"),this.materials={},this.textures={},this.files={}}async parse(e){const t="model.usda";this.files[t]=null;let r=this.buildHeader();e.traverseVisible((e=>{if(e instanceof a.Mesh&&e.isMesh&&e.material.isMeshStandardMaterial){const t=e.geometry,n=e.material,i="geometries/Geometry_"+t.id+".usd";if(!(i in this.files)){const e=this.buildMeshObject(t);this.files[i]=this.buildUSDFileAsString(e)}n.uuid in this.materials||(this.materials[n.uuid]=n),r+=this.buildXform(e,t,n)}})),r+=this.buildMaterials(this.materials),this.files[t]=s.strToU8(r),r=null;for(const i in this.textures){const e=this.textures[i],t=i.split("_")[1],r=1023===e.format,n=this.imageToCanvas(e.image,t),s=await new Promise((e=>null==n?void 0:n.toBlob(e,r?"image/png":"image/jpeg",1)));s&&(this.files[`textures/Texture_${i}.${r?"png":"jpg"}`]=new Uint8Array(await s.arrayBuffer()))}let n=0;for(const i in this.files){const e=this.files[i];n+=34+i.length;const t=63&n;if(4!==t&&null!==e&&e instanceof Uint8Array){const r=new Uint8Array(64-t);this.files[i]=[e,{extra:{12345:r}}]}e&&"number"==typeof e.length&&(n=e.length)}return s.zipSync(this.files,{level:0})}imageToCanvas(e,t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const r=1024/Math.max(e.width,e.height),n=document.createElement("canvas");n.width=e.width*Math.min(1,r),n.height=e.height*Math.min(1,r);const i=n.getContext("2d");if(null==i||i.drawImage(e,0,0,n.width,n.height),void 0!==t){const e=parseInt(t,16),r=(e>>16&255)/255,s=(e>>8&255)/255,a=(255&e)/255,o=null==i?void 0:i.getImageData(0,0,n.width,n.height);if(o){const e=null==o?void 0:o.data;for(let t=0;t\n)\n{\n matrix4d xformOp:transform = ${i}\n uniform token[] xformOpOrder = ["xformOp:transform"]\n rel material:binding = \n}\n`}buildMatrix(e){const t=e.elements;return`( ${this.buildMatrixRow(t,0)}, ${this.buildMatrixRow(t,4)}, ${this.buildMatrixRow(t,8)}, ${this.buildMatrixRow(t,12)} )`}buildMatrixRow(e,t){return`(${e[t+0]}, ${e[t+1]}, ${e[t+2]}, ${e[t+3]})`}buildMeshObject(e){return`\ndef "Geometry"\n{\n ${this.buildMesh(e)}\n}\n`}buildMesh(e){const t=e.attributes,r=t.position.count;return`\n def Mesh "Geometry"\n {\n int[] faceVertexCounts = [${this.buildMeshVertexCount(e)}]\n int[] faceVertexIndices = [${this.buildMeshVertexIndices(e)}]\n normal3f[] normals = [${this.buildVector3Array(t.normal,r)}] (\n interpolation = "vertex"\n )\n point3f[] points = [${this.buildVector3Array(t.position,r)}]\n float2[] primvars:st = [${this.buildVector2Array(t.uv,r)}] (\n interpolation = "vertex"\n )\n uniform token subdivisionScheme = "none"\n }\n`}buildMeshVertexCount(e){const t=null!==e.index?e.index.array.length:e.attributes.position.count;return Array(t/3).fill(3).join(", ")}buildMeshVertexIndices(e){if(null!==e.index)return e.index.array.join(", ");const t=[],r=e.attributes.position.count;for(let n=0;n`),n.push(this.buildTexture(e,e.map,"diffuse",e.color))):r.push(`${t}color3f inputs:diffuseColor = ${this.buildColor(e.color)}`),null!==e.emissiveMap?(r.push(`${t}color3f inputs:emissiveColor.connect = `),n.push(this.buildTexture(e,e.emissiveMap,"emissive"))):e.emissive.getHex()>0&&r.push(`${t}color3f inputs:emissiveColor = ${this.buildColor(e.emissive)}`),null!==e.normalMap&&(r.push(`${t}normal3f inputs:normal.connect = `),n.push(this.buildTexture(e,e.normalMap,"normal"))),null!==e.aoMap&&(r.push(`${t}float inputs:occlusion.connect = `),n.push(this.buildTexture(e,e.aoMap,"occlusion"))),null!==e.roughnessMap&&1===e.roughness?(r.push(`${t}float inputs:roughness.connect = `),n.push(this.buildTexture(e,e.roughnessMap,"roughness"))):r.push(`${t}float inputs:roughness = ${e.roughness}`),null!==e.metalnessMap&&1===e.metalness?(r.push(`${t}float inputs:metallic.connect = `),n.push(this.buildTexture(e,e.metalnessMap,"metallic"))):r.push(`${t}float inputs:metallic = ${e.metalness}`),r.push(`${t}float inputs:opacity = ${e.opacity}`),e instanceof a.MeshPhysicalMaterial&&(r.push(`${t}float inputs:clearcoat = ${e.clearcoat}`),r.push(`${t}float inputs:clearcoatRoughness = ${e.clearcoatRoughness}`),r.push(`${t}float inputs:ior = ${e.ior}`)),`\n def Material "Material_${e.id}"\n {\n def Shader "PreviewSurface"\n {\n uniform token info:id = "UsdPreviewSurface"\n${r.join("\n")}\n int inputs:useSpecularWorkflow = 0\n token outputs:surface\n }\n token outputs:surface.connect = \n token inputs:frame:stPrimvarName = "st"\n def Shader "uvReader_st"\n {\n uniform token info:id = "UsdPrimvarReader_float2"\n token inputs:varname.connect = \n float2 inputs:fallback = (0.0, 0.0)\n float2 outputs:result\n }\n${n.join("\n")}\n }\n`}buildTexture(e,t,r,n){const i=t.id+(n?"_"+n.getHexString():""),s=1023===t.format;return this.textures[i]=t,`\n def Shader "Transform2d_${r}" (\n sdrMetadata = {\n string role = "math"\n }\n )\n {\n uniform token info:id = "UsdTransform2d"\n float2 inputs:in.connect = \n float2 inputs:scale = ${this.buildVector2(t.repeat)}\n float2 inputs:translation = ${this.buildVector2(t.offset)}\n float2 outputs:result\n }\n def Shader "Texture_${t.id}_${r}"\n {\n uniform token info:id = "UsdUVTexture"\n asset inputs:file = @textures/Texture_${i}.${s?"png":"jpg"}@\n float2 inputs:st.connect = \n token inputs:wrapS = "repeat"\n token inputs:wrapT = "repeat"\n float outputs:r\n float outputs:g\n float outputs:b\n float3 outputs:rgb\n }`}buildColor(e){return`(${e.r}, ${e.g}, ${e.b})`}buildVector2(e){return`(${e.x}, ${e.y})`}}},86584:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.BufferGeometry{constructor(e,t,r,i,s,a){super();const o=(e=e||1)/2,l=(t=t||1)/2,c=(r=r||1)/2,h=e/(i=Math.floor(i)||1),u=t/(s=Math.floor(s)||1),d=r/(a=Math.floor(a)||1),p=[];let f=-o,m=-l,g=-c;for(let n=0;n<=i;n++)p.push(f,-l,-c,f,l,-c),p.push(f,l,-c,f,l,c),p.push(f,l,c,f,-l,c),p.push(f,-l,c,f,-l,-c),f+=h;for(let n=0;n<=s;n++)p.push(-o,m,-c,o,m,-c),p.push(o,m,-c,o,m,c),p.push(o,m,c,-o,m,c),p.push(-o,m,c,-o,m,-c),m+=u;for(let n=0;n<=a;n++)p.push(-o,-l,g,-o,l,g),p.push(-o,l,g,o,l,g),p.push(o,l,g,o,-l,g),p.push(o,-l,g,-o,-l,g),g+=d;this.setAttribute("position",new n.Float32BufferAttribute(p,3))}}t.BoxLineGeometry=i},92018:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(90515);class s extends n.BufferGeometry{constructor(e=[]){super();const t=[],r=[],s=(new i.ConvexHull).setFromPoints(e).faces;for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.BufferGeometry{constructor(e,t,r,i){super();const a=[],o=[],l=[],c=new n.Vector3,h=new n.Matrix4;h.makeRotationFromEuler(r),h.setPosition(t);const u=new n.Matrix4;function d(t,r,n){r.applyMatrix4(e.matrixWorld),r.applyMatrix4(u),n.transformDirection(e.matrixWorld),t.push(new s(r.clone(),n.clone()))}function p(e,t){const r=[],n=.5*Math.abs(i.dot(t));for(let i=0;i0,a=e[i+1].position.dot(t)-n>0,o=e[i+2].position.dot(t)-n>0,d=(s?1:0)+(a?1:0)+(o?1:0),d){case 0:r.push(e[i]),r.push(e[i+1]),r.push(e[i+2]);break;case 1:if(s&&(l=e[i+1],c=e[i+2],h=f(e[i],l,t,n),u=f(e[i],c,t,n)),a){l=e[i],c=e[i+2],h=f(e[i+1],l,t,n),u=f(e[i+1],c,t,n),r.push(h),r.push(c.clone()),r.push(l.clone()),r.push(c.clone()),r.push(h.clone()),r.push(u);break}o&&(l=e[i],c=e[i+1],h=f(e[i+2],l,t,n),u=f(e[i+2],c,t,n)),r.push(l.clone()),r.push(c.clone()),r.push(h),r.push(u),r.push(h.clone()),r.push(c.clone());break;case 2:s||(l=e[i].clone(),c=f(l,e[i+1],t,n),h=f(l,e[i+2],t,n),r.push(l),r.push(c),r.push(h)),a||(l=e[i+1].clone(),c=f(l,e[i+2],t,n),h=f(l,e[i],t,n),r.push(l),r.push(c),r.push(h)),o||(l=e[i+2].clone(),c=f(l,e[i],t,n),h=f(l,e[i+1],t,n),r.push(l),r.push(c),r.push(h))}}return r}function f(e,t,r,i){const a=e.position.dot(r)-i,o=a/(a-(t.position.dot(r)-i));return new s(new n.Vector3(e.position.x+o*(t.position.x-e.position.x),e.position.y+o*(t.position.y-e.position.y),e.position.z+o*(t.position.z-e.position.z)),new n.Vector3(e.normal.x+o*(t.normal.x-e.normal.x),e.normal.y+o*(t.normal.y-e.normal.y),e.normal.z+o*(t.normal.z-e.normal.z)))}u.copy(h).invert(),function(){let t,r=[];const s=new n.Vector3,u=new n.Vector3;if(!0===e.geometry.isGeometry)return void console.error("THREE.DecalGeometry no longer supports THREE.Geometry. Use BufferGeometry instead.");const f=e.geometry,m=f.attributes.position,g=f.attributes.normal;if(null!==f.index){const e=f.index;for(t=0;t{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(84181),o=class extends s.BufferGeometry{constructor(e={}){super(),this.isLightningStrike=!0,this.type="LightningStrike",this.init(o.copyParameters(e,e)),this.createMesh()}static createRandomGenerator(){const e=2053,t=[];for(let n=0;nthis.subrays[0].beginVanishingTime?this.state=o.RAY_VANISHING:this.state=o.RAY_STEADY,this.visible=!0):(this.visible=!1,e=r.fraction0*n.propagationTimeFactor&&(t.createPrism(r),t.onDecideSubrayCreation(r,t)):e=this.currentSubray.maxIterations)return void this.currentSegmentCallback(e);this.forwards.subVectors(e.pos1,e.pos0);let t=this.forwards.length();t<1e-6&&(this.forwards.set(0,0,.01),t=this.forwards.length());const r=.5*(e.radius0+e.radius1),n=.5*(e.fraction0+e.fraction1),i=this.time*this.currentSubray.timeScale*Math.pow(2,e.iteration);this.middlePos.lerpVectors(e.pos0,e.pos1,.5),this.middleLinPos.lerpVectors(e.linPos0,e.linPos1,.5);const s=this.middleLinPos;this.newPos.set(this.simplexX.noise4d(s.x,s.y,s.z,i),this.simplexY.noise4d(s.x,s.y,s.z,i),this.simplexZ.noise4d(s.x,s.y,s.z,i)),this.newPos.multiplyScalar(e.positionVariationFactor*t),this.newPos.add(this.middlePos);const a=this.getNewSegment();a.pos0.copy(e.pos0),a.pos1.copy(this.newPos),a.linPos0.copy(e.linPos0),a.linPos1.copy(this.middleLinPos),a.up0.copy(e.up0),a.up1.copy(e.up1),a.radius0=e.radius0,a.radius1=r,a.fraction0=e.fraction0,a.fraction1=n,a.positionVariationFactor=e.positionVariationFactor*this.currentSubray.roughness,a.iteration=e.iteration+1;const o=this.getNewSegment();o.pos0.copy(this.newPos),o.pos1.copy(e.pos1),o.linPos0.copy(this.middleLinPos),o.linPos1.copy(e.linPos1),this.cross1.crossVectors(e.up0,this.forwards.normalize()),o.up0.crossVectors(this.forwards,this.cross1).normalize(),o.up1.copy(e.up1),o.radius0=r,o.radius1=e.radius1,o.fraction0=n,o.fraction1=e.fraction1,o.positionVariationFactor=e.positionVariationFactor*this.currentSubray.roughness,o.iteration=e.iteration+1,this.fractalRayRecursive(a),this.fractalRayRecursive(o)}createPrism(e){this.forwardsFill.subVectors(e.pos1,e.pos0).normalize(),this.isInitialSegment&&(this.currentCreateTriangleVertices(e.pos0,e.up0,this.forwardsFill,e.radius0,0),this.isInitialSegment=!1),this.currentCreateTriangleVertices(e.pos1,e.up0,this.forwardsFill,e.radius1,e.fraction1),this.createPrismFaces()}createTriangleVerticesWithoutUVs(e,t,r,n){this.side.crossVectors(t,r).multiplyScalar(n*o.COS30DEG),this.down.copy(t).multiplyScalar(-n*o.SIN30DEG);const i=this.vPos,s=this.vertices;i.copy(e).sub(this.side).add(this.down),s[this.currentCoordinate++]=i.x,s[this.currentCoordinate++]=i.y,s[this.currentCoordinate++]=i.z,i.copy(e).add(this.side).add(this.down),s[this.currentCoordinate++]=i.x,s[this.currentCoordinate++]=i.y,s[this.currentCoordinate++]=i.z,i.copy(t).multiplyScalar(n).add(e),s[this.currentCoordinate++]=i.x,s[this.currentCoordinate++]=i.y,s[this.currentCoordinate++]=i.z,this.currentVertex+=3}createTriangleVerticesWithUVs(e,t,r,n,i){this.side.crossVectors(t,r).multiplyScalar(n*o.COS30DEG),this.down.copy(t).multiplyScalar(-n*o.SIN30DEG);const s=this.vPos,a=this.vertices,l=this.uvs;s.copy(e).sub(this.side).add(this.down),a[this.currentCoordinate++]=s.x,a[this.currentCoordinate++]=s.y,a[this.currentCoordinate++]=s.z,l[this.currentUVCoordinate++]=i,l[this.currentUVCoordinate++]=0,s.copy(e).add(this.side).add(this.down),a[this.currentCoordinate++]=s.x,a[this.currentCoordinate++]=s.y,a[this.currentCoordinate++]=s.z,l[this.currentUVCoordinate++]=i,l[this.currentUVCoordinate++]=.5,s.copy(t).multiplyScalar(n).add(e),a[this.currentCoordinate++]=s.x,a[this.currentCoordinate++]=s.y,a[this.currentCoordinate++]=s.z,l[this.currentUVCoordinate++]=i,l[this.currentUVCoordinate++]=1,this.currentVertex+=3}createPrismFaces(e){const t=this.indices;e=this.currentVertex-6,t[this.currentIndex++]=e+1,t[this.currentIndex++]=e+2,t[this.currentIndex++]=e+5,t[this.currentIndex++]=e+1,t[this.currentIndex++]=e+5,t[this.currentIndex++]=e+4,t[this.currentIndex++]=e+0,t[this.currentIndex++]=e+1,t[this.currentIndex++]=e+4,t[this.currentIndex++]=e+0,t[this.currentIndex++]=e+4,t[this.currentIndex++]=e+3,t[this.currentIndex++]=e+2,t[this.currentIndex++]=e+0,t[this.currentIndex++]=e+3,t[this.currentIndex++]=e+2,t[this.currentIndex++]=e+3,t[this.currentIndex++]=e+5}createDefaultSubrayCreationCallbacks(){const e=this.randomGenerator.random;this.onDecideSubrayCreation=function(t,r){const n=r.currentSubray,i=r.rayParameters.subrayPeriod,a=r.rayParameters.subrayDutyCycle,o=r.rayParameters.isEternal&&0==n.recursion?-e()*i:s.MathUtils.lerp(n.birthTime,n.endPropagationTime,t.fraction0)-e()*i,l=r.time-o,c=Math.floor(l/i),h=e()*(c+1);let u=0;if(l%i<=a*i&&(u=r.subrayProbability),n.recursion{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(41019);class s extends i.ParametricGeometry{constructor(e,t=64,r=1,i=8,s=!1){const a=t+1,o=e.computeFrenetFrames(t,s),l=o.tangents,c=o.normals,h=o.binormals,u=new n.Vector3;super((function(t,n,i){n*=2*Math.PI;const s=Math.floor(t*(a-1));e.getPointAt(t,u);const o=c[s],l=h[s],d=-r*Math.cos(n),p=r*Math.sin(n);u.x+=d*o.x+p*l.x,u.y+=d*o.y+p*l.y,u.z+=d*o.z+p*l.z,i.copy(u)}),t,i),this.tangents=l,this.normals=c,this.binormals=h,this.path=e,this.segments=t,this.radius=r,this.segmentsRadius=i,this.closed=s}}const a={klein:function(e,t,r){let n,i;t*=Math.PI,e*=2*Math.PI,(t*=2){"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.BufferGeometry{constructor(e=((e,t,r)=>r.set(e,t,Math.cos(e)*Math.sin(t))),t=8,r=8){super(),this.type="ParametricGeometry",this.parameters={func:e,slices:t,stacks:r};const i=[],s=[],a=[],o=[],l=1e-5,c=new n.Vector3,h=new n.Vector3,u=new n.Vector3,d=new n.Vector3,p=new n.Vector3,f=t+1;for(let n=0;n<=r;n++){const i=n/r;for(let r=0;r<=t;r++){const n=r/t;e(n,i,h),s.push(h.x,h.y,h.z),n-l>=0?(e(n-l,i,u),d.subVectors(h,u)):(e(n+l,i,u),d.subVectors(u,h)),i-l>=0?(e(n,i-l,u),p.subVectors(h,u)):(e(n,i+l,u),p.subVectors(u,h)),c.crossVectors(d,p).normalize(),a.push(c.x,c.y,c.z),o.push(n,i)}}for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Vector3;function s(e,t,r,n,s,a){const o=2*Math.PI*s/4,l=Math.max(a-2*s,0),c=Math.PI/4;i.copy(t),i[n]=0,i.normalize();const h=.5*o/(o+l),u=1-i.angleTo(e)/c;if(1===Math.sign(i[r]))return u*h;return l/(o+l)+h+h*(1-u)}class a extends n.BoxGeometry{constructor(e=1,t=1,r=1,i=2,a=.1){if(i=2*i+1,a=Math.min(e/2,t/2,r/2,a),super(1,1,1,i,i,i),1===i)return;const o=this.toNonIndexed();this.index=null,this.attributes.position=o.attributes.position,this.attributes.normal=o.attributes.normal,this.attributes.uv=o.attributes.uv;const l=new n.Vector3,c=new n.Vector3,h=new n.Vector3(e,t,r).divideScalar(2).subScalar(a),u=this.attributes.position.array,d=this.attributes.normal.array,p=this.attributes.uv.array,f=u.length/6,m=new n.Vector3,g=.5/i;for(let n=0,A=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.BufferGeometry{constructor(e,t,r,i,s,a,o){const l=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,3,16,17,18,7,19,20,21,11,22,23,24,15,25,26,27,18,28,29,30,21,31,32,33,24,34,35,36,27,37,38,39,30,40,41,0,33,42,43,4,36,44,45,8,39,46,47,12,12,13,14,15,48,49,50,51,52,53,54,55,56,57,58,59,15,25,26,27,51,60,61,62,55,63,64,65,59,66,67,68,27,37,38,39,62,69,70,71,65,72,73,74,68,75,76,77,39,46,47,12,71,78,79,48,74,80,81,52,77,82,83,56,56,57,58,59,84,85,86,87,88,89,90,91,92,93,94,95,59,66,67,68,87,96,97,98,91,99,100,101,95,102,103,104,68,75,76,77,98,105,106,107,101,108,109,110,104,111,112,113,77,82,83,56,107,114,115,84,110,116,117,88,113,118,119,92,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,123,136,137,120,127,138,139,124,131,140,141,128,135,142,143,132,132,133,134,135,144,145,146,147,148,149,150,151,68,152,153,154,135,142,143,132,147,155,156,144,151,157,158,148,154,159,160,68,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,164,177,178,161,168,179,180,165,172,181,182,169,176,183,184,173,173,174,175,176,185,186,187,188,189,190,191,192,193,194,195,196,176,183,184,173,188,197,198,185,192,199,200,189,196,201,202,193,203,203,203,203,204,205,206,207,208,208,208,208,209,210,211,212,203,203,203,203,207,213,214,215,208,208,208,208,212,216,217,218,203,203,203,203,215,219,220,221,208,208,208,208,218,222,223,224,203,203,203,203,221,225,226,204,208,208,208,208,224,227,228,209,209,210,211,212,229,230,231,232,233,234,235,236,237,238,239,240,212,216,217,218,232,241,242,243,236,244,245,246,240,247,248,249,218,222,223,224,243,250,251,252,246,253,254,255,249,256,257,258,224,227,228,209,252,259,260,229,255,261,262,233,258,263,264,237,265,265,265,265,266,267,268,269,270,271,272,273,92,119,118,113,265,265,265,265,269,274,275,276,273,277,278,279,113,112,111,104,265,265,265,265,276,280,281,282,279,283,284,285,104,103,102,95,265,265,265,265,282,286,287,266,285,288,289,270,95,94,93,92],c=[1.4,0,2.4,1.4,-.784,2.4,.784,-1.4,2.4,0,-1.4,2.4,1.3375,0,2.53125,1.3375,-.749,2.53125,.749,-1.3375,2.53125,0,-1.3375,2.53125,1.4375,0,2.53125,1.4375,-.805,2.53125,.805,-1.4375,2.53125,0,-1.4375,2.53125,1.5,0,2.4,1.5,-.84,2.4,.84,-1.5,2.4,0,-1.5,2.4,-.784,-1.4,2.4,-1.4,-.784,2.4,-1.4,0,2.4,-.749,-1.3375,2.53125,-1.3375,-.749,2.53125,-1.3375,0,2.53125,-.805,-1.4375,2.53125,-1.4375,-.805,2.53125,-1.4375,0,2.53125,-.84,-1.5,2.4,-1.5,-.84,2.4,-1.5,0,2.4,-1.4,.784,2.4,-.784,1.4,2.4,0,1.4,2.4,-1.3375,.749,2.53125,-.749,1.3375,2.53125,0,1.3375,2.53125,-1.4375,.805,2.53125,-.805,1.4375,2.53125,0,1.4375,2.53125,-1.5,.84,2.4,-.84,1.5,2.4,0,1.5,2.4,.784,1.4,2.4,1.4,.784,2.4,.749,1.3375,2.53125,1.3375,.749,2.53125,.805,1.4375,2.53125,1.4375,.805,2.53125,.84,1.5,2.4,1.5,.84,2.4,1.75,0,1.875,1.75,-.98,1.875,.98,-1.75,1.875,0,-1.75,1.875,2,0,1.35,2,-1.12,1.35,1.12,-2,1.35,0,-2,1.35,2,0,.9,2,-1.12,.9,1.12,-2,.9,0,-2,.9,-.98,-1.75,1.875,-1.75,-.98,1.875,-1.75,0,1.875,-1.12,-2,1.35,-2,-1.12,1.35,-2,0,1.35,-1.12,-2,.9,-2,-1.12,.9,-2,0,.9,-1.75,.98,1.875,-.98,1.75,1.875,0,1.75,1.875,-2,1.12,1.35,-1.12,2,1.35,0,2,1.35,-2,1.12,.9,-1.12,2,.9,0,2,.9,.98,1.75,1.875,1.75,.98,1.875,1.12,2,1.35,2,1.12,1.35,1.12,2,.9,2,1.12,.9,2,0,.45,2,-1.12,.45,1.12,-2,.45,0,-2,.45,1.5,0,.225,1.5,-.84,.225,.84,-1.5,.225,0,-1.5,.225,1.5,0,.15,1.5,-.84,.15,.84,-1.5,.15,0,-1.5,.15,-1.12,-2,.45,-2,-1.12,.45,-2,0,.45,-.84,-1.5,.225,-1.5,-.84,.225,-1.5,0,.225,-.84,-1.5,.15,-1.5,-.84,.15,-1.5,0,.15,-2,1.12,.45,-1.12,2,.45,0,2,.45,-1.5,.84,.225,-.84,1.5,.225,0,1.5,.225,-1.5,.84,.15,-.84,1.5,.15,0,1.5,.15,1.12,2,.45,2,1.12,.45,.84,1.5,.225,1.5,.84,.225,.84,1.5,.15,1.5,.84,.15,-1.6,0,2.025,-1.6,-.3,2.025,-1.5,-.3,2.25,-1.5,0,2.25,-2.3,0,2.025,-2.3,-.3,2.025,-2.5,-.3,2.25,-2.5,0,2.25,-2.7,0,2.025,-2.7,-.3,2.025,-3,-.3,2.25,-3,0,2.25,-2.7,0,1.8,-2.7,-.3,1.8,-3,-.3,1.8,-3,0,1.8,-1.5,.3,2.25,-1.6,.3,2.025,-2.5,.3,2.25,-2.3,.3,2.025,-3,.3,2.25,-2.7,.3,2.025,-3,.3,1.8,-2.7,.3,1.8,-2.7,0,1.575,-2.7,-.3,1.575,-3,-.3,1.35,-3,0,1.35,-2.5,0,1.125,-2.5,-.3,1.125,-2.65,-.3,.9375,-2.65,0,.9375,-2,-.3,.9,-1.9,-.3,.6,-1.9,0,.6,-3,.3,1.35,-2.7,.3,1.575,-2.65,.3,.9375,-2.5,.3,1.125,-1.9,.3,.6,-2,.3,.9,1.7,0,1.425,1.7,-.66,1.425,1.7,-.66,.6,1.7,0,.6,2.6,0,1.425,2.6,-.66,1.425,3.1,-.66,.825,3.1,0,.825,2.3,0,2.1,2.3,-.25,2.1,2.4,-.25,2.025,2.4,0,2.025,2.7,0,2.4,2.7,-.25,2.4,3.3,-.25,2.4,3.3,0,2.4,1.7,.66,.6,1.7,.66,1.425,3.1,.66,.825,2.6,.66,1.425,2.4,.25,2.025,2.3,.25,2.1,3.3,.25,2.4,2.7,.25,2.4,2.8,0,2.475,2.8,-.25,2.475,3.525,-.25,2.49375,3.525,0,2.49375,2.9,0,2.475,2.9,-.15,2.475,3.45,-.15,2.5125,3.45,0,2.5125,2.8,0,2.4,2.8,-.15,2.4,3.2,-.15,2.4,3.2,0,2.4,3.525,.25,2.49375,2.8,.25,2.475,3.45,.15,2.5125,2.9,.15,2.475,3.2,.15,2.4,2.8,.15,2.4,0,0,3.15,.8,0,3.15,.8,-.45,3.15,.45,-.8,3.15,0,-.8,3.15,0,0,2.85,.2,0,2.7,.2,-.112,2.7,.112,-.2,2.7,0,-.2,2.7,-.45,-.8,3.15,-.8,-.45,3.15,-.8,0,3.15,-.112,-.2,2.7,-.2,-.112,2.7,-.2,0,2.7,-.8,.45,3.15,-.45,.8,3.15,0,.8,3.15,-.2,.112,2.7,-.112,.2,2.7,0,.2,2.7,.45,.8,3.15,.8,.45,3.15,.112,.2,2.7,.2,.112,2.7,.4,0,2.55,.4,-.224,2.55,.224,-.4,2.55,0,-.4,2.55,1.3,0,2.55,1.3,-.728,2.55,.728,-1.3,2.55,0,-1.3,2.55,1.3,0,2.4,1.3,-.728,2.4,.728,-1.3,2.4,0,-1.3,2.4,-.224,-.4,2.55,-.4,-.224,2.55,-.4,0,2.55,-.728,-1.3,2.55,-1.3,-.728,2.55,-1.3,0,2.55,-.728,-1.3,2.4,-1.3,-.728,2.4,-1.3,0,2.4,-.4,.224,2.55,-.224,.4,2.55,0,.4,2.55,-1.3,.728,2.55,-.728,1.3,2.55,0,1.3,2.55,-1.3,.728,2.4,-.728,1.3,2.4,0,1.3,2.4,.224,.4,2.55,.4,.224,2.55,.728,1.3,2.55,1.3,.728,2.55,.728,1.3,2.4,1.3,.728,2.4,0,0,0,1.425,0,0,1.425,.798,0,.798,1.425,0,0,1.425,0,1.5,0,.075,1.5,.84,.075,.84,1.5,.075,0,1.5,.075,-.798,1.425,0,-1.425,.798,0,-1.425,0,0,-.84,1.5,.075,-1.5,.84,.075,-1.5,0,.075,-1.425,-.798,0,-.798,-1.425,0,0,-1.425,0,-1.5,-.84,.075,-.84,-1.5,.075,0,-1.5,.075,.798,-1.425,0,1.425,-.798,0,.84,-1.5,.075,1.5,-.84,.075];super(),e=e||50,t=void 0!==t?Math.max(2,Math.floor(t)||10):10,a=void 0===a||a;const h=3.15*((o=void 0===o||o)?1:1.3)/2,u=e/h;let d=(r=void 0===r||r)?(8*t-4)*t:0;d+=(i=void 0===i||i)?(16*t-4)*t:0,d+=(s=void 0===s||s)?40*t*t:0;const p=new Uint32Array(3*d);let f=r?4:0;f+=i?8:0,f+=s?20:0,f*=(t+1)*(t+1);const m=new Float32Array(3*f),g=new Float32Array(3*f),A=new Float32Array(2*f),v=new n.Matrix4;v.set(-1,3,-3,1,3,-6,3,0,-3,3,0,0,1,0,0,0);const y=[];let x,b,E;const _=[],S=[],M=[],w=[],C=[],T=[],I=[],B=[],R=new n.Vector3;let P,D,L,F,U,O,N,k,G,z=0,Q=0;const V=new n.Vector3;let H,j,W,X;const Y=new n.Matrix4,q=new n.Matrix4,K=new n.Vector4,J=new n.Vector4,Z=new n.Vector4,$=new n.Vector4,ee=new n.Vector3,te=new n.Vector3,re=v.clone();re.transpose();const ne=(e,t,r)=>!(m[3*e]===m[3*t]&&m[3*e+1]===m[3*t+1]&&m[3*e+2]===m[3*t+2]||m[3*e]===m[3*r]&&m[3*e+1]===m[3*r+1]&&m[3*e+2]===m[3*r+2]||m[3*t]===m[3*r]&&m[3*t+1]===m[3*r+1]&&m[3*t+2]===m[3*r+2]);for(x=0;x<3;x++)C[x]=new n.Matrix4;const ie=r?32:28;F=t+1;let se=0,ae=0,oe=0,le=0,ce=0;for(let n=s?0:20;n=28){for(x=0;x<3;x++){for(b=0;b<4;b++)for(E=0;E<4;E++)y[4*E+b]=c[3*l[16*n+4*b+E]+x],a&&n>=20&&n<28&&2!==x&&(y[4*E+b]*=1.077),o||2!==x||(y[4*E+b]*=1.3);Y.set(y[0],y[1],y[2],y[3],y[4],y[5],y[6],y[7],y[8],y[9],y[10],y[11],y[12],y[13],y[14],y[15]),q.multiplyMatrices(Y,v),C[x].multiplyMatrices(re,q)}for(D=0;D<=t;D++)for(U=D/t,L=0;L<=t;L++){for(O=L/t,G=4,N=k=1;G--;)_[G]=N,S[G]=k,N*=U,k*=O,3===G?(M[G]=w[G]=0,z=Q=1):(M[G]=z*(3-G),w[G]=Q*(3-G),z*=U,Q*=O);for(K.fromArray(_),J.fromArray(S),Z.fromArray(M),$.fromArray(w),x=0;x<3;x++)P=K.clone(),P.applyMatrix4(C[x]),T[x]=P.dot(J),P=Z.clone(),P.applyMatrix4(C[x]),I[x]=P.dot(J),P=K.clone(),P.applyMatrix4(C[x]),B[x]=P.dot($);ee.fromArray(I),te.fromArray(B),R.crossVectors(te,ee),R.normalize(),0===T[0]&&0===T[1]?V.set(0,T[2]>h?1:-1,0):V.set(R.x,R.z,-R.y),m[ae++]=u*T[0],m[ae++]=u*(T[2]-h),m[ae++]=-u*T[1],g[oe++]=V.x,g[oe++]=V.y,g[oe++]=V.z,A[le++]=1-O,A[le++]=1-U}for(D=0;D{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.ExtrudeGeometry{constructor(e,t={}){const{bevelEnabled:r=!1,bevelSize:n=8,bevelThickness:i=10,font:s,height:a=50,size:o=100,lineHeight:l=1,letterSpacing:c=0,...h}=t;if(void 0===s)super();else{super(s.generateShapes(e,o,{lineHeight:l,letterSpacing:c}),{...h,bevelEnabled:r,bevelSize:n,bevelThickness:i,depth:a})}this.type="TextGeometry"}}t.TextBufferGeometry=i,t.TextGeometry=i},3614:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Mesh{constructor(e,t){const r=new n.ShaderMaterial({type:"LightProbeHelperMaterial",uniforms:{sh:{value:e.sh.coefficients},intensity:{value:e.intensity}},vertexShader:["varying vec3 vNormal;","void main() {","\tvNormal = normalize( normalMatrix * normal );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define RECIPROCAL_PI 0.318309886","vec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {","\t// matrix is assumed to be orthogonal","\treturn normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );","}","// source: https://graphics.stanford.edu/papers/envmap/envmap.pdf","vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {","\t// normal is assumed to have unit length","\tfloat x = normal.x, y = normal.y, z = normal.z;","\t// band 0","\tvec3 result = shCoefficients[ 0 ] * 0.886227;","\t// band 1","\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;","\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;","\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;","\t// band 2","\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;","\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;","\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );","\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;","\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );","\treturn result;","}","uniform vec3 sh[ 9 ]; // sh coefficients","uniform float intensity; // light probe intensity","varying vec3 vNormal;","void main() {","\tvec3 normal = normalize( vNormal );","\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );","\tvec3 irradiance = shGetIrradianceAt( worldNormal, sh );","\tvec3 outgoingLight = RECIPROCAL_PI * irradiance * intensity;","\tgl_FragColor = linearToOutputTexel( vec4( outgoingLight, 1.0 ) );","}"].join("\n")});super(new n.SphereGeometry(1,32,16),r),this.lightProbe=e,this.size=t,this.type="LightProbeHelper",this.onBeforeRender()}dispose(){this.geometry.dispose(),this.material.dispose()}onBeforeRender(){this.position.copy(this.lightProbe.position),this.scale.set(1,1,1).multiplyScalar(this.size),this.material.uniforms.intensity.value=this.lightProbe.intensity}}t.LightProbeHelper=i},48117:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Line{constructor(e,t=1,r=16,i=2){const s=new n.BufferGeometry,a=new Float32Array(3*(3*(r+2*i)+3));s.setAttribute("position",new n.BufferAttribute(a,3));const o=new n.LineBasicMaterial({color:65280});super(s,[new n.LineBasicMaterial({color:16776960}),o]),this.type="PositionalAudioHelper",this.audio=e,this.range=t,this.divisionsInnerAngle=r,this.divisionsOuterAngle=i,this.update()}update(){const e=this.audio,t=this.range,r=this.divisionsInnerAngle,i=this.divisionsOuterAngle,s=n.MathUtils.degToRad(e.panner.coneInnerAngle),a=n.MathUtils.degToRad(e.panner.coneOuterAngle),o=s/2,l=a/2;let c,h,u=0,d=0;const p=this.geometry,f=p.attributes.position;function m(e,r,n,i){const s=(r-e)/n;for(f.setXYZ(u,0,0,0),d++,c=e;c{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Line{constructor(e,t){const r=new n.BufferGeometry;r.setAttribute("position",new n.Float32BufferAttribute([1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3)),r.computeBoundingSphere();super(r,new n.LineBasicMaterial({fog:!1})),this.light=e,this.color=t,this.type="RectAreaLightHelper";const i=new n.BufferGeometry;i.setAttribute("position",new n.Float32BufferAttribute([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3)),i.computeBoundingSphere(),this.add(new n.Mesh(i,new n.MeshBasicMaterial({side:n.BackSide,fog:!1})))}updateMatrixWorld(){if(this.scale.set(.5*this.light.width,.5*this.light.height,1),void 0!==this.color)this.material.color.set(this.color),this.children[0].material.color.set(this.color);else{this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity);const e=this.material.color,t=Math.max(e.r,e.g,e.b);t>1&&e.multiplyScalar(1/t),this.children[0].material.color.copy(this.material.color)}this.matrixWorld.extractRotation(this.light.matrixWorld).scale(this.scale).copyPosition(this.light.matrixWorld),this.children[0].matrixWorld.copy(this.matrixWorld)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}}t.RectAreaLightHelper=i},67376:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Vector3,s=new n.Vector3,a=new n.Matrix3;class o extends n.LineSegments{constructor(e,t=1,r=16711680){const i=new n.BufferGeometry,s=e.geometry.attributes.normal.count,a=new n.Float32BufferAttribute(2*s*3,3);i.setAttribute("position",a),super(i,new n.LineBasicMaterial({color:r,toneMapped:!1})),this.object=e,this.size=t,this.type="VertexNormalsHelper",this.matrixAutoUpdate=!1,this.update()}update(){this.object.updateMatrixWorld(!0),a.getNormalMatrix(this.object.matrixWorld);const e=this.object.matrixWorld,t=this.geometry.attributes.position,r=this.object.geometry;if(r){const n=r.attributes.position,o=r.attributes.normal;let l=0;for(let r=0,c=n.count;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Vector3,s=new n.Vector3;class a extends n.LineSegments{constructor(e,t=1,r=65535){const i=new n.BufferGeometry,s=e.geometry.attributes.tangent.count,a=new n.Float32BufferAttribute(2*s*3,3);i.setAttribute("position",a),super(i,new n.LineBasicMaterial({color:r,toneMapped:!1})),this.object=e,this.size=t,this.type="VertexTangentsHelper",this.matrixAutoUpdate=!1,this.update()}update(){this.object.updateMatrixWorld(!0);const e=this.object.matrixWorld,t=this.geometry.attributes.position,r=this.object.geometry,n=r.attributes.position,a=r.attributes.tangent;let o=0;for(let l=0,c=n.count;l{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(36455),i=r(30864),s=r(46863),a=r(58532),o=r(37753),l=r(73653),c=r(91248),h=r(90648),u=r(17101),d=r(4618),p=r(94117),f=r(70599),m=r(61350),g=r(29667),A=r(58688),v=r(16429),y=r(35404),x=r(77600),b=r(99100),E=r(29022),_=r(25386),S=r(80101),M=r(80466),w=r(83920),C=r(588),T=r(22195),I=r(74918),B=r(19338),R=r(17351),P=r(37181),D=r(32434),L=r(53374),F=r(83713),U=r(69457),O=r(36217),N=r(77224),k=r(89930),G=r(75488),z=r(86307),Q=r(16558),V=r(17564),H=r(52359),j=r(14514),W=r(8294),X=r(91909),Y=r(92664),q=r(79047),K=r(95034),J=r(29888),Z=r(63833),$=r(13979),ee=r(83912),te=r(60995),re=r(14024),ne=r(96244),ie=r(66552),se=r(69651),ae=r(34903),oe=r(90515),le=r(17570),ce=r(84181),he=r(17458),ue=r(84145),de=r(79888),pe=r(57829),fe=r(30252),me=r(83828),ge=r(60173),Ae=r(53667),ve=r(3442),ye=r(45830),xe=r(17412),be=r(97573),Ee=r(46603),_e=r(78122),Se=r(22845),Me=r(49888),we=r(834),Ce=r(51761),Te=r(88511),Ie=r(5050),Be=r(7679),Re=r(20591),Pe=r(79666),De=r(44441),Le=r(64753),Fe=r(98263),Ue=r(49190),Oe=r(70866),Ne=r(69265),ke=r(24064),Ge=r(72449),ze=r(96665),Qe=r(23918),Ve=r(81362),He=r(1258),je=r(17214),We=r(18526),Xe=r(98060),Ye=r(18921),qe=r(44652),Ke=r(27251),Je=r(17497),Ze=r(62788),$e=r(4437),et=r(57382),tt=r(73162),rt=r(65483),nt=r(79752),it=r(93177),st=r(28265),at=r(2327),ot=r(19453),lt=r(11225),ct=r(12888),ht=r(12333),ut=r(41019),dt=r(92018),pt=r(42095),ft=r(23723),mt=r(86584),gt=r(41694),At=r(24858),vt=r(66038),yt=r(30824),xt=r(95703),bt=r(41959),Et=r(62602),_t=r(42333),St=r(70382),Mt=r(17853),wt=r(18260),Ct=r(69556),Tt=r(73500),It=r(67971),Bt=r(49890),Rt=r(67618),Pt=r(2474),Dt=r(59564),Lt=r(83453),Ft=r(55175),Ut=r(86170),Ot=r(59305),Nt=r(15479),kt=r(85832),Gt=r(29076),zt=r(13855),Qt=r(37272),Vt=r(29839),Ht=r(85402),jt=r(50044),Wt=r(79169),Xt=r(37211),Yt=r(39032),qt=r(43098),Kt=r(29983),Jt=r(78440),Zt=r(48123),$t=r(69277),er=r(29176),tr=r(94640),rr=r(79203),nr=r(16025),ir=r(24730),sr=r(27407),ar=r(48463),or=r(30424),lr=r(83222),cr=r(66155),hr=r(61621),ur=r(60206),dr=r(51867),pr=r(55658),fr=r(60310),mr=r(65149),gr=r(94989),Ar=r(19076),vr=r(74354),yr=r(16832),xr=r(169),br=r(96851),Er=r(24820),_r=r(37037),Sr=r(72134),Mr=r(49693),wr=r(24826),Cr=r(18233),Tr=r(71253),Ir=r(30675),Br=r(19574),Rr=r(92701),Pr=r(27619),Dr=r(74758),Lr=r(2545),Fr=r(76193),Ur=r(78798),Or=r(4246),Nr=r(79140),kr=r(56668),Gr=r(4951),zr=r(96334),Qr=r(7955),Vr=r(41163),Hr=r(8117),jr=r(57659),Wr=r(60716),Xr=r(31150),Yr=r(66910),qr=r(16354),Kr=r(74181),Jr=r(13785),Zr=r(88799),$r=r(25452),en=r(39142),tn=r(7472),rn=r(79872),nn=r(91004),sn=r(77750),an=r(85569),on=r(78929),ln=r(23940),cn=r(20614),hn=r(49935),un=r(37425),dn=r(13446),pn=r(37343),fn=r(77741),mn=r(28057),gn=r(6258),An=r(59198),vn=r(88909),yn=r(22996),xn=r(67071),bn=r(28491),En=r(70658),_n=r(21847),Sn=r(26386),Mn=r(18113),wn=r(80353),Cn=r(5440),Tn=r(13235),In=r(77723),Bn=r(8052),Rn=r(27575),Pn=r(45051),Dn=r(39867),Ln=r(3614),Fn=r(59308),Un=r(48117),On=r(67376),Nn=r(19301),kn=r(60762),Gn=r(94418),zn=r(11576),Qn=r(98001),Vn=r(81587),Hn=r(4668),jn=r(75668),Wn=r(15527),Xn=r(48490);t.MD2CharacterComplex=n.MD2CharacterComplex,t.ConvexObjectBreaker=i.ConvexObjectBreaker,t.MorphBlendMesh=s.MorphBlendMesh,t.GPUComputationRenderer=a.GPUComputationRenderer,t.Gyroscope=o.Gyroscope,t.MorphAnimMesh=l.MorphAnimMesh,t.RollerCoasterGeometry=c.RollerCoasterGeometry,t.RollerCoasterLiftersGeometry=c.RollerCoasterLiftersGeometry,t.RollerCoasterShadowGeometry=c.RollerCoasterShadowGeometry,t.SkyGeometry=c.SkyGeometry,t.TreesGeometry=c.TreesGeometry,t.Timer=h.Timer,t.getErrorMessage=u.getErrorMessage,t.getWebGL2ErrorMessage=u.getWebGL2ErrorMessage,t.getWebGLErrorMessage=u.getWebGLErrorMessage,t.isWebGL2Available=u.isWebGL2Available,t.isWebGLAvailable=u.isWebGLAvailable,t.MD2Character=d.MD2Character,t.VolumeSlice=p.VolumeSlice,t.TubePainter=f.TubePainter,t.Volume=m.Volume,t.ProgressiveLightMap=g.ProgressiveLightMap,t.CSS2DObject=A.CSS2DObject,t.CSS2DRenderer=A.CSS2DRenderer,t.CSS3DObject=v.CSS3DObject,t.CSS3DRenderer=v.CSS3DRenderer,t.CSS3DSprite=v.CSS3DSprite,t.Projector=y.Projector,t.RenderableFace=y.RenderableFace,t.RenderableLine=y.RenderableLine,t.RenderableObject=y.RenderableObject,t.RenderableSprite=y.RenderableSprite,t.RenderableVertex=y.RenderableVertex,t.SVGObject=x.SVGObject,t.SVGRenderer=x.SVGRenderer,t.FlakesTexture=b.FlakesTexture,t.Flow=E.Flow,t.InstancedFlow=E.InstancedFlow,t.getUniforms=E.getUniforms,t.initSplineTexture=E.initSplineTexture,t.modifyShader=E.modifyShader,t.updateSplineTexture=E.updateSplineTexture,t.SimplifyModifier=_.SimplifyModifier,t.EdgeSplitModifier=S.EdgeSplitModifier,t.TessellateModifier=M.TessellateModifier,t.GLTFExporter=w.GLTFExporter,t.USDZExporter=C.USDZExporter,t.PLYExporter=T.PLYExporter,t.DRACOExporter=I.DRACOExporter,t.ColladaExporter=B.ColladaExporter,t.MMDExporter=R.MMDExporter,t.STLExporter=P.STLExporter,t.OBJExporter=D.OBJExporter,t.RoomEnvironment=L.RoomEnvironment,t.AnimationClipCreator=F.AnimationClipCreator,t.CCDIKHelper=U.CCDIKHelper,t.CCDIKSolver=U.CCDIKSolver,t.MMDPhysics=O.MMDPhysics,t.MMDAnimationHelper=N.MMDAnimationHelper,t.BatchedMesh=k.BatchedMesh,t.Reflector=G.Reflector,t.Refractor=z.Refractor,t.ShadowMesh=Q.ShadowMesh,t.Lensflare=V.Lensflare,t.LensflareElement=V.LensflareElement,t.Water=H.Water,t.MarchingCubes=j.MarchingCubes,t.edgeTable=j.edgeTable,t.triTable=j.triTable,t.LightningStorm=W.LightningStorm,t.ReflectorRTT=X.ReflectorRTT,t.ReflectorForSSRPass=Y.ReflectorForSSRPass,t.Sky=q.Sky,t.Water2=K.Water2,t.GroundProjectedEnv=J.GroundProjectedEnv,t.SceneUtils=Z.SceneUtils,t.UVsDebug=$.UVsDebug,t.GeometryUtils=ee.GeometryUtils,t.RoughnessMipmapper=te.RoughnessMipmapper,t.SkeletonUtils=re.SkeletonUtils,t.ShadowMapViewer=ne.ShadowMapViewer,t.computeMorphedAttributes=ie.computeMorphedAttributes,t.estimateBytesUsed=ie.estimateBytesUsed,t.interleaveAttributes=ie.interleaveAttributes,t.mergeBufferAttributes=ie.mergeBufferAttributes,t.mergeBufferGeometries=ie.mergeBufferGeometries,t.mergeVertices=ie.mergeVertices,t.toCreasedNormals=ie.toCreasedNormals,t.toTrianglesDrawMode=ie.toTrianglesDrawMode,t.GeometryCompressionUtils=se.GeometryCompressionUtils,t.PackedPhongMaterial=se.PackedPhongMaterial,t.CinematicCamera=ae.CinematicCamera,t.ConvexHull=oe.ConvexHull,t.Face=oe.Face,t.HalfEdge=oe.HalfEdge,t.VertexList=oe.VertexList,t.VertexNode=oe.VertexNode,t.MeshSurfaceSampler=le.MeshSurfaceSampler,t.SimplexNoise=ce.SimplexNoise,t.OBB=he.OBB,t.Capsule=ue.Capsule,t.ColorConverter=de.ColorConverter,t.ImprovedNoise=pe.ImprovedNoise,t.Octree=fe.Octree,t.ColorMapKeywords=me.ColorMapKeywords,t.Lut=me.Lut,t.CameraControls=ge.CameraControls,t.MapControlsExp=ge.MapControlsExp,t.OrbitControlsExp=ge.OrbitControlsExp,t.STATE=ge.STATE,t.TrackballControlsExp=ge.TrackballControlsExp,t.FirstPersonControls=Ae.FirstPersonControls,t.TransformControls=ve.TransformControls,t.TransformControlsGizmo=ve.TransformControlsGizmo,t.TransformControlsPlane=ve.TransformControlsPlane,t.DragControls=ye.DragControls,t.PointerLockControls=xe.PointerLockControls,t.DeviceOrientationControls=be.DeviceOrientationControls,t.TrackballControls=Ee.TrackballControls,t.MapControls=_e.MapControls,t.OrbitControls=_e.OrbitControls,t.ArcballControls=Se.ArcballControls,t.FlyControls=Me.FlyControls,t.LUTPass=we.LUTPass,t.ClearPass=Ce.ClearPass,t.GlitchPass=Te.GlitchPass,t.HalftonePass=Ie.HalftonePass,t.SMAAPass=Be.SMAAPass,t.FilmPass=Re.FilmPass,t.OutlinePass=Pe.OutlinePass,t.SSAOPass=De.SSAOPass,t.SavePass=Le.SavePass,t.BokehPass=Fe.BokehPass,t.FullScreenQuad=Ue.FullScreenQuad,t.Pass=Ue.Pass,t.TexturePass=Oe.TexturePass,t.AdaptiveToneMappingPass=Ne.AdaptiveToneMappingPass,t.UnrealBloomPass=ke.UnrealBloomPass,t.CubeTexturePass=Ge.CubeTexturePass,t.SAOPass=ze.SAOPass,t.AfterimagePass=Qe.AfterimagePass,t.ClearMaskPass=Ve.ClearMaskPass,t.MaskPass=Ve.MaskPass,t.EffectComposer=He.EffectComposer,t.DotScreenPass=je.DotScreenPass,t.SSRPass=We.SSRPass,t.TAARenderPass=Xe.TAARenderPass,t.ShaderPass=Ye.ShaderPass,t.SSAARenderPass=qe.SSAARenderPass,t.RenderPass=Ke.RenderPass,t.RenderPixelatedPass=Je.RenderPixelatedPass,t.BloomPass=Ze.BloomPass,t.WaterPass=$e.WaterPass,t.ARButton=et.ARButton,t.OculusHandModel=tt.OculusHandModel,t.OculusHandPointerModel=rt.OculusHandPointerModel,t.createText=nt.createText,t.VRButton=it.VRButton,t.XRControllerModelFactory=st.XRControllerModelFactory,t.XREstimatedLight=at.XREstimatedLight,t.XRHandMeshModel=ot.XRHandMeshModel,t.XRHandModelFactory=lt.XRHandModelFactory,t.XRHandPrimitiveModel=ct.XRHandPrimitiveModel,t.ParametricGeometries=ht.ParametricGeometries,t.ParametricGeometry=ut.ParametricGeometry,t.ConvexGeometry=dt.ConvexGeometry,t.LightningStrike=pt.LightningStrike,t.RoundedBoxGeometry=ft.RoundedBoxGeometry,t.BoxLineGeometry=mt.BoxLineGeometry,t.DecalGeometry=gt.DecalGeometry,t.DecalVertex=gt.DecalVertex,t.TeapotGeometry=At.TeapotGeometry,t.TextBufferGeometry=vt.TextGeometry,t.TextGeometry=vt.TextGeometry,t.CSM=yt.CSM,t.CSMFrustum=xt.CSMFrustum,t.CSMHelper=bt.CSMHelper,t.CSMShader=Et.CSMShader,t.ACESFilmicToneMappingShader=_t.ACESFilmicToneMappingShader,t.AfterimageShader=St.AfterimageShader,t.BasicShader=Mt.BasicShader,t.BleachBypassShader=wt.BleachBypassShader,t.BlendShader=Ct.BlendShader,t.BokehShader=Tt.BokehShader,t.BokehDepthShader=It.BokehDepthShader,t.BokehShader2=It.BokehShader2,t.BrightnessContrastShader=Bt.BrightnessContrastShader,t.ColorCorrectionShader=Rt.ColorCorrectionShader,t.ColorifyShader=Pt.ColorifyShader,t.ConvolutionShader=Dt.ConvolutionShader,t.CopyShader=Lt.CopyShader,t.DOFMipMapShader=Ft.DOFMipMapShader,t.BlurShaderUtils=Ut.BlurShaderUtils,t.DepthLimitedBlurShader=Ut.DepthLimitedBlurShader,t.DigitalGlitch=Ot.DigitalGlitch,t.DotScreenShader=Nt.DotScreenShader,t.FXAAShader=kt.FXAAShader,t.FilmShader=Gt.FilmShader,t.FocusShader=zt.FocusShader,t.FreiChenShader=Qt.FreiChenShader,t.FresnelShader=Vt.FresnelShader,t.GammaCorrectionShader=Ht.GammaCorrectionShader,t.GodRaysCombineShader=jt.GodRaysCombineShader,t.GodRaysDepthMaskShader=jt.GodRaysDepthMaskShader,t.GodRaysFakeSunShader=jt.GodRaysFakeSunShader,t.GodRaysGenerateShader=jt.GodRaysGenerateShader,t.HalftoneShader=Wt.HalftoneShader,t.HorizontalBlurShader=Xt.HorizontalBlurShader,t.HorizontalTiltShiftShader=Yt.HorizontalTiltShiftShader,t.HueSaturationShader=qt.HueSaturationShader,t.KaleidoShader=Kt.KaleidoShader,t.LuminosityHighPassShader=Jt.LuminosityHighPassShader,t.LuminosityShader=Zt.LuminosityShader,t.MirrorShader=$t.MirrorShader,t.NormalMapShader=er.NormalMapShader,t.ParallaxShader=tr.ParallaxShader,t.PixelShader=rr.PixelShader,t.RGBShiftShader=nr.RGBShiftShader,t.SAOShader=ir.SAOShader,t.SMAABlendShader=sr.SMAABlendShader,t.SMAAEdgesShader=sr.SMAAEdgesShader,t.SMAAWeightsShader=sr.SMAAWeightsShader,t.SSAOBlurShader=ar.SSAOBlurShader,t.SSAODepthShader=ar.SSAODepthShader,t.SSAOShader=ar.SSAOShader,t.SSRBlurShader=or.SSRBlurShader,t.SSRDepthShader=or.SSRDepthShader,t.SSRShader=or.SSRShader,t.SepiaShader=lr.SepiaShader,t.SobelOperatorShader=cr.SobelOperatorShader,t.SubsurfaceScatteringShader=hr.SubsurfaceScatteringShader,t.TechnicolorShader=ur.TechnicolorShader,t.ToneMapShader=dr.ToneMapShader,t.ToonShader1=pr.ToonShader1,t.ToonShader2=pr.ToonShader2,t.ToonShaderDotted=pr.ToonShaderDotted,t.ToonShaderHatching=pr.ToonShaderHatching,t.TriangleBlurShader=fr.TriangleBlurShader,t.UnpackDepthRGBAShader=mr.UnpackDepthRGBAShader,t.VerticalBlurShader=gr.VerticalBlurShader,t.VerticalTiltShiftShader=Ar.VerticalTiltShiftShader,t.VignetteShader=vr.VignetteShader,t.VolumeRenderShader1=yr.VolumeRenderShader1,t.WaterRefractionShader=xr.WaterRefractionShader,t.HTMLMesh=br.HTMLMesh,t.InteractiveGroup=Er.InteractiveGroup,t.SelectionHelper=_r.SelectionHelper,t.SelectionBox=Sr.SelectionBox,t.AmmoPhysics=Mr.AmmoPhysics,t.ParallaxBarrierEffect=wr.ParallaxBarrierEffect,t.PeppersGhostEffect=Cr.PeppersGhostEffect,t.OutlineEffect=Tr.OutlineEffect,t.AnaglyphEffect=Ir.AnaglyphEffect,t.AsciiEffect=Br.AsciiEffect,t.StereoEffect=Rr.StereoEffect,t.FBXLoader=Pr.FBXLoader,t.Font=Dr.Font,t.FontLoader=Dr.FontLoader,t.TGALoader=Lr.TGALoader,t.LUTCubeLoader=Fr.LUTCubeLoader,t.NRRDLoader=Ur.NRRDLoader,t.STLLoader=Or.STLLoader,t.MTLLoader=Nr.MTLLoader,t.XLoader=kr.XLoader,t.BVHLoader=Gr.BVHLoader,t.KMZLoader=zr.KMZLoader,t.VRMLoader=Qr.VRMLoader,t.VRMLLoader=Vr.VRMLLoader,t.KTX2Loader=Hr.KTX2Loader,t.LottieLoader=jr.LottieLoader,t.TTFLoader=Wr.TTFLoader,t.RGBELoader=Xr.RGBELoader,t.AssimpLoader=Yr.AssimpLoader,t.ColladaLoader=qr.ColladaLoader,t.MDDLoader=Kr.MDDLoader,t.EXRLoader=Jr.EXRLoader,t.ThreeMFLoader=Zr.ThreeMFLoader,t.XYZLoader=$r.XYZLoader,t.VTKLoader=en.VTKLoader,t.LUT3dlLoader=tn.LUT3dlLoader,t.DDSLoader=rn.DDSLoader,t.PVRLoader=nn.PVRLoader,t.GCodeLoader=sn.GCodeLoader,t.BasisTextureLoader=an.BasisTextureLoader,t.TDSLoader=on.TDSLoader,t.LDrawLoader=ln.LDrawLoader,t.GLTFLoader=cn.GLTFLoader,t.SVGLoader=hn.SVGLoader,t.Rhino3dmLoader=un.Rhino3dmLoader,t.OBJLoader=dn.OBJLoader,t.AMFLoader=pn.AMFLoader,t.MMDLoader=fn.MMDLoader,t.MD2Loader=mn.MD2Loader,t.KTXLoader=gn.KTXLoader,t.TiltLoader=An.TiltLoader,t.DRACOLoader=vn.DRACOLoader,t.HDRCubeTextureLoader=yn.HDRCubeTextureLoader,t.PDBLoader=xn.PDBLoader,t.PRWMLoader=bn.PRWMLoader,t.RGBMLoader=En.RGBMLoader,t.VOXData3DTexture=_n.VOXData3DTexture,t.VOXLoader=_n.VOXLoader,t.VOXMesh=_n.VOXMesh,t.PCDLoader=Sn.PCDLoader,t.LWOLoader=Mn.LWOLoader,t.PLYLoader=wn.PLYLoader,t.LineSegmentsGeometry=Cn.LineSegmentsGeometry,t.LineGeometry=Tn.LineGeometry,t.Wireframe=In.Wireframe,t.WireframeGeometry2=Bn.WireframeGeometry2,t.Line2=Rn.Line2,t.LineMaterial=Pn.LineMaterial,t.LineSegments2=Dn.LineSegments2,t.LightProbeHelper=Ln.LightProbeHelper,t.VertexTangentsHelper=Fn.VertexTangentsHelper,t.PositionalAudioHelper=Un.PositionalAudioHelper,t.VertexNormalsHelper=On.VertexNormalsHelper,t.RectAreaLightHelper=Nn.RectAreaLightHelper,t.RectAreaLightUniformsLib=kn.RectAreaLightUniformsLib,t.LightProbeGenerator=Gn.LightProbeGenerator,t.calcBSplineDerivatives=zn.calcBSplineDerivatives,t.calcBSplinePoint=zn.calcBSplinePoint,t.calcBasisFunctionDerivatives=zn.calcBasisFunctionDerivatives,t.calcBasisFunctions=zn.calcBasisFunctions,t.calcKoverI=zn.calcKoverI,t.calcNURBSDerivatives=zn.calcNURBSDerivatives,t.calcRationalCurveDerivatives=zn.calcRationalCurveDerivatives,t.calcSurfacePoint=zn.calcSurfacePoint,t.findSpan=zn.findSpan,t.NURBSCurve=Qn.NURBSCurve,t.NURBSSurface=Vn.NURBSSurface,t.CinquefoilKnot=Hn.CinquefoilKnot,t.DecoratedTorusKnot4a=Hn.DecoratedTorusKnot4a,t.DecoratedTorusKnot4b=Hn.DecoratedTorusKnot4b,t.DecoratedTorusKnot5a=Hn.DecoratedTorusKnot5a,t.DecoratedTorusKnot5c=Hn.DecoratedTorusKnot5c,t.FigureEightPolynomialKnot=Hn.FigureEightPolynomialKnot,t.GrannyKnot=Hn.GrannyKnot,t.HeartCurve=Hn.HeartCurve,t.HelixCurve=Hn.HelixCurve,t.KnotCurve=Hn.KnotCurve,t.TorusKnot=Hn.TorusKnot,t.TrefoilKnot=Hn.TrefoilKnot,t.TrefoilPolynomialKnot=Hn.TrefoilPolynomialKnot,t.VivianiCurve=Hn.VivianiCurve,t.Face3=jn.Face3,t.Geometry=jn.Geometry,t.MeshoptDecoder=Wn.MeshoptDecoder,t.MotionController=Xn.MotionController,t.MotionControllerConstants=Xn.MotionControllerConstants,t.fetchProfile=Xn.fetchProfile,t.fetchProfilesList=Xn.fetchProfilesList},96851:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Mesh{constructor(e){const t=new s(e),r=new n.PlaneGeometry(.001*t.image.width,.001*t.image.height),i=new n.MeshBasicMaterial({map:t,toneMapped:!1,transparent:!0});function o(e){i.map.dispatchDOMEvent(e)}super(r,i),this.addEventListener("mousedown",o),this.addEventListener("mousemove",o),this.addEventListener("mouseup",o),this.addEventListener("click",o),this.dispose=function(){r.dispose(),i.dispose(),i.map.dispose(),a.delete(e),this.removeEventListener("mousedown",o),this.removeEventListener("mousemove",o),this.removeEventListener("mouseup",o),this.removeEventListener("click",o)}}}class s extends n.CanvasTexture{constructor(e){super(o(e)),this.dom=e,this.anisotropy=16,"colorSpace"in this?this.colorSpace="srgb":this.encoding=3001,this.minFilter=n.LinearFilter,this.magFilter=n.LinearFilter;const t=new MutationObserver((()=>{this.scheduleUpdate||(this.scheduleUpdate=setTimeout((()=>this.update()),16))}));t.observe(e,{attributes:!0,childList:!0,subtree:!0,characterData:!0}),this.observer=t}dispatchDOMEvent(e){e.data&&function(e,t,r,n){const i={clientX:r*e.offsetWidth+e.offsetLeft,clientY:n*e.offsetHeight+e.offsetTop,view:e.ownerDocument.defaultView};window.dispatchEvent(new MouseEvent(t,i));const s=e.getBoundingClientRect();function a(e){if(e.nodeType!==Node.TEXT_NODE&&e.nodeType!==Node.COMMENT_NODE){const s=e.getBoundingClientRect();if(r>s.left&&rs.top&&nparseFloat(e[t]))),i=s.width,a=(r-s.x)/i;e.value=t+(n-t)*a,e.dispatchEvent(new InputEvent("input",{bubbles:!0}))}for(let t=0;tparseFloat(n[e]))),o=(a-r)/(i-r)*(p-f);s(c,d+f/4,p,f/2,f/4),h.fillStyle=t,h.strokeStyle=e,h.lineWidth=1,h.fill(),h.stroke(),s(c,d+f/4,o+f/2,f/2,f/4),h.fillStyle=e,h.fill(),s(c+o,d,f,f,f/2),h.fillStyle=e,h.fill()}"color"!==n.type&&"text"!==n.type&&"number"!==n.type||(u.add({x:c,y:d,width:p,height:f}),i(a,c+parseInt(a.paddingLeft),d+parseInt(a.paddingTop),n.value),u.remove())}}}const m="auto"===a.overflow||"hidden"===a.overflow;m&&u.add({x:c,y:d,width:p,height:f});for(let t=0;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Vector2,s={type:"",data:i};class a extends n.Group{constructor(e,t){super();const r=this,a=new n.Raycaster,o=new n.Matrix4,l=e.domElement;function c(e){e.stopPropagation(),i.x=e.clientX/l.clientWidth*2-1,i.y=-e.clientY/l.clientHeight*2+1,a.setFromCamera(i,t);const n=a.intersectObjects(r.children,!1);if(n.length>0){const t=n[0],r=t.object,i=t.uv;s.type=e.type,s.data.set(i.x,1-i.y),r.dispatchEvent(s)}}l.addEventListener("pointerdown",c),l.addEventListener("pointerup",c),l.addEventListener("pointermove",c),l.addEventListener("mousedown",c),l.addEventListener("mouseup",c),l.addEventListener("mousemove",c),l.addEventListener("click",c);const h={move:"mousemove",select:"click",selectstart:"mousedown",selectend:"mouseup"};function u(e){const t=e.target;o.identity().extractRotation(t.matrixWorld),a.ray.origin.setFromMatrixPosition(t.matrixWorld),a.ray.direction.set(0,0,-1).applyMatrix4(o);const n=a.intersectObjects(r.children,!1);if(n.length>0){const t=n[0],r=t.object,i=t.uv;s.type=h[e.type],s.data.set(i.x,1-i.y),r.dispatchEvent(s)}}const d=e.xr.getController(0);d.addEventListener("move",u),d.addEventListener("select",u),d.addEventListener("selectstart",u),d.addEventListener("selectend",u);const p=e.xr.getController(1);p.addEventListener("move",u),p.addEventListener("select",u),p.addEventListener("selectstart",u),p.addEventListener("selectend",u)}}t.InteractiveGroup=a},72134:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Frustum,s=new n.Vector3,a=new n.Vector3,o=new n.Vector3,l=new n.Vector3,c=new n.Vector3,h=new n.Vector3,u=new n.Vector3,d=new n.Vector3,p=new n.Vector3,f=new n.Vector3,m=new n.Vector3,g=new n.Vector3,A=new n.Vector3,v=new n.Vector3;t.SelectionBox=class{constructor(e,t,r){this.camera=e,this.scene=t,this.startPoint=new n.Vector3,this.endPoint=new n.Vector3,this.collection=[],this.deep=r||Number.MAX_VALUE}select(e,t){return this.startPoint=e||this.startPoint,this.endPoint=t||this.endPoint,this.collection=[],this.updateFrustum(this.startPoint,this.endPoint),this.searchChildInFrustum(i,this.scene),this.collection}updateFrustum(e,t){if(e=e||this.startPoint,t=t||this.endPoint,e.x===t.x&&(t.x+=Number.EPSILON),e.y===t.y&&(t.y+=Number.EPSILON),this.camera.updateProjectionMatrix(),this.camera.updateMatrixWorld(),this.camera.isPerspectiveCamera)a.copy(e),a.x=Math.min(e.x,t.x),a.y=Math.max(e.y,t.y),t.x=Math.max(e.x,t.x),t.y=Math.min(e.y,t.y),o.setFromMatrixPosition(this.camera.matrixWorld),l.copy(a),c.set(t.x,a.y,0),h.copy(t),u.set(a.x,t.y,0),l.unproject(this.camera),c.unproject(this.camera),h.unproject(this.camera),u.unproject(this.camera),g.copy(l).sub(o),A.copy(c).sub(o),v.copy(h).sub(o),g.normalize(),A.normalize(),v.normalize(),g.multiplyScalar(this.deep),A.multiplyScalar(this.deep),v.multiplyScalar(this.deep),g.add(o),A.add(o),v.add(o),(r=i.planes)[0].setFromCoplanarPoints(o,l,c),r[1].setFromCoplanarPoints(o,c,h),r[2].setFromCoplanarPoints(h,u,o),r[3].setFromCoplanarPoints(u,l,o),r[4].setFromCoplanarPoints(c,h,u),r[5].setFromCoplanarPoints(v,A,g),r[5].normal.multiplyScalar(-1);else if(this.camera.isOrthographicCamera){const n=Math.min(e.x,t.x),s=Math.max(e.y,t.y),a=Math.max(e.x,t.x),o=Math.min(e.y,t.y);var r;l.set(n,s,-1),c.set(a,s,-1),h.set(a,o,-1),u.set(n,o,-1),d.set(n,s,1),p.set(a,s,1),f.set(a,o,1),m.set(n,o,1),l.unproject(this.camera),c.unproject(this.camera),h.unproject(this.camera),u.unproject(this.camera),d.unproject(this.camera),p.unproject(this.camera),f.unproject(this.camera),m.unproject(this.camera),(r=i.planes)[0].setFromCoplanarPoints(l,d,p),r[1].setFromCoplanarPoints(c,p,f),r[2].setFromCoplanarPoints(f,m,u),r[3].setFromCoplanarPoints(m,d,l),r[4].setFromCoplanarPoints(c,h,u),r[5].setFromCoplanarPoints(f,p,d),r[5].normal.multiplyScalar(-1)}else console.error("THREE.SelectionBox: Unsupported camera type.")}searchChildInFrustum(e,t){if((t.isMesh||t.isLine||t.isPoints)&&void 0!==t.material&&(null===t.geometry.boundingSphere&&t.geometry.computeBoundingSphere(),s.copy(t.geometry.boundingSphere.center),s.applyMatrix4(t.matrixWorld),e.containsPoint(s)&&this.collection.push(t)),t.children.length>0)for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.SelectionHelper=class{constructor(e,t,r){this.element=document.createElement("div"),this.element.classList.add(r),this.element.style.pointerEvents="none",this.renderer=t,this.startPoint=new n.Vector2,this.pointTopLeft=new n.Vector2,this.pointBottomRight=new n.Vector2,this.isDown=!1,this.renderer.domElement.addEventListener("pointerdown",(e=>{this.isDown=!0,this.onSelectStart(e)})),this.renderer.domElement.addEventListener("pointermove",(e=>{this.isDown&&this.onSelectMove(e)})),this.renderer.domElement.addEventListener("pointerup",(e=>{this.isDown=!1,this.onSelectOver(e)}))}onSelectStart(e){this.renderer.domElement.parentElement.appendChild(this.element),this.element.style.left=`${e.clientX}px`,this.element.style.top=`${e.clientY}px`,this.element.style.width="0px",this.element.style.height="0px",this.startPoint.x=e.clientX,this.startPoint.y=e.clientY}onSelectMove(e){this.pointBottomRight.x=Math.max(this.startPoint.x,e.clientX),this.pointBottomRight.y=Math.max(this.startPoint.y,e.clientY),this.pointTopLeft.x=Math.min(this.startPoint.x,e.clientX),this.pointTopLeft.y=Math.min(this.startPoint.y,e.clientY),this.element.style.left=`${this.pointTopLeft.x}px`,this.element.style.top=`${this.pointTopLeft.y}px`,this.element.style.width=this.pointBottomRight.x-this.pointTopLeft.x+"px",this.element.style.height=this.pointBottomRight.y-this.pointTopLeft.y+"px"}onSelectOver(){this.element.parentElement.removeChild(this.element)}}},15527:(e,t)=>{"use strict";let r;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.MeshoptDecoder=()=>{if(r)return r;const e=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),t=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]);if("object"!=typeof WebAssembly)return{supported:!1};let n,i="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";WebAssembly.validate(e)&&(i="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");const s=WebAssembly.instantiate(function(e){const r=new Uint8Array(e.length);for(let t=0;t96?n-71:n>64?n-65:n>47?n+4:n>46?63:62}let n=0;for(let i=0;i{n=e.instance,n.exports.__wasm_call_ctors()}));function a(e,t,r,i,s,a){const o=n.exports.sbrk,l=r+3&-4,c=o(l*i),h=o(s.length),u=new Uint8Array(n.exports.memory.buffer);u.set(s,h);const d=e(c,r,i,h,s.length);if(0===d&&a&&a(c,l,i),t.set(u.subarray(c,c+r*i)),o(c-o(0)),0!==d)throw new Error(`Malformed buffer data: ${d}`)}const o={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},l={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};return r={ready:s,supported:!0,decodeVertexBuffer(e,t,r,i,s){a(n.exports.meshopt_decodeVertexBuffer,e,t,r,i,n.exports[o[s]])},decodeIndexBuffer(e,t,r,i){a(n.exports.meshopt_decodeIndexBuffer,e,t,r,i)},decodeIndexSequence(e,t,r,i){a(n.exports.meshopt_decodeIndexSequence,e,t,r,i)},decodeGltfBuffer(e,t,r,i,s,c){a(n.exports[l[s]],e,t,r,i,n.exports[o[c]])}},r}},48490:(e,t)=>{"use strict";var r=Object.defineProperty,n=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i={Handedness:{NONE:"none",LEFT:"left",RIGHT:"right"},ComponentState:{DEFAULT:"default",TOUCHED:"touched",PRESSED:"pressed"},ComponentProperty:{BUTTON:"button",X_AXIS:"xAxis",Y_AXIS:"yAxis",STATE:"state"},ComponentType:{TRIGGER:"trigger",SQUEEZE:"squeeze",TOUCHPAD:"touchpad",THUMBSTICK:"thumbstick",BUTTON:"button"},ButtonTouchThreshold:.05,AxisTouchThreshold:.1,VisualResponseProperty:{TRANSFORM:"transform",VISIBILITY:"visibility"}};async function s(e){const t=await fetch(e);if(t.ok)return t.json();throw new Error(t.statusText)}async function a(e){if(!e)throw new Error("No basePath supplied");return await s(`${e}/profilesList.json`)}const o={xAxis:0,yAxis:0,button:0,state:i.ComponentState.DEFAULT};class l{constructor(e){n(this,"value"),n(this,"componentProperty"),n(this,"states"),n(this,"valueNodeName"),n(this,"valueNodeProperty"),n(this,"minNodeName"),n(this,"maxNodeName"),n(this,"valueNode"),n(this,"minNode"),n(this,"maxNode"),this.componentProperty=e.componentProperty,this.states=e.states,this.valueNodeName=e.valueNodeName,this.valueNodeProperty=e.valueNodeProperty,this.valueNodeProperty===i.VisualResponseProperty.TRANSFORM&&(this.minNodeName=e.minNodeName,this.maxNodeName=e.maxNodeName),this.value=0,this.updateFromComponent(o)}updateFromComponent({xAxis:e,yAxis:t,button:r,state:n}){const{normalizedXAxis:s,normalizedYAxis:a}=function(e=0,t=0){let r=e,n=t;if(Math.sqrt(e*e+t*t)>1){const i=Math.atan2(t,e);r=Math.cos(i),n=Math.sin(i)}return{normalizedXAxis:.5*r+.5,normalizedYAxis:.5*n+.5}}(e,t);switch(this.componentProperty){case i.ComponentProperty.X_AXIS:this.value=this.states.includes(n)?s:.5;break;case i.ComponentProperty.Y_AXIS:this.value=this.states.includes(n)?a:.5;break;case i.ComponentProperty.BUTTON:this.value=this.states.includes(n)&&r?r:0;break;case i.ComponentProperty.STATE:this.valueNodeProperty===i.VisualResponseProperty.VISIBILITY?this.value=this.states.includes(n):this.value=this.states.includes(n)?1:0;break;default:throw new Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`)}}}class c{constructor(e,t){if(n(this,"id"),n(this,"values"),n(this,"type"),n(this,"gamepadIndices"),n(this,"rootNodeName"),n(this,"visualResponses"),n(this,"touchPointNodeName"),n(this,"touchPointNode"),!(e&&t&&t.visualResponses&&t.gamepadIndices&&0!==Object.keys(t.gamepadIndices).length))throw new Error("Invalid arguments supplied");this.id=e,this.type=t.type,this.rootNodeName=t.rootNodeName,this.touchPointNodeName=t.touchPointNodeName,this.visualResponses={},Object.keys(t.visualResponses).forEach((e=>{const r=new l(t.visualResponses[e]);this.visualResponses[e]=r})),this.gamepadIndices=Object.assign({},t.gamepadIndices),this.values={state:i.ComponentState.DEFAULT,button:void 0!==this.gamepadIndices.button?0:void 0,xAxis:void 0!==this.gamepadIndices.xAxis?0:void 0,yAxis:void 0!==this.gamepadIndices.yAxis?0:void 0}}get data(){return{id:this.id,...this.values}}updateFromGamepad(e){if(this.values.state=i.ComponentState.DEFAULT,void 0!==this.gamepadIndices.button&&e.buttons.length>this.gamepadIndices.button){const t=e.buttons[this.gamepadIndices.button];this.values.button=t.value,this.values.button=this.values.button<0?0:this.values.button,this.values.button=this.values.button>1?1:this.values.button,t.pressed||1===this.values.button?this.values.state=i.ComponentState.PRESSED:(t.touched||this.values.button>i.ButtonTouchThreshold)&&(this.values.state=i.ComponentState.TOUCHED)}void 0!==this.gamepadIndices.xAxis&&e.axes.length>this.gamepadIndices.xAxis&&(this.values.xAxis=e.axes[this.gamepadIndices.xAxis],this.values.xAxis=this.values.xAxis<-1?-1:this.values.xAxis,this.values.xAxis=this.values.xAxis>1?1:this.values.xAxis,this.values.state===i.ComponentState.DEFAULT&&Math.abs(this.values.xAxis)>i.AxisTouchThreshold&&(this.values.state=i.ComponentState.TOUCHED)),void 0!==this.gamepadIndices.yAxis&&e.axes.length>this.gamepadIndices.yAxis&&(this.values.yAxis=e.axes[this.gamepadIndices.yAxis],this.values.yAxis=this.values.yAxis<-1?-1:this.values.yAxis,this.values.yAxis=this.values.yAxis>1?1:this.values.yAxis,this.values.state===i.ComponentState.DEFAULT&&Math.abs(this.values.yAxis)>i.AxisTouchThreshold&&(this.values.state=i.ComponentState.TOUCHED)),Object.values(this.visualResponses).forEach((e=>{e.updateFromComponent(this.values)}))}}t.MotionController=class{constructor(e,t,r){if(n(this,"xrInputSource"),n(this,"assetUrl"),n(this,"layoutDescription"),n(this,"id"),n(this,"components"),!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No profile supplied");if(!t.layouts[e.handedness])throw new Error("No layout for "+e.handedness+" handedness");this.xrInputSource=e,this.assetUrl=r,this.id=t.profileId,this.layoutDescription=t.layouts[e.handedness],this.components={},Object.keys(this.layoutDescription.components).forEach((e=>{const t=this.layoutDescription.components[e];this.components[e]=new c(e,t)})),this.updateFromGamepad()}get gripSpace(){return this.xrInputSource.gripSpace}get targetRaySpace(){return this.xrInputSource.targetRaySpace}get data(){const e=[];return Object.values(this.components).forEach((t=>{e.push(t.data)})),e}updateFromGamepad(){Object.values(this.components).forEach((e=>{e.updateFromGamepad(this.xrInputSource.gamepad)}))}},t.MotionControllerConstants=i,t.fetchProfile=async function(e,t,r=null,n=!0){if(!e)throw new Error("No xrInputSource supplied");if(!t)throw new Error("No basePath supplied");const i=await a(t);let o;if(e.profiles.some((e=>{const r=i[e];return r&&(o={profileId:e,profilePath:`${t}/${r.path}`,deprecated:!!r.deprecated}),!!o})),!o){if(!r)throw new Error("No matching profile name found");const e=i[r];if(!e)throw new Error(`No matching profile name found and default profile "${r}" missing.`);o={profileId:r,profilePath:`${t}/${e.path}`,deprecated:!!e.deprecated}}const l=await s(o.profilePath);let c;if(n){let t;if(t="any"===e.handedness?l.layouts[Object.keys(l.layouts)[0]]:l.layouts[e.handedness],!t)throw new Error(`No matching handedness, ${e.handedness}, in profile ${o.profileId}`);t.assetPath&&(c=o.profilePath.replace("profile.json",t.assetPath))}return{profile:l,assetPath:c}},t.fetchProfilesList=a},94479:(e,t,r)=>{"use strict";e=r.nmd(e),Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const{CstParser:n,Lexer:i,createToken:s}=(()=>{const n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;var i="object"==typeof self&&self&&self.Object===Object&&self;const s=n||i||Function("return this")();const a=s.Symbol;var o=Object.prototype,l=o.hasOwnProperty,c=o.toString,h=a?a.toStringTag:void 0;var u=Object.prototype.toString;var d="[object Null]",p="[object Undefined]",f=a?a.toStringTag:void 0;function m(e){return null==e?void 0===e?p:d:f&&f in Object(e)?function(e){var t=l.call(e,h),r=e[h];try{e[h]=void 0;var n=!0}catch(s){}var i=c.call(e);return n&&(t?e[h]=r:delete e[h]),i}(e):function(e){return u.call(e)}(e)}function g(e){return null!=e&&"object"==typeof e}var A="[object Symbol]";function v(e){return"symbol"==typeof e||g(e)&&m(e)==A}function y(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r0){if(++de>=800)return arguments[0]}else de=0;return ue.apply(void 0,arguments)});function me(e,t){for(var r=-1,n=null==e?0:e.length;++r-1}var xe=9007199254740991,be=/^(?:0|[1-9]\d*)$/;function Ee(e,t){var r=typeof e;return!!(t=null==t?xe:t)&&("number"==r||"symbol"!=r&&be.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=Be}function Pe(e){return null!=e&&Re(e.length)&&!V(e)}function De(e,t,r){if(!T(r))return!1;var n=typeof t;return!!("number"==n?Pe(r)&&Ee(t,r.length):"string"==n&&t in r)&&Se(r[t],e)}var Le=Object.prototype;function Fe(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Le)}function Ue(e){return g(e)&&"[object Arguments]"==m(e)}var Oe=Object.prototype,Ne=Oe.hasOwnProperty,ke=Oe.propertyIsEnumerable;const Ge=Ue(function(){return arguments}())?Ue:function(e){return g(e)&&Ne.call(e,"callee")&&!ke.call(e,"callee")};var ze=t&&!t.nodeType&&t,Qe=ze&&e&&!e.nodeType&&e,Ve=Qe&&Qe.exports===ze?s.Buffer:void 0;const He=(Ve?Ve.isBuffer:void 0)||function(){return!1};var je={};function We(e){return function(t){return e(t)}}je["[object Float32Array]"]=je["[object Float64Array]"]=je["[object Int8Array]"]=je["[object Int16Array]"]=je["[object Int32Array]"]=je["[object Uint8Array]"]=je["[object Uint8ClampedArray]"]=je["[object Uint16Array]"]=je["[object Uint32Array]"]=!0,je["[object Arguments]"]=je["[object Array]"]=je["[object ArrayBuffer]"]=je["[object Boolean]"]=je["[object DataView]"]=je["[object Date]"]=je["[object Error]"]=je["[object Function]"]=je["[object Map]"]=je["[object Number]"]=je["[object Object]"]=je["[object RegExp]"]=je["[object Set]"]=je["[object String]"]=je["[object WeakMap]"]=!1;var Xe=t&&!t.nodeType&&t,Ye=Xe&&e&&!e.nodeType&&e,qe=Ye&&Ye.exports===Xe&&n.process;const Ke=function(){try{var e=Ye&&Ye.require&&Ye.require("util").types;return e||qe&&qe.binding&&qe.binding("util")}catch(t){}}();var Je=Ke&&Ke.isTypedArray;const Ze=Je?We(Je):function(e){return g(e)&&Re(e.length)&&!!je[m(e)]};var $e=Object.prototype.hasOwnProperty;function et(e,t){var r=x(e),n=!r&&Ge(e),i=!r&&!n&&He(e),s=!r&&!n&&!i&&Ze(e),a=r||n||i||s,o=a?function(e,t){for(var r=-1,n=Array(e);++r1?t[n-1]:void 0,s=n>2?t[2]:void 0;for(i=at.length>3&&"function"==typeof i?(n--,i):void 0,s&&De(t[0],t[1],s)&&(i=n<3?void 0:i,n=1),e=Object(e);++r-1},bt.prototype.set=function(e,t){var r=this.__data__,n=yt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this};const Et=re(s,"Map");function _t(e,t){var r,n,i=e.__data__;return("string"==(n=typeof(r=t))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?i["string"==typeof t?"string":"hash"]:i.map}function St(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t0&&r(o)?t>1?Nt(o,t-1,r,n,i):Ft(i,o):n||(i[i.length]=o)}return i}function kt(e){return(null==e?0:e.length)?Nt(e,1):[]}const Gt=tt(Object.getPrototypeOf,Object);function zt(e,t,r){var n=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var s=Array(i);++no))return!1;var c=s.get(e),h=s.get(t);if(c&&h)return c==t&&h==e;var u=-1,d=!0,p=r&un?new on:void 0;for(s.set(e,t),s.set(t,e);++u2?t[2]:void 0;for(i&&De(t[0],t[1],i)&&(n=1);++r=200&&(s=cn,a=!1,t=new on(t));e:for(;++i-1?n[i?e[s]:s]:void 0});function bi(e){return e&&e.length?e[0]:void 0}function Ei(e,t){var r=-1,n=Pe(e)?Array(e.length):[];return ti(e,(function(e,i,s){n[++r]=t(e,i,s)})),n}function _i(e,t){return(x(e)?y:Ei)(e,Jn(t))}function Si(e,t){return Nt(_i(e,t),1)}var Mi,wi,Ci=Object.prototype.hasOwnProperty,Ti=(Mi=function(e,t,r){Ci.call(e,r)?e[r].push(t):_e(e,r,[t])},function(e,t){var r=x(e)?Zn:ri,n=wi?wi():{};return r(e,Mi,Jn(t),n)});const Ii=Ti;var Bi=Object.prototype.hasOwnProperty;function Ri(e,t){return null!=e&&Bi.call(e,t)}function Pi(e,t){return null!=e&&jn(e,t,Ri)}var Di="[object String]";function Li(e){return"string"==typeof e||!x(e)&&g(e)&&m(e)==Di}function Fi(e){return null==e?[]:function(e,t){return y(t,(function(t){return e[t]}))}(e,st(e))}var Ui=Math.max;function Oi(e,t,r,n){e=Pe(e)?e:Fi(e),r=r&&!n?O(r):0;var i=e.length;return r<0&&(r=Ui(i+r,0)),Li(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&ve(e,t,r)>-1}var Ni=Math.max;function ki(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var i=null==r?0:O(r);return i<0&&(i=Ni(n+i,0)),ve(e,t,i)}var Gi="[object Map]",zi="[object Set]",Qi=Object.prototype.hasOwnProperty;function Vi(e){if(null==e)return!0;if(Pe(e)&&(x(e)||"string"==typeof e||"function"==typeof e.splice||He(e)||Ze(e)||Ge(e)))return!e.length;var t=Ar(e);if(t==Gi||t==zi)return!e.size;if(Fe(e))return!it(e).length;for(var r in e)if(Qi.call(e,r))return!1;return!0}var Hi=Ke&&Ke.isRegExp;const ji=Hi?We(Hi):function(e){return g(e)&&"[object RegExp]"==m(e)};function Wi(e){return void 0===e}var Xi="Expected a function";function Yi(e,t,r,n){if(!T(e))return e;for(var i=-1,s=(t=Rt(t,e)).length,a=s-1,o=e;null!=o&&++i=rs){var c=t?null:ts(e);if(c)return fn(c);a=!1,i=cn,l=new on}else l=t?[]:o;e:for(;++n{t.accept(e)}))}}class hs extends cs{constructor(e){super([]),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}set definition(e){}get definition(){return void 0!==this.referencedRule?this.referencedRule.definition:[]}accept(e){e.visit(this)}}class us extends cs{constructor(e){super(e.definition),this.orgText="",lt(this,qi(e,(e=>void 0!==e)))}}class ds extends cs{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,lt(this,qi(e,(e=>void 0!==e)))}}class ps extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class fs extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class ms extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class gs extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class As extends cs{constructor(e){super(e.definition),this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}}class vs extends cs{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,lt(this,qi(e,(e=>void 0!==e)))}}class ys{constructor(e){this.idx=1,lt(this,qi(e,(e=>void 0!==e)))}accept(e){e.visit(this)}}function xs(e){function t(e){return _i(e,xs)}if(e instanceof hs){const t={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return Li(e.label)&&(t.label=e.label),t}if(e instanceof ds)return{type:"Alternative",definition:t(e.definition)};if(e instanceof ps)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof fs)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof ms)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:xs(new ys({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof As)return{type:"RepetitionWithSeparator",idx:e.idx,separator:xs(new ys({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof gs)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};if(e instanceof vs)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};if(e instanceof ys){const t={type:"Terminal",name:e.terminalType.name,label:ls(e.terminalType),idx:e.idx};Li(e.label)&&(t.terminalLabel=e.label);const r=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=ji(r)?r.source:r),t}if(e instanceof us)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error("non exhaustive match")}class bs{visit(e){const t=e;switch(t.constructor){case hs:return this.visitNonTerminal(t);case ds:return this.visitAlternative(t);case ps:return this.visitOption(t);case fs:return this.visitRepetitionMandatory(t);case ms:return this.visitRepetitionMandatoryWithSeparator(t);case As:return this.visitRepetitionWithSeparator(t);case gs:return this.visitRepetition(t);case vs:return this.visitAlternation(t);case ys:return this.visitTerminal(t);case us:return this.visitRule(t);default:throw Error("non exhaustive match")}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}}function Es(e,t=[]){return!!(e instanceof ps||e instanceof gs||e instanceof As)||(e instanceof vs?es(e.definition,(e=>Es(e,t))):!(e instanceof hs&&Oi(t,e))&&(e instanceof cs&&(e instanceof hs&&t.push(e),mi(e.definition,(e=>Es(e,t))))))}function _s(e){if(e instanceof hs)return"SUBRULE";if(e instanceof ps)return"OPTION";if(e instanceof vs)return"OR";if(e instanceof fs)return"AT_LEAST_ONE";if(e instanceof ms)return"AT_LEAST_ONE_SEP";if(e instanceof As)return"MANY_SEP";if(e instanceof gs)return"MANY";if(e instanceof ys)return"CONSUME";throw Error("non exhaustive match")}class Ss{walk(e,t=[]){di(e.definition,((r,n)=>{const i=hi(e.definition,n+1);if(r instanceof hs)this.walkProdRef(r,i,t);else if(r instanceof ys)this.walkTerminal(r,i,t);else if(r instanceof ds)this.walkFlat(r,i,t);else if(r instanceof ps)this.walkOption(r,i,t);else if(r instanceof fs)this.walkAtLeastOne(r,i,t);else if(r instanceof ms)this.walkAtLeastOneSep(r,i,t);else if(r instanceof As)this.walkManySep(r,i,t);else if(r instanceof gs)this.walkMany(r,i,t);else{if(!(r instanceof vs))throw Error("non exhaustive match");this.walkOr(r,i,t)}}))}walkTerminal(e,t,r){}walkProdRef(e,t,r){}walkFlat(e,t,r){const n=t.concat(r);this.walk(e,n)}walkOption(e,t,r){const n=t.concat(r);this.walk(e,n)}walkAtLeastOne(e,t,r){const n=[new ps({definition:e.definition})].concat(t,r);this.walk(e,n)}walkAtLeastOneSep(e,t,r){const n=Ms(e,t,r);this.walk(e,n)}walkMany(e,t,r){const n=[new ps({definition:e.definition})].concat(t,r);this.walk(e,n)}walkManySep(e,t,r){const n=Ms(e,t,r);this.walk(e,n)}walkOr(e,t,r){const n=t.concat(r);di(e.definition,(e=>{const t=new ds({definition:[e]});this.walk(t,n)}))}}function Ms(e,t,r){return[new ps({definition:[new ys({terminalType:e.separator})].concat(e.definition)})].concat(t,r)}function ws(e){if(e instanceof hs)return ws(e.referencedRule);if(e instanceof ys)return[e.terminalType];if(function(e){return e instanceof ds||e instanceof ps||e instanceof gs||e instanceof fs||e instanceof ms||e instanceof As||e instanceof ys||e instanceof us}(e))return function(e){let t=[];const r=e.definition;let n,i=0,s=r.length>i,a=!0;for(;s&&a;)n=r[i],a=Es(n),t=t.concat(ws(n)),i+=1,s=r.length>i;return ns(t)}(e);if(function(e){return e instanceof vs}(e))return function(e){const t=_i(e.definition,(e=>ws(e)));return ns(kt(t))}(e);throw Error("non exhaustive match")}const Cs="_~IN~_";class Ts extends Ss{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,r){}walkProdRef(e,t,r){const n=(i=e.referencedRule,s=e.idx,i.name+s+Cs+this.topProd.name);var i,s;const a=t.concat(r),o=ws(new ds({definition:a}));this.follows[n]=o}}function Is(e){return e.charCodeAt(0)}function Bs(e,t){Array.isArray(e)?e.forEach((function(e){t.push(e)})):t.push(e)}function Rs(e,t){if(!0===e[t])throw"duplicate flag "+t;e[t],e[t]=!0}function Ps(e){if(void 0===e)throw Error("Internal Error - Should never get here!");return!0}function Ds(e){return"Character"===e.type}const Ls=[];for(let e=Is("0");e<=Is("9");e++)Ls.push(e);const Fs=[Is("_")].concat(Ls);for(let e=Is("a");e<=Is("z");e++)Fs.push(e);for(let e=Is("A");e<=Is("Z");e++)Fs.push(e);const Us=[Is(" "),Is("\f"),Is("\n"),Is("\r"),Is("\t"),Is("\v"),Is("\t"),Is("\xa0"),Is("\u1680"),Is("\u2000"),Is("\u2001"),Is("\u2002"),Is("\u2003"),Is("\u2004"),Is("\u2005"),Is("\u2006"),Is("\u2007"),Is("\u2008"),Is("\u2009"),Is("\u200a"),Is("\u2028"),Is("\u2029"),Is("\u202f"),Is("\u205f"),Is("\u3000"),Is("\ufeff")],Os=/[0-9a-fA-F]/,Ns=/[0-9]/,ks=/[1-9]/;class Gs{visitChildren(e){for(const t in e){const r=e[t];e.hasOwnProperty(t)&&(void 0!==r.type?this.visit(r):Array.isArray(r)&&r.forEach((e=>{this.visit(e)}),this))}}visit(e){switch(e.type){case"Pattern":this.visitPattern(e);break;case"Flags":this.visitFlags(e);break;case"Disjunction":this.visitDisjunction(e);break;case"Alternative":this.visitAlternative(e);break;case"StartAnchor":this.visitStartAnchor(e);break;case"EndAnchor":this.visitEndAnchor(e);break;case"WordBoundary":this.visitWordBoundary(e);break;case"NonWordBoundary":this.visitNonWordBoundary(e);break;case"Lookahead":this.visitLookahead(e);break;case"NegativeLookahead":this.visitNegativeLookahead(e);break;case"Character":this.visitCharacter(e);break;case"Set":this.visitSet(e);break;case"Group":this.visitGroup(e);break;case"GroupBackReference":this.visitGroupBackReference(e);break;case"Quantifier":this.visitQuantifier(e)}this.visitChildren(e)}visitPattern(e){}visitFlags(e){}visitDisjunction(e){}visitAlternative(e){}visitStartAnchor(e){}visitEndAnchor(e){}visitWordBoundary(e){}visitNonWordBoundary(e){}visitLookahead(e){}visitNegativeLookahead(e){}visitCharacter(e){}visitSet(e){}visitGroup(e){}visitGroupBackReference(e){}visitQuantifier(e){}}let zs={};const Qs=new class{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar("/");const t=this.disjunction();this.consumeChar("/");const r={type:"Flags",loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":Rs(r,"global");break;case"i":Rs(r,"ignoreCase");break;case"m":Rs(r,"multiLine");break;case"u":Rs(r,"unicode");break;case"y":Rs(r,"sticky")}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:t,loc:this.loc(0)}}disjunction(){const e=[],t=this.idx;for(e.push(this.alternative());"|"===this.peekChar();)this.consumeChar("|"),e.push(this.alternative());return{type:"Disjunction",value:e,loc:this.loc(t)}}alternative(){const e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:"Alternative",value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){const e=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(e)};case"$":return{type:"EndAnchor",loc:this.loc(e)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(e)};case"B":return{type:"NonWordBoundary",loc:this.loc(e)}}throw Error("Invalid Assertion Escape");case"(":let t;switch(this.consumeChar("?"),this.popChar()){case"=":t="Lookahead";break;case"!":t="NegativeLookahead"}Ps(t);const r=this.disjunction();return this.consumeChar(")"),{type:t,value:r,loc:this.loc(e)}}return function(){throw Error("Internal Error - Should never get here!")}()}quantifier(e=!1){let t;const r=this.idx;switch(this.popChar()){case"*":t={atLeast:0,atMost:1/0};break;case"+":t={atLeast:1,atMost:1/0};break;case"?":t={atLeast:0,atMost:1};break;case"{":const r=this.integerIncludingZero();switch(this.popChar()){case"}":t={atLeast:r,atMost:r};break;case",":let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:r,atMost:e}):t={atLeast:r,atMost:1/0},this.consumeChar("}")}if(!0===e&&void 0===t)return;Ps(t)}if(!0!==e||void 0!==t)return Ps(t)?("?"===this.peekChar(0)?(this.consumeChar("?"),t.greedy=!1):t.greedy=!0,t.type="Quantifier",t.loc=this.loc(r),t):void 0}atom(){let e;const t=this.idx;switch(this.peekChar()){case".":e=this.dotAll();break;case"\\":e=this.atomEscape();break;case"[":e=this.characterClass();break;case"(":e=this.group()}if(void 0===e&&this.isPatternCharacter()&&(e=this.patternCharacter()),Ps(e))return e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[Is("\n"),Is("\r"),Is("\u2028"),Is("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case"d":e=Ls;break;case"D":e=Ls,t=!0;break;case"s":e=Us;break;case"S":e=Us,t=!0;break;case"w":e=Fs;break;case"W":e=Fs,t=!0}if(Ps(e))return{type:"Set",value:e,complement:t}}controlEscapeAtom(){let e;switch(this.popChar()){case"f":e=Is("\f");break;case"n":e=Is("\n");break;case"r":e=Is("\r");break;case"t":e=Is("\t");break;case"v":e=Is("\v")}if(Ps(e))return{type:"Character",value:e}}controlLetterEscapeAtom(){this.consumeChar("c");const e=this.popChar();if(!1===/[a-zA-Z]/.test(e))throw Error("Invalid ");return{type:"Character",value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:Is("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){return{type:"Character",value:Is(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case"\n":case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:return{type:"Character",value:Is(this.popChar())}}}characterClass(){const e=[];let t=!1;for(this.consumeChar("["),"^"===this.peekChar(0)&&(this.consumeChar("^"),t=!0);this.isClassAtom();){const t=this.classAtom();if(t.type,Ds(t)&&this.isRangeDash()){this.consumeChar("-");const r=this.classAtom();if(r.type,Ds(r)){if(r.value=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(e){return{begin:e,end:this.idx}}};function Vs(e){const t=e.toString();if(zs.hasOwnProperty(t))return zs[t];{const e=Qs.pattern(t);return zs[t]=e,e}}const Hs="Complement Sets are not supported for first char optimization",js='Unable to use "first char" lexer optimizations:\n';function Ws(e,t=!1){try{const t=Vs(e);return Xs(t.value,{},t.flags.ignoreCase)}catch(r){if(r.message===Hs)t&&ss(`${js}\tUnable to optimize: < ${e.toString()} >\n\tComplement Sets cannot be automatically optimized.\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";t&&(r="\n\tThis will disable the lexer's first char optimizations.\n\tSee: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details."),is(`${js}\n\tFailed parsing: < ${e.toString()} >\n\tUsing the @chevrotain/regexp-to-ast library\n\tPlease open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function Xs(e,t,r){switch(e.type){case"Disjunction":for(let i=0;i{if("number"==typeof e)Ys(e,t,r);else{const n=e;if(!0===r)for(let e=n.from;e<=n.to;e++)Ys(e,t,r);else{for(let e=n.from;e<=n.to&&e=ga){const e=n.from>=ga?n.from:ga,r=n.to,i=va(e),s=va(r);for(let n=i;n<=s;n++)t[n]=n}}}}));break;case"Group":Xs(s.value,t,r);break;default:throw Error("Non Exhaustive Match")}const a=void 0!==s.quantifier&&0===s.quantifier.atLeast;if("Group"===s.type&&!1===Ks(s)||"Group"!==s.type&&!1===a)break}break;default:throw Error("non exhaustive match!")}return Fi(t)}function Ys(e,t,r){const n=va(e);t[n]=n,!0===r&&function(e,t){const r=String.fromCharCode(e),n=r.toUpperCase();if(n!==r){const e=va(n.charCodeAt(0));t[e]=e}else{const e=r.toLowerCase();if(e!==r){const r=va(e.charCodeAt(0));t[r]=r}}}(e,t)}function qs(e,t){return xi(e.value,(e=>{if("number"==typeof e)return Oi(t,e);{const r=e;return void 0!==xi(t,(e=>r.from<=e&&e<=r.to))}}))}function Ks(e){const t=e.quantifier;return!(!t||0!==t.atLeast)||!!e.value&&(x(e.value)?mi(e.value,Ks):Ks(e.value))}class Js extends Gs{constructor(e){super(),this.targetCharCodes=e,this.found=!1}visitChildren(e){if(!0!==this.found){switch(e.type){case"Lookahead":return void this.visitLookahead(e);case"NegativeLookahead":return void this.visitNegativeLookahead(e)}super.visitChildren(e)}}visitCharacter(e){Oi(this.targetCharCodes,e.value)&&(this.found=!0)}visitSet(e){e.complement?void 0===qs(e,this.targetCharCodes)&&(this.found=!0):void 0!==qs(e,this.targetCharCodes)&&(this.found=!0)}}function Zs(e,t){if(t instanceof RegExp){const r=Vs(t),n=new Js(e);return n.visit(r),n.found}return void 0!==xi(t,(t=>Oi(e,t.charCodeAt(0))))}const $s="PATTERN",ea="defaultMode",ta="modes";let ra="boolean"==typeof new RegExp("(?:)").sticky;function na(e,t){const r=(t=si(t,{useSticky:ra,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r","\n"],tracer:(e,t)=>t()})).tracer;let n;r("initCharCodeToOptimizedIndexMap",(()=>{!function(){if(Vi(Aa)){Aa=new Array(65536);for(let e=0;e<65536;e++)Aa[e]=e>255?255+~~(e/255):e}}()})),r("Reject Lexer.NA",(()=>{n=Zi(e,(e=>e[$s]===Pa.NA))}));let i,s,a,o,l,c,h,u,d,p,f,m=!1;r("Transform Patterns",(()=>{m=!1,i=_i(n,(e=>{const r=e[$s];if(ji(r)){const e=r.source;return 1!==e.length||"^"===e||"$"===e||"."===e||r.ignoreCase?2!==e.length||"\\"!==e[0]||Oi(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],e[1])?t.useSticky?la(r):oa(r):e[1]:e}if(V(r))return m=!0,{exec:r};if("object"==typeof r)return m=!0,r;if("string"==typeof r){if(1===r.length)return r;{const e=r.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),n=new RegExp(e);return t.useSticky?la(n):oa(n)}}throw Error("non exhaustive match")}))})),r("misc mapping",(()=>{s=_i(n,(e=>e.tokenTypeIdx)),a=_i(n,(e=>{const t=e.GROUP;if(t!==Pa.SKIPPED){if(Li(t))return t;if(Wi(t))return!1;throw Error("non exhaustive match")}})),o=_i(n,(e=>{const t=e.LONGER_ALT;if(t){return x(t)?_i(t,(e=>ki(n,e))):[ki(n,t)]}})),l=_i(n,(e=>e.PUSH_MODE)),c=_i(n,(e=>Pi(e,"POP_MODE")))})),r("Line Terminator Handling",(()=>{const e=fa(t.lineTerminatorCharacters);h=_i(n,(e=>!1)),"onlyOffset"!==t.positionTracking&&(h=_i(n,(t=>Pi(t,"LINE_BREAKS")?!!t.LINE_BREAKS:!1===pa(t,e)&&Zs(e,t.PATTERN))))})),r("Misc Mapping #2",(()=>{u=_i(n,ha),d=_i(i,ua),p=Ji(n,((e,t)=>{const r=t.GROUP;return Li(r)&&r!==Pa.SKIPPED&&(e[r]=[]),e}),{}),f=_i(i,((e,t)=>({pattern:i[t],longerAlt:o[t],canLineTerminator:h[t],isCustom:u[t],short:d[t],group:a[t],push:l[t],pop:c[t],tokenTypeIdx:s[t],tokenType:n[t]})))}));let g=!0,A=[];return t.safeMode||r("First Char Optimization",(()=>{A=Ji(n,((e,r,n)=>{if("string"==typeof r.PATTERN){const t=va(r.PATTERN.charCodeAt(0));ma(e,t,f[n])}else if(x(r.START_CHARS_HINT)){let t;di(r.START_CHARS_HINT,(r=>{const i=va("string"==typeof r?r.charCodeAt(0):r);t!==i&&(t=i,ma(e,i,f[n]))}))}else if(ji(r.PATTERN))if(r.PATTERN.unicode)g=!1,t.ensureOptimizations&&is(`${js}\tUnable to analyze < ${r.PATTERN.toString()} > pattern.\n\tThe regexp unicode flag is not currently supported by the regexp-to-ast library.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{const i=Ws(r.PATTERN,t.ensureOptimizations);Vi(i)&&(g=!1),di(i,(t=>{ma(e,t,f[n])}))}else t.ensureOptimizations&&is(`${js}\tTokenType: <${r.name}> is using a custom token pattern without providing parameter.\n\tThis will disable the lexer's first char optimizations.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),g=!1;return e}),[])})),{emptyGroups:p,patternIdxToConfig:f,charCodeToPatternIdxToConfig:A,hasCustom:m,canBeOptimized:g}}function ia(e,t){let r=[];const n=function(e){const t=Ai(e,(e=>!Pi(e,$s))),r=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- missing static 'PATTERN' property",type:Ia.MISSING_PATTERN,tokenTypes:[e]}))),n=li(e,t);return{errors:r,valid:n}}(e);r=r.concat(n.errors);const i=function(e){const t=Ai(e,(e=>{const t=e[$s];return!(ji(t)||V(t)||Pi(t,"exec")||Li(t))})),r=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:Ia.INVALID_PATTERN,tokenTypes:[e]}))),n=li(e,t);return{errors:r,valid:n}}(n.valid),s=i.valid;return r=r.concat(i.errors),r=r.concat(function(e){let t=[];const r=Ai(e,(e=>ji(e[$s])));return t=t.concat(function(e){class t extends Gs{constructor(){super(...arguments),this.found=!1}visitEndAnchor(e){this.found=!0}}const r=Ai(e,(e=>{const r=e.PATTERN;try{const e=Vs(r),n=new t;return n.visit(e),n.found}catch(n){return sa.test(r.source)}})),n=_i(r,(e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain end of input anchor '$'\n\tSee chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:Ia.EOI_ANCHOR_FOUND,tokenTypes:[e]})));return n}(r)),t=t.concat(function(e){class t extends Gs{constructor(){super(...arguments),this.found=!1}visitStartAnchor(e){this.found=!0}}const r=Ai(e,(e=>{const r=e.PATTERN;try{const e=Vs(r),n=new t;return n.visit(e),n.found}catch(n){return aa.test(r.source)}})),n=_i(r,(e=>({message:"Unexpected RegExp Anchor Error:\n\tToken Type: ->"+e.name+"<- static 'PATTERN' cannot contain start of input anchor '^'\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS\tfor details.",type:Ia.SOI_ANCHOR_FOUND,tokenTypes:[e]})));return n}(r)),t=t.concat(function(e){const t=Ai(e,(e=>{const t=e[$s];return t instanceof RegExp&&(t.multiline||t.global)})),r=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:Ia.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[e]})));return r}(r)),t=t.concat(function(e){const t=[];let r=_i(e,(r=>Ji(e,((e,n)=>(r.PATTERN.source!==n.PATTERN.source||Oi(t,n)||n.PATTERN===Pa.NA||(t.push(n),e.push(n)),e)),[])));r=an(r);const n=_i(Ai(r,(e=>e.length>1)),(e=>{const t=_i(e,(e=>e.name));return{message:`The same RegExp pattern ->${bi(e).PATTERN}<-has been used in all of the following Token Types: ${t.join(", ")} <-`,type:Ia.DUPLICATE_PATTERNS_FOUND,tokenTypes:e}}));return n}(r)),t=t.concat(function(e){const t=Ai(e,(e=>e.PATTERN.test(""))),r=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'PATTERN' must not match an empty string",type:Ia.EMPTY_MATCH_PATTERN,tokenTypes:[e]})));return r}(r)),t}(s)),r=r.concat(function(e){const t=Ai(e,(e=>{if(!Pi(e,"GROUP"))return!1;const t=e.GROUP;return t!==Pa.SKIPPED&&t!==Pa.NA&&!Li(t)})),r=_i(t,(e=>({message:"Token Type: ->"+e.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:Ia.INVALID_GROUP_TYPE_FOUND,tokenTypes:[e]})));return r}(s)),r=r.concat(function(e,t){const r=Ai(e,(e=>void 0!==e.PUSH_MODE&&!Oi(t,e.PUSH_MODE))),n=_i(r,(e=>({message:`Token Type: ->${e.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${e.PUSH_MODE}<-which does not exist`,type:Ia.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[e]})));return n}(s,t)),r=r.concat(function(e){const t=[],r=Ji(e,((e,t,r)=>{const n=t.PATTERN;return n===Pa.NA||(Li(n)?e.push({str:n,idx:r,tokenType:t}):ji(n)&&(i=n,void 0===xi([".","\\","[","]","|","^","$","(",")","?","*","+","{"],(e=>-1!==i.source.indexOf(e))))&&e.push({str:n.source,idx:r,tokenType:t})),e;var i}),[]);return di(e,((e,n)=>{di(r,(({str:r,idx:i,tokenType:s})=>{if(n${s.name}<- can never be matched.\nBecause it appears AFTER the Token Type ->${e.name}<-in the lexer's definition.\nSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:r,type:Ia.UNREACHABLE_PATTERN,tokenTypes:[e,s]})}}))})),t}(s)),r}const sa=/[^\\][$]/;const aa=/[^\\[][\^]|^\^/;function oa(e){const t=e.ignoreCase?"i":"";return new RegExp(`^(?:${e.source})`,t)}function la(e){const t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function ca(e,t,r){const n=[];let i=!1;const s=Zi(an(kt(Fi(e.modes))),(e=>e[$s]===Pa.NA)),a=fa(r);return t&&di(s,(e=>{const t=pa(e,a);if(!1!==t){const r=function(e,t){if(t.issue===Ia.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.\n\tThe problem is in the <${e.name}> Token Type\n\t Root cause: ${t.errMsg}.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===Ia.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option.\n\tThe problem is in the <${e.name}> Token Type\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}(e,t),i={message:r,type:t.issue,tokenType:e};n.push(i)}else Pi(e,"LINE_BREAKS")?!0===e.LINE_BREAKS&&(i=!0):Zs(a,e.PATTERN)&&(i=!0)})),t&&!i&&n.push({message:"Warning: No LINE_BREAKS Found.\n\tThis Lexer has been defined to track line and column information,\n\tBut none of the Token Types can be identified as matching a line terminator.\n\tSee https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS \n\tfor details.",type:Ia.NO_LINE_BREAKS_FLAGS}),n}function ha(e){const t=e.PATTERN;if(ji(t))return!1;if(V(t))return!0;if(Pi(t,"exec"))return!0;if(Li(t))return!1;throw Error("non exhaustive match")}function ua(e){return!(!Li(e)||1!==e.length)&&e.charCodeAt(0)}const da={test:function(e){const t=e.length;for(let r=this.lastIndex;rLi(e)?e.charCodeAt(0):e))}function ma(e,t,r){void 0===e[t]?e[t]=[r]:e[t].push(r)}const ga=256;let Aa=[];function va(e){return ee.CATEGORIES))));const e=li(r,t);t=t.concat(e),Vi(e)?n=!1:r=e}return t}(e);!function(e){di(e,(e=>{Ma(e)||(Ea[ba]=e,e.tokenTypeIdx=ba++),wa(e)&&!x(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),wa(e)||(e.CATEGORIES=[]),Pi(e,"categoryMatches")||(e.categoryMatches=[]),function(e){return Pi(e,"categoryMatchesMap")}(e)||(e.categoryMatchesMap={})}))}(t),function(e){di(e,(e=>{Sa([],e)}))}(t),function(e){di(e,(e=>{e.categoryMatches=[],di(e.categoryMatchesMap,((t,r)=>{e.categoryMatches.push(Ea[r].tokenTypeIdx)}))}))}(t),di(t,(e=>{e.isParent=e.categoryMatches.length>0}))}function Sa(e,t){di(e,(e=>{t.categoryMatchesMap[e.tokenTypeIdx]=!0})),di(t.CATEGORIES,(r=>{const n=e.concat(t);Oi(n,r)||Sa(n,r)}))}function Ma(e){return Pi(e,"tokenTypeIdx")}function wa(e){return Pi(e,"CATEGORIES")}function Ca(e){return Pi(e,"tokenTypeIdx")}const Ta={buildUnableToPopLexerModeMessage:e=>`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`,buildUnexpectedCharactersMessage:(e,t,r,n,i)=>`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${r} characters.`};var Ia,Ba;(Ba=Ia||(Ia={}))[Ba.MISSING_PATTERN=0]="MISSING_PATTERN",Ba[Ba.INVALID_PATTERN=1]="INVALID_PATTERN",Ba[Ba.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",Ba[Ba.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",Ba[Ba.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",Ba[Ba.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",Ba[Ba.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",Ba[Ba.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",Ba[Ba.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",Ba[Ba.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",Ba[Ba.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",Ba[Ba.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",Ba[Ba.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",Ba[Ba.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",Ba[Ba.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",Ba[Ba.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",Ba[Ba.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",Ba[Ba.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE";const Ra={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:["\n","\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:Ta,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(Ra);class Pa{constructor(e,t=Ra){if(this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(e,t)=>{if(!0===this.traceInitPerf){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent`);const{time:n,value:i}=as(t),s=n>10?console.warn:console.log;return this.traceInitIndent time: ${n}ms`),this.traceInitIndent--,i}return t()},"boolean"==typeof t)throw Error("The second argument to the Lexer constructor is now an ILexerConfig Object.\na boolean 2nd argument is no longer supported");this.config=lt({},Ra,t);const r=this.config.traceInitPerf;!0===r?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):"number"==typeof r&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",(()=>{let r,n=!0;this.TRACE_INIT("Lexer Config handling",(()=>{if(this.config.lineTerminatorsPattern===Ra.lineTerminatorsPattern)this.config.lineTerminatorsPattern=da;else if(this.config.lineTerminatorCharacters===Ra.lineTerminatorCharacters)throw Error("Error: Missing property on the Lexer config.\n\tFor details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS");if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),x(e)?r={modes:{defaultMode:sn(e)},defaultMode:ea}:(n=!1,r=sn(e))})),!1===this.config.skipValidations&&(this.TRACE_INIT("performRuntimeChecks",(()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(function(e,t,r){const n=[];return Pi(e,ea)||n.push({message:"A MultiMode Lexer cannot be initialized without a <"+ea+"> property in its definition\n",type:Ia.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Pi(e,ta)||n.push({message:"A MultiMode Lexer cannot be initialized without a property in its definition\n",type:Ia.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Pi(e,ta)&&Pi(e,ea)&&!Pi(e.modes,e.defaultMode)&&n.push({message:`A MultiMode Lexer cannot be initialized with a ${ea}: <${e.defaultMode}>which does not exist\n`,type:Ia.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Pi(e,ta)&&di(e.modes,((e,t)=>{di(e,((r,i)=>{Wi(r)?n.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${t}> at index: <${i}>\n`,type:Ia.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED}):Pi(r,"LONGER_ALT")&&di(x(r.LONGER_ALT)?r.LONGER_ALT:[r.LONGER_ALT],(i=>{Wi(i)||Oi(e,i)||n.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${i.name}> on token <${r.name}> outside of mode <${t}>\n`,type:Ia.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})}))}))})),n}(r,this.trackStartLines,this.config.lineTerminatorCharacters))})),this.TRACE_INIT("performWarningRuntimeChecks",(()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(ca(r,this.trackStartLines,this.config.lineTerminatorCharacters))}))),r.modes=r.modes?r.modes:{},di(r.modes,((e,t)=>{r.modes[t]=Zi(e,(e=>Wi(e)))}));const i=st(r.modes);if(di(r.modes,((e,r)=>{this.TRACE_INIT(`Mode: <${r}> processing`,(()=>{if(this.modes.push(r),!1===this.config.skipValidations&&this.TRACE_INIT("validatePatterns",(()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(ia(e,i))})),Vi(this.lexerDefinitionErrors)){let n;_a(e),this.TRACE_INIT("analyzeTokenTypes",(()=>{n=na(e,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:this.TRACE_INIT})})),this.patternIdxToConfig[r]=n.patternIdxToConfig,this.charCodeToPatternIdxToConfig[r]=n.charCodeToPatternIdxToConfig,this.emptyGroups=lt({},this.emptyGroups,n.emptyGroups),this.hasCustom=n.hasCustom||this.hasCustom,this.canModeBeOptimized[r]=n.canBeOptimized}}))})),this.defaultMode=r.defaultMode,!Vi(this.lexerDefinitionErrors)&&!this.config.deferDefinitionErrorsHandling){const e=_i(this.lexerDefinitionErrors,(e=>e.message)).join("-----------------------\n");throw new Error("Errors detected in definition of Lexer:\n"+e)}di(this.lexerDefinitionWarning,(e=>{ss(e.message)})),this.TRACE_INIT("Choosing sub-methods implementations",(()=>{if(ra?(this.chopInput=N,this.match=this.matchWithTest):(this.updateLastIndex=ae,this.match=this.matchWithExec),n&&(this.handleModes=ae),!1===this.trackStartLines&&(this.computeNewColumn=N),!1===this.trackEndLines&&(this.updateTokenEndLineColumnLocation=ae),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else{if(!/onlyOffset/i.test(this.config.positionTracking))throw Error(`Invalid config option: "${this.config.positionTracking}"`);this.createTokenInstance=this.createOffsetOnlyToken}this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)})),this.TRACE_INIT("Failed Optimization Warnings",(()=>{const e=Ji(this.canModeBeOptimized,((e,t,r)=>(!1===t&&e.push(r),e)),[]);if(t.ensureOptimizations&&!Vi(e))throw Error(`Lexer Modes: < ${e.join(", ")} > cannot be optimized.\n\t Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.\n\t Or inspect the console log for details on how to resolve these issues.`)})),this.TRACE_INIT("clearRegExpParserCache",(()=>{zs={}})),this.TRACE_INIT("toFastProperties",(()=>{os(this)}))}))}tokenize(e,t=this.defaultMode){if(!Vi(this.lexerDefinitionErrors)){const e=_i(this.lexerDefinitionErrors,(e=>e.message)).join("-----------------------\n");throw new Error("Unable to Tokenize because Errors detected in definition of Lexer:\n"+e)}return this.tokenizeInternal(e,t)}tokenizeInternal(e,t){let r,n,i,s,a,o,l,c,h,u,d,p,f,m,g;const A=e,v=A.length;let y=0,b=0;const E=this.hasCustom?0:Math.floor(e.length/10),_=new Array(E),S=[];let M=this.trackStartLines?1:void 0,w=this.trackStartLines?1:void 0;const C=function(e){const t={};return di(st(e),(r=>{const n=e[r];if(!x(n))throw Error("non exhaustive match");t[r]=[]})),t}(this.emptyGroups),T=this.trackStartLines,I=this.config.lineTerminatorsPattern;let B=0,R=[],P=[];const D=[],L=[];let F;function U(){return R}function O(e){const t=va(e),r=P[t];return void 0===r?L:r}Object.freeze(L);const N=e=>{if(1===D.length&&void 0===e.tokenType.PUSH_MODE){const t=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(e);S.push({offset:e.startOffset,line:e.startLine,column:e.startColumn,length:e.image.length,message:t})}else{D.pop();const e=ci(D);R=this.patternIdxToConfig[e],P=this.charCodeToPatternIdxToConfig[e],B=R.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;F=P&&t?O:U}};function k(e){D.push(e),P=this.charCodeToPatternIdxToConfig[e],R=this.patternIdxToConfig[e],B=R.length,B=R.length;const t=this.canModeBeOptimized[e]&&!1===this.config.safeMode;F=P&&t?O:U}let G;k.call(this,t);const z=this.config.recoveryEnabled;for(;yo.length){o=s,l=c,G=t;break}}}break}}if(null!==o){if(h=o.length,u=G.group,void 0!==u&&(d=G.tokenTypeIdx,p=this.createTokenInstance(o,y,d,G.tokenType,M,w,h),this.handlePayload(p,l),!1===u?b=this.addToken(_,b,p):C[u].push(p)),e=this.chopInput(e,h),y+=h,w=this.computeNewColumn(w,h),!0===T&&!0===G.canLineTerminator){let e,t,r=0;I.lastIndex=0;do{e=I.test(o),!0===e&&(t=I.lastIndex-1,r++)}while(!0===e);0!==r&&(M+=r,w=h-t,this.updateTokenEndLineColumnLocation(p,u,t,r,M,w,h))}this.handleModes(G,N,k,p)}else{const t=y,r=M,i=w;let s=!1===z;for(;!1===s&&y`Expecting ${La(e)?`--\x3e ${Da(e)} <--`:`token of type --\x3e ${e.name} <--`} but found --\x3e '${t.image}' <--`,buildNotAllInputParsedMessage:({firstRedundant:e,ruleName:t})=>"Redundant input, expecting EOF but found: "+e.image,buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:r,customUserDescription:n,ruleName:i}){const s="Expecting: ",a="\nbut found: '"+bi(t).image+"'";if(n)return s+n+a;{const t=_i(Ji(e,((e,t)=>e.concat(t)),[]),(e=>`[${_i(e,(e=>Da(e))).join(", ")}]`));return s+`one of these possible Token sequences:\n${_i(t,((e,t)=>` ${t+1}. ${e}`)).join("\n")}`+a}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:r,ruleName:n}){const i="Expecting: ",s="\nbut found: '"+bi(t).image+"'";if(r)return i+r+s;return i+`expecting at least one iteration which starts with one of these possible Token sequences::\n <${_i(e,(e=>`[${_i(e,(e=>Da(e))).join(",")}]`)).join(" ,")}>`+s}};Object.freeze(Xa);const Ya={buildRuleNotFoundError:(e,t)=>"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+"<-\ninside top level rule: ->"+e.name+"<-"},qa={buildDuplicateFoundError(e,t){const r=e.name,n=bi(t),i=n.idx,s=_s(n),a=(o=n)instanceof ys?o.terminalType.name:o instanceof hs?o.nonTerminalName:"";var o;let l=`->${s}${i>0?i:""}<- ${a?`with argument: ->${a}<-`:""}\n appears more than once (${t.length} times) in the top level rule: ->${r}<-. \n For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES \n `;return l=l.replace(/[ \t]+/g," "),l=l.replace(/\s\s+/g,"\n"),l},buildNamespaceConflictError:e=>`Namespace conflict found in grammar.\nThe grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <${e.name}>.\nTo resolve this make sure each Terminal and Non-Terminal names are unique\nThis is easy to accomplish by using the convention that Terminal names start with an uppercase letter\nand Non-Terminal names start with a lower case letter.`,buildAlternationPrefixAmbiguityError(e){const t=_i(e.prefixPath,(e=>Da(e))).join(", "),r=0===e.alternation.idx?"":e.alternation.idx;return`Ambiguous alternatives: <${e.ambiguityIndices.join(" ,")}> due to common lookahead prefix\nin inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\nSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX\nFor Further details.`},buildAlternationAmbiguityError(e){const t=_i(e.prefixPath,(e=>Da(e))).join(", "),r=0===e.alternation.idx?"":e.alternation.idx;let n=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(" ,")}> in inside <${e.topLevelRule.name}> Rule,\n<${t}> may appears as a prefix path in all these alternatives.\n`;return n+="See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES\nFor Further details.",n},buildEmptyRepetitionError(e){let t=_s(e.repetition);0!==e.repetition.idx&&(t+=e.repetition.idx);return`The repetition <${t}> within Rule <${e.topLevelRule.name}> can never consume any tokens.\nThis could lead to an infinite loop.`},buildTokenNameError:e=>"deprecated",buildEmptyAlternationError:e=>`Ambiguous empty alternative: <${e.emptyChoiceIdx+1}> in inside <${e.topLevelRule.name}> Rule.\nOnly the last alternative may be an empty alternative.`,buildTooManyAlternativesError:e=>`An Alternation cannot have more than 256 alternatives:\n inside <${e.topLevelRule.name}> Rule.\n has ${e.alternation.definition.length+1} alternatives.`,buildLeftRecursionError(e){const t=e.topLevelRule.name;return`Left Recursion found in grammar.\nrule: <${t}> can be invoked from itself (directly or indirectly)\nwithout consuming any Tokens. The grammar path that causes this is: \n ${`${t} --\x3e ${_i(e.leftRecursionPath,(e=>e.name)).concat([t]).join(" --\x3e ")}`}\n To fix this refactor your grammar to remove the left recursion.\nsee: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError:e=>"deprecated",buildDuplicateRuleNameError(e){let t;t=e.topLevelRule instanceof us?e.topLevelRule.name:e.topLevelRule;return`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};class Ka extends bs{constructor(e,t){super(),this.nameToTopRule=e,this.errMsgProvider=t,this.errors=[]}resolveRefs(){di(Fi(this.nameToTopRule),(e=>{this.currTopLevel=e,e.accept(this)}))}visitNonTerminal(e){const t=this.nameToTopRule[e.nonTerminalName];if(t)e.referencedRule=t;else{const t=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,e);this.errors.push({message:t,type:xl.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:e.nonTerminalName})}}}class Ja extends Ss{constructor(e,t){super(),this.topProd=e,this.path=t,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=sn(this.path.ruleStack).reverse(),this.occurrenceStack=sn(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(e,t=[]){this.found||super.walk(e,t)}walkProdRef(e,t,r){if(e.referencedRule.name===this.nextProductionName&&e.idx===this.nextProductionOccurrence){const n=t.concat(r);this.updateExpectedNext(),this.walk(e.referencedRule,n)}}updateExpectedNext(){Vi(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}}class Za extends Ja{constructor(e,t){super(e,t),this.path=t,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(e,t,r){if(this.isAtEndOfPath&&e.terminalType.name===this.nextTerminalName&&e.idx===this.nextTerminalOccurrence&&!this.found){const e=t.concat(r),n=new ds({definition:e});this.possibleTokTypes=ws(n),this.found=!0}}}class $a extends Ss{constructor(e,t){super(),this.topRule=e,this.occurrence=t,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}}class eo extends $a{walkMany(e,t,r){if(e.idx===this.occurrence){const e=bi(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof ys&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkMany(e,t,r)}}class to extends $a{walkManySep(e,t,r){if(e.idx===this.occurrence){const e=bi(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof ys&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkManySep(e,t,r)}}class ro extends $a{walkAtLeastOne(e,t,r){if(e.idx===this.occurrence){const e=bi(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof ys&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOne(e,t,r)}}class no extends $a{walkAtLeastOneSep(e,t,r){if(e.idx===this.occurrence){const e=bi(t.concat(r));this.result.isEndOfRule=void 0===e,e instanceof ys&&(this.result.token=e.terminalType,this.result.occurrence=e.idx)}else super.walkAtLeastOneSep(e,t,r)}}function io(e,t,r=[]){r=sn(r);let n=[],i=0;function s(s){const a=io(s.concat(hi(e,i+1)),t,r);return n.concat(a)}for(;r.length{!1===Vi(e.definition)&&(n=s(e.definition))})),n;if(!(t instanceof ys))throw Error("non exhaustive match");r.push(t.terminalType)}}i++}return n.push({partialPath:r,suffixDef:hi(e,i)}),n}function so(e,t,r,n){const i="EXIT_NONE_TERMINAL",s=[i],a="EXIT_ALTERNATIVE";let o=!1;const l=t.length,c=l-n-1,h=[],u=[];for(u.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});!Vi(u);){const e=u.pop();if(e===a){o&&ci(u).idx<=c&&u.pop();continue}const n=e.def,d=e.idx,p=e.ruleStack,f=e.occurrenceStack;if(Vi(n))continue;const m=n[0];if(m===i){const e={idx:d,def:hi(n),ruleStack:ui(p),occurrenceStack:ui(f)};u.push(e)}else if(m instanceof ys)if(d=0;t--){const e={idx:d,def:m.definition[t].definition.concat(hi(n)),ruleStack:p,occurrenceStack:f};u.push(e),u.push(a)}else if(m instanceof ds)u.push({idx:d,def:m.definition.concat(hi(n)),ruleStack:p,occurrenceStack:f});else{if(!(m instanceof us))throw Error("non exhaustive match");u.push(ao(m,d,p,f))}}return h}function ao(e,t,r,n){const i=sn(r);i.push(e.name);const s=sn(n);return s.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:s}}var oo,lo;function co(e){if(e instanceof ps||"Option"===e)return oo.OPTION;if(e instanceof gs||"Repetition"===e)return oo.REPETITION;if(e instanceof fs||"RepetitionMandatory"===e)return oo.REPETITION_MANDATORY;if(e instanceof ms||"RepetitionMandatoryWithSeparator"===e)return oo.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof As||"RepetitionWithSeparator"===e)return oo.REPETITION_WITH_SEPARATOR;if(e instanceof vs||"Alternation"===e)return oo.ALTERNATION;throw Error("non exhaustive match")}function ho(e,t,r,n){const i=e.length,s=mi(e,(e=>mi(e,(e=>1===e.length))));if(t)return function(t){const n=_i(t,(e=>e.GATE));for(let s=0;skt(e))),((e,t,r)=>(di(t,(t=>{Pi(e,t.tokenTypeIdx)||(e[t.tokenTypeIdx]=r),di(t.categoryMatches,(t=>{Pi(e,t)||(e[t]=r)}))})),e)),{});return function(){const e=this.LA(1);return t[e.tokenTypeIdx]}}return function(){for(let t=0;t1===e.length)),i=e.length;if(n&&!r){const t=kt(e);if(1===t.length&&Vi(t[0].categoryMatches)){const e=t[0].tokenTypeIdx;return function(){return this.LA(1).tokenTypeIdx===e}}{const e=Ji(t,((e,t,r)=>(e[t.tokenTypeIdx]=!0,di(t.categoryMatches,(t=>{e[t]=!0})),e)),[]);return function(){const t=this.LA(1);return!0===e[t.tokenTypeIdx]}}}return function(){e:for(let r=0;rio([e],1))),n=mo(r.length),i=_i(r,(e=>{const t={};return di(e,(e=>{di(go(e.partialPath),(e=>{t[e]=!0}))})),t}));let s=r;for(let a=1;a<=t;a++){const e=s;s=mo(e.length);for(let r=0;r{di(go(e.partialPath),(e=>{i[r][e]=!0}))}))}}}}return n}function yo(e,t,r,n){const i=new fo(e,oo.ALTERNATION,n);return t.accept(i),vo(i.result,r)}function xo(e,t,r,n){const i=new fo(e,r);t.accept(i);const s=i.result,a=new po(t,e,r).startWalking();return vo([new ds({definition:s}),new ds({definition:a})],n)}function bo(e,t){e:for(let r=0;rmi(e,(e=>mi(e,(e=>Vi(e.categoryMatches)))))))}function _o(e,t,r,n){const i=Si(e,(e=>function(e,t){const r=new wo;e.accept(r);const n=r.allProductions,i=Ii(n,So),s=_i(Fi(qi(i,(e=>e.length>1))),(r=>{const n=bi(r),i=t.buildDuplicateFoundError(e,r),s=_s(n),a={message:i,type:xl.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:s,occurrence:n.idx},o=Mo(n);return o&&(a.parameter=o),a}));return s}(e,r))),s=function(e,t,r){const n=[],i=_i(t,(e=>e.name));return di(e,(e=>{const t=e.name;if(Oi(i,t)){const i=r.buildNamespaceConflictError(e);n.push({message:i,type:xl.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:t})}})),n}(e,t,r),a=Si(e,(e=>function(e,t){const r=new Io;e.accept(r);const n=Si(r.alternations,(r=>r.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:r}),type:xl.TOO_MANY_ALTS,ruleName:e.name,occurrence:r.idx}]:[]));return n}(e,r))),o=Si(e,(t=>function(e,t,r,n){const i=[],s=Ji(t,((t,r)=>r.name===e.name?t+1:t),0);if(s>1){const t=n.buildDuplicateRuleNameError({topLevelRule:e,grammarName:r});i.push({message:t,type:xl.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}(t,e,n,r)));return i.concat(s,a,o)}function So(e){return`${_s(e)}_#_${e.idx}_#_${Mo(e)}`}function Mo(e){return e instanceof ys?e.terminalType.name:e instanceof hs?e.nonTerminalName:""}class wo extends bs{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(e){this.allProductions.push(e)}visitOption(e){this.allProductions.push(e)}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}visitAlternation(e){this.allProductions.push(e)}visitTerminal(e){this.allProductions.push(e)}}function Co(e,t,r,n=[]){const i=[],s=To(t.definition);if(Vi(s))return[];{const t=e.name;Oi(s,e)&&i.push({message:r.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:n}),type:xl.LEFT_RECURSION,ruleName:t});const a=Si(li(s,n.concat([e])),(t=>{const i=sn(n);return i.push(t),Co(e,t,r,i)}));return i.concat(a)}}function To(e){let t=[];if(Vi(e))return t;const r=bi(e);if(r instanceof hs)t.push(r.referencedRule);else if(r instanceof ds||r instanceof ps||r instanceof fs||r instanceof ms||r instanceof As||r instanceof gs)t=t.concat(To(r.definition));else if(r instanceof vs)t=kt(_i(r.definition,(e=>To(e.definition))));else if(!(r instanceof ys))throw Error("non exhaustive match");const n=Es(r),i=e.length>1;if(n&&i){const r=hi(e);return t.concat(To(r))}return t}class Io extends bs{constructor(){super(...arguments),this.alternations=[]}visitAlternation(e){this.alternations.push(e)}}function Bo(e,t,r){const n=new Io;e.accept(n);let i=n.alternations;i=Zi(i,(e=>!0===e.ignoreAmbiguities));const s=Si(i,(n=>{const i=n.idx,s=n.maxLookahead||t,a=yo(i,e,s,n),o=function(e,t,r,n){const i=[],s=Ji(e,((r,n,s)=>(!0===t.definition[s].ignoreAmbiguities||di(n,(n=>{const a=[s];di(e,((e,r)=>{s!==r&&bo(e,n)&&!0!==t.definition[r].ignoreAmbiguities&&a.push(r)})),a.length>1&&!bo(i,n)&&(i.push(n),r.push({alts:a,path:n}))})),r)),[]),a=_i(s,(e=>{const i=_i(e.alts,(e=>e+1));return{message:n.buildAlternationAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:xl.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:t.idx,alternatives:e.alts}}));return a}(a,n,e,r),l=function(e,t,r,n){const i=Ji(e,((e,t,r)=>{const n=_i(t,(e=>({idx:r,path:e})));return e.concat(n)}),[]),s=an(Si(i,(e=>{if(!0===t.definition[e.idx].ignoreAmbiguities)return[];const s=e.idx,a=e.path;return _i(Ai(i,(e=>{return!0!==t.definition[e.idx].ignoreAmbiguities&&e.idx{const r=n[t];return e===r||r.categoryMatchesMap[e.tokenTypeIdx]})));var r,n})),(e=>{const i=[e.idx+1,s+1],a=0===t.idx?"":t.idx;return{message:n.buildAlternationPrefixAmbiguityError({topLevelRule:r,alternation:t,ambiguityIndices:i,prefixPath:e.path}),type:xl.AMBIGUOUS_PREFIX_ALTS,ruleName:r.name,occurrence:a,alternatives:i}}))})));return s}(a,n,e,r);return o.concat(l)}));return s}class Ro extends bs{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(e){this.allProductions.push(e)}visitRepetitionMandatory(e){this.allProductions.push(e)}visitRepetitionMandatoryWithSeparator(e){this.allProductions.push(e)}visitRepetition(e){this.allProductions.push(e)}}function Po(e){const t=si(e,{errMsgProvider:Ya}),r={};return di(e.rules,(e=>{r[e.name]=e})),function(e,t){const r=new Ka(e,t);return r.resolveRefs(),r.errors}(r,t.errMsgProvider)}const Do="MismatchedTokenException",Lo="NoViableAltException",Fo="EarlyExitException",Uo="NotAllInputParsedException",Oo=[Do,Lo,Fo,Uo];function No(e){return Oi(Oo,e.name)}Object.freeze(Oo);class ko extends Error{constructor(e,t){super(e),this.token=t,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}class Go extends ko{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Do}}class zo extends ko{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Lo}}class Qo extends ko{constructor(e,t){super(e,t),this.name=Uo}}class Vo extends ko{constructor(e,t,r){super(e,t),this.previousToken=r,this.name=Fo}}const Ho={},jo="InRuleRecoveryException";class Wo extends Error{constructor(e){super(e),this.name=jo}}function Xo(e,t,r,n,i,s,a){const o=this.getKeyForAutomaticLookahead(n,i);let l=this.firstAfterRepMap[o];if(void 0===l){const e=this.getCurrRuleFullName();l=new s(this.getGAstProductions()[e],i).startWalking(),this.firstAfterRepMap[o]=l}let c=l.token,h=l.occurrence;const u=l.isEndOfRule;1===this.RULE_STACK.length&&u&&void 0===c&&(c=ja,h=1),void 0!==c&&void 0!==h&&this.shouldInRepetitionRecoveryBeTried(c,h,a)&&this.tryInRepetitionRecovery(e,t,r,c)}const Yo=1024,qo=1280,Ko=1536;function Jo(e,t,r){return r|t|e}class Zo{constructor(e){var t;this.maxLookahead=null!==(t=null==e?void 0:e.maxLookahead)&&void 0!==t?t:vl.maxLookahead}validate(e){const t=this.validateNoLeftRecursion(e.rules);if(Vi(t)){const r=this.validateEmptyOrAlternatives(e.rules),n=this.validateAmbiguousAlternationAlternatives(e.rules,this.maxLookahead),i=this.validateSomeNonEmptyLookaheadPath(e.rules,this.maxLookahead);return[...t,...r,...n,...i]}return t}validateNoLeftRecursion(e){return Si(e,(e=>Co(e,e,qa)))}validateEmptyOrAlternatives(e){return Si(e,(e=>function(e,t){const r=new Io;return e.accept(r),Si(r.alternations,(r=>Si(ui(r.definition),((n,i)=>Vi(so([n],[],ya,1))?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:r,emptyChoiceIdx:i}),type:xl.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:r.idx,alternative:i+1}]:[]))))}(e,qa)))}validateAmbiguousAlternationAlternatives(e,t){return Si(e,(e=>Bo(e,t,qa)))}validateSomeNonEmptyLookaheadPath(e,t){return function(e,t,r){const n=[];return di(e,(e=>{const i=new Ro;e.accept(i),di(i.allProductions,(i=>{const s=co(i),a=i.maxLookahead||t;if(Vi(kt(xo(i.idx,e,s,a)[0]))){const t=r.buildEmptyRepetitionError({topLevelRule:e,repetition:i});n.push({message:t,type:xl.NO_NON_EMPTY_LOOKAHEAD,ruleName:e.name})}}))})),n}(e,t,qa)}buildLookaheadForAlternation(e){return function(e,t,r,n,i,s){const a=yo(e,t,r);return s(a,n,Eo(a)?xa:ya,i)}(e.prodOccurrence,e.rule,e.maxLookahead,e.hasPredicates,e.dynamicTokensEnabled,ho)}buildLookaheadForOptional(e){return function(e,t,r,n,i,s){const a=xo(e,t,i,r),o=Eo(a)?xa:ya;return s(a[0],o,n)}(e.prodOccurrence,e.rule,e.maxLookahead,e.dynamicTokensEnabled,co(e.prodType),uo)}}const $o=new class extends bs{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(e){this.dslMethods.option.push(e)}visitRepetitionWithSeparator(e){this.dslMethods.repetitionWithSeparator.push(e)}visitRepetitionMandatory(e){this.dslMethods.repetitionMandatory.push(e)}visitRepetitionMandatoryWithSeparator(e){this.dslMethods.repetitionMandatoryWithSeparator.push(e)}visitRepetition(e){this.dslMethods.repetition.push(e)}visitAlternation(e){this.dslMethods.alternation.push(e)}};function el(e,t){!0===isNaN(e.startOffset)?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset!1===V(e[t]))),n=_i(r,(t=>({msg:`Missing visitor method: <${t}> on ${e.constructor.name} CST Visitor.`,type:al.MISSING_METHOD,methodName:t})));return an(n)}(e,t);return r}(this,t);if(!Vi(e)){const t=_i(e,(e=>e.msg));throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:\n\t${t.join("\n\n").replace(/\n/g,"\n\t")}`)}}};return(r.prototype=n).constructor=r,r._RULE_NAMES=t,r}var al,ol;(ol=al||(al={}))[ol.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",ol[ol.MISSING_METHOD=1]="MISSING_METHOD";const ll={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(ll);const cl=Math.pow(2,8)-1,hl=Ha({name:"RECORDING_PHASE_TOKEN",pattern:Pa.NA});_a([hl]);const ul=Wa(hl,"This IToken indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",-1,-1,-1,-1,-1,-1);Object.freeze(ul);const dl={name:"This CSTNode indicates the Parser is in Recording Phase\n\tSee: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details",children:{}};function pl(e,t,r,n=!1){gl(r);const i=ci(this.recordingProdStack),s=V(t)?t:t.DEF,a=new e({definition:[],idx:r});return n&&(a.separator=t.SEP),Pi(t,"MAX_LOOKAHEAD")&&(a.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(a),s.call(this),i.definition.push(a),this.recordingProdStack.pop(),ll}function fl(e,t){gl(t);const r=ci(this.recordingProdStack),n=!1===x(e),i=!1===n?e:e.DEF,s=new vs({definition:[],idx:t,ignoreAmbiguities:n&&!0===e.IGNORE_AMBIGUITIES});Pi(e,"MAX_LOOKAHEAD")&&(s.maxLookahead=e.MAX_LOOKAHEAD);const a=es(i,(e=>V(e.GATE)));return s.hasPredicates=a,r.definition.push(s),di(i,(e=>{const t=new ds({definition:[]});s.definition.push(t),Pi(e,"IGNORE_AMBIGUITIES")?t.ignoreAmbiguities=e.IGNORE_AMBIGUITIES:Pi(e,"GATE")&&(t.ignoreAmbiguities=!0),this.recordingProdStack.push(t),e.ALT.call(this),this.recordingProdStack.pop()})),ll}function ml(e){return 0===e?"":`${e}`}function gl(e){if(e<0||e>cl){const t=new Error(`Invalid DSL Method idx value: <${e}>\n\tIdx value must be a none negative value smaller than ${cl+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}const Al=Wa(ja,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(Al);const vl=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:Xa,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),yl=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0});var xl,bl,El;(bl=xl||(xl={}))[bl.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",bl[bl.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",bl[bl.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",bl[bl.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",bl[bl.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",bl[bl.LEFT_RECURSION=5]="LEFT_RECURSION",bl[bl.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",bl[bl.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",bl[bl.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",bl[bl.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",bl[bl.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",bl[bl.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",bl[bl.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",bl[bl.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION";class _l{static performSelfAnalysis(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated.\t\nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",(()=>{let e;this.selfAnalysisDone=!0;const t=this.className;this.TRACE_INIT("toFastProps",(()=>{os(this)})),this.TRACE_INIT("Grammar Recording",(()=>{try{this.enableRecording(),di(this.definedRulesNames,(e=>{const t=this[e].originalGrammarAction;let r;this.TRACE_INIT(`${e} Rule`,(()=>{r=this.topLevelRuleRecord(e,t)})),this.gastProductionsCache[e]=r}))}finally{this.disableRecording()}}));let r=[];if(this.TRACE_INIT("Grammar Resolving",(()=>{r=Po({rules:Fi(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)})),this.TRACE_INIT("Grammar Validations",(()=>{if(Vi(r)&&!1===this.skipValidations){const r=(e={rules:Fi(this.gastProductionsCache),tokenTypes:Fi(this.tokensMap),errMsgProvider:qa,grammarName:t},_o((e=si(e,{errMsgProvider:qa})).rules,e.tokenTypes,e.errMsgProvider,e.grammarName)),n=function(e){return _i(e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}),(e=>Object.assign({type:xl.CUSTOM_LOOKAHEAD_VALIDATION},e)))}({lookaheadStrategy:this.lookaheadStrategy,rules:Fi(this.gastProductionsCache),tokenTypes:Fi(this.tokensMap),grammarName:t});this.definitionErrors=this.definitionErrors.concat(r,n)}var e})),Vi(this.definitionErrors)&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",(()=>{const e=function(e){const t={};return di(e,(e=>{const r=new Ts(e).startWalking();lt(t,r)})),t}(Fi(this.gastProductionsCache));this.resyncFollows=e})),this.TRACE_INIT("ComputeLookaheadFunctions",(()=>{var e,t;null===(t=(e=this.lookaheadStrategy).initialize)||void 0===t||t.call(e,{rules:Fi(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Fi(this.gastProductionsCache))}))),!_l.DEFER_DEFINITION_ERRORS_HANDLING&&!Vi(this.definitionErrors))throw e=_i(this.definitionErrors,(e=>e.message)),new Error(`Parser Definition Errors detected:\n ${e.join("\n-------------------------------\n")}`)}))}constructor(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;const r=this;if(r.initErrorHandler(t),r.initLexerAdapter(),r.initLooksAhead(t),r.initRecognizerEngine(e,t),r.initRecoverable(t),r.initTreeBuilder(t),r.initContentAssist(),r.initGastRecorder(t),r.initPerformanceTracer(t),Pi(t,"ignoredIssues"))throw new Error("The IParserConfig property has been deprecated.\n\tPlease use the flag on the relevant DSL method instead.\n\tSee: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES\n\tFor further details.");this.skipValidations=Pi(t,"skipValidations")?t.skipValidations:vl.skipValidations}}_l.DEFER_DEFINITION_ERRORS_HANDLING=!1,El=_l,[class{initRecoverable(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=Pi(e,"recoveryEnabled")?e.recoveryEnabled:vl.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Xo)}getTokenToInsert(e){const t=Wa(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t}canTokenTypeBeInsertedInRecovery(e){return!0}canTokenTypeBeDeletedInRecovery(e){return!0}tryInRepetitionRecovery(e,t,r,n){const i=this.findReSyncTokenType(),s=this.exportLexerState(),a=[];let o=!1;const l=this.LA(1);let c=this.LA(1);const h=()=>{const e=this.LA(0),t=this.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:l,previous:e,ruleName:this.getCurrRuleFullName()}),r=new Go(t,l,this.LA(0));r.resyncedTokens=ui(a),this.SAVE_ERROR(r)};for(;!o;){if(this.tokenMatcher(c,n))return void h();if(r.call(this))return h(),void e.apply(this,t);this.tokenMatcher(c,i)?o=!0:(c=this.SKIP_TOKEN(),this.addToResyncTokens(c,a))}this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(e,t,r){return!1!==r&&!this.tokenMatcher(this.LA(1),e)&&!this.isBackTracking()&&!this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t))}getFollowsForInRuleRecovery(e,t){const r=this.getCurrentGrammarPath(e,t);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t))return this.getTokenToInsert(e);if(this.canRecoverWithSingleTokenDeletion(e)){const e=this.SKIP_TOKEN();return this.consumeToken(),e}throw new Wo("sad sad panda")}canPerformInRuleRecovery(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)}canRecoverWithSingleTokenInsertion(e,t){if(!this.canTokenTypeBeInsertedInRecovery(e))return!1;if(Vi(t))return!1;const r=this.LA(1);return void 0!==xi(t,(e=>this.tokenMatcher(r,e)))}canRecoverWithSingleTokenDeletion(e){return!!this.canTokenTypeBeDeletedInRecovery(e)&&this.tokenMatcher(this.LA(2),e)}isInCurrentRuleReSyncSet(e){const t=this.getCurrFollowKey();return Oi(this.getFollowSetFromFollowKey(t),e)}findReSyncTokenType(){const e=this.flattenFollowSet();let t=this.LA(1),r=2;for(;;){const n=xi(e,(e=>ya(t,e)));if(void 0!==n)return n;t=this.LA(r),r++}}getCurrFollowKey(){if(1===this.RULE_STACK.length)return Ho;const e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){const e=this.RULE_STACK,t=this.RULE_OCCURRENCE_STACK;return _i(e,((r,n)=>0===n?Ho:{ruleName:this.shortRuleNameToFullName(r),idxInCallingRule:t[n],inRule:this.shortRuleNameToFullName(e[n-1])}))}flattenFollowSet(){return kt(_i(this.buildFullFollowKeyStack(),(e=>this.getFollowSetFromFollowKey(e))))}getFollowSetFromFollowKey(e){if(e===Ho)return[ja];const t=e.ruleName+e.idxInCallingRule+Cs+e.inRule;return this.resyncFollows[t]}addToResyncTokens(e,t){return this.tokenMatcher(e,ja)||t.push(e),t}reSyncTo(e){const t=[];let r=this.LA(1);for(;!1===this.tokenMatcher(r,e);)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,t);return ui(t)}attemptInRepetitionRecovery(e,t,r,n,i,s,a){}getCurrentGrammarPath(e,t){return{ruleStack:this.getHumanReadableRuleStack(),occurrenceStack:sn(this.RULE_OCCURRENCE_STACK),lastTok:e,lastTokOccurrence:t}}getHumanReadableRuleStack(){return _i(this.RULE_STACK,(e=>this.shortRuleNameToFullName(e)))}},class{initLooksAhead(e){this.dynamicTokensEnabled=Pi(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:vl.dynamicTokensEnabled,this.maxLookahead=Pi(e,"maxLookahead")?e.maxLookahead:vl.maxLookahead,this.lookaheadStrategy=Pi(e,"lookaheadStrategy")?e.lookaheadStrategy:new Zo({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=new Map}preComputeLookaheadFunctions(e){di(e,(e=>{this.TRACE_INIT(`${e.name} Rule Lookahead`,(()=>{const{alternation:t,repetition:r,option:n,repetitionMandatory:i,repetitionMandatoryWithSeparator:s,repetitionWithSeparator:a}=function(e){$o.reset(),e.accept($o);const t=$o.dslMethods;return $o.reset(),t}(e);di(t,(t=>{const r=0===t.idx?"":t.idx;this.TRACE_INIT(`${_s(t)}${r}`,(()=>{const r=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:t.idx,rule:e,maxLookahead:t.maxLookahead||this.maxLookahead,hasPredicates:t.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled}),n=Jo(this.fullRuleNameToShort[e.name],256,t.idx);this.setLaFuncCache(n,r)}))})),di(r,(t=>{this.computeLookaheadFunc(e,t.idx,768,"Repetition",t.maxLookahead,_s(t))})),di(n,(t=>{this.computeLookaheadFunc(e,t.idx,512,"Option",t.maxLookahead,_s(t))})),di(i,(t=>{this.computeLookaheadFunc(e,t.idx,Yo,"RepetitionMandatory",t.maxLookahead,_s(t))})),di(s,(t=>{this.computeLookaheadFunc(e,t.idx,Ko,"RepetitionMandatoryWithSeparator",t.maxLookahead,_s(t))})),di(a,(t=>{this.computeLookaheadFunc(e,t.idx,qo,"RepetitionWithSeparator",t.maxLookahead,_s(t))}))}))}))}computeLookaheadFunc(e,t,r,n,i,s){this.TRACE_INIT(`${s}${0===t?"":t}`,(()=>{const s=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:t,rule:e,maxLookahead:i||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:n}),a=Jo(this.fullRuleNameToShort[e.name],r,t);this.setLaFuncCache(a,s)}))}getKeyForAutomaticLookahead(e,t){return Jo(this.getLastExplicitRuleShortName(),e,t)}getLaFuncFromCache(e){return this.lookAheadFuncsCache.get(e)}setLaFuncCache(e,t){this.lookAheadFuncsCache.set(e,t)}},class{initTreeBuilder(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=Pi(e,"nodeLocationTracking")?e.nodeLocationTracking:vl.nodeLocationTracking,this.outputCst)if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=tl,this.setNodeLocationFromNode=tl,this.cstPostRule=ae,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=ae,this.setNodeLocationFromNode=ae,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=el,this.setNodeLocationFromNode=el,this.cstPostRule=ae,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=ae,this.setNodeLocationFromNode=ae,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else{if(!/none/i.test(this.nodeLocationTracking))throw Error(`Invalid config option: "${e.nodeLocationTracking}"`);this.setNodeLocationFromToken=ae,this.setNodeLocationFromNode=ae,this.cstPostRule=ae,this.setInitialNodeLocation=ae}else this.cstInvocationStateUpdate=ae,this.cstFinallyStateUpdate=ae,this.cstPostTerminal=ae,this.cstPostNonTerminal=ae,this.cstPostRule=ae}setInitialNodeLocationOnlyOffsetRecovery(e){e.location={startOffset:NaN,endOffset:NaN}}setInitialNodeLocationOnlyOffsetRegular(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}}setInitialNodeLocationFullRecovery(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}}setInitialNodeLocationFullRegular(e){const t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}}cstInvocationStateUpdate(e){const t={name:e,children:Object.create(null)};this.setInitialNodeLocation(t),this.CST_STACK.push(t)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==1?(r.endOffset=t.endOffset,r.endLine=t.endLine,r.endColumn=t.endColumn):(r.startOffset=NaN,r.startLine=NaN,r.startColumn=NaN)}cstPostRuleOnlyOffset(e){const t=this.LA(0),r=e.location;r.startOffset<=t.startOffset==1?r.endOffset=t.endOffset:r.startOffset=NaN}cstPostTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];var n,i,s;i=t,s=e,void 0===(n=r).children[s]?n.children[s]=[i]:n.children[s].push(i),this.setNodeLocationFromToken(r.location,t)}cstPostNonTerminal(e,t){const r=this.CST_STACK[this.CST_STACK.length-1];!function(e,t,r){void 0===e.children[t]?e.children[t]=[r]:e.children[t].push(r)}(r,t,e),this.setNodeLocationFromNode(r.location,e.location)}getBaseCstVisitorConstructor(){if(Wi(this.baseCstVisitorConstructor)){const e=sl(this.className,st(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(Wi(this.baseCstVisitorWithDefaultsConstructor)){const e=function(e,t,r){const n=function(){};nl(n,e+"BaseSemanticsWithDefaults");const i=Object.create(r.prototype);return di(t,(e=>{i[e]=il})),(n.prototype=i).constructor=n,n}(this.className,st(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor}getLastExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-1]}getPreviousExplicitRuleShortName(){const e=this.RULE_STACK;return e[e.length-2]}getLastExplicitRuleOccurrenceIndex(){const e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]}},class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(e){if(!0!==this.selfAnalysisDone)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Al}LA(e){const t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Al:this.tokVector[t]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(e){this.currIdx=e}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVector.length-1}getLexerPosition(){return this.exportLexerState()}},class{initRecognizerEngine(e,t){if(this.className=this.constructor.name,this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=xa,this.subruleIdx=0,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},Pi(t,"serializedGrammar"))throw Error("The Parser's configuration can no longer contain a property.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0\n\tFor Further details.");if(x(e)){if(Vi(e))throw Error("A Token Vocabulary cannot be empty.\n\tNote that the first argument for the parser constructor\n\tis no longer a Token vector (since v4.0).");if("number"==typeof e[0].startOffset)throw Error("The Parser constructor no longer accepts a token vector as the first argument.\n\tSee: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0\n\tFor Further details.")}if(x(e))this.tokensMap=Ji(e,((e,t)=>(e[t.name]=t,e)),{});else if(Pi(e,"modes")&&mi(kt(Fi(e.modes)),Ca)){const t=ns(kt(Fi(e.modes)));this.tokensMap=Ji(t,((e,t)=>(e[t.name]=t,e)),{})}else{if(!T(e))throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap=sn(e)}this.tokensMap.EOF=ja;const r=mi(Pi(e,"modes")?kt(Fi(e.modes)):Fi(e),(e=>Vi(e.categoryMatches)));this.tokenMatcher=r?xa:ya,_a(Fi(this.tokensMap))}defineRule(e,t,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${e}> may not be defined after the 'performSelfAnalysis' method has been called'\nMake sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);const n=Pi(r,"resyncEnabled")?r.resyncEnabled:yl.resyncEnabled,i=Pi(r,"recoveryValueFunc")?r.recoveryValueFunc:yl.recoveryValueFunc,s=this.ruleShortNameIdx<<12;let a;return this.ruleShortNameIdx++,this.shortRuleNameToFull[s]=e,this.fullRuleNameToShort[e]=s,a=!0===this.outputCst?function(...r){try{this.ruleInvocationStateUpdate(s,e,this.subruleIdx),t.apply(this,r);const n=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(n),n}catch(a){return this.invokeRuleCatch(a,n,i)}finally{this.ruleFinallyStateUpdate()}}:function(...r){try{return this.ruleInvocationStateUpdate(s,e,this.subruleIdx),t.apply(this,r)}catch(a){return this.invokeRuleCatch(a,n,i)}finally{this.ruleFinallyStateUpdate()}},Object.assign(a,{ruleName:e,originalGrammarAction:t})}invokeRuleCatch(e,t,r){const n=1===this.RULE_STACK.length,i=t&&!this.isBackTracking()&&this.recoveryEnabled;if(No(e)){const t=e;if(i){const n=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(n)){if(t.resyncedTokens=this.reSyncTo(n),this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];return e.recoveredNode=!0,e}return r(e)}if(this.outputCst){const e=this.CST_STACK[this.CST_STACK.length-1];e.recoveredNode=!0,t.partialCstResult=e}throw t}if(n)return this.moveToTerminatedState(),r(e);throw t}throw e}optionInternal(e,t){const r=this.getKeyForAutomaticLookahead(512,t);return this.optionInternalLogic(e,t,r)}optionInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof e){n=e.DEF;const t=e.GATE;if(void 0!==t){const e=i;i=()=>t.call(this)&&e.call(this)}}else n=e;if(!0===i.call(this))return n.call(this)}atLeastOneInternal(e,t){const r=this.getKeyForAutomaticLookahead(Yo,e);return this.atLeastOneInternalLogic(e,t,r)}atLeastOneInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof t){n=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else n=t;if(!0!==i.call(this))throw this.raiseEarlyExitException(e,oo.REPETITION_MANDATORY,t.ERR_MSG);{let e=this.doSingleRepetition(n);for(;!0===i.call(this)&&!0===e;)e=this.doSingleRepetition(n)}this.attemptInRepetitionRecovery(this.atLeastOneInternal,[e,t],i,Yo,e,ro)}atLeastOneSepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(Ko,e);this.atLeastOneSepFirstInternalLogic(e,t,r)}atLeastOneSepFirstInternalLogic(e,t,r){const n=t.DEF,i=t.SEP;if(!0!==this.getLaFuncFromCache(r).call(this))throw this.raiseEarlyExitException(e,oo.REPETITION_MANDATORY_WITH_SEPARATOR,t.ERR_MSG);{n.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,n,no],t,Ko,e,no)}}manyInternal(e,t){const r=this.getKeyForAutomaticLookahead(768,e);return this.manyInternalLogic(e,t,r)}manyInternalLogic(e,t,r){let n,i=this.getLaFuncFromCache(r);if("function"!=typeof t){n=t.DEF;const e=t.GATE;if(void 0!==e){const t=i;i=()=>e.call(this)&&t.call(this)}}else n=t;let s=!0;for(;!0===i.call(this)&&!0===s;)s=this.doSingleRepetition(n);this.attemptInRepetitionRecovery(this.manyInternal,[e,t],i,768,e,eo,s)}manySepFirstInternal(e,t){const r=this.getKeyForAutomaticLookahead(qo,e);this.manySepFirstInternalLogic(e,t,r)}manySepFirstInternalLogic(e,t,r){const n=t.DEF,i=t.SEP;if(!0===this.getLaFuncFromCache(r).call(this)){n.call(this);const t=()=>this.tokenMatcher(this.LA(1),i);for(;!0===this.tokenMatcher(this.LA(1),i);)this.CONSUME(i),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,i,t,n,to],t,qo,e,to)}}repetitionSepSecondInternal(e,t,r,n,i){for(;r();)this.CONSUME(t),n.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[e,t,r,n,i],r,Ko,e,i)}doSingleRepetition(e){const t=this.getLexerPosition();return e.call(this),this.getLexerPosition()>t}orInternal(e,t){const r=this.getKeyForAutomaticLookahead(256,t),n=x(e)?e:e.DEF,i=this.getLaFuncFromCache(r).call(this,n);if(void 0!==i)return n[i].ALT.call(this);this.raiseNoAltException(t,e.ERR_MSG)}ruleFinallyStateUpdate(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),0===this.RULE_STACK.length&&!1===this.isAtEndOfInput()){const e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new Qo(t,e))}}subruleInternal(e,t,r){let n;try{const i=void 0!==r?r.ARGS:void 0;return this.subruleIdx=t,n=e.apply(this,i),this.cstPostNonTerminal(n,void 0!==r&&void 0!==r.LABEL?r.LABEL:e.ruleName),n}catch(i){throw this.subruleInternalError(i,r,e.ruleName)}}subruleInternalError(e,t,r){throw No(e)&&void 0!==e.partialCstResult&&(this.cstPostNonTerminal(e.partialCstResult,void 0!==t&&void 0!==t.LABEL?t.LABEL:r),delete e.partialCstResult),e}consumeInternal(e,t,r){let n;try{const t=this.LA(1);!0===this.tokenMatcher(t,e)?(this.consumeToken(),n=t):this.consumeInternalError(e,t,r)}catch(i){n=this.consumeInternalRecovery(e,t,i)}return this.cstPostTerminal(void 0!==r&&void 0!==r.LABEL?r.LABEL:e.name,n),n}consumeInternalError(e,t,r){let n;const i=this.LA(0);throw n=void 0!==r&&r.ERR_MSG?r.ERR_MSG:this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:i,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new Go(n,t,i))}consumeInternalRecovery(e,t,r){if(!this.recoveryEnabled||"MismatchedTokenException"!==r.name||this.isBackTracking())throw r;{const i=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,i)}catch(n){throw n.name===jo?r:n}}}saveRecogState(){const e=this.errors,t=sn(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}}reloadRecogState(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK}ruleInvocationStateUpdate(e,t,r){this.RULE_OCCURRENCE_STACK.push(r),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t)}isBackTracking(){return 0!==this.isBackTrackingStack.length}getCurrRuleFullName(){const e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]}shortRuleNameToFullName(e){return this.shortRuleNameToFull[e]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ja)}reset(){this.resetLexerState(),this.subruleIdx=0,this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]}},class{ACTION(e){return e.call(this)}consume(e,t,r){return this.consumeInternal(t,e,r)}subrule(e,t,r){return this.subruleInternal(t,e,r)}option(e,t){return this.optionInternal(t,e)}or(e,t){return this.orInternal(t,e)}many(e,t){return this.manyInternal(e,t)}atLeastOne(e,t){return this.atLeastOneInternal(e,t)}CONSUME(e,t){return this.consumeInternal(e,0,t)}CONSUME1(e,t){return this.consumeInternal(e,1,t)}CONSUME2(e,t){return this.consumeInternal(e,2,t)}CONSUME3(e,t){return this.consumeInternal(e,3,t)}CONSUME4(e,t){return this.consumeInternal(e,4,t)}CONSUME5(e,t){return this.consumeInternal(e,5,t)}CONSUME6(e,t){return this.consumeInternal(e,6,t)}CONSUME7(e,t){return this.consumeInternal(e,7,t)}CONSUME8(e,t){return this.consumeInternal(e,8,t)}CONSUME9(e,t){return this.consumeInternal(e,9,t)}SUBRULE(e,t){return this.subruleInternal(e,0,t)}SUBRULE1(e,t){return this.subruleInternal(e,1,t)}SUBRULE2(e,t){return this.subruleInternal(e,2,t)}SUBRULE3(e,t){return this.subruleInternal(e,3,t)}SUBRULE4(e,t){return this.subruleInternal(e,4,t)}SUBRULE5(e,t){return this.subruleInternal(e,5,t)}SUBRULE6(e,t){return this.subruleInternal(e,6,t)}SUBRULE7(e,t){return this.subruleInternal(e,7,t)}SUBRULE8(e,t){return this.subruleInternal(e,8,t)}SUBRULE9(e,t){return this.subruleInternal(e,9,t)}OPTION(e){return this.optionInternal(e,0)}OPTION1(e){return this.optionInternal(e,1)}OPTION2(e){return this.optionInternal(e,2)}OPTION3(e){return this.optionInternal(e,3)}OPTION4(e){return this.optionInternal(e,4)}OPTION5(e){return this.optionInternal(e,5)}OPTION6(e){return this.optionInternal(e,6)}OPTION7(e){return this.optionInternal(e,7)}OPTION8(e){return this.optionInternal(e,8)}OPTION9(e){return this.optionInternal(e,9)}OR(e){return this.orInternal(e,0)}OR1(e){return this.orInternal(e,1)}OR2(e){return this.orInternal(e,2)}OR3(e){return this.orInternal(e,3)}OR4(e){return this.orInternal(e,4)}OR5(e){return this.orInternal(e,5)}OR6(e){return this.orInternal(e,6)}OR7(e){return this.orInternal(e,7)}OR8(e){return this.orInternal(e,8)}OR9(e){return this.orInternal(e,9)}MANY(e){this.manyInternal(0,e)}MANY1(e){this.manyInternal(1,e)}MANY2(e){this.manyInternal(2,e)}MANY3(e){this.manyInternal(3,e)}MANY4(e){this.manyInternal(4,e)}MANY5(e){this.manyInternal(5,e)}MANY6(e){this.manyInternal(6,e)}MANY7(e){this.manyInternal(7,e)}MANY8(e){this.manyInternal(8,e)}MANY9(e){this.manyInternal(9,e)}MANY_SEP(e){this.manySepFirstInternal(0,e)}MANY_SEP1(e){this.manySepFirstInternal(1,e)}MANY_SEP2(e){this.manySepFirstInternal(2,e)}MANY_SEP3(e){this.manySepFirstInternal(3,e)}MANY_SEP4(e){this.manySepFirstInternal(4,e)}MANY_SEP5(e){this.manySepFirstInternal(5,e)}MANY_SEP6(e){this.manySepFirstInternal(6,e)}MANY_SEP7(e){this.manySepFirstInternal(7,e)}MANY_SEP8(e){this.manySepFirstInternal(8,e)}MANY_SEP9(e){this.manySepFirstInternal(9,e)}AT_LEAST_ONE(e){this.atLeastOneInternal(0,e)}AT_LEAST_ONE1(e){return this.atLeastOneInternal(1,e)}AT_LEAST_ONE2(e){this.atLeastOneInternal(2,e)}AT_LEAST_ONE3(e){this.atLeastOneInternal(3,e)}AT_LEAST_ONE4(e){this.atLeastOneInternal(4,e)}AT_LEAST_ONE5(e){this.atLeastOneInternal(5,e)}AT_LEAST_ONE6(e){this.atLeastOneInternal(6,e)}AT_LEAST_ONE7(e){this.atLeastOneInternal(7,e)}AT_LEAST_ONE8(e){this.atLeastOneInternal(8,e)}AT_LEAST_ONE9(e){this.atLeastOneInternal(9,e)}AT_LEAST_ONE_SEP(e){this.atLeastOneSepFirstInternal(0,e)}AT_LEAST_ONE_SEP1(e){this.atLeastOneSepFirstInternal(1,e)}AT_LEAST_ONE_SEP2(e){this.atLeastOneSepFirstInternal(2,e)}AT_LEAST_ONE_SEP3(e){this.atLeastOneSepFirstInternal(3,e)}AT_LEAST_ONE_SEP4(e){this.atLeastOneSepFirstInternal(4,e)}AT_LEAST_ONE_SEP5(e){this.atLeastOneSepFirstInternal(5,e)}AT_LEAST_ONE_SEP6(e){this.atLeastOneSepFirstInternal(6,e)}AT_LEAST_ONE_SEP7(e){this.atLeastOneSepFirstInternal(7,e)}AT_LEAST_ONE_SEP8(e){this.atLeastOneSepFirstInternal(8,e)}AT_LEAST_ONE_SEP9(e){this.atLeastOneSepFirstInternal(9,e)}RULE(e,t,r=yl){if(Oi(this.definedRulesNames,e)){const t={message:qa.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),type:xl.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(t)}this.definedRulesNames.push(e);const n=this.defineRule(e,t,r);return this[e]=n,n}OVERRIDE_RULE(e,t,r=yl){const n=function(e,t,r){const n=[];let i;return Oi(t,e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${r}<-as it is not defined in any of the super grammars `,n.push({message:i,type:xl.INVALID_RULE_OVERRIDE,ruleName:e})),n}(e,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(n);const i=this.defineRule(e,t,r);return this[e]=i,i}BACKTRACK(e,t){return function(){this.isBackTrackingStack.push(1);const r=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if(No(n))return!1;throw n}finally{this.reloadRecogState(r),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return _i(Fi(this.gastProductionsCache),xs)}},class{initErrorHandler(e){this._errors=[],this.errorMessageProvider=Pi(e,"errorMessageProvider")?e.errorMessageProvider:vl.errorMessageProvider}SAVE_ERROR(e){if(No(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:sn(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return sn(this._errors)}set errors(e){this._errors=e}raiseEarlyExitException(e,t,r){const n=this.getCurrRuleFullName(),i=xo(e,this.getGAstProductions()[n],t,this.maxLookahead)[0],s=[];for(let o=1;o<=this.maxLookahead;o++)s.push(this.LA(o));const a=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:i,actual:s,previous:this.LA(0),customUserDescription:r,ruleName:n});throw this.SAVE_ERROR(new Vo(a,this.LA(1),this.LA(0)))}raiseNoAltException(e,t){const r=this.getCurrRuleFullName(),n=yo(e,this.getGAstProductions()[r],this.maxLookahead),i=[];for(let o=1;o<=this.maxLookahead;o++)i.push(this.LA(o));const s=this.LA(0),a=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:n,actual:i,previous:s,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new zo(a,this.LA(1),s))}},class{initContentAssist(){}computeContentAssist(e,t){const r=this.gastProductionsCache[e];if(Wi(r))throw Error(`Rule ->${e}<- does not exist in this grammar.`);return so([r],t,this.tokenMatcher,this.maxLookahead)}getNextPossibleTokenTypes(e){const t=bi(e.ruleStack),r=this.getGAstProductions()[t];return new Za(r,e).startWalking()}},class{initGastRecorder(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",(()=>{for(let e=0;e<10;e++){const t=e>0?e:"";this[`CONSUME${t}`]=function(t,r){return this.consumeInternalRecord(t,e,r)},this[`SUBRULE${t}`]=function(t,r){return this.subruleInternalRecord(t,e,r)},this[`OPTION${t}`]=function(t){return this.optionInternalRecord(t,e)},this[`OR${t}`]=function(t){return this.orInternalRecord(t,e)},this[`MANY${t}`]=function(t){this.manyInternalRecord(e,t)},this[`MANY_SEP${t}`]=function(t){this.manySepFirstInternalRecord(e,t)},this[`AT_LEAST_ONE${t}`]=function(t){this.atLeastOneInternalRecord(e,t)},this[`AT_LEAST_ONE_SEP${t}`]=function(t){this.atLeastOneSepFirstInternalRecord(e,t)}}this.consume=function(e,t,r){return this.consumeInternalRecord(t,e,r)},this.subrule=function(e,t,r){return this.subruleInternalRecord(t,e,r)},this.option=function(e,t){return this.optionInternalRecord(t,e)},this.or=function(e,t){return this.orInternalRecord(t,e)},this.many=function(e,t){this.manyInternalRecord(e,t)},this.atLeastOne=function(e,t){this.atLeastOneInternalRecord(e,t)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD}))}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",(()=>{const e=this;for(let t=0;t<10;t++){const r=t>0?t:"";delete e[`CONSUME${r}`],delete e[`SUBRULE${r}`],delete e[`OPTION${r}`],delete e[`OR${r}`],delete e[`MANY${r}`],delete e[`MANY_SEP${r}`],delete e[`AT_LEAST_ONE${r}`],delete e[`AT_LEAST_ONE_SEP${r}`]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA}))}ACTION_RECORD(e){}BACKTRACK_RECORD(e,t){return()=>!0}LA_RECORD(e){return Al}topLevelRuleRecord(e,t){try{const r=new us({definition:[],name:e});return r.name=e,this.recordingProdStack.push(r),t.call(this),this.recordingProdStack.pop(),r}catch(r){if(!0!==r.KNOWN_RECORDER_ERROR)try{r.message=r.message+'\n\t This error was thrown during the "grammar recording phase" For more info see:\n\thttps://chevrotain.io/docs/guide/internals.html#grammar-recording'}catch(n){throw r}throw r}}optionInternalRecord(e,t){return pl.call(this,ps,e,t)}atLeastOneInternalRecord(e,t){pl.call(this,fs,t,e)}atLeastOneSepFirstInternalRecord(e,t){pl.call(this,ms,t,e,!0)}manyInternalRecord(e,t){pl.call(this,gs,t,e)}manySepFirstInternalRecord(e,t){pl.call(this,As,t,e,!0)}orInternalRecord(e,t){return fl.call(this,e,t)}subruleInternalRecord(e,t,r){if(gl(t),!e||!1===Pi(e,"ruleName")){const r=new Error(` argument is invalid expecting a Parser method reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}const n=ci(this.recordingProdStack),i=e.ruleName,s=new hs({idx:t,nonTerminalName:i,label:null==r?void 0:r.LABEL,referencedRule:void 0});return n.definition.push(s),this.outputCst?dl:ll}consumeInternalRecord(e,t,r){if(gl(t),!Ma(e)){const r=new Error(` argument is invalid expecting a TokenType reference but got: <${JSON.stringify(e)}>\n inside top level rule: <${this.recordingProdStack[0].name}>`);throw r.KNOWN_RECORDER_ERROR=!0,r}const n=ci(this.recordingProdStack),i=new ys({idx:t,terminalType:e,label:null==r?void 0:r.LABEL});return n.definition.push(i),ul}},class{initPerformanceTracer(e){if(Pi(e,"traceInitPerf")){const t=e.traceInitPerf,r="number"==typeof t;this.traceInitMaxIdent=r?t:1/0,this.traceInitPerf=r?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=vl.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(e,t){if(!0===this.traceInitPerf){this.traceInitIndent++;const r=new Array(this.traceInitIndent+1).join("\t");this.traceInitIndent`);const{time:n,value:i}=as(t),s=n>10?console.warn:console.log;return this.traceInitIndent time: ${n}ms`),this.traceInitIndent--,i}return t()}}].forEach((e=>{const t=e.prototype;Object.getOwnPropertyNames(t).forEach((r=>{if("constructor"===r)return;const n=Object.getOwnPropertyDescriptor(t,r);n&&(n.get||n.set)?Object.defineProperty(El.prototype,r,n):El.prototype[r]=e.prototype[r]}))}));return{CstParser:class extends _l{constructor(e,t=vl){const r=sn(t);r.outputCst=!0,super(e,r)}},Lexer:Pa,createToken:Ha}})();t.CstParser=n,t.Lexer=i,t.createToken=s},29234:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});class r{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}}class n{constructor(e,t,r,n){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(e.buffer,e.byteOffset+t,r),this._littleEndian=n,this._offset=0}_nextUint8(){const e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){const e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){const e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){const e=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){const e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint8Array(e){const t=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,e);return this._offset+=e,t}_skip(e){return this._offset+=e,this}_scan(e,t){void 0===t&&(t=0);const r=this._offset;let n=0;for(;this._dataView.getUint8(this._offset)!==t&&n{"use strict";const lottie=(()=>{if("undefined"==typeof navigator||"undefined"==typeof document)return{};const svgNS="http://www.w3.org/2000/svg";let locationHref="",_useWebWorker=!1;const initialDefaultFrame=-999999,setWebWorker=e=>{_useWebWorker=!!e},getWebWorker=()=>_useWebWorker,setLocationHref=e=>{locationHref=e},getLocationHref=()=>locationHref;function createTag(e){return document.createElement(e)}function extendPrototype(e,t){var r,n,i=e.length;for(r=0;r1?r[1]=1:r[1]<=0&&(r[1]=0),HSVtoRGB(r[0],r[1],r[2])}function addBrightnessToRGB(e,t){var r=RGBtoHSV(255*e[0],255*e[1],255*e[2]);return r[2]+=t,r[2]>1?r[2]=1:r[2]<0&&(r[2]=0),HSVtoRGB(r[0],r[1],r[2])}function addHueToRGB(e,t){var r=RGBtoHSV(255*e[0],255*e[1],255*e[2]);return r[0]+=t/360,r[0]>1?r[0]-=1:r[0]<0&&(r[0]+=1),HSVtoRGB(r[0],r[1],r[2])}!function(){var e,t,r=[];for(e=0;e<256;e+=1)t=e.toString(16),r[e]=1===t.length?"0"+t:t}();const setSubframeEnabled=e=>{subframeEnabled=!!e},getSubframeEnabled=()=>subframeEnabled,setExpressionsPlugin=e=>{expressionsPlugin=e},getExpressionsPlugin=()=>expressionsPlugin,setDefaultCurveSegments=e=>{defaultCurveSegments=e},getDefaultCurveSegments=()=>defaultCurveSegments,setIdPrefix=e=>{idPrefix$1=e};function createNS(e){return document.createElementNS(svgNS,e)}const dataManager=function(){var e,t,r=1,n=[],i={onmessage:function(){},postMessage:function(t){e({data:t})}},s={postMessage:function(e){i.onmessage({data:e})}};function a(){t||((t=function(t){if(window.Worker&&window.Blob&&getWebWorker()){var r=new Blob(["var _workerSelf = self; self.onmessage = ",t.toString()],{type:"text/javascript"}),n=URL.createObjectURL(r);return new Worker(n)}return e=t,i}((function(e){if(s.dataManager||(s.dataManager=function(){function e(i,s){var a,o,l,c,h,d,p=i.length;for(o=0;o=0;t-=1)if("sh"===e[t].ty)if(e[t].ks.k.i)n(e[t].ks.k);else for(s=e[t].ks.k.length,i=0;ir[0]||!(r[0]>e[0])&&(e[1]>r[1]||!(r[1]>e[1])&&(e[2]>r[2]||!(r[2]>e[2])&&null))}var s,a=function(){var e=[4,4,14];function t(e){var t,r,n,i=e.length;for(t=0;t=0;r-=1)if("sh"===e[r].ty)if(e[r].ks.k.i)e[r].ks.k.c=e[r].closed;else for(i=e[r].ks.k.length,n=0;n500)&&(this._imageLoaded(),clearInterval(r)),t+=1}.bind(this),50)}function s(e){var t={assetData:e},r=n(e,this.assetsPath,this.path);return dataManager.loadData(r,function(e){t.img=e,this._footageLoaded()}.bind(this),function(){t.img={},this._footageLoaded()}.bind(this)),t}function a(){this._imageLoaded=t.bind(this),this._footageLoaded=r.bind(this),this.testImageLoaded=i.bind(this),this.createFootageData=s.bind(this),this.assetsPath="",this.path="",this.totalImages=0,this.totalFootages=0,this.loadedAssets=0,this.loadedFootagesCount=0,this.imagesLoadedCb=null,this.images=[]}return a.prototype={loadAssets:function(e,t){var r;this.imagesLoadedCb=t;var n=e.length;for(r=0;r{renderers[e]=t};function getRenderer(e){return renderers[e]}const AnimationItem=function(){this._cbs=[],this.name="",this.path="",this.isLoaded=!1,this.currentFrame=0,this.currentRawFrame=0,this.firstFrame=0,this.totalFrames=0,this.frameRate=0,this.frameMult=0,this.playSpeed=1,this.playDirection=1,this.playCount=0,this.animationData={},this.assets=[],this.isPaused=!0,this.autoplay=!1,this.loop=!0,this.renderer=null,this.animationID=createElementID(),this.assetsPath="",this.timeCompleted=0,this.segmentPos=0,this.isSubframeEnabled=getSubframeEnabled(),this.segments=[],this._idle=!0,this._completedLoop=!1,this.projectInterface=ProjectInterface(),this.imagePreloader=new ImagePreloader,this.audioController=audioControllerFactory(),this.markers=[],this.configAnimation=this.configAnimation.bind(this),this.onSetupError=this.onSetupError.bind(this),this.onSegmentComplete=this.onSegmentComplete.bind(this),this.drawnFrameEvent=new BMEnterFrameEvent("drawnFrame",0,0,0)};extendPrototype([BaseEvent],AnimationItem),AnimationItem.prototype.setParams=function(e){(e.wrapper||e.container)&&(this.wrapper=e.wrapper||e.container);var t="svg";e.animType?t=e.animType:e.renderer&&(t=e.renderer);const r=getRenderer(t);this.renderer=new r(this,e.rendererSettings),this.imagePreloader.setCacheType(t,this.renderer.globalData.defs),this.renderer.setProjectInterface(this.projectInterface),this.animType=t,""===e.loop||null===e.loop||void 0===e.loop||!0===e.loop?this.loop=!0:!1===e.loop?this.loop=!1:this.loop=parseInt(e.loop,10),this.autoplay=!("autoplay"in e)||e.autoplay,this.name=e.name?e.name:"",this.autoloadSegments=!Object.prototype.hasOwnProperty.call(e,"autoloadSegments")||e.autoloadSegments,this.assetsPath=e.assetsPath,this.initialSegment=e.initialSegment,e.audioFactory&&this.audioController.setAudioFactory(e.audioFactory),e.animationData?this.setupAnimation(e.animationData):e.path&&(-1!==e.path.lastIndexOf("\\")?this.path=e.path.substr(0,e.path.lastIndexOf("\\")+1):this.path=e.path.substr(0,e.path.lastIndexOf("/")+1),this.fileName=e.path.substr(e.path.lastIndexOf("/")+1),this.fileName=this.fileName.substr(0,this.fileName.lastIndexOf(".json")),dataManager.loadAnimation(e.path,this.configAnimation,this.onSetupError))},AnimationItem.prototype.onSetupError=function(){this.trigger("data_failed")},AnimationItem.prototype.setupAnimation=function(e){dataManager.completeAnimation(e,this.configAnimation)},AnimationItem.prototype.setData=function(e,t){t&&"object"!=typeof t&&(t=JSON.parse(t));var r={wrapper:e,animationData:t},n=e.attributes;r.path=n.getNamedItem("data-animation-path")?n.getNamedItem("data-animation-path").value:n.getNamedItem("data-bm-path")?n.getNamedItem("data-bm-path").value:n.getNamedItem("bm-path")?n.getNamedItem("bm-path").value:"",r.animType=n.getNamedItem("data-anim-type")?n.getNamedItem("data-anim-type").value:n.getNamedItem("data-bm-type")?n.getNamedItem("data-bm-type").value:n.getNamedItem("bm-type")?n.getNamedItem("bm-type").value:n.getNamedItem("data-bm-renderer")?n.getNamedItem("data-bm-renderer").value:n.getNamedItem("bm-renderer")?n.getNamedItem("bm-renderer").value:"canvas";var i=n.getNamedItem("data-anim-loop")?n.getNamedItem("data-anim-loop").value:n.getNamedItem("data-bm-loop")?n.getNamedItem("data-bm-loop").value:n.getNamedItem("bm-loop")?n.getNamedItem("bm-loop").value:"";"false"===i?r.loop=!1:"true"===i?r.loop=!0:""!==i&&(r.loop=parseInt(i,10));var s=n.getNamedItem("data-anim-autoplay")?n.getNamedItem("data-anim-autoplay").value:n.getNamedItem("data-bm-autoplay")?n.getNamedItem("data-bm-autoplay").value:!n.getNamedItem("bm-autoplay")||n.getNamedItem("bm-autoplay").value;r.autoplay="false"!==s,r.name=n.getNamedItem("data-name")?n.getNamedItem("data-name").value:n.getNamedItem("data-bm-name")?n.getNamedItem("data-bm-name").value:n.getNamedItem("bm-name")?n.getNamedItem("bm-name").value:"","false"===(n.getNamedItem("data-anim-prerender")?n.getNamedItem("data-anim-prerender").value:n.getNamedItem("data-bm-prerender")?n.getNamedItem("data-bm-prerender").value:n.getNamedItem("bm-prerender")?n.getNamedItem("bm-prerender").value:"")&&(r.prerender=!1),this.setParams(r)},AnimationItem.prototype.includeLayers=function(e){e.op>this.animationData.op&&(this.animationData.op=e.op,this.totalFrames=Math.floor(e.op-this.animationData.ip));var t,r,n=this.animationData.layers,i=n.length,s=e.layers,a=s.length;for(r=0;rthis.timeCompleted&&(this.currentFrame=this.timeCompleted),this.trigger("enterFrame"),this.renderFrame(),this.trigger("drawnFrame")},AnimationItem.prototype.renderFrame=function(){if(!1!==this.isLoaded&&this.renderer)try{this.renderer.renderFrame(this.currentFrame+this.firstFrame)}catch(e){this.triggerRenderFrameError(e)}},AnimationItem.prototype.play=function(e){e&&this.name!==e||!0===this.isPaused&&(this.isPaused=!1,this.trigger("_pause"),this.audioController.resume(),this._idle&&(this._idle=!1,this.trigger("_active")))},AnimationItem.prototype.pause=function(e){e&&this.name!==e||!1===this.isPaused&&(this.isPaused=!0,this.trigger("_play"),this._idle=!0,this.trigger("_idle"),this.audioController.pause())},AnimationItem.prototype.togglePause=function(e){e&&this.name!==e||(!0===this.isPaused?this.play():this.pause())},AnimationItem.prototype.stop=function(e){e&&this.name!==e||(this.pause(),this.playCount=0,this._completedLoop=!1,this.setCurrentRawFrameValue(0))},AnimationItem.prototype.getMarkerData=function(e){for(var t,r=0;r=this.totalFrames-1&&this.frameModifier>0?this.loop&&this.playCount!==this.loop?t>=this.totalFrames?(this.playCount+=1,this.checkSegments(t%this.totalFrames)||(this.setCurrentRawFrameValue(t%this.totalFrames),this._completedLoop=!0,this.trigger("loopComplete"))):this.setCurrentRawFrameValue(t):this.checkSegments(t>this.totalFrames?t%this.totalFrames:0)||(r=!0,t=this.totalFrames-1):t<0?this.checkSegments(t%this.totalFrames)||(!this.loop||this.playCount--<=0&&!0!==this.loop?(r=!0,t=0):(this.setCurrentRawFrameValue(this.totalFrames+t%this.totalFrames),this._completedLoop?this.trigger("loopComplete"):this._completedLoop=!0)):this.setCurrentRawFrameValue(t),r&&(this.setCurrentRawFrameValue(t),this.pause(),this.trigger("complete"))}},AnimationItem.prototype.adjustSegment=function(e,t){this.playCount=0,e[1]0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(-1)),this.totalFrames=e[0]-e[1],this.timeCompleted=this.totalFrames,this.firstFrame=e[1],this.setCurrentRawFrameValue(this.totalFrames-.001-t)):e[1]>e[0]&&(this.frameModifier<0&&(this.playSpeed<0?this.setSpeed(-this.playSpeed):this.setDirection(1)),this.totalFrames=e[1]-e[0],this.timeCompleted=this.totalFrames,this.firstFrame=e[0],this.setCurrentRawFrameValue(.001+t)),this.trigger("segmentStart")},AnimationItem.prototype.setSegment=function(e,t){var r=-1;this.isPaused&&(this.currentRawFrame+this.firstFramet&&(r=t-e)),this.firstFrame=e,this.totalFrames=t-e,this.timeCompleted=this.totalFrames,-1!==r&&this.goToAndStop(r,!0)},AnimationItem.prototype.playSegments=function(e,t){if(t&&(this.segments.length=0),"object"==typeof e[0]){var r,n=e.length;for(r=0;r=0;r-=1)t[r].animation.destroy(e)},e.freeze=function(){a=!0},e.unfreeze=function(){a=!1,f()},e.setVolume=function(e,r){var i;for(i=0;i=.001?function(e,t,r,n){for(var i=0;i<4;++i){var s=c(t,r,n);if(0===s)return t;t-=(l(t,r,n)-e)/s}return t}(e,u,t,i):0===d?u:function(e,t,r,n,i){var s,a,o=0;do{(s=l(a=t+(r-t)/2,n,i)-e)>0?r=a:t=a}while(Math.abs(s)>1e-7&&++o<10);return a}(e,a,a+n,t,i)}},e}(),pooling={double:function(e){return e.concat(createSizedArray(e.length))}},poolFactory=function(e,t,r){var n=0,i=e,s=createSizedArray(i);return{newElement:function(){return n?s[n-=1]:t()},release:function(e){n===i&&(s=pooling.double(s),i*=2),r&&r(e),s[n]=e,n+=1}}},bezierLengthPool=poolFactory(8,(function(){return{addedLength:0,percents:createTypedArray("float32",getDefaultCurveSegments()),lengths:createTypedArray("float32",getDefaultCurveSegments())}})),segmentsLengthPool=poolFactory(8,(function(){return{lengths:[],totalLength:0}}),(function(e){var t,r=e.lengths.length;for(t=0;t-.001&&a<.001}var r=function(e,t,r,n){var i,s,a,o,l,c,h=getDefaultCurveSegments(),u=0,d=[],p=[],f=bezierLengthPool.newElement();for(a=r.length,i=0;ia?-1:1,c=!0;c;)if(n[s]<=a&&n[s+1]>a?(o=(a-n[s])/(n[s+1]-n[s]),c=!1):s+=l,s<0||s>=i-1){if(s===i-1)return r[s];c=!1}return r[s]+(r[s+1]-r[s])*o}var l=createTypedArray("float32",8);return{getSegmentsLength:function(e){var t,n=segmentsLengthPool.newElement(),i=e.c,s=e.v,a=e.o,o=e.i,l=e._length,c=n.lengths,h=0;for(t=0;t1&&(s=1);var h,u=o(s,c),d=o(a=a>1?1:a,c),p=t.length,f=1-u,m=1-d,g=f*f*f,A=u*f*f*3,v=u*u*f*3,y=u*u*u,x=f*f*m,b=u*f*m+f*u*m+f*f*d,E=u*u*m+f*u*d+u*f*d,_=u*u*d,S=f*m*m,M=u*m*m+f*d*m+f*m*d,w=u*d*m+f*d*d+u*m*d,C=u*d*d,T=m*m*m,I=d*m*m+m*d*m+m*m*d,B=d*d*m+m*d*d+d*m*d,R=d*d*d;for(h=0;hp?d>f?d-p-f:f-p-d:f>p?f-p-d:p-d-f)>-1e-4&&u<1e-4}}}const bez=bezFunction(),PropertyFactory=function(){var e=initialDefaultFrame,t=Math.abs;function r(e,t){var r,i=this.offsetTime;"multidimensional"===this.propType&&(r=createTypedArray("float32",this.pv.length));for(var s,a,o,l,c,h,u,d,p,f=t.lastIndex,m=f,g=this.keyframes.length-1,A=!0;A;){if(s=this.keyframes[m],a=this.keyframes[m+1],m===g-1&&e>=a.t-i){s.h&&(s=a),f=0;break}if(a.t-i>e){f=m;break}m=T||e=T?B.points.length-1:0;for(c=B.points[R].point.length,l=0;l=L&&D=T)r[0]=v[0],r[1]=v[1],r[2]=v[2];else if(e<=I)r[0]=s.s[0],r[1]=s.s[1],r[2]=s.s[2];else{var G=n(s.s),z=n(v);y=r,x=function(e,t,r){var n,i,s,a,o,l=[],c=e[0],h=e[1],u=e[2],d=e[3],p=t[0],f=t[1],m=t[2],g=t[3];return(i=c*p+h*f+u*m+d*g)<0&&(i=-i,p=-p,f=-f,m=-m,g=-g),1-i>1e-6?(n=Math.acos(i),s=Math.sin(n),a=Math.sin((1-r)*n)/s,o=Math.sin(r*n)/s):(a=1-r,o=r),l[0]=a*c+o*p,l[1]=a*h+o*f,l[2]=a*u+o*m,l[3]=a*d+o*g,l}(G,z,(e-I)/(T-I)),b=x[0],E=x[1],_=x[2],S=x[3],M=Math.atan2(2*E*S-2*b*_,1-2*E*E-2*_*_),w=Math.asin(2*b*E+2*_*S),C=Math.atan2(2*b*S-2*E*_,1-2*b*b-2*_*_),y[0]=M/degToRads,y[1]=w/degToRads,y[2]=C/degToRads}else for(m=0;m=T?h=1:e=n&&t>=n||this._caching.lastFrame=t&&(this._caching._lastKeyframeIndex=-1,this._caching.lastIndex=0);var i=this.interpolateValue(t,this._caching);this.pv=i}return this._caching.lastFrame=t,this.pv}function s(e){var r;if("unidimensional"===this.propType)r=e*this.mult,t(this.v-r)>1e-5&&(this.v=r,this._mdf=!0);else for(var n=0,i=this.v.length;n1e-5&&(this.v[n]=r,this._mdf=!0),n+=1}function a(){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length)if(this.lock)this.setVValue(this.pv);else{var e;this.lock=!0,this._mdf=this._isFirstFrame;var t=this.effectsSequence.length,r=this.kf?this.pv:this.data.k;for(e=0;e=this._maxLength&&this.doubleArrayLength(),r){case"v":s=this.v;break;case"i":s=this.i;break;case"o":s=this.o;break;default:s=[]}(!s[n]||s[n]&&!i)&&(s[n]=pointPool.newElement()),s[n][0]=e,s[n][1]=t},ShapePath.prototype.setTripleAt=function(e,t,r,n,i,s,a,o){this.setXYAt(e,t,"v",a,o),this.setXYAt(r,n,"o",a,o),this.setXYAt(i,s,"i",a,o)},ShapePath.prototype.reverse=function(){var e=new ShapePath;e.setPathData(this.c,this._length);var t=this.v,r=this.o,n=this.i,i=0;this.c&&(e.setTripleAt(t[0][0],t[0][1],n[0][0],n[0][1],r[0][0],r[0][1],0,!1),i=1);var s,a=this._length-1,o=this._length;for(s=i;s=p[p.length-1].t-this.offsetTime)n=p[p.length-1].s?p[p.length-1].s[0]:p[p.length-2].e[0],s=!0;else{for(var f,m,g,A=d,v=p.length-1,y=!0;y&&(f=p[A],!((m=p[A+1]).t-this.offsetTime>e));)A=m.t-this.offsetTime)h=1;else if(en&&t>n)||(this._caching.lastIndex=i0||e>-1e-6&&e<0?n(1e4*e)/1e4:e}function P(){var e=this.props;return"matrix("+R(e[0])+","+R(e[1])+","+R(e[4])+","+R(e[5])+","+R(e[12])+","+R(e[13])+")"}return function(){this.reset=i,this.rotate=s,this.rotateX=a,this.rotateY=o,this.rotateZ=l,this.skew=h,this.skewFromAxis=u,this.shear=c,this.scale=d,this.setTransform=p,this.translate=f,this.transform=m,this.applyToPoint=x,this.applyToX=b,this.applyToY=E,this.applyToZ=_,this.applyToPointArray=T,this.applyToTriplePoints=C,this.applyToPointStringified=I,this.toCSS=B,this.to2dCSS=P,this.clone=v,this.cloneFromProps=y,this.equals=A,this.inversePoints=w,this.inversePoint=M,this.getInverseMatrix=S,this._t=this.transform,this.isIdentity=g,this._identity=!0,this._identityCalculated=!1,this.props=createTypedArray("float32",16),this.reset()}}(),lottie={};function setLocation(e){setLocationHref(e)}function searchAnimations(){animationManager.searchAnimations()}function setSubframeRendering(e){setSubframeEnabled(e)}function setPrefix(e){setIdPrefix(e)}function loadAnimation(e){return animationManager.loadAnimation(e)}function setQuality(e){if("string"==typeof e)switch(e){case"high":setDefaultCurveSegments(200);break;default:case"medium":setDefaultCurveSegments(50);break;case"low":setDefaultCurveSegments(10)}else!isNaN(e)&&e>1&&setDefaultCurveSegments(e)}function inBrowser(){return"undefined"!=typeof navigator}function installPlugin(e,t){"expressions"===e&&setExpressionsPlugin(t)}function getFactory(e){switch(e){case"propertyFactory":return PropertyFactory;case"shapePropertyFactory":return ShapePropertyFactory;case"matrix":return Matrix;default:return null}}function checkReady(){"complete"===document.readyState&&(clearInterval(readyStateCheckInterval),searchAnimations())}function getQueryVariable(e){for(var t=queryString.split("&"),r=0;r=1?s.push({s:e-1,e:t-1}):(s.push({s:e,e:1}),s.push({s:0,e:t-1}));var a,o,l=[],c=s.length;for(a=0;an+r))h=o.s*i<=n?0:(o.s*i-n)/r,u=o.e*i>=n+r?1:(o.e*i-n)/r,l.push([h,u])}return l.length||l.push([0,0]),l},TrimModifier.prototype.releasePathsData=function(e){var t,r=e.length;for(t=0;t1?1+s:this.s.v<0?0+s:this.s.v+s)>(r=this.e.v>1?1+s:this.e.v<0?0+s:this.e.v+s)){var a=t;t=r,r=a}t=1e-4*Math.round(1e4*t),r=1e-4*Math.round(1e4*r),this.sValue=t,this.eValue=r}else t=this.sValue,r=this.eValue;var o,l,c,h,u,d=this.shapes.length,p=0;if(r===t)for(i=0;i=0;i-=1)if((f=this.shapes[i]).shape._mdf){for((m=f.localShapeCollection).releaseShapes(),2===this.m&&d>1?(A=this.calculateShapeEdges(t,r,f.totalShapeLength,x,p),x+=f.totalShapeLength):A=[[v,y]],l=A.length,o=0;o=1?g.push({s:f.totalShapeLength*(v-1),e:f.totalShapeLength*(y-1)}):(g.push({s:f.totalShapeLength*v,e:f.totalShapeLength}),g.push({s:0,e:f.totalShapeLength*(y-1)}));var b=this.addShapes(f,g[0]);if(g[0].s!==g[0].e){if(g.length>1)if(f.shape.paths.shapes[f.shape.paths._length-1].c){var E=b.pop();this.addPaths(b,m),b=this.addShapes(f,g[1],E)}else this.addPaths(b,m),b=this.addShapes(f,g[1]);this.addPaths(b,m)}}f.shape.paths=m}}},TrimModifier.prototype.addPaths=function(e,t){var r,n=e.length;for(r=0;rt.e){r.c=!1;break}t.s<=f&&t.e>=f+a.addedLength?(this.addSegment(d[n].v[i-1],d[n].o[i-1],d[n].i[i],d[n].v[i],r,o,g),g=!1):(c=bez.getNewSegment(d[n].v[i-1],d[n].v[i],d[n].o[i-1],d[n].i[i],(t.s-f)/a.addedLength,(t.e-f)/a.addedLength,l[i-1]),this.addSegmentFromArray(c,r,o,g),g=!1,r.c=!1),f+=a.addedLength,o+=1}if(d[n].c&&l.length){if(a=l[i-1],f<=t.e){var A=l[i-1].addedLength;t.s<=f&&t.e>=f+A?(this.addSegment(d[n].v[i-1],d[n].o[i-1],d[n].i[0],d[n].v[0],r,o,g),g=!1):(c=bez.getNewSegment(d[n].v[i-1],d[n].v[0],d[n].o[i-1],d[n].i[0],(t.s-f)/A,(t.e-f)/A,l[i-1]),this.addSegmentFromArray(c,r,o,g),g=!1,r.c=!1)}else r.c=!1;f+=a.addedLength,o+=1}if(r._length&&(r.setXYAt(r.v[h][0],r.v[h][1],"i",h),r.setXYAt(r.v[r._length-1][0],r.v[r._length-1][1],"o",r._length-1)),f>t.e)break;n=this.p.keyframes[this.p.keyframes.length-1].t?(n=this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length-1].t/r,0),i=this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length-1].t-.05)/r,0)):(n=this.p.pv,i=this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime-.01)/r,this.p.offsetTime));else if(this.px&&this.px.keyframes&&this.py.keyframes&&this.px.getValueAtTime&&this.py.getValueAtTime){n=[],i=[];var s=this.px,a=this.py;s._caching.lastFrame+s.offsetTime<=s.keyframes[0].t?(n[0]=s.getValueAtTime((s.keyframes[0].t+.01)/r,0),n[1]=a.getValueAtTime((a.keyframes[0].t+.01)/r,0),i[0]=s.getValueAtTime(s.keyframes[0].t/r,0),i[1]=a.getValueAtTime(a.keyframes[0].t/r,0)):s._caching.lastFrame+s.offsetTime>=s.keyframes[s.keyframes.length-1].t?(n[0]=s.getValueAtTime(s.keyframes[s.keyframes.length-1].t/r,0),n[1]=a.getValueAtTime(a.keyframes[a.keyframes.length-1].t/r,0),i[0]=s.getValueAtTime((s.keyframes[s.keyframes.length-1].t-.01)/r,0),i[1]=a.getValueAtTime((a.keyframes[a.keyframes.length-1].t-.01)/r,0)):(n=[s.pv,a.pv],i[0]=s.getValueAtTime((s._caching.lastFrame+s.offsetTime-.01)/r,s.offsetTime),i[1]=a.getValueAtTime((a._caching.lastFrame+a.offsetTime-.01)/r,a.offsetTime))}else n=i=e;this.v.rotate(-Math.atan2(n[1]-i[1],n[0]-i[0]))}this.data.p&&this.data.p.s?this.data.p.z?this.v.translate(this.px.v,this.py.v,-this.pz.v):this.v.translate(this.px.v,this.py.v,0):this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2])}this.frameId=this.elem.globalData.frameId}},precalculateMatrix:function(){if(!this.a.k&&(this.pre.translate(-this.a.v[0],-this.a.v[1],this.a.v[2]),this.appliedTransformations=1,!this.s.effectsSequence.length)){if(this.pre.scale(this.s.v[0],this.s.v[1],this.s.v[2]),this.appliedTransformations=2,this.sk){if(this.sk.effectsSequence.length||this.sa.effectsSequence.length)return;this.pre.skewFromAxis(-this.sk.v,this.sa.v),this.appliedTransformations=3}this.r?this.r.effectsSequence.length||(this.pre.rotate(-this.r.v),this.appliedTransformations=4):this.rz.effectsSequence.length||this.ry.effectsSequence.length||this.rx.effectsSequence.length||this.or.effectsSequence.length||(this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]),this.appliedTransformations=4)}},autoOrient:function(){}},extendPrototype([DynamicPropertyContainer],t),t.prototype.addDynamicProperty=function(e){this._addDynamicProperty(e),this.elem.addDynamicProperty(e),this._isDirty=!0},t.prototype._addDynamicProperty=DynamicPropertyContainer.prototype.addDynamicProperty,{getTransformProperty:function(e,r,n){return new t(e,r,n)}}}();function RepeaterModifier(){}function RoundCornersModifier(){}function getFontProperties(e){for(var t=e.fStyle?e.fStyle.split(" "):[],r="normal",n="normal",i=t.length,s=0;s0;)r-=1,this._elements.unshift(t[r]);this.dynamicProperties.length?this.k=!0:this.getValue(!0)},RepeaterModifier.prototype.resetElements=function(e){var t,r=e.length;for(t=0;t0?Math.floor(d):Math.ceil(d),m=this.pMatrix.props,g=this.rMatrix.props,A=this.sMatrix.props;this.pMatrix.reset(),this.rMatrix.reset(),this.sMatrix.reset(),this.tMatrix.reset(),this.matrix.reset();var v,y,x=0;if(d>0){for(;xf;)this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!0),x-=1;p&&(this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,-p,!0),x-=p)}for(n=1===this.data.m?0:this._currentCopies-1,i=1===this.data.m?1:-1,s=this._currentCopies;s;){if(y=(r=(t=this.elemsData[n].it)[t.length-1].transform.mProps.v.props).length,t[t.length-1].transform.mProps._mdf=!0,t[t.length-1].transform.op._mdf=!0,t[t.length-1].transform.op.v=1===this._currentCopies?this.so.v:this.so.v+(this.eo.v-this.so.v)*(n/(this._currentCopies-1)),0!==x){for((0!==n&&1===i||n!==this._currentCopies-1&&-1===i)&&this.applyTransforms(this.pMatrix,this.rMatrix,this.sMatrix,this.tr,1,!1),this.matrix.transform(g[0],g[1],g[2],g[3],g[4],g[5],g[6],g[7],g[8],g[9],g[10],g[11],g[12],g[13],g[14],g[15]),this.matrix.transform(A[0],A[1],A[2],A[3],A[4],A[5],A[6],A[7],A[8],A[9],A[10],A[11],A[12],A[13],A[14],A[15]),this.matrix.transform(m[0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m[9],m[10],m[11],m[12],m[13],m[14],m[15]),v=0;v{e.helper=s(e),e.cache={}})),void(this.fonts=e.list);var r,n=e.list,a=n.length,o=a;for(r=0;r0&&(h=!1),h){var u=createTag("style");u.setAttribute("f-forigin",n[r].fOrigin),u.setAttribute("f-origin",n[r].origin),u.setAttribute("f-family",n[r].fFamily),u.type="text/css",u.innerText="@font-face {font-family: "+n[r].fFamily+"; font-style: normal; src: url('"+n[r].fPath+"');}",t.appendChild(u)}}else if("g"===n[r].fOrigin||1===n[r].origin){for(l=document.querySelectorAll('link[f-forigin="g"], link[f-origin="1"]'),c=0;ce?!0!==this.isInRange&&(this.globalData._mdf=!0,this._mdf=!0,this.isInRange=!0,this.show()):!1!==this.isInRange&&(this.globalData._mdf=!0,this.isInRange=!1,this.hide())},renderRenderable:function(){var e,t=this.renderableComponents.length;for(e=0;e0&&(this.maskElement.setAttribute("id",g),this.element.maskedElement.setAttribute(v,"url("+getLocationHref()+"#"+g+")"),s.appendChild(this.maskElement)),this.viewData.length&&this.element.addRenderableComponent(this)}FootageElement.prototype.prepareFrame=function(){},extendPrototype([RenderableElement,BaseElement,FrameElement],FootageElement),FootageElement.prototype.getBaseElement=function(){return null},FootageElement.prototype.renderFrame=function(){},FootageElement.prototype.destroy=function(){},FootageElement.prototype.initExpressions=function(){this.layerInterface=FootageInterface(this)},FootageElement.prototype.getFootageData=function(){return this.footageData},AudioElement.prototype.prepareFrame=function(e){if(this.prepareRenderableFrame(e,!0),this.prepareProperties(e,!0),this.tm._placeholder)this._currentTime=e/this.data.sr;else{var t=this.tm.v;this._currentTime=t}this._volume=this.lv.v[0];var r=this._volume*this._volumeMultiplier;this._previousVolume!==r&&(this._previousVolume=r,this.audio.volume(r))},extendPrototype([RenderableElement,BaseElement,FrameElement],AudioElement),AudioElement.prototype.renderFrame=function(){this.isInRange&&this._canPlay&&(this._isPlaying?(!this.audio.playing()||Math.abs(this._currentTime/this.globalData.frameRate-this.audio.seek())>.1)&&this.audio.seek(this._currentTime/this.globalData.frameRate):(this.audio.play(),this.audio.seek(this._currentTime/this.globalData.frameRate),this._isPlaying=!0))},AudioElement.prototype.show=function(){},AudioElement.prototype.hide=function(){this.audio.pause(),this._isPlaying=!1},AudioElement.prototype.pause=function(){this.audio.pause(),this._isPlaying=!1,this._canPlay=!1},AudioElement.prototype.resume=function(){this._canPlay=!0},AudioElement.prototype.setRate=function(e){this.audio.rate(e)},AudioElement.prototype.volume=function(e){this._volumeMultiplier=e,this._previousVolume=e*this._volume,this.audio.volume(this._previousVolume)},AudioElement.prototype.getBaseElement=function(){return null},AudioElement.prototype.destroy=function(){},AudioElement.prototype.sourceRectAtTime=function(){},AudioElement.prototype.initExpressions=function(){},BaseRenderer.prototype.checkLayers=function(e){var t,r,n=this.layers.length;for(this.completeLayers=!0,t=n-1;t>=0;t-=1)this.elements[t]||(r=this.layers[t]).ip-r.st<=e-this.layers[t].st&&r.op-r.st>e-this.layers[t].st&&this.buildItem(t),this.completeLayers=!!this.elements[t]&&this.completeLayers;this.checkPendingElements()},BaseRenderer.prototype.createItem=function(e){switch(e.ty){case 2:return this.createImage(e);case 0:return this.createComp(e);case 1:return this.createSolid(e);case 3:default:return this.createNull(e);case 4:return this.createShape(e);case 5:return this.createText(e);case 6:return this.createAudio(e);case 13:return this.createCamera(e);case 15:return this.createFootage(e)}},BaseRenderer.prototype.createCamera=function(){throw new Error("You're using a 3d camera. Try the html renderer.")},BaseRenderer.prototype.createAudio=function(e){return new AudioElement(e,this.globalData,this)},BaseRenderer.prototype.createFootage=function(e){return new FootageElement(e,this.globalData,this)},BaseRenderer.prototype.buildAllItems=function(){var e,t=this.layers.length;for(e=0;e1&&(s+=" C"+t.o[n-1][0]+","+t.o[n-1][1]+" "+t.i[0][0]+","+t.i[0][1]+" "+t.v[0][0]+","+t.v[0][1]),r.lastPath!==s){var a="";r.elem&&(t.c&&(a=e.inv?this.solidPath+s:s),r.elem.setAttribute("d",a)),r.lastPath=s}},MaskElement.prototype.destroy=function(){this.element=null,this.globalData=null,this.maskElement=null,this.data=null,this.masksProperties=null};const filtersFactory=function(){var e={};return e.createFilter=function(e,t){var r=createNS("filter");r.setAttribute("id",e),!0!==t&&(r.setAttribute("filterUnits","objectBoundingBox"),r.setAttribute("x","0%"),r.setAttribute("y","0%"),r.setAttribute("width","100%"),r.setAttribute("height","100%"));return r},e.createAlphaToLuminanceFilter=function(){var e=createNS("feColorMatrix");return e.setAttribute("type","matrix"),e.setAttribute("color-interpolation-filters","sRGB"),e.setAttribute("values","0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1"),e},e}(),featureSupport=function(){var e={maskType:!0};return(/MSIE 10/i.test(navigator.userAgent)||/MSIE 9/i.test(navigator.userAgent)||/rv:11.0/i.test(navigator.userAgent)||/Edge\/\d./i.test(navigator.userAgent))&&(e.maskType=!1),e}();var registeredEffects={},idPrefix="filter_result_";function SVGEffects(e){var t,r,n="SourceGraphic",i=e.data.ef?e.data.ef.length:0,s=createElementID(),a=filtersFactory.createFilter(s,!0),o=0;for(this.filters=[],t=0;t=0&&!this.shapeModifiers[e].processShapes(this._isFirstFrame);e-=1);}},searchProcessedElement:function(e){for(var t=this.processedElements,r=0,n=t.length;r.01)return!1;r+=1}return!0},GradientProperty.prototype.checkCollapsable=function(){if(this.o.length/2!=this.c.length/4)return!1;if(this.data.k.k[0].s)for(var e=0,t=this.data.k.k.length;e0;)l=n.transformers[m].mProps._mdf||l,f-=1,m-=1;if(l)for(f=A-n.styles[h].lvl,m=n.transformers.length-1;f>0;)p=n.transformers[m].mProps.v.props,d.transform(p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9],p[10],p[11],p[12],p[13],p[14],p[15]),f-=1,m-=1}else d=e;if(a=(u=n.sh.paths)._length,l){for(o="",s=0;s=1?v=.99:v<=-1&&(v=-.99);var y=o*v,x=Math.cos(A+t.a.v)*y+h[0],b=Math.sin(A+t.a.v)*y+h[1];l.setAttribute("fx",x),l.setAttribute("fy",b),c&&!t.g._collapsable&&(t.of.setAttribute("fx",x),t.of.setAttribute("fy",b))}}function l(e,t,r){var n=t.style,i=t.d;i&&(i._mdf||r)&&i.dashStr&&(n.pElem.setAttribute("stroke-dasharray",i.dashStr),n.pElem.setAttribute("stroke-dashoffset",i.dashoffset[0])),t.c&&(t.c._mdf||r)&&n.pElem.setAttribute("stroke","rgb("+bmFloor(t.c.v[0])+","+bmFloor(t.c.v[1])+","+bmFloor(t.c.v[2])+")"),(t.o._mdf||r)&&n.pElem.setAttribute("stroke-opacity",t.o.v),(t.w._mdf||r)&&(n.pElem.setAttribute("stroke-width",t.w.v),n.msElem&&n.msElem.setAttribute("stroke-width",t.w.v))}return{createRenderFunction:function(e){switch(e.ty){case"fl":return s;case"gf":return o;case"gs":return a;case"st":return l;case"sh":case"el":case"rc":case"sr":return i;case"tr":return r;case"no":return n;default:return null}}}}();function SVGShapeElement(e,t,r){this.shapes=[],this.shapesData=e.shapes,this.stylesList=[],this.shapeModifiers=[],this.itemsData=[],this.processedElements=[],this.animatedContents=[],this.initElement(e,t,r),this.prevViewData=[]}function LetterProps(e,t,r,n,i,s){this.o=e,this.sw=t,this.sc=r,this.fc=n,this.m=i,this.p=s,this._mdf={o:!0,sw:!!t,sc:!!r,fc:!!n,m:!0,p:!0}}function TextProperty(e,t){this._frameId=initialDefaultFrame,this.pv="",this.v="",this.kf=!1,this._isFirstFrame=!0,this._mdf=!1,this.data=t,this.elem=e,this.comp=this.elem.comp,this.keysIndex=0,this.canResize=!1,this.minimumFontSize=1,this.effectsSequence=[],this.currentData={ascent:0,boxWidth:this.defaultBoxWidth,f:"",fStyle:"",fWeight:"",fc:"",j:"",justifyOffset:"",l:[],lh:0,lineWidths:[],ls:"",of:"",s:"",sc:"",sw:0,t:0,tr:0,sz:0,ps:null,fillColorAnim:!1,strokeColorAnim:!1,strokeWidthAnim:!1,yOffset:0,finalSize:0,finalText:[],finalLineHeight:0,__complete:!1},this.copyData(this.currentData,this.data.d.k[0].s),this.searchProperty()||this.completeTextData(this.currentData)}extendPrototype([BaseElement,TransformElement,SVGBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableDOMElement],SVGShapeElement),SVGShapeElement.prototype.initSecondaryElement=function(){},SVGShapeElement.prototype.identityMatrix=new Matrix,SVGShapeElement.prototype.buildExpressionInterface=function(){},SVGShapeElement.prototype.createContent=function(){this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement,0,[],!0),this.filterUniqueShapes()},SVGShapeElement.prototype.filterUniqueShapes=function(){var e,t,r,n,i=this.shapes.length,s=this.stylesList.length,a=[],o=!1;for(r=0;r1&&o&&this.setShapesAsAnimated(a)}},SVGShapeElement.prototype.setShapesAsAnimated=function(e){var t,r=e.length;for(t=0;t=0;o-=1){if((d=this.searchProcessedElement(e[o]))?t[o]=r[d-1]:e[o]._render=a,"fl"===e[o].ty||"st"===e[o].ty||"gf"===e[o].ty||"gs"===e[o].ty||"no"===e[o].ty)d?t[o].style.closed=!1:t[o]=this.createStyleElement(e[o],i),e[o]._render&&t[o].style.pElem.parentNode!==n&&n.appendChild(t[o].style.pElem),m.push(t[o].style);else if("gr"===e[o].ty){if(d)for(c=t[o].it.length,l=0;l1,this.kf&&this.addEffect(this.getKeyframeValue.bind(this)),this.kf},TextProperty.prototype.addEffect=function(e){this.effectsSequence.push(e),this.elem.addDynamicProperty(this)},TextProperty.prototype.getValue=function(e){if(this.elem.globalData.frameId!==this.frameId&&this.effectsSequence.length||e){this.currentData.t=this.data.d.k[this.keysIndex].s.t;var t=this.currentData,r=this.keysIndex;if(this.lock)this.setCurrentData(this.currentData);else{var n;this.lock=!0,this._mdf=!1;var i=this.effectsSequence.length,s=e||this.data.d.k[this.keysIndex].s;for(n=0;nt);)r+=1;return this.keysIndex!==r&&(this.keysIndex=r),this.data.d.k[this.keysIndex].s},TextProperty.prototype.buildFinalText=function(e){for(var t,r,n=[],i=0,s=e.length,a=!1;i=55296&&t<=56319?(r=e.charCodeAt(i+1))>=56320&&r<=57343?(a||FontManager.isModifier(t,r)?(n[n.length-1]+=e.substr(i,2),a=!1):n.push(e.substr(i,2)),i+=1):n.push(e.charAt(i)):t>56319?(r=e.charCodeAt(i+1),FontManager.isZeroWidthJoiner(t,r)?(a=!0,n[n.length-1]+=e.substr(i,2),i+=1):n.push(e.charAt(i))):FontManager.isZeroWidthJoiner(t)?(n[n.length-1]+=e.charAt(i),a=!0):n.push(e.charAt(i)),i+=1;return n},TextProperty.prototype.completeTextData=function(e){e.__complete=!0;var t,r,n,i,s,a,o,l=this.elem.globalData.fontManager,c=this.data,h=[],u=0,d=c.m.g,p=0,f=0,m=0,g=[],A=0,v=0,y=l.getFontByName(e.f),x=0,b=getFontProperties(y);e.fWeight=b.weight,e.fStyle=b.style,e.finalSize=e.s,e.finalText=this.buildFinalText(e.t),r=e.finalText.length,e.finalLineHeight=e.lh;var E,_=e.tr/1e3*e.finalSize;if(e.sz)for(var S,M,w=!0,C=e.sz[0],T=e.sz[1];w;){S=0,A=0,r=(M=this.buildFinalText(e.t)).length,_=e.tr/1e3*e.finalSize;var I=-1;for(t=0;tC&&" "!==M[t]?(-1===I?r+=1:t=I,S+=e.finalLineHeight||1.2*e.finalSize,M.splice(t,I===t?1:0,"\r"),I=-1,A=0):(A+=x,A+=_);S+=y.ascent*e.finalSize/100,this.canResize&&e.finalSize>this.minimumFontSize&&Tv?A:v,A=-2*_,i="",n=!0,m+=1):i=B,l.chars?(o=l.getCharData(B,y.fStyle,l.getFontByName(e.f).fFamily),x=n?0:o.w*e.finalSize/100):x=l.measureText(i,e.f,e.finalSize)," "===B?R+=x+_:(A+=x+_+R,R=0),h.push({l:x,an:x,add:p,n:n,anIndexes:[],val:i,line:m,animatorJustifyOffset:0}),2==d){if(p+=x,""===i||" "===i||t===r-1){for(""!==i&&" "!==i||(p-=x);f<=t;)h[f].an=p,h[f].ind=u,h[f].extra=x,f+=1;u+=1,p=0}}else if(3==d){if(p+=x,""===i||t===r-1){for(""===i&&(p-=x);f<=t;)h[f].an=p,h[f].ind=u,h[f].extra=x,f+=1;p=0,u+=1}}else h[u].ind=u,h[u].extra=0,u+=1;if(e.l=h,v=A>v?A:v,g.push(A),e.sz)e.boxWidth=e.sz[0],e.justifyOffset=0;else switch(e.boxWidth=v,e.j){case 1:e.justifyOffset=-e.boxWidth;break;case 2:e.justifyOffset=-e.boxWidth/2;break;default:e.justifyOffset=0}e.lineWidths=g;var P,D,L,F,U=c.a;a=U.length;var O=[];for(s=0;s0?i=this.ne.v/100:s=-this.ne.v/100,this.xe.v>0?a=1-this.xe.v/100:o=1+this.xe.v/100;var l=BezierFactory.getBezierEasing(i,s,a,o).get,c=0,h=this.finalS,u=this.finalE,d=this.data.sh;if(2===d)c=l(c=u===h?n>=u?1:0:e(0,t(.5/(u-h)+(n-h)/(u-h),1)));else if(3===d)c=l(c=u===h?n>=u?0:1:1-e(0,t(.5/(u-h)+(n-h)/(u-h),1)));else if(4===d)u===h?c=0:(c=e(0,t(.5/(u-h)+(n-h)/(u-h),1)))<.5?c*=2:c=1-2*(c-.5),c=l(c);else if(5===d){if(u===h)c=0;else{var p=u-h,f=-p/2+(n=t(e(0,n+.5-h),u-h)),m=p/2;c=Math.sqrt(1-f*f/(m*m))}c=l(c)}else 6===d?(u===h?c=0:(n=t(e(0,n+.5-h),u-h),c=(1+Math.cos(Math.PI+2*Math.PI*n/(u-h)))/2),c=l(c)):(n>=r(h)&&(c=e(0,t(n-h<0?t(u,1)-(h-n):u-n,1))),c=l(c));if(100!==this.sm.v){var g=.01*this.sm.v;0===g&&(g=1e-8);var A=.5-.5*g;c1&&(c=1)}return c*this.a.v},getValue:function(e){this.iterateDynamicProperties(),this._mdf=e||this._mdf,this._currentTextLength=this.elem.textProperty.currentData.l.length||0,e&&2===this.data.r&&(this.e.v=this._currentTextLength);var t=2===this.data.r?1:100/this.data.totalChars,r=this.o.v/t,n=this.s.v/t+r,i=this.e.v/t+r;if(n>i){var s=n;n=i,i=s}this.finalS=n,this.finalE=i}},extendPrototype([DynamicPropertyContainer],n),{getTextSelectorProp:function(e,t,r){return new n(e,t)}}}();function TextAnimatorDataProperty(e,t,r){var n={propType:!1},i=PropertyFactory.getProp,s=t.a;this.a={r:s.r?i(e,s.r,0,degToRads,r):n,rx:s.rx?i(e,s.rx,0,degToRads,r):n,ry:s.ry?i(e,s.ry,0,degToRads,r):n,sk:s.sk?i(e,s.sk,0,degToRads,r):n,sa:s.sa?i(e,s.sa,0,degToRads,r):n,s:s.s?i(e,s.s,1,.01,r):n,a:s.a?i(e,s.a,1,0,r):n,o:s.o?i(e,s.o,0,.01,r):n,p:s.p?i(e,s.p,1,0,r):n,sw:s.sw?i(e,s.sw,0,0,r):n,sc:s.sc?i(e,s.sc,1,0,r):n,fc:s.fc?i(e,s.fc,1,0,r):n,fh:s.fh?i(e,s.fh,0,0,r):n,fs:s.fs?i(e,s.fs,0,.01,r):n,fb:s.fb?i(e,s.fb,0,.01,r):n,t:s.t?i(e,s.t,0,0,r):n},this.s=TextSelectorProp.getTextSelectorProp(e,t.s,r),this.s.t=t.s.t}function TextAnimatorProperty(e,t,r){this._isFirstFrame=!0,this._hasMaskedPath=!1,this._frameId=-1,this._textData=e,this._renderType=t,this._elem=r,this._animatorsData=createSizedArray(this._textData.a.length),this._pathData={},this._moreOptions={alignment:{}},this.renderedLetters=[],this.lettersChangedFlag=!1,this.initDynamicPropertyContainer(r)}function ITextElement(){}TextAnimatorProperty.prototype.searchProperties=function(){var e,t,r=this._textData.a.length,n=PropertyFactory.getProp;for(e=0;e=o+oe||!f?(v=(o+oe-c)/l.partialLength,N=p.point[0]+(l.point[0]-p.point[0])*v,k=p.point[1]+(l.point[1]-p.point[1])*v,S.translate(-b[0]*C[i].an*.005,-b[1]*F*.01),h=!1):f&&(c+=l.partialLength,(u+=1)>=f.length&&(u=0,m[d+=1]?f=m[d].points:x.v.c?(u=0,f=m[d=0].points):(c-=l.partialLength,f=null)),f&&(p=l,g=(l=f[u]).partialLength));O=C[i].an/2-C[i].add,S.translate(-O,0,0)}else O=C[i].an/2-C[i].add,S.translate(-O,0,0),S.translate(-b[0]*C[i].an*.005,-b[1]*F*.01,0);for(R=0;Re?this.textSpans[e].span:createNS(l?"g":"text"),g<=e){if(a.setAttribute("stroke-linecap","butt"),a.setAttribute("stroke-linejoin","round"),a.setAttribute("stroke-miterlimit","4"),this.textSpans[e].span=a,l){var A=createNS("g");a.appendChild(A),this.textSpans[e].childSpan=A}this.textSpans[e].span=a,this.layerElement.appendChild(a)}a.style.display="inherit"}if(c.reset(),h&&(o[e].n&&(u=-f,d+=r.yOffset,d+=p?1:0,p=!1),this.applyTextPropertiesToMatrix(r,c,o[e].line,u,d),u+=o[e].l||0,u+=f),l){var v;if(1===(m=this.globalData.fontManager.getCharData(r.finalText[e],n.fStyle,this.globalData.fontManager.getFontByName(r.f).fFamily)).t)v=new SVGCompElement(m.data,this.globalData,this);else{var y=emptyShapeData;m.data&&m.data.shapes&&(y=this.buildShapeData(m.data,r.finalSize)),v=new SVGShapeElement(y,this.globalData,this)}if(this.textSpans[e].glyph){var x=this.textSpans[e].glyph;this.textSpans[e].childSpan.removeChild(x.layerElement),x.destroy()}this.textSpans[e].glyph=v,v._debug=!0,v.prepareFrame(0),v.renderFrame(),this.textSpans[e].childSpan.appendChild(v.layerElement),1===m.t&&this.textSpans[e].childSpan.setAttribute("transform","scale("+r.finalSize/100+","+r.finalSize/100+")")}else h&&a.setAttribute("transform","translate("+c.props[12]+","+c.props[13]+")"),a.textContent=o[e].val,a.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve")}h&&a&&a.setAttribute("d","")}else{var b=this.textContainer,E="start";switch(r.j){case 1:E="end";break;case 2:E="middle";break;default:E="start"}b.setAttribute("text-anchor",E),b.setAttribute("letter-spacing",f);var _=this.buildTextContents(r.finalText);for(t=_.length,d=r.ps?r.ps[1]+r.ascent:0,e=0;e=0;t-=1)(this.completeLayers||this.elements[t])&&this.elements[t].prepareFrame(e-this.layers[t].st);if(this.globalData._mdf)for(t=0;t=0;r-=1)(this.completeLayers||this.elements[r])&&(this.elements[r].prepareFrame(this.renderedFrame-this.layers[r].st),this.elements[r]._mdf&&(this._mdf=!0))}},ICompElement.prototype.renderInnerContent=function(){var e,t=this.layers.length;for(e=0;e=0;n-=1)r=e.transforms[n].transform.mProps.v.props,e.finalTransform.transform(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15]);e._mdf=s},processSequences:function(e){var t,r=this.sequenceList.length;for(t=0;t=0;s-=1){if((l=this.searchProcessedElement(e[s]))?t[s]=r[l-1]:e[s]._shouldRender=n,"fl"===e[s].ty||"st"===e[s].ty||"gf"===e[s].ty||"gs"===e[s].ty)l?t[s].style.closed=!1:t[s]=this.createStyleElement(e[s],f),d.push(t[s].style);else if("gr"===e[s].ty){if(l)for(o=t[s].it.length,a=0;a=0;i-=1)"tr"===t[i].ty?(s=r[i].transform,this.renderShapeTransform(e,s)):"sh"===t[i].ty||"el"===t[i].ty||"rc"===t[i].ty||"sr"===t[i].ty?this.renderPath(t[i],r[i]):"fl"===t[i].ty?this.renderFill(t[i],r[i],s):"st"===t[i].ty?this.renderStroke(t[i],r[i],s):"gf"===t[i].ty||"gs"===t[i].ty?this.renderGradientFill(t[i],r[i],s):"gr"===t[i].ty?this.renderShape(s,t[i].it,r[i].it):t[i].ty;n&&this.drawLayer()},CVShapeElement.prototype.renderStyledShape=function(e,t){if(this._isFirstFrame||t._mdf||e.transforms._mdf){var r,n,i,s=e.trNodes,a=t.paths,o=a._length;s.length=0;var l=e.transforms.finalTransform;for(i=0;i=1?u=.99:u<=-1&&(u=-.99);var d=c*u,p=Math.cos(h+t.a.v)*d+o[0],f=Math.sin(h+t.a.v)*d+o[1];n=a.createRadialGradient(p,f,0,o[0],o[1],c)}var m=e.g.p,g=t.g.c,A=1;for(s=0;so&&"xMidYMid slice"===l||ar&&"meet"===s||nr&&"slice"===s)?(e-this.transformCanvas.w*(t/this.transformCanvas.h))/2*this.renderConfig.dpr:"xMax"===o&&(nr&&"slice"===s)?(e-this.transformCanvas.w*(t/this.transformCanvas.h))*this.renderConfig.dpr:0,this.transformCanvas.ty="YMid"===l&&(n>r&&"meet"===s||nr&&"meet"===s||n=0;e-=1)this.elements[e]&&this.elements[e].destroy();this.elements.length=0,this.globalData.canvasContext=null,this.animationItem.container=null,this.destroyed=!0},CanvasRendererBase.prototype.renderFrame=function(e,t){if((this.renderedFrame!==e||!0!==this.renderConfig.clearCanvas||t)&&!this.destroyed&&-1!==e){var r;this.renderedFrame=e,this.globalData.frameNum=e-this.animationItem._isFirstFrame,this.globalData.frameId+=1,this.globalData._mdf=!this.renderConfig.clearCanvas||t,this.globalData.projectInterface.currentFrame=e;var n=this.layers.length;for(this.completeLayers||this.checkLayers(e),r=0;r=0;r-=1)(this.completeLayers||this.elements[r])&&this.elements[r].renderFrame();!0!==this.renderConfig.clearCanvas&&this.restore()}}},CanvasRendererBase.prototype.buildItem=function(e){var t=this.elements;if(!t[e]&&99!==this.layers[e].ty){var r=this.createItem(this.layers[e],this,this.globalData);t[e]=r,r.initExpressions()}},CanvasRendererBase.prototype.checkPendingElements=function(){for(;this.pendingElements.length;){this.pendingElements.pop().checkParenting()}},CanvasRendererBase.prototype.hide=function(){this.animationItem.container.style.display="none"},CanvasRendererBase.prototype.show=function(){this.animationItem.container.style.display="block"},extendPrototype([CanvasRendererBase,ICompElement,CVBaseElement],CVCompElement),CVCompElement.prototype.renderInnerContent=function(){var e,t=this.canvasContext;for(t.beginPath(),t.moveTo(0,0),t.lineTo(this.data.w,0),t.lineTo(this.data.w,this.data.h),t.lineTo(0,this.data.h),t.lineTo(0,0),t.clip(),e=this.layers.length-1;e>=0;e-=1)(this.completeLayers||this.elements[e])&&this.elements[e].renderFrame()},CVCompElement.prototype.destroy=function(){var e;for(e=this.layers.length-1;e>=0;e-=1)this.elements[e]&&this.elements[e].destroy();this.layers=null,this.elements=null},CVCompElement.prototype.createComp=function(e){return new CVCompElement(e,this.globalData,this)},extendPrototype([CanvasRendererBase],CanvasRenderer),CanvasRenderer.prototype.createComp=function(e){return new CVCompElement(e,this.globalData,this)},registerRenderer("canvas",CanvasRenderer),ShapeModifiers.registerModifier("tm",TrimModifier),ShapeModifiers.registerModifier("pb",PuckerAndBloatModifier),ShapeModifiers.registerModifier("rp",RepeaterModifier),ShapeModifiers.registerModifier("rd",RoundCornersModifier);const Expressions=function(){var e={};return e.initExpressions=function(e){var t=0,r=[];e.renderer.compInterface=CompExpressionInterface(e.renderer),e.renderer.globalData.projectInterface.registerComposition(e.renderer),e.renderer.globalData.pushExpression=function(){t+=1},e.renderer.globalData.popExpression=function(){0==(t-=1)&&function(){var e,t=r.length;for(e=0;e=o;)e/=2,t/=2,r>>>=1;return(e+r)/t};return y.int32=function(){return 0|v.g(4)},y.quick=function(){return v.g(4)/4294967296},y.double=y,d(p(v.S),e),(f.pass||m||function(e,r,n,s){return s&&(s.S&&h(s,v),e.state=function(){return h(v,{})}),n?(t[i]=e,r):e})(y,A,"global"in f?f.global:this==t,f.state)},d(t.random(),e)}function initialize$2(e){seedRandom([],e)}var propTypes={SHAPE:"shape"};const ExpressionManager=function(){var ob={},Math=BMMath,window=null,document=null,XMLHttpRequest=null,fetch=null,frames=null;function $bm_isInstanceOfArray(e){return e.constructor===Array||e.constructor===Float32Array}function isNumerable(e,t){return"number"===e||"boolean"===e||"string"===e||t instanceof Number}function $bm_neg(e){var t=typeof e;if("number"===t||"boolean"===t||e instanceof Number)return-e;if($bm_isInstanceOfArray(e)){var r,n=e.length,i=[];for(r=0;rr){var n=r;r=t,t=n}return Math.min(Math.max(e,t),r)}function radiansToDegrees(e){return e/degToRads}var radians_to_degrees=radiansToDegrees;function degreesToRadians(e){return e*degToRads}var degrees_to_radians=radiansToDegrees,helperLengthArray=[0,0,0,0,0,0];function length(e,t){if("number"==typeof e||e instanceof Number)return t=t||0,Math.abs(e-t);var r;t||(t=helperLengthArray);var n=Math.min(e.length,t.length),i=0;for(r=0;r.5?c/(2-a-o):c/(a+o),a){case n:t=(i-s)/c+(i1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function hslToRgb(e){var t,r,n,i=e[0],s=e[1],a=e[2];if(0===s)t=a,n=a,r=a;else{var o=a<.5?a*(1+s):a+s-a*s,l=2*a-o;t=hue2rgb(l,o,i+1/3),r=hue2rgb(l,o,i),n=hue2rgb(l,o,i-1/3)}return[t,r,n,e[3]]}function linear(e,t,r,n,i){if(void 0!==n&&void 0!==i||(n=t,i=r,t=0,r=1),r=r)return i;var a,o=r===t?0:(e-t)/(r-t);if(!n.length)return n+(i-n)*o;var l=n.length,c=createTypedArray("float32",l);for(a=0;a1){for(n=0;n1?t=1:t<0&&(t=0);var a=e(t);if($bm_isInstanceOfArray(i)){var o,l=i.length,c=createTypedArray("float32",l);for(o=0;odata.k[t].t&&edata.k[t+1].t-e?(r=t+2,n=data.k[t+1].t):(r=t+1,n=data.k[t].t);break}}-1===r&&(r=t+1,n=data.k[t].t)}else r=0,n=0;var s={};return s.index=r,s.time=n/elem.comp.globalData.frameRate,s}function key(e){var t,r,n;if(!data.k.length||"number"==typeof data.k[0])throw new Error("The property has no keyframe at index "+e);e-=1,t={time:data.k[e].t/elem.comp.globalData.frameRate,value:[]};var i=Object.prototype.hasOwnProperty.call(data.k[e],"s")?data.k[e].s:data.k[e-1].e;for(n=i.length,r=0;rc.length-1)&&(t=c.length-1),n=h-(i=c[c.length-1-t].t)),"pingpong"===e){if(Math.floor((l-i)/n)%2!=0)return this.getValueAtTime((n-(l-i)%n+i)/this.comp.globalData.frameRate,0)}else{if("offset"===e){var u=this.getValueAtTime(i/this.comp.globalData.frameRate,0),d=this.getValueAtTime(h/this.comp.globalData.frameRate,0),p=this.getValueAtTime(((l-i)%n+i)/this.comp.globalData.frameRate,0),f=Math.floor((l-i)/n);if(this.pv.length){for(a=(o=new Array(u.length)).length,s=0;s=h)return this.pv;if(r?i=h+(n=t?Math.abs(this.elem.comp.globalData.frameRate*t):Math.max(0,this.elem.data.op-h)):((!t||t>c.length-1)&&(t=c.length-1),n=(i=c[t].t)-h),"pingpong"===e){if(Math.floor((h-l)/n)%2==0)return this.getValueAtTime(((h-l)%n+h)/this.comp.globalData.frameRate,0)}else{if("offset"===e){var u=this.getValueAtTime(h/this.comp.globalData.frameRate,0),d=this.getValueAtTime(i/this.comp.globalData.frameRate,0),p=this.getValueAtTime((n-(h-l)%n+h)/this.comp.globalData.frameRate,0),f=Math.floor((h-l)/n)+1;if(this.pv.length){for(a=(o=new Array(u.length)).length,s=0;s1?(i+e-s)/(t-1):1,o=0,l=0;for(r=this.pv.length?createTypedArray("float32",this.pv.length):0;oa){var h=o,u=r.c&&o===l-1?0:o+1,d=(a-c)/s[o].addedLength;n=bez.getPointInSegment(r.v[h],r.v[u],r.o[h],r.i[u],d,s[o]);break}c+=s[o].addedLength,o+=1}return n||(n=r.c?[r.v[0][0],r.v[0][1]]:[r.v[r._length-1][0],r.v[r._length-1][1]]),n},vectorOnPath:function(e,t,r){1==e?e=this.v.c:0==e&&(e=.999);var n=this.pointOnPath(e,t),i=this.pointOnPath(e+.001,t),s=i[0]-n[0],a=i[1]-n[1],o=Math.sqrt(Math.pow(s,2)+Math.pow(a,2));return 0===o?[0,0]:"tangent"===r?[s/o,a/o]:[-a/o,s/o]},tangentOnPath:function(e,t){return this.vectorOnPath(e,t,"tangent")},normalOnPath:function(e,t){return this.vectorOnPath(e,t,"normal")},setGroupProperty:expressionHelpers.setGroupProperty,getValueAtTime:expressionHelpers.getStaticValueAtTime},extendPrototype([c],o),extendPrototype([c],l),l.prototype.getValueAtTime=function(e){return this._cachingAtTime||(this._cachingAtTime={shapeValue:shapePool.clone(this.pv),lastIndex:0,lastTime:initialDefaultFrame}),e*=this.elem.globalData.frameRate,(e-=this.offsetTime)!==this._cachingAtTime.lastTime&&(this._cachingAtTime.lastIndex=this._cachingAtTime.lastTime{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});class r{constructor(){this.s2uTable={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:10,11:11,12:12,13:13,14:14,15:15,16:16,17:17,18:18,19:19,20:20,21:21,22:22,23:23,24:24,25:25,26:26,27:27,28:28,29:29,30:30,31:31,32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:64,65:65,66:66,67:67,68:68,69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:92,93:93,94:94,95:95,96:96,97:97,98:98,99:99,100:100,101:101,102:102,103:103,104:104,105:105,106:106,107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,125:125,126:126,161:65377,162:65378,163:65379,164:65380,165:65381,166:65382,167:65383,168:65384,169:65385,170:65386,171:65387,172:65388,173:65389,174:65390,175:65391,176:65392,177:65393,178:65394,179:65395,180:65396,181:65397,182:65398,183:65399,184:65400,185:65401,186:65402,187:65403,188:65404,189:65405,190:65406,191:65407,192:65408,193:65409,194:65410,195:65411,196:65412,197:65413,198:65414,199:65415,200:65416,201:65417,202:65418,203:65419,204:65420,205:65421,206:65422,207:65423,208:65424,209:65425,210:65426,211:65427,212:65428,213:65429,214:65430,215:65431,216:65432,217:65433,218:65434,219:65435,220:65436,221:65437,222:65438,223:65439,33088:12288,33089:12289,33090:12290,33091:65292,33092:65294,33093:12539,33094:65306,33095:65307,33096:65311,33097:65281,33098:12443,33099:12444,33100:180,33101:65344,33102:168,33103:65342,33104:65507,33105:65343,33106:12541,33107:12542,33108:12445,33109:12446,33110:12291,33111:20189,33112:12293,33113:12294,33114:12295,33115:12540,33116:8213,33117:8208,33118:65295,33119:65340,33120:65374,33121:8741,33122:65372,33123:8230,33124:8229,33125:8216,33126:8217,33127:8220,33128:8221,33129:65288,33130:65289,33131:12308,33132:12309,33133:65339,33134:65341,33135:65371,33136:65373,33137:12296,33138:12297,33139:12298,33140:12299,33141:12300,33142:12301,33143:12302,33144:12303,33145:12304,33146:12305,33147:65291,33148:65293,33149:177,33150:215,33152:247,33153:65309,33154:8800,33155:65308,33156:65310,33157:8806,33158:8807,33159:8734,33160:8756,33161:9794,33162:9792,33163:176,33164:8242,33165:8243,33166:8451,33167:65509,33168:65284,33169:65504,33170:65505,33171:65285,33172:65283,33173:65286,33174:65290,33175:65312,33176:167,33177:9734,33178:9733,33179:9675,33180:9679,33181:9678,33182:9671,33183:9670,33184:9633,33185:9632,33186:9651,33187:9650,33188:9661,33189:9660,33190:8251,33191:12306,33192:8594,33193:8592,33194:8593,33195:8595,33196:12307,33208:8712,33209:8715,33210:8838,33211:8839,33212:8834,33213:8835,33214:8746,33215:8745,33224:8743,33225:8744,33226:65506,33227:8658,33228:8660,33229:8704,33230:8707,33242:8736,33243:8869,33244:8978,33245:8706,33246:8711,33247:8801,33248:8786,33249:8810,33250:8811,33251:8730,33252:8765,33253:8733,33254:8757,33255:8747,33256:8748,33264:8491,33265:8240,33266:9839,33267:9837,33268:9834,33269:8224,33270:8225,33271:182,33276:9711,33359:65296,33360:65297,33361:65298,33362:65299,33363:65300,33364:65301,33365:65302,33366:65303,33367:65304,33368:65305,33376:65313,33377:65314,33378:65315,33379:65316,33380:65317,33381:65318,33382:65319,33383:65320,33384:65321,33385:65322,33386:65323,33387:65324,33388:65325,33389:65326,33390:65327,33391:65328,33392:65329,33393:65330,33394:65331,33395:65332,33396:65333,33397:65334,33398:65335,33399:65336,33400:65337,33401:65338,33409:65345,33410:65346,33411:65347,33412:65348,33413:65349,33414:65350,33415:65351,33416:65352,33417:65353,33418:65354,33419:65355,33420:65356,33421:65357,33422:65358,33423:65359,33424:65360,33425:65361,33426:65362,33427:65363,33428:65364,33429:65365,33430:65366,33431:65367,33432:65368,33433:65369,33434:65370,33439:12353,33440:12354,33441:12355,33442:12356,33443:12357,33444:12358,33445:12359,33446:12360,33447:12361,33448:12362,33449:12363,33450:12364,33451:12365,33452:12366,33453:12367,33454:12368,33455:12369,33456:12370,33457:12371,33458:12372,33459:12373,33460:12374,33461:12375,33462:12376,33463:12377,33464:12378,33465:12379,33466:12380,33467:12381,33468:12382,33469:12383,33470:12384,33471:12385,33472:12386,33473:12387,33474:12388,33475:12389,33476:12390,33477:12391,33478:12392,33479:12393,33480:12394,33481:12395,33482:12396,33483:12397,33484:12398,33485:12399,33486:12400,33487:12401,33488:12402,33489:12403,33490:12404,33491:12405,33492:12406,33493:12407,33494:12408,33495:12409,33496:12410,33497:12411,33498:12412,33499:12413,33500:12414,33501:12415,33502:12416,33503:12417,33504:12418,33505:12419,33506:12420,33507:12421,33508:12422,33509:12423,33510:12424,33511:12425,33512:12426,33513:12427,33514:12428,33515:12429,33516:12430,33517:12431,33518:12432,33519:12433,33520:12434,33521:12435,33600:12449,33601:12450,33602:12451,33603:12452,33604:12453,33605:12454,33606:12455,33607:12456,33608:12457,33609:12458,33610:12459,33611:12460,33612:12461,33613:12462,33614:12463,33615:12464,33616:12465,33617:12466,33618:12467,33619:12468,33620:12469,33621:12470,33622:12471,33623:12472,33624:12473,33625:12474,33626:12475,33627:12476,33628:12477,33629:12478,33630:12479,33631:12480,33632:12481,33633:12482,33634:12483,33635:12484,33636:12485,33637:12486,33638:12487,33639:12488,33640:12489,33641:12490,33642:12491,33643:12492,33644:12493,33645:12494,33646:12495,33647:12496,33648:12497,33649:12498,33650:12499,33651:12500,33652:12501,33653:12502,33654:12503,33655:12504,33656:12505,33657:12506,33658:12507,33659:12508,33660:12509,33661:12510,33662:12511,33664:12512,33665:12513,33666:12514,33667:12515,33668:12516,33669:12517,33670:12518,33671:12519,33672:12520,33673:12521,33674:12522,33675:12523,33676:12524,33677:12525,33678:12526,33679:12527,33680:12528,33681:12529,33682:12530,33683:12531,33684:12532,33685:12533,33686:12534,33695:913,33696:914,33697:915,33698:916,33699:917,33700:918,33701:919,33702:920,33703:921,33704:922,33705:923,33706:924,33707:925,33708:926,33709:927,33710:928,33711:929,33712:931,33713:932,33714:933,33715:934,33716:935,33717:936,33718:937,33727:945,33728:946,33729:947,33730:948,33731:949,33732:950,33733:951,33734:952,33735:953,33736:954,33737:955,33738:956,33739:957,33740:958,33741:959,33742:960,33743:961,33744:963,33745:964,33746:965,33747:966,33748:967,33749:968,33750:969,33856:1040,33857:1041,33858:1042,33859:1043,33860:1044,33861:1045,33862:1025,33863:1046,33864:1047,33865:1048,33866:1049,33867:1050,33868:1051,33869:1052,33870:1053,33871:1054,33872:1055,33873:1056,33874:1057,33875:1058,33876:1059,33877:1060,33878:1061,33879:1062,33880:1063,33881:1064,33882:1065,33883:1066,33884:1067,33885:1068,33886:1069,33887:1070,33888:1071,33904:1072,33905:1073,33906:1074,33907:1075,33908:1076,33909:1077,33910:1105,33911:1078,33912:1079,33913:1080,33914:1081,33915:1082,33916:1083,33917:1084,33918:1085,33920:1086,33921:1087,33922:1088,33923:1089,33924:1090,33925:1091,33926:1092,33927:1093,33928:1094,33929:1095,33930:1096,33931:1097,33932:1098,33933:1099,33934:1100,33935:1101,33936:1102,33937:1103,33951:9472,33952:9474,33953:9484,33954:9488,33955:9496,33956:9492,33957:9500,33958:9516,33959:9508,33960:9524,33961:9532,33962:9473,33963:9475,33964:9487,33965:9491,33966:9499,33967:9495,33968:9507,33969:9523,33970:9515,33971:9531,33972:9547,33973:9504,33974:9519,33975:9512,33976:9527,33977:9535,33978:9501,33979:9520,33980:9509,33981:9528,33982:9538,34624:9312,34625:9313,34626:9314,34627:9315,34628:9316,34629:9317,34630:9318,34631:9319,34632:9320,34633:9321,34634:9322,34635:9323,34636:9324,34637:9325,34638:9326,34639:9327,34640:9328,34641:9329,34642:9330,34643:9331,34644:8544,34645:8545,34646:8546,34647:8547,34648:8548,34649:8549,34650:8550,34651:8551,34652:8552,34653:8553,34655:13129,34656:13076,34657:13090,34658:13133,34659:13080,34660:13095,34661:13059,34662:13110,34663:13137,34664:13143,34665:13069,34666:13094,34667:13091,34668:13099,34669:13130,34670:13115,34671:13212,34672:13213,34673:13214,34674:13198,34675:13199,34676:13252,34677:13217,34686:13179,34688:12317,34689:12319,34690:8470,34691:13261,34692:8481,34693:12964,34694:12965,34695:12966,34696:12967,34697:12968,34698:12849,34699:12850,34700:12857,34701:13182,34702:13181,34703:13180,34704:8786,34705:8801,34706:8747,34707:8750,34708:8721,34709:8730,34710:8869,34711:8736,34712:8735,34713:8895,34714:8757,34715:8745,34716:8746,34975:20124,34976:21782,34977:23043,34978:38463,34979:21696,34980:24859,34981:25384,34982:23030,34983:36898,34984:33909,34985:33564,34986:31312,34987:24746,34988:25569,34989:28197,34990:26093,34991:33894,34992:33446,34993:39925,34994:26771,34995:22311,34996:26017,34997:25201,34998:23451,34999:22992,35e3:34427,35001:39156,35002:32098,35003:32190,35004:39822,35005:25110,35006:31903,35007:34999,35008:23433,35009:24245,35010:25353,35011:26263,35012:26696,35013:38343,35014:38797,35015:26447,35016:20197,35017:20234,35018:20301,35019:20381,35020:20553,35021:22258,35022:22839,35023:22996,35024:23041,35025:23561,35026:24799,35027:24847,35028:24944,35029:26131,35030:26885,35031:28858,35032:30031,35033:30064,35034:31227,35035:32173,35036:32239,35037:32963,35038:33806,35039:34915,35040:35586,35041:36949,35042:36986,35043:21307,35044:20117,35045:20133,35046:22495,35047:32946,35048:37057,35049:30959,35050:19968,35051:22769,35052:28322,35053:36920,35054:31282,35055:33576,35056:33419,35057:39983,35058:20801,35059:21360,35060:21693,35061:21729,35062:22240,35063:23035,35064:24341,35065:39154,35066:28139,35067:32996,35068:34093,35136:38498,35137:38512,35138:38560,35139:38907,35140:21515,35141:21491,35142:23431,35143:28879,35144:32701,35145:36802,35146:38632,35147:21359,35148:40284,35149:31418,35150:19985,35151:30867,35152:33276,35153:28198,35154:22040,35155:21764,35156:27421,35157:34074,35158:39995,35159:23013,35160:21417,35161:28006,35162:29916,35163:38287,35164:22082,35165:20113,35166:36939,35167:38642,35168:33615,35169:39180,35170:21473,35171:21942,35172:23344,35173:24433,35174:26144,35175:26355,35176:26628,35177:27704,35178:27891,35179:27945,35180:29787,35181:30408,35182:31310,35183:38964,35184:33521,35185:34907,35186:35424,35187:37613,35188:28082,35189:30123,35190:30410,35191:39365,35192:24742,35193:35585,35194:36234,35195:38322,35196:27022,35197:21421,35198:20870,35200:22290,35201:22576,35202:22852,35203:23476,35204:24310,35205:24616,35206:25513,35207:25588,35208:27839,35209:28436,35210:28814,35211:28948,35212:29017,35213:29141,35214:29503,35215:32257,35216:33398,35217:33489,35218:34199,35219:36960,35220:37467,35221:40219,35222:22633,35223:26044,35224:27738,35225:29989,35226:20985,35227:22830,35228:22885,35229:24448,35230:24540,35231:25276,35232:26106,35233:27178,35234:27431,35235:27572,35236:29579,35237:32705,35238:35158,35239:40236,35240:40206,35241:40644,35242:23713,35243:27798,35244:33659,35245:20740,35246:23627,35247:25014,35248:33222,35249:26742,35250:29281,35251:20057,35252:20474,35253:21368,35254:24681,35255:28201,35256:31311,35257:38899,35258:19979,35259:21270,35260:20206,35261:20309,35262:20285,35263:20385,35264:20339,35265:21152,35266:21487,35267:22025,35268:22799,35269:23233,35270:23478,35271:23521,35272:31185,35273:26247,35274:26524,35275:26550,35276:27468,35277:27827,35278:28779,35279:29634,35280:31117,35281:31166,35282:31292,35283:31623,35284:33457,35285:33499,35286:33540,35287:33655,35288:33775,35289:33747,35290:34662,35291:35506,35292:22057,35293:36008,35294:36838,35295:36942,35296:38686,35297:34442,35298:20420,35299:23784,35300:25105,35301:29273,35302:30011,35303:33253,35304:33469,35305:34558,35306:36032,35307:38597,35308:39187,35309:39381,35310:20171,35311:20250,35312:35299,35313:22238,35314:22602,35315:22730,35316:24315,35317:24555,35318:24618,35319:24724,35320:24674,35321:25040,35322:25106,35323:25296,35324:25913,35392:39745,35393:26214,35394:26800,35395:28023,35396:28784,35397:30028,35398:30342,35399:32117,35400:33445,35401:34809,35402:38283,35403:38542,35404:35997,35405:20977,35406:21182,35407:22806,35408:21683,35409:23475,35410:23830,35411:24936,35412:27010,35413:28079,35414:30861,35415:33995,35416:34903,35417:35442,35418:37799,35419:39608,35420:28012,35421:39336,35422:34521,35423:22435,35424:26623,35425:34510,35426:37390,35427:21123,35428:22151,35429:21508,35430:24275,35431:25313,35432:25785,35433:26684,35434:26680,35435:27579,35436:29554,35437:30906,35438:31339,35439:35226,35440:35282,35441:36203,35442:36611,35443:37101,35444:38307,35445:38548,35446:38761,35447:23398,35448:23731,35449:27005,35450:38989,35451:38990,35452:25499,35453:31520,35454:27179,35456:27263,35457:26806,35458:39949,35459:28511,35460:21106,35461:21917,35462:24688,35463:25324,35464:27963,35465:28167,35466:28369,35467:33883,35468:35088,35469:36676,35470:19988,35471:39993,35472:21494,35473:26907,35474:27194,35475:38788,35476:26666,35477:20828,35478:31427,35479:33970,35480:37340,35481:37772,35482:22107,35483:40232,35484:26658,35485:33541,35486:33841,35487:31909,35488:21e3,35489:33477,35490:29926,35491:20094,35492:20355,35493:20896,35494:23506,35495:21002,35496:21208,35497:21223,35498:24059,35499:21914,35500:22570,35501:23014,35502:23436,35503:23448,35504:23515,35505:24178,35506:24185,35507:24739,35508:24863,35509:24931,35510:25022,35511:25563,35512:25954,35513:26577,35514:26707,35515:26874,35516:27454,35517:27475,35518:27735,35519:28450,35520:28567,35521:28485,35522:29872,35523:29976,35524:30435,35525:30475,35526:31487,35527:31649,35528:31777,35529:32233,35530:32566,35531:32752,35532:32925,35533:33382,35534:33694,35535:35251,35536:35532,35537:36011,35538:36996,35539:37969,35540:38291,35541:38289,35542:38306,35543:38501,35544:38867,35545:39208,35546:33304,35547:20024,35548:21547,35549:23736,35550:24012,35551:29609,35552:30284,35553:30524,35554:23721,35555:32747,35556:36107,35557:38593,35558:38929,35559:38996,35560:39e3,35561:20225,35562:20238,35563:21361,35564:21916,35565:22120,35566:22522,35567:22855,35568:23305,35569:23492,35570:23696,35571:24076,35572:24190,35573:24524,35574:25582,35575:26426,35576:26071,35577:26082,35578:26399,35579:26827,35580:26820,35648:27231,35649:24112,35650:27589,35651:27671,35652:27773,35653:30079,35654:31048,35655:23395,35656:31232,35657:32e3,35658:24509,35659:35215,35660:35352,35661:36020,35662:36215,35663:36556,35664:36637,35665:39138,35666:39438,35667:39740,35668:20096,35669:20605,35670:20736,35671:22931,35672:23452,35673:25135,35674:25216,35675:25836,35676:27450,35677:29344,35678:30097,35679:31047,35680:32681,35681:34811,35682:35516,35683:35696,35684:25516,35685:33738,35686:38816,35687:21513,35688:21507,35689:21931,35690:26708,35691:27224,35692:35440,35693:30759,35694:26485,35695:40653,35696:21364,35697:23458,35698:33050,35699:34384,35700:36870,35701:19992,35702:20037,35703:20167,35704:20241,35705:21450,35706:21560,35707:23470,35708:24339,35709:24613,35710:25937,35712:26429,35713:27714,35714:27762,35715:27875,35716:28792,35717:29699,35718:31350,35719:31406,35720:31496,35721:32026,35722:31998,35723:32102,35724:26087,35725:29275,35726:21435,35727:23621,35728:24040,35729:25298,35730:25312,35731:25369,35732:28192,35733:34394,35734:35377,35735:36317,35736:37624,35737:28417,35738:31142,35739:39770,35740:20136,35741:20139,35742:20140,35743:20379,35744:20384,35745:20689,35746:20807,35747:31478,35748:20849,35749:20982,35750:21332,35751:21281,35752:21375,35753:21483,35754:21932,35755:22659,35756:23777,35757:24375,35758:24394,35759:24623,35760:24656,35761:24685,35762:25375,35763:25945,35764:27211,35765:27841,35766:29378,35767:29421,35768:30703,35769:33016,35770:33029,35771:33288,35772:34126,35773:37111,35774:37857,35775:38911,35776:39255,35777:39514,35778:20208,35779:20957,35780:23597,35781:26241,35782:26989,35783:23616,35784:26354,35785:26997,35786:29577,35787:26704,35788:31873,35789:20677,35790:21220,35791:22343,35792:24062,35793:37670,35794:26020,35795:27427,35796:27453,35797:29748,35798:31105,35799:31165,35800:31563,35801:32202,35802:33465,35803:33740,35804:34943,35805:35167,35806:35641,35807:36817,35808:37329,35809:21535,35810:37504,35811:20061,35812:20534,35813:21477,35814:21306,35815:29399,35816:29590,35817:30697,35818:33510,35819:36527,35820:39366,35821:39368,35822:39378,35823:20855,35824:24858,35825:34398,35826:21936,35827:31354,35828:20598,35829:23507,35830:36935,35831:38533,35832:20018,35833:27355,35834:37351,35835:23633,35836:23624,35904:25496,35905:31391,35906:27795,35907:38772,35908:36705,35909:31402,35910:29066,35911:38536,35912:31874,35913:26647,35914:32368,35915:26705,35916:37740,35917:21234,35918:21531,35919:34219,35920:35347,35921:32676,35922:36557,35923:37089,35924:21350,35925:34952,35926:31041,35927:20418,35928:20670,35929:21009,35930:20804,35931:21843,35932:22317,35933:29674,35934:22411,35935:22865,35936:24418,35937:24452,35938:24693,35939:24950,35940:24935,35941:25001,35942:25522,35943:25658,35944:25964,35945:26223,35946:26690,35947:28179,35948:30054,35949:31293,35950:31995,35951:32076,35952:32153,35953:32331,35954:32619,35955:33550,35956:33610,35957:34509,35958:35336,35959:35427,35960:35686,35961:36605,35962:38938,35963:40335,35964:33464,35965:36814,35966:39912,35968:21127,35969:25119,35970:25731,35971:28608,35972:38553,35973:26689,35974:20625,35975:27424,35976:27770,35977:28500,35978:31348,35979:32080,35980:34880,35981:35363,35982:26376,35983:20214,35984:20537,35985:20518,35986:20581,35987:20860,35988:21048,35989:21091,35990:21927,35991:22287,35992:22533,35993:23244,35994:24314,35995:25010,35996:25080,35997:25331,35998:25458,35999:26908,36e3:27177,36001:29309,36002:29356,36003:29486,36004:30740,36005:30831,36006:32121,36007:30476,36008:32937,36009:35211,36010:35609,36011:36066,36012:36562,36013:36963,36014:37749,36015:38522,36016:38997,36017:39443,36018:40568,36019:20803,36020:21407,36021:21427,36022:24187,36023:24358,36024:28187,36025:28304,36026:29572,36027:29694,36028:32067,36029:33335,36030:35328,36031:35578,36032:38480,36033:20046,36034:20491,36035:21476,36036:21628,36037:22266,36038:22993,36039:23396,36040:24049,36041:24235,36042:24359,36043:25144,36044:25925,36045:26543,36046:28246,36047:29392,36048:31946,36049:34996,36050:32929,36051:32993,36052:33776,36053:34382,36054:35463,36055:36328,36056:37431,36057:38599,36058:39015,36059:40723,36060:20116,36061:20114,36062:20237,36063:21320,36064:21577,36065:21566,36066:23087,36067:24460,36068:24481,36069:24735,36070:26791,36071:27278,36072:29786,36073:30849,36074:35486,36075:35492,36076:35703,36077:37264,36078:20062,36079:39881,36080:20132,36081:20348,36082:20399,36083:20505,36084:20502,36085:20809,36086:20844,36087:21151,36088:21177,36089:21246,36090:21402,36091:21475,36092:21521,36160:21518,36161:21897,36162:22353,36163:22434,36164:22909,36165:23380,36166:23389,36167:23439,36168:24037,36169:24039,36170:24055,36171:24184,36172:24195,36173:24218,36174:24247,36175:24344,36176:24658,36177:24908,36178:25239,36179:25304,36180:25511,36181:25915,36182:26114,36183:26179,36184:26356,36185:26477,36186:26657,36187:26775,36188:27083,36189:27743,36190:27946,36191:28009,36192:28207,36193:28317,36194:30002,36195:30343,36196:30828,36197:31295,36198:31968,36199:32005,36200:32024,36201:32094,36202:32177,36203:32789,36204:32771,36205:32943,36206:32945,36207:33108,36208:33167,36209:33322,36210:33618,36211:34892,36212:34913,36213:35611,36214:36002,36215:36092,36216:37066,36217:37237,36218:37489,36219:30783,36220:37628,36221:38308,36222:38477,36224:38917,36225:39321,36226:39640,36227:40251,36228:21083,36229:21163,36230:21495,36231:21512,36232:22741,36233:25335,36234:28640,36235:35946,36236:36703,36237:40633,36238:20811,36239:21051,36240:21578,36241:22269,36242:31296,36243:37239,36244:40288,36245:40658,36246:29508,36247:28425,36248:33136,36249:29969,36250:24573,36251:24794,36252:39592,36253:29403,36254:36796,36255:27492,36256:38915,36257:20170,36258:22256,36259:22372,36260:22718,36261:23130,36262:24680,36263:25031,36264:26127,36265:26118,36266:26681,36267:26801,36268:28151,36269:30165,36270:32058,36271:33390,36272:39746,36273:20123,36274:20304,36275:21449,36276:21766,36277:23919,36278:24038,36279:24046,36280:26619,36281:27801,36282:29811,36283:30722,36284:35408,36285:37782,36286:35039,36287:22352,36288:24231,36289:25387,36290:20661,36291:20652,36292:20877,36293:26368,36294:21705,36295:22622,36296:22971,36297:23472,36298:24425,36299:25165,36300:25505,36301:26685,36302:27507,36303:28168,36304:28797,36305:37319,36306:29312,36307:30741,36308:30758,36309:31085,36310:25998,36311:32048,36312:33756,36313:35009,36314:36617,36315:38555,36316:21092,36317:22312,36318:26448,36319:32618,36320:36001,36321:20916,36322:22338,36323:38442,36324:22586,36325:27018,36326:32948,36327:21682,36328:23822,36329:22524,36330:30869,36331:40442,36332:20316,36333:21066,36334:21643,36335:25662,36336:26152,36337:26388,36338:26613,36339:31364,36340:31574,36341:32034,36342:37679,36343:26716,36344:39853,36345:31545,36346:21273,36347:20874,36348:21047,36416:23519,36417:25334,36418:25774,36419:25830,36420:26413,36421:27578,36422:34217,36423:38609,36424:30352,36425:39894,36426:25420,36427:37638,36428:39851,36429:30399,36430:26194,36431:19977,36432:20632,36433:21442,36434:23665,36435:24808,36436:25746,36437:25955,36438:26719,36439:29158,36440:29642,36441:29987,36442:31639,36443:32386,36444:34453,36445:35715,36446:36059,36447:37240,36448:39184,36449:26028,36450:26283,36451:27531,36452:20181,36453:20180,36454:20282,36455:20351,36456:21050,36457:21496,36458:21490,36459:21987,36460:22235,36461:22763,36462:22987,36463:22985,36464:23039,36465:23376,36466:23629,36467:24066,36468:24107,36469:24535,36470:24605,36471:25351,36472:25903,36473:23388,36474:26031,36475:26045,36476:26088,36477:26525,36478:27490,36480:27515,36481:27663,36482:29509,36483:31049,36484:31169,36485:31992,36486:32025,36487:32043,36488:32930,36489:33026,36490:33267,36491:35222,36492:35422,36493:35433,36494:35430,36495:35468,36496:35566,36497:36039,36498:36060,36499:38604,36500:39164,36501:27503,36502:20107,36503:20284,36504:20365,36505:20816,36506:23383,36507:23546,36508:24904,36509:25345,36510:26178,36511:27425,36512:28363,36513:27835,36514:29246,36515:29885,36516:30164,36517:30913,36518:31034,36519:32780,36520:32819,36521:33258,36522:33940,36523:36766,36524:27728,36525:40575,36526:24335,36527:35672,36528:40235,36529:31482,36530:36600,36531:23437,36532:38635,36533:19971,36534:21489,36535:22519,36536:22833,36537:23241,36538:23460,36539:24713,36540:28287,36541:28422,36542:30142,36543:36074,36544:23455,36545:34048,36546:31712,36547:20594,36548:26612,36549:33437,36550:23649,36551:34122,36552:32286,36553:33294,36554:20889,36555:23556,36556:25448,36557:36198,36558:26012,36559:29038,36560:31038,36561:32023,36562:32773,36563:35613,36564:36554,36565:36974,36566:34503,36567:37034,36568:20511,36569:21242,36570:23610,36571:26451,36572:28796,36573:29237,36574:37196,36575:37320,36576:37675,36577:33509,36578:23490,36579:24369,36580:24825,36581:20027,36582:21462,36583:23432,36584:25163,36585:26417,36586:27530,36587:29417,36588:29664,36589:31278,36590:33131,36591:36259,36592:37202,36593:39318,36594:20754,36595:21463,36596:21610,36597:23551,36598:25480,36599:27193,36600:32172,36601:38656,36602:22234,36603:21454,36604:21608,36672:23447,36673:23601,36674:24030,36675:20462,36676:24833,36677:25342,36678:27954,36679:31168,36680:31179,36681:32066,36682:32333,36683:32722,36684:33261,36685:33311,36686:33936,36687:34886,36688:35186,36689:35728,36690:36468,36691:36655,36692:36913,36693:37195,36694:37228,36695:38598,36696:37276,36697:20160,36698:20303,36699:20805,36700:21313,36701:24467,36702:25102,36703:26580,36704:27713,36705:28171,36706:29539,36707:32294,36708:37325,36709:37507,36710:21460,36711:22809,36712:23487,36713:28113,36714:31069,36715:32302,36716:31899,36717:22654,36718:29087,36719:20986,36720:34899,36721:36848,36722:20426,36723:23803,36724:26149,36725:30636,36726:31459,36727:33308,36728:39423,36729:20934,36730:24490,36731:26092,36732:26991,36733:27529,36734:28147,36736:28310,36737:28516,36738:30462,36739:32020,36740:24033,36741:36981,36742:37255,36743:38918,36744:20966,36745:21021,36746:25152,36747:26257,36748:26329,36749:28186,36750:24246,36751:32210,36752:32626,36753:26360,36754:34223,36755:34295,36756:35576,36757:21161,36758:21465,36759:22899,36760:24207,36761:24464,36762:24661,36763:37604,36764:38500,36765:20663,36766:20767,36767:21213,36768:21280,36769:21319,36770:21484,36771:21736,36772:21830,36773:21809,36774:22039,36775:22888,36776:22974,36777:23100,36778:23477,36779:23558,36780:23567,36781:23569,36782:23578,36783:24196,36784:24202,36785:24288,36786:24432,36787:25215,36788:25220,36789:25307,36790:25484,36791:25463,36792:26119,36793:26124,36794:26157,36795:26230,36796:26494,36797:26786,36798:27167,36799:27189,36800:27836,36801:28040,36802:28169,36803:28248,36804:28988,36805:28966,36806:29031,36807:30151,36808:30465,36809:30813,36810:30977,36811:31077,36812:31216,36813:31456,36814:31505,36815:31911,36816:32057,36817:32918,36818:33750,36819:33931,36820:34121,36821:34909,36822:35059,36823:35359,36824:35388,36825:35412,36826:35443,36827:35937,36828:36062,36829:37284,36830:37478,36831:37758,36832:37912,36833:38556,36834:38808,36835:19978,36836:19976,36837:19998,36838:20055,36839:20887,36840:21104,36841:22478,36842:22580,36843:22732,36844:23330,36845:24120,36846:24773,36847:25854,36848:26465,36849:26454,36850:27972,36851:29366,36852:30067,36853:31331,36854:33976,36855:35698,36856:37304,36857:37664,36858:22065,36859:22516,36860:39166,36928:25325,36929:26893,36930:27542,36931:29165,36932:32340,36933:32887,36934:33394,36935:35302,36936:39135,36937:34645,36938:36785,36939:23611,36940:20280,36941:20449,36942:20405,36943:21767,36944:23072,36945:23517,36946:23529,36947:24515,36948:24910,36949:25391,36950:26032,36951:26187,36952:26862,36953:27035,36954:28024,36955:28145,36956:30003,36957:30137,36958:30495,36959:31070,36960:31206,36961:32051,36962:33251,36963:33455,36964:34218,36965:35242,36966:35386,36967:36523,36968:36763,36969:36914,36970:37341,36971:38663,36972:20154,36973:20161,36974:20995,36975:22645,36976:22764,36977:23563,36978:29978,36979:23613,36980:33102,36981:35338,36982:36805,36983:38499,36984:38765,36985:31525,36986:35535,36987:38920,36988:37218,36989:22259,36990:21416,36992:36887,36993:21561,36994:22402,36995:24101,36996:25512,36997:27700,36998:28810,36999:30561,37e3:31883,37001:32736,37002:34928,37003:36930,37004:37204,37005:37648,37006:37656,37007:38543,37008:29790,37009:39620,37010:23815,37011:23913,37012:25968,37013:26530,37014:36264,37015:38619,37016:25454,37017:26441,37018:26905,37019:33733,37020:38935,37021:38592,37022:35070,37023:28548,37024:25722,37025:23544,37026:19990,37027:28716,37028:30045,37029:26159,37030:20932,37031:21046,37032:21218,37033:22995,37034:24449,37035:24615,37036:25104,37037:25919,37038:25972,37039:26143,37040:26228,37041:26866,37042:26646,37043:27491,37044:28165,37045:29298,37046:29983,37047:30427,37048:31934,37049:32854,37050:22768,37051:35069,37052:35199,37053:35488,37054:35475,37055:35531,37056:36893,37057:37266,37058:38738,37059:38745,37060:25993,37061:31246,37062:33030,37063:38587,37064:24109,37065:24796,37066:25114,37067:26021,37068:26132,37069:26512,37070:30707,37071:31309,37072:31821,37073:32318,37074:33034,37075:36012,37076:36196,37077:36321,37078:36447,37079:30889,37080:20999,37081:25305,37082:25509,37083:25666,37084:25240,37085:35373,37086:31363,37087:31680,37088:35500,37089:38634,37090:32118,37091:33292,37092:34633,37093:20185,37094:20808,37095:21315,37096:21344,37097:23459,37098:23554,37099:23574,37100:24029,37101:25126,37102:25159,37103:25776,37104:26643,37105:26676,37106:27849,37107:27973,37108:27927,37109:26579,37110:28508,37111:29006,37112:29053,37113:26059,37114:31359,37115:31661,37116:32218,37184:32330,37185:32680,37186:33146,37187:33307,37188:33337,37189:34214,37190:35438,37191:36046,37192:36341,37193:36984,37194:36983,37195:37549,37196:37521,37197:38275,37198:39854,37199:21069,37200:21892,37201:28472,37202:28982,37203:20840,37204:31109,37205:32341,37206:33203,37207:31950,37208:22092,37209:22609,37210:23720,37211:25514,37212:26366,37213:26365,37214:26970,37215:29401,37216:30095,37217:30094,37218:30990,37219:31062,37220:31199,37221:31895,37222:32032,37223:32068,37224:34311,37225:35380,37226:38459,37227:36961,37228:40736,37229:20711,37230:21109,37231:21452,37232:21474,37233:20489,37234:21930,37235:22766,37236:22863,37237:29245,37238:23435,37239:23652,37240:21277,37241:24803,37242:24819,37243:25436,37244:25475,37245:25407,37246:25531,37248:25805,37249:26089,37250:26361,37251:24035,37252:27085,37253:27133,37254:28437,37255:29157,37256:20105,37257:30185,37258:30456,37259:31379,37260:31967,37261:32207,37262:32156,37263:32865,37264:33609,37265:33624,37266:33900,37267:33980,37268:34299,37269:35013,37270:36208,37271:36865,37272:36973,37273:37783,37274:38684,37275:39442,37276:20687,37277:22679,37278:24974,37279:33235,37280:34101,37281:36104,37282:36896,37283:20419,37284:20596,37285:21063,37286:21363,37287:24687,37288:25417,37289:26463,37290:28204,37291:36275,37292:36895,37293:20439,37294:23646,37295:36042,37296:26063,37297:32154,37298:21330,37299:34966,37300:20854,37301:25539,37302:23384,37303:23403,37304:23562,37305:25613,37306:26449,37307:36956,37308:20182,37309:22810,37310:22826,37311:27760,37312:35409,37313:21822,37314:22549,37315:22949,37316:24816,37317:25171,37318:26561,37319:33333,37320:26965,37321:38464,37322:39364,37323:39464,37324:20307,37325:22534,37326:23550,37327:32784,37328:23729,37329:24111,37330:24453,37331:24608,37332:24907,37333:25140,37334:26367,37335:27888,37336:28382,37337:32974,37338:33151,37339:33492,37340:34955,37341:36024,37342:36864,37343:36910,37344:38538,37345:40667,37346:39899,37347:20195,37348:21488,37349:22823,37350:31532,37351:37261,37352:38988,37353:40441,37354:28381,37355:28711,37356:21331,37357:21828,37358:23429,37359:25176,37360:25246,37361:25299,37362:27810,37363:28655,37364:29730,37365:35351,37366:37944,37367:28609,37368:35582,37369:33592,37370:20967,37371:34552,37372:21482,37440:21481,37441:20294,37442:36948,37443:36784,37444:22890,37445:33073,37446:24061,37447:31466,37448:36799,37449:26842,37450:35895,37451:29432,37452:40008,37453:27197,37454:35504,37455:20025,37456:21336,37457:22022,37458:22374,37459:25285,37460:25506,37461:26086,37462:27470,37463:28129,37464:28251,37465:28845,37466:30701,37467:31471,37468:31658,37469:32187,37470:32829,37471:32966,37472:34507,37473:35477,37474:37723,37475:22243,37476:22727,37477:24382,37478:26029,37479:26262,37480:27264,37481:27573,37482:30007,37483:35527,37484:20516,37485:30693,37486:22320,37487:24347,37488:24677,37489:26234,37490:27744,37491:30196,37492:31258,37493:32622,37494:33268,37495:34584,37496:36933,37497:39347,37498:31689,37499:30044,37500:31481,37501:31569,37502:33988,37504:36880,37505:31209,37506:31378,37507:33590,37508:23265,37509:30528,37510:20013,37511:20210,37512:23449,37513:24544,37514:25277,37515:26172,37516:26609,37517:27880,37518:34411,37519:34935,37520:35387,37521:37198,37522:37619,37523:39376,37524:27159,37525:28710,37526:29482,37527:33511,37528:33879,37529:36015,37530:19969,37531:20806,37532:20939,37533:21899,37534:23541,37535:24086,37536:24115,37537:24193,37538:24340,37539:24373,37540:24427,37541:24500,37542:25074,37543:25361,37544:26274,37545:26397,37546:28526,37547:29266,37548:30010,37549:30522,37550:32884,37551:33081,37552:33144,37553:34678,37554:35519,37555:35548,37556:36229,37557:36339,37558:37530,37559:38263,37560:38914,37561:40165,37562:21189,37563:25431,37564:30452,37565:26389,37566:27784,37567:29645,37568:36035,37569:37806,37570:38515,37571:27941,37572:22684,37573:26894,37574:27084,37575:36861,37576:37786,37577:30171,37578:36890,37579:22618,37580:26626,37581:25524,37582:27131,37583:20291,37584:28460,37585:26584,37586:36795,37587:34086,37588:32180,37589:37716,37590:26943,37591:28528,37592:22378,37593:22775,37594:23340,37595:32044,37596:29226,37597:21514,37598:37347,37599:40372,37600:20141,37601:20302,37602:20572,37603:20597,37604:21059,37605:35998,37606:21576,37607:22564,37608:23450,37609:24093,37610:24213,37611:24237,37612:24311,37613:24351,37614:24716,37615:25269,37616:25402,37617:25552,37618:26799,37619:27712,37620:30855,37621:31118,37622:31243,37623:32224,37624:33351,37625:35330,37626:35558,37627:36420,37628:36883,37696:37048,37697:37165,37698:37336,37699:40718,37700:27877,37701:25688,37702:25826,37703:25973,37704:28404,37705:30340,37706:31515,37707:36969,37708:37841,37709:28346,37710:21746,37711:24505,37712:25764,37713:36685,37714:36845,37715:37444,37716:20856,37717:22635,37718:22825,37719:23637,37720:24215,37721:28155,37722:32399,37723:29980,37724:36028,37725:36578,37726:39003,37727:28857,37728:20253,37729:27583,37730:28593,37731:3e4,37732:38651,37733:20814,37734:21520,37735:22581,37736:22615,37737:22956,37738:23648,37739:24466,37740:26007,37741:26460,37742:28193,37743:30331,37744:33759,37745:36077,37746:36884,37747:37117,37748:37709,37749:30757,37750:30778,37751:21162,37752:24230,37753:22303,37754:22900,37755:24594,37756:20498,37757:20826,37758:20908,37760:20941,37761:20992,37762:21776,37763:22612,37764:22616,37765:22871,37766:23445,37767:23798,37768:23947,37769:24764,37770:25237,37771:25645,37772:26481,37773:26691,37774:26812,37775:26847,37776:30423,37777:28120,37778:28271,37779:28059,37780:28783,37781:29128,37782:24403,37783:30168,37784:31095,37785:31561,37786:31572,37787:31570,37788:31958,37789:32113,37790:21040,37791:33891,37792:34153,37793:34276,37794:35342,37795:35588,37796:35910,37797:36367,37798:36867,37799:36879,37800:37913,37801:38518,37802:38957,37803:39472,37804:38360,37805:20685,37806:21205,37807:21516,37808:22530,37809:23566,37810:24999,37811:25758,37812:27934,37813:30643,37814:31461,37815:33012,37816:33796,37817:36947,37818:37509,37819:23776,37820:40199,37821:21311,37822:24471,37823:24499,37824:28060,37825:29305,37826:30563,37827:31167,37828:31716,37829:27602,37830:29420,37831:35501,37832:26627,37833:27233,37834:20984,37835:31361,37836:26932,37837:23626,37838:40182,37839:33515,37840:23493,37841:37193,37842:28702,37843:22136,37844:23663,37845:24775,37846:25958,37847:27788,37848:35930,37849:36929,37850:38931,37851:21585,37852:26311,37853:37389,37854:22856,37855:37027,37856:20869,37857:20045,37858:20970,37859:34201,37860:35598,37861:28760,37862:25466,37863:37707,37864:26978,37865:39348,37866:32260,37867:30071,37868:21335,37869:26976,37870:36575,37871:38627,37872:27741,37873:20108,37874:23612,37875:24336,37876:36841,37877:21250,37878:36049,37879:32905,37880:34425,37881:24319,37882:26085,37883:20083,37884:20837,37952:22914,37953:23615,37954:38894,37955:20219,37956:22922,37957:24525,37958:35469,37959:28641,37960:31152,37961:31074,37962:23527,37963:33905,37964:29483,37965:29105,37966:24180,37967:24565,37968:25467,37969:25754,37970:29123,37971:31896,37972:20035,37973:24316,37974:20043,37975:22492,37976:22178,37977:24745,37978:28611,37979:32013,37980:33021,37981:33075,37982:33215,37983:36786,37984:35223,37985:34468,37986:24052,37987:25226,37988:25773,37989:35207,37990:26487,37991:27874,37992:27966,37993:29750,37994:30772,37995:23110,37996:32629,37997:33453,37998:39340,37999:20467,38e3:24259,38001:25309,38002:25490,38003:25943,38004:26479,38005:30403,38006:29260,38007:32972,38008:32954,38009:36649,38010:37197,38011:20493,38012:22521,38013:23186,38014:26757,38016:26995,38017:29028,38018:29437,38019:36023,38020:22770,38021:36064,38022:38506,38023:36889,38024:34687,38025:31204,38026:30695,38027:33833,38028:20271,38029:21093,38030:21338,38031:25293,38032:26575,38033:27850,38034:30333,38035:31636,38036:31893,38037:33334,38038:34180,38039:36843,38040:26333,38041:28448,38042:29190,38043:32283,38044:33707,38045:39361,38046:40614,38047:20989,38048:31665,38049:30834,38050:31672,38051:32903,38052:31560,38053:27368,38054:24161,38055:32908,38056:30033,38057:30048,38058:20843,38059:37474,38060:28300,38061:30330,38062:37271,38063:39658,38064:20240,38065:32624,38066:25244,38067:31567,38068:38309,38069:40169,38070:22138,38071:22617,38072:34532,38073:38588,38074:20276,38075:21028,38076:21322,38077:21453,38078:21467,38079:24070,38080:25644,38081:26001,38082:26495,38083:27710,38084:27726,38085:29256,38086:29359,38087:29677,38088:30036,38089:32321,38090:33324,38091:34281,38092:36009,38093:31684,38094:37318,38095:29033,38096:38930,38097:39151,38098:25405,38099:26217,38100:30058,38101:30436,38102:30928,38103:34115,38104:34542,38105:21290,38106:21329,38107:21542,38108:22915,38109:24199,38110:24444,38111:24754,38112:25161,38113:25209,38114:25259,38115:26e3,38116:27604,38117:27852,38118:30130,38119:30382,38120:30865,38121:31192,38122:32203,38123:32631,38124:32933,38125:34987,38126:35513,38127:36027,38128:36991,38129:38750,38130:39131,38131:27147,38132:31800,38133:20633,38134:23614,38135:24494,38136:26503,38137:27608,38138:29749,38139:30473,38140:32654,38208:40763,38209:26570,38210:31255,38211:21305,38212:30091,38213:39661,38214:24422,38215:33181,38216:33777,38217:32920,38218:24380,38219:24517,38220:30050,38221:31558,38222:36924,38223:26727,38224:23019,38225:23195,38226:32016,38227:30334,38228:35628,38229:20469,38230:24426,38231:27161,38232:27703,38233:28418,38234:29922,38235:31080,38236:34920,38237:35413,38238:35961,38239:24287,38240:25551,38241:30149,38242:31186,38243:33495,38244:37672,38245:37618,38246:33948,38247:34541,38248:39981,38249:21697,38250:24428,38251:25996,38252:27996,38253:28693,38254:36007,38255:36051,38256:38971,38257:25935,38258:29942,38259:19981,38260:20184,38261:22496,38262:22827,38263:23142,38264:23500,38265:20904,38266:24067,38267:24220,38268:24598,38269:25206,38270:25975,38272:26023,38273:26222,38274:28014,38275:29238,38276:31526,38277:33104,38278:33178,38279:33433,38280:35676,38281:36e3,38282:36070,38283:36212,38284:38428,38285:38468,38286:20398,38287:25771,38288:27494,38289:33310,38290:33889,38291:34154,38292:37096,38293:23553,38294:26963,38295:39080,38296:33914,38297:34135,38298:20239,38299:21103,38300:24489,38301:24133,38302:26381,38303:31119,38304:33145,38305:35079,38306:35206,38307:28149,38308:24343,38309:25173,38310:27832,38311:20175,38312:29289,38313:39826,38314:20998,38315:21563,38316:22132,38317:22707,38318:24996,38319:25198,38320:28954,38321:22894,38322:31881,38323:31966,38324:32027,38325:38640,38326:25991,38327:32862,38328:19993,38329:20341,38330:20853,38331:22592,38332:24163,38333:24179,38334:24330,38335:26564,38336:20006,38337:34109,38338:38281,38339:38491,38340:31859,38341:38913,38342:20731,38343:22721,38344:30294,38345:30887,38346:21029,38347:30629,38348:34065,38349:31622,38350:20559,38351:22793,38352:29255,38353:31687,38354:32232,38355:36794,38356:36820,38357:36941,38358:20415,38359:21193,38360:23081,38361:24321,38362:38829,38363:20445,38364:33303,38365:37610,38366:22275,38367:25429,38368:27497,38369:29995,38370:35036,38371:36628,38372:31298,38373:21215,38374:22675,38375:24917,38376:25098,38377:26286,38378:27597,38379:31807,38380:33769,38381:20515,38382:20472,38383:21253,38384:21574,38385:22577,38386:22857,38387:23453,38388:23792,38389:23791,38390:23849,38391:24214,38392:25265,38393:25447,38394:25918,38395:26041,38396:26379,38464:27861,38465:27873,38466:28921,38467:30770,38468:32299,38469:32990,38470:33459,38471:33804,38472:34028,38473:34562,38474:35090,38475:35370,38476:35914,38477:37030,38478:37586,38479:39165,38480:40179,38481:40300,38482:20047,38483:20129,38484:20621,38485:21078,38486:22346,38487:22952,38488:24125,38489:24536,38490:24537,38491:25151,38492:26292,38493:26395,38494:26576,38495:26834,38496:20882,38497:32033,38498:32938,38499:33192,38500:35584,38501:35980,38502:36031,38503:37502,38504:38450,38505:21536,38506:38956,38507:21271,38508:20693,38509:21340,38510:22696,38511:25778,38512:26420,38513:29287,38514:30566,38515:31302,38516:37350,38517:21187,38518:27809,38519:27526,38520:22528,38521:24140,38522:22868,38523:26412,38524:32763,38525:20961,38526:30406,38528:25705,38529:30952,38530:39764,38531:40635,38532:22475,38533:22969,38534:26151,38535:26522,38536:27598,38537:21737,38538:27097,38539:24149,38540:33180,38541:26517,38542:39850,38543:26622,38544:40018,38545:26717,38546:20134,38547:20451,38548:21448,38549:25273,38550:26411,38551:27819,38552:36804,38553:20397,38554:32365,38555:40639,38556:19975,38557:24930,38558:28288,38559:28459,38560:34067,38561:21619,38562:26410,38563:39749,38564:24051,38565:31637,38566:23724,38567:23494,38568:34588,38569:28234,38570:34001,38571:31252,38572:33032,38573:22937,38574:31885,38575:27665,38576:30496,38577:21209,38578:22818,38579:28961,38580:29279,38581:30683,38582:38695,38583:40289,38584:26891,38585:23167,38586:23064,38587:20901,38588:21517,38589:21629,38590:26126,38591:30431,38592:36855,38593:37528,38594:40180,38595:23018,38596:29277,38597:28357,38598:20813,38599:26825,38600:32191,38601:32236,38602:38754,38603:40634,38604:25720,38605:27169,38606:33538,38607:22916,38608:23391,38609:27611,38610:29467,38611:30450,38612:32178,38613:32791,38614:33945,38615:20786,38616:26408,38617:40665,38618:30446,38619:26466,38620:21247,38621:39173,38622:23588,38623:25147,38624:31870,38625:36016,38626:21839,38627:24758,38628:32011,38629:38272,38630:21249,38631:20063,38632:20918,38633:22812,38634:29242,38635:32822,38636:37326,38637:24357,38638:30690,38639:21380,38640:24441,38641:32004,38642:34220,38643:35379,38644:36493,38645:38742,38646:26611,38647:34222,38648:37971,38649:24841,38650:24840,38651:27833,38652:30290,38720:35565,38721:36664,38722:21807,38723:20305,38724:20778,38725:21191,38726:21451,38727:23461,38728:24189,38729:24736,38730:24962,38731:25558,38732:26377,38733:26586,38734:28263,38735:28044,38736:29494,38737:29495,38738:30001,38739:31056,38740:35029,38741:35480,38742:36938,38743:37009,38744:37109,38745:38596,38746:34701,38747:22805,38748:20104,38749:20313,38750:19982,38751:35465,38752:36671,38753:38928,38754:20653,38755:24188,38756:22934,38757:23481,38758:24248,38759:25562,38760:25594,38761:25793,38762:26332,38763:26954,38764:27096,38765:27915,38766:28342,38767:29076,38768:29992,38769:31407,38770:32650,38771:32768,38772:33865,38773:33993,38774:35201,38775:35617,38776:36362,38777:36965,38778:38525,38779:39178,38780:24958,38781:25233,38782:27442,38784:27779,38785:28020,38786:32716,38787:32764,38788:28096,38789:32645,38790:34746,38791:35064,38792:26469,38793:33713,38794:38972,38795:38647,38796:27931,38797:32097,38798:33853,38799:37226,38800:20081,38801:21365,38802:23888,38803:27396,38804:28651,38805:34253,38806:34349,38807:35239,38808:21033,38809:21519,38810:23653,38811:26446,38812:26792,38813:29702,38814:29827,38815:30178,38816:35023,38817:35041,38818:37324,38819:38626,38820:38520,38821:24459,38822:29575,38823:31435,38824:33870,38825:25504,38826:30053,38827:21129,38828:27969,38829:28316,38830:29705,38831:30041,38832:30827,38833:31890,38834:38534,38835:31452,38836:40845,38837:20406,38838:24942,38839:26053,38840:34396,38841:20102,38842:20142,38843:20698,38844:20001,38845:20940,38846:23534,38847:26009,38848:26753,38849:28092,38850:29471,38851:30274,38852:30637,38853:31260,38854:31975,38855:33391,38856:35538,38857:36988,38858:37327,38859:38517,38860:38936,38861:21147,38862:32209,38863:20523,38864:21400,38865:26519,38866:28107,38867:29136,38868:29747,38869:33256,38870:36650,38871:38563,38872:40023,38873:40607,38874:29792,38875:22593,38876:28057,38877:32047,38878:39006,38879:20196,38880:20278,38881:20363,38882:20919,38883:21169,38884:23994,38885:24604,38886:29618,38887:31036,38888:33491,38889:37428,38890:38583,38891:38646,38892:38666,38893:40599,38894:40802,38895:26278,38896:27508,38897:21015,38898:21155,38899:28872,38900:35010,38901:24265,38902:24651,38903:24976,38904:28451,38905:29001,38906:31806,38907:32244,38908:32879,38976:34030,38977:36899,38978:37676,38979:21570,38980:39791,38981:27347,38982:28809,38983:36034,38984:36335,38985:38706,38986:21172,38987:23105,38988:24266,38989:24324,38990:26391,38991:27004,38992:27028,38993:28010,38994:28431,38995:29282,38996:29436,38997:31725,38998:32769,38999:32894,39e3:34635,39001:37070,39002:20845,39003:40595,39004:31108,39005:32907,39006:37682,39007:35542,39008:20525,39009:21644,39010:35441,39011:27498,39012:36036,39013:33031,39014:24785,39015:26528,39016:40434,39017:20121,39018:20120,39019:39952,39020:35435,39021:34241,39022:34152,39023:26880,39024:28286,39025:30871,39026:33109,39071:24332,39072:19984,39073:19989,39074:20010,39075:20017,39076:20022,39077:20028,39078:20031,39079:20034,39080:20054,39081:20056,39082:20098,39083:20101,39084:35947,39085:20106,39086:33298,39087:24333,39088:20110,39089:20126,39090:20127,39091:20128,39092:20130,39093:20144,39094:20147,39095:20150,39096:20174,39097:20173,39098:20164,39099:20166,39100:20162,39101:20183,39102:20190,39103:20205,39104:20191,39105:20215,39106:20233,39107:20314,39108:20272,39109:20315,39110:20317,39111:20311,39112:20295,39113:20342,39114:20360,39115:20367,39116:20376,39117:20347,39118:20329,39119:20336,39120:20369,39121:20335,39122:20358,39123:20374,39124:20760,39125:20436,39126:20447,39127:20430,39128:20440,39129:20443,39130:20433,39131:20442,39132:20432,39133:20452,39134:20453,39135:20506,39136:20520,39137:20500,39138:20522,39139:20517,39140:20485,39141:20252,39142:20470,39143:20513,39144:20521,39145:20524,39146:20478,39147:20463,39148:20497,39149:20486,39150:20547,39151:20551,39152:26371,39153:20565,39154:20560,39155:20552,39156:20570,39157:20566,39158:20588,39159:20600,39160:20608,39161:20634,39162:20613,39163:20660,39164:20658,39232:20681,39233:20682,39234:20659,39235:20674,39236:20694,39237:20702,39238:20709,39239:20717,39240:20707,39241:20718,39242:20729,39243:20725,39244:20745,39245:20737,39246:20738,39247:20758,39248:20757,39249:20756,39250:20762,39251:20769,39252:20794,39253:20791,39254:20796,39255:20795,39256:20799,39257:20800,39258:20818,39259:20812,39260:20820,39261:20834,39262:31480,39263:20841,39264:20842,39265:20846,39266:20864,39267:20866,39268:22232,39269:20876,39270:20873,39271:20879,39272:20881,39273:20883,39274:20885,39275:20886,39276:20900,39277:20902,39278:20898,39279:20905,39280:20906,39281:20907,39282:20915,39283:20913,39284:20914,39285:20912,39286:20917,39287:20925,39288:20933,39289:20937,39290:20955,39291:20960,39292:34389,39293:20969,39294:20973,39296:20976,39297:20981,39298:20990,39299:20996,39300:21003,39301:21012,39302:21006,39303:21031,39304:21034,39305:21038,39306:21043,39307:21049,39308:21071,39309:21060,39310:21067,39311:21068,39312:21086,39313:21076,39314:21098,39315:21108,39316:21097,39317:21107,39318:21119,39319:21117,39320:21133,39321:21140,39322:21138,39323:21105,39324:21128,39325:21137,39326:36776,39327:36775,39328:21164,39329:21165,39330:21180,39331:21173,39332:21185,39333:21197,39334:21207,39335:21214,39336:21219,39337:21222,39338:39149,39339:21216,39340:21235,39341:21237,39342:21240,39343:21241,39344:21254,39345:21256,39346:30008,39347:21261,39348:21264,39349:21263,39350:21269,39351:21274,39352:21283,39353:21295,39354:21297,39355:21299,39356:21304,39357:21312,39358:21318,39359:21317,39360:19991,39361:21321,39362:21325,39363:20950,39364:21342,39365:21353,39366:21358,39367:22808,39368:21371,39369:21367,39370:21378,39371:21398,39372:21408,39373:21414,39374:21413,39375:21422,39376:21424,39377:21430,39378:21443,39379:31762,39380:38617,39381:21471,39382:26364,39383:29166,39384:21486,39385:21480,39386:21485,39387:21498,39388:21505,39389:21565,39390:21568,39391:21548,39392:21549,39393:21564,39394:21550,39395:21558,39396:21545,39397:21533,39398:21582,39399:21647,39400:21621,39401:21646,39402:21599,39403:21617,39404:21623,39405:21616,39406:21650,39407:21627,39408:21632,39409:21622,39410:21636,39411:21648,39412:21638,39413:21703,39414:21666,39415:21688,39416:21669,39417:21676,39418:21700,39419:21704,39420:21672,39488:21675,39489:21698,39490:21668,39491:21694,39492:21692,39493:21720,39494:21733,39495:21734,39496:21775,39497:21780,39498:21757,39499:21742,39500:21741,39501:21754,39502:21730,39503:21817,39504:21824,39505:21859,39506:21836,39507:21806,39508:21852,39509:21829,39510:21846,39511:21847,39512:21816,39513:21811,39514:21853,39515:21913,39516:21888,39517:21679,39518:21898,39519:21919,39520:21883,39521:21886,39522:21912,39523:21918,39524:21934,39525:21884,39526:21891,39527:21929,39528:21895,39529:21928,39530:21978,39531:21957,39532:21983,39533:21956,39534:21980,39535:21988,39536:21972,39537:22036,39538:22007,39539:22038,39540:22014,39541:22013,39542:22043,39543:22009,39544:22094,39545:22096,39546:29151,39547:22068,39548:22070,39549:22066,39550:22072,39552:22123,39553:22116,39554:22063,39555:22124,39556:22122,39557:22150,39558:22144,39559:22154,39560:22176,39561:22164,39562:22159,39563:22181,39564:22190,39565:22198,39566:22196,39567:22210,39568:22204,39569:22209,39570:22211,39571:22208,39572:22216,39573:22222,39574:22225,39575:22227,39576:22231,39577:22254,39578:22265,39579:22272,39580:22271,39581:22276,39582:22281,39583:22280,39584:22283,39585:22285,39586:22291,39587:22296,39588:22294,39589:21959,39590:22300,39591:22310,39592:22327,39593:22328,39594:22350,39595:22331,39596:22336,39597:22351,39598:22377,39599:22464,39600:22408,39601:22369,39602:22399,39603:22409,39604:22419,39605:22432,39606:22451,39607:22436,39608:22442,39609:22448,39610:22467,39611:22470,39612:22484,39613:22482,39614:22483,39615:22538,39616:22486,39617:22499,39618:22539,39619:22553,39620:22557,39621:22642,39622:22561,39623:22626,39624:22603,39625:22640,39626:27584,39627:22610,39628:22589,39629:22649,39630:22661,39631:22713,39632:22687,39633:22699,39634:22714,39635:22750,39636:22715,39637:22712,39638:22702,39639:22725,39640:22739,39641:22737,39642:22743,39643:22745,39644:22744,39645:22757,39646:22748,39647:22756,39648:22751,39649:22767,39650:22778,39651:22777,39652:22779,39653:22780,39654:22781,39655:22786,39656:22794,39657:22800,39658:22811,39659:26790,39660:22821,39661:22828,39662:22829,39663:22834,39664:22840,39665:22846,39666:31442,39667:22869,39668:22864,39669:22862,39670:22874,39671:22872,39672:22882,39673:22880,39674:22887,39675:22892,39676:22889,39744:22904,39745:22913,39746:22941,39747:20318,39748:20395,39749:22947,39750:22962,39751:22982,39752:23016,39753:23004,39754:22925,39755:23001,39756:23002,39757:23077,39758:23071,39759:23057,39760:23068,39761:23049,39762:23066,39763:23104,39764:23148,39765:23113,39766:23093,39767:23094,39768:23138,39769:23146,39770:23194,39771:23228,39772:23230,39773:23243,39774:23234,39775:23229,39776:23267,39777:23255,39778:23270,39779:23273,39780:23254,39781:23290,39782:23291,39783:23308,39784:23307,39785:23318,39786:23346,39787:23248,39788:23338,39789:23350,39790:23358,39791:23363,39792:23365,39793:23360,39794:23377,39795:23381,39796:23386,39797:23387,39798:23397,39799:23401,39800:23408,39801:23411,39802:23413,39803:23416,39804:25992,39805:23418,39806:23424,39808:23427,39809:23462,39810:23480,39811:23491,39812:23495,39813:23497,39814:23508,39815:23504,39816:23524,39817:23526,39818:23522,39819:23518,39820:23525,39821:23531,39822:23536,39823:23542,39824:23539,39825:23557,39826:23559,39827:23560,39828:23565,39829:23571,39830:23584,39831:23586,39832:23592,39833:23608,39834:23609,39835:23617,39836:23622,39837:23630,39838:23635,39839:23632,39840:23631,39841:23409,39842:23660,39843:23662,39844:20066,39845:23670,39846:23673,39847:23692,39848:23697,39849:23700,39850:22939,39851:23723,39852:23739,39853:23734,39854:23740,39855:23735,39856:23749,39857:23742,39858:23751,39859:23769,39860:23785,39861:23805,39862:23802,39863:23789,39864:23948,39865:23786,39866:23819,39867:23829,39868:23831,39869:23900,39870:23839,39871:23835,39872:23825,39873:23828,39874:23842,39875:23834,39876:23833,39877:23832,39878:23884,39879:23890,39880:23886,39881:23883,39882:23916,39883:23923,39884:23926,39885:23943,39886:23940,39887:23938,39888:23970,39889:23965,39890:23980,39891:23982,39892:23997,39893:23952,39894:23991,39895:23996,39896:24009,39897:24013,39898:24019,39899:24018,39900:24022,39901:24027,39902:24043,39903:24050,39904:24053,39905:24075,39906:24090,39907:24089,39908:24081,39909:24091,39910:24118,39911:24119,39912:24132,39913:24131,39914:24128,39915:24142,39916:24151,39917:24148,39918:24159,39919:24162,39920:24164,39921:24135,39922:24181,39923:24182,39924:24186,39925:40636,39926:24191,39927:24224,39928:24257,39929:24258,39930:24264,39931:24272,39932:24271,4e4:24278,40001:24291,40002:24285,40003:24282,40004:24283,40005:24290,40006:24289,40007:24296,40008:24297,40009:24300,40010:24305,40011:24307,40012:24304,40013:24308,40014:24312,40015:24318,40016:24323,40017:24329,40018:24413,40019:24412,40020:24331,40021:24337,40022:24342,40023:24361,40024:24365,40025:24376,40026:24385,40027:24392,40028:24396,40029:24398,40030:24367,40031:24401,40032:24406,40033:24407,40034:24409,40035:24417,40036:24429,40037:24435,40038:24439,40039:24451,40040:24450,40041:24447,40042:24458,40043:24456,40044:24465,40045:24455,40046:24478,40047:24473,40048:24472,40049:24480,40050:24488,40051:24493,40052:24508,40053:24534,40054:24571,40055:24548,40056:24568,40057:24561,40058:24541,40059:24755,40060:24575,40061:24609,40062:24672,40064:24601,40065:24592,40066:24617,40067:24590,40068:24625,40069:24603,40070:24597,40071:24619,40072:24614,40073:24591,40074:24634,40075:24666,40076:24641,40077:24682,40078:24695,40079:24671,40080:24650,40081:24646,40082:24653,40083:24675,40084:24643,40085:24676,40086:24642,40087:24684,40088:24683,40089:24665,40090:24705,40091:24717,40092:24807,40093:24707,40094:24730,40095:24708,40096:24731,40097:24726,40098:24727,40099:24722,40100:24743,40101:24715,40102:24801,40103:24760,40104:24800,40105:24787,40106:24756,40107:24560,40108:24765,40109:24774,40110:24757,40111:24792,40112:24909,40113:24853,40114:24838,40115:24822,40116:24823,40117:24832,40118:24820,40119:24826,40120:24835,40121:24865,40122:24827,40123:24817,40124:24845,40125:24846,40126:24903,40127:24894,40128:24872,40129:24871,40130:24906,40131:24895,40132:24892,40133:24876,40134:24884,40135:24893,40136:24898,40137:24900,40138:24947,40139:24951,40140:24920,40141:24921,40142:24922,40143:24939,40144:24948,40145:24943,40146:24933,40147:24945,40148:24927,40149:24925,40150:24915,40151:24949,40152:24985,40153:24982,40154:24967,40155:25004,40156:24980,40157:24986,40158:24970,40159:24977,40160:25003,40161:25006,40162:25036,40163:25034,40164:25033,40165:25079,40166:25032,40167:25027,40168:25030,40169:25018,40170:25035,40171:32633,40172:25037,40173:25062,40174:25059,40175:25078,40176:25082,40177:25076,40178:25087,40179:25085,40180:25084,40181:25086,40182:25088,40183:25096,40184:25097,40185:25101,40186:25100,40187:25108,40188:25115,40256:25118,40257:25121,40258:25130,40259:25134,40260:25136,40261:25138,40262:25139,40263:25153,40264:25166,40265:25182,40266:25187,40267:25179,40268:25184,40269:25192,40270:25212,40271:25218,40272:25225,40273:25214,40274:25234,40275:25235,40276:25238,40277:25300,40278:25219,40279:25236,40280:25303,40281:25297,40282:25275,40283:25295,40284:25343,40285:25286,40286:25812,40287:25288,40288:25308,40289:25292,40290:25290,40291:25282,40292:25287,40293:25243,40294:25289,40295:25356,40296:25326,40297:25329,40298:25383,40299:25346,40300:25352,40301:25327,40302:25333,40303:25424,40304:25406,40305:25421,40306:25628,40307:25423,40308:25494,40309:25486,40310:25472,40311:25515,40312:25462,40313:25507,40314:25487,40315:25481,40316:25503,40317:25525,40318:25451,40320:25449,40321:25534,40322:25577,40323:25536,40324:25542,40325:25571,40326:25545,40327:25554,40328:25590,40329:25540,40330:25622,40331:25652,40332:25606,40333:25619,40334:25638,40335:25654,40336:25885,40337:25623,40338:25640,40339:25615,40340:25703,40341:25711,40342:25718,40343:25678,40344:25898,40345:25749,40346:25747,40347:25765,40348:25769,40349:25736,40350:25788,40351:25818,40352:25810,40353:25797,40354:25799,40355:25787,40356:25816,40357:25794,40358:25841,40359:25831,40360:33289,40361:25824,40362:25825,40363:25260,40364:25827,40365:25839,40366:25900,40367:25846,40368:25844,40369:25842,40370:25850,40371:25856,40372:25853,40373:25880,40374:25884,40375:25861,40376:25892,40377:25891,40378:25899,40379:25908,40380:25909,40381:25911,40382:25910,40383:25912,40384:30027,40385:25928,40386:25942,40387:25941,40388:25933,40389:25944,40390:25950,40391:25949,40392:25970,40393:25976,40394:25986,40395:25987,40396:35722,40397:26011,40398:26015,40399:26027,40400:26039,40401:26051,40402:26054,40403:26049,40404:26052,40405:26060,40406:26066,40407:26075,40408:26073,40409:26080,40410:26081,40411:26097,40412:26482,40413:26122,40414:26115,40415:26107,40416:26483,40417:26165,40418:26166,40419:26164,40420:26140,40421:26191,40422:26180,40423:26185,40424:26177,40425:26206,40426:26205,40427:26212,40428:26215,40429:26216,40430:26207,40431:26210,40432:26224,40433:26243,40434:26248,40435:26254,40436:26249,40437:26244,40438:26264,40439:26269,40440:26305,40441:26297,40442:26313,40443:26302,40444:26300,40512:26308,40513:26296,40514:26326,40515:26330,40516:26336,40517:26175,40518:26342,40519:26345,40520:26352,40521:26357,40522:26359,40523:26383,40524:26390,40525:26398,40526:26406,40527:26407,40528:38712,40529:26414,40530:26431,40531:26422,40532:26433,40533:26424,40534:26423,40535:26438,40536:26462,40537:26464,40538:26457,40539:26467,40540:26468,40541:26505,40542:26480,40543:26537,40544:26492,40545:26474,40546:26508,40547:26507,40548:26534,40549:26529,40550:26501,40551:26551,40552:26607,40553:26548,40554:26604,40555:26547,40556:26601,40557:26552,40558:26596,40559:26590,40560:26589,40561:26594,40562:26606,40563:26553,40564:26574,40565:26566,40566:26599,40567:27292,40568:26654,40569:26694,40570:26665,40571:26688,40572:26701,40573:26674,40574:26702,40576:26803,40577:26667,40578:26713,40579:26723,40580:26743,40581:26751,40582:26783,40583:26767,40584:26797,40585:26772,40586:26781,40587:26779,40588:26755,40589:27310,40590:26809,40591:26740,40592:26805,40593:26784,40594:26810,40595:26895,40596:26765,40597:26750,40598:26881,40599:26826,40600:26888,40601:26840,40602:26914,40603:26918,40604:26849,40605:26892,40606:26829,40607:26836,40608:26855,40609:26837,40610:26934,40611:26898,40612:26884,40613:26839,40614:26851,40615:26917,40616:26873,40617:26848,40618:26863,40619:26920,40620:26922,40621:26906,40622:26915,40623:26913,40624:26822,40625:27001,40626:26999,40627:26972,40628:27e3,40629:26987,40630:26964,40631:27006,40632:26990,40633:26937,40634:26996,40635:26941,40636:26969,40637:26928,40638:26977,40639:26974,40640:26973,40641:27009,40642:26986,40643:27058,40644:27054,40645:27088,40646:27071,40647:27073,40648:27091,40649:27070,40650:27086,40651:23528,40652:27082,40653:27101,40654:27067,40655:27075,40656:27047,40657:27182,40658:27025,40659:27040,40660:27036,40661:27029,40662:27060,40663:27102,40664:27112,40665:27138,40666:27163,40667:27135,40668:27402,40669:27129,40670:27122,40671:27111,40672:27141,40673:27057,40674:27166,40675:27117,40676:27156,40677:27115,40678:27146,40679:27154,40680:27329,40681:27171,40682:27155,40683:27204,40684:27148,40685:27250,40686:27190,40687:27256,40688:27207,40689:27234,40690:27225,40691:27238,40692:27208,40693:27192,40694:27170,40695:27280,40696:27277,40697:27296,40698:27268,40699:27298,40700:27299,40768:27287,40769:34327,40770:27323,40771:27331,40772:27330,40773:27320,40774:27315,40775:27308,40776:27358,40777:27345,40778:27359,40779:27306,40780:27354,40781:27370,40782:27387,40783:27397,40784:34326,40785:27386,40786:27410,40787:27414,40788:39729,40789:27423,40790:27448,40791:27447,40792:30428,40793:27449,40794:39150,40795:27463,40796:27459,40797:27465,40798:27472,40799:27481,40800:27476,40801:27483,40802:27487,40803:27489,40804:27512,40805:27513,40806:27519,40807:27520,40808:27524,40809:27523,40810:27533,40811:27544,40812:27541,40813:27550,40814:27556,40815:27562,40816:27563,40817:27567,40818:27570,40819:27569,40820:27571,40821:27575,40822:27580,40823:27590,40824:27595,40825:27603,40826:27615,40827:27628,40828:27627,40829:27635,40830:27631,40832:40638,40833:27656,40834:27667,40835:27668,40836:27675,40837:27684,40838:27683,40839:27742,40840:27733,40841:27746,40842:27754,40843:27778,40844:27789,40845:27802,40846:27777,40847:27803,40848:27774,40849:27752,40850:27763,40851:27794,40852:27792,40853:27844,40854:27889,40855:27859,40856:27837,40857:27863,40858:27845,40859:27869,40860:27822,40861:27825,40862:27838,40863:27834,40864:27867,40865:27887,40866:27865,40867:27882,40868:27935,40869:34893,40870:27958,40871:27947,40872:27965,40873:27960,40874:27929,40875:27957,40876:27955,40877:27922,40878:27916,40879:28003,40880:28051,40881:28004,40882:27994,40883:28025,40884:27993,40885:28046,40886:28053,40887:28644,40888:28037,40889:28153,40890:28181,40891:28170,40892:28085,40893:28103,40894:28134,40895:28088,40896:28102,40897:28140,40898:28126,40899:28108,40900:28136,40901:28114,40902:28101,40903:28154,40904:28121,40905:28132,40906:28117,40907:28138,40908:28142,40909:28205,40910:28270,40911:28206,40912:28185,40913:28274,40914:28255,40915:28222,40916:28195,40917:28267,40918:28203,40919:28278,40920:28237,40921:28191,40922:28227,40923:28218,40924:28238,40925:28196,40926:28415,40927:28189,40928:28216,40929:28290,40930:28330,40931:28312,40932:28361,40933:28343,40934:28371,40935:28349,40936:28335,40937:28356,40938:28338,40939:28372,40940:28373,40941:28303,40942:28325,40943:28354,40944:28319,40945:28481,40946:28433,40947:28748,40948:28396,40949:28408,40950:28414,40951:28479,40952:28402,40953:28465,40954:28399,40955:28466,40956:28364,57408:28478,57409:28435,57410:28407,57411:28550,57412:28538,57413:28536,57414:28545,57415:28544,57416:28527,57417:28507,57418:28659,57419:28525,57420:28546,57421:28540,57422:28504,57423:28558,57424:28561,57425:28610,57426:28518,57427:28595,57428:28579,57429:28577,57430:28580,57431:28601,57432:28614,57433:28586,57434:28639,57435:28629,57436:28652,57437:28628,57438:28632,57439:28657,57440:28654,57441:28635,57442:28681,57443:28683,57444:28666,57445:28689,57446:28673,57447:28687,57448:28670,57449:28699,57450:28698,57451:28532,57452:28701,57453:28696,57454:28703,57455:28720,57456:28734,57457:28722,57458:28753,57459:28771,57460:28825,57461:28818,57462:28847,57463:28913,57464:28844,57465:28856,57466:28851,57467:28846,57468:28895,57469:28875,57470:28893,57472:28889,57473:28937,57474:28925,57475:28956,57476:28953,57477:29029,57478:29013,57479:29064,57480:29030,57481:29026,57482:29004,57483:29014,57484:29036,57485:29071,57486:29179,57487:29060,57488:29077,57489:29096,57490:29100,57491:29143,57492:29113,57493:29118,57494:29138,57495:29129,57496:29140,57497:29134,57498:29152,57499:29164,57500:29159,57501:29173,57502:29180,57503:29177,57504:29183,57505:29197,57506:29200,57507:29211,57508:29224,57509:29229,57510:29228,57511:29232,57512:29234,57513:29243,57514:29244,57515:29247,57516:29248,57517:29254,57518:29259,57519:29272,57520:29300,57521:29310,57522:29314,57523:29313,57524:29319,57525:29330,57526:29334,57527:29346,57528:29351,57529:29369,57530:29362,57531:29379,57532:29382,57533:29380,57534:29390,57535:29394,57536:29410,57537:29408,57538:29409,57539:29433,57540:29431,57541:20495,57542:29463,57543:29450,57544:29468,57545:29462,57546:29469,57547:29492,57548:29487,57549:29481,57550:29477,57551:29502,57552:29518,57553:29519,57554:40664,57555:29527,57556:29546,57557:29544,57558:29552,57559:29560,57560:29557,57561:29563,57562:29562,57563:29640,57564:29619,57565:29646,57566:29627,57567:29632,57568:29669,57569:29678,57570:29662,57571:29858,57572:29701,57573:29807,57574:29733,57575:29688,57576:29746,57577:29754,57578:29781,57579:29759,57580:29791,57581:29785,57582:29761,57583:29788,57584:29801,57585:29808,57586:29795,57587:29802,57588:29814,57589:29822,57590:29835,57591:29854,57592:29863,57593:29898,57594:29903,57595:29908,57596:29681,57664:29920,57665:29923,57666:29927,57667:29929,57668:29934,57669:29938,57670:29936,57671:29937,57672:29944,57673:29943,57674:29956,57675:29955,57676:29957,57677:29964,57678:29966,57679:29965,57680:29973,57681:29971,57682:29982,57683:29990,57684:29996,57685:30012,57686:30020,57687:30029,57688:30026,57689:30025,57690:30043,57691:30022,57692:30042,57693:30057,57694:30052,57695:30055,57696:30059,57697:30061,57698:30072,57699:30070,57700:30086,57701:30087,57702:30068,57703:30090,57704:30089,57705:30082,57706:30100,57707:30106,57708:30109,57709:30117,57710:30115,57711:30146,57712:30131,57713:30147,57714:30133,57715:30141,57716:30136,57717:30140,57718:30129,57719:30157,57720:30154,57721:30162,57722:30169,57723:30179,57724:30174,57725:30206,57726:30207,57728:30204,57729:30209,57730:30192,57731:30202,57732:30194,57733:30195,57734:30219,57735:30221,57736:30217,57737:30239,57738:30247,57739:30240,57740:30241,57741:30242,57742:30244,57743:30260,57744:30256,57745:30267,57746:30279,57747:30280,57748:30278,57749:30300,57750:30296,57751:30305,57752:30306,57753:30312,57754:30313,57755:30314,57756:30311,57757:30316,57758:30320,57759:30322,57760:30326,57761:30328,57762:30332,57763:30336,57764:30339,57765:30344,57766:30347,57767:30350,57768:30358,57769:30355,57770:30361,57771:30362,57772:30384,57773:30388,57774:30392,57775:30393,57776:30394,57777:30402,57778:30413,57779:30422,57780:30418,57781:30430,57782:30433,57783:30437,57784:30439,57785:30442,57786:34351,57787:30459,57788:30472,57789:30471,57790:30468,57791:30505,57792:30500,57793:30494,57794:30501,57795:30502,57796:30491,57797:30519,57798:30520,57799:30535,57800:30554,57801:30568,57802:30571,57803:30555,57804:30565,57805:30591,57806:30590,57807:30585,57808:30606,57809:30603,57810:30609,57811:30624,57812:30622,57813:30640,57814:30646,57815:30649,57816:30655,57817:30652,57818:30653,57819:30651,57820:30663,57821:30669,57822:30679,57823:30682,57824:30684,57825:30691,57826:30702,57827:30716,57828:30732,57829:30738,57830:31014,57831:30752,57832:31018,57833:30789,57834:30862,57835:30836,57836:30854,57837:30844,57838:30874,57839:30860,57840:30883,57841:30901,57842:30890,57843:30895,57844:30929,57845:30918,57846:30923,57847:30932,57848:30910,57849:30908,57850:30917,57851:30922,57852:30956,57920:30951,57921:30938,57922:30973,57923:30964,57924:30983,57925:30994,57926:30993,57927:31001,57928:31020,57929:31019,57930:31040,57931:31072,57932:31063,57933:31071,57934:31066,57935:31061,57936:31059,57937:31098,57938:31103,57939:31114,57940:31133,57941:31143,57942:40779,57943:31146,57944:31150,57945:31155,57946:31161,57947:31162,57948:31177,57949:31189,57950:31207,57951:31212,57952:31201,57953:31203,57954:31240,57955:31245,57956:31256,57957:31257,57958:31264,57959:31263,57960:31104,57961:31281,57962:31291,57963:31294,57964:31287,57965:31299,57966:31319,57967:31305,57968:31329,57969:31330,57970:31337,57971:40861,57972:31344,57973:31353,57974:31357,57975:31368,57976:31383,57977:31381,57978:31384,57979:31382,57980:31401,57981:31432,57982:31408,57984:31414,57985:31429,57986:31428,57987:31423,57988:36995,57989:31431,57990:31434,57991:31437,57992:31439,57993:31445,57994:31443,57995:31449,57996:31450,57997:31453,57998:31457,57999:31458,58e3:31462,58001:31469,58002:31472,58003:31490,58004:31503,58005:31498,58006:31494,58007:31539,58008:31512,58009:31513,58010:31518,58011:31541,58012:31528,58013:31542,58014:31568,58015:31610,58016:31492,58017:31565,58018:31499,58019:31564,58020:31557,58021:31605,58022:31589,58023:31604,58024:31591,58025:31600,58026:31601,58027:31596,58028:31598,58029:31645,58030:31640,58031:31647,58032:31629,58033:31644,58034:31642,58035:31627,58036:31634,58037:31631,58038:31581,58039:31641,58040:31691,58041:31681,58042:31692,58043:31695,58044:31668,58045:31686,58046:31709,58047:31721,58048:31761,58049:31764,58050:31718,58051:31717,58052:31840,58053:31744,58054:31751,58055:31763,58056:31731,58057:31735,58058:31767,58059:31757,58060:31734,58061:31779,58062:31783,58063:31786,58064:31775,58065:31799,58066:31787,58067:31805,58068:31820,58069:31811,58070:31828,58071:31823,58072:31808,58073:31824,58074:31832,58075:31839,58076:31844,58077:31830,58078:31845,58079:31852,58080:31861,58081:31875,58082:31888,58083:31908,58084:31917,58085:31906,58086:31915,58087:31905,58088:31912,58089:31923,58090:31922,58091:31921,58092:31918,58093:31929,58094:31933,58095:31936,58096:31941,58097:31938,58098:31960,58099:31954,58100:31964,58101:31970,58102:39739,58103:31983,58104:31986,58105:31988,58106:31990,58107:31994,58108:32006,58176:32002,58177:32028,58178:32021,58179:32010,58180:32069,58181:32075,58182:32046,58183:32050,58184:32063,58185:32053,58186:32070,58187:32115,58188:32086,58189:32078,58190:32114,58191:32104,58192:32110,58193:32079,58194:32099,58195:32147,58196:32137,58197:32091,58198:32143,58199:32125,58200:32155,58201:32186,58202:32174,58203:32163,58204:32181,58205:32199,58206:32189,58207:32171,58208:32317,58209:32162,58210:32175,58211:32220,58212:32184,58213:32159,58214:32176,58215:32216,58216:32221,58217:32228,58218:32222,58219:32251,58220:32242,58221:32225,58222:32261,58223:32266,58224:32291,58225:32289,58226:32274,58227:32305,58228:32287,58229:32265,58230:32267,58231:32290,58232:32326,58233:32358,58234:32315,58235:32309,58236:32313,58237:32323,58238:32311,58240:32306,58241:32314,58242:32359,58243:32349,58244:32342,58245:32350,58246:32345,58247:32346,58248:32377,58249:32362,58250:32361,58251:32380,58252:32379,58253:32387,58254:32213,58255:32381,58256:36782,58257:32383,58258:32392,58259:32393,58260:32396,58261:32402,58262:32400,58263:32403,58264:32404,58265:32406,58266:32398,58267:32411,58268:32412,58269:32568,58270:32570,58271:32581,58272:32588,58273:32589,58274:32590,58275:32592,58276:32593,58277:32597,58278:32596,58279:32600,58280:32607,58281:32608,58282:32616,58283:32617,58284:32615,58285:32632,58286:32642,58287:32646,58288:32643,58289:32648,58290:32647,58291:32652,58292:32660,58293:32670,58294:32669,58295:32666,58296:32675,58297:32687,58298:32690,58299:32697,58300:32686,58301:32694,58302:32696,58303:35697,58304:32709,58305:32710,58306:32714,58307:32725,58308:32724,58309:32737,58310:32742,58311:32745,58312:32755,58313:32761,58314:39132,58315:32774,58316:32772,58317:32779,58318:32786,58319:32792,58320:32793,58321:32796,58322:32801,58323:32808,58324:32831,58325:32827,58326:32842,58327:32838,58328:32850,58329:32856,58330:32858,58331:32863,58332:32866,58333:32872,58334:32883,58335:32882,58336:32880,58337:32886,58338:32889,58339:32893,58340:32895,58341:32900,58342:32902,58343:32901,58344:32923,58345:32915,58346:32922,58347:32941,58348:20880,58349:32940,58350:32987,58351:32997,58352:32985,58353:32989,58354:32964,58355:32986,58356:32982,58357:33033,58358:33007,58359:33009,58360:33051,58361:33065,58362:33059,58363:33071,58364:33099,58432:38539,58433:33094,58434:33086,58435:33107,58436:33105,58437:33020,58438:33137,58439:33134,58440:33125,58441:33126,58442:33140,58443:33155,58444:33160,58445:33162,58446:33152,58447:33154,58448:33184,58449:33173,58450:33188,58451:33187,58452:33119,58453:33171,58454:33193,58455:33200,58456:33205,58457:33214,58458:33208,58459:33213,58460:33216,58461:33218,58462:33210,58463:33225,58464:33229,58465:33233,58466:33241,58467:33240,58468:33224,58469:33242,58470:33247,58471:33248,58472:33255,58473:33274,58474:33275,58475:33278,58476:33281,58477:33282,58478:33285,58479:33287,58480:33290,58481:33293,58482:33296,58483:33302,58484:33321,58485:33323,58486:33336,58487:33331,58488:33344,58489:33369,58490:33368,58491:33373,58492:33370,58493:33375,58494:33380,58496:33378,58497:33384,58498:33386,58499:33387,58500:33326,58501:33393,58502:33399,58503:33400,58504:33406,58505:33421,58506:33426,58507:33451,58508:33439,58509:33467,58510:33452,58511:33505,58512:33507,58513:33503,58514:33490,58515:33524,58516:33523,58517:33530,58518:33683,58519:33539,58520:33531,58521:33529,58522:33502,58523:33542,58524:33500,58525:33545,58526:33497,58527:33589,58528:33588,58529:33558,58530:33586,58531:33585,58532:33600,58533:33593,58534:33616,58535:33605,58536:33583,58537:33579,58538:33559,58539:33560,58540:33669,58541:33690,58542:33706,58543:33695,58544:33698,58545:33686,58546:33571,58547:33678,58548:33671,58549:33674,58550:33660,58551:33717,58552:33651,58553:33653,58554:33696,58555:33673,58556:33704,58557:33780,58558:33811,58559:33771,58560:33742,58561:33789,58562:33795,58563:33752,58564:33803,58565:33729,58566:33783,58567:33799,58568:33760,58569:33778,58570:33805,58571:33826,58572:33824,58573:33725,58574:33848,58575:34054,58576:33787,58577:33901,58578:33834,58579:33852,58580:34138,58581:33924,58582:33911,58583:33899,58584:33965,58585:33902,58586:33922,58587:33897,58588:33862,58589:33836,58590:33903,58591:33913,58592:33845,58593:33994,58594:33890,58595:33977,58596:33983,58597:33951,58598:34009,58599:33997,58600:33979,58601:34010,58602:34e3,58603:33985,58604:33990,58605:34006,58606:33953,58607:34081,58608:34047,58609:34036,58610:34071,58611:34072,58612:34092,58613:34079,58614:34069,58615:34068,58616:34044,58617:34112,58618:34147,58619:34136,58620:34120,58688:34113,58689:34306,58690:34123,58691:34133,58692:34176,58693:34212,58694:34184,58695:34193,58696:34186,58697:34216,58698:34157,58699:34196,58700:34203,58701:34282,58702:34183,58703:34204,58704:34167,58705:34174,58706:34192,58707:34249,58708:34234,58709:34255,58710:34233,58711:34256,58712:34261,58713:34269,58714:34277,58715:34268,58716:34297,58717:34314,58718:34323,58719:34315,58720:34302,58721:34298,58722:34310,58723:34338,58724:34330,58725:34352,58726:34367,58727:34381,58728:20053,58729:34388,58730:34399,58731:34407,58732:34417,58733:34451,58734:34467,58735:34473,58736:34474,58737:34443,58738:34444,58739:34486,58740:34479,58741:34500,58742:34502,58743:34480,58744:34505,58745:34851,58746:34475,58747:34516,58748:34526,58749:34537,58750:34540,58752:34527,58753:34523,58754:34543,58755:34578,58756:34566,58757:34568,58758:34560,58759:34563,58760:34555,58761:34577,58762:34569,58763:34573,58764:34553,58765:34570,58766:34612,58767:34623,58768:34615,58769:34619,58770:34597,58771:34601,58772:34586,58773:34656,58774:34655,58775:34680,58776:34636,58777:34638,58778:34676,58779:34647,58780:34664,58781:34670,58782:34649,58783:34643,58784:34659,58785:34666,58786:34821,58787:34722,58788:34719,58789:34690,58790:34735,58791:34763,58792:34749,58793:34752,58794:34768,58795:38614,58796:34731,58797:34756,58798:34739,58799:34759,58800:34758,58801:34747,58802:34799,58803:34802,58804:34784,58805:34831,58806:34829,58807:34814,58808:34806,58809:34807,58810:34830,58811:34770,58812:34833,58813:34838,58814:34837,58815:34850,58816:34849,58817:34865,58818:34870,58819:34873,58820:34855,58821:34875,58822:34884,58823:34882,58824:34898,58825:34905,58826:34910,58827:34914,58828:34923,58829:34945,58830:34942,58831:34974,58832:34933,58833:34941,58834:34997,58835:34930,58836:34946,58837:34967,58838:34962,58839:34990,58840:34969,58841:34978,58842:34957,58843:34980,58844:34992,58845:35007,58846:34993,58847:35011,58848:35012,58849:35028,58850:35032,58851:35033,58852:35037,58853:35065,58854:35074,58855:35068,58856:35060,58857:35048,58858:35058,58859:35076,58860:35084,58861:35082,58862:35091,58863:35139,58864:35102,58865:35109,58866:35114,58867:35115,58868:35137,58869:35140,58870:35131,58871:35126,58872:35128,58873:35148,58874:35101,58875:35168,58876:35166,58944:35174,58945:35172,58946:35181,58947:35178,58948:35183,58949:35188,58950:35191,58951:35198,58952:35203,58953:35208,58954:35210,58955:35219,58956:35224,58957:35233,58958:35241,58959:35238,58960:35244,58961:35247,58962:35250,58963:35258,58964:35261,58965:35263,58966:35264,58967:35290,58968:35292,58969:35293,58970:35303,58971:35316,58972:35320,58973:35331,58974:35350,58975:35344,58976:35340,58977:35355,58978:35357,58979:35365,58980:35382,58981:35393,58982:35419,58983:35410,58984:35398,58985:35400,58986:35452,58987:35437,58988:35436,58989:35426,58990:35461,58991:35458,58992:35460,58993:35496,58994:35489,58995:35473,58996:35493,58997:35494,58998:35482,58999:35491,59e3:35524,59001:35533,59002:35522,59003:35546,59004:35563,59005:35571,59006:35559,59008:35556,59009:35569,59010:35604,59011:35552,59012:35554,59013:35575,59014:35550,59015:35547,59016:35596,59017:35591,59018:35610,59019:35553,59020:35606,59021:35600,59022:35607,59023:35616,59024:35635,59025:38827,59026:35622,59027:35627,59028:35646,59029:35624,59030:35649,59031:35660,59032:35663,59033:35662,59034:35657,59035:35670,59036:35675,59037:35674,59038:35691,59039:35679,59040:35692,59041:35695,59042:35700,59043:35709,59044:35712,59045:35724,59046:35726,59047:35730,59048:35731,59049:35734,59050:35737,59051:35738,59052:35898,59053:35905,59054:35903,59055:35912,59056:35916,59057:35918,59058:35920,59059:35925,59060:35938,59061:35948,59062:35960,59063:35962,59064:35970,59065:35977,59066:35973,59067:35978,59068:35981,59069:35982,59070:35988,59071:35964,59072:35992,59073:25117,59074:36013,59075:36010,59076:36029,59077:36018,59078:36019,59079:36014,59080:36022,59081:36040,59082:36033,59083:36068,59084:36067,59085:36058,59086:36093,59087:36090,59088:36091,59089:36100,59090:36101,59091:36106,59092:36103,59093:36111,59094:36109,59095:36112,59096:40782,59097:36115,59098:36045,59099:36116,59100:36118,59101:36199,59102:36205,59103:36209,59104:36211,59105:36225,59106:36249,59107:36290,59108:36286,59109:36282,59110:36303,59111:36314,59112:36310,59113:36300,59114:36315,59115:36299,59116:36330,59117:36331,59118:36319,59119:36323,59120:36348,59121:36360,59122:36361,59123:36351,59124:36381,59125:36382,59126:36368,59127:36383,59128:36418,59129:36405,59130:36400,59131:36404,59132:36426,59200:36423,59201:36425,59202:36428,59203:36432,59204:36424,59205:36441,59206:36452,59207:36448,59208:36394,59209:36451,59210:36437,59211:36470,59212:36466,59213:36476,59214:36481,59215:36487,59216:36485,59217:36484,59218:36491,59219:36490,59220:36499,59221:36497,59222:36500,59223:36505,59224:36522,59225:36513,59226:36524,59227:36528,59228:36550,59229:36529,59230:36542,59231:36549,59232:36552,59233:36555,59234:36571,59235:36579,59236:36604,59237:36603,59238:36587,59239:36606,59240:36618,59241:36613,59242:36629,59243:36626,59244:36633,59245:36627,59246:36636,59247:36639,59248:36635,59249:36620,59250:36646,59251:36659,59252:36667,59253:36665,59254:36677,59255:36674,59256:36670,59257:36684,59258:36681,59259:36678,59260:36686,59261:36695,59262:36700,59264:36706,59265:36707,59266:36708,59267:36764,59268:36767,59269:36771,59270:36781,59271:36783,59272:36791,59273:36826,59274:36837,59275:36834,59276:36842,59277:36847,59278:36999,59279:36852,59280:36869,59281:36857,59282:36858,59283:36881,59284:36885,59285:36897,59286:36877,59287:36894,59288:36886,59289:36875,59290:36903,59291:36918,59292:36917,59293:36921,59294:36856,59295:36943,59296:36944,59297:36945,59298:36946,59299:36878,59300:36937,59301:36926,59302:36950,59303:36952,59304:36958,59305:36968,59306:36975,59307:36982,59308:38568,59309:36978,59310:36994,59311:36989,59312:36993,59313:36992,59314:37002,59315:37001,59316:37007,59317:37032,59318:37039,59319:37041,59320:37045,59321:37090,59322:37092,59323:25160,59324:37083,59325:37122,59326:37138,59327:37145,59328:37170,59329:37168,59330:37194,59331:37206,59332:37208,59333:37219,59334:37221,59335:37225,59336:37235,59337:37234,59338:37259,59339:37257,59340:37250,59341:37282,59342:37291,59343:37295,59344:37290,59345:37301,59346:37300,59347:37306,59348:37312,59349:37313,59350:37321,59351:37323,59352:37328,59353:37334,59354:37343,59355:37345,59356:37339,59357:37372,59358:37365,59359:37366,59360:37406,59361:37375,59362:37396,59363:37420,59364:37397,59365:37393,59366:37470,59367:37463,59368:37445,59369:37449,59370:37476,59371:37448,59372:37525,59373:37439,59374:37451,59375:37456,59376:37532,59377:37526,59378:37523,59379:37531,59380:37466,59381:37583,59382:37561,59383:37559,59384:37609,59385:37647,59386:37626,59387:37700,59388:37678,59456:37657,59457:37666,59458:37658,59459:37667,59460:37690,59461:37685,59462:37691,59463:37724,59464:37728,59465:37756,59466:37742,59467:37718,59468:37808,59469:37804,59470:37805,59471:37780,59472:37817,59473:37846,59474:37847,59475:37864,59476:37861,59477:37848,59478:37827,59479:37853,59480:37840,59481:37832,59482:37860,59483:37914,59484:37908,59485:37907,59486:37891,59487:37895,59488:37904,59489:37942,59490:37931,59491:37941,59492:37921,59493:37946,59494:37953,59495:37970,59496:37956,59497:37979,59498:37984,59499:37986,59500:37982,59501:37994,59502:37417,59503:38e3,59504:38005,59505:38007,59506:38013,59507:37978,59508:38012,59509:38014,59510:38017,59511:38015,59512:38274,59513:38279,59514:38282,59515:38292,59516:38294,59517:38296,59518:38297,59520:38304,59521:38312,59522:38311,59523:38317,59524:38332,59525:38331,59526:38329,59527:38334,59528:38346,59529:28662,59530:38339,59531:38349,59532:38348,59533:38357,59534:38356,59535:38358,59536:38364,59537:38369,59538:38373,59539:38370,59540:38433,59541:38440,59542:38446,59543:38447,59544:38466,59545:38476,59546:38479,59547:38475,59548:38519,59549:38492,59550:38494,59551:38493,59552:38495,59553:38502,59554:38514,59555:38508,59556:38541,59557:38552,59558:38549,59559:38551,59560:38570,59561:38567,59562:38577,59563:38578,59564:38576,59565:38580,59566:38582,59567:38584,59568:38585,59569:38606,59570:38603,59571:38601,59572:38605,59573:35149,59574:38620,59575:38669,59576:38613,59577:38649,59578:38660,59579:38662,59580:38664,59581:38675,59582:38670,59583:38673,59584:38671,59585:38678,59586:38681,59587:38692,59588:38698,59589:38704,59590:38713,59591:38717,59592:38718,59593:38724,59594:38726,59595:38728,59596:38722,59597:38729,59598:38748,59599:38752,59600:38756,59601:38758,59602:38760,59603:21202,59604:38763,59605:38769,59606:38777,59607:38789,59608:38780,59609:38785,59610:38778,59611:38790,59612:38795,59613:38799,59614:38800,59615:38812,59616:38824,59617:38822,59618:38819,59619:38835,59620:38836,59621:38851,59622:38854,59623:38856,59624:38859,59625:38876,59626:38893,59627:40783,59628:38898,59629:31455,59630:38902,59631:38901,59632:38927,59633:38924,59634:38968,59635:38948,59636:38945,59637:38967,59638:38973,59639:38982,59640:38991,59641:38987,59642:39019,59643:39023,59644:39024,59712:39025,59713:39028,59714:39027,59715:39082,59716:39087,59717:39089,59718:39094,59719:39108,59720:39107,59721:39110,59722:39145,59723:39147,59724:39171,59725:39177,59726:39186,59727:39188,59728:39192,59729:39201,59730:39197,59731:39198,59732:39204,59733:39200,59734:39212,59735:39214,59736:39229,59737:39230,59738:39234,59739:39241,59740:39237,59741:39248,59742:39243,59743:39249,59744:39250,59745:39244,59746:39253,59747:39319,59748:39320,59749:39333,59750:39341,59751:39342,59752:39356,59753:39391,59754:39387,59755:39389,59756:39384,59757:39377,59758:39405,59759:39406,59760:39409,59761:39410,59762:39419,59763:39416,59764:39425,59765:39439,59766:39429,59767:39394,59768:39449,59769:39467,59770:39479,59771:39493,59772:39490,59773:39488,59774:39491,59776:39486,59777:39509,59778:39501,59779:39515,59780:39511,59781:39519,59782:39522,59783:39525,59784:39524,59785:39529,59786:39531,59787:39530,59788:39597,59789:39600,59790:39612,59791:39616,59792:39631,59793:39633,59794:39635,59795:39636,59796:39646,59797:39647,59798:39650,59799:39651,59800:39654,59801:39663,59802:39659,59803:39662,59804:39668,59805:39665,59806:39671,59807:39675,59808:39686,59809:39704,59810:39706,59811:39711,59812:39714,59813:39715,59814:39717,59815:39719,59816:39720,59817:39721,59818:39722,59819:39726,59820:39727,59821:39730,59822:39748,59823:39747,59824:39759,59825:39757,59826:39758,59827:39761,59828:39768,59829:39796,59830:39827,59831:39811,59832:39825,59833:39830,59834:39831,59835:39839,59836:39840,59837:39848,59838:39860,59839:39872,59840:39882,59841:39865,59842:39878,59843:39887,59844:39889,59845:39890,59846:39907,59847:39906,59848:39908,59849:39892,59850:39905,59851:39994,59852:39922,59853:39921,59854:39920,59855:39957,59856:39956,59857:39945,59858:39955,59859:39948,59860:39942,59861:39944,59862:39954,59863:39946,59864:39940,59865:39982,59866:39963,59867:39973,59868:39972,59869:39969,59870:39984,59871:40007,59872:39986,59873:40006,59874:39998,59875:40026,59876:40032,59877:40039,59878:40054,59879:40056,59880:40167,59881:40172,59882:40176,59883:40201,59884:40200,59885:40171,59886:40195,59887:40198,59888:40234,59889:40230,59890:40367,59891:40227,59892:40223,59893:40260,59894:40213,59895:40210,59896:40257,59897:40255,59898:40254,59899:40262,59900:40264,59968:40285,59969:40286,59970:40292,59971:40273,59972:40272,59973:40281,59974:40306,59975:40329,59976:40327,59977:40363,59978:40303,59979:40314,59980:40346,59981:40356,59982:40361,59983:40370,59984:40388,59985:40385,59986:40379,59987:40376,59988:40378,59989:40390,59990:40399,59991:40386,59992:40409,59993:40403,59994:40440,59995:40422,59996:40429,59997:40431,59998:40445,59999:40474,6e4:40475,60001:40478,60002:40565,60003:40569,60004:40573,60005:40577,60006:40584,60007:40587,60008:40588,60009:40594,60010:40597,60011:40593,60012:40605,60013:40613,60014:40617,60015:40632,60016:40618,60017:40621,60018:38753,60019:40652,60020:40654,60021:40655,60022:40656,60023:40660,60024:40668,60025:40670,60026:40669,60027:40672,60028:40677,60029:40680,60030:40687,60032:40692,60033:40694,60034:40695,60035:40697,60036:40699,60037:40700,60038:40701,60039:40711,60040:40712,60041:30391,60042:40725,60043:40737,60044:40748,60045:40766,60046:40778,60047:40786,60048:40788,60049:40803,60050:40799,60051:40800,60052:40801,60053:40806,60054:40807,60055:40812,60056:40810,60057:40823,60058:40818,60059:40822,60060:40853,60061:40860,60062:40864,60063:22575,60064:27079,60065:36953,60066:29796,60067:20956,60068:29081,60736:32394,60737:35100,60738:37704,60739:37512,60740:34012,60741:20425,60742:28859,60743:26161,60744:26824,60745:37625,60746:26363,60747:24389,60748:20008,60749:20193,60750:20220,60751:20224,60752:20227,60753:20281,60754:20310,60755:20370,60756:20362,60757:20378,60758:20372,60759:20429,60760:20544,60761:20514,60762:20479,60763:20510,60764:20550,60765:20592,60766:20546,60767:20628,60768:20724,60769:20696,60770:20810,60771:20836,60772:20893,60773:20926,60774:20972,60775:21013,60776:21148,60777:21158,60778:21184,60779:21211,60780:21248,60781:21255,60782:21284,60783:21362,60784:21395,60785:21426,60786:21469,60787:64014,60788:21660,60789:21642,60790:21673,60791:21759,60792:21894,60793:22361,60794:22373,60795:22444,60796:22472,60797:22471,60798:64015,60800:64016,60801:22686,60802:22706,60803:22795,60804:22867,60805:22875,60806:22877,60807:22883,60808:22948,60809:22970,60810:23382,60811:23488,60812:29999,60813:23512,60814:23532,60815:23582,60816:23718,60817:23738,60818:23797,60819:23847,60820:23891,60821:64017,60822:23874,60823:23917,60824:23992,60825:23993,60826:24016,60827:24353,60828:24372,60829:24423,60830:24503,60831:24542,60832:24669,60833:24709,60834:24714,60835:24798,60836:24789,60837:24864,60838:24818,60839:24849,60840:24887,60841:24880,60842:24984,60843:25107,60844:25254,60845:25589,60846:25696,60847:25757,60848:25806,60849:25934,60850:26112,60851:26133,60852:26171,60853:26121,60854:26158,60855:26142,60856:26148,60857:26213,60858:26199,60859:26201,60860:64018,60861:26227,60862:26265,60863:26272,60864:26290,60865:26303,60866:26362,60867:26382,60868:63785,60869:26470,60870:26555,60871:26706,60872:26560,60873:26625,60874:26692,60875:26831,60876:64019,60877:26984,60878:64020,60879:27032,60880:27106,60881:27184,60882:27243,60883:27206,60884:27251,60885:27262,60886:27362,60887:27364,60888:27606,60889:27711,60890:27740,60891:27782,60892:27759,60893:27866,60894:27908,60895:28039,60896:28015,60897:28054,60898:28076,60899:28111,60900:28152,60901:28146,60902:28156,60903:28217,60904:28252,60905:28199,60906:28220,60907:28351,60908:28552,60909:28597,60910:28661,60911:28677,60912:28679,60913:28712,60914:28805,60915:28843,60916:28943,60917:28932,60918:29020,60919:28998,60920:28999,60921:64021,60922:29121,60923:29182,60924:29361,60992:29374,60993:29476,60994:64022,60995:29559,60996:29629,60997:29641,60998:29654,60999:29667,61e3:29650,61001:29703,61002:29685,61003:29734,61004:29738,61005:29737,61006:29742,61007:29794,61008:29833,61009:29855,61010:29953,61011:30063,61012:30338,61013:30364,61014:30366,61015:30363,61016:30374,61017:64023,61018:30534,61019:21167,61020:30753,61021:30798,61022:30820,61023:30842,61024:31024,61025:64024,61026:64025,61027:64026,61028:31124,61029:64027,61030:31131,61031:31441,61032:31463,61033:64028,61034:31467,61035:31646,61036:64029,61037:32072,61038:32092,61039:32183,61040:32160,61041:32214,61042:32338,61043:32583,61044:32673,61045:64030,61046:33537,61047:33634,61048:33663,61049:33735,61050:33782,61051:33864,61052:33972,61053:34131,61054:34137,61056:34155,61057:64031,61058:34224,61059:64032,61060:64033,61061:34823,61062:35061,61063:35346,61064:35383,61065:35449,61066:35495,61067:35518,61068:35551,61069:64034,61070:35574,61071:35667,61072:35711,61073:36080,61074:36084,61075:36114,61076:36214,61077:64035,61078:36559,61079:64036,61080:64037,61081:36967,61082:37086,61083:64038,61084:37141,61085:37159,61086:37338,61087:37335,61088:37342,61089:37357,61090:37358,61091:37348,61092:37349,61093:37382,61094:37392,61095:37386,61096:37434,61097:37440,61098:37436,61099:37454,61100:37465,61101:37457,61102:37433,61103:37479,61104:37543,61105:37495,61106:37496,61107:37607,61108:37591,61109:37593,61110:37584,61111:64039,61112:37589,61113:37600,61114:37587,61115:37669,61116:37665,61117:37627,61118:64040,61119:37662,61120:37631,61121:37661,61122:37634,61123:37744,61124:37719,61125:37796,61126:37830,61127:37854,61128:37880,61129:37937,61130:37957,61131:37960,61132:38290,61133:63964,61134:64041,61135:38557,61136:38575,61137:38707,61138:38715,61139:38723,61140:38733,61141:38735,61142:38737,61143:38741,61144:38999,61145:39013,61146:64042,61147:64043,61148:39207,61149:64044,61150:39326,61151:39502,61152:39641,61153:39644,61154:39797,61155:39794,61156:39823,61157:39857,61158:39867,61159:39936,61160:40304,61161:40299,61162:64045,61163:40473,61164:40657,61167:8560,61168:8561,61169:8562,61170:8563,61171:8564,61172:8565,61173:8566,61174:8567,61175:8568,61176:8569,61177:65506,61178:65508,61179:65287,61180:65282,61504:57344,61505:57345,61506:57346,61507:57347,61508:57348,61509:57349,61510:57350,61511:57351,61512:57352,61513:57353,61514:57354,61515:57355,61516:57356,61517:57357,61518:57358,61519:57359,61520:57360,61521:57361,61522:57362,61523:57363,61524:57364,61525:57365,61526:57366,61527:57367,61528:57368,61529:57369,61530:57370,61531:57371,61532:57372,61533:57373,61534:57374,61535:57375,61536:57376,61537:57377,61538:57378,61539:57379,61540:57380,61541:57381,61542:57382,61543:57383,61544:57384,61545:57385,61546:57386,61547:57387,61548:57388,61549:57389,61550:57390,61551:57391,61552:57392,61553:57393,61554:57394,61555:57395,61556:57396,61557:57397,61558:57398,61559:57399,61560:57400,61561:57401,61562:57402,61563:57403,61564:57404,61565:57405,61566:57406,61568:57407,61569:57408,61570:57409,61571:57410,61572:57411,61573:57412,61574:57413,61575:57414,61576:57415,61577:57416,61578:57417,61579:57418,61580:57419,61581:57420,61582:57421,61583:57422,61584:57423,61585:57424,61586:57425,61587:57426,61588:57427,61589:57428,61590:57429,61591:57430,61592:57431,61593:57432,61594:57433,61595:57434,61596:57435,61597:57436,61598:57437,61599:57438,61600:57439,61601:57440,61602:57441,61603:57442,61604:57443,61605:57444,61606:57445,61607:57446,61608:57447,61609:57448,61610:57449,61611:57450,61612:57451,61613:57452,61614:57453,61615:57454,61616:57455,61617:57456,61618:57457,61619:57458,61620:57459,61621:57460,61622:57461,61623:57462,61624:57463,61625:57464,61626:57465,61627:57466,61628:57467,61629:57468,61630:57469,61631:57470,61632:57471,61633:57472,61634:57473,61635:57474,61636:57475,61637:57476,61638:57477,61639:57478,61640:57479,61641:57480,61642:57481,61643:57482,61644:57483,61645:57484,61646:57485,61647:57486,61648:57487,61649:57488,61650:57489,61651:57490,61652:57491,61653:57492,61654:57493,61655:57494,61656:57495,61657:57496,61658:57497,61659:57498,61660:57499,61661:57500,61662:57501,61663:57502,61664:57503,61665:57504,61666:57505,61667:57506,61668:57507,61669:57508,61670:57509,61671:57510,61672:57511,61673:57512,61674:57513,61675:57514,61676:57515,61677:57516,61678:57517,61679:57518,61680:57519,61681:57520,61682:57521,61683:57522,61684:57523,61685:57524,61686:57525,61687:57526,61688:57527,61689:57528,61690:57529,61691:57530,61692:57531,61760:57532,61761:57533,61762:57534,61763:57535,61764:57536,61765:57537,61766:57538,61767:57539,61768:57540,61769:57541,61770:57542,61771:57543,61772:57544,61773:57545,61774:57546,61775:57547,61776:57548,61777:57549,61778:57550,61779:57551,61780:57552,61781:57553,61782:57554,61783:57555,61784:57556,61785:57557,61786:57558,61787:57559,61788:57560,61789:57561,61790:57562,61791:57563,61792:57564,61793:57565,61794:57566,61795:57567,61796:57568,61797:57569,61798:57570,61799:57571,61800:57572,61801:57573,61802:57574,61803:57575,61804:57576,61805:57577,61806:57578,61807:57579,61808:57580,61809:57581,61810:57582,61811:57583,61812:57584,61813:57585,61814:57586,61815:57587,61816:57588,61817:57589,61818:57590,61819:57591,61820:57592,61821:57593,61822:57594,61824:57595,61825:57596,61826:57597,61827:57598,61828:57599,61829:57600,61830:57601,61831:57602,61832:57603,61833:57604,61834:57605,61835:57606,61836:57607,61837:57608,61838:57609,61839:57610,61840:57611,61841:57612,61842:57613,61843:57614,61844:57615,61845:57616,61846:57617,61847:57618,61848:57619,61849:57620,61850:57621,61851:57622,61852:57623,61853:57624,61854:57625,61855:57626,61856:57627,61857:57628,61858:57629,61859:57630,61860:57631,61861:57632,61862:57633,61863:57634,61864:57635,61865:57636,61866:57637,61867:57638,61868:57639,61869:57640,61870:57641,61871:57642,61872:57643,61873:57644,61874:57645,61875:57646,61876:57647,61877:57648,61878:57649,61879:57650,61880:57651,61881:57652,61882:57653,61883:57654,61884:57655,61885:57656,61886:57657,61887:57658,61888:57659,61889:57660,61890:57661,61891:57662,61892:57663,61893:57664,61894:57665,61895:57666,61896:57667,61897:57668,61898:57669,61899:57670,61900:57671,61901:57672,61902:57673,61903:57674,61904:57675,61905:57676,61906:57677,61907:57678,61908:57679,61909:57680,61910:57681,61911:57682,61912:57683,61913:57684,61914:57685,61915:57686,61916:57687,61917:57688,61918:57689,61919:57690,61920:57691,61921:57692,61922:57693,61923:57694,61924:57695,61925:57696,61926:57697,61927:57698,61928:57699,61929:57700,61930:57701,61931:57702,61932:57703,61933:57704,61934:57705,61935:57706,61936:57707,61937:57708,61938:57709,61939:57710,61940:57711,61941:57712,61942:57713,61943:57714,61944:57715,61945:57716,61946:57717,61947:57718,61948:57719,62016:57720,62017:57721,62018:57722,62019:57723,62020:57724,62021:57725,62022:57726,62023:57727,62024:57728,62025:57729,62026:57730,62027:57731,62028:57732,62029:57733,62030:57734,62031:57735,62032:57736,62033:57737,62034:57738,62035:57739,62036:57740,62037:57741,62038:57742,62039:57743,62040:57744,62041:57745,62042:57746,62043:57747,62044:57748,62045:57749,62046:57750,62047:57751,62048:57752,62049:57753,62050:57754,62051:57755,62052:57756,62053:57757,62054:57758,62055:57759,62056:57760,62057:57761,62058:57762,62059:57763,62060:57764,62061:57765,62062:57766,62063:57767,62064:57768,62065:57769,62066:57770,62067:57771,62068:57772,62069:57773,62070:57774,62071:57775,62072:57776,62073:57777,62074:57778,62075:57779,62076:57780,62077:57781,62078:57782,62080:57783,62081:57784,62082:57785,62083:57786,62084:57787,62085:57788,62086:57789,62087:57790,62088:57791,62089:57792,62090:57793,62091:57794,62092:57795,62093:57796,62094:57797,62095:57798,62096:57799,62097:57800,62098:57801,62099:57802,62100:57803,62101:57804,62102:57805,62103:57806,62104:57807,62105:57808,62106:57809,62107:57810,62108:57811,62109:57812,62110:57813,62111:57814,62112:57815,62113:57816,62114:57817,62115:57818,62116:57819,62117:57820,62118:57821,62119:57822,62120:57823,62121:57824,62122:57825,62123:57826,62124:57827,62125:57828,62126:57829,62127:57830,62128:57831,62129:57832,62130:57833,62131:57834,62132:57835,62133:57836,62134:57837,62135:57838,62136:57839,62137:57840,62138:57841,62139:57842,62140:57843,62141:57844,62142:57845,62143:57846,62144:57847,62145:57848,62146:57849,62147:57850,62148:57851,62149:57852,62150:57853,62151:57854,62152:57855,62153:57856,62154:57857,62155:57858,62156:57859,62157:57860,62158:57861,62159:57862,62160:57863,62161:57864,62162:57865,62163:57866,62164:57867,62165:57868,62166:57869,62167:57870,62168:57871,62169:57872,62170:57873,62171:57874,62172:57875,62173:57876,62174:57877,62175:57878,62176:57879,62177:57880,62178:57881,62179:57882,62180:57883,62181:57884,62182:57885,62183:57886,62184:57887,62185:57888,62186:57889,62187:57890,62188:57891,62189:57892,62190:57893,62191:57894,62192:57895,62193:57896,62194:57897,62195:57898,62196:57899,62197:57900,62198:57901,62199:57902,62200:57903,62201:57904,62202:57905,62203:57906,62204:57907,62272:57908,62273:57909,62274:57910,62275:57911,62276:57912,62277:57913,62278:57914,62279:57915,62280:57916,62281:57917,62282:57918,62283:57919,62284:57920,62285:57921,62286:57922,62287:57923,62288:57924,62289:57925,62290:57926,62291:57927,62292:57928,62293:57929,62294:57930,62295:57931,62296:57932,62297:57933,62298:57934,62299:57935,62300:57936,62301:57937,62302:57938,62303:57939,62304:57940,62305:57941,62306:57942,62307:57943,62308:57944,62309:57945,62310:57946,62311:57947,62312:57948,62313:57949,62314:57950,62315:57951,62316:57952,62317:57953,62318:57954,62319:57955,62320:57956,62321:57957,62322:57958,62323:57959,62324:57960,62325:57961,62326:57962,62327:57963,62328:57964,62329:57965,62330:57966,62331:57967,62332:57968,62333:57969,62334:57970,62336:57971,62337:57972,62338:57973,62339:57974,62340:57975,62341:57976,62342:57977,62343:57978,62344:57979,62345:57980,62346:57981,62347:57982,62348:57983,62349:57984,62350:57985,62351:57986,62352:57987,62353:57988,62354:57989,62355:57990,62356:57991,62357:57992,62358:57993,62359:57994,62360:57995,62361:57996,62362:57997,62363:57998,62364:57999,62365:58e3,62366:58001,62367:58002,62368:58003,62369:58004,62370:58005,62371:58006,62372:58007,62373:58008,62374:58009,62375:58010,62376:58011,62377:58012,62378:58013,62379:58014,62380:58015,62381:58016,62382:58017,62383:58018,62384:58019,62385:58020,62386:58021,62387:58022,62388:58023,62389:58024,62390:58025,62391:58026,62392:58027,62393:58028,62394:58029,62395:58030,62396:58031,62397:58032,62398:58033,62399:58034,62400:58035,62401:58036,62402:58037,62403:58038,62404:58039,62405:58040,62406:58041,62407:58042,62408:58043,62409:58044,62410:58045,62411:58046,62412:58047,62413:58048,62414:58049,62415:58050,62416:58051,62417:58052,62418:58053,62419:58054,62420:58055,62421:58056,62422:58057,62423:58058,62424:58059,62425:58060,62426:58061,62427:58062,62428:58063,62429:58064,62430:58065,62431:58066,62432:58067,62433:58068,62434:58069,62435:58070,62436:58071,62437:58072,62438:58073,62439:58074,62440:58075,62441:58076,62442:58077,62443:58078,62444:58079,62445:58080,62446:58081,62447:58082,62448:58083,62449:58084,62450:58085,62451:58086,62452:58087,62453:58088,62454:58089,62455:58090,62456:58091,62457:58092,62458:58093,62459:58094,62460:58095,62528:58096,62529:58097,62530:58098,62531:58099,62532:58100,62533:58101,62534:58102,62535:58103,62536:58104,62537:58105,62538:58106,62539:58107,62540:58108,62541:58109,62542:58110,62543:58111,62544:58112,62545:58113,62546:58114,62547:58115,62548:58116,62549:58117,62550:58118,62551:58119,62552:58120,62553:58121,62554:58122,62555:58123,62556:58124,62557:58125,62558:58126,62559:58127,62560:58128,62561:58129,62562:58130,62563:58131,62564:58132,62565:58133,62566:58134,62567:58135,62568:58136,62569:58137,62570:58138,62571:58139,62572:58140,62573:58141,62574:58142,62575:58143,62576:58144,62577:58145,62578:58146,62579:58147,62580:58148,62581:58149,62582:58150,62583:58151,62584:58152,62585:58153,62586:58154,62587:58155,62588:58156,62589:58157,62590:58158,62592:58159,62593:58160,62594:58161,62595:58162,62596:58163,62597:58164,62598:58165,62599:58166,62600:58167,62601:58168,62602:58169,62603:58170,62604:58171,62605:58172,62606:58173,62607:58174,62608:58175,62609:58176,62610:58177,62611:58178,62612:58179,62613:58180,62614:58181,62615:58182,62616:58183,62617:58184,62618:58185,62619:58186,62620:58187,62621:58188,62622:58189,62623:58190,62624:58191,62625:58192,62626:58193,62627:58194,62628:58195,62629:58196,62630:58197,62631:58198,62632:58199,62633:58200,62634:58201,62635:58202,62636:58203,62637:58204,62638:58205,62639:58206,62640:58207,62641:58208,62642:58209,62643:58210,62644:58211,62645:58212,62646:58213,62647:58214,62648:58215,62649:58216,62650:58217,62651:58218,62652:58219,62653:58220,62654:58221,62655:58222,62656:58223,62657:58224,62658:58225,62659:58226,62660:58227,62661:58228,62662:58229,62663:58230,62664:58231,62665:58232,62666:58233,62667:58234,62668:58235,62669:58236,62670:58237,62671:58238,62672:58239,62673:58240,62674:58241,62675:58242,62676:58243,62677:58244,62678:58245,62679:58246,62680:58247,62681:58248,62682:58249,62683:58250,62684:58251,62685:58252,62686:58253,62687:58254,62688:58255,62689:58256,62690:58257,62691:58258,62692:58259,62693:58260,62694:58261,62695:58262,62696:58263,62697:58264,62698:58265,62699:58266,62700:58267,62701:58268,62702:58269,62703:58270,62704:58271,62705:58272,62706:58273,62707:58274,62708:58275,62709:58276,62710:58277,62711:58278,62712:58279,62713:58280,62714:58281,62715:58282,62716:58283,62784:58284,62785:58285,62786:58286,62787:58287,62788:58288,62789:58289,62790:58290,62791:58291,62792:58292,62793:58293,62794:58294,62795:58295,62796:58296,62797:58297,62798:58298,62799:58299,62800:58300,62801:58301,62802:58302,62803:58303,62804:58304,62805:58305,62806:58306,62807:58307,62808:58308,62809:58309,62810:58310,62811:58311,62812:58312,62813:58313,62814:58314,62815:58315,62816:58316,62817:58317,62818:58318,62819:58319,62820:58320,62821:58321,62822:58322,62823:58323,62824:58324,62825:58325,62826:58326,62827:58327,62828:58328,62829:58329,62830:58330,62831:58331,62832:58332,62833:58333,62834:58334,62835:58335,62836:58336,62837:58337,62838:58338,62839:58339,62840:58340,62841:58341,62842:58342,62843:58343,62844:58344,62845:58345,62846:58346,62848:58347,62849:58348,62850:58349,62851:58350,62852:58351,62853:58352,62854:58353,62855:58354,62856:58355,62857:58356,62858:58357,62859:58358,62860:58359,62861:58360,62862:58361,62863:58362,62864:58363,62865:58364,62866:58365,62867:58366,62868:58367,62869:58368,62870:58369,62871:58370,62872:58371,62873:58372,62874:58373,62875:58374,62876:58375,62877:58376,62878:58377,62879:58378,62880:58379,62881:58380,62882:58381,62883:58382,62884:58383,62885:58384,62886:58385,62887:58386,62888:58387,62889:58388,62890:58389,62891:58390,62892:58391,62893:58392,62894:58393,62895:58394,62896:58395,62897:58396,62898:58397,62899:58398,62900:58399,62901:58400,62902:58401,62903:58402,62904:58403,62905:58404,62906:58405,62907:58406,62908:58407,62909:58408,62910:58409,62911:58410,62912:58411,62913:58412,62914:58413,62915:58414,62916:58415,62917:58416,62918:58417,62919:58418,62920:58419,62921:58420,62922:58421,62923:58422,62924:58423,62925:58424,62926:58425,62927:58426,62928:58427,62929:58428,62930:58429,62931:58430,62932:58431,62933:58432,62934:58433,62935:58434,62936:58435,62937:58436,62938:58437,62939:58438,62940:58439,62941:58440,62942:58441,62943:58442,62944:58443,62945:58444,62946:58445,62947:58446,62948:58447,62949:58448,62950:58449,62951:58450,62952:58451,62953:58452,62954:58453,62955:58454,62956:58455,62957:58456,62958:58457,62959:58458,62960:58459,62961:58460,62962:58461,62963:58462,62964:58463,62965:58464,62966:58465,62967:58466,62968:58467,62969:58468,62970:58469,62971:58470,62972:58471,63040:58472,63041:58473,63042:58474,63043:58475,63044:58476,63045:58477,63046:58478,63047:58479,63048:58480,63049:58481,63050:58482,63051:58483,63052:58484,63053:58485,63054:58486,63055:58487,63056:58488,63057:58489,63058:58490,63059:58491,63060:58492,63061:58493,63062:58494,63063:58495,63064:58496,63065:58497,63066:58498,63067:58499,63068:58500,63069:58501,63070:58502,63071:58503,63072:58504,63073:58505,63074:58506,63075:58507,63076:58508,63077:58509,63078:58510,63079:58511,63080:58512,63081:58513,63082:58514,63083:58515,63084:58516,63085:58517,63086:58518,63087:58519,63088:58520,63089:58521,63090:58522,63091:58523,63092:58524,63093:58525,63094:58526,63095:58527,63096:58528,63097:58529,63098:58530,63099:58531,63100:58532,63101:58533,63102:58534,63104:58535,63105:58536,63106:58537,63107:58538,63108:58539,63109:58540,63110:58541,63111:58542,63112:58543,63113:58544,63114:58545,63115:58546,63116:58547,63117:58548,63118:58549,63119:58550,63120:58551,63121:58552,63122:58553,63123:58554,63124:58555,63125:58556,63126:58557,63127:58558,63128:58559,63129:58560,63130:58561,63131:58562,63132:58563,63133:58564,63134:58565,63135:58566,63136:58567,63137:58568,63138:58569,63139:58570,63140:58571,63141:58572,63142:58573,63143:58574,63144:58575,63145:58576,63146:58577,63147:58578,63148:58579,63149:58580,63150:58581,63151:58582,63152:58583,63153:58584,63154:58585,63155:58586,63156:58587,63157:58588,63158:58589,63159:58590,63160:58591,63161:58592,63162:58593,63163:58594,63164:58595,63165:58596,63166:58597,63167:58598,63168:58599,63169:58600,63170:58601,63171:58602,63172:58603,63173:58604,63174:58605,63175:58606,63176:58607,63177:58608,63178:58609,63179:58610,63180:58611,63181:58612,63182:58613,63183:58614,63184:58615,63185:58616,63186:58617,63187:58618,63188:58619,63189:58620,63190:58621,63191:58622,63192:58623,63193:58624,63194:58625,63195:58626,63196:58627,63197:58628,63198:58629,63199:58630,63200:58631,63201:58632,63202:58633,63203:58634,63204:58635,63205:58636,63206:58637,63207:58638,63208:58639,63209:58640,63210:58641,63211:58642,63212:58643,63213:58644,63214:58645,63215:58646,63216:58647,63217:58648,63218:58649,63219:58650,63220:58651,63221:58652,63222:58653,63223:58654,63224:58655,63225:58656,63226:58657,63227:58658,63228:58659,63296:58660,63297:58661,63298:58662,63299:58663,63300:58664,63301:58665,63302:58666,63303:58667,63304:58668,63305:58669,63306:58670,63307:58671,63308:58672,63309:58673,63310:58674,63311:58675,63312:58676,63313:58677,63314:58678,63315:58679,63316:58680,63317:58681,63318:58682,63319:58683,63320:58684,63321:58685,63322:58686,63323:58687,63324:58688,63325:58689,63326:58690,63327:58691,63328:58692,63329:58693,63330:58694,63331:58695,63332:58696,63333:58697,63334:58698,63335:58699,63336:58700,63337:58701,63338:58702,63339:58703,63340:58704,63341:58705,63342:58706,63343:58707,63344:58708,63345:58709,63346:58710,63347:58711,63348:58712,63349:58713,63350:58714,63351:58715,63352:58716,63353:58717,63354:58718,63355:58719,63356:58720,63357:58721,63358:58722,63360:58723,63361:58724,63362:58725,63363:58726,63364:58727,63365:58728,63366:58729,63367:58730,63368:58731,63369:58732,63370:58733,63371:58734,63372:58735,63373:58736,63374:58737,63375:58738,63376:58739,63377:58740,63378:58741,63379:58742,63380:58743,63381:58744,63382:58745,63383:58746,63384:58747,63385:58748,63386:58749,63387:58750,63388:58751,63389:58752,63390:58753,63391:58754,63392:58755,63393:58756,63394:58757,63395:58758,63396:58759,63397:58760,63398:58761,63399:58762,63400:58763,63401:58764,63402:58765,63403:58766,63404:58767,63405:58768,63406:58769,63407:58770,63408:58771,63409:58772,63410:58773,63411:58774,63412:58775,63413:58776,63414:58777,63415:58778,63416:58779,63417:58780,63418:58781,63419:58782,63420:58783,63421:58784,63422:58785,63423:58786,63424:58787,63425:58788,63426:58789,63427:58790,63428:58791,63429:58792,63430:58793,63431:58794,63432:58795,63433:58796,63434:58797,63435:58798,63436:58799,63437:58800,63438:58801,63439:58802,63440:58803,63441:58804,63442:58805,63443:58806,63444:58807,63445:58808,63446:58809,63447:58810,63448:58811,63449:58812,63450:58813,63451:58814,63452:58815,63453:58816,63454:58817,63455:58818,63456:58819,63457:58820,63458:58821,63459:58822,63460:58823,63461:58824,63462:58825,63463:58826,63464:58827,63465:58828,63466:58829,63467:58830,63468:58831,63469:58832,63470:58833,63471:58834,63472:58835,63473:58836,63474:58837,63475:58838,63476:58839,63477:58840,63478:58841,63479:58842,63480:58843,63481:58844,63482:58845,63483:58846,63484:58847,63552:58848,63553:58849,63554:58850,63555:58851,63556:58852,63557:58853,63558:58854,63559:58855,63560:58856,63561:58857,63562:58858,63563:58859,63564:58860,63565:58861,63566:58862,63567:58863,63568:58864,63569:58865,63570:58866,63571:58867,63572:58868,63573:58869,63574:58870,63575:58871,63576:58872,63577:58873,63578:58874,63579:58875,63580:58876,63581:58877,63582:58878,63583:58879,63584:58880,63585:58881,63586:58882,63587:58883,63588:58884,63589:58885,63590:58886,63591:58887,63592:58888,63593:58889,63594:58890,63595:58891,63596:58892,63597:58893,63598:58894,63599:58895,63600:58896,63601:58897,63602:58898,63603:58899,63604:58900,63605:58901,63606:58902,63607:58903,63608:58904,63609:58905,63610:58906,63611:58907,63612:58908,63613:58909,63614:58910,63616:58911,63617:58912,63618:58913,63619:58914,63620:58915,63621:58916,63622:58917,63623:58918,63624:58919,63625:58920,63626:58921,63627:58922,63628:58923,63629:58924,63630:58925,63631:58926,63632:58927,63633:58928,63634:58929,63635:58930,63636:58931,63637:58932,63638:58933,63639:58934,63640:58935,63641:58936,63642:58937,63643:58938,63644:58939,63645:58940,63646:58941,63647:58942,63648:58943,63649:58944,63650:58945,63651:58946,63652:58947,63653:58948,63654:58949,63655:58950,63656:58951,63657:58952,63658:58953,63659:58954,63660:58955,63661:58956,63662:58957,63663:58958,63664:58959,63665:58960,63666:58961,63667:58962,63668:58963,63669:58964,63670:58965,63671:58966,63672:58967,63673:58968,63674:58969,63675:58970,63676:58971,63677:58972,63678:58973,63679:58974,63680:58975,63681:58976,63682:58977,63683:58978,63684:58979,63685:58980,63686:58981,63687:58982,63688:58983,63689:58984,63690:58985,63691:58986,63692:58987,63693:58988,63694:58989,63695:58990,63696:58991,63697:58992,63698:58993,63699:58994,63700:58995,63701:58996,63702:58997,63703:58998,63704:58999,63705:59e3,63706:59001,63707:59002,63708:59003,63709:59004,63710:59005,63711:59006,63712:59007,63713:59008,63714:59009,63715:59010,63716:59011,63717:59012,63718:59013,63719:59014,63720:59015,63721:59016,63722:59017,63723:59018,63724:59019,63725:59020,63726:59021,63727:59022,63728:59023,63729:59024,63730:59025,63731:59026,63732:59027,63733:59028,63734:59029,63735:59030,63736:59031,63737:59032,63738:59033,63739:59034,63740:59035,64064:8560,64065:8561,64066:8562,64067:8563,64068:8564,64069:8565,64070:8566,64071:8567,64072:8568,64073:8569,64074:8544,64075:8545,64076:8546,64077:8547,64078:8548,64079:8549,64080:8550,64081:8551,64082:8552,64083:8553,64084:65506,64085:65508,64086:65287,64087:65282,64088:12849,64089:8470,64090:8481,64091:8757,64092:32394,64093:35100,64094:37704,64095:37512,64096:34012,64097:20425,64098:28859,64099:26161,64100:26824,64101:37625,64102:26363,64103:24389,64104:20008,64105:20193,64106:20220,64107:20224,64108:20227,64109:20281,64110:20310,64111:20370,64112:20362,64113:20378,64114:20372,64115:20429,64116:20544,64117:20514,64118:20479,64119:20510,64120:20550,64121:20592,64122:20546,64123:20628,64124:20724,64125:20696,64126:20810,64128:20836,64129:20893,64130:20926,64131:20972,64132:21013,64133:21148,64134:21158,64135:21184,64136:21211,64137:21248,64138:21255,64139:21284,64140:21362,64141:21395,64142:21426,64143:21469,64144:64014,64145:21660,64146:21642,64147:21673,64148:21759,64149:21894,64150:22361,64151:22373,64152:22444,64153:22472,64154:22471,64155:64015,64156:64016,64157:22686,64158:22706,64159:22795,64160:22867,64161:22875,64162:22877,64163:22883,64164:22948,64165:22970,64166:23382,64167:23488,64168:29999,64169:23512,64170:23532,64171:23582,64172:23718,64173:23738,64174:23797,64175:23847,64176:23891,64177:64017,64178:23874,64179:23917,64180:23992,64181:23993,64182:24016,64183:24353,64184:24372,64185:24423,64186:24503,64187:24542,64188:24669,64189:24709,64190:24714,64191:24798,64192:24789,64193:24864,64194:24818,64195:24849,64196:24887,64197:24880,64198:24984,64199:25107,64200:25254,64201:25589,64202:25696,64203:25757,64204:25806,64205:25934,64206:26112,64207:26133,64208:26171,64209:26121,64210:26158,64211:26142,64212:26148,64213:26213,64214:26199,64215:26201,64216:64018,64217:26227,64218:26265,64219:26272,64220:26290,64221:26303,64222:26362,64223:26382,64224:63785,64225:26470,64226:26555,64227:26706,64228:26560,64229:26625,64230:26692,64231:26831,64232:64019,64233:26984,64234:64020,64235:27032,64236:27106,64237:27184,64238:27243,64239:27206,64240:27251,64241:27262,64242:27362,64243:27364,64244:27606,64245:27711,64246:27740,64247:27782,64248:27759,64249:27866,64250:27908,64251:28039,64252:28015,64320:28054,64321:28076,64322:28111,64323:28152,64324:28146,64325:28156,64326:28217,64327:28252,64328:28199,64329:28220,64330:28351,64331:28552,64332:28597,64333:28661,64334:28677,64335:28679,64336:28712,64337:28805,64338:28843,64339:28943,64340:28932,64341:29020,64342:28998,64343:28999,64344:64021,64345:29121,64346:29182,64347:29361,64348:29374,64349:29476,64350:64022,64351:29559,64352:29629,64353:29641,64354:29654,64355:29667,64356:29650,64357:29703,64358:29685,64359:29734,64360:29738,64361:29737,64362:29742,64363:29794,64364:29833,64365:29855,64366:29953,64367:30063,64368:30338,64369:30364,64370:30366,64371:30363,64372:30374,64373:64023,64374:30534,64375:21167,64376:30753,64377:30798,64378:30820,64379:30842,64380:31024,64381:64024,64382:64025,64384:64026,64385:31124,64386:64027,64387:31131,64388:31441,64389:31463,64390:64028,64391:31467,64392:31646,64393:64029,64394:32072,64395:32092,64396:32183,64397:32160,64398:32214,64399:32338,64400:32583,64401:32673,64402:64030,64403:33537,64404:33634,64405:33663,64406:33735,64407:33782,64408:33864,64409:33972,64410:34131,64411:34137,64412:34155,64413:64031,64414:34224,64415:64032,64416:64033,64417:34823,64418:35061,64419:35346,64420:35383,64421:35449,64422:35495,64423:35518,64424:35551,64425:64034,64426:35574,64427:35667,64428:35711,64429:36080,64430:36084,64431:36114,64432:36214,64433:64035,64434:36559,64435:64036,64436:64037,64437:36967,64438:37086,64439:64038,64440:37141,64441:37159,64442:37338,64443:37335,64444:37342,64445:37357,64446:37358,64447:37348,64448:37349,64449:37382,64450:37392,64451:37386,64452:37434,64453:37440,64454:37436,64455:37454,64456:37465,64457:37457,64458:37433,64459:37479,64460:37543,64461:37495,64462:37496,64463:37607,64464:37591,64465:37593,64466:37584,64467:64039,64468:37589,64469:37600,64470:37587,64471:37669,64472:37665,64473:37627,64474:64040,64475:37662,64476:37631,64477:37661,64478:37634,64479:37744,64480:37719,64481:37796,64482:37830,64483:37854,64484:37880,64485:37937,64486:37957,64487:37960,64488:38290,64489:63964,64490:64041,64491:38557,64492:38575,64493:38707,64494:38715,64495:38723,64496:38733,64497:38735,64498:38737,64499:38741,64500:38999,64501:39013,64502:64042,64503:64043,64504:39207,64505:64044,64506:39326,64507:39502,64508:39641,64576:39644,64577:39797,64578:39794,64579:39823,64580:39857,64581:39867,64582:39936,64583:40304,64584:40299,64585:64045,64586:40473,64587:40657}}s2u(e){for(var t=this.s2uTable,r="",n=0;n=0&&i<=126||i>=161&&i<=223)&&n0;){var r=this.getUint8();if(e--,0===r)break;t+=String.fromCharCode(r)}for(;e>0;)this.getUint8(),e--;return t}getSjisStringsAsUnicode(e){for(var t=[];e>0;){var r=this.getUint8();if(e--,0===r)break;t.push(r)}for(;e>0;)this.getUint8(),e--;return this.encoder.s2u(new Uint8Array(t))}getUnicodeStrings(e){for(var t="";e>0;){var r=this.getUint16();if(e-=2,0===r)break;t+=String.fromCharCode(r)}for(;e>0;)this.getUint8(),e--;return t}getTextBuffer(){var e=this.getUint32();return this.getUnicodeStrings(e)}}class i{leftToRightVector3(e){e[2]=-e[2]}leftToRightQuaternion(e){e[0]=-e[0],e[1]=-e[1]}leftToRightEuler(e){e[0]=-e[0],e[1]=-e[1]}leftToRightIndexOrder(e){var t=e[2];e[2]=e[0],e[0]=t}leftToRightVector3Range(e,t){var r=-t[2];t[2]=-e[2],e[2]=r}leftToRightEulerRange(e,t){var r=-t[0],n=-t[1];t[0]=-e[0],t[1]=-e[1],e[0]=r,e[1]=n}}t.CharsetEncoder=r,t.Parser=class{constructor(){}parsePmd(e,t){var r={},i=new n(e);r.metadata={},r.metadata.format="pmd",r.metadata.coordinateSystem="left";var s;return function(){var e=r.metadata;if(e.magic=i.getChars(3),"Pmd"!==e.magic)throw"PMD file magic is not Pmd, but "+e.magic;e.version=i.getFloat32(),e.modelName=i.getSjisStringsAsUnicode(20),e.comment=i.getSjisStringsAsUnicode(256)}(),function(){var e,t=r.metadata;t.vertexCount=i.getUint32(),r.vertices=[];for(var n=0;n0&&(s.englishModelName=i.getSjisStringsAsUnicode(20),s.englishComment=i.getSjisStringsAsUnicode(256)),function(){var e=r.metadata;if(0!==e.englishCompatibility){r.englishBoneNames=[];for(var t=0;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const{parseBuffer:r}=(()=>{var e=0,r=-3;function n(){this.table=new Uint16Array(16),this.trans=new Uint16Array(288)}function i(e,t){this.source=e,this.sourceIndex=0,this.tag=0,this.bitcount=0,this.dest=t,this.destLen=0,this.ltree=new n,this.dtree=new n}var s=new n,a=new n,o=new Uint8Array(30),l=new Uint16Array(30),c=new Uint8Array(30),h=new Uint16Array(30),u=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new n,p=new Uint8Array(320);function f(e,t,r,n){var i,s;for(i=0;i>>=1,t}function v(e,t,r){if(!t)return r;for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>16-t;return e.tag>>>=t,e.bitcount-=t,n+r}function y(e,t){for(;e.bitcount<24;)e.tag|=e.source[e.sourceIndex++]<>>=1,++i,r+=t.table[i],n-=t.table[i]}while(n>=0);return e.tag=s,e.bitcount-=i,t.trans[r+n]}function x(e,t,r){var n,i,s,a,o,l;for(n=v(e,5,257),i=v(e,5,1),s=v(e,4,4),a=0;a<19;++a)p[a]=0;for(a=0;a8;)t.sourceIndex--,t.bitcount-=8;if((n=256*(n=t.source[t.sourceIndex+1])+t.source[t.sourceIndex])!==(65535&~(256*t.source[t.sourceIndex+3]+t.source[t.sourceIndex+2])))return r;for(t.sourceIndex+=4,i=n;i;--i)t.dest[t.destLen++]=t.source[t.sourceIndex++];return t.bitcount=0,e}!function(e,t){var r;for(r=0;r<7;++r)e.table[r]=0;for(e.table[7]=24,e.table[8]=152,e.table[9]=112,r=0;r<24;++r)e.trans[r]=256+r;for(r=0;r<144;++r)e.trans[24+r]=r;for(r=0;r<8;++r)e.trans[168+r]=280+r;for(r=0;r<112;++r)e.trans[176+r]=144+r;for(r=0;r<5;++r)t.table[r]=0;for(t.table[5]=32,r=0;r<32;++r)t.trans[r]=r}(s,a),f(o,l,4,3),f(c,h,2,1),o[28]=0,l[28]=258;var _=function(t,n){var o,l,c=new i(t,n);do{switch(o=A(c),v(c,2,0)){case 0:l=E(c);break;case 1:l=b(c,s,a);break;case 2:x(c,c.ltree,c.dtree),l=b(c,c.ltree,c.dtree);break;default:l=r}if(l!==e)throw new Error("Data error")}while(!o);return c.destLenthis.x2&&(this.x2=e)),"number"==typeof t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))},M.prototype.addX=function(e){this.addPoint(e,null)},M.prototype.addY=function(e){this.addPoint(null,e)},M.prototype.addBezier=function(e,t,r,n,i,s,a,o){var l=[e,t],c=[r,n],h=[i,s],u=[a,o];this.addPoint(e,t),this.addPoint(a,o);for(var d=0;d<=1;d++){var p=6*l[d]-12*c[d]+6*h[d],f=-3*l[d]+9*c[d]-9*h[d]+3*u[d],m=3*c[d]-3*l[d];if(0!==f){var g=Math.pow(p,2)-4*m*f;if(!(g<0)){var A=(-p+Math.sqrt(g))/(2*f);0=0&&n>0&&(r+=" "),r+=t(i)}return r}e=void 0!==e?e:2;for(var n="",i=0;i=0&&e<=255,"Byte value should be between 0 and 255."),[e]},D.BYTE=L(1),P.CHAR=function(e){return[e.charCodeAt(0)]},D.CHAR=L(1),P.CHARARRAY=function(e){void 0===e&&(e="",console.warn("Undefined CHARARRAY encountered and treated as an empty string. This is probably caused by a missing glyph name."));for(var t=[],r=0;r>8&255,255&e]},D.USHORT=L(2),P.SHORT=function(e){return e>=32768&&(e=-(65536-e)),[e>>8&255,255&e]},D.SHORT=L(2),P.UINT24=function(e){return[e>>16&255,e>>8&255,255&e]},D.UINT24=L(3),P.ULONG=function(e){return[e>>24&255,e>>16&255,e>>8&255,255&e]},D.ULONG=L(4),P.LONG=function(e){return e>=B&&(e=-(2*B-e)),[e>>24&255,e>>16&255,e>>8&255,255&e]},D.LONG=L(4),P.FIXED=P.ULONG,D.FIXED=D.ULONG,P.FWORD=P.SHORT,D.FWORD=D.SHORT,P.UFWORD=P.USHORT,D.UFWORD=D.USHORT,P.LONGDATETIME=function(e){return[0,0,0,0,e>>24&255,e>>16&255,e>>8&255,255&e]},D.LONGDATETIME=L(8),P.TAG=function(e){return I.argument(4===e.length,"Tag should be exactly 4 ASCII characters."),[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]},D.TAG=L(4),P.Card8=P.BYTE,D.Card8=D.BYTE,P.Card16=P.USHORT,D.Card16=D.USHORT,P.OffSize=P.BYTE,D.OffSize=D.BYTE,P.SID=P.USHORT,D.SID=D.USHORT,P.NUMBER=function(e){return e>=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?P.NUMBER16(e):P.NUMBER32(e)},D.NUMBER=function(e){return P.NUMBER(e).length},P.NUMBER16=function(e){return[28,e>>8&255,255&e]},D.NUMBER16=L(3),P.NUMBER32=function(e){return[29,e>>24&255,e>>16&255,e>>8&255,255&e]},D.NUMBER32=L(5),P.REAL=function(e){var t=e.toString(),r=/\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/.exec(t);if(r){var n=parseFloat("1e"+((r[2]?+r[2]:0)+r[1].length));t=(Math.round(e*n)/n).toString()}for(var i="",s=0,a=t.length;s>8&255,t[t.length]=255&n}return t},D.UTF16=function(e){return 2*e.length};var F={"x-mac-croatian":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\u0160\u2122\xb4\xa8\u2260\u017d\xd8\u221e\xb1\u2264\u2265\u2206\xb5\u2202\u2211\u220f\u0161\u222b\xaa\xba\u03a9\u017e\xf8\xbf\xa1\xac\u221a\u0192\u2248\u0106\xab\u010c\u2026 \xc0\xc3\xd5\u0152\u0153\u0110\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\uf8ff\xa9\u2044\u20ac\u2039\u203a\xc6\xbb\u2013\xb7\u201a\u201e\u2030\xc2\u0107\xc1\u010d\xc8\xcd\xce\xcf\xcc\xd3\xd4\u0111\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u03c0\xcb\u02da\xb8\xca\xe6\u02c7","x-mac-cyrillic":"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041a\u041b\u041c\u041d\u041e\u041f\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042a\u042b\u042c\u042d\u042e\u042f\u2020\xb0\u0490\xa3\xa7\u2022\xb6\u0406\xae\xa9\u2122\u0402\u0452\u2260\u0403\u0453\u221e\xb1\u2264\u2265\u0456\xb5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040a\u045a\u0458\u0405\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \u040b\u045b\u040c\u045c\u0455\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u201e\u040e\u045e\u040f\u045f\u2116\u0401\u0451\u044f\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043a\u043b\u043c\u043d\u043e\u043f\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044a\u044b\u044c\u044d\u044e","x-mac-gaelic":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u1e02\xb1\u2264\u2265\u1e03\u010a\u010b\u1e0a\u1e0b\u1e1e\u1e1f\u0120\u0121\u1e40\xe6\xf8\u1e41\u1e56\u1e57\u027c\u0192\u017f\u1e60\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\u1e61\u1e9b\xff\u0178\u1e6a\u20ac\u2039\u203a\u0176\u0177\u1e6b\xb7\u1ef2\u1ef3\u204a\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\u2663\xd2\xda\xdb\xd9\u0131\xdd\xfd\u0174\u0175\u1e84\u1e85\u1e80\u1e81\u1e82\u1e83","x-mac-greek":"\xc4\xb9\xb2\xc9\xb3\xd6\xdc\u0385\xe0\xe2\xe4\u0384\xa8\xe7\xe9\xe8\xea\xeb\xa3\u2122\xee\xef\u2022\xbd\u2030\xf4\xf6\xa6\u20ac\xf9\xfb\xfc\u2020\u0393\u0394\u0398\u039b\u039e\u03a0\xdf\xae\xa9\u03a3\u03aa\xa7\u2260\xb0\xb7\u0391\xb1\u2264\u2265\xa5\u0392\u0395\u0396\u0397\u0399\u039a\u039c\u03a6\u03ab\u03a8\u03a9\u03ac\u039d\xac\u039f\u03a1\u2248\u03a4\xab\xbb\u2026 \u03a5\u03a7\u0386\u0388\u0153\u2013\u2015\u201c\u201d\u2018\u2019\xf7\u0389\u038a\u038c\u038e\u03ad\u03ae\u03af\u03cc\u038f\u03cd\u03b1\u03b2\u03c8\u03b4\u03b5\u03c6\u03b3\u03b7\u03b9\u03be\u03ba\u03bb\u03bc\u03bd\u03bf\u03c0\u03ce\u03c1\u03c3\u03c4\u03b8\u03c9\u03c2\u03c7\u03c5\u03b6\u03ca\u03cb\u0390\u03b0\xad","x-mac-icelandic":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\xdd\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\xd0\xf0\xde\xfe\xfd\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-inuit":"\u1403\u1404\u1405\u1406\u140a\u140b\u1431\u1432\u1433\u1434\u1438\u1439\u1449\u144e\u144f\u1450\u1451\u1455\u1456\u1466\u146d\u146e\u146f\u1470\u1472\u1473\u1483\u148b\u148c\u148d\u148e\u1490\u1491\xb0\u14a1\u14a5\u14a6\u2022\xb6\u14a7\xae\xa9\u2122\u14a8\u14aa\u14ab\u14bb\u14c2\u14c3\u14c4\u14c5\u14c7\u14c8\u14d0\u14ef\u14f0\u14f1\u14f2\u14f4\u14f5\u1505\u14d5\u14d6\u14d7\u14d8\u14da\u14db\u14ea\u1528\u1529\u152a\u152b\u152d\u2026 \u152e\u153e\u1555\u1556\u1557\u2013\u2014\u201c\u201d\u2018\u2019\u1558\u1559\u155a\u155d\u1546\u1547\u1548\u1549\u154b\u154c\u1550\u157f\u1580\u1581\u1582\u1583\u1584\u1585\u158f\u1590\u1591\u1592\u1593\u1594\u1595\u1671\u1672\u1673\u1674\u1675\u1676\u1596\u15a0\u15a1\u15a2\u15a3\u15a4\u15a5\u15a6\u157c\u0141\u0142","x-mac-ce":"\xc4\u0100\u0101\xc9\u0104\xd6\xdc\xe1\u0105\u010c\xe4\u010d\u0106\u0107\xe9\u0179\u017a\u010e\xed\u010f\u0112\u0113\u0116\xf3\u0117\xf4\xf6\xf5\xfa\u011a\u011b\xfc\u2020\xb0\u0118\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\u0119\xa8\u2260\u0123\u012e\u012f\u012a\u2264\u2265\u012b\u0136\u2202\u2211\u0142\u013b\u013c\u013d\u013e\u0139\u013a\u0145\u0146\u0143\xac\u221a\u0144\u0147\u2206\xab\xbb\u2026 \u0148\u0150\xd5\u0151\u014c\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\u014d\u0154\u0155\u0158\u2039\u203a\u0159\u0156\u0157\u0160\u201a\u201e\u0161\u015a\u015b\xc1\u0164\u0165\xcd\u017d\u017e\u016a\xd3\xd4\u016b\u016e\xda\u016f\u0170\u0171\u0172\u0173\xdd\xfd\u0137\u017b\u0141\u017c\u0122\u02c7",macintosh:"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\u2039\u203a\ufb01\ufb02\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-romanian":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\u0102\u0218\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\u0103\u0219\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u2044\u20ac\u2039\u203a\u021a\u021b\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\u0131\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7","x-mac-turkish":"\xc4\xc5\xc7\xc9\xd1\xd6\xdc\xe1\xe0\xe2\xe4\xe3\xe5\xe7\xe9\xe8\xea\xeb\xed\xec\xee\xef\xf1\xf3\xf2\xf4\xf6\xf5\xfa\xf9\xfb\xfc\u2020\xb0\xa2\xa3\xa7\u2022\xb6\xdf\xae\xa9\u2122\xb4\xa8\u2260\xc6\xd8\u221e\xb1\u2264\u2265\xa5\xb5\u2202\u2211\u220f\u03c0\u222b\xaa\xba\u03a9\xe6\xf8\xbf\xa1\xac\u221a\u0192\u2248\u2206\xab\xbb\u2026 \xc0\xc3\xd5\u0152\u0153\u2013\u2014\u201c\u201d\u2018\u2019\xf7\u25ca\xff\u0178\u011e\u011f\u0130\u0131\u015e\u015f\u2021\xb7\u201a\u201e\u2030\xc2\xca\xc1\xcb\xc8\xcd\xce\xcf\xcc\xd3\xd4\uf8ff\xd2\xda\xdb\xd9\uf8a0\u02c6\u02dc\xaf\u02d8\u02d9\u02da\xb8\u02dd\u02db\u02c7"};R.MACSTRING=function(e,t,r,n){var i=F[n];if(void 0!==i){for(var s="",a=0;a=-128&&e<=127}function k(e,t,r){for(var n=0,i=e.length;t>8&255,l+256&255)}return s}P.MACSTRING=function(e,t){var r=function(e){if(!U)for(var t in U={},F)U[t]=new String(t);var r=U[e];if(void 0!==r){if(O){var n=O.get(r);if(void 0!==n)return n}var i=F[e];if(void 0!==i){for(var s={},a=0;a=128&&void 0===(s=r[s]))return;n[i]=s}return n}},D.MACSTRING=function(e,t){var r=P.MACSTRING(e,t);return void 0!==r?r.length:0},P.VARDELTAS=function(e){for(var t=0,r=[];t=-128&&n<=127?G(e,t,r):z(e,t,r)}return r},P.INDEX=function(e){for(var t=1,r=[t],n=[],i=0;i>8,t[u+1]=255&d,t=t.concat(n[h])}return t},D.TABLE=function(e){for(var t=0,r=e.fields.length,n=0;n0)return new ne(this.data,this.offset+t).parseStruct(e)},ne.prototype.parsePointer32=function(e){var t=this.parseOffset32();if(t>0)return new ne(this.data,this.offset+t).parseStruct(e)},ne.prototype.parseListOfLists=function(e){for(var t=this.parseOffset16List(),r=t.length,n=this.relativeOffset,i=new Array(r),s=0;s=0;i-=1){var s=se.getUShort(e,t+4+8*i),a=se.getUShort(e,t+4+8*i+2);if(3===s&&(0===a||1===a||10===a)||0===s&&(0===a||1===a||2===a||3===a||4===a)){n=se.getULong(e,t+4+8*i+4);break}}if(-1===n)throw new Error("No valid cmap sub-tables found.");var o=new se.Parser(e,t+n);if(r.format=o.parseUShort(),12===r.format)!function(e,t){var r;t.parseUShort(),e.length=t.parseULong(),e.language=t.parseULong(),e.groupCount=r=t.parseULong(),e.glyphIndexMap={};for(var n=0;n>1,t.skip("uShort",3),e.glyphIndexMap={};for(var a=new se.Parser(r,n+i+14),o=new se.Parser(r,n+i+16+2*s),l=new se.Parser(r,n+i+16+4*s),c=new se.Parser(r,n+i+16+6*s),h=n+i+16+8*s,u=0;u0;t-=1){if(e.get(t).unicode>65535){console.log("Adding CMAP format 12 (needed!)"),r=!1;break}}var n=[{name:"version",type:"USHORT",value:0},{name:"numTables",type:"USHORT",value:r?1:2},{name:"platformID",type:"USHORT",value:3},{name:"encodingID",type:"USHORT",value:1},{name:"offset",type:"ULONG",value:r?12:20}];r||(n=n.concat([{name:"cmap12PlatformID",type:"USHORT",value:3},{name:"cmap12EncodingID",type:"USHORT",value:10},{name:"cmap12Offset",type:"ULONG",value:0}])),n=n.concat([{name:"format",type:"USHORT",value:4},{name:"cmap4Length",type:"USHORT",value:0},{name:"language",type:"USHORT",value:0},{name:"segCountX2",type:"USHORT",value:0},{name:"searchRange",type:"USHORT",value:0},{name:"entrySelector",type:"USHORT",value:0},{name:"rangeShift",type:"USHORT",value:0}]);var i=new J.Table("cmap",n);for(i.segments=[],t=0;t>4,s=15&n;if(15===i)break;if(t+=r[i],15===s)break;t+=r[s]}return parseFloat(t)}(e);if(t>=32&&t<=246)return t-139;if(t>=247&&t<=250)return 256*(t-247)+e.parseByte()+108;if(t>=251&&t<=254)return 256*-(t-251)-e.parseByte()-108;throw new Error("Invalid b0 "+t)}function we(e,t,r){t=void 0!==t?t:0;var n=new se.Parser(e,t),i=[],s=[];for(r=void 0!==r?r:e.length;n.relativeOffset>1,d.length=0,f=!0}return function r(c){for(var v,y,_,S,M,w,C,T,I,B,R,P,D=0;D1&&!f&&(x=d.shift()+h,f=!0),A+=d.pop(),b(g,A);break;case 5:for(;d.length>0;)g+=d.shift(),A+=d.shift(),u.lineTo(g,A);break;case 6:for(;d.length>0&&(g+=d.shift(),u.lineTo(g,A),0!==d.length);)A+=d.shift(),u.lineTo(g,A);break;case 7:for(;d.length>0&&(A+=d.shift(),u.lineTo(g,A),0!==d.length);)g+=d.shift(),u.lineTo(g,A);break;case 8:for(;d.length>0;)n=g+d.shift(),i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+d.shift(),u.curveTo(n,i,s,a,g,A);break;case 10:M=d.pop()+l,(w=o[M])&&r(w);break;case 11:return;case 12:switch(L=c[D],D+=1,L){case 35:n=g+d.shift(),i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),C=s+d.shift(),T=a+d.shift(),I=C+d.shift(),B=T+d.shift(),R=I+d.shift(),P=B+d.shift(),g=R+d.shift(),A=P+d.shift(),d.shift(),u.curveTo(n,i,s,a,C,T),u.curveTo(I,B,R,P,g,A);break;case 34:n=g+d.shift(),i=A,s=n+d.shift(),a=i+d.shift(),C=s+d.shift(),T=a,I=C+d.shift(),B=a,R=I+d.shift(),P=A,g=R+d.shift(),u.curveTo(n,i,s,a,C,T),u.curveTo(I,B,R,P,g,A);break;case 36:n=g+d.shift(),i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),C=s+d.shift(),T=a,I=C+d.shift(),B=a,R=I+d.shift(),P=B+d.shift(),g=R+d.shift(),u.curveTo(n,i,s,a,C,T),u.curveTo(I,B,R,P,g,A);break;case 37:n=g+d.shift(),i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),C=s+d.shift(),T=a+d.shift(),I=C+d.shift(),B=T+d.shift(),R=I+d.shift(),P=B+d.shift(),Math.abs(R-g)>Math.abs(P-A)?g=R+d.shift():A=P+d.shift(),u.curveTo(n,i,s,a,C,T),u.curveTo(I,B,R,P,g,A);break;default:console.log("Glyph "+t.index+": unknown operator 1200"+L),d.length=0}break;case 14:d.length>0&&!f&&(x=d.shift()+h,f=!0),m&&(u.closePath(),m=!1);break;case 19:case 20:E(),D+=p+7>>3;break;case 21:d.length>2&&!f&&(x=d.shift()+h,f=!0),A+=d.pop(),b(g+=d.pop(),A);break;case 22:d.length>1&&!f&&(x=d.shift()+h,f=!0),b(g+=d.pop(),A);break;case 24:for(;d.length>2;)n=g+d.shift(),i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+d.shift(),u.curveTo(n,i,s,a,g,A);g+=d.shift(),A+=d.shift(),u.lineTo(g,A);break;case 25:for(;d.length>6;)g+=d.shift(),A+=d.shift(),u.lineTo(g,A);n=g+d.shift(),i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+d.shift(),u.curveTo(n,i,s,a,g,A);break;case 26:for(d.length%2&&(g+=d.shift());d.length>0;)n=g,i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),g=s,A=a+d.shift(),u.curveTo(n,i,s,a,g,A);break;case 27:for(d.length%2&&(A+=d.shift());d.length>0;)n=g+d.shift(),i=A,s=n+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a,u.curveTo(n,i,s,a,g,A);break;case 28:v=c[D],y=c[D+1],d.push((v<<24|y<<16)>>16),D+=2;break;case 29:M=d.pop()+e.gsubrsBias,(w=e.gsubrs[M])&&r(w);break;case 30:for(;d.length>0&&(n=g,i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+(1===d.length?d.shift():0),u.curveTo(n,i,s,a,g,A),0!==d.length);)n=g+d.shift(),i=A,s=n+d.shift(),a=i+d.shift(),A=a+d.shift(),g=s+(1===d.length?d.shift():0),u.curveTo(n,i,s,a,g,A);break;case 31:for(;d.length>0&&(n=g+d.shift(),i=A,s=n+d.shift(),a=i+d.shift(),A=a+d.shift(),g=s+(1===d.length?d.shift():0),u.curveTo(n,i,s,a,g,A),0!==d.length);)n=g,i=A+d.shift(),s=n+d.shift(),a=i+d.shift(),g=s+d.shift(),A=a+(1===d.length?d.shift():0),u.curveTo(n,i,s,a,g,A);break;default:L<32?console.log("Glyph "+t.index+": unknown operator "+L):L<247?d.push(L-139):L<251?(v=c[D],D+=1,d.push(256*(L-247)+v+108)):L<255?(v=c[D],D+=1,d.push(256*-(L-251)-v-108)):(v=c[D],y=c[D+1],_=c[D+2],S=c[D+3],D+=4,d.push((v<<24|y<<16|_<<8|S)/65536))}}}(r),t.advanceWidth=x,u}function Fe(e,t){var r,n=le.indexOf(e);return n>=0&&(r=n),(n=t.indexOf(e))>=0?r=n+le.length:(r=le.length+t.length,t.push(e)),r}function Ue(e,t,r){for(var n={},i=0;i=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+n+")");s.push(i)}else{if(3!==o)throw new Error("CFF Table CID Font FDSelect table has unsupported format "+o);var c,h=a.parseCard16(),u=a.parseCard16();if(0!==u)throw new Error("CFF Table CID Font FDSelect format 3 range has bad initial GID "+u);for(var d=0;d=n)throw new Error("CFF table CID Font FDSelect has bad FD index value "+i+" (FD count "+n+")");if(c>r)throw new Error("CFF Table CID Font FDSelect format 3 range has bad GID "+c);for(;u=1&&(r.ulCodePageRange1=n.parseULong(),r.ulCodePageRange2=n.parseULong()),r.version>=2&&(r.sxHeight=n.parseShort(),r.sCapHeight=n.parseShort(),r.usDefaultChar=n.parseUShort(),r.usBreakChar=n.parseUShort(),r.usMaxContent=n.parseUShort()),r},make:function(e){return new J.Table("OS/2",[{name:"version",type:"USHORT",value:3},{name:"xAvgCharWidth",type:"SHORT",value:0},{name:"usWeightClass",type:"USHORT",value:0},{name:"usWidthClass",type:"USHORT",value:0},{name:"fsType",type:"USHORT",value:0},{name:"ySubscriptXSize",type:"SHORT",value:650},{name:"ySubscriptYSize",type:"SHORT",value:699},{name:"ySubscriptXOffset",type:"SHORT",value:0},{name:"ySubscriptYOffset",type:"SHORT",value:140},{name:"ySuperscriptXSize",type:"SHORT",value:650},{name:"ySuperscriptYSize",type:"SHORT",value:699},{name:"ySuperscriptXOffset",type:"SHORT",value:0},{name:"ySuperscriptYOffset",type:"SHORT",value:479},{name:"yStrikeoutSize",type:"SHORT",value:49},{name:"yStrikeoutPosition",type:"SHORT",value:258},{name:"sFamilyClass",type:"SHORT",value:0},{name:"bFamilyType",type:"BYTE",value:0},{name:"bSerifStyle",type:"BYTE",value:0},{name:"bWeight",type:"BYTE",value:0},{name:"bProportion",type:"BYTE",value:0},{name:"bContrast",type:"BYTE",value:0},{name:"bStrokeVariation",type:"BYTE",value:0},{name:"bArmStyle",type:"BYTE",value:0},{name:"bLetterform",type:"BYTE",value:0},{name:"bMidline",type:"BYTE",value:0},{name:"bXHeight",type:"BYTE",value:0},{name:"ulUnicodeRange1",type:"ULONG",value:0},{name:"ulUnicodeRange2",type:"ULONG",value:0},{name:"ulUnicodeRange3",type:"ULONG",value:0},{name:"ulUnicodeRange4",type:"ULONG",value:0},{name:"achVendID",type:"CHARARRAY",value:"XXXX"},{name:"fsSelection",type:"USHORT",value:0},{name:"usFirstCharIndex",type:"USHORT",value:0},{name:"usLastCharIndex",type:"USHORT",value:0},{name:"sTypoAscender",type:"SHORT",value:0},{name:"sTypoDescender",type:"SHORT",value:0},{name:"sTypoLineGap",type:"SHORT",value:0},{name:"usWinAscent",type:"USHORT",value:0},{name:"usWinDescent",type:"USHORT",value:0},{name:"ulCodePageRange1",type:"ULONG",value:0},{name:"ulCodePageRange2",type:"ULONG",value:0},{name:"sxHeight",type:"SHORT",value:0},{name:"sCapHeight",type:"SHORT",value:0},{name:"usDefaultChar",type:"USHORT",value:0},{name:"usBreakChar",type:"USHORT",value:0},{name:"usMaxContext",type:"USHORT",value:0}],e)},unicodeRanges:st,getUnicodeRange:function(e){for(var t=0;t=r.begin&&e=ue.length){var a=n.parseChar();r.names.push(n.parseString(a))}break;case 2.5:r.numberOfGlyphs=n.parseUShort(),r.offset=new Array(r.numberOfGlyphs);for(var o=0;ot.value.tag?1:-1})),t.fields=t.fields.concat(n),t.fields=t.fields.concat(i),t}function At(e,t,r){for(var n=0;n0)return e.glyphs.get(i).getMetrics()}return r}function vt(e){for(var t=0,r=0;rg||void 0===t)&&g>0&&(t=g),c 123 are reserved for internal usage");p|=1<0?He.make(P):void 0,F=ot.make(),U=Ge.make(e.glyphs,{version:e.getEnglishName("version"),fullName:T,familyName:w,weightName:C,postScriptName:I,unitsPerEm:e.unitsPerEm,fontBBox:[0,y.yMin,y.ascender,y.advanceWidthMax]}),O=e.metas&&Object.keys(e.metas).length>0?dt.make(e.metas):void 0,N=[x,b,E,_,D,M,F,U,S];L&&N.push(L),e.tables.gsub&&N.push(ut.make(e.tables.gsub)),O&&N.push(O);for(var k=gt(N),G=ft(k.encode()),z=k.fields,Q=!1,V=0;V>>1,s=e[i].tag;if(s===t)return i;s>>1,s=e[i];if(s===t)return i;s>>1,a=(r=e[s]).start;if(a===t)return r;a0)return t>(r=e[n-1]).end?0:r}function _t(e,t){this.font=e,this.tableName=t}function St(e){_t.call(this,e,"gpos")}function Mt(e){_t.call(this,e,"gsub")}function wt(e,t){var r=e.length;if(r!==t.length)return!1;for(var n=0;n0?(s=e.parseByte(),0==(t&i)&&(s=-s),s=r+s):s=(t&i)>0?r:r+e.parseShort(),s}function Bt(e,t,r){var n,i,s=new se.Parser(t,r);if(e.numberOfContours=s.parseShort(),e._xMin=s.parseShort(),e._yMin=s.parseShort(),e._xMax=s.parseShort(),e._yMax=s.parseShort(),e.numberOfContours>0){for(var a=e.endPointIndices=[],o=0;o0)for(var u=s.parseByte(),d=0;d0){var p,f=[];if(c>0){for(var m=0;m=0,f.push(p);for(var g=0,A=0;A0?(2&n)>0?(b.dx=s.parseShort(),b.dy=s.parseShort()):b.matchedPoints=[s.parseUShort(),s.parseUShort()]:(2&n)>0?(b.dx=s.parseChar(),b.dy=s.parseChar()):b.matchedPoints=[s.parseByte(),s.parseByte()],(8&n)>0?b.xScale=b.yScale=s.parseF2Dot14():(64&n)>0?(b.xScale=s.parseF2Dot14(),b.yScale=s.parseF2Dot14()):(128&n)>0&&(b.xScale=s.parseF2Dot14(),b.scale01=s.parseF2Dot14(),b.scale10=s.parseF2Dot14(),b.yScale=s.parseF2Dot14()),e.components.push(b),x=!!(32&n)}if(256&n){e.instructionLength=s.parseUShort(),e.instructions=[];for(var E=0;Et.points.length-1||n.matchedPoints[1]>i.points.length-1)throw Error("Matched points out of range in "+t.name);var a=t.points[n.matchedPoints[0]],o=i.points[n.matchedPoints[1]],l={xScale:n.xScale,scale01:n.scale01,scale10:n.scale10,yScale:n.yScale,dx:0,dy:0};o=Rt([o],l)[0],l.dx=a.x-o.x,l.dy=a.y-o.y,s=Rt(i.points,l)}t.points=t.points.concat(s)}}return Pt(t.points)}_t.prototype={searchTag:xt,binSearch:bt,getTable:function(e){var t=this.font.tables[this.tableName];return!t&&e&&(t=this.font.tables[this.tableName]=this.createDefaultTable()),t},getScriptNames:function(){var e=this.getTable();return e?e.scripts.map((function(e){return e.tag})):[]},getDefaultScriptName:function(){var e=this.getTable();if(e){for(var t=!1,r=0;r=0)return n[i].script;if(t){var s={tag:e,script:{defaultLangSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]},langSysRecords:[]}};return n.splice(-1-i,0,s),s.script}}},getLangSysTable:function(e,t,r){var n=this.getScriptTable(e,r);if(n){if(!t||"dflt"===t||"DFLT"===t)return n.defaultLangSys;var i=xt(n.langSysRecords,t);if(i>=0)return n.langSysRecords[i].langSys;if(r){var s={tag:t,langSys:{reserved:0,reqFeatureIndex:65535,featureIndexes:[]}};return n.langSysRecords.splice(-1-i,0,s),s.langSys}}},getFeatureTable:function(e,t,r,n){var i=this.getLangSysTable(e,t,n);if(i){for(var s,a=i.featureIndexes,o=this.font.tables[this.tableName].features,l=0;l=o[c-1].tag,"Features must be added in alphabetical order."),s={tag:r,feature:{params:0,lookupListIndexes:[]}},o.push(s),a.push(c),s.feature}}},getLookupTables:function(e,t,r,n,i){var s=this.getFeatureTable(e,t,r,i),a=[];if(s){for(var o,l=s.lookupListIndexes,c=this.font.tables[this.tableName].lookups,h=0;h=0?r:-1;case 2:var n=Et(e.ranges,t);return n?n.index+t-n.start:-1}},expandCoverage:function(e){if(1===e.format)return e.glyphs;for(var t=[],r=e.ranges,n=0;n1,'Multiple: "by" must be an array of two or more ids');var i=Ct(this.getLookupTables(r,n,e,2,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},sequences:[]});I.assert(1===i.coverage.format,"Multiple: unable to modify coverage table format "+i.coverage.format);var s=t.sub,a=this.binSearch(i.coverage.glyphs,s);a<0&&(a=-1-a,i.coverage.glyphs.splice(a,0,s),i.sequences.splice(a,0,0)),i.sequences[a]=t.by},Mt.prototype.addAlternate=function(e,t,r,n){var i=Ct(this.getLookupTables(r,n,e,3,!0)[0],1,{substFormat:1,coverage:{format:1,glyphs:[]},alternateSets:[]});I.assert(1===i.coverage.format,"Alternate: unable to modify coverage table format "+i.coverage.format);var s=t.sub,a=this.binSearch(i.coverage.glyphs,s);a<0&&(a=-1-a,i.coverage.glyphs.splice(a,0,s),i.alternateSets.splice(a,0,0)),i.alternateSets[a]=t.by},Mt.prototype.addLigature=function(e,t,r,n){var i=this.getLookupTables(r,n,e,4,!0)[0],s=i.subtables[0];s||(s={substFormat:1,coverage:{format:1,glyphs:[]},ligatureSets:[]},i.subtables[0]=s),I.assert(1===s.coverage.format,"Ligature: unable to modify coverage table format "+s.coverage.format);var a=t.sub[0],o=t.sub.slice(1),l={ligGlyph:t.by,components:o},c=this.binSearch(s.coverage.glyphs,a);if(c>=0){for(var h=s.ligatureSets[c],u=0;u=176&&r<=183)i+=r-176+1;else if(r>=184&&r<=191)i+=2*(r-184+1);else if(t&&1===s&&27===r)break}while(s>0);e.ip=i}function nr(e,r){t.DEBUG&&console.log(r.step,"SVTCA["+e.axis+"]"),r.fv=r.pv=r.dpv=e}function ir(e,r){t.DEBUG&&console.log(r.step,"SPVTCA["+e.axis+"]"),r.pv=r.dpv=e}function sr(e,r){t.DEBUG&&console.log(r.step,"SFVTCA["+e.axis+"]"),r.fv=e}function ar(e,r){var n,i,s=r.stack,a=s.pop(),o=s.pop(),l=r.z2[a],c=r.z1[o];t.DEBUG&&console.log("SPVTL["+e+"]",a,o),e?(n=l.y-c.y,i=c.x-l.x):(n=c.x-l.x,i=c.y-l.y),r.pv=r.dpv=Kt(n,i)}function or(e,r){var n,i,s=r.stack,a=s.pop(),o=s.pop(),l=r.z2[a],c=r.z1[o];t.DEBUG&&console.log("SFVTL["+e+"]",a,o),e?(n=l.y-c.y,i=c.x-l.x):(n=c.x-l.x,i=c.y-l.y),r.fv=Kt(n,i)}function lr(e){t.DEBUG&&console.log(e.step,"POP[]"),e.stack.pop()}function cr(e,r){var n=r.stack.pop(),i=r.z0[n],s=r.fv,a=r.pv;t.DEBUG&&console.log(r.step,"MDAP["+e+"]",n);var o=a.distance(i,Zt);e&&(o=r.round(o)),s.setRelative(i,Zt,o,a),s.touch(i),r.rp0=r.rp1=n}function hr(e,r){var n,i,s,a=r.z2,o=a.length-2;t.DEBUG&&console.log(r.step,"IUP["+e.axis+"]");for(var l=0;l1?"loop "+(r.loop-l)+": ":"")+"SHP["+(e?"rp1":"rp2")+"]",h)}r.loop=1}function dr(e,r){var n=r.stack,i=e?r.rp1:r.rp2,s=(e?r.z0:r.z1)[i],a=r.fv,o=r.pv,l=n.pop(),c=r.z2[r.contours[l]],h=c;t.DEBUG&&console.log(r.step,"SHC["+e+"]",l);var u=o.distance(s,s,!1,!0);do{h!==s&&a.setRelative(h,h,u,o),h=h.nextPointOnContour}while(h!==c)}function pr(e,r){var n,i,s=r.stack,a=e?r.rp1:r.rp2,o=(e?r.z0:r.z1)[a],l=r.fv,c=r.pv,h=s.pop();switch(t.DEBUG&&console.log(r.step,"SHZ["+e+"]",h),h){case 0:n=r.tZone;break;case 1:n=r.gZone;break;default:throw new Error("Invalid zone")}for(var u=c.distance(o,o,!1,!0),d=n.length-2,p=0;p",l),r.stack.push(Math.round(64*l))}function vr(e,r){var n=r.stack,i=n.pop(),s=r.fv,a=r.pv,o=r.ppem,l=r.deltaBase+16*(e-1),c=r.deltaShift,h=r.z0;t.DEBUG&&console.log(r.step,"DELTAP["+e+"]",i,n);for(var u=0;u>4)===o){var f=(15&p)-8;f>=0&&f++,t.DEBUG&&console.log(r.step,"DELTAPFIX",d,"by",f*c);var m=h[d];s.setRelative(m,m,f*c,a)}}}function yr(e,r){var n=r.stack,i=n.pop();t.DEBUG&&console.log(r.step,"ROUND[]"),n.push(64*r.round(i/64))}function xr(e,r){var n=r.stack,i=n.pop(),s=r.ppem,a=r.deltaBase+16*(e-1),o=r.deltaShift;t.DEBUG&&console.log(r.step,"DELTAC["+e+"]",i,n);for(var l=0;l>4)===s){var u=(15&h)-8;u>=0&&u++;var d=u*o;t.DEBUG&&console.log(r.step,"DELTACFIX",c,"by",d),r.cvt[c]+=d}}}function br(e,r){var n,i,s=r.stack,a=s.pop(),o=s.pop(),l=r.z2[a],c=r.z1[o];t.DEBUG&&console.log(r.step,"SDPVTL["+e+"]",a,o),e?(n=l.y-c.y,i=c.x-l.x):(n=c.x-l.x,i=c.y-l.y),r.dpv=Kt(n,i)}function Er(e,r){var n=r.stack,i=r.prog,s=r.ip;t.DEBUG&&console.log(r.step,"PUSHB["+e+"]");for(var a=0;a=0?1:-1,l=Math.abs(l),e&&(h=a.cvt[d],i&&Math.abs(l-h)":"_")+(i?"R":"_")+(0===s?"Gr":1===s?"Bl":2===s?"Wh":"")+"]",e?d+"("+a.cvt[d]+","+h+")":"",p,"(d =",o,"->",c*l,")"),a.rp1=a.rp0,a.rp2=p,r&&(a.rp0=p)}function Mr(e){this.char=e,this.state={},this.activeState=null}function wr(e,t,r){this.contextName=r,this.startIndex=e,this.endOffset=t}function Cr(e,t,r){this.contextName=e,this.openRange=null,this.ranges=[],this.checkStart=t,this.checkEnd=r}function Tr(e,t){this.context=e,this.index=t,this.length=e.length,this.current=e[t],this.backtrack=e.slice(0,t),this.lookahead=e.slice(t+1)}function Ir(e){this.eventId=e,this.subscribers=[]}function Br(e){var t=this,r=["start","end","next","newToken","contextStart","contextEnd","insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD","updateContextsRanges"];r.forEach((function(e){Object.defineProperty(t.events,e,{value:new Ir(e)})})),e&&r.forEach((function(r){var n=e[r];"function"==typeof n&&t.events[r].subscribe(n)}));["insertToken","removeToken","removeRange","replaceToken","replaceRange","composeRUD"].forEach((function(e){t.events[e].subscribe(t.updateContextsRanges)}))}function Rr(e){this.tokens=[],this.registeredContexts={},this.contextCheckers=[],this.events={},this.registeredModifiers=[],Br.call(this,e)}function Pr(e){return/[\u0600-\u065F\u066A-\u06D2\u06FA-\u06FF]/.test(e)}function Dr(e){return/[\u0630\u0690\u0621\u0631\u0661\u0671\u0622\u0632\u0672\u0692\u06C2\u0623\u0673\u0693\u06C3\u0624\u0694\u06C4\u0625\u0675\u0695\u06C5\u06E5\u0676\u0696\u06C6\u0627\u0677\u0697\u06C7\u0648\u0688\u0698\u06C8\u0689\u0699\u06C9\u068A\u06CA\u066B\u068B\u06CB\u068C\u068D\u06CD\u06FD\u068E\u06EE\u06FE\u062F\u068F\u06CF\u06EF]/.test(e)}function Lr(e){return/[\u0600-\u0605\u060C-\u060E\u0610-\u061B\u061E\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED]/.test(e)}function Fr(e){return/[A-z]/.test(e)}function Ur(e){this.font=e,this.features={}}function Or(e){this.id=e.id,this.tag=e.tag,this.substitution=e.substitution}function Nr(e,t){if(!e)return-1;switch(t.format){case 1:return t.glyphs.indexOf(e);case 2:for(var r=t.ranges,n=0;n=i.start&&e<=i.end){var s=e-i.start;return i.index+s}}break;default:return-1}return-1}function kr(e,t){return-1===Nr(e,t.coverage)?null:e+t.deltaGlyphId}function Gr(e,t){var r=Nr(e,t.coverage);return-1===r?null:t.substitute[r]}function zr(e,t){for(var r=[],n=0;n2)){var n=this.font,i=this._prepState;if(!i||i.ppem!==r){var s=this._fpgmState;if(!s){er.prototype=$t,(s=this._fpgmState=new er("fpgm",n.tables.fpgm)).funcs=[],s.font=n,t.DEBUG&&(console.log("---EXEC FPGM---"),s.step=-1);try{Ft(s)}catch(h){return console.log("Hinting error in FPGM:"+h),void(this._errorState=3)}}er.prototype=s,(i=this._prepState=new er("prep",n.tables.prep)).ppem=r;var a=n.tables.cvt;if(a)for(var o=i.cvt=new Array(a.length),l=r/n.unitsPerEm,c=0;c1))try{return Ut(e,i)}catch(h){return this._errorState<1&&(console.log("Hinting error:"+h),console.log("Note: further hinting errors are silenced")),void(this._errorState=1)}}},Ut=function(e,r){var n,i,s,a=r.ppem/r.font.unitsPerEm,o=a,l=e.components;if(er.prototype=r,l){var c=r.font;i=[],n=[];for(var h=0;h1?"loop "+(e.loop-n)+": ":"")+"SHPIX[]",o,s),i.setRelative(l,l,s),i.touch(l)}e.loop=1},function(e){for(var r=e.stack,n=e.rp1,i=e.rp2,s=e.loop,a=e.z0[n],o=e.z1[i],l=e.fv,c=e.dpv,h=e.z2;s--;){var u=r.pop(),d=h[u];t.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-s)+": ":"")+"IP[]",u,n,"<->",i),l.interpolate(d,a,o,c),l.touch(d)}e.loop=1},fr.bind(void 0,0),fr.bind(void 0,1),function(e){for(var r=e.stack,n=e.rp0,i=e.z0[n],s=e.loop,a=e.fv,o=e.pv,l=e.z1;s--;){var c=r.pop(),h=l[c];t.DEBUG&&console.log(e.step,(e.loop>1?"loop "+(e.loop-s)+": ":"")+"ALIGNRP[]",c),a.setRelative(h,i,0,o),a.touch(h)}e.loop=1},function(e){t.DEBUG&&console.log(e.step,"RTDG[]"),e.round=Qt},mr.bind(void 0,0),mr.bind(void 0,1),function(e){var r=e.prog,n=e.ip,i=e.stack,s=r[++n];t.DEBUG&&console.log(e.step,"NPUSHB[]",s);for(var a=0;an?1:0)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"GTEQ[]",n,i),r.push(i>=n?1:0)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"EQ[]",n,i),r.push(n===i?1:0)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"NEQ[]",n,i),r.push(n!==i?1:0)},function(e){var r=e.stack,n=r.pop();t.DEBUG&&console.log(e.step,"ODD[]",n),r.push(Math.trunc(n)%2?1:0)},function(e){var r=e.stack,n=r.pop();t.DEBUG&&console.log(e.step,"EVEN[]",n),r.push(Math.trunc(n)%2?0:1)},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"IF[]",r),r||(rr(e,!0),t.DEBUG&&console.log(e.step,"EIF[]"))},function(e){t.DEBUG&&console.log(e.step,"EIF[]")},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"AND[]",n,i),r.push(n&&i?1:0)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"OR[]",n,i),r.push(n||i?1:0)},function(e){var r=e.stack,n=r.pop();t.DEBUG&&console.log(e.step,"NOT[]",n),r.push(n?0:1)},vr.bind(void 0,1),function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SDB[]",r),e.deltaBase=r},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SDS[]",r),e.deltaShift=Math.pow(.5,r)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"ADD[]",n,i),r.push(i+n)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"SUB[]",n,i),r.push(i-n)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"DIV[]",n,i),r.push(64*i/n)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"MUL[]",n,i),r.push(i*n/64)},function(e){var r=e.stack,n=r.pop();t.DEBUG&&console.log(e.step,"ABS[]",n),r.push(Math.abs(n))},function(e){var r=e.stack,n=r.pop();t.DEBUG&&console.log(e.step,"NEG[]",n),r.push(-n)},function(e){var r=e.stack,n=r.pop();t.DEBUG&&console.log(e.step,"FLOOR[]",n),r.push(64*Math.floor(n/64))},function(e){var r=e.stack,n=r.pop();t.DEBUG&&console.log(e.step,"CEILING[]",n),r.push(64*Math.ceil(n/64))},yr.bind(void 0,0),yr.bind(void 0,1),yr.bind(void 0,2),yr.bind(void 0,3),void 0,void 0,void 0,void 0,function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"WCVTF[]",n,i),e.cvt[i]=n*e.ppem/e.font.unitsPerEm},vr.bind(void 0,2),vr.bind(void 0,3),xr.bind(void 0,1),xr.bind(void 0,2),xr.bind(void 0,3),function(e){var r,n=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"SROUND[]",n),e.round=Wt,192&n){case 0:r=.5;break;case 64:r=1;break;case 128:r=2;break;default:throw new Error("invalid SROUND value")}switch(e.srPeriod=r,48&n){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*r;break;case 32:e.srPhase=.5*r;break;case 48:e.srPhase=.75*r;break;default:throw new Error("invalid SROUND value")}n&=15,e.srThreshold=0===n?0:(n/8-.5)*r},function(e){var r,n=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"S45ROUND[]",n),e.round=Wt,192&n){case 0:r=Math.sqrt(2)/2;break;case 64:r=Math.sqrt(2);break;case 128:r=2*Math.sqrt(2);break;default:throw new Error("invalid S45ROUND value")}switch(e.srPeriod=r,48&n){case 0:e.srPhase=0;break;case 16:e.srPhase=.25*r;break;case 32:e.srPhase=.5*r;break;case 48:e.srPhase=.75*r;break;default:throw new Error("invalid S45ROUND value")}n&=15,e.srThreshold=0===n?0:(n/8-.5)*r},void 0,void 0,function(e){t.DEBUG&&console.log(e.step,"ROFF[]"),e.round=Gt},void 0,function(e){t.DEBUG&&console.log(e.step,"RUTG[]"),e.round=Ht},function(e){t.DEBUG&&console.log(e.step,"RDTG[]"),e.round=jt},lr,lr,void 0,void 0,void 0,void 0,void 0,function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SCANCTRL[]",r)},br.bind(void 0,0),br.bind(void 0,1),function(e){var r=e.stack,n=r.pop(),i=0;t.DEBUG&&console.log(e.step,"GETINFO[]",n),1&n&&(i=35),32&n&&(i|=4096),r.push(i)},void 0,function(e){var r=e.stack,n=r.pop(),i=r.pop(),s=r.pop();t.DEBUG&&console.log(e.step,"ROLL[]"),r.push(i),r.push(n),r.push(s)},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"MAX[]",n,i),r.push(Math.max(i,n))},function(e){var r=e.stack,n=r.pop(),i=r.pop();t.DEBUG&&console.log(e.step,"MIN[]",n,i),r.push(Math.min(i,n))},function(e){var r=e.stack.pop();t.DEBUG&&console.log(e.step,"SCANTYPE[]",r)},function(e){var r=e.stack.pop(),n=e.stack.pop();switch(t.DEBUG&&console.log(e.step,"INSTCTRL[]",r,n),r){case 1:return void(e.inhibitGridFit=!!n);case 2:return void(e.ignoreCvt=!!n);default:throw new Error("invalid INSTCTRL[] selector")}},void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,Er.bind(void 0,1),Er.bind(void 0,2),Er.bind(void 0,3),Er.bind(void 0,4),Er.bind(void 0,5),Er.bind(void 0,6),Er.bind(void 0,7),Er.bind(void 0,8),_r.bind(void 0,1),_r.bind(void 0,2),_r.bind(void 0,3),_r.bind(void 0,4),_r.bind(void 0,5),_r.bind(void 0,6),_r.bind(void 0,7),_r.bind(void 0,8),Sr.bind(void 0,0,0,0,0,0),Sr.bind(void 0,0,0,0,0,1),Sr.bind(void 0,0,0,0,0,2),Sr.bind(void 0,0,0,0,0,3),Sr.bind(void 0,0,0,0,1,0),Sr.bind(void 0,0,0,0,1,1),Sr.bind(void 0,0,0,0,1,2),Sr.bind(void 0,0,0,0,1,3),Sr.bind(void 0,0,0,1,0,0),Sr.bind(void 0,0,0,1,0,1),Sr.bind(void 0,0,0,1,0,2),Sr.bind(void 0,0,0,1,0,3),Sr.bind(void 0,0,0,1,1,0),Sr.bind(void 0,0,0,1,1,1),Sr.bind(void 0,0,0,1,1,2),Sr.bind(void 0,0,0,1,1,3),Sr.bind(void 0,0,1,0,0,0),Sr.bind(void 0,0,1,0,0,1),Sr.bind(void 0,0,1,0,0,2),Sr.bind(void 0,0,1,0,0,3),Sr.bind(void 0,0,1,0,1,0),Sr.bind(void 0,0,1,0,1,1),Sr.bind(void 0,0,1,0,1,2),Sr.bind(void 0,0,1,0,1,3),Sr.bind(void 0,0,1,1,0,0),Sr.bind(void 0,0,1,1,0,1),Sr.bind(void 0,0,1,1,0,2),Sr.bind(void 0,0,1,1,0,3),Sr.bind(void 0,0,1,1,1,0),Sr.bind(void 0,0,1,1,1,1),Sr.bind(void 0,0,1,1,1,2),Sr.bind(void 0,0,1,1,1,3),Sr.bind(void 0,1,0,0,0,0),Sr.bind(void 0,1,0,0,0,1),Sr.bind(void 0,1,0,0,0,2),Sr.bind(void 0,1,0,0,0,3),Sr.bind(void 0,1,0,0,1,0),Sr.bind(void 0,1,0,0,1,1),Sr.bind(void 0,1,0,0,1,2),Sr.bind(void 0,1,0,0,1,3),Sr.bind(void 0,1,0,1,0,0),Sr.bind(void 0,1,0,1,0,1),Sr.bind(void 0,1,0,1,0,2),Sr.bind(void 0,1,0,1,0,3),Sr.bind(void 0,1,0,1,1,0),Sr.bind(void 0,1,0,1,1,1),Sr.bind(void 0,1,0,1,1,2),Sr.bind(void 0,1,0,1,1,3),Sr.bind(void 0,1,1,0,0,0),Sr.bind(void 0,1,1,0,0,1),Sr.bind(void 0,1,1,0,0,2),Sr.bind(void 0,1,1,0,0,3),Sr.bind(void 0,1,1,0,1,0),Sr.bind(void 0,1,1,0,1,1),Sr.bind(void 0,1,1,0,1,2),Sr.bind(void 0,1,1,0,1,3),Sr.bind(void 0,1,1,1,0,0),Sr.bind(void 0,1,1,1,0,1),Sr.bind(void 0,1,1,1,0,2),Sr.bind(void 0,1,1,1,0,3),Sr.bind(void 0,1,1,1,1,0),Sr.bind(void 0,1,1,1,1,1),Sr.bind(void 0,1,1,1,1,2),Sr.bind(void 0,1,1,1,1,3)],Mr.prototype.setState=function(e,t){return this.state[e]=t,this.activeState={key:e,value:this.state[e]},this.activeState},Mr.prototype.getState=function(e){return this.state[e]||null},Rr.prototype.inboundIndex=function(e){return e>=0&&e0&&e<=this.lookahead.length:return this.lookahead[e-1];default:return null}},Rr.prototype.rangeToText=function(e){if(e instanceof wr)return this.getRangeTokens(e).map((function(e){return e.char})).join("")},Rr.prototype.getText=function(){return this.tokens.map((function(e){return e.char})).join("")},Rr.prototype.getContext=function(e){var t=this.registeredContexts[e];return t||null},Rr.prototype.on=function(e,t){var r=this.events[e];return r?r.subscribe(t):null},Rr.prototype.dispatch=function(e,t){var r=this,n=this.events[e];n instanceof Ir&&n.subscribers.forEach((function(e){e.apply(r,t||[])}))},Rr.prototype.registerContextChecker=function(e,t,r){if(this.getContext(e))return{FAIL:"context name '"+e+"' is already registered."};if("function"!=typeof t)return{FAIL:"missing context start check."};if("function"!=typeof r)return{FAIL:"missing context end check."};var n=new Cr(e,t,r);return this.registeredContexts[e]=n,this.contextCheckers.push(n),n},Rr.prototype.getRangeTokens=function(e){var t=e.startIndex+e.endOffset;return[].concat(this.tokens.slice(e.startIndex,t))},Rr.prototype.getContextRanges=function(e){var t=this.getContext(e);return t?t.ranges:{FAIL:"context checker '"+e+"' is not registered."}},Rr.prototype.resetContextsRanges=function(){var e=this.registeredContexts;for(var t in e){if(e.hasOwnProperty(t))e[t].ranges=[]}},Rr.prototype.updateContextsRanges=function(){this.resetContextsRanges();for(var e=this.tokens.map((function(e){return e.char})),t=0;t=0;r--){var n=t[r],i=Dr(n),s=Lr(n);if(!i&&!s)return!0;if(i)return!1}return!1}(a)&&(c|=1),function(e){if(Dr(e.current))return!1;for(var t=0;t=1.2&&(i.markGlyphSets=r.parsePointer(bn)),i}},_n=new Array(10);_n[1]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();return 1===t?{posFormat:1,coverage:this.parsePointer(ne.coverage),value:this.parseValueRecord()}:2===t?{posFormat:2,coverage:this.parsePointer(ne.coverage),values:this.parseValueRecordList()}:void I.assert(!1,"0x"+e.toString(16)+": GPOS lookup type 1 format must be 1 or 2.")},_n[2]=function(){var e=this.offset+this.relativeOffset,t=this.parseUShort();I.assert(1===t||2===t,"0x"+e.toString(16)+": GPOS lookup type 2 format must be 1 or 2.");var r=this.parsePointer(ne.coverage),n=this.parseUShort(),i=this.parseUShort();if(1===t)return{posFormat:t,coverage:r,valueFormat1:n,valueFormat2:i,pairSets:this.parseList(ne.pointer(ne.list((function(){return{secondGlyph:this.parseUShort(),value1:this.parseValueRecord(n),value2:this.parseValueRecord(i)}}))))};if(2===t){var s=this.parsePointer(ne.classDef),a=this.parsePointer(ne.classDef),o=this.parseUShort(),l=this.parseUShort();return{posFormat:t,coverage:r,valueFormat1:n,valueFormat2:i,classDef1:s,classDef2:a,class1Count:o,class2Count:l,classRecords:this.parseList(o,ne.list(l,(function(){return{value1:this.parseValueRecord(n),value2:this.parseValueRecord(i)}})))}}},_n[3]=function(){return{error:"GPOS Lookup 3 not supported"}},_n[4]=function(){return{error:"GPOS Lookup 4 not supported"}},_n[5]=function(){return{error:"GPOS Lookup 5 not supported"}},_n[6]=function(){return{error:"GPOS Lookup 6 not supported"}},_n[7]=function(){return{error:"GPOS Lookup 7 not supported"}},_n[8]=function(){return{error:"GPOS Lookup 8 not supported"}},_n[9]=function(){return{error:"GPOS Lookup 9 not supported"}};var Sn=new Array(10);var Mn={parse:function(e,t){var r=new ne(e,t=t||0),n=r.parseVersion(1);return I.argument(1===n||1.1===n,"Unsupported GPOS table version "+n),1===n?{version:n,scripts:r.parseScriptList(),features:r.parseFeatureList(),lookups:r.parseLookupList(_n)}:{version:n,scripts:r.parseScriptList(),features:r.parseFeatureList(),lookups:r.parseLookupList(_n),variations:r.parseFeatureVariationsList()}},make:function(e){return new J.Table("GPOS",[{name:"version",type:"ULONG",value:65536},{name:"scripts",type:"TABLE",value:new J.ScriptList(e.scripts)},{name:"features",type:"TABLE",value:new J.FeatureList(e.features)},{name:"lookups",type:"TABLE",value:new J.LookupList(e.lookups,Sn)}])}};var wn={parse:function(e,t){var r=new se.Parser(e,t),n=r.parseUShort();if(0===n)return function(e){var t={};e.skip("uShort");var r=e.parseUShort();I.argument(0===r,"Unsupported kern sub-table version."),e.skip("uShort",2);var n=e.parseUShort();e.skip("uShort",3);for(var i=0;i1&&console.warn("Only the first kern subtable is supported."),e.skip("uLong");var r=255&e.parseUShort();if(e.skip("uShort"),0===r){var n=e.parseUShort();e.skip("uShort",3);for(var i=0;i{"use strict";let r,n,i;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s={env:{emscripten_notify_memory_growth:function(e){i=new Uint8Array(n.exports.memory.buffer)}}};const a="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";t.ZSTDDecoder=class{init(){return r||(r="undefined"!=typeof fetch?fetch("data:application/wasm;base64,"+a).then((e=>e.arrayBuffer())).then((e=>WebAssembly.instantiate(e,s))).then(this._init):WebAssembly.instantiate(Buffer.from(a,"base64"),s).then(this._init),r)}_init(e){n=e.instance,s.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!n)throw new Error("ZSTDDecoder: Await .init() before decoding.");const r=e.byteLength,s=n.exports.malloc(r);i.set(e,s),t=t||Number(n.exports.ZSTD_findDecompressedSize(s,r));const a=n.exports.malloc(t),o=n.exports.ZSTD_decompress(a,t,s,r),l=i.slice(a,a+o);return n.exports.free(s),n.exports.free(a),l}}},94418:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.LightProbeGenerator=class{static fromCubeTexture(e){let t=0;const r=new n.Vector3,i=new n.Vector3,s=new n.Color,a=[0,0,0,0,0,0,0,0,0],o=new n.SphericalHarmonics3,l=o.coefficients;for(let h=0;h<6;h++){const o=e.image[h],c=o.width,u=o.height,d=document.createElement("canvas");d.width=c,d.height=u;const p=d.getContext("2d");p.drawImage(o,0,0,c,u);const f=p.getImageData(0,0,c,u),m=f.data,g=f.width,A=2/g;for(let v=0,y=m.length;v{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.RectAreaLightUniformsLib=class{static init(){const e=[1,0,0,2e-5,1,0,0,503905e-9,1,0,0,.00201562,1,0,0,.00453516,1,0,0,.00806253,1,0,0,.0125978,1,0,0,.018141,1,0,0,.0246924,1,0,0,.0322525,1,0,0,.0408213,1,0,0,.0503999,1,0,0,.0609894,1,0,0,.0725906,1,0,0,.0852058,1,0,0,.0988363,1,0,0,.113484,1,0,0,.129153,1,0,0,.145839,1,0,0,.163548,1,0,0,.182266,1,0,0,.201942,1,0,0,.222314,1,0,0,.241906,1,0,0,.262314,1,0,0,.285754,1,0,0,.310159,1,0,0,.335426,1,0,0,.361341,1,0,0,.387445,1,0,0,.412784,1,0,0,.438197,1,0,0,.466966,1,0,0,.49559,1,0,0,.523448,1,0,0,.549938,1,0,0,.57979,1,0,0,.608746,1,0,0,.636185,1,0,0,.664748,1,0,0,.69313,1,0,0,.71966,1,0,0,.747662,1,0,0,.774023,1,0,0,.799775,1,0,0,.825274,1,0,0,.849156,1,0,0,.873248,1,0,0,.89532,1,0,0,.917565,1,0,0,.937863,1,0,0,.958139,1,0,0,.976563,1,0,0,.994658,1,0,0,1.0112,1,0,0,1.02712,1,0,0,1.04189,1,0,0,1.05568,1,0,0,1.06877,1,0,0,1.08058,1,0,0,1.09194,1,0,0,1.10191,1,0,0,1.11161,1,0,0,1.1199,1,0,0,1.12813,.999547,-4.48815e-7,.0224417,199902e-10,.999495,-113079e-10,.0224406,503651e-9,.999496,-452317e-10,.0224406,.00201461,.999496,-101772e-9,.0224406,.00453287,.999495,-180928e-9,.0224406,.00805845,.999497,-282702e-9,.0224406,.0125914,.999496,-407096e-9,.0224406,.0181319,.999498,-554114e-9,.0224406,.02468,.999499,-723768e-9,.0224406,.0322363,.999495,-916058e-9,.0224405,.0408009,.999499,-.00113101,.0224408,.050375,.999494,-.00136863,.0224405,.0609586,.999489,-.00162896,.0224401,.0725537,.999489,-.00191201,.0224414,.0851619,.999498,-.00221787,.0224413,.0987867,.999492,-.00254642,.0224409,.113426,.999507,-.00289779,.0224417,.129088,.999494,-.0032716,.0224386,.145767,.999546,-.0036673,.0224424,.163472,.999543,-.00408166,.0224387,.182182,.999499,-.00450056,.0224338,.201843,.999503,-.00483661,.0224203,.222198,.999546,-.00452928,.022315,.241714,.999508,-.00587403,.0224329,.262184,.999509,-.00638806,.0224271,.285609,.999501,-.00691028,.0224166,.309998,.999539,-.00741979,.0223989,.335262,.999454,-.00786282,.0223675,.361154,.999529,-.00811928,.0222828,.387224,.999503,-.00799941,.0221063,.41252,.999561,-.00952753,.0223057,.438006,.999557,-.0099134,.0222065,.466735,.999541,-.0100935,.0220402,.495332,.999562,-.00996821,.0218067,.523197,.999556,-.0105031,.0217096,.550223,.999561,-.0114191,.0217215,.579498,.999588,-.0111818,.0213357,.608416,.999633,-.0107725,.0208689,.635965,.999527,-.0121671,.0210149,.664476,.999508,-.0116005,.020431,.692786,.999568,-.0115604,.0199791,.719709,.999671,-.0121117,.0197415,.74737,.999688,-.0110769,.0188846,.773692,.99962,-.0122368,.0188452,.799534,.999823,-.0110325,.0178001,.825046,.999599,-.0114923,.0174221,.849075,.999619,-.0105923,.0164345,.872999,.999613,-.0105988,.0158227,.895371,.99964,-.00979861,.0148131,.917364,.99977,-.00967238,.0140721,.938002,.999726,-.00869175,.0129543,.957917,.99973,-.00866872,.0122329,.976557,.999773,-.00731956,.0108958,.994459,.999811,-.00756027,.0102715,1.01118,.999862,-.00583732,.00878781,1.02701,.999835,-.00631438,.00827529,1.04186,.999871,-.00450785,.00674583,1.05569,.999867,-.00486079,.00621041,1.06861,.999939,-.00322072,.00478301,1.08064,.999918,-.00318199,.00406395,1.09181,1.00003,-.00193348,.00280682,1.10207,.999928,-.00153729,.00198741,1.11152,.999933,-623666e-9,917714e-9,1.12009,1,-102387e-11,9.07581e-7,1.12813,.997866,-8.96716e-7,.0448334,199584e-10,.997987,-225945e-10,.0448389,502891e-9,.997987,-903781e-10,.0448388,.00201156,.997985,-203351e-9,.0448388,.00452602,.997986,-361514e-9,.0448388,.00804629,.997987,-56487e-8,.0448389,.0125724,.997988,-813423e-9,.0448389,.0181045,.997984,-.00110718,.0448387,.0246427,.997985,-.00144616,.0448388,.0321875,.997987,-.00183038,.044839,.0407392,.997983,-.00225987,.0448387,.0502986,.997991,-.00273467,.0448389,.0608667,.997984,-.00325481,.0448384,.0724444,.998002,-.00382043,.044839,.0850348,.997997,-.00443145,.0448396,.0986372,.998007,-.00508796,.0448397,.113255,.998008,-.00578985,.04484,.128891,.998003,-.00653683,.0448384,.145548,.997983,-.00732713,.0448358,.163221,.997985,-.00815454,.0448358,.181899,.998005,-.00898985,.0448286,.201533,.998026,-.00964404,.0447934,.221821,.998055,-.00922677,.044611,.241282,.99804,-.0117361,.0448245,.261791,.998048,-.0127628,.0448159,.285181,.998088,-.0138055,.0447996,.30954,.998058,-.0148206,.0447669,.334751,.998099,-.0156998,.044697,.36061,.998116,-.0161976,.0445122,.386603,.998195,-.015945,.0441711,.411844,.998168,-.0183947,.0444255,.43773,.998184,-.0197913,.0443809,.466009,.998251,-.0201426,.0440689,.494574,.998305,-.0198847,.0435632,.522405,.998273,-.0210577,.043414,.549967,.998254,-.0227901,.0433943,.578655,.998349,-.0223108,.0426529,.60758,.99843,-.0223088,.042,.635524,.998373,-.0241141,.0418987,.663621,.998425,-.0231446,.0408118,.691906,.998504,-.0233684,.0400565,.719339,.998443,-.0241652,.0394634,.74643,.99848,-.0228715,.0380002,.773086,.998569,-.023519,.0372322,.798988,.998619,-.0223108,.0356468,.824249,.998594,-.0223105,.034523,.848808,.998622,-.0213426,.0328887,.87227,.998669,-.0207912,.0314374,.895157,.998705,-.0198416,.0296925,.916769,.998786,-.0189168,.0279634,.937773,.998888,-.0178811,.0261597,.957431,.99906,-.0166845,.0242159,.976495,.999038,-.0155464,.0222638,.994169,.999237,-.0141349,.0201967,1.01112,.999378,-.0129324,.0181744,1.02692,.999433,-.0113192,.0159898,1.04174,.999439,-.0101244,.0140385,1.05559,.999614,-.00837456,.0117826,1.06852,.999722,-.00721769,.00983745,1.08069,.999817,-.00554067,.00769002,1.09176,.99983,-.00426961,.005782,1.10211,.999964,-.00273904,.00374503,1.11152,1.00001,-.00136739,.00187176,1.12031,.999946,393227e-10,-28919e-9,1.12804,.995847,-13435e-10,.0671785,19916e-9,.995464,-338387e-10,.0671527,501622e-9,.99547,-135355e-9,.0671531,.00200649,.995471,-30455e-8,.0671532,.00451461,.99547,-541423e-9,.0671531,.008026,.995471,-84598e-8,.0671531,.0125407,.99547,-.00121823,.0671531,.0180589,.99547,-.00165817,.0671531,.0245806,.995463,-.00216583,.0671526,.0321062,.995468,-.00274127,.0671527,.0406366,.995474,-.00338447,.0671534,.0501717,.995473,-.00409554,.0671533,.0607131,.995478,-.00487451,.0671531,.0722618,.995476,-.00572148,.0671532,.0848191,.995477,-.00663658,.0671539,.0983882,.995498,-.00761986,.0671541,.112972,.995509,-.00867094,.0671542,.128568,.995509,-.00978951,.0671531,.145183,.995503,-.0109725,.0671491,.162808,.995501,-.012211,.0671465,.181441,.99553,-.0134565,.0671371,.201015,.99555,-.014391,.0670831,.221206,.99558,-.014351,.0668883,.240813,.995577,-.0173997,.0671055,.261257,.995602,-.0191111,.0671178,.284467,.995623,-.0206705,.0670946,.308765,.995658,-.022184,.0670472,.333905,.995705,-.0234832,.0669417,.359677,.995719,-.0241933,.0666714,.385554,.995786,-.0243539,.066266,.410951,.995887,-.0271866,.0664367,.437163,.995944,-.0296012,.0664931,.464842,.996004,-.0301045,.0660105,.49332,.996128,-.0298311,.0652694,.521131,.996253,-.0316426,.0650739,.549167,.996244,-.0339043,.0649433,.57737,.996309,-.033329,.0638926,.606073,.996417,-.0338935,.0630849,.634527,.996372,-.0353104,.0625083,.66256,.996542,-.0348942,.0611986,.690516,.996568,-.0351614,.060069,.718317,.996711,-.0354317,.0588522,.74528,.996671,-.0349513,.0571902,.772061,.996865,-.0345622,.0555321,.798089,.996802,-.0342566,.0537816,.823178,.996992,-.0330862,.0516095,.847949,.996944,-.0324666,.0495537,.871431,.997146,-.0309544,.0470302,.894357,.997189,-.0299372,.0446043,.916142,.997471,-.0281389,.0418812,.937193,.997515,-.0268702,.0391823,.957,.997812,-.0247166,.0361338,.975936,.998027,-.0233525,.0333945,.99391,.998233,-.0209839,.0301917,1.01075,.998481,-.0194309,.027271,1.02669,.998859,-.0169728,.0240162,1.04173,.99894,-.0152322,.0210517,1.05551,.999132,-.0127497,.0178632,1.06856,.999369,-.0108282,.014787,1.08054,.999549,-.00845886,.0116185,1.09185,.999805,-.0063937,.00867209,1.10207,.99985,-.00414582,.00566823,1.1117,.999912,-.00207443,.00277562,1.12022,1.00001,870226e-10,-53766e-9,1.12832,.991943,-178672e-11,.0893382,198384e-10,.991952,-450183e-10,.089339,499849e-9,.991956,-180074e-9,.0893394,.0019994,.991955,-405167e-9,.0893393,.00449867,.991953,-720298e-9,.0893391,.00799764,.991955,-.00112548,.0893393,.0124964,.991957,-.0016207,.0893395,.0179951,.991958,-.00220601,.0893396,.0244939,.991947,-.00288137,.0893385,.0319929,.991962,-.00364693,.0893399,.0404933,.991965,-.00450264,.0893399,.049995,.99198,-.00544862,.0893411,.0604995,.99197,-.00648491,.0893397,.0720074,.991976,-.00761164,.089341,.0845207,.99198,-.00882891,.0893405,.0980413,.991982,-.0101367,.0893396,.112571,.992008,-.011535,.0893415,.128115,.992026,-.0130228,.0893414,.144672,.992064,-.0145966,.0893418,.162241,.992041,-.0162421,.0893359,.180801,.992086,-.0178888,.0893214,.200302,.992157,-.0190368,.0892401,.220332,.992181,-.0195584,.0890525,.240144,.992175,-.0227257,.0892153,.260728,.99221,-.0254195,.089304,.283473,.99222,-.0274883,.0892703,.307673,.992317,-.0294905,.0892027,.332729,.992374,-.0311861,.0890577,.358387,.992505,-.0320656,.0886994,.384102,.992568,-.0329715,.0883198,.409767,.992675,-.036006,.0883602,.436145,.992746,-.0392897,.0884591,.463217,.992873,-.0399337,.0878287,.491557,.992934,-.040231,.0870108,.519516,.993091,-.0422013,.0865857,.547741,.993259,-.0443503,.0861937,.575792,.993455,-.0446368,.0851187,.604233,.993497,-.0454299,.0840576,.632925,.993694,-.0463296,.0829671,.660985,.993718,-.0470619,.0817185,.688714,.993973,-.0468838,.0800294,.716743,.994207,-.046705,.0781286,.74377,.994168,-.0469698,.0763337,.77042,.9945,-.0456816,.0738184,.796659,.994356,-.0455518,.0715545,.821868,.994747,-.0439488,.0686085,.846572,.994937,-.0430056,.065869,.870435,.995142,-.0413414,.0626446,.893272,.995451,-.0396521,.05929,.915376,.995445,-.0378453,.0558503,.936196,.995967,-.0355219,.0520949,.956376,.996094,-.0335146,.048377,.975327,.996622,-.030682,.0442575,.993471,.996938,-.0285504,.0404693,1.01052,.997383,-.0253399,.0360903,1.02637,.997714,-.0231651,.0322176,1.04139,.998249,-.0198138,.0278433,1.05542,.998596,-.0174337,.0238759,1.06846,.998946,-.0141349,.0195944,1.08056,.99928,-.0115603,.0156279,1.09181,.999507,-.00839065,.0114607,1.10213,.999697,-.005666,.00763325,1.11169,.999869,-.00269902,.00364946,1.12042,1.00001,623836e-10,-319288e-10,1.12832,.987221,-222675e-11,.111332,197456e-10,.98739,-561116e-10,.111351,497563e-9,.987448,-224453e-9,.111357,.00199031,.987441,-505019e-9,.111357,.0044782,.987442,-897816e-9,.111357,.00796129,.987442,-.00140284,.111357,.0124396,.987444,-.00202012,.111357,.0179132,.987442,-.00274964,.111357,.0243824,.987446,-.00359147,.111357,.0318474,.987435,-.00454562,.111356,.0403086,.987461,-.00561225,.111358,.0497678,.987458,-.00679125,.111358,.0602239,.987443,-.0080828,.111356,.0716792,.987476,-.0094872,.111358,.0841364,.98749,-.0110044,.111361,.097597,.987508,-.0126344,.111362,.112062,.987494,-.0143767,.111357,.127533,.987526,-.0162307,.111359,.144015,.987558,-.0181912,.111361,.161502,.987602,-.0202393,.111355,.179979,.987692,-.022273,.111346,.199386,.987702,-.0235306,.111215,.219183,.987789,-.0247628,.111061,.239202,.987776,-.0280668,.111171,.259957,.987856,-.0316751,.111327,.282198,.987912,-.0342468,.111282,.306294,.988,-.0367205,.111198,.331219,.988055,-.0387766,.110994,.356708,.988241,-.0397722,.110547,.382234,.988399,-.0416076,.110198,.408227,.988539,-.0448192,.110137,.434662,.988661,-.0483793,.110143,.461442,.988967,-.0495895,.109453,.489318,.989073,-.0506797,.108628,.517516,.989274,-.0526953,.108003,.545844,.989528,-.054578,.107255,.573823,.989709,-.0561503,.106294,.601944,.989991,-.056866,.104896,.630855,.990392,-.0572914,.103336,.658925,.990374,-.0586224,.10189,.686661,.990747,-.0584764,.099783,.714548,.991041,-.0582662,.0974309,.74186,.991236,-.0584118,.0951678,.768422,.991585,-.0573055,.0921581,.794817,.991984,-.0564241,.0891167,.820336,.9921,-.0553608,.085805,.84493,.992749,-.0533816,.0820354,.868961,.99288,-.0518661,.0782181,.891931,.993511,-.0492492,.0738935,.914186,.993617,-.0471956,.0696402,.93532,.99411,-.044216,.0649659,.95543,.994595,-.0416654,.0603177,.974685,.994976,-.0384314,.0553493,.992807,.995579,-.0353491,.0503942,1.00996,.996069,-.0319787,.0452123,1.02606,.996718,-.028472,.0400112,1.04114,.997173,-.0250789,.0349456,1.05517,.997818,-.0213326,.029653,1.0683,.998318,-.0178509,.024549,1.0805,.998853,-.0141118,.0194197,1.09177,.999218,-.0105914,.0143869,1.1022,.999594,-.00693474,.00943517,1.11175,.99975,-.00340478,.00464051,1.12056,1.00001,109172e-9,-112821e-9,1.12853,.983383,-266524e-11,.133358,196534e-10,.981942,-671009e-10,.133162,494804e-9,.981946,-268405e-9,.133163,.00197923,.981944,-603912e-9,.133163,.00445326,.981941,-.00107362,.133162,.00791693,.981946,-.00167755,.133163,.0123703,.981944,-.00241569,.133162,.0178135,.981945,-.00328807,.133163,.0242466,.981945,-.00429472,.133162,.03167,.981955,-.00543573,.133164,.0400846,.981951,-.00671105,.133163,.0494901,.981968,-.00812092,.133165,.0598886,.981979,-.00966541,.133166,.0712811,.981996,-.0113446,.133168,.083669,.982014,-.0131585,.133169,.0970533,.982011,-.0151073,.133167,.111438,.982062,-.0171906,.133172,.126826,.9821,-.0194067,.133175,.143215,.982149,-.0217502,.133176,.160609,.982163,-.0241945,.133173,.178981,.982247,-.0265907,.133148,.198249,.982291,-.027916,.132974,.217795,.982396,-.0299663,.132868,.238042,.982456,-.0334544,.132934,.258901,.982499,-.0378636,.133137,.280639,.982617,-.0409274,.133085,.304604,.98274,-.0438523,.132985,.329376,.982944,-.0462288,.132728,.354697,.98308,-.0475995,.132228,.380102,.983391,-.0501901,.131924,.406256,.983514,-.0535899,.131737,.432735,.98373,-.0571858,.131567,.459359,.984056,-.0592353,.130932,.486637,.984234,-.0610488,.130092,.51509,.984748,-.0630758,.12923,.543461,.985073,-.0647398,.128174,.571376,.985195,-.0671941,.127133,.599414,.985734,-.0681345,.125576,.628134,.986241,-.0686089,.123639,.656399,.986356,-.0698511,.121834,.684258,.986894,-.0700931,.119454,.711818,.987382,-.0698321,.116718,.739511,.988109,-.0693975,.113699,.766267,.988363,-.0689584,.110454,.792456,.989112,-.0672353,.106602,.81813,.989241,-.0662034,.10267,.842889,.990333,-.0638938,.0981381,.867204,.990591,-.0618534,.0935388,.89038,.991106,-.0593117,.088553,.912576,.991919,-.0562676,.0832187,.934118,.992111,-.0534085,.0778302,.954254,.992997,-.0495459,.0720453,.973722,.993317,-.0463707,.0663458,.991949,.994133,-.0421245,.0601883,1.00936,.994705,-.0384977,.0542501,1.02559,.995495,-.0340956,.0479862,1.04083,.996206,-.030105,.041887,1.05497,.996971,-.0256095,.0355355,1.06824,.997796,-.0213932,.0293655,1.08056,.998272,-.0169612,.0232926,1.09182,.998857,-.0126756,.0172786,1.10219,.99939,-.00832486,.0113156,1.11192,.999752,-.00410826,.00557892,1.12075,1,150957e-9,-119101e-9,1.12885,.975169,-309397e-11,.154669,195073e-10,.975439,-779608e-10,.154712,491534e-9,.975464,-311847e-9,.154716,.00196617,.975464,-701656e-9,.154716,.00442387,.975462,-.0012474,.154715,.0078647,.975461,-.00194906,.154715,.0122886,.975464,-.00280667,.154715,.0176959,.975468,-.00382025,.154716,.0240867,.975471,-.00498985,.154716,.0314612,.975472,-.00631541,.154717,.0398199,.975486,-.00779719,.154718,.0491639,.975489,-.00943505,.154718,.0594932,.975509,-.0112295,.154721,.0708113,.97554,-.0131802,.154724,.0831176,.975557,-.0152876,.154726,.096415,.975585,-.0175512,.154728,.110705,.975605,-.0199713,.154729,.125992,.975645,-.0225447,.154729,.142272,.975711,-.0252649,.154735,.159549,.975788,-.0280986,.154736,.177805,.975872,-.0308232,.154704,.196911,.975968,-.0324841,.154525,.216324,.976063,-.0351281,.154432,.236628,.976157,-.0388618,.15446,.257539,.976204,-.0437704,.154665,.278975,.976358,-.047514,.154652,.302606,.976571,-.0508638,.154535,.327204,.976725,-.0534995,.154221,.352276,.977013,-.0555547,.153737,.377696,.977294,-.0586728,.153403,.403855,.977602,-.0622715,.15312,.430333,.977932,-.0658166,.152755,.456855,.978241,-.0689877,.152233,.483668,.978602,-.0712805,.15132,.512097,.979234,-.0732775,.150235,.540455,.97977,-.075163,.148978,.568486,.979995,-.0778026,.147755,.596524,.98078,-.0791854,.146019,.624825,.981628,-.0799666,.143906,.653403,.982067,-.0808532,.141561,.681445,.98271,-.0816024,.139025,.708918,.983734,-.0812511,.135764,.736594,.98431,-.0806201,.132152,.763576,.985071,-.0801605,.12846,.789797,.98618,-.0784208,.124084,.815804,.986886,-.0766643,.1193,.840869,.987485,-.0747744,.114236,.864952,.988431,-.0716701,.108654,.888431,.988886,-.0691609,.102994,.910963,.990024,-.0654048,.0967278,.932629,.990401,-.0619765,.090384,.95313,.991093,-.0579296,.0837885,.972587,.992018,-.0536576,.0770171,.991184,.992536,-.0493719,.0701486,1.00863,.993421,-.0444813,.062953,1.02494,.993928,-.040008,.0560455,1.04017,.994994,-.0347982,.04856,1.05463,.995866,-.0301017,.0416152,1.06807,.996916,-.0248225,.0342597,1.08039,.997766,-.0199229,.0271668,1.09177,.998479,-.0147422,.0201387,1.10235,.99921,-.00980173,.0131944,1.11206,.999652,-.0047426,.00640712,1.12104,.999998,891673e-10,-10379e-8,1.12906,.967868,-351885e-11,.175947,193569e-10,.968001,-886733e-10,.175972,487782e-9,.96801,-354697e-9,.175973,.00195115,.968012,-798063e-9,.175974,.00439006,.968011,-.00141879,.175973,.00780461,.968011,-.00221686,.175973,.0121948,.968016,-.00319231,.175974,.0175607,.968019,-.00434515,.175974,.0239027,.968018,-.00567538,.175974,.0312208,.968033,-.00718308,.175977,.0395158,.968049,-.00886836,.175979,.0487885,.968047,-.0107312,.175978,.0590394,.968072,-.0127719,.175981,.0702705,.968108,-.0149905,.175986,.0824836,.968112,-.0173866,.175985,.0956783,.968173,-.0199611,.175993,.109862,.96827,-.0227128,.176008,.125033,.968292,-.025639,.17601,.141193,.968339,-.0287299,.176007,.158336,.968389,-.0319399,.176001,.176441,.968501,-.034941,.175962,.195359,.968646,-.0370812,.175793,.214686,.968789,-.0402329,.175708,.234973,.96886,-.0442601,.1757,.255871,.969013,-.049398,.175876,.277238,.969242,-.0539932,.17594,.300326,.969419,-.0577299,.175781,.324702,.969763,-.0605643,.175432,.349527,.970093,-.0634488,.174992,.374976,.970361,-.0670589,.174611,.401097,.970825,-.0708246,.174226,.427496,.971214,-.0742871,.173684,.453858,.971622,-.0782608,.173186,.480637,.972175,-.0813151,.172288,.508655,.972944,-.0832678,.170979,.536973,.973595,-.0855964,.169573,.565138,.974345,-.0882163,.168152,.593222,.975233,-.0901671,.166314,.621201,.976239,-.0912111,.163931,.649919,.977289,-.0916959,.161106,.678011,.978076,-.0927061,.158272,.705717,.979533,-.0925562,.15475,.733228,.980335,-.0918159,.150638,.760454,.981808,-.0908508,.146201,.786918,.983061,-.0896172,.141386,.812953,.984148,-.0871588,.135837,.838281,.985047,-.0850624,.130135,.862594,.986219,-.0818541,.123882,.88633,.987043,-.0784523,.117126,.908952,.988107,-.0749601,.110341,.930744,.988955,-.0703548,.102885,.951728,.989426,-.0662798,.0954167,.971166,.990421,-.0610834,.0876331,.989984,.991032,-.0562936,.0797785,1.00765,.992041,-.0508154,.0718166,1.02434,.992794,-.0454045,.0637125,1.03976,.993691,-.0398194,.0555338,1.05418,.994778,-.0341482,.0473388,1.06772,.995915,-.028428,.0391016,1.08028,.997109,-.022642,.0309953,1.09185,.998095,-.0168738,.0230288,1.10247,.998985,-.0111274,.0150722,1.11229,.999581,-.00543881,.00740605,1.12131,1.00003,162239e-9,-105549e-9,1.12946,.959505,-393734e-11,.196876,191893e-10,.959599,-992157e-10,.196895,483544e-9,.959641,-396868e-9,.196903,.0019342,.959599,-892948e-9,.196895,.00435193,.959603,-.00158747,.196896,.0077368,.959604,-.00248042,.196896,.0120888,.959605,-.00357184,.196896,.0174082,.959605,-.00486169,.196896,.0236949,.959613,-.00635008,.196897,.0309497,.959619,-.00803696,.196898,.0391725,.959636,-.00992255,.196901,.0483649,.959634,-.0120067,.1969,.0585266,.959675,-.0142898,.196906,.0696609,.959712,-.0167717,.196911,.0817678,.959752,-.0194524,.196918,.0948494,.959807,-.0223321,.196925,.10891,.959828,-.0254091,.196924,.123947,.959906,-.0286815,.196934,.139968,.960005,-.0321371,.196944,.156968,.960071,-.0357114,.196936,.17491,.960237,-.0389064,.196882,.193597,.960367,-.041623,.196731,.21285,.960562,-.0452655,.196654,.233075,.960735,-.0496207,.196643,.253941,.960913,-.0549379,.196774,.275278,.961121,-.0603414,.196893,.297733,.96139,-.0644244,.196717,.321877,.961818,-.067556,.196314,.346476,.962175,-.0712709,.195917,.371907,.96255,-.0752848,.1955,.397916,.963164,-.0792073,.195026,.424229,.963782,-.0828225,.194424,.450637,.964306,-.0873119,.193831,.477288,.964923,-.0911051,.192973,.504716,.966048,-.093251,.19151,.533053,.967024,-.0958983,.190013,.561366,.968038,-.09835,.188253,.589464,.969152,-.100754,.186257,.617433,.970557,-.102239,.183775,.645801,.972104,-.102767,.180645,.674278,.973203,-.103492,.177242,.702004,.975123,-.103793,.17345,.729529,.97641,-.102839,.168886,.756712,.978313,-.101687,.163892,.783801,.980036,-.100314,.158439,.809671,.981339,-.097836,.152211,.835402,.982794,-.0950006,.145679,.860081,.984123,-.0920994,.138949,.883757,.984918,-.0878641,.131283,.90685,.985999,-.083939,.123464,.928786,.987151,-.0791234,.115324,.94983,.987827,-.0739332,.106854,.96962,.988806,-.0688088,.0982691,.98861,.989588,-.0628962,.0893456,1.00667,.990438,-.0573146,.0805392,1.02344,.991506,-.0509433,.0713725,1.03933,.992492,-.0448724,.0623732,1.05378,.993663,-.0383497,.0530838,1.06747,.994956,-.0319593,.0439512,1.08007,.99634,-.025401,.0347803,1.09182,.99761,-.0189687,.0257954,1.1025,.99863,-.0124441,.0169893,1.11247,.99947,-.00614003,.00829498,1.12151,1.00008,216624e-9,-146107e-9,1.12993,.950129,-434955e-11,.217413,190081e-10,.950264,-10957e-8,.217444,47884e-8,.9503,-438299e-9,.217451,.00191543,.950246,-986124e-9,.21744,.00430951,.950246,-.00175311,.21744,.00766137,.950245,-.00273923,.21744,.011971,.950253,-.00394453,.217441,.0172385,.950258,-.00536897,.217442,.0234641,.950267,-.00701262,.217444,.030648,.950277,-.00887551,.217446,.038791,.950284,-.0109576,.217446,.0478931,.950312,-.0132591,.217451,.0579568,.950334,-.01578,.217454,.0689821,.950378,-.0185204,.217462,.0809714,.950417,-.0214803,.217467,.0939265,.950488,-.0246594,.217479,.10785,.950534,-.0280565,.217483,.122743,.950633,-.0316685,.217498,.138611,.950698,-.0354787,.217499,.155442,.950844,-.0394003,.217507,.173208,.950999,-.0426812,.217419,.191605,.951221,-.0461302,.217317,.21084,.951412,-.0502131,.217238,.230945,.951623,-.0549183,.21722,.251745,.951867,-.0604493,.217306,.273001,.952069,-.0665189,.217466,.294874,.952459,-.0709179,.217266,.318732,.952996,-.0746112,.216891,.34318,.953425,-.0789252,.216503,.36849,.953885,-.0833293,.216042,.394373,.954617,-.087371,.215469,.420505,.955429,-.0914054,.214802,.446907,.956068,-.0961671,.214146,.473522,.957094,-.10048,.213286,.50052,.958372,-.103248,.211796,.528715,.959654,-.106033,.21016,.557065,.961305,-.108384,.208149,.585286,.962785,-.111122,.206024,.613334,.964848,-.112981,.203442,.641334,.966498,-.113717,.19996,.669955,.968678,-.114121,.196105,.698094,.970489,-.114524,.191906,.725643,.972903,-.113792,.186963,.752856,.974701,-.112406,.181343,.780013,.976718,-.110685,.175185,.806268,.978905,-.108468,.168535,.832073,.980267,-.105061,.161106,.857149,.981967,-.101675,.153387,.881145,.983063,-.0974492,.145199,.904255,.984432,-.0925815,.136527,.926686,.985734,-.0877983,.127584,.947901,.986228,-.081884,.118125,.968111,.98719,-.0761208,.108594,.98719,.988228,-.0698196,.0989996,1.00559,.989046,-.0632739,.0890074,1.02246,.990242,-.056522,.0790832,1.03841,.991252,-.0495272,.0689182,1.05347,.992542,-.0425373,.0588592,1.06724,.994096,-.0353198,.0486833,1.08009,.995593,-.028235,.0385977,1.09177,.99711,-.0209511,.0286457,1.10274,.998263,-.0139289,.0188497,1.11262,.999254,-.0067359,.009208,1.12191,.999967,141846e-9,-657764e-10,1.13024,.935608,-474692e-11,.236466,187817e-10,.93996,-11971e-8,.237568,473646e-9,.939959,-478845e-9,.237567,.0018946,.939954,-.0010774,.237566,.00426284,.939956,-.00191538,.237566,.00757842,.939954,-.00299277,.237566,.0118413,.93996,-.00430961,.237567,.0170518,.939969,-.00586589,.237569,.02321,.939982,-.00766166,.237572,.0303164,.939987,-.00969686,.237572,.0383711,.939997,-.0119715,.237574,.0473751,.940031,-.0144858,.237581,.0573298,.940073,-.0172399,.237589,.0682366,.94012,-.0202335,.237598,.080097,.940162,-.0234663,.237604,.0929116,.940237,-.0269387,.237615,.106686,.940328,-.0306489,.237632,.121421,.940419,-.0345917,.237645,.137115,.940522,-.0387481,.237654,.153766,.940702,-.0429906,.237661,.17133,.940871,-.0465089,.237561,.189502,.941103,-.050531,.23748,.208616,.941369,-.0550657,.237423,.228595,.941641,-.0601337,.237399,.249287,.941903,-.0658804,.237443,.270467,.942224,-.0722674,.237597,.292024,.942633,-.0771788,.237419,.315272,.943172,-.0815623,.237068,.339579,.943691,-.0863973,.236682,.364717,.944382,-.0911536,.236213,.390435,.945392,-.0952967,.235562,.416425,.946185,-.0998948,.234832,.442772,.947212,-.104796,.234114,.469347,.948778,-.10928,.233222,.496162,.950149,-.113081,.231845,.523978,.951989,-.115893,.230005,.552295,.953921,-.11846,.227862,.580569,.955624,-.12115,.225439,.608698,.958234,-.123373,.222635,.636696,.960593,-.124519,.219093,.665208,.963201,-.124736,.214749,.693557,.965642,-.125012,.210059,.721334,.968765,-.124661,.204935,.748613,.971753,-.122996,.198661,.776224,.973751,-.120998,.191823,.802461,.976709,-.118583,.184359,.828399,.977956,-.115102,.176437,.853693,.979672,-.111077,.167681,.877962,.981816,-.10688,.158872,.901564,.98238,-.101469,.149398,.924057,.983964,-.0960013,.139436,.945751,.984933,-.0899626,.12943,.966272,.985694,-.0832973,.11894,.985741,.986822,-.0767082,.108349,1.00407,.987725,-.0693614,.0976026,1.02154,.98877,-.06211,.086652,1.03757,.990129,-.0544143,.0756182,1.05296,.991337,-.046744,.0645753,1.06683,.992978,-.0387931,.0534683,1.0798,.994676,-.030973,.0424137,1.09181,.99645,-.0230311,.0314035,1.10286,.997967,-.0152065,.0206869,1.11291,.99922,-.00744837,.010155,1.12237,1.00002,240209e-9,-752767e-10,1.13089,.922948,-515351e-11,.255626,186069e-10,.928785,-129623e-9,.257244,468009e-9,.928761,-51849e-8,.257237,.00187202,.928751,-.0011666,.257235,.00421204,.928751,-.00207395,.257234,.0074881,.928754,-.00324055,.257235,.0117002,.92876,-.00466639,.257236,.0168486,.928763,-.00635149,.257237,.0229334,.928774,-.00829584,.257239,.029955,.928791,-.0104995,.257243,.0379139,.928804,-.0129623,.257245,.0468108,.928847,-.0156846,.257255,.0566473,.92889,-.0186661,.257263,.0674246,.928924,-.0219067,.257268,.0791433,.928989,-.0254066,.257282,.0918076,.92909,-.0291651,.257301,.105419,.92918,-.0331801,.257316,.119978,.92929,-.0374469,.257332,.135491,.929453,-.041939,.257357,.151948,.929586,-.0464612,.257347,.169275,.929858,-.0503426,.257269,.187257,.930125,-.0548409,.257199,.206204,.930403,-.0598063,.257149,.22601,.930726,-.0652437,.257122,.246561,.931098,-.0712376,.257153,.267618,.931396,-.0777506,.257237,.288993,.931947,-.0832374,.257124,.311527,.932579,-.0883955,.25683,.335697,.933194,-.0937037,.256444,.360634,.934013,-.0987292,.255939,.386126,.935307,-.103215,.255282,.412018,.936374,-.108234,.254538,.438292,.93776,-.113234,.253728,.464805,.939599,-.118013,.25275,.491464,.941036,-.122661,.251404,.518751,.94337,-.125477,.249435,.547133,.945318,-.128374,.247113,.575456,.947995,-.130996,.244441,.60372,.950818,-.133438,.241352,.63174,.954378,-.135004,.237849,.659971,.957151,-.135313,.233188,.688478,.960743,-.13521,.228001,.716767,.964352,-.135007,.222249,.744349,.967273,-.133523,.21542,.771786,.969767,-.131155,.208039,.798639,.973195,-.128492,.200076,.824774,.975557,-.125094,.191451,.850222,.977692,-.120578,.18184,.874761,.98026,-.115882,.172102,.898497,.981394,-.110372,.161859,.921636,.982386,-.10415,.15108,.943467,.983783,-.0978128,.140407,.964045,.98422,-.0906171,.129058,.98398,.985447,-.0832921,.117614,1.00276,.986682,-.0754412,.10585,1.02047,.987326,-.0673885,.0940943,1.03678,.988707,-.0592565,.0822093,1.05218,.990185,-.050717,.070192,1.06652,.991866,-.0423486,.0582081,1.07965,.993897,-.0336118,.0460985,1.09188,.995841,-.0252178,.0342737,1.10307,.997605,-.0164893,.0224829,1.11324,.999037,-.00817112,.0110647,1.12262,1.00003,291686e-9,-168673e-9,1.13139,.915304,-552675e-11,.275999,183285e-10,.91668,-139285e-9,.276414,461914e-9,.916664,-55713e-8,.276409,.00184763,.916653,-.00125354,.276406,.00415715,.916651,-.00222851,.276405,.00739053,.916655,-.00348205,.276406,.0115478,.916653,-.00501414,.276405,.0166291,.916667,-.00682478,.276409,.0226346,.91668,-.00891398,.276412,.0295648,.91669,-.0112817,.276413,.0374199,.916727,-.013928,.276422,.0462016,.916759,-.0168528,.276429,.0559101,.916793,-.0200558,.276436,.0665466,.916849,-.0235373,.276448,.0781139,.916964,-.0272973,.276474,.0906156,.917047,-.0313344,.276491,.104051,.917152,-.0356465,.276511,.118424,.917286,-.0402271,.276533,.133736,.917469,-.0450408,.276564,.149978,.917686,-.0497872,.276563,.167057,.917953,-.0540937,.276493,.184846,.918228,-.0590709,.276437,.203614,.918572,-.0644277,.276398,.223212,.918918,-.0702326,.276362,.243584,.919356,-.076484,.276383,.264465,.919842,-.0830808,.276434,.285701,.920451,-.0892972,.276407,.307559,.921113,-.095016,.276128,.331501,.921881,-.100771,.275754,.356207,.923027,-.106029,.275254,.381477,.924364,-.111029,.274595,.40722,.925818,-.116345,.273841,.433385,.92746,-.121424,.272913,.459848,.929167,-.12657,.271837,.486493,.931426,-.131581,.270575,.513432,.934001,-.135038,.268512,.541502,.936296,-.138039,.266135,.569658,.939985,-.140687,.263271,.598375,.943516,-.143247,.260058,.626563,.94782,-.145135,.256138,.654711,.951023,-.145733,.251154,.683285,.955338,-.145554,.245562,.711831,.959629,-.145008,.239265,.739573,.963123,-.144003,.232064,.767027,.966742,-.141289,.224036,.794359,.969991,-.138247,.215305,.820361,.973403,-.134786,.206051,.846548,.975317,-.129966,.195914,.871541,.977647,-.12471,.185184,.895313,.980137,-.119086,.174161,.918398,.981031,-.112297,.162792,.940679,.982037,-.105372,.150952,.961991,.983164,-.097821,.138921,.981913,.983757,-.0897245,.126611,1.00109,.985036,-.0815974,.114228,1.01902,.986289,-.0727725,.101389,1.03604,.987329,-.0639323,.0886476,1.05149,.989193,-.0548109,.0756837,1.06619,.990716,-.045687,.0627581,1.07948,.992769,-.0364315,.0498337,1.09172,.99524,-.0271761,.0370305,1.1033,.997154,-.0179609,.0243959,1.11353,.998845,-.00878063,.0119567,1.12319,1.00002,259038e-9,-108146e-9,1.13177,.903945,-591681e-11,.295126,181226e-10,.903668,-148672e-9,.295037,455367e-9,.903677,-594683e-9,.29504,.00182145,.903673,-.00133805,.295039,.00409831,.903666,-.00237872,.295036,.00728584,.903668,-.00371676,.295037,.0113842,.903679,-.00535212,.29504,.0163936,.903684,-.00728479,.295041,.0223141,.903698,-.00951473,.295044,.0291462,.903718,-.0120419,.295049,.0368904,.903754,-.0148664,.295058,.0455477,.903801,-.017988,.29507,.0551194,.903851,-.0214064,.295082,.0656058,.903921,-.0251219,.295097,.0770109,.904002,-.0291337,.295116,.0893354,.904111,-.033441,.29514,.102583,.904246,-.0380415,.295169,.116755,.904408,-.0429258,.295202,.131853,.904637,-.0480468,.295245,.147869,.904821,-.0529208,.295214,.164658,.905163,-.0577748,.295185,.182274,.905469,-.0631763,.295143,.200828,.905851,-.068917,.295112,.2202,.906322,-.0750861,.295104,.240372,.906761,-.0815855,.295086,.261082,.90735,-.0882138,.295095,.282123,.908087,-.095082,.295139,.303563,.908826,-.101488,.29492,.327028,.909832,-.107577,.294577,.351464,.911393,-.113033,.294115,.376497,.912804,-.118629,.293446,.402115,.914081,-.124232,.292581,.428111,.91637,-.129399,.29166,.454442,.91814,-.134892,.290422,.481024,.921179,-.140069,.289194,.507924,.924544,-.144431,.287421,.535557,.927995,-.147498,.284867,.563984,.931556,-.150197,.281722,.5923,.935777,-.152711,.278207,.620832,.940869,-.154836,.274148,.649069,.945994,-.155912,.269057,.677746,.949634,-.155641,.262799,.706293,.955032,-.154809,.256097,.734278,.95917,-.153678,.248618,.761751,.962931,-.151253,.239794,.789032,.966045,-.147625,.230281,.815422,.96971,-.143964,.220382,.841787,.972747,-.139464,.209846,.867446,.975545,-.133459,.198189,.892004,.978381,-.127424,.186362,.915458,.979935,-.120506,.173964,.937948,.980948,-.11282,.161429,.959732,.982234,-.104941,.148557,.980118,.982767,-.0962905,.135508,.999463,.983544,-.0873625,.122338,1.01756,.984965,-.0783447,.108669,1.03492,.986233,-.0684798,.0949911,1.05087,.987796,-.0590867,.0811386,1.0656,.989885,-.0489145,.0673099,1.0794,.991821,-.0391,.0535665,1.09174,.99448,-.029087,.0397529,1.10341,.996769,-.019114,.0261463,1.11383,.998641,-.00947007,.0128731,1.1237,.999978,446316e-9,-169093e-9,1.13253,.888362,-627064e-11,.312578,178215e-10,.889988,-157791e-9,.313148,448451e-9,.889825,-631076e-9,.313092,.00179356,.88984,-.00141994,.313097,.00403554,.889828,-.0025243,.313092,.00717429,.889831,-.00394421,.313093,.0112099,.889831,-.00567962,.313093,.0161425,.889844,-.00773051,.313096,.0219724,.889858,-.0100968,.3131,.0286999,.889882,-.0127786,.313106,.0363256,.889918,-.0157757,.313116,.0448509,.889967,-.0190878,.313129,.0542758,.89003,-.022715,.313145,.0646032,.890108,-.0266566,.313165,.0758339,.890218,-.0309131,.313193,.0879729,.890351,-.0354819,.313226,.101019,.89051,-.0403613,.313263,.114979,.890672,-.0455385,.313294,.129848,.890882,-.0509444,.313333,.145616,.891189,-.0559657,.313324,.162122,.891457,-.0613123,.313281,.179524,.891856,-.0671488,.313281,.197855,.892312,-.0732732,.313268,.216991,.892819,-.0797865,.313263,.236924,.893369,-.0865269,.313247,.257433,.894045,-.0931592,.313205,.278215,.894884,-.100532,.313276,.299467,.895832,-.107716,.313205,.322276,.897043,-.114099,.312873,.34642,.898515,-.119941,.312331,.371187,.900191,-.126044,.311731,.396656,.90188,-.131808,.310859,.422488,.904359,-.137289,.309857,.448744,.906923,-.142991,.308714,.475239,.910634,-.148253,.307465,.501983,.914502,-.153332,.305774,.529254,.919046,-.156646,.303156,.557709,.923194,-.159612,.299928,.586267,.928858,-.162027,.296245,.614925,.934464,-.164203,.291832,.643187,.939824,-.165602,.286565,.671601,.944582,-.165383,.280073,.700213,.949257,-.164439,.272891,.728432,.954389,-.162953,.264771,.756082,.958595,-.161007,.255927,.78369,.962138,-.157243,.245769,.810769,.966979,-.152872,.235127,.836999,.969566,-.148209,.22347,.862684,.972372,-.142211,.211147,.887847,.975916,-.135458,.198606,.911843,.978026,-.128398,.185498,.934795,.979686,-.120313,.17171,.956787,.980748,-.11166,.158159,.978046,.981622,-.103035,.144399,.997693,.982356,-.0930328,.13001,1.01642,.983308,-.0834627,.115778,1.03366,.985037,-.0732249,.101327,1.05014,.986493,-.0628145,.086554,1.06507,.988484,-.0526556,.0720413,1.07907,.991051,-.0415744,.0571151,1.09189,.993523,-.0314275,.0426643,1.10369,.99628,-.0203603,.0279325,1.11423,.998344,-.0102446,.0138182,1.12421,.999997,42612e-8,-193628e-9,1.1333,.871555,-660007e-11,.329176,174749e-10,.875255,-166579e-9,.330571,441051e-9,.875644,-666394e-9,.330718,.00176441,.875159,-.00149903,.330536,.00396899,.87516,-.00266493,.330536,.007056,.875158,-.00416393,.330535,.0110251,.87516,-.00599598,.330535,.0158764,.875163,-.00816108,.330536,.0216101,.875174,-.0106591,.330538,.0282266,.875199,-.0134899,.330545,.0357266,.875257,-.0166538,.330563,.0441117,.875304,-.0201501,.330575,.0533821,.875373,-.0239785,.330595,.0635395,.875464,-.0281389,.330619,.0745872,.875565,-.0326301,.330645,.0865255,.875691,-.0374516,.330676,.0993599,.875897,-.0425993,.330733,.113093,.876091,-.0480576,.330776,.127722,.876353,-.0537216,.330826,.143227,.876649,-.0589807,.330809,.159462,.877034,-.0647865,.330819,.176642,.877443,-.0709789,.330817,.194702,.877956,-.0774782,.330832,.213577,.878499,-.0843175,.330822,.233246,.879144,-.0912714,.330804,.253512,.879982,-.0980824,.330766,.274137,.88097,-.105823,.330864,.295209,.882051,-.113671,.330896,.317226,.883397,-.120303,.330545,.341068,.884987,-.12667,.330068,.365613,.886789,-.133118,.329418,.390807,.889311,-.139024,.328683,.416494,.891995,-.144971,.327729,.442618,.895106,-.150747,.326521,.469131,.899527,-.156283,.325229,.495921,.90504,-.161707,.32378,.523162,.909875,-.165661,.32122,.55092,.91561,-.168755,.317942,.579928,.921225,-.171193,.313983,.608539,.927308,-.17319,.309636,.636854,.933077,-.174819,.304262,.66523,.938766,-.175002,.297563,.693609,.943667,-.173946,.289613,.722157,.949033,-.172221,.281227,.750021,.953765,-.169869,.271545,.777466,.95804,-.166578,.261034,.804853,.962302,-.161761,.249434,.831569,.966544,-.156636,.237484,.857779,.969372,-.150784,.224395,.883051,.972486,-.143672,.210786,.907864,.975853,-.135772,.196556,.931223,.977975,-.127942,.182307,.954061,.979122,-.118347,.167607,.97531,.980719,-.109112,.152739,.995666,.981223,-.0991789,.137932,1.01475,.98216,-.0883553,.122692,1.03253,.983379,-.0780825,.107493,1.04917,.985434,-.0665646,.0917791,1.06464,.987332,-.0557714,.0764949,1.07896,.990004,-.0442805,.060721,1.09199,.992975,-.0331676,.0452284,1.10393,.995811,-.0219547,.0297934,1.11476,.9982,-.0107613,.0146415,1.12484,1.00002,248678e-9,-14555e-8,1.13413,.859519,-693595e-11,.347264,171673e-10,.859843,-17503e-8,.347394,433219e-9,.859656,-700076e-9,.347319,.00173277,.859671,-.00157517,.347325,.00389875,.859669,-.00280028,.347324,.00693112,.85967,-.0043754,.347324,.01083,.859665,-.00630049,.347321,.0155954,.859685,-.0085755,.347328,.0212278,.859694,-.0112003,.347329,.0277273,.859718,-.0141747,.347336,.0350946,.85976,-.0174988,.347348,.0433314,.85982,-.0211722,.347366,.0524384,.859892,-.0251941,.347387,.0624168,.860006,-.0295649,.347422,.0732708,.860122,-.0342825,.347453,.0849999,.860282,-.0393462,.347499,.0976102,.860482,-.0447513,.347554,.111104,.860719,-.0504775,.347614,.125479,.860998,-.0563577,.347666,.140703,.861322,-.0619473,.347662,.156681,.861724,-.0681277,.347684,.173597,.862198,-.0746567,.347709,.191371,.862733,-.0815234,.347727,.209976,.863371,-.0886643,.347744,.229351,.86414,-.0957908,.347734,.24934,.865138,-.102912,.34772,.269797,.866182,-.110924,.3478,.290654,.867436,-.119223,.347911,.312074,.869087,-.126197,.347649,.335438,.870859,-.133145,.347222,.359732,.872997,-.139869,.346645,.38467,.875939,-.146089,.345935,.41019,.879012,-.152334,.345012,.436218,.883353,-.15821,.343924,.462641,.888362,-.164097,.342636,.489449,.895026,-.169528,.341351,.516629,.900753,-.174408,.339115,.544109,.906814,-.17751,.335809,.572857,.912855,-.180101,.331597,.601554,.919438,-.182116,.32698,.630198,.925962,-.183494,.321449,.658404,.931734,-.184159,.314595,.686625,.93762,-.18304,.306462,.71531,.943858,-.181323,.297514,.744272,.948662,-.178683,.287447,.771462,.953299,-.175379,.276166,.798593,.957346,-.170395,.263758,.8256,.962565,-.165042,.251019,.852575,.966075,-.158655,.237011,.878316,.969048,-.151707,.222518,.90329,.972423,-.143271,.207848,.927745,.975833,-.134824,.192463,.950859,.977629,-.125444,.1768,.972947,.978995,-.114949,.161033,.993263,.980533,-.104936,.145523,1.01337,.980745,-.0935577,.129799,1.03128,.981814,-.0822956,.113486,1.04825,.983943,-.0710082,.0972925,1.06405,.986141,-.0587931,.0808138,1.0785,.988878,-.0472755,.0644915,1.09204,.992132,-.0349128,.0478128,1.10413,.9953,-.0232407,.031621,1.11527,.998117,-.0112713,.0154935,1.12551,1.00003,339743e-9,-195763e-9,1.13504,.845441,-729126e-11,.364305,169208e-10,.843588,-183164e-9,.363506,425067e-9,.843412,-73253e-8,.36343,.00169999,.843401,-.00164818,.363426,.00382495,.843399,-.00293008,.363425,.00679993,.843401,-.00457822,.363425,.010625,.843394,-.00659249,.363421,.0153002,.843398,-.00897282,.363421,.0208258,.843415,-.0117191,.363426,.0272024,.843438,-.0148312,.363432,.0344305,.843483,-.018309,.363447,.0425116,.84356,-.0221521,.363472,.0514471,.843646,-.0263597,.363499,.061238,.843743,-.0309315,.363527,.0718873,.84388,-.0358658,.363569,.0833969,.844079,-.0411624,.363631,.0957742,.844279,-.0468128,.363688,.109015,.844549,-.0527923,.363761,.123124,.844858,-.0588204,.363817,.138044,.84522,-.0647573,.36383,.153755,.845669,-.0713181,.363879,.170394,.846155,-.0781697,.363908,.187861,.846789,-.0853913,.363969,.206176,.847502,-.0928086,.363999,.225244,.8484,-.10005,.363997,.244926,.849461,-.107615,.364008,.265188,.850562,-.115814,.364055,.28587,.851962,-.124334,.364179,.306926,.854326,-.131995,.364233,.329605,.856295,-.139338,.363856,.35359,.858857,-.146346,.363347,.37831,.862428,-.152994,.362807,.403722,.866203,-.159463,.361963,.429537,.871629,-.165623,.36112,.456,.877365,-.171649,.359917,.482773,.883744,-.177151,.35848,.509705,.890693,-.182381,.356523,.537215,.897278,-.186076,.3533,.565493,.903958,-.188602,.349095,.594293,.910908,-.190755,.344215,.623165,.918117,-.192063,.338606,.651573,.924644,-.192758,.331544,.679869,.931054,-.192238,.323163,.708668,.937303,-.190035,.313529,.737201,.943387,-.187162,.303152,.764977,.948494,-.183876,.29146,.792683,.952546,-.178901,.277917,.819228,.958077,-.173173,.264753,.846559,.962462,-.16645,.25002,.872962,.966569,-.159452,.234873,.898729,.969108,-.15074,.218752,.923126,.973072,-.141523,.202673,.947278,.975452,-.132075,.186326,.969938,.977784,-.121257,.169396,.991325,.97899,-.110182,.153044,1.01123,.979777,-.0989634,.136485,1.0299,.980865,-.0865894,.119343,1.04727,.982432,-.0746115,.102452,1.06341,.984935,-.0621822,.0852423,1.07834,.987776,-.0495694,.0678546,1.092,.99103,-.0372386,.0506917,1.1043,.99474,-.0244353,.0333316,1.11576,.997768,-.0121448,.0164348,1.12617,1.00003,31774e-8,-169504e-9,1.13598,.825551,-756799e-11,.378425,165099e-10,.82664,-190922e-9,.378923,416504e-9,.826323,-763495e-9,.378779,.0016656,.826359,-.00171789,.378795,.00374768,.82636,-.00305402,.378795,.00666259,.826368,-.00477185,.378798,.0104104,.826364,-.00687131,.378795,.0149912,.826368,-.00935232,.378795,.0204054,.826376,-.0122146,.378797,.0266532,.826399,-.0154581,.378803,.0337355,.82646,-.0190825,.378824,.0416537,.826525,-.0230873,.378846,.0504091,.826614,-.0274719,.378876,.0600032,.82674,-.0322355,.378917,.0704393,.826888,-.0373766,.378964,.0817195,.827078,-.0428936,.379024,.0938492,.827318,-.0487778,.379099,.106828,.82764,-.0549935,.379199,.120659,.827926,-.0611058,.379227,.13526,.828325,-.0675054,.379275,.150713,.828801,-.0743455,.379332,.167034,.8294,-.0815523,.379415,.184209,.830094,-.0890779,.379495,.202203,.8309,-.096736,.379555,.220945,.831943,-.104135,.379577,.240306,.833037,-.112106,.379604,.260317,.834278,-.120554,.379668,.2808,.836192,-.129128,.3799,.301654,.838671,-.137541,.380109,.323502,.840939,-.14523,.379809,.347176,.844575,-.15248,.379593,.371706,.848379,-.159607,.37909,.39688,.853616,-.166267,.378617,.422702,.858921,-.172698,.377746,.448919,.865324,-.178823,.376749,.475661,.872207,-.184542,.375363,.502599,.880018,-.189836,.373657,.529914,.88694,-.194294,.370673,.557683,.894779,-.197022,.36662,.586848,.902242,-.199108,.36138,.615831,.909914,-.200398,.355434,.644478,.917088,-.20094,.348173,.672905,.923888,-.200671,.339482,.701327,.930495,-.198773,.32956,.730101,.937247,-.195394,.318363,.758383,.943108,-.191956,.306323,.786539,.948296,-.187227,.292576,.813637,.953472,-.181165,.278234,.840793,.958485,-.174119,.263054,.867712,.962714,-.166564,.246756,.893635,.966185,-.158181,.229945,.919028,.970146,-.148275,.212633,.943413,.973491,-.138157,.195229,.966627,.975741,-.127574,.178048,.988817,.977238,-.11554,.160312,1.00924,.978411,-.10364,.142857,1.02845,.979811,-.0913122,.125317,1.04648,.98116,-.0782558,.107627,1.06284,.983543,-.0655957,.0895862,1.07798,.986789,-.0520411,.0713756,1.092,.990292,-.0389727,.053228,1.10484,.994187,-.025808,.0351945,1.11642,.997499,-.0126071,.0173198,1.12703,.999999,275604e-9,-148602e-9,1.13674,.81075,-78735e-10,.394456,161829e-10,.808692,-198293e-9,.393453,407564e-9,.80846,-792877e-9,.39334,.00162965,.808595,-.00178416,.393407,.00366711,.808597,-.00317182,.393408,.00651934,.808598,-.00495589,.393408,.0101866,.808591,-.00713627,.393403,.0146689,.808592,-.00971285,.393402,.0199667,.80861,-.0126855,.393407,.0260803,.808633,-.0160538,.393413,.0330107,.80868,-.0198175,.393429,.0407589,.808748,-.0239758,.393453,.0493264,.808854,-.0285286,.39349,.0587161,.808992,-.0334748,.39354,.0689304,.809141,-.0388116,.393588,.0799707,.809352,-.0445375,.39366,.0918432,.809608,-.0506427,.393742,.104549,.809915,-.0570708,.393834,.118085,.810253,-.0633526,.393885,.132377,.810687,-.0700966,.393953,.147537,.811233,-.0772274,.394047,.163543,.811865,-.0847629,.394148,.180394,.812648,-.0925663,.394265,.198051,.813583,-.100416,.394363,.216443,.814683,-.108119,.394402,.235502,.815948,-.11644,.394489,.255242,.817278,-.125036,.394542,.275441,.819605,-.133655,.39486,.296094,.822256,-.142682,.395248,.317309,.825349,-.150756,.395241,.340516,.829605,-.158392,.395285,.364819,.83391,-.165801,.394922,.389736,.839808,-.172677,.394691,.415409,.845708,-.179448,.394006,.441546,.853025,-.185746,.393279,.46832,.859666,-.191684,.391655,.495302,.86789,-.197146,.390068,.52262,.875845,-.201904,.38727,.550336,.882634,-.205023,.382688,.578825,.891076,-.207098,.377543,.608103,.900589,-.208474,.371752,.63723,.90791,-.209068,.364016,.665769,.915971,-.208655,.355593,.694428,.923455,-.20729,.345439,.723224,.931514,-.203821,.334099,.751925,.937885,-.19986,.321069,.780249,.943136,-.194993,.306571,.8077,.948818,-.189132,.291556,.83497,.954433,-.181617,.275745,.86188,.959078,-.173595,.258695,.888562,.962705,-.164855,.240825,.914008,.966753,-.155129,.22268,.939145,.970704,-.144241,.204542,.963393,.973367,-.133188,.185927,.985983,.975984,-.121146,.167743,1.00704,.976994,-.108366,.149218,1.02715,.978485,-.0956746,.13131,1.0455,.980074,-.0820733,.112513,1.06221,.98225,-.0684061,.0938323,1.07782,.98553,-.0549503,.0749508,1.09199,.989529,-.0407857,.055848,1.10508,.993536,-.0271978,.0368581,1.11684,.997247,-.0132716,.0181845,1.12789,1,431817e-9,-198809e-9,1.13792,.785886,-812608e-11,.405036,157669e-10,.790388,-205278e-9,.407355,398297e-9,.790145,-820824e-9,.407231,.00159263,.790135,-.00184681,.407226,.00358336,.790119,-.00328316,.407218,.00637039,.790126,-.00512988,.40722,.0099539,.79013,-.00738684,.407221,.0143339,.790135,-.0100538,.407221,.0195107,.790134,-.0131306,.407217,.0254848,.79016,-.0166169,.407224,.0322572,.790197,-.020512,.407236,.0398284,.790273,-.0248157,.407263,.0482014,.790381,-.029527,.407304,.0573777,.790521,-.0346446,.407355,.0673602,.790704,-.0401665,.40742,.0781522,.790925,-.0460896,.407499,.0897582,.791195,-.0524017,.407589,.10218,.791522,-.0590121,.407691,.11541,.791878,-.0654876,.407748,.12939,.792361,-.0725207,.407849,.144237,.792942,-.0799844,.407963,.159924,.79362,-.0877896,.408087,.176425,.794529,-.0958451,.408259,.193733,.795521,-.103827,.408362,.211756,.796778,-.111937,.408482,.230524,.798027,-.120521,.408547,.249967,.799813,-.129242,.408721,.269926,.802387,-.138048,.409148,.290338,.805279,-.147301,.409641,.311193,.809251,-.155895,.410154,.333611,.813733,-.163942,.410297,.357615,.819081,-.171666,.410373,.382339,.825427,-.178905,.410348,.407828,.83172,-.185812,.409486,.434034,.83877,-.192318,.408776,.460493,.845817,-.198249,.407176,.487346,.854664,-.204034,.405719,.514832,.863495,-.208908,.403282,.542401,.871883,-.212765,.399293,.570683,.88065,-.214911,.393803,.599947,.89004,-.216214,.387536,.62932,.898476,-.216745,.379846,.658319,.906738,-.216387,.370625,.687138,.914844,-.215053,.360139,.71601,.923877,-.212007,.348849,.745124,.931925,-.207481,.335639,.773366,.938054,-.202418,.320798,.801636,.943895,-.196507,.304772,.829055,.949468,-.189009,.288033,.856097,.955152,-.180539,.270532,.88301,.959403,-.171437,.251639,.909296,.963309,-.161661,.232563,.934868,.967399,-.150425,.213231,.959662,.972009,-.138659,.194247,.98302,.97433,-.126595,.174718,1.00517,.975823,-.113205,.155518,1.02566,.976371,-.0996096,.136709,1.04418,.978705,-.0860754,.117571,1.06146,.981477,-.0714438,.0980046,1.07777,.984263,-.0572304,.0782181,1.09214,.988423,-.0428875,.0584052,1.10553,.993,-.0282442,.038522,1.11758,.99704,-.0140183,.0190148,1.12864,.999913,369494e-9,-145203e-9,1.13901,.777662,-84153e-10,.423844,154403e-10,.770458,-211714e-9,.419915,38845e-8,.770716,-846888e-9,.420055,.00155386,.770982,-.00190567,.420202,.00349653,.770981,-.00338782,.420201,.00621606,.77098,-.00529338,.4202,.00971274,.770983,-.00762223,.4202,.0139867,.770985,-.0103741,.420198,.0190381,.770996,-.0135489,.4202,.0248677,.771029,-.0171461,.420212,.0314764,.771052,-.0211647,.420215,.0388648,.771131,-.0256048,.420245,.047036,.771235,-.0304647,.420284,.0559911,.771383,-.0357436,.420341,.0657346,.771591,-.0414392,.420423,.0762694,.771819,-.0475462,.420506,.0875984,.772123,-.0540506,.420617,.099727,.772464,-.060797,.42072,.112637,.772855,-.0675393,.420799,.126313,.773317,-.0748323,.420893,.140824,.773981,-.0825681,.421058,.15617,.774746,-.0906307,.421226,.172322,.77566,-.0988982,.421397,.189253,.776837,-.106994,.421569,.206912,.778097,-.115528,.421704,.225359,.779588,-.124317,.421849,.24447,.781574,-.133139,.422097,.264156,.784451,-.142179,.422615,.284318,.787682,-.15165,.423269,.304902,.792433,-.160771,.424396,.3265,.797359,-.169166,.424772,.35014,.803986,-.177149,.425475,.374768,.809504,-.184745,.424996,.399928,.815885,-.19173,.424247,.425796,.823513,-.198525,.423515,.452287,.832549,-.204709,.422787,.479321,.841653,-.210447,.421187,.506718,.850401,-.215501,.418519,.53432,.859854,-.219752,.414715,.56242,.869364,-.222305,.409462,.591558,.878837,-.223744,.402926,.621074,.888636,-.224065,.395043,.650538,.898132,-.223742,.38564,.679538,.907181,-.222308,.375378,.708674,.915621,-.219837,.363212,.737714,.9239,-.215233,.349313,.767014,.931644,-.209592,.334162,.795133,.938887,-.203644,.317943,.823228,.945282,-.196349,.300581,.850822,.950758,-.18742,.282195,.877594,.956146,-.177879,.262481,.904564,.960355,-.167643,.242487,.930741,.965256,-.156671,.222668,.955868,.968029,-.144123,.201907,.979869,.97251,-.131305,.18202,1.00291,.974925,-.118335,.161909,1.02392,.975402,-.103714,.142129,1.0433,.976987,-.089415,.122447,1.06089,.979677,-.0748858,.102248,1.07713,.983184,-.0596086,.0814851,1.09218,.987466,-.0447671,.0609484,1.10585,.992348,-.0295217,.0401835,1.11829,.996674,-.0143917,.0198163,1.12966,1.00003,321364e-9,-149983e-9,1.1402,.757901,-869074e-11,.436176,151011e-10,.751195,-217848e-9,.432317,378533e-9,.751178,-871373e-9,.432307,.0015141,.751195,-.00196061,.432317,.0034068,.751198,-.00348552,.432318,.00605659,.751195,-.00544599,.432315,.00946353,.751207,-.00784203,.43232,.013628,.751213,-.0106732,.43232,.0185499,.751221,-.0139393,.432319,.0242302,.751244,-.0176398,.432325,.0306694,.7513,-.0217743,.432348,.0378698,.751358,-.0263412,.432367,.0458321,.751458,-.0313396,.432404,.0545587,.751608,-.0367682,.432464,.0640543,.7518,-.0426246,.43254,.0743222,.752065,-.0489031,.432645,.0853668,.752376,-.0555828,.432762,.0971911,.752715,-.0623861,.432859,.109768,.753137,-.069415,.432958,.123126,.753676,-.0770039,.433099,.137308,.754345,-.084971,.433272,.15229,.755235,-.0932681,.433504,.168075,.756186,-.10171,.433693,.184625,.757363,-.110019,.433857,.201897,.75884,-.11887,.434102,.220014,.760467,-.127881,.434306,.238778,.762969,-.136766,.434751,.258172,.765823,-.14612,.43529,.278062,.769676,-.15566,.436236,.298437,.774909,-.165177,.437754,.319532,.77994,-.17402,.438343,.342505,.785757,-.182201,.438609,.366693,.792487,-.190104,.438762,.391668,.80038,-.197438,.438795,.417494,.808494,-.204365,.438226,.443933,.817695,-.210714,.437283,.470929,.828111,-.216651,.436087,.498569,.837901,-.221804,.433717,.526165,.847813,-.226318,.430133,.554155,.858314,-.229297,.425213,.582822,.868891,-.230999,.418576,.612847,.878941,-.231155,.410405,.642445,.888809,-.230935,.400544,.672024,.898089,-.229343,.389613,.701366,.908081,-.226886,.377197,.730763,.916819,-.222676,.363397,.759642,.924968,-.216835,.347437,.788775,.932906,-.210245,.32995,.817135,.940025,-.202992,.312262,.844912,.946101,-.19436,.293313,.872164,.952835,-.184125,.273638,.899443,.957347,-.173657,.252385,.926389,.961434,-.162204,.231038,.951947,.965522,-.14979,.209834,.976751,.969412,-.136307,.188821,1.00022,.973902,-.122527,.168013,1.02229,.974045,-.108213,.147634,1.04199,.975775,-.0927397,.12705,1.06019,.978383,-.0778212,.106309,1.07711,.98211,-.0621216,.0849279,1.09245,.986517,-.0463847,.0633519,1.10651,.991696,-.0309353,.0419698,1.11903,.996349,-.0150914,.0206272,1.13073,1.00003,442449e-9,-231396e-9,1.14146,.727498,-885074e-11,.441528,145832e-10,.730897,-223525e-9,.443589,368298e-9,.730796,-893996e-9,.443528,.00147303,.730805,-.00201149,.443533,.00331433,.730814,-.00357596,.443538,.00589222,.730815,-.00558734,.443538,.00920678,.730822,-.00804544,.44354,.0132582,.730836,-.0109501,.443545,.0180468,.730848,-.0143008,.443546,.0235732,.730871,-.0180969,.443552,.0298382,.730915,-.022338,.443567,.0368438,.730982,-.0270225,.443591,.044591,.731076,-.0321491,.443627,.0530831,.731245,-.0377166,.443699,.0623243,.73144,-.0437216,.443777,.0723181,.7317,-.0501576,.443881,.0830691,.732034,-.0569942,.444014,.0945809,.732388,-.0638756,.444113,.106825,.732853,-.071203,.444247,.119859,.733473,-.0790076,.444442,.13369,.734195,-.0871937,.444645,.148304,.735069,-.095696,.444877,.163702,.736169,-.10426,.445133,.179861,.73747,-.112853,.44537,.196778,.738991,-.12199,.445651,.214496,.740865,-.131153,.445958,.232913,.743637,-.140245,.446548,.251977,.746797,-.149722,.447246,.271551,.751517,-.159341,.448656,.291774,.756156,-.169106,.449866,.312455,.761519,-.178436,.450919,.334552,.768295,-.186904,.451776,.358491,.776613,-.195117,.452832,.383446,.783966,-.202695,.45249,.408945,.793542,-.20985,.452587,.435364,.803192,-.216403,.451852,.462336,.813892,-.22251,.450708,.48987,.824968,-.227676,.4486,.517697,.835859,-.232443,.445156,.545975,.846825,-.235775,.440351,.574483,.858085,-.237897,.433641,.604246,.868825,-.238074,.425354,.634101,.879638,-.237661,.415383,.664201,.889966,-.236186,.404136,.693918,.899479,-.233599,.390917,.723481,.908769,-.229737,.376352,.75258,.917966,-.223836,.360372,.781764,.926304,-.217067,.342551,.811139,.934626,-.209309,.324238,.839585,.941841,-.20071,.304484,.867044,.94789,-.190602,.283607,.894579,.954196,-.179253,.262205,.921743,.958383,-.167646,.239847,.948026,.963119,-.155073,.218078,.973296,.966941,-.141426,.195899,.998135,.970836,-.126849,.174121,1.02021,.973301,-.112296,.153052,1.04085,.97448,-.0964965,.131733,1.05946,.977045,-.080489,.10997,1.07693,.980751,-.064844,.0881657,1.09254,.985475,-.0481938,.0657987,1.10697,.991089,-.0319185,.0435215,1.12004,.996122,-.0158088,.0214779,1.13173,1.00001,372455e-9,-200295e-9,1.14291,.708622,-907597e-11,.45304,141962e-10,.711162,-228911e-9,.454662,358052e-9,.709812,-914446e-9,.453797,.00143034,.709865,-.00205819,.453834,.00321935,.709864,-.00365894,.453833,.00572331,.709855,-.00571692,.453826,.00894278,.709862,-.00823201,.453828,.012878,.709875,-.011204,.453832,.0175295,.709896,-.0146323,.453839,.0228978,.709925,-.0185163,.453847,.0289839,.709974,-.0228551,.453866,.0357894,.710045,-.0276473,.453892,.0433161,.710133,-.032891,.453924,.0515665,.710292,-.0385851,.453992,.0605458,.710485,-.0447254,.45407,.0702574,.710769,-.0513051,.454192,.0807077,.711106,-.0582733,.454329,.091896,.711516,-.0652866,.45446,.103814,.712071,-.0728426,.454653,.116508,.712676,-.0808307,.45484,.129968,.713476,-.0892216,.455096,.144206,.714377,-.0979047,.455346,.159212,.715579,-.106531,.455647,.174973,.716977,-.115492,.455961,.191504,.71862,-.124821,.456315,.208835,.72084,-.134079,.4568,.226869,.723786,-.143427,.457521,.245582,.727464,-.153061,.458475,.264957,.732771,-.162768,.460239,.284948,.736515,-.172627,.460899,.30522,.743519,-.182487,.463225,.326717,.750041,-.191295,.464027,.350113,.758589,-.199746,.465227,.374782,.767703,-.207584,.465877,.400226,.777484,-.214973,.465996,.426442,.788792,-.221796,.466019,.453688,.800194,-.228038,.465083,.481246,.811234,-.233346,.462506,.509086,.822859,-.238073,.459257,.537338,.835082,-.241764,.454863,.566108,.846332,-.244241,.448163,.595126,.858355,-.244736,.439709,.625574,.87034,-.244278,.429837,.65617,.881027,-.24255,.418002,.686029,.891007,-.239912,.404325,.716039,.900874,-.236133,.389222,.745518,.911072,-.230672,.373269,.775026,.920359,-.22356,.355083,.804521,.928604,-.215591,.335533,.834045,.937175,-.206503,.315278,.861612,.942825,-.196684,.293653,.889131,.949805,-.185116,.271503,.916853,.955535,-.172703,.248821,.943541,.959843,-.159978,.225591,.970132,.964393,-.146375,.202719,.994709,.968008,-.131269,.179928,1.0186,.971013,-.11569,.158007,1.03928,.973334,-.1003,.13624,1.05887,.975775,-.0833352,.1138,1.07652,.979579,-.0668981,.0913141,1.09297,.984323,-.0500902,.0683051,1.10734,.990351,-.0332377,.0451771,1.12084,.995823,-.0161491,.0221705,1.13296,1.0001,234083e-9,-108712e-9,1.14441,.683895,-924677e-11,.46015,137429e-10,.68833,-233383e-9,.463134,346865e-9,.688368,-933547e-9,.463159,.00138748,.688367,-.00210049,.463159,.00312187,.688369,-.00373415,.463159,.00555004,.688377,-.00583449,.463163,.00867216,.688386,-.00840128,.463166,.0124884,.688398,-.0114343,.463169,.0169993,.688418,-.0149329,.463175,.0222054,.688453,-.0188964,.463188,.028108,.688515,-.0233239,.463214,.0347085,.68857,-.0282136,.463231,.0420091,.688679,-.033564,.463276,.0500132,.688854,-.0393733,.463356,.0587255,.689038,-.0456354,.46343,.0681476,.689321,-.0523433,.463553,.0782897,.689662,-.059412,.463693,.0891501,.690188,-.0665736,.4639,.100735,.690755,-.0743106,.464107,.113074,.691405,-.0824722,.464329,.126161,.692198,-.0910484,.464585,.140007,.693196,-.0998778,.464893,.154612,.69454,-.108651,.465285,.169984,.695921,-.117855,.465596,.186106,.697749,-.12734,.466056,.203034,.700375,-.136714,.466771,.220703,.703395,-.146386,.467579,.239062,.707904,-.156096,.469067,.258188,.711673,-.165904,.469851,.277759,.717489,-.175812,.471815,.297935,.724051,-.185931,.47389,.318916,.731965,-.195238,.47587,.341591,.741151,-.204021,.477523,.366062,.751416,-.212113,.478881,.391396,.761848,-.21979,.479226,.417599,.771886,-.2267,.478495,.444401,.783998,-.232991,.477622,.472084,.796523,-.238645,.475833,.500193,.808851,-.243396,.472568,.52865,.821191,-.247226,.467857,.557362,.834261,-.250102,.461871,.586768,.846762,-.251056,.453543,.617085,.859867,-.250604,.443494,.647659,.871948,-.248783,.431711,.678119,.882967,-.245855,.417911,.708399,.892826,-.242168,.401993,.738256,.90332,-.237062,.385371,.767999,.913633,-.22997,.366837,.798191,.922774,-.221687,.346372,.827756,.931371,-.212345,.325682,.856425,.938929,-.20206,.303665,.884299,.944821,-.190981,.280786,.912023,.951792,-.178065,.2573,.939669,.957712,-.164634,.233448,.96655,.961912,-.150863,.209504,.992366,.966382,-.13577,.18597,1.01633,.969588,-.119593,.162905,1.03843,.971777,-.103203,.14053,1.05841,.97433,-.0865888,.117909,1.07632,.978686,-.0690829,.0944101,1.09326,.983281,-.0516568,.0705671,1.10796,.989562,-.034558,.0468592,1.12182,.995465,-.0167808,.0229846,1.1342,.999991,373016e-9,-235606e-9,1.1459,.662251,-939016e-11,.468575,132714e-10,.666634,-237624e-9,.471675,335842e-9,.666411,-950385e-9,.471516,.00134321,.666399,-.00213833,.471509,.00302221,.666386,-.0038014,.471499,.00537283,.666405,-.00593958,.471511,.00839533,.666406,-.00855253,.471508,.0120898,.666428,-.0116401,.471519,.0164569,.666444,-.0152015,.471522,.0214971,.66649,-.0192362,.471543,.027212,.666537,-.0237428,.471558,.033603,.666617,-.0287198,.471591,.0406728,.666718,-.0341647,.471631,.0484238,.666889,-.0400759,.47171,.0568621,.667104,-.0464479,.471805,.0659915,.667374,-.0532677,.471923,.0758178,.667772,-.0603805,.472098,.0863425,.668371,-.0677392,.472363,.0975917,.668971,-.0756028,.472596,.109567,.669696,-.0839293,.472869,.122272,.670481,-.0926683,.473126,.135718,.6715,-.1016,.473442,.149914,.672911,-.110566,.47389,.164882,.674512,-.119984,.474354,.180602,.67651,-.129574,.474922,.19711,.679292,-.139106,.475764,.214371,.682798,-.148993,.476886,.232405,.686955,-.158737,.478179,.251153,.691406,-.168754,.479432,.270436,.697438,-.178703,.481481,.290374,.704761,-.188955,.484143,.311044,.713599,-.198814,.487007,.333003,.723194,-.207869,.488962,.357144,.732601,-.216189,.489815,.382169,.744193,-.22398,.490888,.408227,.754907,-.231156,.490355,.434928,.767403,-.23747,.489548,.462599,.78107,-.243503,.488274,.490908,.793893,-.248114,.484843,.519421,.807296,-.25222,.4803,.548561,.820529,-.255265,.474097,.577772,.833716,-.256741,.466041,.607782,.848403,-.25637,.456547,.638807,.860755,-.254804,.443946,.670058,.874012,-.251834,.430852,.700749,.885619,-.247867,.414903,.731446,.896069,-.242634,.397276,.761191,.906266,-.236093,.378535,.791053,.916759,-.227543,.358038,.821298,.92523,-.21783,.335705,.850747,.93436,-.207534,.313797,.879258,.941631,-.195983,.289671,.907734,.947564,-.183567,.265319,.935206,.953681,-.169345,.240815,.962739,.960008,-.154909,.216119,.989227,.964145,-.140161,.192096,1.01465,.968171,-.123411,.167855,1.03737,.969859,-.106525,.144817,1.05767,.972666,-.0891023,.12149,1.0761,.977055,-.0718094,.0975306,1.09336,.982527,-.0534213,.0730217,1.10878,.989001,-.0355579,.0483366,1.12285,.99512,-.0176383,.023938,1.13548,1.00007,368831e-9,-211581e-9,1.14744,.651047,-960845e-11,.484101,12922e-9,.644145,-241347e-9,.478968,324578e-9,.64396,-965142e-9,.478831,.00129798,.64396,-.00217154,.47883,.00292046,.643968,-.00386049,.478835,.00519202,.643974,-.00603186,.478838,.0081128,.643977,-.0086854,.478836,.011683,.643982,-.0118207,.478834,.0159031,.644024,-.0154374,.478856,.0207743,.644059,-.0195343,.478868,.0262975,.644122,-.0241103,.478896,.0324747,.644207,-.0291638,.478933,.039309,.64432,-.0346919,.478981,.0468029,.644481,-.0406919,.479053,.0549614,.644722,-.047159,.479169,.0637909,.645013,-.0540748,.479302,.0732974,.645503,-.0612001,.479541,.0834898,.646117,-.0687303,.479829,.0943873,.646707,-.0767846,.480061,.105991,.647431,-.0852465,.480343,.11831,.64831,-.0940719,.48066,.131348,.649486,-.103056,.481083,.14514,.650864,-.112261,.481528,.159676,.652604,-.121852,.482102,.174979,.654825,-.131505,.482813,.191079,.657876,-.141189,.483876,.207927,.661339,-.151239,.48499,.225586,.665463,-.161091,.486279,.243947,.670542,-.171235,.487968,.262957,.677361,-.181347,.49053,.282781,.685672,-.191679,.493862,.303311,.694551,-.201781,.49699,.324607,.703753,-.211164,.498884,.347916,.713703,-.219675,.500086,.372628,.725911,-.227836,.501554,.398694,.73862,-.23533,.502193,.425529,.752118,-.241786,.501811,.453209,.76579,-.247865,.500185,.481381,.779568,-.252696,.497159,.51011,.793991,-.256802,.492765,.539322,.808182,-.259942,.486827,.569078,.821698,-.261703,.478386,.598818,.836009,-.262006,.468772,.629762,.849824,-.260333,.456352,.661366,.863888,-.257398,.442533,.69295,.876585,-.253264,.426573,.723608,.888665,-.248026,.408964,.754378,.899537,-.241487,.389677,.784761,.9094,-.233463,.368516,.814688,.920166,-.223397,.346624,.845009,.928899,-.21255,.322717,.874431,.937156,-.200869,.298698,.902922,.943861,-.188387,.273491,.931356,.949557,-.174341,.247866,.958854,.955862,-.158994,.222496,.986098,.961721,-.143664,.197522,1.01229,.965976,-.127412,.17302,1.03571,.968652,-.109798,.148954,1.05699,.971084,-.0916787,.125044,1.07587,.975584,-.0739634,.100577,1.09372,.98122,-.055322,.0753666,1.10948,.988253,-.0366825,.0498899,1.12394,.99482,-.0180389,.024611,1.13694,1.00001,229839e-9,-188283e-9,1.14919,.613867,-964198e-11,.479449,123452e-10,.621485,-244534e-9,.485399,313091e-9,.621429,-978202e-9,.485353,.00125245,.62112,-.00220004,.485114,.00281687,.621119,-.0039111,.485112,.00500783,.621122,-.00611091,.485112,.00782498,.621133,-.00879922,.485117,.0112687,.621152,-.0119756,.485125,.0153394,.621183,-.0156396,.485139,.0200382,.621227,-.0197898,.485158,.0253663,.621298,-.0244253,.485192,.0313261,.621388,-.0295441,.485233,.0379204,.621507,-.0351432,.485286,.0451523,.621693,-.0412198,.485378,.0530277,.621933,-.0477673,.485495,.0615522,.622232,-.0547574,.485635,.0707316,.622809,-.0619417,.485943,.0805883,.623407,-.069625,.486232,.0911267,.62406,-.077796,.486516,.102354,.624835,-.0863731,.486838,.114279,.625758,-.095251,.487188,.126902,.627043,-.104299,.487695,.140285,.628438,-.113724,.488163,.154397,.630325,-.123417,.488858,.169267,.632801,-.133137,.489754,.184941,.635784,-.143052,.490815,.20136,.639406,-.153132,.492048,.218643,.643872,-.163143,.49363,.236615,.6499,-.17333,.496009,.255449,.657201,-.183622,.498994,.275006,.666221,-.194019,.502888,.295354,.674419,-.204192,.505459,.316244,.683729,-.21406,.507771,.33849,.695584,-.222854,.510245,.363166,.708583,-.231315,.512293,.389071,.721233,-.238911,.512747,.415737,.735134,-.245657,.512482,.443331,.750179,-.251879,.511526,.471891,.765073,-.256911,.508935,.500892,.779794,-.261144,.504341,.530294,.794801,-.264316,.498515,.560144,.810339,-.266276,.491015,.590213,.824818,-.266981,.481126,.620865,.839375,-.265778,.468685,.652687,.853043,-.262748,.453925,.684759,.867335,-.258474,.437912,.716209,.88037,-.253187,.419648,.747508,.891711,-.246476,.39982,.77797,.902896,-.238735,.37879,.808586,.913601,-.22885,.355891,.838843,.923019,-.217656,.331773,.869014,.933432,-.205539,.307356,.898512,.939691,-.192595,.281321,.9269,.946938,-.178945,.255441,.955297,.952372,-.163587,.229013,.983231,.95909,-.147214,.203179,1.00971,.963675,-.13064,.17792,1.03438,.968247,-.113121,.152898,1.05625,.97001,-.0945824,.128712,1.07598,.974458,-.0755648,.103349,1.094,.980168,-.0571998,.0776731,1.1104,.987295,-.0377994,.0514445,1.12491,.994432,-.0186417,.025429,1.13851,.999975,542714e-9,-282356e-9,1.15108,.592656,-980249e-11,.486018,119532e-10,.598467,-247275e-9,.490781,301531e-9,.597934,-988317e-9,.490343,.00120517,.597903,-.00222366,.490319,.0027116,.597913,-.00395315,.490327,.00482077,.597919,-.00617653,.490329,.00753264,.597936,-.00889375,.490339,.0108478,.597956,-.0121043,.490347,.0147668,.597992,-.0158073,.490365,.0192905,.598032,-.0200017,.490382,.0244204,.598109,-.0246865,.49042,.0301593,.598215,-.0298594,.490474,.03651,.59833,-.0355167,.490524,.0434757,.598525,-.0416559,.490624,.0510629,.598778,-.0482692,.490753,.0592781,.599135,-.0553114,.49094,.0681304,.599802,-.062542,.491328,.0776467,.600361,-.0703638,.491598,.0878184,.60101,-.0786256,.491882,.0986573,.601811,-.0872962,.492232,.11018,.602861,-.0962284,.492684,.1224,.604167,-.10538,.493213,.135354,.605693,-.114896,.493799,.149034,.607682,-.124654,.494576,.163469,.610672,-.13456,.4959,.178747,.613313,-.144581,.496713,.194723,.617603,-.154703,.498499,.211617,.622174,-.16489,.500188,.229183,.628855,-.175164,.503072,.247786,.636963,-.185565,.506798,.267116,.644866,-.195911,.509719,.28702,.653741,-.206104,.512776,.307763,.664942,-.216447,.516812,.329631,.67633,-.22552,.519181,.353515,.690012,-.234316,.521681,.379226,.704243,-.242032,.523129,.405901,.719396,-.249172,.523768,.433585,.734471,-.255543,.522541,.462085,.750539,-.260697,.520217,.491233,.766365,-.26501,.516293,.521094,.781677,-.268409,.509708,.551014,.797132,-.270399,.501944,.581463,.812655,-.271247,.492025,.612402,.828592,-.270708,.480424,.643798,.844044,-.268085,.465955,.67682,.857305,-.263459,.448425,.708496,.87114,-.258151,.430243,.74046,.884936,-.251171,.410578,.771583,.895772,-.243305,.38862,.802234,.906961,-.234037,.365214,.833179,.917775,-.222714,.34116,.86353,.927883,-.210175,.31572,.893557,.936617,-.196925,.289159,.922976,.943384,-.182788,.261996,.951606,.949713,-.167965,.235324,.979958,.955818,-.151109,.208408,1.00765,.961344,-.133834,.182591,1.03329,.965469,-.115987,.156958,1.0557,.968693,-.09746,.132239,1.07583,.973165,-.0778514,.106195,1.09451,.979387,-.0585067,.0797669,1.11137,.98671,-.0390409,.0530263,1.12643,.994093,-.019408,.0263163,1.14016,1.00002,540029e-9,-194487e-9,1.15299,.574483,-989066e-11,.494533,114896e-10,.574478,-249127e-9,.494528,289403e-9,.574607,-996811e-9,.494637,.00115797,.574396,-.00224241,.494458,.00260498,.574377,-.00398632,.49444,.00463102,.574386,-.00622836,.494445,.00723623,.574401,-.0089683,.494453,.010421,.574419,-.0122056,.49446,.0141859,.574459,-.0159396,.494481,.0185322,.574525,-.0201692,.49452,.0234617,.574587,-.0248924,.494547,.0289762,.574697,-.0301074,.494604,.0350797,.574853,-.0358114,.494688,.0417767,.575027,-.041999,.494772,.0490718,.575294,-.0486618,.494915,.0569728,.575733,-.0557148,.495173,.0654955,.576356,-.0630489,.495537,.0746612,.576944,-.0709285,.495836,.0844615,.57765,-.0792723,.496177,.0949142,.578491,-.0880167,.496563,.10603,.579639,-.0969462,.497096,.117841,.580989,-.10622,.497684,.130367,.582587,-.115861,.498337,.143609,.584951,-.125605,.499414,.157625,.587602,-.135608,.500518,.172413,.59076,-.145742,.501767,.187999,.594992,-.155934,.503542,.20445,.600656,-.166303,.506135,.221764,.607816,-.176681,.509542,.24002,.61522,-.187071,.51263,.258992,.623702,-.197465,.516021,.278773,.634192,-.207816,.520422,.299377,.644936,-.218183,.524073,.320802,.657888,-.2278,.528049,.34384,.670666,-.236747,.52986,.36916,.685626,-.24484,.531892,.395867,.701304,-.252071,.532727,.423488,.717727,-.258714,.532146,.452201,.733914,-.264211,.529883,.481579,.750529,-.26859,.5259,.511558,.76747,-.272046,.51999,.542042,.785189,-.274225,.513083,.572799,.800954,-.275189,.502936,.603816,.816962,-.274946,.490921,.635461,.83336,-.272695,.47684,.6676,.848143,-.268223,.459405,.70051,.861818,-.262768,.440319,.732902,.876828,-.255872,.420123,.765084,.889312,-.247703,.398379,.796391,.900412,-.238381,.374496,.827333,.912251,-.227783,.349874,.858385,.921792,-.214832,.323181,.888652,.931273,-.200949,.296624,.917763,.940295,-.186537,.269211,.947878,.946812,-.171538,.241447,.977016,.953588,-.155254,.213829,1.00501,.958841,-.137156,.186807,1.03179,.963746,-.118699,.160706,1.05502,.966468,-.0998358,.135504,1.07568,.971178,-.0805186,.109131,1.09479,.97831,-.0599348,.0818293,1.1123,.985886,-.0399661,.0545872,1.12771,.994021,-.0198682,.0269405,1.14186,1.00009,271022e-9,-12989e-8,1.15514,.538716,-990918e-11,.486732,109675e-10,.550656,-250642e-9,.497518,277412e-9,.55057,-.00100265,.497441,.00110974,.550903,-.00225672,.497733,.00249779,.550568,-.00401046,.497438,.00443906,.550574,-.00626613,.49744,.00693637,.550591,-.0090226,.497449,.00998921,.550623,-.0122795,.497469,.0135984,.550667,-.0160361,.497495,.0177654,.550724,-.0202908,.497526,.0224915,.550792,-.0250421,.497557,.0277795,.550918,-.0302878,.49763,.0336334,.551058,-.0360241,.497701,.0400573,.551276,-.0422473,.497824,.0470585,.551551,-.0489441,.497977,.0546433,.552074,-.0559596,.498312,.0628367,.552681,-.0633978,.498679,.071646,.553324,-.0713176,.499031,.0810746,.554011,-.0797268,.499365,.091129,.55488,-.0885238,.499779,.101837,.556171,-.0974417,.500444,.113239,.557498,-.106841,.501025,.125316,.559299,-.116533,.501864,.138128,.561647,-.126298,.502967,.151695,.564347,-.136388,.504129,.16604,.567863,-.146576,.505713,.181207,.572569,-.156832,.507953,.197259,.578919,-.167323,.511186,.214258,.585387,-.177712,.514042,.232038,.593134,-.188184,.517484,.250733,.603295,-.198717,.522345,.270454,.613854,-.209177,.526751,.290807,.626092,-.219644,.531595,.312202,.637868,-.229494,.534721,.334435,.652458,-.238718,.538304,.359184,.666985,-.247061,.539875,.385637,.683301,-.254652,.541042,.41328,.69998,-.261376,.540735,.441903,.717824,-.267085,.539139,.471609,.734617,-.271465,.534958,.501446,.753663,-.27528,.53032,.532571,.770512,-.277617,.522134,.563641,.787356,-.278525,.51206,.595067,.806252,-.278512,.50119,.627226,.822061,-.277023,.486791,.659402,.838959,-.273175,.470467,.692874,.85379,-.267238,.450688,.725702,.868268,-.260327,.429741,.75832,.881994,-.251946,.407223,.790189,.893885,-.242432,.383214,.821625,.905118,-.231904,.357297,.853011,.916045,-.219545,.330733,.883773,.927614,-.205378,.303916,.914435,.936005,-.190388,.275941,.944502,.944533,-.1749,.247493,.974439,.950758,-.158588,.218996,1.00286,.957078,-.141027,.191559,1.0304,.962448,-.121507,.164457,1.05466,.964993,-.102068,.138636,1.0761,.970017,-.0822598,.111861,1.09541,.97661,-.062033,.0843438,1.11317,.985073,-.0409832,.0558496,1.12911,.993515,-.020146,.0275331,1.1438,1.00006,27329e-8,-107883e-9,1.15736,.525324,-999341e-11,.498153,105385e-10,.526513,-251605e-9,.499277,265329e-9,.526517,-.00100641,.499282,.0010613,.526588,-.00226466,.499337,.00238823,.526539,-.0040255,.499302,.00424535,.526547,-.00628954,.499306,.00663364,.526561,-.00905628,.499313,.00955337,.526593,-.0123253,.499334,.0130054,.526642,-.0160957,.499365,.0169911,.5267,-.0203661,.499396,.0215122,.526792,-.0251347,.499451,.0265718,.526904,-.0303985,.499511,.0321732,.527079,-.0361554,.499617,.0383231,.527285,-.0423982,.499731,.045026,.527602,-.0491121,.499924,.0522936,.528166,-.0561127,.500306,.0601528,.52879,-.0635988,.5007,.0686059,.529421,-.071581,.501048,.0776518,.530144,-.0799854,.501421,.0873148,.531062,-.0888032,.501884,.0976084,.532374,-.0977643,.50259,.108588,.533828,-.107197,.50329,.120234,.53581,-.116887,.504312,.132602,.538063,-.126755,.505365,.145721,.5409,-.136819,.506668,.159617,.544882,-.147117,.508731,.174369,.550238,-.157446,.511601,.190028,.556038,-.167988,.514431,.206587,.563031,-.178364,.517808,.224046,.571543,-.189007,.521937,.242503,.582255,-.199546,.527415,.261977,.59272,-.210084,.531682,.282162,.605648,-.220448,.537123,.303426,.61785,-.230593,.540664,.325323,.632223,-.240238,.544467,.348993,.648819,-.24887,.547594,.375462,.665825,-.256657,.54912,.403024,.683389,-.263711,.549294,.431773,.701495,-.269666,.547649,.461494,.719197,-.274169,.543786,.491623,.737906,-.278124,.538644,.522994,.756652,-.280632,.531057,.554775,.775279,-.281741,.521972,.586441,.792688,-.281652,.509613,.618596,.811894,-.280345,.496497,.651462,.827938,-.277128,.47968,.684023,.844837,-.271646,.460688,.718024,.859239,-.264397,.438872,.751207,.874088,-.256144,.41577,.784232,.887693,-.246311,.391369,.816191,.899402,-.235497,.365872,.847828,.910973,-.223631,.338618,.87934,.92204,-.209874,.310803,.910325,.930987,-.194265,.281802,.940695,.94,-.178125,.252836,.970958,.948018,-.161479,.224239,1.00078,.955141,-.144038,.195857,1.0288,.960513,-.124915,.168487,1.05371,.963964,-.104284,.141495,1.07596,.968713,-.0838732,.114437,1.09628,.975524,-.0635579,.0863105,1.11448,.98431,-.042291,.0574774,1.13069,.992916,-.0209131,.0284343,1.14568,.999926,743097e-9,-379265e-9,1.15955,.501042,-998428e-11,.498726,100306e-10,.502992,-252112e-9,.500665,253283e-9,.502417,-.00100791,.500092,.00101259,.502965,-.00226919,.500621,.00227978,.502318,-.00403109,.499994,.00405011,.502333,-.00629832,.500005,.00632868,.502362,-.00906907,.500027,.00911446,.502369,-.0123423,.500023,.0124078,.50243,-.0161178,.500066,.016211,.502493,-.0203937,.500103,.0205256,.502592,-.0251684,.500166,.0253548,.502707,-.0304389,.50023,.0307029,.502881,-.0362015,.500335,.0365753,.503124,-.0424507,.500488,.0429798,.503443,-.0491582,.500686,.0499268,.504083,-.0561476,.501155,.0574541,.504668,-.0636846,.501524,.0655408,.505319,-.0716834,.501904,.0742072,.50609,-.0800925,.502321,.0834699,.507122,-.0888425,.502896,.0933603,.508414,-.097855,.503603,.10391,.509955,-.107304,.504416,.115113,.512061,-.116921,.505565,.127054,.514419,-.12689,.506732,.139709,.517529,-.136934,.508338,.153173,.522085,-.147327,.510987,.167528,.526986,-.157612,.513527,.182708,.533122,-.168213,.516717,.198881,.540807,-.178688,.520832,.215986,.550687,-.189511,.52632,.234335,.560567,-.199998,.531009,.253375,.571698,-.210652,.535839,.273499,.584364,-.220917,.541091,.294355,.599066,-.23137,.546875,.316525,.614148,-.241206,.551306,.339671,.631157,-.250379,.555187,.36531,.647919,-.258397,.556595,.392767,.666112,-.265528,.556949,.421397,.686158,-.271827,.556617,.451433,.704838,-.27674,.552975,.482131,.723957,-.280733,.547814,.513458,.74262,-.283359,.53997,.545446,.762009,-.284541,.530422,.57775,.781314,-.284507,.518546,.610434,.799116,-.283309,.504178,.643178,.817604,-.280378,.48843,.676248,.83459,-.275619,.469457,.709698,.850974,-.26856,.447698,.744245,.866747,-.260094,.424791,.777695,.881412,-.249929,.399913,.810392,.8936,-.239137,.37308,.842872,.905943,-.226818,.345705,.874677,.916408,-.213699,.31706,.906257,.927215,-.198428,.288444,.936881,.935625,-.181643,.258329,.96795,.944076,-.164386,.228488,.998216,.951229,-.146339,.199763,1.02689,.958793,-.127709,.172153,1.0535,.963219,-.107244,.144989,1.07646,.967562,-.0857764,.11685,1.09675,.974866,-.0645377,.0880571,1.11576,.983353,-.0431732,.0587352,1.13227,.992503,-.0218356,.0294181,1.1478,1.00003,605203e-9,-231013e-9,1.16207,.482935,-101177e-10,.504695,968142e-11,.477554,-251521e-9,.499071,240676e-9,.477904,-.00100683,.499436,96342e-8,.478368,-.00226636,.499899,.0021687,.477977,-.00402719,.499513,.00385384,.477993,-.00629226,.499525,.0060221,.478011,-.00906011,.499536,.00867289,.478051,-.0123305,.499566,.0118074,.478089,-.016102,.499587,.0154269,.478171,-.0203736,.499645,.0195341,.478254,-.025143,.499692,.0241318,.47839,-.0304071,.499779,.0292247,.478588,-.0361631,.499911,.0348196,.478812,-.0424023,.500046,.0409231,.479208,-.0490724,.500326,.047552,.479841,-.0560722,.500805,.0547377,.480392,-.0636125,.501152,.0624607,.481068,-.0716134,.501561,.0707473,.481898,-.0800062,.502054,.0796118,.483022,-.0886568,.502728,.0890974,.484332,-.0977553,.503479,.0992099,.486126,-.107173,.504546,.10999,.488066,-.11677,.50557,.121476,.490521,-.126725,.506849,.133672,.494232,-.136793,.50911,.146731,.498302,-.147116,.511345,.160577,.503565,-.157446,.514344,.175335,.510902,-.168121,.518824,.191207,.519263,-.178799,.523666,.208058,.528204,-.189407,.528296,.225875,.538854,-.200145,.533724,.244782,.551278,-.210701,.539833,.264753,.565222,-.221303,.546131,.285745,.579403,-.231688,.551496,.307592,.595469,-.241718,.556809,.330582,.610929,-.250992,.559641,.354995,.629433,-.259602,.562379,.382471,.648504,-.267038,.563676,.411126,.66756,-.273388,.562092,.440924,.689143,-.278788,.560807,.472118,.709056,-.282783,.555701,.503774,.729855,-.285836,.548698,.536364,.748954,-.287078,.538544,.56895,.768373,-.287133,.526711,.601991,.78827,-.285839,.512511,.635403,.807465,-.283238,.496323,.668797,.825194,-.27906,.477638,.702584,.842203,-.272286,.456253,.736393,.857749,-.263854,.432412,.77096,.874799,-.253943,.407806,.80489,.887497,-.24237,.38033,.83771,.89966,-.230278,.352446,.870376,.911753,-.21646,.323268,.902256,.923011,-.202071,.294314,.933306,.932375,-.185519,.264104,.965177,.940537,-.167604,.234035,.996303,.948904,-.149068,.20412,1.0261,.955263,-.129539,.175431,1.05304,.960303,-.109932,.148116,1.07617,.965512,-.0880572,.119693,1.09742,.973466,-.0660548,.0901619,1.11721,.98284,-.0439228,.0599875,1.13436,.992216,-.0219588,.0298975,1.15006,.999946,119402e-9,-208547e-10,1.16471,.447827,-100414e-10,.491543,914833e-11,.454778,-251257e-9,.499172,22891e-8,.453519,-.00100342,.497787,914184e-9,.45357,-.00225776,.497847,.00205701,.453578,-.00401371,.497855,.00365705,.45357,-.00627107,.497841,.00571453,.453598,-.00902968,.497864,.00823019,.453627,-.0122888,.497882,.0112049,.453684,-.0160475,.497923,.0146405,.453764,-.0203044,.49798,.0185394,.453866,-.0250576,.498049,.0229054,.453996,-.0303028,.49813,.0277424,.454196,-.0360379,.498267,.0330587,.454457,-.0422521,.498445,.0388613,.454926,-.0488393,.498812,.0451767,.455525,-.0558653,.499272,.0520153,.456074,-.0633772,.499625,.0593754,.456752,-.0713606,.500049,.0672751,.457648,-.07971,.500615,.0757447,.458849,-.0883032,.501399,.0848231,.46029,-.0974095,.502293,.0945135,.462,-.106729,.503301,.104848,.464121,-.116354,.504533,.115884,.466889,-.126214,.506172,.127652,.470744,-.136324,.508667,.14024,.47488,-.146595,.510995,.153673,.480845,-.157027,.514832,.168053,.488262,-.167658,.519506,.183508,.496547,-.178343,.524347,.199948,.506254,-.188916,.52983,.217503,.517961,-.199975,.536357,.236272,.531484,-.210624,.543641,.256096,.545496,-.221227,.550048,.277085,.559497,-.231568,.555076,.298615,.575752,-.241698,.560541,.321547,.591999,-.251172,.564156,.345602,.610654,-.260178,.567607,.371851,.630484,-.268094,.56923,.40076,.651807,-.274661,.569779,.430801,.67239,-.280331,.566791,.461939,.693024,-.284501,.562007,.493854,.715473,-.287852,.555791,.526992,.736323,-.28929,.546345,.560102,.755771,-.289405,.534,.593543,.775424,-.2881,.519114,.627256,.795447,-.285562,.502543,.661464,.815319,-.281416,.484773,.695206,.831769,-.275523,.463445,.729044,.849464,-.267516,.440269,.764069,.866775,-.257584,.415049,.799089,.881252,-.245817,.388049,.831948,.894209,-.233127,.35889,.865526,.906922,-.219579,.329915,.89818,.919686,-.204491,.300441,.930013,.929044,-.188962,.269445,.962061,.938393,-.171079,.238402,.994214,.94661,-.15199,.208204,1.02533,.953095,-.131953,.178653,1.0529,.958644,-.111233,.150684,1.0771,.963925,-.0903098,.122359,1.09855,.971995,-.0680505,.0923342,1.11874,.981658,-.0448512,.0614195,1.13635,.991649,-.0221931,.0303582,1.15238,.999985,393403e-9,-111086e-9,1.16772,.396806,-971563e-11,.457671,842355e-11,.429186,-249421e-9,.495017,21625e-8,.429324,-998052e-9,.495173,865322e-9,.429175,-.00224487,.494999,.00194637,.429129,-.00399041,.494952,.00346004,.429153,-.00623476,.494974,.00540684,.429168,-.0089773,.494983,.00778714,.429207,-.0122175,.495012,.0106022,.429257,-.0159542,.495047,.0138535,.429338,-.0201864,.495106,.0175443,.429431,-.0249104,.495165,.0216774,.429587,-.0301252,.495279,.0262594,.429796,-.0358249,.495432,.0312968,.430065,-.0419972,.495621,.0367985,.430588,-.0485144,.496061,.042798,.43113,-.0555028,.496472,.0492914,.431743,-.0629852,.496904,.0562907,.432448,-.0709256,.497369,.0638056,.433414,-.0791942,.498032,.071885,.434638,-.0877346,.498854,.0805517,.43611,-.0968056,.499812,.0898047,.437859,-.106002,.500891,.0997142,.440017,-.115648,.502198,.110289,.443236,-.125427,.504389,.121644,.44697,-.135492,.506809,.133769,.451689,-.145746,.509858,.146787,.45811,-.156219,.514247,.160793,.465305,-.166834,.518816,.175791,.474085,-.177546,.524331,.191906,.484808,-.188262,.53104,.209199,.49732,-.199346,.538511,.227825,.509693,-.209951,.544554,.247269,.524367,-.220533,.551616,.267978,.539228,-.231082,.557368,.289672,.55644,-.241342,.563782,.31268,.574204,-.250964,.568851,.33651,.593388,-.260306,.57312,.362219,.613358,-.268667,.574916,.390322,.634512,-.275591,.575053,.420478,.65563,-.281328,.572404,.451614,.678265,-.285948,.568893,.484112,.70011,-.289408,.561878,.517348,.723005,-.291328,.55359,.551355,.743744,-.291418,.541099,.585109,.763949,-.290252,.526489,.619487,.784186,-.287648,.509496,.65404,.804304,-.283782,.491484,.688649,.823629,-.278067,.470517,.723133,.84094,-.270588,.44705,.757163,.857852,-.261188,.421252,.792816,.874934,-.249313,.394191,.827248,.888709,-.236492,.365359,.861074,.902589,-.222185,.336016,.894417,.914201,-.207314,.30527,.926825,.925978,-.191146,.274532,.9595,.93512,-.174135,.243393,.991583,.943656,-.155231,.212414,1.02356,.951719,-.134403,.182005,1.05239,.957164,-.113023,.153043,1.07754,.962656,-.0914493,.124186,1.09984,.970695,-.0694179,.0941654,1.12,.980749,-.0466199,.0629671,1.13849,.991205,-.0227032,.0311146,1.15494,.999884,632388e-9,-254483e-9,1.1706,.379821,-957289e-11,.460637,789337e-11,.405188,-247483e-9,.491396,204064e-9,.404796,-989434e-9,.490914,815853e-9,.40483,-.00222607,.490949,.00183559,.40473,-.00395723,.49084,.00326332,.404731,-.00618287,.490836,.00509945,.404768,-.00890258,.490871,.00734463,.404791,-.0121156,.490883,.00999992,.404857,-.0158214,.490938,.0130676,.404943,-.0200178,.491004,.0165503,.405059,-.0247027,.491093,.0204521,.405213,-.0298729,.491205,.0247788,.405399,-.0355226,.491333,.0295373,.405731,-.0416352,.491604,.034741,.406303,-.0480807,.492116,.0404255,.406814,-.0550458,.492506,.0465732,.407404,-.0624652,.492926,.0532058,.408149,-.0702958,.493442,.0603442,.409128,-.0784623,.494136,.0680297,.410408,-.087007,.495054,.0762786,.411813,-.0959639,.495962,.0851046,.413735,-.105075,.497257,.0945878,.416137,-.114646,.498882,.104725,.41934,-.124394,.501132,.11563,.423326,-.134328,.503883,.127325,.428419,-.14458,.50747,.139911,.43484,-.154979,.511964,.153481,.442641,-.165628,.517328,.168114,.452511,-.176365,.524258,.183995,.463473,-.187298,.531248,.200953,.475564,-.198244,.538367,.219176,.488664,-.208938,.545175,.238514,.504073,-.219599,.553227,.259129,.520832,-.230378,.560653,.280997,.538455,-.240703,.567523,.303821,.55709,-.250548,.573287,.327948,.576646,-.259964,.577795,.353362,.596705,-.268721,.580077,.380336,.618053,-.276054,.58018,.4101,.640303,-.282176,.578747,.44161,.662365,-.286931,.574294,.474106,.684542,-.290521,.567035,.507549,.707984,-.292672,.558687,.541853,.730913,-.293189,.547606,.576581,.752948,-.292199,.533471,.61172,.773452,-.289508,.516395,.646339,.794715,-.285716,.497873,.682131,.814251,-.280051,.476845,.716396,.833057,-.272873,.453449,.751503,.84959,-.263982,.427857,.786085,.867022,-.252745,.400335,.821355,.882277,-.239655,.371304,.85646,.895375,-.225386,.340397,.890828,.909347,-.209587,.310005,.923532,.921885,-.193433,.2796,.956419,.932127,-.176135,.247276,.989445,.941869,-.157872,.216186,1.02221,.949735,-.137577,.185602,1.05195,.956617,-.115285,.155767,1.07822,.961974,-.0928418,.126103,1.10149,.96972,-.0700592,.0956758,1.12207,.98012,-.0474671,.0643269,1.1408,.990825,-.0238113,.0320863,1.1577,.999876,381574e-9,-812203e-10,1.17403,.367636,-961342e-11,.469176,753287e-11,.380377,-244772e-9,.485434,191797e-9,.380416,-978857e-9,.485475,767015e-9,.380376,-.00220165,.485435,.00172522,.380419,-.00391408,.485487,.00306734,.380438,-.00611549,.485505,.00479332,.380462,-.00880558,.485525,.00690391,.380496,-.0119837,.485551,.00940039,.38056,-.0156487,.485605,.0122848,.38064,-.0197988,.485666,.0155601,.380767,-.0244324,.48577,.0192313,.380909,-.0295444,.485871,.0233032,.381142,-.0351321,.48606,.0277861,.381472,-.0411535,.486336,.0326939,.382015,-.0475408,.486833,.0380565,.382523,-.0544395,.487231,.0438615,.383129,-.061784,.487683,.0501332,.383952,-.0695085,.488313,.0568996,.38498,-.0775819,.489077,.0641952,.386331,-.0860443,.490113,.0720324,.387788,-.0948406,.491099,.0804379,.389808,-.103899,.492566,.0894899,.39252,-.113313,.494601,.0992098,.395493,-.123007,.496619,.109641,.399826,-.132859,.499912,.120919,.405341,-.143077,.504061,.133107,.411932,-.153465,.508905,.146263,.420591,-.164108,.515482,.160544,.43101,-.174893,.523191,.176123,.441881,-.185839,.53026,.192757,.453919,-.196633,.537295,.210535,.468715,-.207611,.546156,.229886,.485182,-.218517,.555173,.250543,.501926,-.229249,.562728,.27221,.51785,-.239481,.567494,.294892,.536947,-.249395,.573889,.318987,.557115,-.259,.578831,.344348,.577966,-.268075,.582055,.371223,.599489,-.276115,.583307,.399834,.62479,-.282523,.583902,.431415,.647504,-.287663,.57953,.464301,.670601,-.291538,.573103,.498123,.693539,-.293842,.563731,.532662,.717385,-.294681,.553169,.567925,.741533,-.293717,.539908,.603502,.762142,-.291156,.521902,.639074,.783014,-.28719,.502815,.674439,.805158,-.281773,.482598,.710497,.823646,-.274682,.458949,.7456,.841879,-.266184,.433129,.781085,.859515,-.255682,.406064,.816,.875335,-.242849,.376509,.851074,.890147,-.228329,.345502,.886473,.903144,-.212491,.31428,.920751,.916618,-.195695,.282994,.954606,.927953,-.178267,.251091,.988402,.937414,-.159549,.219107,1.02141,.946823,-.140022,.18896,1.05167,.954651,-.118154,.158667,1.07819,.959955,-.0946636,.128808,1.1025,.96858,-.0711792,.0973787,1.12391,.97938,-.0475046,.0650965,1.14322,.990498,-.024059,.0326267,1.16077,.999844,-512408e-10,112444e-9,1.17727,.316912,-934977e-11,.425996,695559e-11,.356423,-241372e-9,.479108,179562e-9,.356272,-965292e-9,.478897,71811e-8,.356262,-.00217182,.478894,.00161574,.356265,-.00386092,.478895,.00287261,.356278,-.0060324,.478905,.00448907,.356293,-.00868565,.478914,.00646572,.356346,-.0118207,.478965,.00880438,.356395,-.0154355,.479001,.0115066,.356484,-.019529,.479075,.0145762,.356609,-.0240991,.47918,.018018,.356766,-.0291413,.479305,.0218379,.357009,-.0346498,.479512,.0260454,.357424,-.0405462,.479909,.0306657,.357899,-.0468825,.480337,.0357054,.358424,-.0536887,.480771,.0411728,.359041,-.0609416,.481242,.0470841,.359903,-.0685239,.481943,.0534831,.360932,-.0764883,.482741,.0603795,.362196,-.0848364,.483688,.0678028,.363847,-.0935002,.484947,.0758086,.365972,-.102471,.486588,.0844173,.368741,-.111751,.488787,.0937199,.372146,-.121334,.491405,.103732,.377114,-.131147,.495604,.114608,.38226,-.141213,.499436,.126345,.389609,-.151632,.505334,.139116,.397925,-.162073,.51168,.152995,.407824,-.172819,.518876,.168071,.420014,-.183929,.527639,.184495,.434266,-.195032,.537588,.20232,.447352,-.205792,.544379,.221189,.463726,-.216704,.553422,.241616,.481406,-.227531,.562074,.263298,.498707,-.238017,.568227,.286116,.518039,-.247936,.574473,.3101,.538277,-.257437,.579191,.335401,.561166,-.266829,.584807,.362246,.583189,-.275329,.586476,.390609,.606024,-.28234,.585578,.420998,.632419,-.287924,.584496,.454357,.656128,-.291972,.577766,.488233,.679953,-.29456,.56875,.523248,.704654,-.295816,.558388,.559168,.729016,-.295157,.544826,.595326,.752062,-.292779,.528273,.631864,.773138,-.288681,.508482,.667793,.794869,-.283358,.487341,.704035,.815101,-.27608,.46354,.739925,.834212,-.26767,.438672,.775539,.852368,-.257397,.411239,.810895,.870207,-.245689,.3829,.846472,.884063,-.231452,.351496,.881788,.898284,-.215561,.31895,.917438,.912964,-.198208,.287367,.952422,.924666,-.180426,.254487,.987551,.934429,-.161525,.222226,1.02142,.943485,-.141197,.191143,1.05218,.9521,-.120085,.161112,1.07937,.957876,-.0975881,.130982,1.10403,.966943,-.0726842,.0990553,1.12616,.978313,-.0483705,.0662818,1.14619,.990048,-.0239072,.0329243,1.16413,.999984,461885e-9,-772859e-10,1.18099,.321287,-935049e-11,.455413,659662e-11,.332595,-237513e-9,.471437,167562e-9,.332729,-949964e-9,.471618,670192e-9,.332305,-.00213618,.471028,.00150712,.332326,-.00379765,.471055,.00267959,.332344,-.00593353,.471072,.00418751,.332356,-.00854349,.471077,.00603172,.332403,-.0116268,.471121,.00821362,.332461,-.0151824,.47117,.0107357,.332552,-.0192088,.471251,.0136014,.332657,-.0237024,.47133,.0168152,.332835,-.0286615,.471487,.0203853,.333083,-.0340765,.471708,.0243212,.333547,-.0398563,.47219,.0286518,.333989,-.0460916,.472587,.0333763,.334532,-.0527897,.473054,.0385084,.335167,-.0599284,.473568,.0440638,.33608,-.0673514,.474362,.0500962,.337146,-.0752237,.475231,.0566022,.338462,-.083418,.476282,.0636272,.34014,-.0919382,.477615,.0712153,.342341,-.100741,.479404,.079417,.345088,-.109905,.481618,.0882631,.349049,-.119369,.485081,.0978851,.353939,-.129033,.489317,.108336,.359893,-.139038,.494309,.119698,.366945,-.149411,.499983,.132024,.375814,-.159843,.507185,.145558,.387112,-.170664,.516392,.160433,.40023,-.181897,.526519,.176648,.412555,-.192785,.53423,.193922,.427023,-.203663,.542741,.212662,.443685,-.214695,.552066,.232944,.461499,-.225561,.560762,.254495,.480975,-.236257,.569421,.277531,.501,-.24639,.576101,.301724,.521691,-.256101,.581493,.327112,.543478,-.265289,.585221,.353917,.566094,-.273938,.587614,.381941,.589578,-.281679,.587991,.41172,.614583,-.287655,.585928,.444148,.641813,-.292228,.582092,.478617,.666189,-.295172,.57398,.51397,.690475,-.29648,.561676,.550118,.715543,-.296203,.548758,.586933,.740405,-.293999,.532792,.62384,.762183,-.28998,.512735,.660723,.786069,-.28478,.492402,.69807,.806812,-.277568,.469058,.734422,.826987,-.268951,.443017,.770946,.844588,-.259049,.415501,.80699,.863725,-.2471,.387328,.842107,.879137,-.234157,.356108,.878078,.894634,-.218719,.324315,.914058,.909162,-.201293,.291813,.949922,.92072,-.18267,.258474,.985337,.93158,-.163212,.225593,1.0205,.941238,-.142771,.193986,1.05273,.949293,-.120956,.163392,1.08075,.956226,-.0985743,.132934,1.10559,.96546,-.075118,.101255,1.12823,.977403,-.0497921,.0675441,1.149,.989648,-.0241574,.0334681,1.16765,1.00001,5762e-7,-184807e-9,1.18519,.303474,-916603e-11,.4542,61243e-10,.308894,-232869e-9,.462306,155592e-9,.309426,-931661e-9,.463093,622499e-9,.308643,-.0020949,.461933,.00139979,.308651,-.0037242,.461941,.00248874,.308662,-.00581873,.46195,.00388933,.308687,-.00837818,.461974,.00560247,.308728,-.0114016,.462011,.00762948,.308789,-.0148884,.462067,.00997326,.308882,-.0188369,.462151,.0126375,.309007,-.0232436,.462263,.0156271,.30918,-.0281054,.462417,.0189498,.309442,-.0334065,.462667,.0226167,.309901,-.0390589,.463162,.0266614,.310331,-.0452042,.463555,.0310715,.310858,-.0517735,.464019,.0358698,.311576,-.0587359,.464669,.0410848,.312436,-.0660383,.465406,.0467453,.313526,-.0737266,.466339,.0528718,.314903,-.0817574,.467504,.0595039,.316814,-.090167,.469226,.0666888,.318965,-.0987555,.470981,.0744658,.322077,-.107792,.473814,.082912,.325947,-.117098,.477241,.0920846,.331008,-.126602,.48184,.102137,.337893,-.136619,.488334,.113135,.345106,-.146838,.494415,.12511,.355111,-.157357,.503275,.138356,.365095,-.167955,.510966,.152686,.378344,-.179157,.521508,.16856,.391599,-.190143,.530455,.18561,.407786,-.20123,.541275,.204308,.425294,-.212456,.551784,.224623,.444021,-.223568,.561493,.246172,.463418,-.234154,.569886,.268979,.484077,-.244546,.577116,.293411,.505513,-.254301,.582914,.318936,.527672,-.263564,.587208,.345856,.550565,-.272332,.589277,.374054,.573656,-.280011,.588426,.403276,.59827,-.286924,.587504,.43474,.624731,-.291994,.583401,.468767,.652396,-.295159,.576997,.504411,.67732,-.296954,.565863,.54114,.703147,-.296877,.552316,.57816,.728715,-.295147,.536773,.616124,.752448,-.291275,.51771,.653885,.775169,-.285905,.496087,.691537,.799307,-.279064,.474232,.729251,.819482,-.270294,.447676,.766267,.837659,-.260032,.419656,.802616,.856903,-.248497,.391328,.838583,.873325,-.235252,.360285,.874711,.889788,-.221126,.329215,.91077,.904486,-.204304,.296392,.94653,.917711,-.185562,.262159,.983828,.928969,-.165635,.229142,1.01955,.939707,-.14442,.19673,1.05317,.948167,-.122147,.165095,1.0823,.955222,-.099098,.13451,1.10791,.964401,-.0755332,.102476,1.1312,.976605,-.0513817,.0689667,1.15218,.989085,-.0258499,.034506,1.17129,.999908,617773e-9,-271268e-9,1.18961,.285803,-905752e-11,.452348,572272e-11,.284689,-22732e-8,.450581,143626e-9,.285263,-910214e-9,.451482,575099e-9,.285302,-.00204784,.451553,.00129395,.285318,-.00364057,.451574,.0023006,.28533,-.00568813,.451585,.00359547,.285361,-.00819001,.451618,.00517934,.285397,-.0111458,.45165,.007054,.285447,-.0145536,.451688,.00922167,.285527,-.0184127,.451758,.0116869,.285688,-.0227207,.451929,.0144555,.28584,-.0274712,.452055,.0175341,.286136,-.0326278,.452369,.0209406,.286574,-.0381792,.452853,.0246965,.287012,-.0441879,.453272,.0287996,.287542,-.0506096,.453752,.033268,.288299,-.0573634,.454488,.0381504,.289186,-.0645458,.455294,.0434447,.290302,-.0720405,.456301,.0491973,.291776,-.0799046,.457648,.0554453,.29372,-.088117,.459483,.0622311,.296052,-.0965328,.461571,.0695992,.299563,-.105409,.465085,.077658,.30335,-.114553,.468506,.0864176,.309167,-.123917,.474423,.0961078,.31529,-.13381,.47995,.106643,.324163,-.144021,.488592,.118322,.333272,-.154382,.496461,.131133,.344224,-.165015,.50562,.145208,.357733,-.176168,.516719,.16073,.373046,-.187468,.528513,.177807,.38788,-.198488,.537713,.196072,.405133,-.209545,.547999,.21605,.423845,-.220724,.55759,.237484,.443777,-.231518,.566246,.26039,.464824,-.242035,.574326,.284835,.486635,-.251898,.58037,.310518,.51012,-.261304,.58568,.337678,.535301,-.270384,.590197,.366242,.559193,-.27841,.590569,.395873,.583544,-.285325,.588161,.426857,.608834,-.291113,.584249,.459477,.635753,-.294882,.57763,.494734,.664367,-.297088,.569479,.532023,.689688,-.297364,.555064,.569629,.715732,-.295949,.539522,.608124,.741307,-.292259,.521613,.646231,.764949,-.287063,.49969,.684938,.788599,-.28012,.476747,.723548,.81048,-.27153,.45116,.761135,.831372,-.261289,.424101,.798916,.850092,-.249559,.39443,.835952,.867777,-.236348,.363849,.871606,.884632,-.221569,.332477,.907843,.90047,-.20618,.300667,.944187,.914524,-.188771,.266552,.981371,.926892,-.168362,.232349,1.01841,.937951,-.146761,.199359,1.05308,.947236,-.123813,.1675,1.0839,.954367,-.099984,.136166,1.11047,.963907,-.0759278,.103808,1.13414,.976218,-.0511367,.0697061,1.15575,.988772,-.0267415,.0352529,1.17531,.999888,-520778e-9,289926e-9,1.19389,.263546,-883274e-11,.441896,526783e-11,.262352,-221849e-9,.439889,132311e-9,.262325,-886683e-9,.439848,528824e-9,.26228,-.00199476,.439765,.00118975,.262372,-.00354671,.439922,.00211568,.26239,-.00554141,.439941,.00330652,.262412,-.00797888,.439961,.00476346,.262453,-.0108584,.440002,.00648818,.262528,-.0141788,.440085,.0084835,.262615,-.017938,.440166,.0107533,.262744,-.0221346,.440291,.0133044,.262939,-.026762,.440493,.0161445,.263277,-.0317573,.440889,.0192974,.26368,-.0371832,.441338,.0227699,.264106,-.0430371,.441753,.0265698,.264624,-.0493035,.442227,.0307178,.265378,-.0558669,.442985,.0352616,.266253,-.0628718,.443795,.0401968,.267478,-.0701569,.445008,.04559,.269062,-.077845,.446599,.0514539,.270926,-.0857941,.448349,.0578382,.273693,-.0940773,.451221,.0648363,.276746,-.102704,.454097,.0724389,.281693,-.111735,.459517,.0808744,.287335,-.121004,.46531,.0901551,.29448,-.130734,.472605,.100371,.30257,-.140777,.480251,.111644,.312465,-.15111,.489444,.124111,.324856,-.16189,.500919,.137979,.33774,-.172946,.511317,.153163,.35255,-.184152,.522684,.169817,.367786,-.19522,.53248,.187886,.385474,-.20632,.543326,.207634,.404976,-.217744,.554109,.229165,.425203,-.228691,.563395,.252068,.446704,-.239299,.571565,.276471,.468951,-.249348,.577935,.302323,.493487,-.258933,.584309,.329882,.517861,-.268009,.58773,.358525,.543309,-.276238,.589612,.388585,.569704,-.28356,.589294,.419787,.594871,-.289497,.585137,.452114,.622555,-.294452,.580356,.486466,.651167,-.296918,.57185,.523079,.677332,-.297647,.558428,.5611,.703718,-.296321,.542232,.599592,.730262,-.293339,.524541,.639138,.754304,-.288036,.502691,.677978,.778051,-.281018,.479212,.716537,.801557,-.272414,.454071,.75586,.822559,-.262419,.425952,.794477,.843051,-.250702,.397313,.832664,.86232,-.237264,.366534,.869876,.879044,-.222716,.334816,.906973,.896362,-.206827,.303143,.943558,.910342,-.189659,.269699,.979759,.924119,-.171108,.236411,1.01718,.935374,-.149579,.202224,1.05289,.944295,-.126295,.16989,1.08496,.952227,-.101511,.138089,1.11256,.962041,-.0766392,.105053,1.1375,.97528,-.0511967,.070329,1.15983,.988476,-.025463,.0351268,1.17987,.999962,286808e-10,145564e-10,1.19901,.227089,-841413e-11,.404216,472707e-11,.239725,-215083e-9,.426708,120833e-9,.239904,-860718e-9,.427028,483555e-9,.239911,-.00193661,.427039,.00108806,.239914,-.00344276,.42704,.00193457,.239933,-.00537907,.427064,.00302363,.239944,-.00774482,.427065,.00435604,.239993,-.01054,.427122,.00593398,.240052,-.0137626,.427179,.00775987,.240148,-.0174115,.427279,.00983854,.240278,-.021484,.42741,.0121763,.240472,-.0259729,.427618,.0147827,.240839,-.0308131,.428086,.0176837,.241201,-.0360893,.428482,.0208775,.241626,-.0417723,.428907,.0243821,.242207,-.0478337,.42952,.0282228,.24298,-.0542199,.430332,.0324333,.243881,-.0610015,.431222,.0370252,.245123,-.0680874,.432512,.0420535,.24667,-.0755482,.434088,.0475414,.248779,-.0832873,.436323,.0535542,.251665,-.0913546,.439509,.0601716,.255305,-.0998489,.443478,.0674282,.260049,-.108576,.448713,.0754673,.266192,-.117754,.455524,.084339,.273158,-.127294,.4627,.0941683,.282131,-.137311,.472068,.10515,.293332,-.147736,.483565,.117402,.304667,-.158357,.493702,.130824,.317785,-.169274,.504708,.145724,.333245,-.180595,.517107,.16215,.349843,-.191892,.528849,.180149,.367944,-.203168,.540301,.199746,.387579,-.214443,.551514,.221047,.408247,-.225624,.560906,.243981,.43014,-.236422,.56959,.268513,.452669,-.24654,.576098,.294409,.476196,-.256157,.580925,.322002,.501157,-.265289,.584839,.351052,.527632,-.273671,.587614,.3812,.555754,-.281254,.589119,.412994,.581682,-.287448,.585204,.445498,.608196,-.292614,.579006,.479505,.635661,-.296068,.571297,.514643,.664999,-.297395,.560855,.552213,.691039,-.296645,.544525,.591365,.7179,-.293785,.526535,.630883,.744059,-.289089,.50545,.670932,.76863,-.282239,.482514,.710904,.793273,-.273688,.457246,.750259,.814731,-.26328,.428872,.78948,.835603,-.251526,.399384,.828597,.85489,-.238339,.368811,.866892,.872828,-.223607,.336617,.90563,.889462,-.207538,.303997,.943538,.904929,-.190297,.270812,.980591,.919101,-.172034,.237453,1.01935,.930536,-.152058,.204431,1.05498,.941223,-.129515,.172495,1.08717,.94982,-.104263,.140175,1.11551,.960592,-.0781944,.106465,1.14098,.974629,-.051688,.0711592,1.16418,.98811,-.0253929,.0354432,1.18465,1.00004,804378e-9,-330876e-9,1.20462,.214668,-821282e-11,.406619,433582e-11,.218053,-208144e-9,.413025,109887e-9,.217987,-832212e-9,.412901,439362e-9,.217971,-.00187246,.412876,988623e-9,.217968,-.00332855,.41286,.00175772,.217985,-.00520055,.412882,.00274729,.218014,-.00748814,.412916,.00395842,.218054,-.0101901,.412957,.00539274,.218106,-.0133057,.413005,.00705348,.218217,-.0168342,.413139,.00894581,.218338,-.0207707,.413258,.0110754,.21855,-.0251001,.413509,.0134551,.218913,-.0297861,.413992,.0161081,.219265,-.0348956,.414383,.0190307,.219696,-.0403909,.414839,.0222458,.220329,-.0462003,.415567,.025792,.220989,-.0524208,.41621,.0296637,.222027,-.058948,.417385,.0339323,.223301,-.0658208,.418779,.0386055,.224988,-.0730347,.420665,.0437355,.227211,-.0805274,.423198,.0493844,.230131,-.088395,.426566,.0556135,.233908,-.0966208,.43091,.0624829,.239092,-.105223,.437148,.0701636,.245315,-.11424,.444302,.0786949,.253166,-.12368,.453262,.0882382,.262374,-.133569,.463211,.0988682,.273145,-.143836,.474271,.110727,.285512,-.154577,.4863,.123945,.299512,-.165501,.498817,.138581,.314287,-.176698,.510341,.154676,.331083,-.188066,.522583,.172459,.349615,-.199597,.534879,.191979,.369318,-.210843,.546083,.21309,.390377,-.222068,.5562,.235998,.412411,-.233059,.564704,.260518,.435715,-.24357,.572314,.286795,.461196,-.253356,.579395,.314559,.485587,-.262362,.581985,.343581,.511908,-.270895,.584347,.374367,.539798,-.278452,.58505,.406015,.567974,-.284877,.583344,.439168,.594303,-.290124,.577348,.473005,.622951,-.294183,.570751,.508534,.652404,-.296389,.561541,.544764,.679291,-.296605,.546426,.582927,.706437,-.294095,.528599,.622681,.734485,-.28978,.508676,.663567,.758841,-.283363,.484768,.704092,.78537,-.275015,.460434,.745101,.807315,-.264689,.432166,.784712,.8271,-.252597,.401807,.824241,.849191,-.239154,.371458,.863803,.867046,-.224451,.338873,.903063,.8852,-.208342,.306175,.942763,.901771,-.190684,.272759,.981559,.915958,-.172105,.239306,1.02048,.928046,-.152214,.206071,1.05765,.939961,-.130247,.17367,1.08999,.948711,-.10672,.142201,1.11829,.959305,-.0808688,.108454,1.14467,.973009,-.0539145,.0728109,1.16839,.987631,-.0262947,.0360625,1.19004,.999978,.00132758,-559424e-9,1.21058,.193925,-793421e-11,.391974,392537e-11,.196746,-200315e-9,.397675,991033e-10,.19667,-801099e-9,.397521,396342e-9,.196633,-.00180246,.397445,891829e-9,.196654,-.00320443,.397482,.00158582,.196659,-.00500647,.39748,.00247867,.196683,-.0072086,.397506,.00357167,.196728,-.00981001,.397562,.00486675,.196792,-.0128096,.397633,.00636707,.19689,-.0162055,.397746,.00807752,.197017,-.0199943,.397884,.0100052,.19729,-.024139,.39827,.0121691,.197583,-.0286671,.398639,.0145755,.197927,-.0335858,.399034,.0172355,.198383,-.0388806,.399554,.0201718,.199002,-.0444736,.400289,.0234194,.199739,-.0504583,.401111,.026984,.200784,-.056729,.402349,.0309217,.202075,-.0633643,.403841,.0352496,.203898,-.0703247,.406076,.0400313,.206199,-.0775565,.408841,.0453282,.209252,-.085184,.41259,.0511794,.213638,-.0931994,.418288,.0577459,.21881,-.101617,.424681,.0650508,.225642,-.11052,.433429,.0732759,.233717,-.119772,.442897,.0824683,.242823,-.129505,.452888,.0927484,.254772,-.139906,.466407,.104417,.266603,-.150402,.477413,.117211,.28073,-.161395,.490519,.131598,.295399,-.172465,.50201,.147407,.312705,-.183982,.515311,.165031,.331335,-.195532,.52786,.184336,.351037,-.206971,.5392,.205361,.372175,-.218117,.54941,.228043,.394548,-.229327,.558642,.25267,.419598,-.240052,.567861,.279071,.443922,-.249937,.573332,.306882,.471495,-.259407,.58013,.33661,.496769,-.267749,.580564,.367328,.524951,-.275524,.581696,.399753,.55318,-.282148,.579885,.433134,.581577,-.287533,.575471,.467534,.609231,-.291612,.567445,.502943,.637478,-.293911,.557657,.53871,.667795,-.295096,.546535,.576568,.694272,-.294073,.529561,.614929,.722937,-.290386,.510561,.655909,.749682,-.284481,.487846,.697663,.774754,-.276188,.462487,.738515,.799301,-.266215,.43481,.779802,.820762,-.254116,.404879,.820045,.843231,-.240393,.374559,.860294,.861857,-.225503,.341582,.900965,.880815,-.209382,.308778,.941727,.89766,-.19155,.275232,.980916,.912926,-.172346,.240938,1.02162,.926391,-.151799,.207223,1.0597,.938429,-.129968,.17484,1.09291,.947834,-.10651,.142984,1.12248,.958432,-.0824098,.109902,1.149,.972402,-.0565242,.0744454,1.1733,.987191,-.028427,.0373794,1.19538,.999975,385685e-10,-4203e-8,1.21676,.178114,-766075e-11,.385418,354027e-11,.176074,-191966e-9,.381002,887135e-10,.17601,-767549e-9,.380861,354715e-9,.17598,-.00172696,.380798,798168e-9,.175994,-.00307012,.380824,.00141928,.176017,-.00479684,.380858,.00221859,.176019,-.00690648,.380839,.00319714,.176072,-.00939888,.380913,.0043572,.176131,-.0122726,.380979,.005702,.176239,-.0155264,.38112,.00723689,.176371,-.0191551,.381272,.00896907,.176638,-.023117,.381669,.0109194,.176912,-.0274633,.382015,.0130903,.177279,-.032173,.382476,.0154949,.17774,-.0372219,.383041,.0181669,.178344,-.0426132,.38378,.0211209,.179153,-.0483309,.384773,.0243899,.180197,-.0543447,.386076,.0280062,.181581,-.0607122,.387809,.032004,.18344,-.0673855,.390205,.036453,.186139,-.0743989,.393944,.0414162,.189432,-.0817731,.39832,.0469394,.193795,-.0895464,.404188,.0531442,.199641,-.0978264,.4121,.0601374,.206679,-.106499,.421425,.0680078,.214865,-.115654,.431504,.076919,.224406,-.125268,.442526,.0868835,.235876,-.135475,.455465,.0981875,.248335,-.146023,.4681,.110759,.262868,-.157016,.482069,.124885,.278962,-.168245,.496182,.140645,.295082,-.17958,.507401,.157838,.313738,-.191227,.520252,.17695,.333573,-.202718,.531708,.197817,.356433,-.214424,.544509,.220785,.378853,-.225492,.55373,.245306,.402717,-.236236,.561348,.271593,.428375,-.246568,.568538,.299776,.454724,-.255941,.573462,.329433,.482291,-.264511,.576356,.360598,.509706,-.272129,.576446,.393204,.538805,-.278979,.575298,.427227,.568919,-.284528,.572154,.462157,.596804,-.288801,.564691,.497997,.625987,-.291334,.555134,.534467,.656414,-.292722,.545051,.571736,.683916,-.292185,.528813,.610158,.711809,-.290043,.51106,.649061,.739547,-.285246,.490103,.690081,.766914,-.277647,.465523,.732554,.791375,-.267603,.437718,.773982,.814772,-.256109,.40882,.81609,.836691,-.242281,.377823,.856849,.856984,-.227155,.34496,.898363,.876332,-.210395,.311335,.939471,.894988,-.192612,.277703,.980799,.911113,-.173236,.243019,1.02215,.924092,-.152258,.209037,1.06139,.936828,-.129575,.175909,1.09635,.946869,-.10594,.143852,1.12707,.958284,-.081318,.110289,1.15419,.972325,-.0556133,.0747232,1.17909,.986878,-.0297899,.0383149,1.20163,.999936,-.00197169,912402e-9,1.22338,.151174,-720365e-11,.351531,309789e-11,.155594,-18279e-8,.361806,78608e-9,.156099,-731569e-9,.362982,314615e-9,.156053,-.00164578,.362869,707845e-9,.156093,-.0029261,.362961,.00125884,.156099,-.00457155,.362959,.00196783,.15612,-.00658224,.362982,.00283622,.156168,-.00895774,.363048,.00386625,.156221,-.0116962,.363101,.00506109,.156324,-.0147973,.363241,.00642675,.156476,-.0182503,.363448,.00797175,.156731,-.0220266,.36384,.00971484,.156994,-.026176,.364179,.0116575,.157341,-.0306701,.36462,.0138207,.157867,-.0354591,.365364,.0162356,.15846,-.0406141,.366111,.0189092,.159308,-.0460519,.367248,.021885,.160426,-.0518096,.368767,.0252004,.161877,-.0578906,.370745,.0288825,.163995,-.0642812,.373831,.0330139,.16655,-.0710067,.377366,.0376283,.170237,-.0781522,.382799,.0428493,.175096,-.0857172,.389915,.0487324,.181069,-.0938025,.398487,.0554214,.188487,-.102363,.408799,.0630189,.197029,-.111343,.419991,.071634,.206684,-.120812,.431455,.0812797,.218698,-.131033,.445746,.0923651,.230726,-.141373,.457471,.104545,.245516,-.152387,.472388,.118449,.261551,-.163628,.486671,.133923,.277437,-.174814,.49762,.150849,.296662,-.186713,.51162,.169924,.31795,-.198513,.525435,.190848,.339422,-.210119,.536267,.213504,.362143,-.221354,.545982,.237947,.387198,-.23224,.555364,.264427,.412349,-.24257,.561489,.292519,.439274,-.252284,.566903,.322561,.466779,-.261023,.569614,.353952,.496011,-.26899,.571589,.387278,.524964,-.275498,.570325,.421356,.556518,-.281449,.568792,.457314,.584363,-.285526,.560268,.493199,.614214,-.28844,.55205,.530276,.645684,-.289777,.541906,.56855,.673446,-.289722,.526464,.606927,.701924,-.287792,.509872,.645945,.73037,-.284315,.490649,.685564,.757405,-.278804,.467964,.726511,.784025,-.269543,.441468,.768601,.808255,-.258117,.41216,.811321,.830739,-.244728,.380606,.853496,.851914,-.229428,.348111,.895374,.872586,-.212508,.314732,.937674,.891581,-.194025,.280338,.979869,.907641,-.174711,.245203,1.02253,.922233,-.153509,.21077,1.06371,.935878,-.130418,.177399,1.09972,.946338,-.105558,.144507,1.13124,.957265,-.080059,.110508,1.15973,.971668,-.0539766,.0742311,1.18515,.9866,-.0277101,.0375224,1.20858,1.00021,-515531e-9,135226e-9,1.23135,.137468,-686011e-11,.345041,273315e-11,.13703,-173378e-9,.343936,690761e-10,.136986,-693048e-9,.34383,276126e-9,.136964,-.00155931,.343761,621337e-9,.137003,-.00277211,.343863,.00110494,.137012,-.00433103,.343868,.00172744,.137043,-.00623606,.343916,.00249022,.13709,-.0084868,.343986,.00339559,.137145,-.0110814,.344045,.00444687,.137242,-.0140187,.344177,.00565007,.137431,-.0172713,.344491,.00701868,.137644,-.0208605,.344805,.00856042,.13791,-.024792,.345172,.0102863,.138295,-.0290461,.345734,.0122185,.138764,-.0335957,.346371,.0143771,.139415,-.038467,.347298,.0167894,.140272,-.0436176,.348527,.0194895,.141457,-.0491016,.350276,.0225043,.14303,-.0548764,.352646,.0258962,.145289,-.0610096,.356206,.0297168,.148502,-.0674777,.361488,.0340562,.152188,-.074345,.367103,.0389534,.157359,-.0817442,.375247,.0445541,.16379,-.0896334,.385064,.0509535,.171376,-.098005,.396082,.0582611,.179901,-.106817,.407418,.06654,.189892,-.116239,.420031,.075994,.201838,-.12627,.434321,.0867239,.214311,-.136701,.447631,.0987517,.228902,-.147616,.462046,.112353,.245107,-.158871,.476942,.127605,.262292,-.170261,.490285,.144469,.281215,-.182017,.503783,.163282,.301058,-.193729,.515505,.183873,.322752,-.205512,.52682,.206466,.347547,-.217214,.539473,.231194,.370969,-.227966,.546625,.257288,.397533,-.238555,.55472,.285789,.42398,-.248278,.559468,.315746,.452928,-.257422,.564095,.347724,.482121,-.265306,.565426,.380922,.510438,-.272043,.563205,.415639,.541188,-.277614,.561087,.451702,.571667,-.281927,.554922,.48845,.602432,-.285015,.546838,.526442,.634126,-.286512,.537415,.564896,.662816,-.286388,.522906,.604037,.692411,-.284734,.507003,.643795,.720946,-.281297,.488398,.68298,.748293,-.276262,.466353,.723466,.776931,-.269978,.443573,.764565,.801065,-.260305,.415279,.805838,.825843,-.247426,.384773,.849985,.84807,-.232437,.352555,.893174,.869122,-.215806,.318642,.936564,.888963,-.197307,.28381,.980253,.905547,-.177203,.247888,1.02463,.918554,-.155542,.212904,1.06714,.931395,-.131948,.1787,1.10451,.941749,-.106723,.145902,1.13694,.954551,-.0804939,.111193,1.1666,.970279,-.0534239,.0744697,1.19249,.986117,-.0257452,.0368788,1.21665,.999938,.00190634,-.0010291,1.23981,.118493,-647439e-11,.32272,23772e-10,.118765,-163023e-9,.323456,598573e-10,.118772,-65212e-8,.323477,239447e-9,.118843,-.00146741,.323657,538881e-9,.118804,-.00260846,.323553,95826e-8,.118826,-.00407576,.323595,.00149845,.118846,-.00586826,.323617,.00216047,.118886,-.00798578,.32367,.00294679,.118947,-.0104273,.323753,.00386124,.119055,-.0131909,.323922,.00490999,.119241,-.0162444,.324251,.00610804,.11944,-.0196339,.324544,.00745805,.119739,-.0233378,.325026,.00897805,.12011,-.0273179,.325586,.0106895,.120571,-.0316143,.326231,.0126073,.12124,-.0361939,.327264,.0147654,.122162,-.0410511,.328733,.0172001,.123378,-.0462233,.330659,.0199375,.125183,-.0517109,.333754,.0230498,.127832,-.0575652,.338507,.026597,.130909,-.0637441,.343666,.0306345,.135221,-.0704302,.351063,.035273,.14082,-.0776364,.360604,.0406137,.146781,-.0852293,.369638,.0466788,.155121,-.0935351,.3827,.0537628,.16398,-.102234,.39522,.0617985,.173926,-.111465,.40793,.07097,.185137,-.121296,.42105,.0813426,.19826,-.13169,.435735,.0931596,.212938,-.142614,.450932,.106547,.229046,-.153884,.465726,.121575,.246246,-.165382,.479461,.138286,.264637,-.176806,.492106,.15666,.284959,-.188793,.504774,.17728,.308157,-.200763,.518805,.19988,.330951,-.21239,.528231,.224293,.3549,-.223521,.536376,.250541,.381502,-.234169,.544846,.278902,.409529,-.244077,.551717,.309227,.437523,-.253363,.55517,.341426,.467624,-.261659,.557772,.37518,.497268,-.268498,.556442,.41007,.528294,-.274018,.553915,.446445,.559053,-.278169,.549153,.483779,.589329,-.281229,.539878,.522249,.622503,-.282902,.53162,.561754,.652382,-.282815,.518119,.601544,.681847,-.281247,.502187,.641574,.712285,-.277986,.484824,.682633,.740094,-.273017,.463483,.723426,.768478,-.266692,.441299,.763747,.794556,-.258358,.415238,.805565,.819408,-.248807,.386912,.847254,.843411,-.236214,.356165,.891091,.862397,-.219794,.320562,.936174,.883113,-.201768,.285322,.982562,.90023,-.181672,.249713,1.02862,.915192,-.159279,.214546,1.07163,.928458,-.134725,.180285,1.10995,.94069,-.10913,.147119,1.14354,.953409,-.0821315,.112492,1.17372,.969537,-.0542677,.0752014,1.20043,.985612,-.0259096,.0370361,1.22528,.999835,.00298198,-.00151801,1.24959,.10097,-602574e-11,.300277,202619e-11,.101577,-152164e-9,.302077,511662e-10,.101572,-608889e-9,.302066,204751e-9,.101566,-.00136997,.302047,460753e-9,.101592,-.00243557,.302114,819497e-9,.101608,-.0038053,.30214,.00128154,.101627,-.00547906,.30216,.0018483,.101669,-.00745647,.302224,.00252223,.101732,-.00973615,.302318,.00330716,.101844,-.0123097,.302513,.00421061,.102025,-.0151681,.30285,.00524481,.102224,-.0183334,.303166,.0064154,.102515,-.0217819,.303654,.00774063,.102886,-.0255067,.304243,.0092398,.103395,-.029514,.305089,.0109339,.104109,-.0337912,.306301,.0128561,.105074,-.0383565,.30798,.0150338,.10654,-.0432132,.310726,.0175228,.108478,-.0484244,.314351,.0203648,.111015,-.0539339,.319032,.0236325,.114682,-.0598885,.32605,.0274188,.11911,-.0663375,.334109,.0317905,.124736,-.0733011,.344013,.0368502,.131479,-.0807744,.355358,.0427104,.139283,-.0888204,.367614,.0494788,.148054,-.0973394,.380072,.0572367,.159037,-.10665,.395678,.0662704,.169794,-.116221,.40795,.0763192,.18314,-.126632,.423546,.087956,.197515,-.137383,.438213,.101042,.213514,-.148641,.453248,.115827,.23065,-.160117,.46688,.132283,.249148,-.171807,.479962,.150644,.270219,-.183695,.494618,.171073,.292338,-.195574,.506937,.193378,.314999,-.207205,.516463,.217585,.340991,-.218955,.528123,.24428,.367982,-.229917,.537025,.272784,.39432,-.239737,.541627,.302742,.423364,-.249048,.546466,.335112,.453751,-.257329,.549466,.369032,.48416,-.264623,.549503,.404577,.515262,-.270411,.547008,.441337,.547036,-.274581,.542249,.479162,.576614,-.277266,.533015,.517904,.611143,-.279144,.525512,.558508,.640989,-.279001,.51154,.598995,.671182,-.277324,.495641,.639935,.700848,-.273908,.477526,.681017,.729862,-.269063,.457955,.722764,.758273,-.262282,.434846,.764349,.784121,-.254281,.409203,.806206,.809798,-.24505,.382694,.848617,.834953,-.233861,.354034,.892445,.856817,-.221308,.321764,.936263,.877609,-.205996,.288118,.982401,.897489,-.186702,.253277,1.02975,.913792,-.164618,.217963,1.07488,.92785,-.140023,.183221,1.11487,.940378,-.11328,.149385,1.14947,.95273,-.0853958,.114152,1.1807,.969059,-.0568698,.0769845,1.20912,.985574,-.0276502,.0381186,1.23498,.999943,.00239052,-.00126861,1.25987,.0852715,-560067e-11,.279021,171162e-11,.0854143,-140871e-9,.279483,430516e-10,.0854191,-563385e-9,.2795,172184e-9,.0854188,-.00126753,.279493,387464e-9,.0854229,-.00225337,.279501,68918e-8,.0854443,-.00352086,.279549,.00107803,.0854697,-.00506962,.279591,.00155536,.0855093,-.00689873,.279652,.00212354,.0855724,-.00900821,.279752,.00278703,.0856991,-.0113799,.280011,.0035551,.085855,-.0140314,.280297,.00443449,.0860682,-.016963,.280682,.00543636,.086344,-.0201438,.281159,.0065788,.0867426,-.0235999,.281886,.00787977,.087239,-.0273069,.282745,.0093606,.0879815,-.031269,.284139,.011056,.0891258,-.035531,.28647,.0130065,.0906909,-.0400947,.289708,.0152495,.0927624,-.0449638,.293904,.0178454,.0958376,-.0502427,.300471,.0208915,.0995827,-.0559514,.30806,.0244247,.104526,-.0622152,.317874,.0285721,.110532,-.0690046,.329332,.0334227,.117385,-.0763068,.341217,.0390466,.12522,-.084184,.353968,.0455786,.134037,-.0925248,.366797,.0530773,.144014,-.101487,.380209,.0617424,.156013,-.111273,.395956,.071777,.168872,-.121431,.41053,.0830905,.183089,-.132105,.425073,.0959341,.198763,-.143286,.439833,.110448,.216159,-.154841,.454507,.126769,.234859,-.166588,.468368,.14495,.255879,-.178626,.482846,.165233,.27677,-.190218,.493489,.187217,.301184,-.202227,.506549,.211659,.325852,-.213764,.5158,.237922,.352824,-.22487,.525442,.26632,.380882,-.235246,.532487,.296691,.410137,-.244847,.537703,.329179,.439787,-.253122,.540361,.363135,.472291,-.260517,.542734,.399222,.501856,-.266519,.538826,.436352,.534816,-.270905,.535152,.474505,.565069,-.273826,.525979,.513988,.597154,-.275333,.516394,.554852,.630473,-.275314,.506206,.596592,.660574,-.273323,.489769,.638117,.692015,-.270008,.472578,.680457,.720647,-.265001,.452134,.723008,.750528,-.258311,.430344,.765954,.777568,-.250046,.405624,.809012,.80387,-.240114,.378339,.852425,.828439,-.228737,.349877,.895346,.851472,-.216632,.318968,.940695,.873906,-.202782,.287489,.987235,.89467,-.187059,.254394,1.03348,.912281,-.168818,.221294,1.07812,.927358,-.146494,.18675,1.11928,.940385,-.120009,.152322,1.15609,.952672,-.0917183,.117514,1.18875,.968496,-.0620321,.0797405,1.21821,.985236,-.0314945,.0402383,1.24523,.99998,-575153e-9,110644e-9,1.27133,.0702429,-512222e-11,.255273,140947e-11,.0702981,-128826e-9,.255469,354488e-10,.0703691,-515562e-9,.255727,141874e-9,.0703805,-.00116,.255754,31929e-8,.0703961,-.00206224,.255813,567999e-9,.0704102,-.00322223,.255839,88871e-8,.0704298,-.00463928,.255863,.00128272,.0704759,-.00631375,.255953,.00175283,.0705434,-.00824317,.256079,.00230342,.0706693,-.010412,.25636,.0029443,.0708189,-.0128439,.256647,.00368031,.0710364,-.0155177,.257084,.00452614,.0713223,-.0184374,.257637,.00549706,.0717182,-.0216002,.258416,.00661246,.072321,-.0249966,.259699,.00790147,.0731446,-.0286566,.261475,.0093884,.0743352,-.0325888,.264132,.0111186,.0760676,-.036843,.26815,.013145,.078454,-.0414292,.273636,.0155251,.0818618,-.0464634,.281653,.0183525,.0857382,-.0519478,.289992,.0216642,.0908131,-.0579836,.30066,.0255956,.0967512,-.0645124,.312204,.0301954,.103717,-.0716505,.325001,.0356017,.111596,-.0793232,.338129,.041896,.120933,-.087645,.352853,.0492447,.130787,-.096492,.366192,.0576749,.142311,-.105973,.380864,.0673969,.155344,-.116182,.396575,.0785899,.169535,-.126815,.411443,.0912377,.185173,-.138015,.426256,.105607,.201755,-.149325,.439607,.121551,.221334,-.161207,.455467,.139608,.241461,-.173162,.469096,.159591,.26294,-.18504,.481014,.18156,.286776,-.196881,.493291,.205781,.311596,-.208311,.503556,.231819,.338667,-.219671,.513268,.260274,.366021,-.230451,.519414,.290862,.395875,-.240131,.526766,.323196,.425564,-.248566,.52905,.357071,.457094,-.256195,.530796,.393262,.488286,-.262331,.528703,.430797,.522291,-.267141,.52727,.470231,.554172,-.270411,.519848,.510477,.586427,-.271986,.510307,.551594,.619638,-.27192,.499158,.593849,.650656,-.269817,.483852,.636314,.68284,-.266267,.467515,.679679,.714356,-.26113,.44931,.723884,.742717,-.254067,.425789,.767245,.770894,-.245652,.401144,.811819,.797358,-.235554,.374224,.856315,.823377,-.223896,.346167,.901077,.847456,-.210865,.316056,.946502,.870697,-.196574,.284503,.993711,.891068,-.180814,.251628,1.04134,.909267,-.163314,.219065,1.08609,.925653,-.143304,.186446,1.12702,.940017,-.121322,.153416,1.16371,.952398,-.0973872,.120334,1.19712,.967568,-.0698785,.08352,1.22791,.984772,-.0390031,.0439209,1.25672,1.00026,-.0070087,.00315668,1.28428,.0556653,-459654e-11,.227325,112556e-11,.0565238,-116382e-9,.230826,284985e-10,.0565717,-465666e-9,.231026,114036e-9,.0565859,-.00104773,.231079,256656e-9,.0565761,-.00186255,.231025,45663e-8,.0565913,-.00291002,.231058,714664e-9,.0566108,-.00418998,.231085,.00103224,.0566532,-.00570206,.231169,.00141202,.0567473,-.00743666,.231417,.00186018,.0568567,-.00940298,.231661,.00238264,.0569859,-.0115991,.231895,.00298699,.0572221,-.0140096,.232456,.00368957,.057519,-.0166508,.233096,.00450303,.0579534,-.01951,.234094,.00544945,.0585922,-.0225991,.235629,.00655564,.0595647,-.0259416,.238106,.00785724,.0609109,-.0295661,.241557,.00939127,.0628751,-.0335126,.246652,.0112198,.0656908,-.0378604,.254091,.0134168,.0691347,-.0426543,.262666,.0160374,.0732165,-.0478967,.272029,.0191514,.0782863,-.0536716,.283007,.0228597,.0843973,-.0600683,.295732,.0272829,.0913598,-.0670095,.308779,.032484,.0994407,-.0745516,.322886,.0385886,.108189,-.082712,.336408,.0457133,.118574,-.0914927,.351692,.0539832,.129989,-.100854,.366502,.0635162,.142722,-.110837,.381675,.0744386,.156654,-.121353,.3963,.0868483,.172151,-.132414,.411477,.100963,.188712,-.143809,.42508,.116795,.208093,-.155765,.441328,.134715,.227936,-.167608,.454328,.154396,.249495,-.179579,.467235,.176179,.27362,-.191488,.480248,.200193,.296371,-.202618,.487886,.225775,.324234,-.214133,.499632,.25441,.353049,-.225212,.509532,.285077,.381785,-.234875,.514265,.317047,.414038,-.244205,.521282,.351874,.445251,-.252145,.522931,.388279,.476819,-.258433,.520947,.425825,.509209,-.263411,.517669,.465104,.542759,-.266732,.512841,.505741,.574822,-.268263,.503317,.547611,.609324,-.268489,.493035,.590953,.641772,-.266941,.478816,.63488,.674049,-.263297,.462863,.679072,.705071,-.257618,.442931,.723487,.734709,-.250625,.421299,.768708,.763704,-.24179,.397085,.814375,.791818,-.231115,.370577,.859907,.817439,-.21922,.34232,.906715,.843202,-.205658,.312627,.953943,.866639,-.190563,.280933,1.00185,.888129,-.173978,.248393,1.05105,.907239,-.155485,.216007,1.09704,.923893,-.134782,.183233,1.13857,.938882,-.11249,.150376,1.17539,.952464,-.0890706,.117177,1.20924,.968529,-.0646523,.0813095,1.24055,.984763,-.038606,.0439378,1.27018,1.00053,-.01238,.00598668,1.29873,.0437928,-409594e-11,.204012,8.79224e-7,.0440166,-103395e-9,.205049,221946e-10,.0440529,-413633e-9,.205225,887981e-10,.0440493,-930594e-9,.2052,199858e-9,.0439884,-.00165352,.204901,355495e-9,.0440716,-.0025849,.205255,556983e-9,.0440968,-.00372222,.205311,805326e-9,.0441359,-.00506478,.205391,.00110333,.0442231,-.00660384,.205638,.00145768,.0443254,-.00835246,.205877,.00187275,.0444832,-.0102992,.20627,.00235938,.0447001,-.0124449,.206796,.0029299,.0450168,-.0147935,.207593,.0036005,.0454816,-.017336,.208819,.00439246,.0462446,-.0201156,.211036,.00533864,.0473694,-.0231568,.214388,.00646984,.0490191,-.0264941,.219357,.00783856,.0512776,-.030184,.226061,.00950182,.0541279,-.0342661,.234094,.0115156,.0578989,-.0388539,.244297,.0139687,.0620835,-.0438735,.254457,.0169015,.0673497,-.04951,.266706,.0204554,.0731759,-.0556263,.278753,.0246606,.0803937,-.0624585,.29309,.0297126,.0879287,-.0697556,.305856,.0355868,.0970669,-.0778795,.321059,.0425768,.106508,-.0863541,.333873,.05056,.11776,-.0955935,.349008,.0598972,.130081,-.105438,.363776,.0706314,.144454,-.115899,.380112,.0828822,.1596,-.126827,.394843,.0967611,.176097,-.138161,.409033,.112381,.194726,-.149904,.424257,.129952,.213944,-.161675,.436945,.149333,.235516,-.173659,.450176,.170892,.260564,-.185963,.466305,.194984,.285183,-.197582,.477328,.220805,.311095,-.208697,.486566,.248694,.338924,-.219519,.494811,.279015,.369757,-.229766,.504065,.311725,.3996,-.238879,.507909,.345844,.430484,-.246802,.509805,.381749,.46413,-.253924,.511436,.420251,.497077,-.259319,.508787,.459957,.530434,-.263297,.50394,.501356,.565725,-.265619,.49804,.544252,.599254,-.265842,.487346,.587856,.631251,-.263978,.472975,.631969,.663972,-.26043,.457135,.677471,.697724,-.255358,.439844,.723744,.727725,-.248308,.417872,.770653,.756417,-.239181,.39273,.817357,.785419,-.22814,.367839,.864221,.81266,-.215681,.339449,.912701,.839391,-.201623,.309279,.962419,.86366,-.185624,.278029,1.0122,.885028,-.16797,.245294,1.06186,.904639,-.148336,.212689,1.10934,.922048,-.12637,.179616,1.15063,.936952,-.102928,.146749,1.18885,.951895,-.0785268,.112733,1.22352,.967198,-.0530153,.0760056,1.25681,.984405,-.02649,.0383183,1.28762,1.00021,70019e-8,-20039e-8,1.31656,.0325964,-355447e-11,.176706,6.55682e-7,.0329333,-899174e-10,.178527,165869e-10,.0329181,-359637e-9,.178453,663498e-10,.0329085,-808991e-9,.178383,149332e-9,.0329181,-.00143826,.178394,265873e-9,.0329425,-.00224678,.178517,416597e-9,.0329511,-.00323575,.17849,603299e-9,.033011,-.00439875,.178695,829422e-9,.0330733,-.00574059,.178843,.00109908,.0331857,-.00725896,.179176,.00141933,.0333445,-.00895289,.179618,.0017999,.0335674,-.0108219,.180238,.00225316,.033939,-.0128687,.181417,.00279765,.0345239,-.015114,.183395,.0034564,.0354458,-.017596,.186616,.00425864,.0368313,-.0203524,.191547,.00524936,.0386115,-.0234105,.197508,.00647033,.0410303,-.0268509,.205395,.00798121,.0442245,-.0307481,.215365,.0098557,.0478659,-.0350863,.225595,.0121417,.0522416,-.0399506,.236946,.0149385,.0574513,-.045357,.249442,.0183189,.0631208,-.0512863,.261222,.0223644,.0701124,-.0579273,.275418,.0272418,.0777331,-.0650652,.288989,.0329458,.0862709,-.0728813,.302546,.0396819,.096103,-.081363,.317164,.04757,.106976,-.0904463,.331733,.0567012,.119175,-.100105,.34661,.067202,.132919,-.110375,.362249,.0792588,.147727,-.121115,.376978,.0928672,.163618,-.132299,.390681,.108228,.182234,-.143887,.406571,.125502,.201809,-.155827,.42042,.144836,.225041,-.168357,.438411,.166706,.247621,-.18004,.450368,.189909,.27097,-.191536,.460083,.215251,.296658,-.203024,.469765,.243164,.325892,-.214056,.481837,.273388,.35406,-.224104,.487474,.305344,.384372,-.233489,.492773,.339741,.41749,-.241874,.498451,.376287,.45013,-.248834,.499632,.414195,.481285,-.254658,.495233,.454077,.519183,-.259367,.496401,.496352,.551544,-.261818,.487686,.538798,.587349,-.262964,.479453,.583626,.621679,-.262128,.467709,.629451,.654991,-.258998,.452123,.67566,.686873,-.254119,.433495,.723248,.719801,-.246946,.413657,.771156,.750355,-.237709,.390366,.81989,.780033,-.226549,.364947,.868601,.809254,-.214186,.337256,.920034,.836576,-.199639,.307395,.971706,.861774,-.183169,.275431,1.02479,.885707,-.165111,.243431,1.07837,.904742,-.144363,.210921,1.12783,.915604,-.121305,.17647,1.17254,.930959,-.0962119,.143106,1.21012,.948404,-.069969,.108112,1.24474,.967012,-.0427586,.0708478,1.27718,.984183,-.0147043,.032335,1.3083,.999577,.0142165,-.00726867,1.3382,.0229227,-299799e-11,.148623,4.62391e-7,.0232194,-758796e-10,.15054,117033e-10,.0232315,-303636e-9,.15063,468397e-10,.0232354,-683189e-9,.150624,105472e-9,.0232092,-.0012136,.150445,187744e-9,.0232523,-.00189765,.150679,294847e-9,.0232828,-.00273247,.150789,428013e-9,.0233371,-.00371287,.150995,591134e-9,.0234015,-.00484794,.15118,787642e-9,.023514,-.00612877,.151562,.00102547,.023679,-.00756125,.152116,.00131351,.0239559,-.00914651,.153162,.00166594,.0244334,-.010904,.155133,.00210182,.025139,-.0128615,.158035,.00264406,.0262598,-.0150628,.162751,.00332923,.0277875,-.0175532,.168944,.00419773,.0298472,-.0203981,.176835,.00530034,.0325444,-.023655,.186686,.00669777,.0355581,-.0272982,.196248,.00842661,.0392841,-.0314457,.207352,.0105854,.0436815,-.0361157,.219279,.0132458,.0485272,-.0412932,.230728,.0164736,.0541574,-.0470337,.242994,.0203715,.0609479,-.0535002,.257042,.0250953,.0685228,-.0605409,.27102,.0306856,.0768042,-.0680553,.28406,.037193,.0864844,-.0765011,.299186,.0449795,.0969415,-.0852674,.3132,.0538316,.108478,-.0947333,.327138,.0641149,.121705,-.10481,.342345,.0759185,.136743,-.115474,.358472,.0894116,.152986,-.126536,.374067,.104562,.170397,-.138061,.388267,.121632,.191392,-.150203,.406467,.140996,.211566,-.161751,.418641,.161696,.233567,-.173407,.430418,.184557,.257769,-.185397,.44277,.210092,.28531,-.197048,.457191,.237827,.311726,-.20784,.464712,.267253,.340537,-.218345,.472539,.299332,.372921,-.228306,.482331,.333988,.402924,-.236665,.484378,.369722,.434475,-.244097,.484717,.407836,.469736,-.250547,.487093,.448465,.505045,-.25511,.485575,.490263,.540262,-.258444,.481225,.534495,.576347,-.259903,.473481,.579451,.608656,-.259572,.4603,.625604,.646679,-.257908,.450341,.674511,.679902,-.253663,.431561,.723269,.714159,-.247419,.412684,.773263,.745345,-.239122,.389388,.824182,.778248,-.228837,.365361,.876634,.807208,-.216197,.337667,.92945,.835019,-.201772,.307197,.985261,.860261,-.185291,.274205,1.04299,.877601,-.165809,.240178,1.09816,.898211,-.143897,.207571,1.14694,.915789,-.119513,.174904,1.19008,.931831,-.0932919,.141423,1.2297,.949244,-.0656528,.105603,1.26553,.967527,-.0370262,.0679551,1.29986,.984139,-.00730117,.0283133,1.33252,.999713,.0234648,-.0121785,1.36397,.0152135,-245447e-11,.122795,3.04092e-7,.0151652,-615778e-10,.122399,76292e-10,.0151181,-245948e-9,.122023,304802e-10,.0151203,-553394e-9,.12203,686634e-10,.015125,-983841e-9,.122037,122463e-9,.0151427,-.00153774,.12214,192706e-9,.0151708,-.0022103,.122237,281219e-9,.0152115,-.00300741,.12238,390804e-9,.0152877,-.00392494,.1227,526317e-9,.015412,-.00496597,.123244,69443e-8,.0156201,-.00613314,.124228,90547e-8,.0159658,-.00744113,.125945,.0011732,.0165674,-.00892546,.129098,.00151888,.017487,-.010627,.133865,.00197007,.018839,-.0126043,.140682,.0025637,.020554,-.0148814,.148534,.00333637,.0226727,-.0175123,.157381,.00433738,.0251879,-.0205266,.166685,.00561664,.0283635,-.0240319,.177796,.00725563,.0318694,-.0279432,.188251,.00928811,.0361044,-.0324313,.200038,.011835,.0406656,-.0373527,.210685,.0149146,.0463846,-.0430132,.224182,.0187254,.0525696,-.0491013,.23634,.0232283,.0598083,-.0559175,.250013,.0286521,.0679437,-.0633657,.263981,.0350634,.0771181,-.0714602,.278072,.0425882,.0881273,-.0803502,.29511,.0514487,.0996628,-.0896903,.309976,.0615766,.112702,-.099644,.325611,.0732139,.126488,-.109829,.339321,.0862324,.142625,-.120859,.35574,.101275,.15953,-.131956,.369845,.117892,.176991,-.143145,.38146,.136205,.199715,-.155292,.40052,.157252,.220787,-.167066,.412055,.179966,.243697,-.178396,.423133,.204418,.272106,-.190433,.439524,.232141,.297637,-.201265,.447041,.261109,.325273,-.211834,.454488,.292627,.357219,-.221889,.465004,.326669,.387362,-.230729,.468527,.362426,.423131,-.23924,.475836,.401533,.45543,-.246067,.475017,.441902,.493393,-.251557,.478017,.484239,.526253,-.255571,.4709,.528586,.560554,-.257752,.463167,.574346,.599306,-.258076,.456452,.621655,.634541,-.256471,.443725,.670492,.668907,-.253283,.428719,.721943,.705619,-.247562,.411348,.772477,.739034,-.240626,.388939,.8264,.771408,-.231493,.36425,.881702,.803312,-.220125,.337321,.9385,.828457,-.206645,.305364,.997437,.854819,-.190664,.273715,1.05693,.878666,-.171429,.242218,1.11251,.898404,-.149235,.209556,1.16398,.917416,-.12435,.176863,1.21014,.933133,-.0972703,.142775,1.25178,.95066,-.0683607,.106735,1.29028,.968589,-.0378724,.0681609,1.32703,.984776,-.00605712,.0273966,1.36158,.99994,.0263276,-.0138124,1.3943,.00867437,-186005e-11,.0928979,1.73682e-7,.00864003,-466389e-10,.0925237,435505e-11,.00864593,-186594e-9,.0925806,174322e-10,.00864095,-419639e-9,.0924903,392862e-10,.00863851,-746272e-9,.0924589,702598e-10,.00868531,-.00116456,.0929,111188e-9,.00869667,-.00167711,.0928529,163867e-9,.00874332,-.00228051,.0930914,23104e-8,.00882709,-.00297864,.0935679,31741e-8,.00898874,-.00377557,.0946165,430186e-9,.00929346,-.00469247,.0967406,580383e-9,.00978271,-.00575491,.100084,783529e-9,.0105746,-.00701514,.105447,.00106304,.0116949,-.00851797,.112494,.00144685,.0130419,-.0102757,.119876,.00196439,.0148375,-.012381,.129034,.00266433,.0168725,-.01482,.137812,.00358364,.0193689,-.0176563,.147696,.00478132,.0222691,-.0209211,.157795,.00631721,.0256891,-.0246655,.168431,.00826346,.0294686,-.0288597,.178587,.0106714,.0340412,-.0336441,.190251,.0136629,.0393918,-.039033,.202999,.0173272,.0453947,-.0450087,.215655,.0217448,.0521936,-.0515461,.228686,.0269941,.0600279,-.058817,.242838,.033272,.0692398,-.0667228,.258145,.0406457,.0793832,-.0752401,.273565,.0492239,.0902297,-.0841851,.287735,.0590105,.102014,-.0936479,.301161,.0702021,.116054,-.103967,.317438,.0832001,.13191,-.114622,.334166,.0977951,.148239,-.125452,.348192,.113985,.165809,-.136453,.361094,.131928,.184616,-.147648,.373534,.151811,.207491,-.159607,.39101,.174476,.230106,-.171119,.402504,.198798,.257036,-.182906,.418032,.225796,.281172,-.193605,.425468,.254027,.312034,-.204771,.440379,.285713,.340402,-.214988,.445406,.319196,.370231,-.224711,.44968,.35537,.407105,-.233516,.460747,.393838,.439037,-.240801,.460624,.433747,.47781,-.24762,.465957,.477234,.510655,-.251823,.460054,.52044,.550584,-.255552,.459172,.567853,.585872,-.257036,.450311,.615943,.620466,-.257535,.437763,.667693,.660496,-.255248,.426639,.718988,.695578,-.251141,.409185,.772503,.732176,-.244718,.39015,.827023,.760782,-.236782,.362594,.885651,.79422,-.225923,.33711,.943756,.824521,-.213855,.308272,1.00874,.854964,-.197723,.278529,1.06764,.878065,-.179209,.246208,1.12836,.899834,-.157569,.21329,1.18318,.918815,-.133206,.181038,1.23161,.934934,-.106545,.146993,1.27644,.952115,-.0780574,.111175,1.31842,.96906,-.0478279,.0728553,1.35839,.985178,-.0160014,.032579,1.39697,1.00039,.0173126,-.0095256,1.43312,.00384146,-124311e-11,.0613583,7.78271e-8,.00390023,-314043e-10,.0622919,196626e-11,.00389971,-125622e-9,.0622632,787379e-11,.00389491,-282352e-9,.0620659,1778e-8,.00391618,-502512e-9,.0624687,320918e-10,.00392662,-784458e-9,.0625113,515573e-10,.00396053,-.00112907,.0628175,778668e-10,.00401911,-.00153821,.0633286,113811e-9,.00414994,-.0020208,.0646443,16445e-8,.00441223,-.00260007,.0673886,237734e-9,.00484427,-.0033097,.0716528,345929e-9,.00549109,-.00418966,.0774998,505987e-9,.00636293,-.00527331,.0844758,739208e-9,.00746566,-.00660428,.0921325,.00107347,.00876625,-.00818826,.0997067,.00153691,.0103125,-.0100811,.107433,.00217153,.0123309,-.0123643,.117088,.00303427,.0146274,-.0150007,.126438,.00416018,.0172295,-.0180531,.135672,.00561513,.0204248,-.0215962,.146244,.007478,.0241597,-.0256234,.157481,.00981046,.0284693,-.0302209,.169125,.0127148,.033445,-.0353333,.181659,.0162453,.0391251,-.0410845,.1944,.0205417,.0454721,-.0473451,.207082,.0256333,.0530983,-.0542858,.221656,.0317036,.0615356,-.0618384,.236036,.0388319,.0703363,-.0697631,.248398,.046974,.0810391,-.0784757,.263611,.0565246,.0920144,-.0873488,.275857,.0671724,.105584,-.0973652,.292555,.0798105,.119506,-.107271,.306333,.0935945,.134434,-.117608,.318888,.109106,.153399,-.128938,.337552,.127074,.171258,-.139944,.349955,.14643,.191059,-.151288,.361545,.168,.215069,-.163018,.378421,.192082,.237838,-.174226,.38879,.217838,.266965,-.186063,.405857,.246931,.292827,-.196909,.414146,.277505,.324352,-.207473,.426955,.310711,.354427,-.217713,.433429,.346794,.389854,-.227183,.443966,.385237,.420749,-.235131,.44471,.424955,.459597,-.242786,.451729,.468446,.495316,-.248767,.45072,.513422,.534903,-.253351,.450924,.560618,.572369,-.256277,.445266,.609677,.612383,-.2576,.438798,.660995,.644037,-.256931,.421693,.713807,.686749,-.254036,.4109,.767616,.719814,-.249785,.390151,.82533,.754719,-.244283,.367847,.888311,.792022,-.235076,.345013,.948177,.822404,-.225061,.316193,1.01661,.853084,-.211113,.287013,1.08075,.879871,-.19449,.255424,1.14501,.901655,-.174023,.222879,1.20203,.919957,-.1509,.18989,1.25698,.938412,-.124923,.15606,1.30588,.953471,-.0968139,.120512,1.3529,.970451,-.066734,.0828515,1.3986,.985522,-.034734,.0424458,1.44148,1.00099,-.00102222,678929e-9,1.48398,965494e-9,-6.27338e-7,.0306409,1.97672e-8,99168e-8,-158573e-10,.0314638,4.99803e-7,991068e-9,-634012e-10,.031363,200682e-11,974567e-9,-14144e-8,.03036,457312e-11,998079e-9,-252812e-9,.031496,860131e-11,.00102243,-396506e-9,.0319955,148288e-10,.00107877,-577593e-9,.0331376,249141e-10,.00121622,-816816e-9,.0359396,423011e-10,.0014455,-.00113761,.0399652,724613e-10,.00178791,-.00156959,.0450556,123929e-9,.00225668,-.00214064,.0508025,208531e-9,.00285627,-.00287655,.0568443,341969e-9,.0035991,-.00380271,.0630892,544158e-9,.00455524,-.00496264,.0702204,842423e-9,.00569143,-.0063793,.0773426,.00126704,.00716928,-.00813531,.0860839,.00186642,.00885307,-.0101946,.0944079,.00267014,.0109316,-.0126386,.103951,.00374033,.0133704,-.0154876,.113786,.0051304,.0161525,-.0187317,.123477,.00688858,.0194267,-.0224652,.133986,.00910557,.0230967,-.0265976,.143979,.0118074,.0273627,-.0312848,.154645,.0151266,.0323898,-.0365949,.166765,.0191791,.0379225,-.0422914,.177932,.0239236,.0447501,-.0487469,.19167,.0296568,.0519391,-.0556398,.203224,.0362924,.0599464,-.0631646,.215652,.0440585,.0702427,-.0714308,.232089,.0531619,.0806902,-.0800605,.245258,.0634564,.0923194,-.0892815,.258609,.0752481,.106938,-.09931,.276654,.0888914,.121238,-.109575,.289847,.104055,.138817,-.120461,.307566,.121266,.15595,-.131209,.320117,.139944,.178418,-.143049,.339677,.161591,.197875,-.154074,.349886,.184303,.224368,-.166307,.369352,.210669,.252213,-.178051,.386242,.238895,.277321,-.189335,.395294,.269182,.310332,-.200683,.412148,.302508,.338809,-.210856,.418266,.337264,.372678,-.220655,.428723,.374881,.405632,-.230053,.433887,.415656,.442293,-.237993,.439911,.457982,.477256,-.244897,.440175,.502831,.515592,-.250657,.441079,.550277,.550969,-.255459,.435219,.601102,.592883,-.257696,.432882,.651785,.629092,-.259894,.421054,.708961,.672033,-.258592,.41177,.763806,.709147,-.256525,.395267,.824249,.745367,-.254677,.375013,.8951,.784715,-.247892,.353906,.959317,.818107,-.240162,.327801,1.03153,.847895,-.229741,.298821,1.10601,.879603,-.213084,.269115,1.164,.902605,-.195242,.236606,1.22854,.922788,-.174505,.203442,1.29017,.944831,-.150169,.169594,1.34157,.959656,-.124099,.135909,1.3956,.972399,-.0960626,.0990563,1.45128,.986549,-.0657097,.0602348,1.50312,1.00013,-.0333558,.0186694,1.55364,619747e-11,-1e-7,.00778326,796756e-16,2.37499e-8,-9.99999e-8,282592e-10,1.14596e-10,100292e-11,-166369e-11,250354e-9,6.77492e-9,350752e-11,-637769e-11,357289e-9,6.31655e-8,826445e-11,-174689e-10,516179e-9,3.1851e-7,242481e-10,-450868e-10,.0010223,130577e-11,455631e-10,-89044e-9,.00144302,374587e-11,971222e-10,-178311e-9,.00241912,102584e-10,171403e-9,-313976e-9,.00354938,236481e-10,292747e-9,-520026e-9,.00513765,496014e-10,789827e-9,-.00118187,.0238621,139056e-9,.00114093,-.00171827,.0286691,244093e-9,.00176119,-.00249667,.0368565,420623e-9,.0022233,-.00333742,.0400469,65673e-8,.00343382,-.00481976,.0535751,.00109323,.00427602,-.00600755,.057099,.00155268,.00461435,-.00737637,.0551084,.00215031,.00695698,-.00971401,.0715767,.00316529,.00867619,-.0120943,.0793314,.00436995,.0106694,-.0148202,.0869391,.0058959,.0140351,-.0183501,.101572,.00798757,.0168939,-.022006,.11018,.0104233,.020197,-.0261568,.119041,.0134167,.0254702,-.0312778,.135404,.0173009,.0298384,-.0362469,.1437,.0215428,.035159,-.042237,.15512,.0268882,.0427685,-.0488711,.17128,.033235,.0494848,-.0557997,.181813,.0404443,.0592394,-.0635578,.198745,.0490043,.0681463,-.071838,.210497,.0588239,.0804753,-.0809297,.228864,.0702835,.0942205,-.0906488,.247008,.0834012,.106777,-.100216,.258812,.0975952,.124471,-.110827,.278617,.114162,.138389,-.121193,.287049,.131983,.159543,-.13253,.307151,.152541,.176432,-.143611,.31564,.174673,.201723,-.15548,.33538,.199842,.229721,-.167166,.355256,.227097,.250206,-.178238,.360047,.256014,.282118,-.189905,.378761,.28855,.312821,-.201033,.39181,.323348,.341482,-.211584,.397716,.360564,.377368,-.221314,.410141,.400004,.418229,-.230474,.423485,.442371,.444881,-.239443,.418874,.488796,.488899,-.245987,.427545,.535012,.520317,-.253948,.422147,.589678,.568566,-.256616,.42719,.637683,.599607,-.26376,.415114,.703363,.64222,-.268687,.408715,.771363,.685698,-.2694,.399722,.83574,.732327,-.266642,.388651,.897764,.769873,-.267712,.369198,.983312,.806733,-.263479,.346802,1.06222,.843466,-.254575,.321368,1.13477,.873008,-.242749,.29211,1.20712,.908438,-.22725,.262143,1.27465,.936321,-.207621,.228876,1.33203,.950353,-.187932,.19484,1.40439,.96442,-.165154,.163178,1.4732,.979856,-.139302,.127531,1.53574,.982561,-.11134,.0903457,1.59982,.996389,-.0808124,.0489007,1.6577],t=[1,0,0,0,1,791421e-36,0,0,1,104392e-29,0,0,1,349405e-26,0,0,1,109923e-23,0,0,1,947414e-22,0,0,1,359627e-20,0,0,1,772053e-19,0,0,1,108799e-17,0,0,1,110655e-16,0,0,1,865818e-16,0,0,.999998,5.45037e-10,0,0,.999994,2.85095e-9,0,0,.999989,1.26931e-8,0,0,.999973,4.89938e-8,0,0,.999947,1.66347e-7,0,0,.999894,5.02694e-7,0,0,.999798,136532e-11,0,0,.999617,335898e-11,0,0,.999234,752126e-11,0,0,.998258,152586e-10,0,0,.99504,266207e-10,0,0,.980816,236802e-10,0,0,.967553,207684e-11,0,0,.966877,403733e-11,0,0,.965752,741174e-11,0,0,.96382,127746e-10,0,0,.960306,202792e-10,0,0,.953619,280232e-10,0,0,.941103,278816e-10,0,0,.926619,160221e-10,0,0,.920983,235164e-10,0,0,.912293,311924e-10,0,.0158731,.899277,348118e-10,0,.0476191,.880884,26041e-9,0,.0793651,.870399,338726e-10,0,.111111,.856138,392906e-10,0,.142857,.837436,372874e-10,0,.174603,.820973,392558e-10,0,.206349,.803583,434658e-10,0,.238095,.782168,40256e-9,0,.269841,.764107,448159e-10,0,.301587,.743092,457627e-10,0,.333333,.721626,455314e-10,0,.365079,.700375,477335e-10,0,.396825,.677334,461072e-10,0,.428571,.655702,484393e-10,0,.460317,.632059,464583e-10,0,.492064,.610125,483923e-10,0,.52381,.58653,464342e-10,0,.555556,.564508,477033e-10,0,.587302,.541405,459263e-10,0,.619048,.519556,46412e-9,0,.650794,.497292,448913e-10,0,.68254,.475898,445789e-10,0,.714286,.454722,433496e-10,0,.746032,.434042,423054e-10,0,.777778,.414126,413737e-10,0,.809524,.394387,397265e-10,0,.84127,.375841,390709e-10,0,.873016,.357219,369938e-10,0,.904762,.340084,365618e-10,0,.936508,.322714,342533e-10,0,.968254,.306974,339596e-10,0,1,1,101524e-23,0,0,1,10292e-22,0,0,1,130908e-23,0,0,1,473331e-23,0,0,1,625319e-22,0,0,1,107932e-20,0,0,1,163779e-19,0,0,1,203198e-18,0,0,1,204717e-17,0,0,.999999,168995e-16,0,0,.999998,1.15855e-10,0,0,.999996,6.6947e-10,0,0,.999991,3.30863e-9,0,0,.999983,1.41737e-8,0,0,.999968,5.32626e-8,0,0,.99994,1.77431e-7,0,0,.999891,5.28835e-7,0,0,.999797,142169e-11,0,0,.999617,347057e-11,0,0,.999227,77231e-10,0,0,.998239,155753e-10,0,0,.994937,268495e-10,0,0,.980225,213742e-10,0,0,.967549,21631e-10,0,0,.966865,417989e-11,0,0,.965739,763341e-11,0,0,.963794,130892e-10,0,0,.960244,206456e-10,0,0,.953495,282016e-10,0,148105e-9,.940876,271581e-10,0,.002454,.926569,164159e-10,0,.00867491,.920905,239521e-10,0,.01956,.912169,315127e-10,0,.035433,.899095,346626e-10,0,.056294,.882209,290223e-10,0,.0818191,.870272,342992e-10,0,.111259,.855977,394164e-10,0,.142857,.837431,372343e-10,0,.174603,.820826,396691e-10,0,.206349,.803408,435395e-10,0,.238095,.782838,419579e-10,0,.269841,.763941,450953e-10,0,.301587,.742904,455847e-10,0,.333333,.721463,458833e-10,0,.365079,.700197,477159e-10,0,.396825,.677501,470641e-10,0,.428571,.655527,484732e-10,0,.460317,.6324,476834e-10,0,.492064,.609964,484213e-10,0,.52381,.586839,475541e-10,0,.555556,.564353,476951e-10,0,.587302,.541589,467611e-10,0,.619048,.519413,463493e-10,0,.650794,.497337,453994e-10,0,.68254,.475797,445308e-10,0,.714286,.454659,435787e-10,0,.746032,.434065,424839e-10,0,.777778,.414018,41436e-9,0,.809524,.39455,401902e-10,0,.84127,.375742,390813e-10,0,.873016,.357501,377116e-10,0,.904762,.339996,36535e-9,0,.936508,.323069,351265e-10,0,.968254,.306897,339112e-10,0,1,1,10396e-19,0,0,1,104326e-20,0,0,1,110153e-20,0,0,1,144668e-20,0,0,1,34528e-19,0,0,1,175958e-19,0,0,1,12627e-17,0,0,1,936074e-18,0,0,1,645742e-17,0,0,.999998,401228e-16,0,0,.999997,2.22338e-10,0,0,.999995,1.0967e-9,0,0,.999991,4.82132e-9,0,0,.999981,1.89434e-8,0,0,.999967,6.67716e-8,0,0,.999938,2.12066e-7,0,0,.999886,6.0977e-7,0,0,.999792,159504e-11,0,0,.999608,381191e-11,0,0,.999209,833727e-11,0,0,.998179,165288e-10,0,0,.994605,274387e-10,0,0,.979468,167316e-10,0,0,.967529,242877e-11,0,0,.966836,461696e-11,0,0,.96569,830977e-11,0,0,.963706,140427e-10,0,244659e-11,.960063,217353e-10,0,760774e-9,.953113,286606e-10,0,.00367261,.940192,247691e-10,0,.00940263,.927731,195814e-10,0,.018333,.920669,252531e-10,0,.0306825,.911799,324277e-10,0,.0465556,.89857,340982e-10,0,.0659521,.883283,319622e-10,0,.0887677,.86989,35548e-9,0,.114784,.855483,397143e-10,0,.143618,.837987,391665e-10,0,.174606,.820546,411306e-10,0,.206349,.802878,436753e-10,0,.238095,.783402,444e-7,0,.269841,.763439,458726e-10,0,.301587,.742925,467097e-10,0,.333333,.721633,478887e-10,0,.365079,.69985,481251e-10,0,.396825,.67783,491811e-10,0,.428571,.655126,488199e-10,0,.460318,.632697,496025e-10,0,.492064,.609613,48829e-9,0,.52381,.587098,492754e-10,0,.555556,.564119,482625e-10,0,.587302,.541813,482807e-10,0,.619048,.519342,471552e-10,0,.650794,.497514,466765e-10,0,.68254,.475879,455582e-10,0,.714286,.454789,446007e-10,0,.746032,.434217,435382e-10,0,.777778,.414086,421753e-10,0,.809524,.394744,412093e-10,0,.84127,.375782,396634e-10,0,.873016,.357707,386419e-10,0,.904762,.340038,370345e-10,0,.936508,.323284,359725e-10,0,.968254,.306954,3436e-8,0,1,1,599567e-19,0,0,1,600497e-19,0,0,1,614839e-19,0,0,1,686641e-19,0,0,1,972658e-19,0,0,1,221271e-18,0,0,1,833195e-18,0,0,1,403601e-17,0,0,.999999,206001e-16,0,0,.999998,1.01739e-10,0,0,.999997,4.70132e-10,0,0,.999993,2.00436e-9,0,0,.999988,7.83682e-9,0,0,.999979,2.80338e-8,0,0,.999962,9.17033e-8,0,0,.999933,2.74514e-7,0,0,.999881,7.53201e-7,0,0,.999783,189826e-11,0,0,.999594,440279e-11,0,0,.999178,93898e-10,0,0,.998073,181265e-10,0,0,.993993,280487e-10,0,0,.979982,149422e-10,0,0,.968145,378481e-11,0,0,.966786,53771e-10,0,0,.965611,947508e-11,0,388934e-10,.963557,156616e-10,0,9693e-7,.959752,235144e-10,0,.00370329,.952461,291568e-10,0,.00868428,.940193,240102e-10,0,.0161889,.929042,231235e-10,0,.0263948,.920266,273968e-10,0,.0394088,.911178,337915e-10,0,.0552818,.897873,333629e-10,0,.0740138,.884053,351405e-10,0,.0955539,.869455,378034e-10,0,.119795,.854655,399378e-10,0,.14656,.838347,419108e-10,0,.175573,.820693,440831e-10,0,.206388,.802277,445599e-10,0,.238095,.783634,472691e-10,0,.269841,.763159,476984e-10,0,.301587,.742914,491487e-10,0,.333333,.721662,502312e-10,0,.365079,.699668,502817e-10,0,.396825,.677839,51406e-9,0,.428571,.655091,511095e-10,0,.460317,.632665,516067e-10,0,.492064,.609734,512255e-10,0,.52381,.587043,510263e-10,0,.555556,.564298,50565e-9,0,.587302,.541769,497951e-10,0,.619048,.519529,492698e-10,0,.650794,.497574,482066e-10,0,.68254,.476028,473689e-10,0,.714286,.454961,461941e-10,0,.746032,.434341,450618e-10,0,.777778,.414364,438355e-10,0,.809524,.394832,424196e-10,0,.84127,.376109,412563e-10,0,.873016,.35779,396226e-10,0,.904762,.340379,384886e-10,0,.936508,.323385,368214e-10,0,.968254,.307295,356636e-10,0,1,1,106465e-17,0,0,1,106555e-17,0,0,1,107966e-17,0,0,1,114601e-17,0,0,1,137123e-17,0,0,1,21243e-16,0,0,.999999,489653e-17,0,0,.999999,160283e-16,0,0,.999998,62269e-15,0,0,.999997,2.51859e-10,0,0,.999996,9.96192e-10,0,0,.999992,3.74531e-9,0,0,.999986,1.32022e-8,0,0,.999975,4.33315e-8,0,0,.999959,1.31956e-7,0,0,.999927,3.72249e-7,0,0,.999871,9.72461e-7,0,0,.999771,235343e-11,0,0,.999572,52768e-10,0,0,.999133,109237e-10,0,0,.997912,203675e-10,0,0,.993008,279396e-10,0,0,.980645,139604e-10,0,0,.970057,646596e-11,0,0,.966717,65089e-10,0,474145e-10,.965497,111863e-10,0,89544e-8,.96334,179857e-10,0,.0032647,.959294,259045e-10,0,.0075144,.951519,292327e-10,0,.0138734,.940517,249769e-10,0,.0224952,.93014,26803e-9,0,.0334828,.91972,303656e-10,0,.0468973,.910294,353323e-10,0,.0627703,.897701,351002e-10,0,.0811019,.884522,388104e-10,0,.10186,.869489,412932e-10,0,.124985,.853983,415781e-10,0,.150372,.838425,454066e-10,0,.177868,.820656,471624e-10,0,.207245,.801875,475243e-10,0,.238143,.783521,505621e-10,0,.269841,.763131,50721e-9,0,.301587,.74261,523293e-10,0,.333333,.72148,528699e-10,0,.365079,.699696,538677e-10,0,.396825,.677592,539255e-10,0,.428571,.65525,546367e-10,0,.460317,.632452,541348e-10,0,.492064,.609903,544976e-10,0,.52381,.586928,536201e-10,0,.555556,.564464,535185e-10,0,.587302,.541801,524949e-10,0,.619048,.519681,51812e-9,0,.650794,.497685,507687e-10,0,.68254,.47622,496243e-10,0,.714286,.455135,485714e-10,0,.746032,.4346,471847e-10,0,.777778,.414564,459294e-10,0,.809524,.395165,444705e-10,0,.84127,.376333,430772e-10,0,.873016,.358197,416229e-10,0,.904762,.34064,401019e-10,0,.936508,.323816,386623e-10,0,.968254,.307581,370933e-10,0,1,1,991541e-17,0,0,1,992077e-17,0,0,1,100041e-16,0,0,1,10385e-15,0,0,1,115777e-16,0,0,1,150215e-16,0,0,.999999,254738e-16,0,0,.999999,598822e-16,0,0,.999998,1.79597e-10,0,0,.999997,6.02367e-10,0,0,.999994,2.06835e-9,0,0,.99999,6.94952e-9,0,0,.999984,2.23363e-8,0,0,.999972,6.78578e-8,0,0,.999952,1.93571e-7,0,0,.999919,5.16594e-7,0,0,.99986,128739e-11,0,0,.999753,299298e-11,0,0,.999546,648258e-11,0,0,.999074,129985e-10,0,0,.997671,232176e-10,0,0,.991504,256701e-10,0,0,.981148,131141e-10,0,0,.971965,869048e-11,0,280182e-10,.966624,808301e-11,0,695475e-9,.965344,135235e-10,0,.00265522,.963048,210592e-10,0,.00622975,.958673,287473e-10,0,.0116234,.950262,281379e-10,0,.018976,.940836,271089e-10,0,.0283844,.930996,30926e-9,0,.0399151,.919848,348359e-10,0,.0536063,.909136,366092e-10,0,.0694793,.897554,384162e-10,0,.0875342,.884691,430971e-10,0,.107749,.869414,447803e-10,0,.130087,.853462,452858e-10,0,.154481,.838187,495769e-10,0,.180833,.820381,502709e-10,0,.209005,.801844,522713e-10,0,.238791,.783061,541505e-10,0,.269869,.763205,553712e-10,0,.301587,.742362,564909e-10,0,.333333,.721393,572646e-10,0,.365079,.699676,581012e-10,0,.396825,.677395,58096e-9,0,.428571,.655208,585766e-10,0,.460317,.632451,583602e-10,0,.492064,.609839,580234e-10,0,.52381,.587093,577161e-10,0,.555556,.564467,568447e-10,0,.587302,.542043,563166e-10,0,.619048,.519826,55156e-9,0,.650794,.497952,541682e-10,0,.68254,.476477,528971e-10,0,.714286,.455412,514952e-10,0,.746032,.434926,502222e-10,0,.777778,.4149,485779e-10,0,.809524,.395552,472242e-10,0,.84127,.376712,454891e-10,0,.873016,.358622,440924e-10,0,.904762,.341048,422984e-10,0,.936508,.324262,408582e-10,0,.968254,.308013,390839e-10,0,1,1,613913e-16,0,0,1,614145e-16,0,0,1,617708e-16,0,0,1,633717e-16,0,0,1,681648e-16,0,0,1,808291e-16,0,0,1,1.14608e-10,0,0,.999998,2.10507e-10,0,0,.999997,4.99595e-10,0,0,.999995,1.39897e-9,0,0,.999994,4.19818e-9,0,0,.999988,1.27042e-8,0,0,.999979,3.75153e-8,0,0,.999965,1.06206e-7,0,0,.999945,2.85381e-7,0,0,.999908,7.23611e-7,0,0,.999846,17255e-10,0,0,.999733,386104e-11,0,0,.999511,808493e-11,0,0,.998993,156884e-10,0,0,.997326,265538e-10,0,0,.989706,206466e-10,0,0,.981713,130756e-10,0,70005e-10,.973636,106473e-10,0,464797e-9,.966509,10194e-9,0,.00201743,.965149,165881e-10,0,.00497549,.962669,249147e-10,0,.00953262,.95786,317449e-10,0,.0158211,.949334,281045e-10,0,.0239343,.941041,303263e-10,0,.0339372,.931575,356754e-10,0,.0458738,.920102,397075e-10,0,.059772,.908002,384886e-10,0,.075645,.897269,43027e-9,0,.0934929,.884559,479925e-10,0,.113302,.869161,48246e-9,0,.135045,.853342,509505e-10,0,.158678,.837633,542846e-10,0,.184136,.820252,554139e-10,0,.211325,.801872,581412e-10,0,.240113,.782418,585535e-10,0,.270306,.7631,610923e-10,0,.301594,.742183,613678e-10,0,.333333,.721098,627275e-10,0,.365079,.699512,629413e-10,0,.396825,.677372,636351e-10,0,.428571,.655059,633555e-10,0,.460317,.632567,636513e-10,0,.492064,.609784,628965e-10,0,.52381,.587237,625546e-10,0,.555556,.564525,615825e-10,0,.587302,.542181,605048e-10,0,.619048,.520017,596329e-10,0,.650794,.498204,581516e-10,0,.68254,.476742,569186e-10,0,.714286,.455803,553833e-10,0,.746032,.435251,537807e-10,0,.777778,.415374,522025e-10,0,.809524,.395921,503421e-10,0,.84127,.377253,488211e-10,0,.873016,.359021,468234e-10,0,.904762,.341637,453269e-10,0,.936508,.3247,433014e-10,0,.968254,.308625,418007e-10,0,1,1,2.86798e-10,0,0,1,2.86877e-10,0,0,1,2.88094e-10,0,0,1,2.93506e-10,0,0,1,3.09262e-10,0,0,.999999,3.48593e-10,0,0,.999999,4.44582e-10,0,0,.999998,6.88591e-10,0,0,.999996,1.34391e-9,0,0,.999993,3.17438e-9,0,0,.999989,8.35609e-9,0,0,.999983,2.28677e-8,0,0,.999974,6.23361e-8,0,0,.999959,1.65225e-7,0,0,.999936,4.19983e-7,0,0,.999896,101546e-11,0,0,.99983,232376e-11,0,0,.999709,50156e-10,0,0,.999469,10167e-9,0,0,.998886,190775e-10,0,0,.996819,300511e-10,0,0,.988837,185092e-10,0,1.68222e-7,.982178,134622e-10,0,259622e-9,.975017,125961e-10,0,.00142595,.967101,13507e-9,0,.00382273,.964905,205003e-10,0,.00764164,.96218,29546e-9,0,.0130121,.956821,343738e-10,0,.0200253,.948829,305063e-10,0,.0287452,.941092,346487e-10,0,.039218,.931883,412061e-10,0,.0514748,.920211,444651e-10,0,.0655351,.907307,431252e-10,0,.0814082,.89684,490382e-10,0,.0990939,.884119,53334e-9,0,.118583,.869148,54114e-9,0,.139856,.853377,578536e-10,0,.162882,.836753,592285e-10,0,.187615,.820063,622787e-10,0,.213991,.801694,645492e-10,0,.241918,.782116,65353e-9,0,.271267,.762673,674344e-10,0,.301847,.742133,682788e-10,0,.333333,.720779,691959e-10,0,.365079,.699386,696817e-10,0,.396826,.67732,699583e-10,0,.428572,.654888,698447e-10,0,.460318,.632499,694063e-10,0,.492064,.609825,691612e-10,0,.52381,.587287,681576e-10,0,.555556,.564743,674138e-10,0,.587302,.542409,661617e-10,0,.619048,.520282,647785e-10,0,.650794,.498506,633836e-10,0,.68254,.477102,615905e-10,0,.714286,.456167,601013e-10,0,.746032,.435728,581457e-10,0,.777778,.415809,564215e-10,0,.809524,.396517,544997e-10,0,.84127,.377737,525061e-10,0,.873016,.359698,506831e-10,0,.904762,.342164,48568e-9,0,.936508,.325417,467826e-10,0,.968254,.309186,446736e-10,0,1,1,1.09018e-9,0,0,1,1.0904e-9,0,0,1,1.09393e-9,0,0,1,1.1095e-9,0,0,1,1.154e-9,0,0,1,1.26089e-9,0,0,.999999,1.5059e-9,0,0,.999997,2.07899e-9,0,0,.999994,3.48164e-9,0,0,.999993,7.05728e-9,0,0,.999987,1.63692e-8,0,0,.999981,4.06033e-8,0,0,.999969,1.0245e-7,0,0,.999953,2.55023e-7,0,0,.999925,6.1511e-7,0,0,.999881,142218e-11,0,0,.99981,313086e-11,0,0,.99968,653119e-11,0,0,.999418,12832e-9,0,0,.998748,232497e-10,0,0,.996066,329522e-10,0,0,.988379,179613e-10,0,108799e-9,.982567,143715e-10,0,921302e-9,.976097,148096e-10,0,.00280738,.968475,178905e-10,0,.00596622,.964606,253921e-10,0,.0105284,.961564,348623e-10,0,.0165848,.955517,357612e-10,0,.0242,.948381,343493e-10,0,.03342,.941095,405849e-10,0,.0442777,.931923,475394e-10,0,.0567958,.91996,484328e-10,0,.0709879,.907419,502146e-10,0,.086861,.89618,561654e-10,0,.104415,.88337,587612e-10,0,.123643,.869046,618057e-10,0,.144531,.853278,657392e-10,0,.167057,.836091,66303e-9,0,.191188,.819644,704445e-10,0,.216878,.801246,714071e-10,0,.244062,.782031,740093e-10,0,.272649,.762066,74685e-9,0,.302509,.741964,766647e-10,0,.333442,.720554,766328e-10,0,.365079,.699098,777857e-10,0,.396826,.677189,774633e-10,0,.428572,.65484,776235e-10,0,.460318,.632496,770316e-10,0,.492064,.609908,762669e-10,0,.52381,.587312,753972e-10,0,.555556,.564938,739994e-10,0,.587302,.542577,728382e-10,0,.619048,.52062,71112e-9,0,.650794,.498819,694004e-10,0,.68254,.477555,675575e-10,0,.714286,.456568,653449e-10,0,.746032,.436278,636068e-10,0,.777778,.41637,613466e-10,0,.809524,.397144,594177e-10,0,.84127,.378412,570987e-10,0,.873016,.360376,550419e-10,0,.904762,.342906,527422e-10,0,.936508,.326136,506544e-10,0,.968254,.30997,484307e-10,0,1,1,3.54014e-9,0,0,1,3.54073e-9,0,0,1,3.54972e-9,0,0,1,3.58929e-9,0,0,1,3.70093e-9,0,0,.999999,3.96194e-9,0,0,.999998,4.53352e-9,0,0,.999997,5.78828e-9,0,0,.999994,8.63812e-9,0,0,.999991,1.53622e-8,0,0,.999985,3.16356e-8,0,0,.999977,7.12781e-8,0,0,.999964,1.66725e-7,0,0,.999945,3.90501e-7,0,0,.999912,8.95622e-7,0,0,.999866,198428e-11,0,0,.999786,421038e-11,0,0,.999647,850239e-11,0,0,.999356,162059e-10,0,0,.998563,282652e-10,0,0,.994928,336309e-10,0,244244e-10,.987999,178458e-10,0,523891e-9,.982893,159162e-10,0,.00194729,.977044,178056e-10,0,.00451099,.969972,230624e-10,0,.00835132,.964237,313922e-10,0,.013561,.960791,406145e-10,0,.0202056,.954292,372796e-10,0,.0283321,.948052,403199e-10,0,.0379739,.940938,479537e-10,0,.0491551,.931689,545292e-10,0,.0618918,.91987,54038e-9,0,.0761941,.907665,589909e-10,0,.0920672,.895281,642651e-10,0,.109511,.882621,659707e-10,0,.12852,.86873,709973e-10,0,.149085,.853008,742221e-10,0,.171189,.835944,761754e-10,0,.194809,.818949,797052e-10,0,.21991,.800951,812434e-10,0,.246447,.781847,838075e-10,0,.274352,.761649,84501e-9,0,.303535,.74152,860258e-10,0,.333857,.720495,866233e-10,0,.365104,.698742,868326e-10,0,.396826,.677096,87133e-9,0,.428572,.654782,863497e-10,0,.460318,.632335,860206e-10,0,.492064,.610031,849337e-10,0,.52381,.587457,838279e-10,0,.555556,.56513,82309e-9,0,.587302,.542877,803542e-10,0,.619048,.5209,786928e-10,0,.650794,.499291,765171e-10,0,.68254,.477971,744753e-10,0,.714286,.457221,72209e-9,0,.746032,.436803,697448e-10,0,.777778,.417083,675333e-10,0,.809524,.397749,648058e-10,0,.84127,.379177,625759e-10,0,.873016,.361061,598584e-10,0,.904762,.343713,575797e-10,0,.936508,.326894,549999e-10,0,.968254,.310816,527482e-10,0,1,1,1.0153e-8,0,0,1,1.01544e-8,0,0,1,1.01751e-8,0,0,1,1.02662e-8,0,0,1,1.0521e-8,0,0,.999999,1.11049e-8,0,0,.999999,1.23408e-8,0,0,.999996,1.4924e-8,0,0,.999992,2.04471e-8,0,0,.999989,3.26539e-8,0,0,.99998,6.03559e-8,0,0,.999971,1.23936e-7,0,0,.999955,2.69058e-7,0,0,.999933,5.93604e-7,0,0,.999901,129633e-11,0,0,.999847,275621e-11,0,0,.999761,564494e-11,0,0,.999607,110485e-10,0,0,.999282,204388e-10,0,0,.99831,341084e-10,0,2.2038e-7,.993288,294949e-10,0,242388e-9,.987855,192736e-10,0,.0012503,.983167,182383e-10,0,.0032745,.977908,218633e-10,0,.00646321,.971194,290662e-10,0,.0109133,.963867,386401e-10,0,.0166927,.95982,462827e-10,0,.0238494,.953497,420705e-10,0,.0324178,.947621,477743e-10,0,.0424225,.940611,568258e-10,0,.0538808,.931174,618061e-10,0,.0668047,.919919,627098e-10,0,.0812014,.907856,694714e-10,0,.0970745,.894509,735008e-10,0,.114424,.881954,763369e-10,0,.133246,.868309,821896e-10,0,.153534,.852511,83769e-9,0,.175275,.835821,881615e-10,0,.198453,.817981,896368e-10,0,.223042,.800504,930906e-10,0,.249009,.78141,945056e-10,0,.276304,.761427,963605e-10,0,.304862,.74094,968088e-10,0,.334584,.720233,981481e-10,0,.365322,.698592,979122e-10,0,.396826,.676763,981057e-10,0,.428571,.654808,973956e-10,0,.460318,.632326,962619e-10,0,.492064,.610049,952996e-10,0,.52381,.58763,933334e-10,0,.555556,.565261,917573e-10,0,.587302,.543244,896636e-10,0,.619048,.521273,873304e-10,0,.650794,.499818,852648e-10,0,.68254,.478536,823961e-10,0,.714286,.457826,79939e-9,0,.746032,.437549,77126e-9,0,.777778,.41776,743043e-10,0,.809524,.39863,716426e-10,0,.84127,.379954,686456e-10,0,.873016,.362025,660514e-10,0,.904762,.344581,630755e-10,0,.936508,.327909,605439e-10,0,.968254,.311736,576345e-10,0,1,1,2.63344e-8,0,0,1,2.63373e-8,0,0,1,2.63815e-8,0,0,1,2.65753e-8,0,0,1,2.71132e-8,0,0,.999999,2.83279e-8,0,0,.999997,3.0833e-8,0,0,.999995,3.58711e-8,0,0,.999992,4.61266e-8,0,0,.999985,6.7574e-8,0,0,.999977,1.1358e-7,0,0,.999966,2.13657e-7,0,0,.999948,4.31151e-7,0,0,.999923,8.96656e-7,0,0,.999884,186603e-11,0,0,.999826,381115e-11,0,0,.999732,754184e-11,0,0,.999561,143192e-10,0,0,.999191,257061e-10,0,0,.997955,405724e-10,0,744132e-10,.992228,276537e-10,0,716477e-9,.987638,208885e-10,0,.0022524,.983395,215226e-10,0,.00484816,.978614,270795e-10,0,.00860962,.972389,365282e-10,0,.0136083,.964392,474747e-10,0,.0198941,.95861,509141e-10,0,.0275023,.952806,48963e-9,0,.0364584,.94712,571119e-10,0,.04678,.940104,671704e-10,0,.0584799,.930398,687586e-10,0,.0715665,.919866,738161e-10,0,.086045,.907853,813235e-10,0,.101918,.894078,834582e-10,0,.119186,.881177,892093e-10,0,.137845,.867575,944548e-10,0,.157891,.852107,969607e-10,0,.179316,.835502,101456e-9,0,.202106,.81756,103256e-9,0,.226243,.79984,106954e-9,0,.251704,.780998,108066e-9,0,.278451,.761132,110111e-9,0,.306436,.740429,110459e-9,0,.335586,.719836,111219e-9,0,.365796,.698467,11145e-8,0,.3969,.676446,110393e-9,0,.428571,.654635,110035e-9,0,.460318,.632411,108548e-9,0,.492064,.609986,106963e-9,0,.52381,.587872,105238e-9,0,.555556,.565528,102665e-9,0,.587302,.543563,100543e-9,0,.619048,.52176,976182e-10,0,.650794,.500188,947099e-10,0,.68254,.479204,919929e-10,0,.714286,.458413,886139e-10,0,.746032,.438314,857839e-10,0,.777778,.418573,82411e-9,0,.809524,.39947,792211e-10,0,.84127,.380892,759546e-10,0,.873016,.362953,727571e-10,0,.904762,.345601,695738e-10,0,.936508,.328895,664907e-10,0,.968254,.312808,634277e-10,0,1,1,6.28647e-8,0,0,1,6.28705e-8,0,0,1,6.29587e-8,0,0,1,6.33441e-8,0,0,.999999,6.44087e-8,0,0,.999998,6.67856e-8,0,0,.999997,7.15889e-8,0,0,.999995,8.09577e-8,0,0,.999989,9.92764e-8,0,0,.999983,1.35834e-7,0,0,.999974,2.10482e-7,0,0,.999959,3.65215e-7,0,0,.999939,6.86693e-7,0,0,.999911,13472e-10,0,0,.999868,26731e-10,0,0,.999804,524756e-11,0,0,.9997,100403e-10,0,0,.99951,185019e-10,0,0,.999078,322036e-10,0,620676e-11,.997428,470002e-10,0,341552e-9,.99162,287123e-10,0,.00143727,.987479,234706e-10,0,.00349201,.983582,260083e-10,0,.0066242,.979186,337927e-10,0,.0109113,.97325,454689e-10,0,.0164064,.965221,573759e-10,0,.0231463,.957262,544114e-10,0,.0311571,.952211,587006e-10,0,.0404572,.946631,692256e-10,0,.0510592,.939391,787819e-10,0,.0629723,.929795,792368e-10,0,.0762025,.91965,875075e-10,0,.090753,.907737,950903e-10,0,.106626,.893899,972963e-10,0,.123822,.880239,10459e-8,0,.142337,.866562,107689e-9,0,.16217,.85164,113081e-9,0,.183314,.835021,116636e-9,0,.20576,.817311,120074e-9,0,.229496,.798845,121921e-9,0,.254502,.780479,12475e-8,0,.280753,.760694,125255e-9,0,.308212,.740142,126719e-9,0,.336825,.719248,12636e-8,0,.366517,.698209,126712e-9,0,.397167,.676398,125769e-9,0,.428578,.654378,124432e-9,0,.460318,.632484,123272e-9,0,.492064,.610113,12085e-8,0,.52381,.587931,118411e-9,0,.555556,.565872,11569e-8,0,.587302,.543814,112521e-9,0,.619048,.522265,109737e-9,0,.650794,.500835,106228e-9,0,.68254,.479818,102591e-9,0,.714286,.459258,991288e-10,0,.746032,.439061,952325e-10,0,.777778,.419552,91895e-9,0,.809524,.400399,879051e-10,0,.84127,.381976,844775e-10,0,.873016,.364009,806316e-10,0,.904762,.346761,771848e-10,0,.936508,.330049,735429e-10,0,.968254,.314018,702103e-10,0,1,1,1.39968e-7,0,0,1,1.39979e-7,0,0,1,1.40145e-7,0,0,1,1.4087e-7,0,0,.999999,1.42865e-7,0,0,.999998,1.47279e-7,0,0,.999997,1.56057e-7,0,0,.999992,1.7276e-7,0,0,.999989,2.04352e-7,0,0,.99998,2.6494e-7,0,0,.999969,3.83435e-7,0,0,.999953,6.18641e-7,0,0,.999929,108755e-11,0,0,.999898,201497e-11,0,0,.999849,381346e-11,0,0,.999778,719815e-11,0,0,.999661,133215e-10,0,0,.999451,238313e-10,0,0,.998936,401343e-10,0,113724e-9,.99662,517346e-10,0,820171e-9,.991094,304323e-10,0,.00238143,.987487,281757e-10,0,.00493527,.983731,320048e-10,0,.00856859,.979647,423905e-10,0,.0133393,.973837,562935e-10,0,.0192863,.96584,677442e-10,0,.0264369,.956309,623073e-10,0,.03481,.951523,704131e-10,0,.0444184,.946003,836594e-10,0,.0552713,.938454,911736e-10,0,.0673749,.929279,938264e-10,0,.0807329,.919239,103754e-9,0,.0953479,.907293,109928e-9,0,.111221,.893936,115257e-9,0,.128352,.879674,122265e-9,0,.14674,.865668,125733e-9,0,.166382,.850998,132305e-9,0,.187276,.834498,134844e-9,0,.209413,.816903,139276e-9,0,.232786,.798235,140984e-9,0,.257382,.779724,14378e-8,0,.283181,.760251,144623e-9,0,.310156,.739808,145228e-9,0,.338269,.718762,14539e-8,0,.367461,.697815,144432e-9,0,.397646,.67631,143893e-9,0,.428685,.654278,141846e-9,0,.460318,.632347,13935e-8,0,.492064,.610296,137138e-9,0,.52381,.588039,133806e-9,0,.555556,.566218,130755e-9,0,.587302,.544346,127128e-9,0,.619048,.522701,123002e-9,0,.650794,.501542,119443e-9,0,.68254,.480508,115055e-9,0,.714286,.460092,111032e-9,0,.746032,.440021,106635e-9,0,.777778,.420446,102162e-9,0,.809524,.401512,98184e-9,0,.84127,.38299,936497e-10,0,.873016,.365232,89813e-9,0,.904762,.347865,853073e-10,0,.936508,.331342,817068e-10,0,.968254,.315202,773818e-10,0,1,1,2.9368e-7,0,0,1,2.937e-7,0,0,1,2.93998e-7,0,0,1,2.95298e-7,0,0,.999999,2.98865e-7,0,0,.999998,3.067e-7,0,0,.999995,3.22082e-7,0,0,.999992,3.50767e-7,0,0,.999986,4.03538e-7,0,0,.999976,5.01372e-7,0,0,.999964,6.8562e-7,0,0,.999945,10374e-10,0,0,.999919,171269e-11,0,0,.999882,300175e-11,0,0,.999829,542144e-11,0,0,.999749,984182e-11,0,0,.99962,176213e-10,0,0,.999382,305995e-10,0,138418e-10,.998751,496686e-10,0,389844e-9,.995344,510733e-10,0,.00150343,.990768,345829e-10,0,.00352451,.987464,342841e-10,0,.00655379,.983846,399072e-10,0,.0106554,.980007,533219e-10,0,.0158723,.974494,696992e-10,0,.0222333,.96622,776754e-10,0,.029758,.956273,747718e-10,0,.0384596,.950952,864611e-10,0,.0483473,.945215,100464e-9,0,.0594266,.937287,103729e-9,0,.0717019,.928649,111665e-9,0,.0851752,.918791,12353e-8,0,.0998479,.906685,127115e-9,0,.115721,.893706,13628e-8,0,.132794,.879248,142427e-9,0,.151067,.864685,148091e-9,0,.170538,.850032,153517e-9,0,.191204,.833853,157322e-9,0,.213063,.816353,161086e-9,0,.236107,.797834,164111e-9,0,.260329,.778831,165446e-9,0,.285714,.759756,167492e-9,0,.312243,.739419,166928e-9,0,.339887,.718491,167e-6,0,.368604,.697392,165674e-9,0,.398329,.676102,163815e-9,0,.428961,.654243,162003e-9,0,.460331,.632176,158831e-9,0,.492064,.610407,155463e-9,0,.52381,.588394,152062e-9,0,.555556,.56645,147665e-9,0,.587302,.5449,14375e-8,0,.619048,.523276,138905e-9,0,.650794,.502179,134189e-9,0,.68254,.481359,129392e-9,0,.714286,.46092,124556e-9,0,.746032,.441084,11957e-8,0,.777778,.421517,114652e-9,0,.809524,.402721,109688e-9,0,.84127,.384222,104667e-9,0,.873016,.366534,999633e-10,0,.904762,.349205,950177e-10,0,.936508,.332702,907301e-10,0,.968254,.316599,859769e-10,0,1,1,5.85473e-7,0,0,1,5.85507e-7,0,0,1,5.8602e-7,0,0,.999999,5.88259e-7,0,0,.999999,5.94381e-7,0,0,.999998,6.07754e-7,0,0,.999995,6.33729e-7,0,0,.99999,6.8137e-7,0,0,.999984,7.67003e-7,0,0,.999973,9.21212e-7,0,0,.999959,120218e-11,0,0,.999936,172024e-11,0,0,.999907,268088e-11,0,0,.999866,445512e-11,0,0,.999806,768481e-11,0,0,.999716,1342e-8,0,0,.999576,232473e-10,0,0,.9993,391694e-10,0,129917e-9,.998498,608429e-10,0,845035e-9,.994132,489743e-10,0,.00237616,.99031,384644e-10,0,.00484456,.987409,421768e-10,0,.00832472,.983981,504854e-10,0,.0128643,.980268,671028e-10,0,.0184947,.974875,852749e-10,0,.025237,.966063,85531e-9,0,.0331046,.956779,900588e-10,0,.0421067,.950259,10577e-8,0,.0522487,.944239,119458e-9,0,.0635343,.936341,122164e-9,0,.0759654,.928047,134929e-9,0,.0895434,.918065,145544e-9,0,.104269,.906267,150531e-9,0,.120142,.893419,161652e-9,0,.137163,.878758,16593e-8,0,.15533,.863699,174014e-9,0,.174645,.848876,177877e-9,0,.195106,.833032,184049e-9,0,.21671,.815557,186088e-9,0,.239454,.797323,19054e-8,0,.263332,.778124,191765e-9,0,.288336,.758929,192535e-9,0,.314451,.738979,192688e-9,0,.341658,.718213,191522e-9,0,.369924,.696947,190491e-9,0,.399202,.675807,187913e-9,0,.429416,.654147,184451e-9,0,.460447,.63229,181442e-9,0,.492064,.610499,177139e-9,0,.523809,.588747,172596e-9,0,.555555,.566783,167457e-9,0,.587301,.545359,162518e-9,0,.619048,.523984,156818e-9,0,.650794,.502917,151884e-9,0,.68254,.482294,145514e-9,0,.714286,.461945,140199e-9,0,.746032,.442133,134101e-9,0,.777778,.422705,128374e-9,0,.809524,.403916,122996e-9,0,.84127,.38554,116808e-9,0,.873016,.367909,111973e-9,0,.904762,.350651,105938e-9,0,.936508,.334208,101355e-9,0,.968254,.318123,957629e-10,0,1,1,111633e-11,0,0,1,111639e-11,0,0,1,111725e-11,0,0,1,112096e-11,0,0,.999999,11311e-10,0,0,.999997,115315e-11,0,0,.999995,11956e-10,0,0,.999989,127239e-11,0,0,.999981,140772e-11,0,0,.999969,164541e-11,0,0,.999952,206607e-11,0,0,.999928,281783e-11,0,0,.999895,416835e-11,0,0,.999848,658728e-11,0,0,.999781,108648e-10,0,0,.999682,182579e-10,0,0,.999523,306003e-10,0,159122e-10,.999205,499862e-10,0,391184e-9,.998131,73306e-9,0,.00147534,.993334,513229e-10,0,.0034227,.99016,467783e-10,0,.00632232,.987321,523413e-10,0,.0102295,.984099,64267e-9,0,.0151794,.980432,843042e-10,0,.0211947,.974976,102819e-9,0,.0282899,.966429,996234e-10,0,.0364739,.957633,111074e-9,0,.0457522,.949422,128644e-9,0,.0561278,.943045,140076e-9,0,.0676023,.935448,146349e-9,0,.0801762,.927225,161854e-9,0,.0938499,.917033,169135e-9,0,.108623,.905762,179987e-9,0,.124496,.892879,189832e-9,0,.141469,.878435,195881e-9,0,.159541,.863114,20466e-8,0,.178713,.84776,209473e-9,0,.198985,.832084,214861e-9,0,.220355,.814915,217695e-9,0,.242823,.796711,220313e-9,0,.266385,.777603,22313e-8,0,.291036,.757991,222471e-9,0,.316767,.738371,222869e-9,0,.343563,.717872,221243e-9,0,.371402,.696619,218089e-9,0,.400248,.675379,21562e-8,0,.430047,.65411,21169e-8,0,.460709,.63241,206947e-9,0,.492079,.61046,201709e-9,0,.52381,.58903,196753e-9,0,.555556,.567267,189637e-9,0,.587302,.545886,184735e-9,0,.619048,.524714,177257e-9,0,.650794,.503789,171424e-9,0,.68254,.483204,164688e-9,0,.714286,.462976,157172e-9,0,.746032,.443294,151341e-9,0,.777778,.423988,143737e-9,0,.809524,.405325,138098e-9,0,.84127,.386981,130698e-9,0,.873016,.369436,125276e-9,0,.904762,.35219,118349e-9,0,.936508,.335804,11312e-8,0,.968254,.319749,106687e-9,0,1,1,204685e-11,0,0,1,204694e-11,0,0,1,204831e-11,0,0,.999999,205428e-11,0,0,.999999,207056e-11,0,0,.999997,210581e-11,0,0,.999993,21732e-10,0,0,.999987,229365e-11,0,0,.999979,250243e-11,0,0,.999965,286127e-11,0,0,.999947,348028e-11,0,0,.999918,455588e-11,0,0,.999881,643303e-11,0,0,.999828,970064e-11,0,0,.999753,153233e-10,0,0,.999642,24793e-9,0,0,.999464,402032e-10,0,122947e-9,.999089,635852e-10,0,807414e-9,.997567,857026e-10,0,.00227206,.992903,594912e-10,0,.00462812,.990011,578515e-10,0,.00794162,.987192,65399e-9,0,.0122534,.98418,819675e-10,0,.0175888,.980491,105514e-9,0,.0239635,.974779,121532e-9,0,.031387,.96675,119144e-9,0,.0398644,.958248,136125e-9,0,.0493982,.948884,155408e-9,0,.0599896,.941673,162281e-9,0,.0716382,.934521,176754e-9,0,.0843437,.926205,192873e-9,0,.0981056,.916089,200038e-9,0,.112923,.904963,213624e-9,0,.128796,.892089,221834e-9,0,.145725,.878028,232619e-9,0,.163709,.86249,238632e-9,0,.182749,.846587,247002e-9,0,.202847,.830988,250702e-9,0,.224001,.814165,255562e-9,0,.246214,.796135,257505e-9,0,.269482,.777052,258625e-9,0,.293805,.757201,258398e-9,0,.319176,.737655,256714e-9,0,.345587,.717477,255187e-9,0,.373021,.696433,251792e-9,0,.401454,.675084,247223e-9,0,.430844,.653907,242213e-9,0,.461125,.632561,237397e-9,0,.492187,.610658,229313e-9,0,.52381,.589322,224402e-9,0,.555556,.567857,216116e-9,0,.587302,.54652,209124e-9,0,.619048,.525433,201601e-9,0,.650794,.504679,192957e-9,0,.68254,.484203,186052e-9,0,.714286,.464203,177672e-9,0,.746032,.444549,170005e-9,0,.777778,.425346,162401e-9,0,.809524,.406706,1544e-7,0,.84127,.388576,147437e-9,0,.873016,.37094,139493e-9,0,.904762,.353996,133219e-9,0,.936508,.337391,125573e-9,0,.968254,.321648,119867e-9,0,1,1,362511e-11,0,0,1,362525e-11,0,0,1,362739e-11,0,0,.999999,363673e-11,0,0,.999998,366214e-11,0,0,.999996,371698e-11,0,0,.999992,382116e-11,0,0,.999986,400554e-11,0,0,.999976,432058e-11,0,0,.999961,485194e-11,0,0,.999938,574808e-11,0,0,.999908,726643e-11,0,0,.999865,984707e-11,0,0,.999807,142217e-10,0,0,.999723,215581e-10,0,0,.999602,336114e-10,0,119113e-10,.999398,527353e-10,0,355813e-9,.998946,805809e-10,0,.00137768,.996647,942908e-10,0,.00322469,.992298,668733e-10,0,.00597897,.989802,716564e-10,0,.00968903,.987019,821355e-10,0,.0143845,.984219,104555e-9,0,.0200831,.980425,131245e-9,0,.0267948,.974241,139613e-9,0,.034525,.967006,145931e-9,0,.0432757,.95893,167153e-9,0,.0530471,.949157,188146e-9,0,.0638386,.94062,194625e-9,0,.0756487,.933509,213721e-9,0,.0884762,.925088,229616e-9,0,.10232,.915178,239638e-9,0,.117178,.904093,254814e-9,0,.133051,.891337,263685e-9,0,.149939,.877326,274789e-9,0,.167841,.861794,280534e-9,0,.18676,.845758,289534e-9,0,.206696,.829792,294446e-9,0,.22765,.813037,296877e-9,0,.249625,.795285,300217e-9,0,.27262,.776323,299826e-9,0,.296636,.756673,299787e-9,0,.321671,.736856,297867e-9,0,.347718,.716883,294052e-9,0,.374768,.696089,289462e-9,0,.402804,.67505,285212e-9,0,.431796,.653509,27653e-8,0,.461695,.63258,271759e-9,0,.49242,.61104,262811e-9,0,.523822,.589567,255151e-9,0,.555556,.568322,246434e-9,0,.587302,.547235,237061e-9,0,.619048,.52616,228343e-9,0,.650794,.505716,219236e-9,0,.68254,.485274,209595e-9,0,.714286,.465411,201011e-9,0,.746032,.445854,19109e-8,0,.777778,.426911,182897e-9,0,.809524,.408222,173569e-9,0,.84127,.390307,165496e-9,0,.873016,.372624,156799e-9,0,.904762,.355804,14917e-8,0,.936508,.33924,140907e-9,0,.968254,.323534,134062e-9,0,1,1,622487e-11,0,0,1,62251e-10,0,0,1,622837e-11,0,0,.999999,624259e-11,0,0,.999998,628127e-11,0,0,.999996,636451e-11,0,0,.999991,65218e-10,0,0,.999984,679782e-11,0,0,.999973,726361e-11,0,0,.999955,803644e-11,0,0,.999931,931397e-11,0,0,.999896,114299e-10,0,0,.999847,149402e-10,0,0,.999784,207461e-10,0,0,.999692,302493e-10,0,0,.999554,454957e-10,0,997275e-10,.999326,690762e-10,0,724813e-9,.998757,101605e-9,0,.0020972,.995367,958745e-10,0,.00432324,.99209,832808e-10,0,.00746347,.989517,887601e-10,0,.0115534,.987008,10564e-8,0,.0166134,.98421,133179e-9,0,.0226552,.98021,161746e-9,0,.0296838,.973676,161821e-9,0,.0377016,.967052,178635e-9,0,.0467079,.959385,206765e-9,0,.0567013,.949461,22476e-8,0,.0676796,.939578,23574e-8,0,.0796403,.932416,25893e-8,0,.0925812,.923759,271228e-9,0,.106501,.914223,289165e-9,0,.121397,.902942,301156e-9,0,.13727,.890419,313852e-9,0,.15412,.876639,324408e-9,0,.171946,.861316,33249e-8,0,.190751,.84496,338497e-9,0,.210537,.828427,345861e-9,0,.231305,.811871,347863e-9,0,.253057,.794397,350225e-9,0,.275797,.775726,349915e-9,0,.299525,.75617,347297e-9,0,.324242,.736091,344232e-9,0,.349947,.716213,340835e-9,0,.376633,.695736,332369e-9,0,.404289,.674961,327943e-9,0,.432895,.653518,318533e-9,0,.462415,.632574,310391e-9,0,.492788,.61134,300755e-9,0,.523909,.590017,290506e-9,0,.555556,.568752,280446e-9,0,.587302,.548061,269902e-9,0,.619048,.52711,258815e-9,0,.650794,.506682,248481e-9,0,.68254,.486524,237141e-9,0,.714286,.466812,226872e-9,0,.746032,.44732,216037e-9,0,.777778,.428473,205629e-9,0,.809524,.409921,195691e-9,0,.84127,.392028,185457e-9,0,.873016,.374606,176436e-9,0,.904762,.357601,166508e-9,0,.936508,.341348,158385e-9,0,.968254,.32542,149203e-9,0,1,1,103967e-10,0,0,1,10397e-9,0,0,1,104019e-10,0,0,.999999,104231e-10,0,0,.999998,104806e-10,0,0,.999995,106042e-10,0,0,.999991,108366e-10,0,0,.999982,112415e-10,0,0,.999968,119174e-10,0,0,.99995,130227e-10,0,0,.999922,148176e-10,0,0,.999884,177303e-10,0,0,.99983,224564e-10,0,0,.999758,300966e-10,0,0,.999654,423193e-10,0,549083e-11,.999503,614848e-10,0,296087e-9,.999237,903576e-10,0,.00123144,.998491,1271e-7,0,.00295954,.994594,107754e-9,0,.00555829,.99178,103025e-9,0,.00907209,.989265,11154e-8,0,.0135257,.986998,136296e-9,0,.0189327,.984137,169154e-9,0,.0252993,.979798,196671e-9,0,.0326272,.97337,196678e-9,0,.0409157,.967239,223121e-9,0,.0501623,.959543,253809e-9,0,.0603638,.949466,265972e-9,0,.0715171,.939074,288372e-9,0,.0836187,.931118,310983e-9,0,.0966657,.922525,325561e-9,0,.110656,.912983,345725e-9,0,.125588,.901617,3556e-7,0,.141461,.889487,374012e-9,0,.158275,.875787,383445e-9,0,.176031,.860654,393972e-9,0,.19473,.844417,400311e-9,0,.214374,.82741,405004e-9,0,.234967,.810545,407378e-9,0,.256512,.793312,407351e-9,0,.279011,.774847,406563e-9,0,.302468,.755621,404903e-9,0,.326887,.735511,397486e-9,0,.352266,.715435,39357e-8,0,.378605,.695403,384739e-9,0,.405897,.674681,376108e-9,0,.43413,.65359,365997e-9,0,.463277,.632471,354957e-9,0,.493295,.61151,343593e-9,0,.524106,.59064,331841e-9,0,.555561,.569386,318891e-9,0,.587302,.548785,3072e-7,0,.619048,.528146,29361e-8,0,.650794,.507872,281709e-9,0,.68254,.487805,268627e-9,0,.714286,.468196,255887e-9,0,.746032,.448922,243997e-9,0,.777778,.430093,231662e-9,0,.809524,.411845,220339e-9,0,.84127,.393808,208694e-9,0,.873016,.376615,198045e-9,0,.904762,.359655,187375e-9,0,.936508,.343452,177371e-9,0,.968254,.32765,167525e-9,0,1,1,169351e-10,0,0,1,169356e-10,0,0,1,169427e-10,0,0,.999999,169736e-10,0,0,.999998,170575e-10,0,0,.999995,172372e-10,0,0,.99999,175739e-10,0,0,.999979,181568e-10,0,0,.999966,191206e-10,0,0,.999944,20677e-9,0,0,.999912,231644e-10,0,0,.999869,271268e-10,0,0,.999811,334272e-10,0,0,.99973,433979e-10,0,0,.999617,590083e-10,0,680315e-10,.999445,829497e-10,0,612796e-9,.999138,118019e-9,0,.00187408,.998095,156712e-9,0,.00395791,.993919,125054e-9,0,.00692144,.991333,126091e-9,0,.0107962,.989226,144912e-9,0,.0155986,.986954,175737e-9,0,.0213364,.983982,213883e-9,0,.0280114,.979128,234526e-9,0,.0356226,.973327,243725e-9,0,.0441668,.967416,2773e-7,0,.0536399,.959729,308799e-9,0,.0640376,.949758,322447e-9,0,.0753554,.939173,350021e-9,0,.0875893,.9296,370089e-9,0,.100736,.921181,391365e-9,0,.114793,.91164,413636e-9,0,.129759,.900435,427068e-9,0,.145632,.888183,441046e-9,0,.162412,.874772,454968e-9,0,.180101,.859566,461882e-9,0,.1987,.843579,471556e-9,0,.218213,.826453,474335e-9,0,.238641,.809164,477078e-9,0,.259989,.792179,47755e-8,0,.282262,.773866,472573e-9,0,.305464,.754944,469765e-9,0,.329599,.735133,462371e-9,0,.35467,.714858,453674e-9,0,.380678,.694829,443888e-9,0,.407622,.674453,432052e-9,0,.435493,.653685,420315e-9,0,.464275,.632666,406829e-9,0,.493938,.611676,392234e-9,0,.524422,.591193,379208e-9,0,.555624,.570145,36319e-8,0,.587302,.549566,349111e-9,0,.619048,.529278,334166e-9,0,.650794,.509026,318456e-9,0,.68254,.489186,30449e-8,0,.714286,.469662,289051e-9,0,.746032,.450691,275494e-9,0,.777778,.431841,261437e-9,0,.809524,.413752,247846e-9,0,.84127,.395951,235085e-9,0,.873016,.378633,222245e-9,0,.904762,.36194,210533e-9,0,.936508,.345599,198494e-9,0,.968254,.329999,188133e-9,0,1,1,269663e-10,0,0,1,26967e-9,0,0,1,269772e-10,0,0,.999999,270214e-10,0,0,.999998,271415e-10,0,0,.999994,27398e-9,0,0,.999988,278771e-10,0,0,.999977,287019e-10,0,0,.999961,300544e-10,0,0,.999937,322138e-10,0,0,.999904,356163e-10,0,0,.999854,409465e-10,0,0,.99979,492651e-10,0,0,.999699,621722e-10,0,8.8288e-7,.999572,819715e-10,0,223369e-9,.999381,111689e-9,0,.00105414,.999016,153862e-9,0,.0026493,.997437,187667e-9,0,.00508608,.993545,155672e-9,0,.00840554,.991135,161455e-9,0,.012629,.989157,188241e-9,0,.0177661,.986874,226229e-9,0,.0238198,.983714,268668e-9,0,.0307887,.978301,277109e-9,0,.0386688,.973227,303446e-9,0,.0474554,.967317,341851e-9,0,.0571428,.959477,370885e-9,0,.0677256,.950012,392753e-9,0,.0791988,.939484,42781e-8,0,.0915576,.928135,443866e-9,0,.104798,.919819,472959e-9,0,.118918,.910049,491551e-9,0,.133915,.899181,512616e-9,0,.149788,.886881,523563e-9,0,.166537,.87359,540183e-9,0,.184164,.858613,547386e-9,0,.202669,.842809,554809e-9,0,.222056,.825727,558316e-9,0,.242329,.808086,557824e-9,0,.263492,.790728,556346e-9,0,.285551,.772987,552672e-9,0,.30851,.7541,543738e-9,0,.332376,.734669,536107e-9,0,.357153,.714411,523342e-9,0,.382845,.694196,512238e-9,0,.409454,.674252,497465e-9,0,.436977,.65357,481096e-9,0,.465404,.632999,467054e-9,0,.494713,.611994,448771e-9,0,.524864,.591604,431889e-9,0,.555779,.571134,415238e-9,0,.587302,.550528,396369e-9,0,.619048,.530292,379477e-9,0,.650794,.510364,361488e-9,0,.68254,.490749,343787e-9,0,.714286,.471266,327822e-9,0,.746032,.452462,310626e-9,0,.777778,.433907,295352e-9,0,.809524,.415659,279179e-9,0,.84127,.398138,264685e-9,0,.873016,.380833,249905e-9,0,.904762,.364247,236282e-9,0,.936508,.348041,222905e-9,0,.968254,.332389,210522e-9,0,1,1,420604e-10,0,0,1,420614e-10,0,0,1,420757e-10,0,0,.999999,42138e-9,0,0,.999997,423067e-10,0,0,.999993,426668e-10,0,0,.999986,433372e-10,0,0,.999974,444857e-10,0,0,.999956,463554e-10,0,0,.99993,493105e-10,0,0,.999892,539077e-10,0,0,.999838,610005e-10,0,0,.999767,718822e-10,0,0,.999666,884581e-10,0,365471e-10,.999525,113398e-9,0,485623e-9,.999311,150043e-9,0,.00162096,.998865,200063e-9,0,.00355319,.996278,211014e-9,0,.00633818,.992956,189672e-9,0,.0100043,.991017,210262e-9,0,.0145648,.989055,244292e-9,0,.0200237,.986741,290481e-9,0,.0263798,.983288,334303e-9,0,.033629,.977784,340307e-9,0,.0417652,.973037,377864e-9,0,.0507821,.967181,4239e-7,0,.060673,.958971,443854e-9,0,.0714314,.950093,483039e-9,0,.0830518,.939552,517934e-9,0,.0955288,.927678,539449e-9,0,.108859,.918278,568604e-9,0,.123038,.908449,588505e-9,0,.138065,.897713,612473e-9,0,.153938,.885533,625575e-9,0,.170657,.872131,63854e-8,0,.188224,.857517,647034e-9,0,.20664,.841796,65209e-8,0,.225909,.824726,6544e-7,0,.246035,.807297,655744e-9,0,.267022,.789058,646716e-9,0,.288878,.77189,643898e-9,0,.311607,.753082,629973e-9,0,.335216,.7341,621564e-9,0,.359713,.714094,605171e-9,0,.385103,.693839,588752e-9,0,.41139,.673891,573294e-9,0,.438576,.653565,552682e-9,0,.466656,.633326,533446e-9,0,.495617,.612582,514635e-9,0,.525431,.59205,49303e-8,0,.556041,.571918,471842e-9,0,.587338,.551572,451713e-9,0,.619048,.531553,430049e-9,0,.650794,.51175,410445e-9,0,.68254,.49238,390098e-9,0,.714286,.473143,370033e-9,0,.746032,.45423,351205e-9,0,.777778,.435963,332049e-9,0,.809524,.41787,315021e-9,0,.84127,.400387,297315e-9,0,.873016,.383332,281385e-9,0,.904762,.366665,265397e-9,0,.936508,.350633,250601e-9,0,.968254,.334964,23589e-8,0,1,1,643736e-10,0,0,1,64375e-9,0,0,1,643947e-10,0,0,.999999,64481e-9,0,0,.999997,647143e-10,0,0,.999994,652119e-10,0,0,.999985,661359e-10,0,0,.999972,677116e-10,0,0,.999952,702599e-10,0,0,.999922,742517e-10,0,0,.99988,803906e-10,0,0,.99982,897315e-10,0,0,.999741,103838e-9,0,0,.999629,12496e-8,0,149024e-9,.999474,156161e-9,0,861027e-9,.999229,201034e-9,0,.00231198,.998662,259069e-9,0,.00458147,.995299,245439e-9,0,.00770895,.992732,24498e-8,0,.0117126,.990847,273211e-9,0,.0165989,.988911,316492e-9,0,.0223674,.98654,37161e-8,0,.0290135,.982636,410352e-9,0,.0365309,.977346,421756e-9,0,.0449117,.972909,475578e-9,0,.0541481,.966821,522482e-9,0,.0642326,.958686,545008e-9,0,.075158,.949754,589286e-9,0,.0869181,.939184,619995e-9,0,.0995074,.927505,654266e-9,0,.112922,.916606,682362e-9,0,.127157,.906707,704286e-9,0,.142212,.895937,725909e-9,0,.158085,.883913,743939e-9,0,.174776,.870642,755157e-9,0,.192287,.856241,764387e-9,0,.210619,.84069,771032e-9,0,.229775,.823728,765906e-9,0,.249761,.806481,767604e-9,0,.270582,.787924,754385e-9,0,.292243,.770588,749668e-9,0,.314753,.751991,731613e-9,0,.338118,.733407,717655e-9,0,.362347,.713688,700604e-9,0,.387447,.693595,678765e-9,0,.413424,.673426,657042e-9,0,.440284,.65359,635892e-9,0,.468027,.633576,611569e-9,0,.496645,.613144,586011e-9,0,.526122,.592711,563111e-9,0,.556417,.572722,537699e-9,0,.587451,.552762,512556e-9,0,.619048,.532985,489757e-9,0,.650794,.513219,464139e-9,0,.68254,.493992,442193e-9,0,.714286,.47509,418629e-9,0,.746032,.456287,397045e-9,0,.777778,.438152,375504e-9,0,.809524,.420294,35492e-8,0,.84127,.402749,335327e-9,0,.873016,.385879,316422e-9,0,.904762,.369352,298333e-9,0,.936508,.353301,281417e-9,0,.968254,.337781,265203e-9,0,1,1,968267e-10,0,0,1,968284e-10,0,0,1,968556e-10,0,0,.999999,969733e-10,0,0,.999997,972913e-10,0,0,.999993,979688e-10,0,0,.999984,992239e-10,0,0,.999969,101356e-9,0,0,.999946,104784e-9,0,0,.999913,110111e-9,0,0,.999868,118217e-9,0,0,.999801,130396e-9,0,0,.999712,148523e-9,0,124907e-10,.999589,175233e-9,0,355405e-9,.999416,213999e-9,0,.0013528,.999136,268529e-9,0,.00312557,.998367,333088e-9,0,.00573045,.994701,304757e-9,0,.00919397,.992497,318031e-9,0,.0135261,.990608,353863e-9,0,.0187278,.988715,409044e-9,0,.0247947,.986241,472967e-9,0,.0317196,.981696,495104e-9,0,.039494,.977097,532873e-9,0,.0481087,.972583,594447e-9,0,.0575549,.966142,636867e-9,0,.0678242,.95823,669899e-9,0,.0789089,.949677,719499e-9,0,.0908023,.939226,750584e-9,0,.103499,.927501,793183e-9,0,.116993,.915199,81995e-8,0,.131282,.90498,847654e-9,0,.146364,.894243,868929e-9,0,.162237,.882154,884278e-9,0,.178902,.869161,898108e-9,0,.196358,.854751,901254e-9,0,.21461,.839368,90679e-8,0,.23366,.822874,901541e-9,0,.253512,.805514,897297e-9,0,.274174,.78716,881856e-9,0,.29565,.769061,870032e-9,0,.31795,.751,851719e-9,0,.341081,.732614,830671e-9,0,.365053,.713171,806569e-9,0,.389874,.693472,78338e-8,0,.415553,.673528,756404e-9,0,.442098,.653397,726872e-9,0,.469512,.633781,700494e-9,0,.497794,.613877,67105e-8,0,.526935,.593506,640361e-9,0,.556908,.573667,613502e-9,0,.587657,.553932,583177e-9,0,.61906,.534345,554375e-9,0,.650794,.515042,527811e-9,0,.68254,.495674,499367e-9,0,.714286,.477132,47429e-8,0,.746032,.458609,447726e-9,0,.777778,.440354,424205e-9,0,.809524,.422765,399549e-9,0,.84127,.405472,378315e-9,0,.873016,.388482,355327e-9,0,.904762,.372191,336122e-9,0,.936508,.356099,315247e-9,0,.968254,.340737,29794e-8,0,1,1,143327e-9,0,0,1,14333e-8,0,0,1,143366e-9,0,0,.999999,143524e-9,0,0,.999996,143952e-9,0,0,.999991,144862e-9,0,0,.999981,146544e-9,0,0,.999966,149391e-9,0,0,.999941,153946e-9,0,0,.999905,160971e-9,0,0,.999852,171562e-9,0,0,.99978,18729e-8,0,0,.999681,210386e-9,0,826239e-10,.999546,243906e-9,0,664807e-9,.999352,291739e-9,0,.00196192,.999027,357419e-9,0,.00405941,.997886,422349e-9,0,.00699664,.99419,385008e-9,0,.0107896,.99214,409775e-9,0,.0154415,.990274,456418e-9,0,.0209488,.988455,527008e-9,0,.0273037,.985804,597685e-9,0,.0344969,.98103,613124e-9,0,.0425183,.976674,668321e-9,0,.0513575,.972021,736985e-9,0,.0610046,.965274,773789e-9,0,.0714508,.958046,830852e-9,0,.0826877,.949333,875766e-9,0,.0947085,.939135,917088e-9,0,.107507,.927119,952244e-9,0,.121078,.91469,990626e-9,0,.135419,.903006,.00101304,0,.150526,.892368,.00103834,0,.166399,.880231,.00105002,0,.183038,.867432,.00106331,0,.200443,.853208,.00106783,0,.218618,.837956,.00106458,0,.237566,.821772,.00105945,0,.257291,.804328,.00104685,0,.2778,.786465,.00103178,0,.2991,.768004,.00101077,0,.321199,.74972,985504e-9,0,.344106,.731682,962893e-9,0,.36783,.712813,932146e-9,0,.392383,.693139,89871e-8,0,.417774,.673566,869678e-9,0,.444013,.653483,835525e-9,0,.471107,.633891,799853e-9,0,.49906,.614433,766838e-9,0,.527869,.594586,732227e-9,0,.557517,.574769,696442e-9,0,.587966,.555149,663935e-9,0,.61913,.535898,629826e-9,0,.650794,.516753,596486e-9,0,.68254,.497816,567078e-9,0,.714286,.479034,534399e-9,0,.746032,.460975,507013e-9,0,.777778,.442935,477421e-9,0,.809524,.425263,451101e-9,0,.84127,.408248,424964e-9,0,.873016,.391339,39993e-8,0,.904762,.37513,377619e-9,0,.936508,.359172,354418e-9,0,.968254,.343876,334823e-9,0,1,1,209042e-9,0,0,1,209045e-9,0,0,1,209093e-9,0,0,.999999,209304e-9,0,0,.999996,209871e-9,0,0,.999991,211078e-9,0,0,.999979,213304e-9,0,0,.999963,217061e-9,0,0,.999933,223042e-9,0,0,.999894,232206e-9,0,0,.999837,245901e-9,0,0,.999756,266023e-9,0,102927e-11,.999648,295204e-9,0,233468e-9,.999499,336958e-9,0,.00108237,.999283,395563e-9,0,.00268832,.998896,473785e-9,0,.00511138,.997006,520008e-9,0,.00837705,.993819,497261e-9,0,.0124928,.991632,523722e-9,0,.0174561,.989875,587258e-9,0,.0232596,.988109,676329e-9,0,.0298932,.985155,747701e-9,0,.0373453,.980479,768803e-9,0,.0456045,.976271,841054e-9,0,.0546593,.971347,911469e-9,0,.0644994,.964528,953057e-9,0,.0751152,.957632,.00102221,0,.0864981,.948681,.00106122,0,.0986407,.938716,.00111857,0,.111537,.926629,.00114762,0,.125182,.914025,.00118995,0,.139571,.901026,.00121228,0,.154703,.890358,.00123946,0,.170576,.878283,.0012527,0,.18719,.865459,.00125536,0,.204547,.851407,.00126134,0,.222648,.836276,.00124759,0,.241498,.820436,.00124443,0,.261101,.803253,.00122071,0,.281465,.785562,.00120107,0,.302595,.76718,.00117762,0,.324501,.748551,.00114289,0,.347192,.730564,.00110872,0,.370679,.712253,.00107636,0,.394973,.692867,.00103646,0,.420085,.673695,996793e-9,0,.446027,.653912,95675e-8,0,.47281,.634129,916739e-9,0,.500441,.615004,874401e-9,0,.528921,.595587,833411e-9,0,.558244,.575965,794556e-9,0,.588384,.5566,75196e-8,0,.619281,.537428,716381e-9,0,.650795,.518623,676558e-9,0,.68254,.499964,64074e-8,0,.714286,.481356,605984e-9,0,.746032,.463279,570256e-9,0,.777778,.445673,540138e-9,0,.809524,.428032,507299e-9,0,.84127,.411112,479553e-9,0,.873016,.394444,450737e-9,0,.904762,.378247,424269e-9,0,.936508,.362415,399111e-9,0,.968254,.347103,375274e-9,0,1,1,300729e-9,0,0,1,300733e-9,0,0,1,300797e-9,0,0,.999998,301072e-9,0,0,.999996,301817e-9,0,0,.999989,303398e-9,0,0,.999977,306309e-9,0,0,.999958,311209e-9,0,0,.999927,318975e-9,0,0,.999884,330804e-9,0,0,.99982,34834e-8,0,0,.999733,373854e-9,0,326995e-10,.999613,410424e-9,0,477174e-9,.999447,462047e-9,0,.00161099,.999204,533322e-9,0,.00353153,.998725,624964e-9,0,.00627965,.995871,631786e-9,0,.0098693,.993194,632017e-9,0,.0143011,.991541,68923e-8,0,.019568,.989773,766892e-9,0,.0256593,.987647,863668e-9,0,.0325625,.984193,922089e-9,0,.0402647,.980016,970749e-9,0,.0487532,.975859,.00106027,0,.058016,.970514,.00112239,0,.0680419,.963625,.00117212,0,.0788208,.956959,.00125211,0,.0903439,.947956,.00129411,0,.102604,.93809,.00135879,0,.115594,.92659,.00139309,0,.129309,.913829,.00143253,0,.143745,.90005,.00145809,0,.158901,.888129,.0014748,0,.174774,.87607,.00148756,0,.191365,.863461,.00148714,0,.208674,.849594,.00148892,0,.226705,.834531,.00146496,0,.245461,.81903,.0014579,0,.264947,.802122,.00143039,0,.28517,.78445,.00139717,0,.306137,.766434,.00136312,0,.327857,.747816,.00132597,0,.350341,.729519,.00128323,0,.373598,.711454,.00123803,0,.397642,.692699,.00119097,0,.422485,.673723,.00114565,0,.448139,.654386,.00109552,0,.474619,.634673,.00104553,0,.501933,.615554,99985e-8,0,.530089,.596462,948207e-9,0,.559087,.577385,902299e-9,0,.588913,.558257,856448e-9,0,.619525,.5392,810395e-9,0,.650826,.520543,768558e-9,0,.68254,.502206,7239e-7,0,.714286,.48402,685794e-9,0,.746032,.465779,64471e-8,0,.777778,.448455,609583e-9,0,.809524,.431091,57227e-8,0,.84127,.414147,54042e-8,0,.873016,.39765,506545e-9,0,.904762,.381576,477635e-9,0,.936508,.365881,448446e-9,0,.968254,.350582,421424e-9,0,1,1,427144e-9,0,0,1,427151e-9,0,0,1,427232e-9,0,0,.999998,42759e-8,0,0,.999995,428555e-9,0,0,.999988,430603e-9,0,0,.999976,434368e-9,0,0,.999952,440688e-9,0,0,.999919,450667e-9,0,0,.999871,46578e-8,0,0,.999801,488024e-9,0,0,.999704,520092e-9,0,129791e-9,.999572,565553e-9,0,821056e-9,.999389,628906e-9,0,.00225241,.999114,714911e-9,0,.00449109,.998488,819218e-9,0,.00756249,.995234,80415e-8,0,.0114716,.993021,830181e-9,0,.0162131,.991407,902645e-9,0,.021776,.989625,996934e-9,0,.0281471,.987064,.00109707,0,.0353118,.983265,.00114353,0,.0432562,.979535,.0012272,0,.0519665,.975224,.00132642,0,.0614298,.969574,.00138092,0,.0716348,.963021,.00145896,0,.0825709,.956046,.00152834,0,.094229,.947136,.00158217,0,.106602,.937313,.0016347,0,.119682,.926073,.00168383,0,.133465,.913121,.00171627,0,.147947,.899165,.00174229,0,.163125,.885891,.00176137,0,.178998,.873783,.00176406,0,.195566,.861331,.00176156,0,.21283,.847569,.00175346,0,.230793,.832785,.00172753,0,.249459,.817442,.00170204,0,.268832,.800613,.00166576,0,.28892,.783597,.00162909,0,.30973,.76571,.0015826,0,.331271,.747021,.00153106,0,.353554,.728593,.00148036,0,.37659,.710661,.00142808,0,.400391,.692426,.00136906,0,.424973,.673623,.00131066,0,.450347,.65494,.00125569,0,.476531,.635448,.00119517,0,.503535,.616221,.00113828,0,.531372,.597531,.0010816,0,.560047,.578795,.00102673,0,.589554,.559892,970985e-9,0,.619869,.541307,919773e-9,0,.650923,.522608,868479e-9,0,.68254,.504484,82137e-8,0,.714286,.486603,772916e-9,0,.746032,.468802,730353e-9,0,.777778,.451172,684955e-9,0,.809524,.434348,647565e-9,0,.84127,.417445,605863e-9,0,.873016,.401077,571885e-9,0,.904762,.385039,536034e-9,0,.936508,.369483,504227e-9,0,.968254,.354272,473165e-9,0,1,1,599525e-9,0,0,1,599533e-9,0,0,1,599639e-9,0,0,.999998,600097e-9,0,0,.999994,601336e-9,0,0,.999987,603958e-9,0,0,.999972,608775e-9,0,0,.999949,616842e-9,0,0,.999912,629534e-9,0,0,.999857,648658e-9,0,0,.999781,676615e-9,0,538873e-11,.999674,716574e-9,0,308602e-9,.999528,772641e-9,0,.00127003,.999326,849806e-9,0,.00300783,.999009,952682e-9,0,.00556637,.998112,.00106394,0,.00895889,.994496,.00102228,0,.0131827,.992806,.00108586,0,.0182277,.991211,.0011759,0,.0240795,.989415,.00128955,0,.030723,.986499,.00139038,0,.0381418,.982679,.00144539,0,.046321,.978839,.00153954,0,.0552459,.974295,.00164417,0,.0649034,.968784,.00171517,0,.0752814,.962324,.00180282,0,.0863693,.954956,.00186387,0,.0981578,.94624,.00193817,0,.110639,.936517,.00198156,0,.123806,.925186,.00203042,0,.137655,.91252,.0020664,0,.15218,.898441,.00207822,0,.16738,.884394,.0020992,0,.183253,.871273,.00208748,0,.199799,.859057,.00208686,0,.21702,.845243,.00205519,0,.234918,.830723,.00202868,0,.253496,.815801,.00199501,0,.272761,.79914,.00194193,0,.292719,.782372,.00188824,0,.313377,.76482,.00183695,0,.334745,.746586,.00177418,0,.356833,.7281,.00170628,0,.379654,.709842,.00164063,0,.403221,.692019,.00157355,0,.427548,.67364,.00150262,0,.452651,.655277,.00143473,0,.478545,.636438,.00136371,0,.505246,.617364,.00129911,0,.532768,.598603,.00123014,0,.561122,.580195,.00116587,0,.590309,.561786,.00110398,0,.620318,.543377,.00104148,0,.651102,.525093,983984e-9,0,.682545,.506791,92667e-8,0,.714286,.489291,874326e-9,0,.746032,.471811,821734e-9,0,.777778,.454435,774698e-9,0,.809524,.437493,727302e-9,0,.84127,.420977,684039e-9,0,.873016,.404729,64373e-8,0,.904762,.388756,60285e-8,0,.936508,.373344,56765e-8,0,.968254,.358191,531929e-9,0,1,1,832169e-9,0,0,1,832178e-9,0,0,1,83231e-8,0,0,.999998,832893e-9,0,0,.999995,834465e-9,0,0,.999985,837791e-9,0,0,.999969,843893e-9,0,0,.999944,854086e-9,0,0,.999903,870071e-9,0,0,.999843,894042e-9,0,0,.999759,928865e-9,0,531805e-10,.999643,978242e-9,0,579365e-9,.99948,.00104684,0,.00182774,.999255,.00114012,0,.00387804,.998885,.00126188,0,.00675709,.997405,.00135888,0,.010468,.99424,.00133626,0,.0150018,.992458,.00140905,0,.0203443,.990929,.00152305,0,.0264786,.989116,.00165882,0,.0333875,.985624,.00174128,0,.0410536,.982003,.00182108,0,.0494609,.978336,.00194498,0,.0585941,.973184,.00202708,0,.0684396,.9678,.00212166,0,.0789851,.961348,.00221366,0,.0902199,.953841,.00228219,0,.102134,.94534,.00235662,0,.114721,.935552,.00240572,0,.127972,.924064,.00244405,0,.141884,.911827,.00247557,0,.156451,.897731,.00248374,0,.171672,.883409,.00249863,0,.187545,.868625,.00246688,0,.20407,.856529,.00246523,0,.221249,.842999,.00242368,0,.239083,.828505,.00237354,0,.257578,.813825,.00232588,0,.276738,.797813,.00226731,0,.296569,.781097,.00219704,0,.31708,.764038,.00212394,0,.338281,.746067,.00204786,0,.360181,.727687,.00196728,0,.382794,.709571,.00188779,0,.406133,.691503,.00180532,0,.430213,.673673,.00171849,0,.45505,.655732,.00164147,0,.480662,.637399,.00155858,0,.507065,.618616,.00147641,0,.534278,.60005,.00140125,0,.562313,.581713,.00132441,0,.59118,.563546,.00125014,0,.620875,.545605,.00118249,0,.651373,.527559,.0011116,0,.682593,.509764,.00104979,0,.714286,.49193,985977e-9,0,.746032,.475011,928592e-9,0,.777778,.457878,873466e-9,0,.809524,.440979,819585e-9,0,.84127,.424613,772365e-9,0,.873016,.408549,722195e-9,0,.904762,.392771,680014e-9,0,.936508,.377317,636797e-9,0,.968254,.362352,598318e-9,0,1,1,.00114313,0,0,1,.00114314,0,0,.999999,.00114331,0,0,.999998,.00114404,0,0,.999994,.00114601,0,0,.999984,.00115019,0,0,.999967,.00115784,0,0,.999937,.0011706,0,0,.999894,.00119054,0,0,.999828,.00122031,0,0,.999735,.00126331,0,169263e-9,.999606,.00132382,0,949167e-9,.999426,.0014071,0,.00249668,.999173,.00151895,0,.00486392,.99873,.00166102,0,.00806323,.996243,.0017023,0,.0120895,.993779,.00172782,0,.0169288,.9919,.0018108,0,.0225633,.990524,.00196028,0,.028974,.98868,.00212014,0,.036142,.984663,.00217598,0,.044049,.981457,.00230563,0,.0526781,.977608,.00243966,0,.0620137,.972215,.00251336,0,.0720418,.966798,.0026285,0,.0827499,.960241,.00271409,0,.0941271,.952489,.00278381,0,.106164,.944127,.00285399,0,.118852,.934282,.00290994,0,.132185,.923271,.00294558,0,.146157,.910803,.00296269,0,.160766,.896705,.00296803,0,.176007,.88238,.00296637,0,.19188,.867116,.00293163,0,.208385,.853636,.00289418,0,.225523,.840469,.00284663,0,.243296,.82639,.00278594,0,.261709,.811759,.00271618,0,.280767,.796113,.00263187,0,.300476,.779518,.00254589,0,.320845,.763142,.00246003,0,.341883,.745464,.00236529,0,.363601,.727491,.00226536,0,.386011,.709414,.00216375,0,.409128,.691396,.00207127,0,.432967,.67368,.00197106,0,.457545,.656049,.00187022,0,.482881,.638188,.00177605,0,.508992,.620177,.00168482,0,.535899,.601506,.00158909,0,.563619,.58362,.00150583,0,.592165,.565496,.00141791,0,.621544,.54789,.00133693,0,.651743,.530323,.00126038,0,.682709,.512795,.00118556,0,.714286,.495199,.00111527,0,.746032,.478101,.0010489,0,.777778,.461511,984264e-9,0,.809524,.444879,92591e-8,0,.84127,.428424,866582e-9,0,.873016,.412495,814463e-9,0,.904762,.396975,764498e-9,0,.936508,.381614,715967e-9,0,.968254,.366732,672483e-9,0,1,1,.00155501,0,0,1,.00155503,0,0,1,.00155524,0,0,.999998,.00155615,0,0,.999994,.0015586,0,0,.999983,.00156379,0,0,.999963,.0015733,0,0,.999932,.00158911,0,0,.999882,.00161376,0,0,.99981,.00165041,0,100875e-10,.999708,.00170304,0,367658e-9,.999565,.00177658,0,.0014234,.999368,.00187688,0,.00327939,.999081,.00200989,0,.00596629,.99852,.00217177,0,.0094852,.99549,.0021745,0,.013824,.993252,.00222357,0,.0189642,.991727,.00235022,0,.0248856,.989951,.00250561,0,.0315669,.988029,.00268829,0,.0389882,.984029,.0027496,0,.0471302,.980683,.00289793,0,.0559754,.976554,.00303315,0,.0655081,.97139,.00313257,0,.0757138,.965544,.00323656,0,.08658,.95912,.00333432,0,.0980954,.951183,.0034039,0,.110251,.942974,.00347515,0,.123038,.932642,.00350381,0,.13645,.922158,.00354519,0,.150482,.909404,.00353851,0,.165129,.896071,.0035435,0,.18039,.881206,.00349936,0,.196263,.866077,.00347256,0,.212748,.85093,.003415,0,.229847,.837703,.00333367,0,.247561,.823878,.003249,0,.265895,.809449,.00316347,0,.284854,.794379,.00306351,0,.304445,.778138,.0029499,0,.324675,.761997,.00284099,0,.345555,.744938,.00272104,0,.367095,.727212,.00260715,0,.389309,.709549,.00248855,0,.41221,.691704,.00236783,0,.435814,.673689,.00225178,0,.460138,.656453,.00213765,0,.485203,.639128,.00202178,0,.511028,.621512,.00191443,0,.537634,.603598,.00180977,0,.565041,.58559,.00170456,0,.593268,.567852,.00160927,0,.622327,.5503,.00151395,0,.652217,.533033,.00142499,0,.682907,.515942,.00133955,0,.714296,.498814,.0012602,0,.746032,.481595,.00118188,0,.777778,.465117,.00111171,0,.809524,.448865,.00104091,0,.84127,.432711,976618e-9,0,.873016,.416822,91859e-8,0,.904762,.401272,857704e-9,0,.936508,.386226,807172e-9,0,.968254,.371321,75464e-8,0,1,1,.00209596,0,0,1,.00209598,0,0,1,.00209624,0,0,.999997,.00209736,0,0,.999991,.00210039,0,0,.999979,.00210678,0,0,.999959,.00211847,0,0,.999925,.0021379,0,0,.99987,.00216809,0,0,.999791,.00221281,0,681487e-10,.999677,.00227669,0,658161e-9,.999521,.00236533,0,.00200635,.999301,.00248514,0,.0041779,.998977,.00264185,0,.00718648,.998191,.00281695,0,.0110239,.994801,.00278518,0,.015672,.993091,.00288774,0,.0211091,.991571,.00303931,0,.0273123,.9897,.00321643,0,.034259,.987023,.00337332,0,.0419282,.983289,.00346146,0,.0502998,.979892,.00363704,0,.0593562,.975111,.00373601,0,.069081,.970351,.0038842,0,.0794598,.964131,.00397053,0,.0904798,.957747,.00408078,0,.10213,.949536,.00413533,0,.1144,.941372,.00420305,0,.127284,.931049,.00422815,0,.140772,.920647,.00425048,0,.154862,.908033,.0042281,0,.169548,.895028,.00422026,0,.184828,.879968,.00415042,0,.200701,.864875,.00408821,0,.217167,.84918,.00400909,0,.234227,.834934,.00391178,0,.251884,.821397,.00380066,0,.270141,.807135,.00367974,0,.289004,.792363,.00355172,0,.308479,.776661,.003411,0,.328575,.760705,.00328123,0,.349301,.744408,.00314003,0,.370668,.726994,.0029906,0,.392689,.709598,.00285034,0,.415379,.692112,.00271179,0,.438754,.674435,.00257185,0,.46283,.65676,.00243425,0,.48763,.639982,.00230351,0,.513173,.622983,.0021777,0,.539482,.605471,.00204991,0,.566579,.58796,.00193759,0,.594488,.570463,.00181976,0,.623226,.553058,.00171497,0,.6528,.535894,.00161109,0,.683198,.519089,.00151394,0,.714354,.502454,.00142122,0,.746032,.485681,.00133488,0,.777778,.468935,.00124975,0,.809524,.452951,.00117309,0,.84127,.437139,.00110155,0,.873016,.421446,.00103124,0,.904762,.405951,966387e-9,0,.936508,.391003,908119e-9,0,.968254,.376198,848057e-9,0,1,1,.00280076,0,0,1,.00280078,0,0,.999999,.00280109,0,0,.999997,.00280246,0,0,.999992,.00280616,0,0,.999979,.00281396,0,0,.999956,.00282822,0,0,.999916,.00285186,0,0,.999857,.0028885,0,0,.999768,.00294259,0,196026e-9,.999645,.00301946,0,.00104842,.99947,.00312541,0,.00270199,.999229,.00326733,0,.00519449,.998852,.00344992,0,.00852602,.997558,.00361052,0,.0126804,.994417,.0035898,0,.017635,.992824,.00372393,0,.023365,.991344,.00390695,0,.0298456,.989337,.00410392,0,.0370529,.985811,.00420987,0,.0449651,.982772,.00437488,0,.0535615,.979001,.00455069,0,.0628243,.974102,.00464462,0,.0727368,.969197,.00480577,0,.0832844,.962759,.00487818,0,.0944545,.956207,.00498176,0,.106236,.947909,.00503392,0,.118619,.939596,.00507474,0,.131595,.929642,.00509798,0,.145159,.918807,.00508476,0,.159305,.906921,.00505634,0,.174028,.893312,.00498845,0,.189327,.878933,.0049133,0,.2052,.863986,.0048259,0,.221647,.847936,.00470848,0,.23867,.832253,.00456889,0,.25627,.818619,.00442726,0,.274453,.804788,.00427677,0,.293222,.790241,.00411906,0,.312585,.775162,.00394833,0,.33255,.759463,.00377366,0,.353126,.743598,.00361026,0,.374324,.72697,.00343627,0,.396158,.709646,.00326422,0,.418641,.69277,.00309717,0,.44179,.675371,.0029356,0,.465624,.657863,.00277712,0,.490163,.640772,.00261738,0,.515429,.624441,.0024737,0,.541445,.607497,.00233125,0,.568236,.590438,.00218994,0,.595828,.573224,.0020664,0,.624242,.556168,.00193526,0,.653496,.539232,.00182463,0,.683588,.522352,.00170735,0,.714482,.506172,.00160555,0,.746032,.489842,.00150451,0,.777778,.473463,.00140938,0,.809524,.457266,.00132568,0,.84127,.441609,.0012376,0,.873016,.426348,.00116265,0,.904762,.411002,.00108935,0,.936508,.396045,.00101946,0,.968254,.381448,955665e-9,0,1,1,.0037121,0,0,1,.00371213,0,0,1,.00371251,0,0,.999997,.00371417,0,0,.99999,.00371863,0,0,.999977,.00372807,0,0,.99995,.00374529,0,0,.999908,.0037738,0,0,.999843,.00381789,0,123596e-10,.999745,.00388273,0,407442e-9,.999608,.00397443,0,.0015447,.999415,.00409998,0,.00351385,.999143,.00426662,0,.0063316,.9987,.00447625,0,.00998679,.996363,.00455323,0,.0144569,.994021,.00461052,0,.0197151,.992372,.00476359,0,.0257344,.991007,.00499101,0,.0324882,.988767,.0051972,0,.0399517,.984872,.00528407,0,.0481022,.982004,.00548926,0,.0569191,.977714,.00564385,0,.0663839,.973076,.0057693,0,.0764801,.967565,.0058924,0,.0871928,.961384,.00599629,0,.0985095,.954435,.00605998,0,.110419,.946303,.0061133,0,.122912,.937662,.00612028,0,.13598,.927867,.00612209,0,.149617,.916475,.00604813,0,.163817,.90541,.00603088,0,.178577,.891591,.00592218,0,.193894,.877573,.00578854,0,.209767,.862511,.00566648,0,.226196,.846861,.00551481,0,.243182,.83068,.00533754,0,.260728,.815725,.00515487,0,.278837,.802321,.0049655,0,.297515,.787826,.00475421,0,.316768,.773454,.00456002,0,.336605,.758224,.00434727,0,.357034,.74265,.00414444,0,.378067,.726729,.00393738,0,.399717,.710155,.00373575,0,.421998,.693312,.00353736,0,.444928,.67653,.00334368,0,.468523,.659444,.00315981,0,.492806,.642051,.00297809,0,.517798,.625758,.00280592,0,.543525,.609615,.00264254,0,.570012,.592919,.00248459,0,.597288,.576298,.00233327,0,.625379,.559489,.00219519,0,.654307,.542891,.00205441,0,.684084,.526255,.00193385,0,.714693,.509853,.00180745,0,.746044,.494131,.00169817,0,.777778,.478114,.0015913,0,.809524,.462274,.00148981,0,.84127,.446412,.00139537,0,.873016,.431274,.00130984,0,.904762,.41635,.00122403,0,.936508,.401476,.00114809,0,.968254,.386993,.00107563,0,1,1,.00488216,0,0,1,.0048822,0,0,1,.00488265,0,0,.999997,.00488463,0,0,.999988,.00488999,0,0,.999974,.00490129,0,0,.999946,.00492191,0,0,.999897,.00495598,0,0,.999825,.00500855,0,744791e-10,.999718,.00508559,0,712744e-9,.999565,.005194,0,.00215249,.999352,.00534147,0,.00444576,.999046,.00553523,0,.00759218,.998492,.00577016,0,.0115714,.995564,.00578487,0,.0163557,.993339,.00586414,0,.021915,.991834,.00606002,0,.0282201,.990496,.00633312,0,.0352433,.987826,.00651941,0,.042959,.98383,.00660842,0,.0513439,.98109,.00685523,0,.0603772,.976131,.00695778,0,.0700402,.971922,.00714236,0,.0803163,.965901,.00721437,0,.0911908,.959606,.00732017,0,.102651,.952504,.00735788,0,.114686,.944365,.00738493,0,.127286,.935652,.00737969,0,.140443,.925813,.00733612,0,.154151,.914397,.00723094,0,.168405,.903257,.00714002,0,.183201,.890015,.00700149,0,.198536,.876014,.00682813,0,.214409,.861436,.00665567,0,.23082,.845752,.00644526,0,.24777,.829169,.00621635,0,.265263,.813435,.00597789,0,.283301,.799701,.00575694,0,.301889,.785726,.00549866,0,.321035,.77152,.0052503,0,.340746,.75683,.00499619,0,.361032,.741951,.0047543,0,.381904,.726367,.0045084,0,.403374,.710537,.00426784,0,.425457,.693965,.00403487,0,.448169,.677724,.0038075,0,.47153,.66117,.00359431,0,.495561,.644274,.00338354,0,.520284,.627449,.00318163,0,.545725,.611645,.00299672,0,.571911,.595614,.00281016,0,.598873,.579426,.00264252,0,.62664,.563016,.00247509,0,.655239,.546728,.00232647,0,.684692,.530539,.00217803,0,.714999,.514164,.00204216,0,.746106,.498344,.00191403,0,.777778,.482957,.00179203,0,.809524,.467336,.00167695,0,.84127,.451994,.00157567,0,.873016,.436514,.00147113,0,.904762,.42178,.00138034,0,.936508,.407271,.00129219,0,.968254,.392822,.0012098,0,1,1,.00637427,0,0,1,.00637431,0,0,.999999,.00637485,0,0,.999996,.00637721,0,0,.999987,.00638357,0,0,.999971,.006397,0,0,.999939,.00642142,0,0,.999888,.00646177,0,0,.999807,.00652387,0,207916e-9,.999689,.00661454,0,.00112051,.99952,.00674155,0,.00287719,.999283,.00691313,0,.00550145,.998936,.00713598,0,.00897928,.998165,.00738501,0,.0132829,.994847,.00734388,0,.01838,.993182,.00749991,0,.0242381,.991665,.0077246,0,.030826,.989708,.00797579,0,.0381152,.986663,.00813011,0,.0460794,.983288,.00830365,0,.0546951,.980104,.00853496,0,.0639411,.974855,.00861045,0,.0737988,.97045,.00879133,0,.0842516,.964509,.00886377,0,.0952848,.957594,.00890346,0,.106886,.950546,.00893289,0,.119044,.942225,.00890074,0,.131749,.933365,.00886826,0,.144994,.923202,.0087316,0,.158772,.912605,.00863082,0,.173078,.901099,.00847403,0,.187908,.888177,.00825838,0,.203261,.873955,.00801834,0,.219134,.860091,.00779026,0,.235527,.84434,.00752478,0,.252443,.828517,.00724074,0,.269883,.81239,.00693769,0,.287851,.79721,.00664817,0,.306352,.783489,.00634763,0,.325393,.769514,.00604221,0,.344981,.755419,.00573568,0,.365126,.741083,.00544359,0,.385839,.726059,.00515515,0,.407132,.710809,.00487139,0,.42902,.695052,.00459846,0,.45152,.678886,.00433412,0,.474651,.663042,.00407981,0,.498433,.646634,.00384264,0,.52289,.630117,.00360897,0,.548048,.613804,.00338863,0,.573936,.598338,.00318486,0,.600584,.582687,.00298377,0,.628027,.566809,.00280082,0,.656295,.550817,.00262255,0,.685417,.534937,.00245835,0,.715406,.519151,.00230574,0,.74624,.503118,.0021549,0,.777778,.487723,.00202008,0,.809524,.472725,.00189355,0,.84127,.457599,.00177108,0,.873016,.442558,.00165843,0,.904762,.427624,.00155494,0,.936508,.413171,.00145273,0,.968254,.399122,.00136454,0,1,1,.00826496,0,0,1,.00826499,0,0,1,.00826564,0,0,.999996,.00826842,0,0,.999987,.00827589,0,0,.999967,.00829167,0,0,.999933,.00832037,0,0,.999876,.00836768,0,109338e-10,.999786,.00844031,0,427145e-9,.999655,.00854603,0,.0016384,.999468,.00869337,0,.00372392,.999203,.008891,0,.00668513,.998803,.00914387,0,.0104968,.99748,.00935838,0,.015125,.994446,.00933309,0,.0205338,.99292,.00953084,0,.0266884,.991414,.0097893,0,.0335565,.989049,.0100228,0,.0411086,.98582,.0101664,0,.0493181,.982441,.0103582,0,.0581613,.978595,.0105292,0,.0676169,.973495,.0106274,0,.0776661,.968405,.0107261,0,.0882926,.962717,.0108234,0,.0994817,.955478,.0108102,0,.111221,.948275,.0107914,0,.123499,.940006,.0107161,0,.136308,.930831,.0106309,0,.149639,.920648,.0104083,0,.163485,.910205,.0102312,0,.177843,.898445,.0100051,0,.192707,.885986,.00971928,0,.208077,.872204,.00940747,0,.22395,.858436,.0091085,0,.240326,.843454,.00876595,0,.257208,.827437,.00839794,0,.274596,.811488,.00803692,0,.292496,.796039,.00767352,0,.310911,.781083,.0073097,0,.329849,.767642,.00694032,0,.349316,.753901,.00657476,0,.369323,.740131,.00622699,0,.38988,.725845,.0058838,0,.410999,.710991,.00555586,0,.432696,.696002,.00523089,0,.454987,.680461,.00492494,0,.47789,.664875,.00463464,0,.501426,.649273,.00435422,0,.52562,.63302,.0040875,0,.550498,.61705,.00384075,0,.576089,.601154,.00359557,0,.602427,.586008,.00337636,0,.629544,.570699,.00316019,0,.657479,.555166,.00296033,0,.686264,.539645,.00277552,0,.715924,.524159,.00259499,0,.746459,.508682,.00243257,0,.777789,.493163,.00227851,0,.809524,.478004,.00213083,0,.84127,.46347,.00199502,0,.873016,.448778,.00186967,0,.904762,.434105,.00174732,0,.936508,.419576,.00163861,0,.968254,.405541,.00153341,0,1,1,.0106462,0,0,1,.0106462,0,0,.999999,.010647,0,0,.999995,.0106502,0,0,.999985,.0106589,0,0,.999964,.0106773,0,0,.999925,.0107106,0,0,.999861,.0107655,0,712986e-10,.999763,.0108497,0,743959e-9,.999616,.0109716,0,.00227361,.999408,.0111408,0,.0046983,.999112,.0113659,0,.00800158,.998637,.0116475,0,.0121493,.996223,.0117231,0,.0171023,.994006,.0118064,0,.0228218,.992444,.0120254,0,.0292711,.991028,.0123314,0,.036417,.98803,.0124954,0,.0442295,.984816,.0126538,0,.0526815,.981399,.0128537,0,.0617492,.977085,.0129694,0,.0714114,.972154,.013091,0,.0816495,.966617,.0131166,0,.0924472,.960628,.0131583,0,.10379,.953295,.0131094,0,.115665,.94575,.0129966,0,.128062,.937654,.0128796,0,.140972,.927716,.0126477,0,.154387,.917932,.0123889,0,.168301,.907719,.012131,0,.182709,.89584,.0118013,0,.197608,.883526,.0114145,0,.212994,.870301,.0110075,0,.228867,.856272,.0106019,0,.245227,.842251,.0101938,0,.262074,.826466,.00973254,0,.279412,.810859,.0092846,0,.297244,.795051,.00883304,0,.315575,.780053,.00840272,0,.334412,.76575,.00796438,0,.35376,.752298,.00752526,0,.373631,.739153,.00711486,0,.394034,.725514,.00670361,0,.414983,.711473,.00632656,0,.436491,.696936,.00595206,0,.458575,.682126,.00559191,0,.481253,.667027,.00525362,0,.504547,.651875,.00493805,0,.528481,.636463,.00462848,0,.553081,.620641,.00433936,0,.578377,.604931,.00407,0,.604404,.589549,.00380864,0,.631197,.574712,.00357049,0,.658795,.559775,.00334466,0,.687238,.544514,.00312505,0,.716559,.529555,.00293199,0,.746776,.514402,.00274204,0,.777849,.499302,.00256647,0,.809524,.484114,.00239901,0,.84127,.469308,.00225148,0,.873016,.455133,.00210178,0,.904762,.440939,.0019727,0,.936508,.426627,.00184382,0,.968254,.412509,.00172548,0,1,1,.013628,0,0,1,.0136281,0,0,.999999,.0136289,0,0,.999995,.0136327,0,0,.999983,.0136427,0,0,.99996,.0136638,0,0,.999917,.0137022,0,0,.999846,.0137652,0,204597e-9,.999736,.0138615,0,.00116837,.999573,.0140007,0,.00303325,.99934,.0141927,0,.00580613,.999004,.0144457,0,.00945626,.998407,.0147489,0,.0139421,.995464,.014731,0,.0192202,.993328,.0148283,0,.0252495,.991799,.0150797,0,.0319921,.990397,.0154316,0,.0394138,.986835,.0155005,0,.0474843,.983938,.0157308,0,.0561763,.980154,.0158753,0,.0654661,.975659,.0159581,0,.0753326,.970171,.0159832,0,.0857571,.964803,.0160084,0,.0967236,.958366,.0159484,0,.108218,.950613,.0158001,0,.120227,.942874,.0155845,0,.132741,.935005,.0154292,0,.145751,.924991,.0150742,0,.159249,.914814,.0146757,0,.17323,.904743,.0143097,0,.187687,.893216,.0138695,0,.202619,.880769,.0133706,0,.218021,.868136,.0128606,0,.233894,.85469,.0123403,0,.250238,.840593,.0118091,0,.267052,.825808,.011253,0,.284341,.81009,.0107099,0,.302106,.79504,.0101636,0,.320354,.779757,.00964041,0,.33909,.764697,.00911896,0,.358322,.750913,.00859533,0,.378059,.738175,.00811592,0,.398311,.725242,.00764504,0,.41909,.711864,.00718885,0,.440412,.698009,.00675843,0,.462292,.683841,.00634984,0,.484748,.669391,.00595502,0,.507802,.654731,.00558671,0,.531477,.639805,.00523578,0,.555802,.624789,.00490834,0,.580805,.609325,.00459448,0,.606522,.593975,.00430342,0,.63299,.578983,.00403019,0,.66025,.564442,.0037707,0,.688346,.549835,.0035316,0,.717319,.535039,.00330255,0,.7472,.520403,.00308932,0,.777982,.505687,.00289335,0,.809524,.490939,.00270818,0,.84127,.476233,.0025343,0,.873016,.461624,.00237097,0,.904762,.447833,.00222065,0,.936508,.433992,.00207561,0,.968254,.420147,.00194955,0,1,1,.0173415,0,0,1,.0173416,0,0,.999999,.0173426,0,0,.999995,.0173468,0,0,.999983,.0173582,0,0,.999954,.0173822,0,0,.999908,.0174258,0,669501e-11,.999828,.0174973,0,427399e-9,.999705,.0176063,0,.00171019,.999524,.0177631,0,.0039248,.999263,.0179781,0,.00705382,.998878,.018258,0,.0110552,.998012,.0185551,0,.0158812,.994614,.0184264,0,.0214852,.993132,.0186385,0,.0278239,.991563,.0189067,0,.0348585,.989298,.0191577,0,.0425544,.986036,.0192522,0,.050881,.982558,.0194063,0,.059811,.978531,.019486,0,.0693209,.974198,.0195847,0,.0793895,.968148,.0194749,0,.0899984,.962565,.0194277,0,.101132,.956041,.0192991,0,.112775,.947749,.0189893,0,.124917,.94018,.018704,0,.137547,.93165,.0183458,0,.150655,.921798,.0178775,0,.164236,.911573,.0173618,0,.178281,.901569,.0168482,0,.192788,.890341,.016265,0,.207752,.877835,.0156199,0,.223171,.865472,.0149516,0,.239044,.852905,.0143274,0,.255371,.838906,.0136643,0,.272153,.824888,.0129903,0,.289393,.809977,.0123218,0,.307093,.794697,.0116572,0,.325259,.780028,.0110307,0,.343896,.765124,.0104236,0,.363012,.750411,.0098219,0,.382617,.737264,.00924397,0,.402719,.724799,.00868719,0,.423332,.712253,.00816476,0,.444469,.699267,.00767262,0,.466146,.685618,.00719746,0,.488383,.671736,.00673916,0,.511199,.657777,.00631937,0,.534618,.643497,.00592411,0,.558668,.62889,.00553928,0,.58338,.614299,.0051934,0,.608787,.599197,.00485985,0,.634929,.584175,.00454357,0,.661849,.569541,.00425787,0,.689594,.555193,.00397905,0,.718211,.540947,.00372364,0,.747742,.526593,.00348599,0,.778205,.512335,.00326103,0,.80953,.498017,.00305137,0,.84127,.483609,.00285485,0,.873016,.469368,.00267472,0,.904762,.455037,.00249945,0,.936508,.441493,.00234792,0,.968254,.428147,.00219936,0,1,1,.0219422,0,0,1,.0219423,0,0,.999998,.0219434,0,0,.999993,.0219481,0,0,.999981,.021961,0,0,.999949,.0219879,0,0,.999896,.0220367,0,593194e-10,.999808,.0221167,0,75364e-8,.99967,.0222383,0,.00237884,.999466,.0224125,0,.00495612,.999174,.0226495,0,.00844887,.998725,.0229525,0,.0128058,.996979,.0231123,0,.0179742,.994317,.0230742,0,.0239047,.992781,.0232895,0,.0305526,.991191,.0235734,0,.0378786,.987787,.0236152,0,.0458475,.985092,.0237994,0,.0544287,.981121,.0238553,0,.0635952,.976924,.0238706,0,.0733233,.97218,.0238704,0,.0835922,.965956,.0236598,0,.0943839,.959998,.0234735,0,.105682,.953245,.0232277,0,.117474,.944445,.0226973,0,.129747,.937087,.0223527,0,.142491,.928341,.0218144,0,.155697,.9184,.0211516,0,.169358,.907959,.0204553,0,.183469,.89808,.0197673,0,.198024,.887047,.0189915,0,.21302,.875221,.0182082,0,.228455,.86269,.0173584,0,.244329,.850735,.0165718,0,.260639,.837545,.0157524,0,.277389,.823639,.0149482,0,.29458,.809699,.0141431,0,.312216,.794797,.0133527,0,.3303,.780578,.0126193,0,.34884,.766019,.0118914,0,.367842,.751447,.0111839,0,.387315,.737275,.010514,0,.40727,.724545,.00987277,0,.427717,.712644,.00926569,0,.448671,.700432,.00869029,0,.470149,.687664,.00814691,0,.492167,.674288,.00763012,0,.514746,.660966,.00714437,0,.537911,.647264,.00668457,0,.561688,.633431,.00626581,0,.586108,.619133,.00585593,0,.611206,.604935,.00548188,0,.637022,.590236,.00513288,0,.663599,.575473,.0047906,0,.690989,.561228,.00448895,0,.719242,.547054,.00420233,0,.748411,.533175,.00392869,0,.778531,.519163,.00367445,0,.809583,.505328,.00344097,0,.84127,.491446,.00322003,0,.873016,.477356,.00301283,0,.904762,.46356,.00282592,0,.936508,.449623,.00264956,0,.968254,.436068,.00246956,0,1,1,.0276135,0,0,1,.0276136,0,0,.999998,.0276148,0,0,.999993,.0276201,0,0,.999976,.0276342,0,0,.999945,.027664,0,0,.999884,.0277179,0,18679e-8,.999784,.027806,0,.00119607,.99963,.0279394,0,.00318407,.999401,.0281295,0,.00613601,.999066,.0283858,0,.00999963,.998524,.0287027,0,.0147164,.995702,.0286256,0,.0202295,.993593,.0286733,0,.0264876,.992067,.0288989,0,.0334452,.990548,.0292135,0,.0410621,.986775,.0291296,0,.0493032,.984054,.0293099,0,.0581381,.979481,.0291881,0,.0675397,.975297,.0291598,0,.0774848,.96981,.028954,0,.0879528,.963524,.028628,0,.0989258,.957398,.0283135,0,.110388,.950088,.0278469,0,.122327,.941538,.0271798,0,.134729,.933332,.0265388,0,.147587,.924392,.0257776,0,.160889,.914581,.024916,0,.174631,.904347,.0240242,0,.188806,.894324,.0231229,0,.203409,.883724,.022153,0,.218437,.872207,.0211355,0,.233888,.859927,.0201048,0,.249761,.848373,.0191263,0,.266056,.836023,.0181306,0,.282774,.82289,.0171718,0,.299917,.809324,.0162196,0,.317488,.795361,.0152622,0,.335493,.781253,.01439,0,.353936,.767338,.013533,0,.372825,.753156,.0127244,0,.392168,.739122,.0119454,0,.411976,.725358,.0112054,0,.432259,.712949,.010487,0,.453032,.701621,.00984032,0,.47431,.689703,.00921495,0,.496111,.677216,.00862492,0,.518456,.664217,.00806882,0,.541367,.65137,.00755922,0,.564872,.638,.00705705,0,.589001,.62453,.00661266,0,.613789,.610601,.00618432,0,.639277,.59676,.00578033,0,.66551,.582433,.00540927,0,.692539,.568026,.00506104,0,.720422,.55414,.0047353,0,.749216,.540178,.00442889,0,.778974,.526513,.00414363,0,.809711,.512954,.00388237,0,.84127,.499403,.00362875,0,.873016,.486026,.00340827,0,.904762,.472345,.00318598,0,.936508,.458828,.00297635,0,.968254,.445379,.00279447,0,1,1,.0345716,0,0,1,.0345717,0,0,.999999,.034573,0,0,.999991,.0345787,0,0,.999974,.0345941,0,0,.999937,.0346263,0,188589e-11,.999869,.0346847,0,409238e-9,.999757,.0347798,0,.0017674,.999582,.0349233,0,.00413658,.999322,.0351265,0,.00747408,.998939,.0353967,0,.0117157,.998219,.0357018,0,.0167966,.994974,.0354726,0,.0226572,.993201,.0355621,0,.0292445,.991573,.0357641,0,.0365123,.989301,.0359252,0,.0444203,.985712,.0358017,0,.0529334,.982411,.0358353,0,.0620214,.977827,.035617,0,.0716574,.973278,.0354398,0,.0818186,.967397,.0350483,0,.0924846,.960696,.0344795,0,.103638,.954349,.0339861,0,.115263,.946066,.0331323,0,.127348,.938012,.032359,0,.13988,.929413,.0314413,0,.152849,.920355,.0304103,0,.166248,.910586,.0292785,0,.18007,.900609,.0281391,0,.194308,.890093,.0269103,0,.208958,.880013,.0257269,0,.224018,.869001,.0244671,0,.239485,.85751,.0232252,0,.255359,.84582,.0220117,0,.271638,.834383,.0208274,0,.288324,.822158,.0196628,0,.305419,.809056,.0185306,0,.322927,.795832,.0174174,0,.340851,.782547,.0163758,0,.359199,.7689,.015391,0,.377975,.755526,.0144488,0,.397189,.741681,.0135372,0,.416851,.728178,.0126957,0,.436971,.714642,.0118812,0,.457564,.702756,.0111165,0,.478644,.69175,.0104145,0,.500229,.680159,.00974439,0,.522339,.668073,.00911926,0,.544997,.655405,.00851393,0,.56823,.642921,.00797637,0,.592068,.629993,.00745119,0,.616546,.616828,.00696972,0,.641705,.603305,.00652425,0,.66759,.589833,.00610188,0,.694255,.575945,.00570834,0,.72176,.561745,.00533384,0,.750168,.548277,.00500001,0,.779545,.534467,.00467582,0,.809933,.521032,.00438092,0,.841272,.507877,.00410348,0,.873016,.494654,.00383618,0,.904762,.481592,.00358699,0,.936508,.468509,.00337281,0,.968254,.455293,.00316196,0,1,1,.0430698,0,0,1,.0430699,0,0,.999998,.0430713,0,0,.999991,.0430773,0,0,.99997,.0430936,0,0,.999928,.0431277,0,406396e-10,.999852,.0431893,0,744376e-9,.999724,.0432895,0,.0024806,.999527,.0434397,0,.00524779,.99923,.0436507,0,.00898164,.998783,.0439255,0,.0136083,.997507,.0441104,0,.0190582,.994418,.0438225,0,.0252694,.992864,.0439396,0,.0321879,.991127,.0440962,0,.039767,.987331,.0438408,0,.0479667,.984819,.0438991,0,.056752,.980384,.0435906,0,.0660929,.975846,.0432543,0,.075963,.970748,.0428293,0,.0863398,.964303,.042153,0,.0972035,.95772,.0414111,0,.108537,.950747,.0405893,0,.120325,.942533,.0394887,0,.132554,.934045,.0383544,0,.145215,.924942,.037057,0,.158296,.915811,.0356993,0,.17179,.90612,.0342401,0,.185691,.896434,.0328078,0,.199993,.886021,.031288,0,.214691,.876081,.0297776,0,.229782,.865608,.0282334,0,.245265,.854924,.026749,0,.261138,.843607,.02526,0,.277401,.832456,.0238214,0,.294056,.821342,.0224682,0,.311104,.809303,.0211297,0,.328548,.796468,.0198387,0,.346394,.784046,.0186227,0,.364645,.771262,.0174561,0,.38331,.758118,.0163806,0,.402396,.745075,.0153287,0,.421912,.731926,.0143647,0,.44187,.71863,.0134363,0,.462283,.705414,.0125603,0,.483165,.693792,.0117508,0,.504535,.683108,.0110016,0,.52641,.67183,.0102757,0,.548816,.66015,.00962044,0,.571776,.647907,.00898031,0,.595323,.635734,.00840811,0,.619489,.623208,.00786211,0,.644317,.610438,.00734953,0,.669852,.597345,.00687688,0,.696148,.584138,.00643469,0,.723267,.5707,.00602236,0,.75128,.556966,.0056324,0,.780258,.543607,.00528277,0,.810268,.530213,.00493999,0,.841311,.516912,.00462265,0,.873016,.503916,.0043307,0,.904762,.491146,.00406858,0,.936508,.478439,.00381436,0,.968254,.465834,.00358003,0,1,1,.0534039,0,0,1,.053404,0,0,.999998,.0534055,0,0,.999989,.0534116,0,0,.999968,.0534283,0,0,.999918,.0534633,0,155895e-9,.99983,.0535262,0,.00120914,.999685,.0536281,0,.00334944,.999461,.0537799,0,.00653077,.999119,.0539902,0,.0106718,.998582,.0542524,0,.0156907,.995919,.0540318,0,.0215147,.993735,.0538914,0,.0280801,.992126,.0539557,0,.0353323,.990266,.0540401,0,.0432247,.986317,.0536064,0,.0517172,.983213,.0534425,0,.0607754,.978303,.0528622,0,.0703698,.973665,.0523363,0,.0804742,.968091,.0516165,0,.0910667,.961026,.0505434,0,.102128,.954333,.049523,0,.113641,.946372,.0481698,0,.125591,.938254,.0467674,0,.137965,.929516,.0452341,0,.150754,.920106,.0435083,0,.163947,.910899,.0417399,0,.177537,.901532,.0399389,0,.191516,.891919,.0380901,0,.205881,.882006,.0362341,0,.220626,.871965,.0343444,0,.235749,.862145,.0324832,0,.251248,.852058,.0306681,0,.267121,.84161,.0289097,0,.283368,.830806,.0272079,0,.299992,.820476,.0256089,0,.316992,.809514,.0240394,0,.334374,.797865,.0225379,0,.35214,.785621,.0211235,0,.370296,.773765,.0197908,0,.388849,.761629,.0185235,0,.407807,.748891,.0173358,0,.427178,.736437,.0162305,0,.446974,.723707,.0151778,0,.467207,.710606,.0141791,0,.487892,.698019,.0132592,0,.509046,.686203,.0123887,0,.530687,.675692,.0115976,0,.552839,.664826,.0108325,0,.575527,.65349,.0101348,0,.59878,.641774,.00947756,0,.622634,.629794,.00886058,0,.647128,.617647,.00828526,0,.672308,.60534,.00775312,0,.698231,.592718,.00726033,0,.724958,.579746,.00679731,0,.752563,.566763,.00636111,0,.781127,.553515,.00595228,0,.810733,.540118,.00556876,0,.841426,.527325,.00523051,0,.873016,.514265,.00490712,0,.904762,.501406,.00460297,0,.936508,.488922,.00431247,0,.968254,.476541,.0040472,0,1,1,.0659184,0,0,1,.0659185,0,0,.999998,.06592,0,0,.999988,.0659259,0,0,.999963,.0659423,0,0,.999907,.0659764,0,374198e-9,.999806,.0660376,0,.00182071,.999639,.0661361,0,.0043894,.999378,.0662814,0,.00800055,.998985,.0664779,0,.0125594,.998285,.0666914,0,.0179786,.995071,.0661989,0,.0241822,.993172,.0660454,0,.031106,.991438,.0660105,0,.0386952,.988428,.0656875,0,.0469032,.985218,.0652913,0,.0556905,.981128,.0647107,0,.065023,.976015,.0638491,0,.0748717,.97097,.062993,0,.0852112,.964582,.0617927,0,.0960199,.957383,.0603626,0,.107279,.949969,.0588128,0,.118971,.941843,.0570274,0,.131084,.933624,.0551885,0,.143604,.924543,.053122,0,.156521,.914919,.0508897,0,.169825,.905773,.0486418,0,.18351,.896434,.0463364,0,.197569,.887195,.0440623,0,.211997,.877706,.0417799,0,.226789,.867719,.03945,0,.241944,.858587,.037243,0,.257458,.849317,.0350956,0,.273331,.839585,.0329852,0,.289563,.829856,.0310028,0,.306154,.819589,.0290953,0,.323108,.809714,.0272738,0,.340426,.79934,.0255631,0,.358113,.788224,.0239175,0,.376175,.776619,.0223831,0,.394616,.76521,.0209298,0,.413445,.753716,.0195786,0,.432671,.741564,.0183001,0,.452305,.729413,.0171259,0,.472358,.717146,.0159933,0,.492845,.70436,.0149495,0,.513783,.69219,.0139681,0,.535189,.680289,.0130577,0,.557087,.669611,.0122198,0,.5795,.659113,.0114174,0,.602459,.648148,.0106729,0,.625997,.636905,.00998997,0,.650154,.625154,.00934313,0,.674976,.613481,.00874839,0,.700518,.60154,.00818265,0,.726845,.58943,.00766889,0,.754032,.576828,.00717153,0,.782167,.564194,.00672696,0,.811344,.551501,.00630863,0,.841644,.538635,.00592177,0,.873016,.525724,.00554888,0,.904762,.513209,.00520225,0,.936508,.500457,.00488231,0,.968254,.48799,.00457153,0,1,1,.0810131,0,0,1,.0810133,0,0,.999997,.0810145,0,0,.999985,.08102,0,0,.999956,.0810347,0,195026e-10,.999893,.0810656,0,719316e-9,.999777,.0811205,0,.00259774,.999583,.081208,0,.00561807,.999281,.0813343,0,.00967472,.998813,.0814969,0,.0146627,.997597,.0815217,0,.0204902,.994379,.0808502,0,.0270802,.992744,.0806792,0,.0343674,.990745,.0804589,0,.0422974,.986646,.0796107,0,.0508242,.983611,.0790913,0,.0599087,.978869,.0780746,0,.0695175,.973475,.0768218,0,.0796223,.967845,.0754926,0,.0901983,.960778,.0737063,0,.101224,.953333,.0718052,0,.112682,.945274,.0695946,0,.124555,.936955,.0672492,0,.136831,.928319,.0647732,0,.149496,.919075,.0620947,0,.162542,.909114,.0591816,0,.175958,.900137,.0563917,0,.189739,.891069,.0535392,0,.203877,.882262,.0507642,0,.218368,.873232,.0479793,0,.233208,.864042,.045226,0,.248393,.855002,.0425413,0,.263923,.846569,.0400126,0,.279796,.837714,.0375269,0,.296012,.828918,.0352027,0,.312573,.819783,.0330011,0,.329479,.810129,.0308908,0,.346734,.800866,.0289112,0,.364342,.79093,.0270255,0,.382307,.780593,.0252758,0,.400637,.769511,.0236178,0,.419337,.758558,.0220652,0,.438418,.747632,.0206289,0,.457889,.736146,.0192873,0,.477761,.724093,.0180333,0,.49805,.71234,.0168264,0,.51877,.700201,.015746,0,.53994,.687949,.0147027,0,.561581,.676163,.0137512,0,.583718,.665001,.0128655,0,.60638,.65472,.0120366,0,.629599,.644213,.0112604,0,.653415,.633382,.0105413,0,.677874,.62212,.00986498,0,.70303,.610631,.00923308,0,.728948,.599078,.00864206,0,.755706,.587519,.00811784,0,.783396,.575505,.00761237,0,.812121,.563148,.00713949,0,.841989,.550828,.00668379,0,.873035,.538458,.00627715,0,.904762,.525905,.00588336,0,.936508,.513517,.00552687,0,.968254,.501395,.00519681,0,1,1,.0991506,0,0,1,.0991504,0,0,.999996,.0991515,0,0,.999984,.0991558,0,0,.999947,.0991672,0,114389e-9,.999874,.0991912,0,.00121503,.999739,.0992331,0,.00356108,.999514,.0992983,0,.00705578,.999159,.0993877,0,.011574,.998586,.0994837,0,.017003,.995731,.0988425,0,.0232484,.993384,.098276,0,.0302318,.991615,.0979269,0,.0378884,.989029,.0973432,0,.0461641,.985373,.0963539,0,.0550136,.981278,.0952306,0,.0643988,.975777,.0936233,0,.0742868,.970526,.0920219,0,.0846501,.963755,.0898912,0,.0954644,.956676,.0876064,0,.106709,.948099,.0847751,0,.118367,.939718,.0818638,0,.130423,.931305,.078857,0,.142862,.922342,.0756127,0,.155674,.912842,.0721473,0,.168849,.903304,.0686195,0,.182378,.89411,.0650589,0,.196255,.885512,.0616022,0,.210473,.877193,.0582434,0,.225027,.86877,.0548979,0,.239915,.860267,.0516095,0,.255132,.851915,.048468,0,.270678,.843912,.0454447,0,.286551,.83604,.0425612,0,.302751,.828245,.0398752,0,.31928,.820159,.0373198,0,.336138,.81167,.034916,0,.35333,.802659,.0326402,0,.370858,.793921,.0304901,0,.388728,.784713,.0284857,0,.406944,.774946,.0266186,0,.425515,.76448,.0248593,0,.444449,.753793,.0232114,0,.463756,.743506,.0217039,0,.483447,.732555,.0202841,0,.503535,.720965,.0189648,0,.524036,.709422,.0177189,0,.544968,.697756,.0165626,0,.56635,.685565,.015483,0,.588208,.673987,.0144892,0,.610569,.66244,.0135607,0,.633466,.651675,.0126956,0,.656936,.641598,.0118788,0,.681025,.63121,.0111261,0,.705788,.620514,.010437,0,.731289,.609366,.00978747,0,.757606,.598137,.00917257,0,.784834,.586966,.00859778,0,.813085,.575549,.00806803,0,.842485,.563797,.00757294,0,.87313,.551758,.00710592,0,.904762,.539894,.0066841,0,.936508,.527901,.00627901,0,.968254,.515819,.00590506,0,1,1,.120864,0,0,1,.120864,0,0,.999996,.120864,0,0,.99998,.120867,0,0,.99994,.120872,0,323781e-9,.999852,.120884,0,.00188693,.999693,.120903,0,.00473489,.999426,.120929,0,.00872704,.999002,.120955,0,.0137237,.998235,.120918,0,.0196068,.994608,.119764,0,.0262803,.992997,.119265,0,.0336657,.990968,.11863,0,.0416987,.987002,.117261,0,.0503261,.983524,.116009,0,.0595035,.97875,.114252,0,.0691935,.972652,.11193,0,.0793645,.966613,.109555,0,.0899894,.959275,.106612,0,.101045,.951272,.103375,0,.112512,.942323,.0996594,0,.124372,.933679,.0958841,0,.136611,.924822,.0919265,0,.149216,.915742,.0878061,0,.162176,.906348,.0834894,0,.175482,.896883,.079085,0,.189125,.88774,.0746745,0,.203098,.87986,.0705773,0,.217396,.871998,.0665005,0,.232015,.864325,.0625413,0,.24695,.856685,.0586781,0,.2622,.84925,.0550063,0,.277761,.841719,.0514727,0,.293634,.834755,.0481398,0,.309819,.827853,.0450172,0,.326315,.820888,.0420969,0,.343126,.813616,.0393702,0,.360254,.805767,.0367771,0,.377701,.797338,.0343274,0,.395474,.789122,.0320529,0,.413577,.780601,.0299485,0,.432018,.771424,.0279812,0,.450804,.761502,.0261054,0,.469944,.751166,.0243942,0,.489451,.741276,.0228087,0,.509337,.730898,.0213265,0,.529617,.719878,.0199307,0,.550307,.708379,.0186574,0,.571428,.697165,.0174446,0,.593003,.685554,.0163144,0,.615059,.673631,.015276,0,.637628,.662385,.0143003,0,.660746,.651059,.0134112,0,.68446,.640451,.0125794,0,.70882,.630536,.011793,0,.733893,.620316,.0110547,0,.759756,.609722,.0103668,0,.786505,.598804,.00973009,0,.814259,.587871,.00912812,0,.843157,.577121,.00858916,0,.87334,.566019,.00807333,0,.904762,.554664,.00759687,0,.936508,.543101,.00714759,0,.968254,.531558,.00673418,0,1,1,.146767,0,0,1,.146767,0,0,.999997,.146767,0,0,.999977,.146765,0,320658e-11,.999929,.146762,0,682576e-9,.999823,.146753,0,.00276402,.999633,.146735,0,.00614771,.999314,.146699,0,.0106613,.998796,.14662,0,.0161546,.997124,.146107,0,.0225063,.994062,.144857,0,.0296198,.992154,.144011,0,.037417,.989186,.142712,0,.0458348,.985279,.140926,0,.0548211,.980826,.13885,0,.0643326,.975056,.136168,0,.074333,.969005,.133217,0,.0847917,.961554,.12959,0,.0956828,.954206,.125886,0,.106984,.945046,.121335,0,.118675,.935678,.116492,0,.130741,.926748,.111635,0,.143166,.917764,.106625,0,.155939,.908358,.101325,0,.169049,.899219,.0960249,0,.182487,.890089,.0906527,0,.196245,.881488,.0853905,0,.210317,.874031,.0804177,0,.224697,.866932,.0756005,0,.23938,.859976,.0709019,0,.254364,.853375,.0664391,0,.269646,.846971,.0622012,0,.285223,.840483,.058129,0,.301096,.833969,.0542762,0,.317265,.82806,.0507042,0,.333729,.822128,.047368,0,.350491,.815989,.044272,0,.367554,.809336,.0413444,0,.38492,.802177,.038601,0,.402594,.79441,.0360227,0,.420582,.786573,.0336383,0,.438891,.778619,.0314321,0,.457527,.77,.029362,0,.476499,.760698,.0274102,0,.49582,.750932,.0256146,0,.5155,.740993,.023974,0,.535555,.731159,.0224182,0,.556,.720836,.0209889,0,.576855,.709913,.0196411,0,.598143,.698415,.0183824,0,.619888,.68745,.0172222,0,.642123,.676154,.0161509,0,.664883,.664383,.0151397,0,.688211,.6533,.0141873,0,.71216,.642072,.0133105,0,.736792,.631412,.0124932,0,.762186,.621622,.0117408,0,.788439,.611681,.0110358,0,.815672,.60142,.0103775,0,.844034,.59083,.00975623,0,.873699,.580254,.00918084,0,.904765,.569841,.00864721,0,.936508,.559224,.00815731,0,.968254,.548315,.00767924,0,1,1,.177563,0,0,1,.177563,0,0,.999994,.177562,0,0,.999972,.177555,0,664171e-10,.999914,.177536,0,.0012276,.999787,.177496,0,.00388025,.999556,.17742,0,.00783463,.999165,.177285,0,.0128953,.9985,.177037,0,.0189053,.995388,.175634,0,.025742,.993102,.174375,0,.033309,.990992,.173121,0,.0415298,.986932,.170896,0,.0503425,.982786,.16847,0,.0596964,.977592,.165455,0,.0695498,.971075,.161676,0,.0798676,.963967,.157458,0,.0906201,.956397,.152836,0,.101783,.947489,.147467,0,.113333,.937564,.14145,0,.125254,.928182,.135383,0,.137529,.919027,.129212,0,.150144,.909618,.12276,0,.163088,.900492,.116273,0,.176351,.891671,.1098,0,.189924,.883146,.103362,0,.203799,.875151,.0970799,0,.21797,.868338,.0911732,0,.232433,.862033,.0854966,0,.247182,.856107,.0800691,0,.262216,.850644,.0749618,0,.27753,.845261,.070079,0,.293124,.839885,.0654321,0,.308997,.834609,.0610975,0,.325149,.829083,.0569741,0,.341581,.82404,.0531736,0,.358294,.818968,.049665,0,.37529,.813496,.0463856,0,.392573,.807533,.0433217,0,.410148,.80099,.0404402,0,.428019,.793891,.0377578,0,.446192,.786281,.0352616,0,.464676,.778773,.0329577,0,.483478,.770737,.030808,0,.502608,.762094,.0287964,0,.522079,.752898,.0269254,0,.541905,.743306,.0251926,0,.5621,.733416,.023595,0,.582684,.723742,.0221155,0,.603677,.713542,.0207435,0,.625106,.702755,.019434,0,.646998,.691484,.0182046,0,.66939,.680531,.0170771,0,.692324,.66953,.0160339,0,.715849,.658126,.0150677,0,.740028,.646933,.0141551,0,.764937,.636107,.0133179,0,.790673,.625271,.0125284,0,.817358,.615225,.0117937,0,.84515,.605678,.0111181,0,.874244,.59583,.0104759,0,.904828,.585704,.00986672,0,.936508,.575413,.00929712,0,.968254,.565373,.00876713,0,1,1,.214058,0,0,.999999,.214058,0,0,.999994,.214055,0,0,.999966,.214039,0,259642e-9,.999893,.213998,0,.00200075,.999737,.21391,0,.00527775,.999449,.213745,0,.00983959,.99896,.213458,0,.0154755,.9979,.212855,0,.0220249,.994278,.210779,0,.0293654,.992254,.20926,0,.0374021,.98881,.206908,0,.0460604,.984715,.204009,0,.0552802,.979738,.200471,0,.0650127,.972884,.195813,0,.0752175,.965996,.190856,0,.0858612,.957974,.185077,0,.0969155,.949155,.17868,0,.108356,.939288,.171513,0,.120163,.928996,.163838,0,.132319,.919563,.156246,0,.144808,.910004,.148359,0,.157618,.900791,.140417,0,.170737,.892135,.132569,0,.184155,.883803,.124741,0,.197866,.876034,.117091,0,.211861,.869219,.109835,0,.226134,.863062,.102859,0,.240682,.857795,.0962928,0,.255499,.853009,.0900725,0,.270583,.848603,.0842101,0,.285931,.844335,.0786527,0,.301542,.840208,.0734397,0,.317415,.836035,.0685334,0,.33355,.83172,.0639275,0,.349948,.827135,.0595909,0,.36661,.822797,.0556204,0,.383539,.818387,.0519394,0,.400738,.813565,.0485317,0,.41821,.808142,.0453138,0,.435961,.802212,.0423354,0,.453997,.79573,.0395553,0,.472324,.788741,.036988,0,.490951,.781093,.0345688,0,.509887,.773597,.0323297,0,.529144,.765622,.0302719,0,.548735,.757083,.0283477,0,.568674,.747992,.0265562,0,.588979,.738591,.0248844,0,.609671,.728719,.0233342,0,.630773,.719146,.0219081,0,.652314,.709165,.0205711,0,.674328,.69875,.0193248,0,.696854,.687884,.0181582,0,.719942,.676818,.0170746,0,.743651,.666247,.0160718,0,.768057,.655284,.0151262,0,.793253,.64401,.0142561,0,.819363,.633353,.0134327,0,.846547,.622674,.012653,0,.875017,.612265,.0119354,0,.905021,.602455,.0112533,0,.936508,.593147,.0106234,0,.968254,.583592,.0100213,0,1,1,.25717,0,0,1,.25717,0,0,.999992,.257164,0,0,.999958,.257135,0,641715e-9,.999864,.25706,0,.00305314,.999666,.256897,0,.00700975,.999302,.256596,0,.0122194,.998663,.25607,0,.0184622,.995607,.254123,0,.0255773,.993094,.252081,0,.0334439,.9907,.249867,0,.0419696,.98594,.246118,0,.0510823,.981214,.242049,0,.0607242,.974966,.236869,0,.0708486,.967589,.230724,0,.081417,.95915,.223635,0,.0923974,.950257,.21596,0,.103763,.940165,.207296,0,.115491,.929396,.197901,0,.127562,.919288,.188437,0,.13996,.909428,.178762,0,.15267,.900105,.169072,0,.165679,.891418,.159478,0,.178979,.883347,.15002,0,.192558,.875992,.140813,0,.20641,.869466,.13196,0,.220529,.863699,.123501,0,.234907,.858553,.115436,0,.249542,.854379,.107901,0,.264428,.850894,.10088,0,.279564,.847632,.0942296,0,.294947,.844571,.0879861,0,.310575,.84163,.0821534,0,.326448,.838542,.0766409,0,.342566,.835412,.0715322,0,.358929,.831899,.0666883,0,.37554,.828177,.0622175,0,.392399,.82416,.0580452,0,.409511,.820393,.054267,0,.426878,.816068,.0507172,0,.444506,.811201,.0474041,0,.4624,.805785,.0443174,0,.480566,.799878,.0414562,0,.499013,.793469,.0388147,0,.517749,.786473,.0363453,0,.536785,.778874,.0340225,0,.556134,.771277,.0318599,0,.575809,.763426,.0298859,0,.595827,.755044,.0280357,0,.616207,.746161,.0262979,0,.636973,.737124,.0247295,0,.65815,.72761,.0232514,0,.679772,.717822,.0218755,0,.701876,.708279,.0205942,0,.724509,.698333,.0193947,0,.74773,.68802,.0182717,0,.771609,.677321,.0172044,0,.79624,.666504,.0162122,0,.821743,.656184,.0152924,0,.84828,.64556,.0144326,0,.876069,.634636,.0136157,0,.905404,.624124,.0128612,0,.936508,.613914,.0121435,0,.968254,.603589,.0114887,0,1,1,.307946,0,0,.999999,.307945,0,0,.999988,.307934,0,204479e-10,.999944,.307886,0,.00127833,.999824,.307756,0,.00445047,.999565,.30748,0,.00914673,.999085,.306966,0,.0150498,.998103,.306004,0,.0219367,.994249,.303028,0,.0296485,.991807,.300435,0,.038068,.987773,.296554,0,.0471062,.982673,.2916,0,.0566942,.976623,.285641,0,.0667768,.968757,.27815,0,.0773099,.959849,.269529,0,.088257,.950663,.260248,0,.0995879,.940129,.249704,0,.111277,.92895,.238291,0,.123304,.917996,.226501,0,.13565,.907813,.214669,0,.148299,.898305,.202835,0,.161237,.889626,.191158,0,.174455,.88175,.179695,0,.187941,.874715,.168548,0,.201687,.868746,.15792,0,.215687,.863703,.147807,0,.229933,.859315,.138149,0,.24442,.855538,.128993,0,.259145,.852428,.120414,0,.274103,.850168,.112498,0,.289293,.848132,.105054,0,.304711,.846291,.0981087,0,.320357,.844431,.0915942,0,.33623,.842493,.0855056,0,.35233,.840368,.0798204,0,.368658,.83798,.0745097,0,.385214,.83523,.0695424,0,.402002,.832091,.0649092,0,.419023,.828667,.0606291,0,.436282,.824805,.0566523,0,.453782,.820988,.0530229,0,.471529,.816635,.0496364,0,.489528,.811725,.0464658,0,.507788,.806316,.0435082,0,.526317,.800469,.0407873,0,.545124,.794107,.038255,0,.564221,.787218,.0358825,0,.583621,.779872,.0336785,0,.603341,.772097,.0316379,0,.623397,.764484,.0297379,0,.643812,.756428,.0279581,0,.664611,.748022,.0263153,0,.685824,.739268,.0247799,0,.707488,.73024,.0233385,0,.729646,.720893,.0220035,0,.752354,.71119,.0207555,0,.77568,.701791,.0195843,0,.799715,.692184,.0184891,0,.824574,.682258,.0174541,0,.850417,.67206,.0164873,0,.877466,.661717,.0155959,0,.90604,.651462,.0147519,0,.936528,.641467,.0139727,0,.968254,.631229,.0132363,0,1,1,.367573,0,0,.999999,.367571,0,0,.999984,.367553,0,183382e-9,.999925,.367473,0,.00225254,.999759,.367259,0,.00628165,.99941,.366801,0,.0117858,.998739,.365946,0,.0184359,.995529,.363191,0,.0260114,.992875,.360171,0,.0343581,.989135,.355981,0,.0433637,.984166,.350401,0,.0529438,.977871,.343348,0,.0630334,.96951,.334341,0,.0735805,.959964,.323862,0,.0845437,.950162,.312521,0,.095889,.938882,.299577,0,.107588,.926992,.285573,0,.119617,.915589,.271212,0,.131957,.904791,.256611,0,.144591,.895177,.242224,0,.157503,.886403,.227952,0,.170682,.878957,.214192,0,.184117,.872418,.200795,0,.197799,.867029,.188015,0,.21172,.862835,.175975,0,.225873,.859411,.164526,0,.240253,.856655,.153693,0,.254854,.854519,.14352,0,.269673,.852828,.13397,0,.284707,.851412,.124984,0,.299953,.850609,.116748,0,.315408,.849855,.10905,0,.331073,.849017,.101839,0,.346946,.848079,.0951359,0,.363028,.846911,.0888774,0,.379318,.845445,.0830375,0,.395818,.84362,.0775844,0,.41253,.841411,.0725054,0,.429457,.838768,.0677691,0,.446602,.835801,.0634016,0,.463968,.832341,.0593095,0,.481561,.828424,.0555121,0,.499386,.824312,.052024,0,.51745,.819918,.0487865,0,.535761,.815072,.0457801,0,.554328,.809863,.0430184,0,.573162,.804164,.0404245,0,.592275,.798034,.0380146,0,.611681,.791436,.0357436,0,.631398,.784498,.0336475,0,.651445,.777125,.0316666,0,.671845,.769365,.0298122,0,.692628,.761579,.0281001,0,.713827,.753746,.0265049,0,.735484,.745573,.0250067,0,.75765,.737083,.0236026,0,.78039,.728545,.0223302,0,.803789,.719691,.0211243,0,.82796,.710569,.0199983,0,.853056,.701216,.0189569,0,.879298,.692094,.0179702,0,.907014,.682909,.0170418,0,.936691,.673509,.0161732,0,.968254,.663863,.0153406,0,1,1,.437395,0,0,.999998,.437394,0,0,.99998,.437363,0,616704e-9,.999891,.437232,0,.00367925,.999656,.436877,0,.00867446,.999148,.436121,0,.0150679,.997959,.434564,0,.022531,.993464,.430134,0,.0308507,.990606,.426077,0,.0398805,.985027,.419397,0,.0495148,.978491,.41118,0,.0596749,.969643,.40048,0,.0703001,.959189,.38769,0,.0813427,.948223,.373575,0,.0927641,.935955,.357622,0,.104533,.923237,.34043,0,.116624,.911074,.322735,0,.129015,.899724,.30479,0,.141687,.890189,.287392,0,.154626,.881796,.270248,0,.167818,.874781,.253659,0,.181252,.869166,.237786,0,.194918,.864725,.222618,0,.208807,.861565,.208356,0,.222913,.859284,.194867,0,.237229,.857677,.18212,0,.25175,.856714,.17018,0,.266473,.856155,.158969,0,.281392,.8558,.148413,0,.296505,.855672,.138578,0,.311811,.855538,.129345,0,.327306,.855689,.120861,0,.342991,.855767,.112969,0,.358864,.855618,.105593,0,.374925,.85525,.0987451,0,.391176,.854583,.0923727,0,.407616,.853534,.0864143,0,.424249,.852061,.0808338,0,.441076,.850253,.0756771,0,.4581,.848004,.0708612,0,.475324,.845333,.0663784,0,.492754,.842376,.0622631,0,.510394,.838956,.0584112,0,.528251,.835121,.0548328,0,.546331,.830842,.0514838,0,.564644,.826212,.048355,0,.583198,.821522,.0454714,0,.602005,.816551,.0428263,0,.621078,.811211,.0403612,0,.640434,.805479,.038039,0,.660089,.799409,.0358739,0,.680066,.79306,.0338727,0,.70039,.786395,.0319985,0,.721094,.779416,.030241,0,.742215,.77214,.0285951,0,.7638,.764636,.0270747,0,.785912,.756836,.0256354,0,.808628,.749315,.0243027,0,.832055,.741561,.0230497,0,.856338,.733589,.0218801,0,.88169,.725479,.020784,0,.908441,.717255,.0197702,0,.937125,.708829,.0188168,0,.968254,.700191,.0179113,0,1,1,.518937,0,0,.999998,.518933,0,0,.999967,.518883,0,.00147741,.999832,.51866,0,.00573221,.999466,.518057,0,.011826,.998644,.516752,0,.0192116,.994458,.512347,0,.027573,.991223,.507675,0,.0367099,.985515,.500188,0,.046487,.978308,.490408,0,.0568071,.968359,.477357,0,.0675984,.95682,.461752,0,.0788059,.943929,.443796,0,.090386,.930224,.423893,0,.102304,.916514,.402682,0,.114532,.903653,.380914,0,.127047,.892315,.359212,0,.139828,.882942,.338102,0,.152861,.875438,.31773,0,.16613,.869642,.298186,0,.179624,.865304,.279491,0,.193332,.862382,.261804,0,.207247,.860666,.245146,0,.22136,.859788,.229406,0,.235666,.859608,.214605,0,.250158,.859912,.200691,0,.264832,.86053,.187623,0,.279684,.861368,.17539,0,.294711,.862237,.163901,0,.309911,.863127,.153175,0,.32528,.863923,.143147,0,.340819,.864567,.133781,0,.356524,.865013,.125042,0,.372397,.86539,.116952,0,.388438,.865591,.109476,0,.404645,.865517,.102542,0,.421022,.865084,.0960688,0,.437569,.864309,.0900499,0,.454287,.863151,.0844328,0,.471181,.861649,.0792218,0,.488253,.859742,.0743482,0,.505507,.857446,.0697963,0,.522947,.854757,.0655364,0,.54058,.851783,.061608,0,.558412,.848516,.0579701,0,.576449,.844897,.0545742,0,.594701,.840956,.0514167,0,.613178,.836676,.0484598,0,.631892,.832075,.0456934,0,.650856,.827191,.0431178,0,.670088,.822295,.0407718,0,.689606,.817294,.0386032,0,.709434,.812013,.0365675,0,.7296,.806465,.0346547,0,.750138,.800691,.0328717,0,.771093,.794709,.031211,0,.792519,.788493,.0296504,0,.814488,.782049,.0281782,0,.837097,.775403,.0267965,0,.860481,.76857,.0255002,0,.884842,.761536,.0242759,0,.910494,.754303,.0231142,0,.937985,.74692,.0220305,0,.968254,.739745,.0210192,0,1,1,.613914,0,0,.999996,.613907,0,963597e-10,.999942,.613814,0,.00301247,.999704,.613407,0,.00870385,.999046,.612302,0,.0160714,.995516,.608266,0,.0245899,.991726,.602863,0,.0339681,.985157,.593956,0,.0440254,.97642,.581748,0,.0546409,.964404,.565183,0,.0657284,.950601,.545273,0,.0772246,.935158,.522129,0,.0890812,.919364,.496782,0,.10126,.904754,.470571,0,.113731,.89176,.444037,0,.126469,.881492,.418322,0,.139454,.873656,.393522,0,.15267,.868053,.369795,0,.166101,.864336,.347171,0,.179736,.862259,.325737,0,.193565,.861556,.305532,0,.207578,.861776,.286416,0,.221769,.862661,.268355,0,.23613,.864015,.251334,0,.250656,.865711,.235352,0,.265343,.867519,.220302,0,.280187,.869351,.206161,0,.295183,.871144,.192908,0,.31033,.872839,.180505,0,.325624,.874307,.168848,0,.341065,.875667,.158021,0,.35665,.876758,.147877,0,.37238,.87764,.138441,0,.388253,.878237,.129627,0,.404269,.878563,.121415,0,.42043,.878572,.113741,0,.436735,.87842,.106652,0,.453187,.878057,.100097,0,.469786,.877413,.0940128,0,.486536,.87646,.0883462,0,.503439,.875233,.0830924,0,.520498,.8737,.0781975,0,.537717,.871873,.07364,0,.555102,.86978,.0694103,0,.572657,.867405,.0654696,0,.59039,.864751,.0617914,0,.608307,.861818,.0583491,0,.626419,.858645,.0551443,0,.644733,.855307,.0521894,0,.663264,.851736,.0494334,0,.682025,.847927,.0468504,0,.701032,.843888,.0444261,0,.720308,.839629,.0421497,0,.739875,.835158,.0400082,0,.759764,.830509,.0380076,0,.780014,.825714,.0361488,0,.800673,.820729,.0343956,0,.821803,.815751,.0327781,0,.843492,.810752,.031275,0,.86586,.805587,.0298542,0,.889087,.800317,.0285397,0,.913466,.79489,.0272948,0,.93952,.789314,.0261139,0,.96835,.783593,.0249938,0,1,1,.724258,0,0,.999992,.724243,0,726889e-9,.99987,.724044,0,.00569574,.999336,.72317,0,.0131702,.996271,.719432,0,.0220738,.991159,.712576,0,.0319405,.982465,.700927,0,.0425202,.97049,.684297,0,.0536599,.953973,.661244,0,.065258,.935546,.633804,0,.0772427,.916596,.603071,0,.0895616,.899353,.57105,0,.102175,.885216,.539206,0,.11505,.875076,.508714,0,.128164,.868334,.479571,0,.141495,.864414,.451796,0,.155026,.862678,.425328,0,.168745,.862835,.400352,0,.182639,.864067,.376532,0,.196699,.866086,.35391,0,.210915,.868557,.332424,0,.225282,.871271,.312053,0,.239792,.874058,.292764,0,.25444,.8768,.27453,0,.269223,.87939,.257297,0,.284135,.8819,.24114,0,.299174,.884187,.225934,0,.314337,.886262,.211669,0,.329622,.888119,.198311,0,.345026,.889709,.185783,0,.360549,.891054,.174063,0,.376189,.892196,.163143,0,.391946,.893101,.152952,0,.407819,.893803,.143475,0,.423808,.894277,.134647,0,.439914,.894532,.126434,0,.456137,.894576,.1188,0,.472479,.894393,.111694,0,.48894,.893976,.105069,0,.505523,.893346,.0989077,0,.52223,.892502,.0931724,0,.539064,.891441,.0878276,0,.556028,.890276,.082903,0,.573125,.888972,.0783505,0,.590361,.887469,.0741083,0,.607741,.885785,.0701633,0,.62527,.883914,.0664835,0,.642957,.881872,.0630567,0,.660809,.879651,.0598527,0,.678836,.877267,.0568615,0,.69705,.874717,.05406,0,.715465,.872012,.0514378,0,.734098,.869157,.0489805,0,.752968,.866155,.0466727,0,.772101,.863014,.0445056,0,.791529,.859748,.0424733,0,.81129,.856416,.0405957,0,.831438,.852958,.0388273,0,.852044,.849382,.0371619,0,.87321,.845694,.0355959,0,.89509,.841893,.0341155,0,.917932,.837981,.0327141,0,.942204,.833963,.0313856,0,.968981,.829847,.0301275,0,1,1,.85214,0,0,.999969,.852095,0,.00279627,.999483,.851408,0,.0107635,.994545,.84579,0,.0206454,.986188,.835231,0,.0315756,.969847,.814687,0,.0432021,.945951,.783735,0,.0553396,.91917,.746074,0,.0678766,.895488,.706938,0,.0807395,.878232,.669534,0,.0938767,.868252,.635168,0,.10725,.863873,.603069,0,.120832,.863369,.572514,0,.134598,.86545,.543169,0,.148533,.868803,.514578,0,.16262,.872794,.486762,0,.176849,.87702,.459811,0,.19121,.881054,.433654,0,.205694,.884974,.408574,0,.220294,.888587,.384525,0,.235005,.891877,.36156,0,.24982,.894793,.339661,0,.264737,.89743,.318913,0,.279751,.899796,.299302,0,.294859,.901943,.280843,0,.310058,.903858,.263481,0,.325346,.905574,.247197,0,.340721,.907069,.231915,0,.356181,.908379,.217614,0,.371725,.90952,.20425,0,.387353,.910483,.191758,0,.403063,.91128,.180092,0,.418854,.911936,.169222,0,.434727,.912454,.159098,0,.450682,.912835,.149668,0,.466718,.913078,.140884,0,.482837,.913192,.132709,0,.499038,.913175,.125095,0,.515324,.91304,.118012,0,.531695,.912781,.111417,0,.548153,.91241,.105281,0,.5647,.911924,.0995691,0,.581338,.911331,.0942531,0,.59807,.910637,.0893076,0,.6149,.90984,.0846998,0,.63183,.908941,.0804044,0,.648865,.907944,.0763984,0,.666011,.906857,.0726638,0,.683273,.90568,.0691783,0,.700659,.904416,.0659222,0,.718176,.903067,.0628782,0,.735834,.901637,.0600307,0,.753646,.900128,.0573647,0,.771625,.898544,.0548668,0,.78979,.89689,.052527,0,.808162,.895165,.0503306,0,.826771,.893371,.0482668,0,.845654,.891572,.0463605,0,.864863,.889763,.0445998,0,.884472,.887894,.0429451,0,.904592,.885967,.0413884,0,.925407,.883984,.0399225,0,.947271,.881945,.0385405,0,.97105,.879854,.0372362,0,1,.999804,.995833,0,0,.938155,.933611,0,.0158731,.864755,.854311,0,.0317461,.888594,.865264,0,.0476191,.905575,.863922,0,.0634921,.915125,.850558,0,.0793651,.920665,.829254,0,.0952381,.924073,.802578,0,.111111,.926304,.772211,0,.126984,.927829,.739366,0,.142857,.928924,.705033,0,.15873,.92973,.670019,0,.174603,.930339,.634993,0,.190476,.930811,.600485,0,.206349,.931191,.566897,0,.222222,.93149,.534485,0,.238095,.931737,.503429,0,.253968,.931939,.473811,0,.269841,.932108,.445668,0,.285714,.93225,.418993,0,.301587,.932371,.393762,0,.31746,.932474,.369939,0,.333333,.932562,.347479,0,.349206,.932638,.326336,0,.365079,.932703,.306462,0,.380952,.93276,.287805,0,.396825,.932809,.270313,0,.412698,.932851,.253933,0,.428571,.932887,.23861,0,.444444,.932917,.224289,0,.460317,.932943,.210917,0,.47619,.932965,.19844,0,.492063,.932982,.186807,0,.507937,.932995,.175966,0,.52381,.933005,.165869,0,.539683,.933011,.156468,0,.555556,.933013,.147719,0,.571429,.933013,.139579,0,.587302,.93301,.132007,0,.603175,.933004,.124965,0,.619048,.932994,.118416,0,.634921,.932982,.112326,0,.650794,.932968,.106663,0,.666667,.93295,.101397,0,.68254,.932931,.0964993,0,.698413,.932908,.0919438,0,.714286,.932883,.0877057,0,.730159,.932856,.0837623,0,.746032,.932827,.0800921,0,.761905,.932796,.0766754,0,.777778,.932762,.0734936,0,.793651,.932727,.0705296,0,.809524,.932689,.0677676,0,.825397,.93265,.0651929,0,.84127,.932609,.0627917,0,.857143,.932565,.0605515,0,.873016,.932521,.0584606,0,.888889,.932474,.0565082,0,.904762,.932427,.0546841,0,.920635,.932377,.0529793,0,.936508,.932326,.0513851,0,.952381,.932274,.0498936,0,.968254,.93222,.0484975,0,.984127,.932164,.0471899,0,1],r=new Float32Array(e),i=new Float32Array(t);n.UniformsLib.LTC_FLOAT_1=new n.DataTexture(r,64,64,n.RGBAFormat,n.FloatType,n.UVMapping,n.ClampToEdgeWrapping,n.ClampToEdgeWrapping,n.LinearFilter,n.NearestFilter,1),n.UniformsLib.LTC_FLOAT_2=new n.DataTexture(i,64,64,n.RGBAFormat,n.FloatType,n.UVMapping,n.ClampToEdgeWrapping,n.ClampToEdgeWrapping,n.LinearFilter,n.NearestFilter,1),n.UniformsLib.LTC_FLOAT_1.needsUpdate=!0,n.UniformsLib.LTC_FLOAT_2.needsUpdate=!0;const s=new Uint16Array(e.length);e.forEach((function(e,t){s[t]=n.DataUtils.toHalfFloat(e)}));const a=new Uint16Array(t.length);t.forEach((function(e,t){a[t]=n.DataUtils.toHalfFloat(e)})),n.UniformsLib.LTC_HALF_1=new n.DataTexture(s,64,64,n.RGBAFormat,n.HalfFloatType,n.UVMapping,n.ClampToEdgeWrapping,n.ClampToEdgeWrapping,n.LinearFilter,n.NearestFilter,1),n.UniformsLib.LTC_HALF_2=new n.DataTexture(a,64,64,n.RGBAFormat,n.HalfFloatType,n.UVMapping,n.ClampToEdgeWrapping,n.ClampToEdgeWrapping,n.LinearFilter,n.NearestFilter,1),n.UniformsLib.LTC_HALF_1.needsUpdate=!0,n.UniformsLib.LTC_HALF_2.needsUpdate=!0}}},27575:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(39867),i=r(13235),s=r(45051);class a extends n.LineSegments2{constructor(e=new i.LineGeometry,t=new s.LineMaterial({color:16777215*Math.random()})){super(e,t),this.isLine2=!0,this.type="Line2"}}t.Line2=a},13235:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(5440);class i extends n.LineSegmentsGeometry{constructor(){super(),this.isLineGeometry=!0,this.type="LineGeometry"}setPositions(e){const t=e.length-3,r=new Float32Array(2*t);for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.ShaderMaterial{constructor(e){super({type:"LineMaterial",uniforms:n.UniformsUtils.clone(n.UniformsUtils.merge([n.UniformsLib.common,n.UniformsLib.fog,{worldUnits:{value:1},linewidth:{value:1},resolution:{value:new n.Vector2(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}}])),vertexShader:"\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tuniform float linewidth;\n\t\t\t\tuniform vec2 resolution;\n\n\t\t\t\tattribute vec3 instanceStart;\n\t\t\t\tattribute vec3 instanceEnd;\n\n\t\t\t\tattribute vec3 instanceColorStart;\n\t\t\t\tattribute vec3 instanceColorEnd;\n\n\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\tvarying vec4 worldPos;\n\t\t\t\t\tvarying vec3 worldStart;\n\t\t\t\t\tvarying vec3 worldEnd;\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#else\n\n\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\tuniform float dashScale;\n\t\t\t\t\tattribute float instanceDistanceStart;\n\t\t\t\t\tattribute float instanceDistanceEnd;\n\t\t\t\t\tvarying float vLineDistance;\n\n\t\t\t\t#endif\n\n\t\t\t\tvoid trimSegment( const in vec4 start, inout vec4 end ) {\n\n\t\t\t\t\t// trim end segment so it terminates between the camera plane and the near plane\n\n\t\t\t\t\t// conservative estimate of the near plane\n\t\t\t\t\tfloat a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n\t\t\t\t\tfloat b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n\t\t\t\t\tfloat nearEstimate = - 0.5 * b / a;\n\n\t\t\t\t\tfloat alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n\t\t\t\t\tend.xyz = mix( start.xyz, end.xyz, alpha );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#ifdef USE_COLOR\n\n\t\t\t\t\t\tvColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\t\t\t\t\t\tvUv = uv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfloat aspect = resolution.x / resolution.y;\n\n\t\t\t\t\t// camera space\n\t\t\t\t\tvec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n\t\t\t\t\tvec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\tworldStart = start.xyz;\n\t\t\t\t\t\tworldEnd = end.xyz;\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tvUv = uv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\t// special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n\t\t\t\t\t// clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n\t\t\t\t\t// but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n\t\t\t\t\t// perhaps there is a more elegant solution -- WestLangley\n\n\t\t\t\t\tbool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n\t\t\t\t\tif ( perspective ) {\n\n\t\t\t\t\t\tif ( start.z < 0.0 && end.z >= 0.0 ) {\n\n\t\t\t\t\t\t\ttrimSegment( start, end );\n\n\t\t\t\t\t\t} else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n\t\t\t\t\t\t\ttrimSegment( end, start );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t\t// clip space\n\t\t\t\t\tvec4 clipStart = projectionMatrix * start;\n\t\t\t\t\tvec4 clipEnd = projectionMatrix * end;\n\n\t\t\t\t\t// ndc space\n\t\t\t\t\tvec3 ndcStart = clipStart.xyz / clipStart.w;\n\t\t\t\t\tvec3 ndcEnd = clipEnd.xyz / clipEnd.w;\n\n\t\t\t\t\t// direction\n\t\t\t\t\tvec2 dir = ndcEnd.xy - ndcStart.xy;\n\n\t\t\t\t\t// account for clip-space aspect ratio\n\t\t\t\t\tdir.x *= aspect;\n\t\t\t\t\tdir = normalize( dir );\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\t// get the offset direction as perpendicular to the view vector\n\t\t\t\t\t\tvec3 worldDir = normalize( end.xyz - start.xyz );\n\t\t\t\t\t\tvec3 offset;\n\t\t\t\t\t\tif ( position.y < 0.5 ) {\n\n\t\t\t\t\t\t\toffset = normalize( cross( start.xyz, worldDir ) );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\toffset = normalize( cross( end.xyz, worldDir ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// sign flip\n\t\t\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t\t\tfloat forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );\n\n\t\t\t\t\t\t// don't extend the line if we're rendering dashes because we\n\t\t\t\t\t\t// won't be rendering the endcaps\n\t\t\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t\t\t// extend the line bounds to encompass endcaps\n\t\t\t\t\t\t\tstart.xyz += - worldDir * linewidth * 0.5;\n\t\t\t\t\t\t\tend.xyz += worldDir * linewidth * 0.5;\n\n\t\t\t\t\t\t\t// shift the position of the quad so it hugs the forward edge of the line\n\t\t\t\t\t\t\toffset.xy -= dir * forwardOffset;\n\t\t\t\t\t\t\toffset.z += 0.5;\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t// endcaps\n\t\t\t\t\t\tif ( position.y > 1.0 || position.y < 0.0 ) {\n\n\t\t\t\t\t\t\toffset.xy += dir * 2.0 * forwardOffset;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// adjust for linewidth\n\t\t\t\t\t\toffset *= linewidth * 0.5;\n\n\t\t\t\t\t\t// set the world position\n\t\t\t\t\t\tworldPos = ( position.y < 0.5 ) ? start : end;\n\t\t\t\t\t\tworldPos.xyz += offset;\n\n\t\t\t\t\t\t// project the worldpos\n\t\t\t\t\t\tvec4 clip = projectionMatrix * worldPos;\n\n\t\t\t\t\t\t// shift the depth of the projected points so the line\n\t\t\t\t\t\t// segments overlap neatly\n\t\t\t\t\t\tvec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;\n\t\t\t\t\t\tclip.z = clipPose.z * clip.w;\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\tvec2 offset = vec2( dir.y, - dir.x );\n\t\t\t\t\t\t// undo aspect ratio adjustment\n\t\t\t\t\t\tdir.x /= aspect;\n\t\t\t\t\t\toffset.x /= aspect;\n\n\t\t\t\t\t\t// sign flip\n\t\t\t\t\t\tif ( position.x < 0.0 ) offset *= - 1.0;\n\n\t\t\t\t\t\t// endcaps\n\t\t\t\t\t\tif ( position.y < 0.0 ) {\n\n\t\t\t\t\t\t\toffset += - dir;\n\n\t\t\t\t\t\t} else if ( position.y > 1.0 ) {\n\n\t\t\t\t\t\t\toffset += dir;\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// adjust for linewidth\n\t\t\t\t\t\toffset *= linewidth;\n\n\t\t\t\t\t\t// adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n\t\t\t\t\t\toffset /= resolution.y;\n\n\t\t\t\t\t\t// select end\n\t\t\t\t\t\tvec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n\t\t\t\t\t\t// back to clip space\n\t\t\t\t\t\toffset *= clip.w;\n\n\t\t\t\t\t\tclip.xy += offset;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tgl_Position = clip;\n\n\t\t\t\t\tvec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:`\n\t\t\t\tuniform vec3 diffuse;\n\t\t\t\tuniform float opacity;\n\t\t\t\tuniform float linewidth;\n\n\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\tuniform float dashOffset;\n\t\t\t\t\tuniform float dashSize;\n\t\t\t\t\tuniform float gapSize;\n\n\t\t\t\t#endif\n\n\t\t\t\tvarying float vLineDistance;\n\n\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\tvarying vec4 worldPos;\n\t\t\t\t\tvarying vec3 worldStart;\n\t\t\t\t\tvarying vec3 worldEnd;\n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t\t#endif\n\n\t\t\t\t#else\n\n\t\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\t#endif\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tvec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {\n\n\t\t\t\t\tfloat mua;\n\t\t\t\t\tfloat mub;\n\n\t\t\t\t\tvec3 p13 = p1 - p3;\n\t\t\t\t\tvec3 p43 = p4 - p3;\n\n\t\t\t\t\tvec3 p21 = p2 - p1;\n\n\t\t\t\t\tfloat d1343 = dot( p13, p43 );\n\t\t\t\t\tfloat d4321 = dot( p43, p21 );\n\t\t\t\t\tfloat d1321 = dot( p13, p21 );\n\t\t\t\t\tfloat d4343 = dot( p43, p43 );\n\t\t\t\t\tfloat d2121 = dot( p21, p21 );\n\n\t\t\t\t\tfloat denom = d2121 * d4343 - d4321 * d4321;\n\n\t\t\t\t\tfloat numer = d1343 * d4321 - d1321 * d4343;\n\n\t\t\t\t\tmua = numer / denom;\n\t\t\t\t\tmua = clamp( mua, 0.0, 1.0 );\n\t\t\t\t\tmub = ( d1343 + d4321 * ( mua ) ) / d4343;\n\t\t\t\t\tmub = clamp( mub, 0.0, 1.0 );\n\n\t\t\t\t\treturn vec2( mua, mub );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\n\t\t\t\t\t#ifdef USE_DASH\n\n\t\t\t\t\t\tif ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n\t\t\t\t\t\tif ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tfloat alpha = opacity;\n\n\t\t\t\t\t#ifdef WORLD_UNITS\n\n\t\t\t\t\t\t// Find the closest points on the view ray and the line segment\n\t\t\t\t\t\tvec3 rayEnd = normalize( worldPos.xyz ) * 1e5;\n\t\t\t\t\t\tvec3 lineDir = worldEnd - worldStart;\n\t\t\t\t\t\tvec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );\n\n\t\t\t\t\t\tvec3 p1 = worldStart + lineDir * params.x;\n\t\t\t\t\t\tvec3 p2 = rayEnd * params.y;\n\t\t\t\t\t\tvec3 delta = p1 - p2;\n\t\t\t\t\t\tfloat len = length( delta );\n\t\t\t\t\t\tfloat norm = len / linewidth;\n\n\t\t\t\t\t\t#ifndef USE_DASH\n\n\t\t\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\t\t\tfloat dnorm = fwidth( norm );\n\t\t\t\t\t\t\t\talpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );\n\n\t\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\t\tif ( norm > 0.5 ) {\n\n\t\t\t\t\t\t\t\t\tdiscard;\n\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t#endif\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t#else\n\n\t\t\t\t\t\t#ifdef USE_ALPHA_TO_COVERAGE\n\n\t\t\t\t\t\t\t// artifacts appear on some hardware if a derivative is taken within a conditional\n\t\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\t\t\t\t\t\t\tfloat dlen = fwidth( len2 );\n\n\t\t\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\t\t\talpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#else\n\n\t\t\t\t\t\t\tif ( abs( vUv.y ) > 1.0 ) {\n\n\t\t\t\t\t\t\t\tfloat a = vUv.x;\n\t\t\t\t\t\t\t\tfloat b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n\t\t\t\t\t\t\t\tfloat len2 = a * a + b * b;\n\n\t\t\t\t\t\t\t\tif ( len2 > 1.0 ) discard;\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t#endif\n\n\t\t\t\t\t#endif\n\n\t\t\t\t\tvec4 diffuseColor = vec4( diffuse, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t\tgl_FragColor = vec4( diffuseColor.rgb, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include <${parseInt(n.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,clipping:!0}),this.isLineMaterial=!0,Object.defineProperties(this,{color:{enumerable:!0,get:function(){return this.uniforms.diffuse.value},set:function(e){this.uniforms.diffuse.value=e}},worldUnits:{enumerable:!0,get:function(){return"WORLD_UNITS"in this.defines},set:function(e){!0===e?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}},linewidth:{enumerable:!0,get:function(){return this.uniforms.linewidth.value},set:function(e){this.uniforms.linewidth.value=e}},dashed:{enumerable:!0,get:function(){return Boolean("USE_DASH"in this.defines)},set(e){Boolean(e)!==Boolean("USE_DASH"in this.defines)&&(this.needsUpdate=!0),!0===e?this.defines.USE_DASH="":delete this.defines.USE_DASH}},dashScale:{enumerable:!0,get:function(){return this.uniforms.dashScale.value},set:function(e){this.uniforms.dashScale.value=e}},dashSize:{enumerable:!0,get:function(){return this.uniforms.dashSize.value},set:function(e){this.uniforms.dashSize.value=e}},dashOffset:{enumerable:!0,get:function(){return this.uniforms.dashOffset.value},set:function(e){this.uniforms.dashOffset.value=e}},gapSize:{enumerable:!0,get:function(){return this.uniforms.gapSize.value},set:function(e){this.uniforms.gapSize.value=e}},opacity:{enumerable:!0,get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},resolution:{enumerable:!0,get:function(){return this.uniforms.resolution.value},set:function(e){this.uniforms.resolution.value.copy(e)}},alphaToCoverage:{enumerable:!0,get:function(){return Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)},set:function(e){Boolean(e)!==Boolean("USE_ALPHA_TO_COVERAGE"in this.defines)&&(this.needsUpdate=!0),!0===e?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1)}}}),this.setValues(e)}}t.LineMaterial=i},39867:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(5440),s=r(45051),a=new n.Vector3,o=new n.Vector3,l=new n.Vector4,c=new n.Vector4,h=new n.Vector4,u=new n.Vector3,d=new n.Matrix4,p=new n.Line3,f=new n.Vector3,m=new n.Box3,g=new n.Sphere,A=new n.Vector4;let v,y,x,b;function E(e,t,r){return A.set(0,0,-t,1).applyMatrix4(e.projectionMatrix),A.multiplyScalar(1/A.w),A.x=b/r.width,A.y=b/r.height,A.applyMatrix4(e.projectionMatrixInverse),A.multiplyScalar(1/A.w),Math.abs(Math.max(A.x,A.y))}class _ extends n.Mesh{constructor(e=new i.LineSegmentsGeometry,t=new s.LineMaterial({color:16777215*Math.random()})){super(e,t),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,t=e.attributes.instanceStart,r=e.attributes.instanceEnd,i=new Float32Array(2*t.count);for(let n=0,l=0,c=t.count;nA&&c.z>A)continue;if(l.z>A){const e=l.z-c.z,t=(l.z-A)/e;l.lerp(c,t)}else if(c.z>A){const e=c.z-l.z,t=(c.z-A)/e;c.lerp(l,t)}l.applyMatrix4(i),c.applyMatrix4(i),l.multiplyScalar(1/l.w),c.multiplyScalar(1/c.w),l.x*=s.x/2,l.y*=s.y/2,c.x*=s.x/2,c.y*=s.y/2,p.start.copy(l),p.start.z=0,p.end.copy(c),p.end.z=0;const t=p.closestPointToPointParameter(u,!0);p.at(t,f);const o=n.MathUtils.lerp(l.z,c.z,t),y=o>=-1&&o<=1,x=u.distanceTo(f)<.5*b;if(y&&x){p.start.fromBufferAttribute(m,h),p.end.fromBufferAttribute(g,h),p.start.applyMatrix4(a),p.end.applyMatrix4(a);const t=new n.Vector3,i=new n.Vector3;v.distanceSqToSegment(p.start,p.end,i,t),r.push({point:i,pointOnLine:t,distance:v.origin.distanceTo(i),object:e,face:null,faceIndex:h,uv:null,uv2:null})}}}(this,i,t))}}}t.LineSegments2=_},5440:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Box3,s=new n.Vector3;class a extends n.InstancedBufferGeometry{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry";this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new n.Float32BufferAttribute([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new n.Float32BufferAttribute([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(e){const t=this.attributes.instanceStart,r=this.attributes.instanceEnd;return void 0!==t&&(t.applyMatrix4(e),r.applyMatrix4(e),t.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}setPositions(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const r=new n.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceStart",new n.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceEnd",new n.InterleavedBufferAttribute(r,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let t;e instanceof Float32Array?t=e:Array.isArray(e)&&(t=new Float32Array(e));const r=new n.InstancedInterleavedBuffer(t,6,1);return this.setAttribute("instanceColorStart",new n.InterleavedBufferAttribute(r,3,0)),this.setAttribute("instanceColorEnd",new n.InterleavedBufferAttribute(r,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new n.WireframeGeometry(e.geometry)),this}fromLineSegments(e){const t=e.geometry;return this.setPositions(t.attributes.position.array),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new n.Box3);const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;void 0!==e&&void 0!==t&&(this.boundingBox.setFromBufferAttribute(e),i.setFromBufferAttribute(t),this.boundingBox.union(i))}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new n.Sphere),null===this.boundingBox&&this.computeBoundingBox();const e=this.attributes.instanceStart,t=this.attributes.instanceEnd;if(void 0!==e&&void 0!==t){const r=this.boundingSphere.center;this.boundingBox.getCenter(r);let n=0;for(let i=0,a=e.count;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(5440),s=r(45051),a=new n.Vector3,o=new n.Vector3;class l extends n.Mesh{constructor(e=new i.LineSegmentsGeometry,t=new s.LineMaterial({color:16777215*Math.random()})){super(e,t),this.isWireframe=!0,this.type="Wireframe"}computeLineDistances(){const e=this.geometry,t=e.attributes.instanceStart,r=e.attributes.instanceEnd,i=new Float32Array(2*t.count);for(let n=0,l=0,c=t.count;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(5440);class s extends i.LineSegmentsGeometry{constructor(e){super(),this.isWireframeGeometry2=!0,this.type="WireframeGeometry2",this.fromWireframeGeometry(new n.WireframeGeometry(e))}}t.WireframeGeometry2=s},37425:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new WeakMap;class s extends n.Loader{constructor(e){super(e),this.libraryPath="",this.libraryPending=null,this.libraryBinary=null,this.libraryConfig={},this.url="",this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.workerConfig={},this.materials=[]}setLibraryPath(e){return this.libraryPath=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,r,s){const a=new n.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),this.url=e,a.load(e,(r=>{if(i.has(r)){return i.get(r).promise.then(t).catch(s)}this.decodeObjects(r,e).then(t).catch(s)}),r,s)}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}decodeObjects(e,t){let r,n;const s=e.byteLength,a=this._getWorker(s).then((t=>(r=t,n=this.workerNextTaskID++,new Promise(((t,i)=>{r._callbacks[n]={resolve:t,reject:i},r.postMessage({type:"decode",id:n,buffer:e},[e])}))))).then((e=>this._createGeometry(e.data)));return a.catch((()=>!0)).then((()=>{r&&n&&this._releaseTask(r,n)})),i.set(e,{url:t,promise:a}),a}parse(e,t,r){this.decodeObjects(e,"").then(t).catch(r)}_compareMaterials(e){const t={};t.name=e.name,t.color={},t.color.r=e.color.r,t.color.g=e.color.g,t.color.b=e.color.b,t.type=e.type;for(let r=0;r0,opacity:1-e.transparency}),s=new n.TextureLoader;for(let n=0;n=0){const e=o[c.materialIndex];let t=this._createMaterial(e);t=this._compareMaterials(t),n=this._createObject(l,t)}else{const e=this._createMaterial();n=this._createObject(l,e)}if(void 0===n)continue;const a=e.layers[c.layerIndex];n.visible=!a||e.layers[c.layerIndex].visible,c.isInstanceDefinitionObject?r.push(n):t.add(n)}}for(let l=0;l{e.load("rhino3dm.js",t,void 0,r)})),r=new n.FileLoader(this.manager);r.setPath(this.libraryPath),r.setResponseType("arraybuffer");const i=new Promise(((e,t)=>{r.load("rhino3dm.wasm",e,void 0,t)}));this.libraryPending=Promise.all([t,i]).then((([e,t])=>{this.libraryConfig.wasmBinary=t;const r=a.toString(),n=["/* rhino3dm.js */",e,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([n]))}))}return this.libraryPending}_getWorker(e){return this._initLibrary().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));const t=this.workerPool[this.workerPool.length-1];return t._taskLoad+=e,t}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}dispose(){for(let e=0;e0&&(u.compact(),o=u.toThreejsJSON(),g.delete()),u.delete();break;case r.ObjectType.Extrusion:u=n.getMesh(r.MeshType.Any),u&&(o=u.toThreejsJSON(),u.delete());break;case r.ObjectType.TextDot:case r.ObjectType.Light:o=i(n);break;case r.ObjectType.InstanceReference:o=i(n),o.xform=i(n.xform),o.xform.array=n.xform.toFloatArray(!0);break;case r.ObjectType.SubD:n.subdivide(3),u=r.Mesh.createFromSubDControlNet(n),u&&(o=u.toThreejsJSON(),u.delete());break;default:console.warn(`THREE.3DMLoader: TODO: Implement ${d.constructor.name}`)}if(o)return l=i(a),l.geometry=i(n),a.groupCount>0&&(l.groupIds=a.getGroupList()),a.userStringCount>0&&(l.userStrings=a.getUserStrings()),n.userStringCount>0&&(l.geometry.userStrings=n.getUserStrings()),l.drawColor=a.drawColor(t),d=d.constructor.name,d=d.substring(11,d.length),{geometry:o,attributes:l,objectType:d};console.warn(`THREE.3DMLoader: ${d.constructor.name} has no associated mesh geometry.`)}function i(e){const t={};for(const r in e){const n=e[r];"function"!=typeof n&&("object"==typeof n&&null!==n&&n.hasOwnProperty("constructor")?t[r]={name:n.constructor.name,value:n.value}:t[r]=n)}return t}function s(e,t){let n=t,i=[];const a=[];if(e instanceof r.LineCurve)return[e.pointAtStart,e.pointAtEnd];if(e instanceof r.PolylineCurve){n=e.pointCount;for(let t=0;te.pointAt(t))),i}onmessage=function(s){const a=s.data;switch(a.type){case"init":t=a.libraryConfig;const s=t.wasmBinary;let o;e=new Promise((function(e){o={wasmBinary:s,onRuntimeInitialized:e},rhino3dm(o)})).then((()=>{r=o}));break;case"decode":const l=a.buffer;e.then((()=>{const e=function(e,t){const r=new Uint8Array(t),s=e.File3dm.fromByteArray(r),a=[],o=[],l=[],c=[],h=[],u=[],d=s.objects(),p=d.count;for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(8083);class s extends n.Loader{constructor(e){super(e),this.availableExtensions=[]}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){const t=this,r=new n.TextureLoader(this.manager);function s(e){const t=[],r=(new DOMParser).parseFromString(e,"application/xml").querySelectorAll("Relationship");for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(8083);class s extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){function t(e){let t="AMF Material";const i=e.attributes.id.textContent;let s={r:1,g:1,b:1,a:1},a=null;for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{load(e,t,r,i){var s=this,a=""===s.path?n.LoaderUtils.extractUrlBase(e):s.path,o=new n.FileLoader(s.manager);o.setPath(s.path),o.setResponseType("arraybuffer"),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,(function(r){try{t(s.parse(r,a))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e,t){var r=new n.TextureLoader(this.manager);r.setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin);var i={KeyFrame:class{constructor(e,t){this.time=e,this.matrix=t.clone(),this.position=new n.Vector3,this.quaternion=new n.Quaternion,this.scale=new n.Vector3(1,1,1),this.matrix.decompose(this.position,this.quaternion,this.scale),this.clone=function(){return new i.KeyFrame(this.time,this.matrix)},this.lerp=function(e,t){var r=(t-=this.time)/(e.time-this.time),n=1-r,s=this.position,a=this.quaternion,o=e.position,l=e.quaternion;return i.KeyFrame.tempAniPos.x=s.x*n+o.x*r,i.KeyFrame.tempAniPos.y=s.y*n+o.y*r,i.KeyFrame.tempAniPos.z=s.z*n+o.z*r,i.KeyFrame.tempAniQuat.set(a.x,a.y,a.z,a.w),i.KeyFrame.tempAniQuat.slerp(l,r),i.KeyFrame.tempAniMatrix.compose(i.KeyFrame.tempAniPos,i.KeyFrame.tempAniQuat,i.KeyFrame.tempAniScale)}}}};i.KeyFrame.tempAniPos=new n.Vector3,i.KeyFrame.tempAniQuat=new n.Quaternion,i.KeyFrame.tempAniScale=new n.Vector3(1,1,1),i.KeyFrame.tempAniMatrix=new n.Matrix4,i.KeyFrameTrack=function(){this.keys=[],this.target=null,this.time=0,this.length=0,this._accelTable={},this.fps=20,this.addKey=function(e){this.keys.push(e)},this.init=function(){if(this.sortKeys(),this.keys.length>0?this.length=this.keys[this.keys.length-1].time:this.length=0,this.fps)for(let e=0;e=e/this.fps){this._accelTable[e]=t;break}}},this.parseFromThree=function(e){var t=e.fps;this.target=e.node;var r=e.hierarchy[0].keys;for(let n=0;ne){t=this.keys[n],r=this.keys[n+1];break}if(this.keys[n].time4&&(r.length=4);var n=0;for(let i=0;i<4;i++)n+=r[i].w*r[i].w;n=Math.sqrt(n);for(let i=0;i<4;i++)r[i].w=r[i].w/n,e[i]=r[i].i,t[i]=r[i].w}function c(e,t){if(0==e.name.indexOf("bone_"+t))return e;for(let n in e.children){var r=c(e.children[n],t);if(r)return r}}class h{constructor(){this.mPrimitiveTypes=0,this.mNumVertices=0,this.mNumFaces=0,this.mNumBones=0,this.mMaterialIndex=0,this.mVertices=[],this.mNormals=[],this.mTangents=[],this.mBitangents=[],this.mColors=[[]],this.mTextureCoords=[[]],this.mFaces=[],this.mBones=[],this.hookupSkeletons=function(e){if(0!=this.mBones.length){for(var t=[],r=[],i=e.findNode(this.mBones[0].mName);i.mParent&&i.mParent.isBone;)i=i.mParent;var s=o(i.toTHREE(e),e);this.threeNode.add(s);for(let n=0;n0&&i.setAttribute("normal",new n.BufferAttribute(this.mNormalBuffer,3)),this.mColorBuffer&&this.mColorBuffer.length>0&&i.setAttribute("color",new n.BufferAttribute(this.mColorBuffer,4)),this.mTexCoordsBuffers[0]&&this.mTexCoordsBuffers[0].length>0&&i.setAttribute("uv",new n.BufferAttribute(new Float32Array(this.mTexCoordsBuffers[0]),2)),this.mTexCoordsBuffers[1]&&this.mTexCoordsBuffers[1].length>0&&i.setAttribute("uv1",new n.BufferAttribute(new Float32Array(this.mTexCoordsBuffers[1]),2)),this.mTangentBuffer&&this.mTangentBuffer.length>0&&i.setAttribute("tangents",new n.BufferAttribute(this.mTangentBuffer,3)),this.mBitangentBuffer&&this.mBitangentBuffer.length>0&&i.setAttribute("bitangents",new n.BufferAttribute(this.mBitangentBuffer,3)),this.mBones.length>0){var s=[],a=[];for(let e=0;e0&&(r=new n.SkinnedMesh(i,t)).normalizeSkinWeights(),this.threeNode=r,r}}}class u{constructor(){this.mNumIndices=0,this.mIndices=[]}}class d{constructor(){this.x=0,this.y=0,this.z=0,this.toTHREE=function(){return new n.Vector3(this.x,this.y,this.z)}}}class p{constructor(){this.r=0,this.g=0,this.b=0,this.a=0,this.toTHREE=function(){return new n.Color(this.r,this.g,this.b)}}}class f{constructor(){this.x=0,this.y=0,this.z=0,this.w=0,this.toTHREE=function(){return new n.Quaternion(this.x,this.y,this.z,this.w)}}}class m{constructor(){this.mVertexId=0,this.mWeight=0}}class g{constructor(){this.data=[],this.toString=function(){var e="";return this.data.forEach((function(t){e+=String.fromCharCode(t)})),e.replace(/[^\x20-\x7E]+/g,"")}}}class A{constructor(){this.mTime=0,this.mValue=null}}class v{constructor(){this.mTime=0,this.mValue=null}}class y{constructor(){this.mName="",this.mTransformation=[],this.mNumChildren=0,this.mNumMeshes=0,this.mMeshes=[],this.mChildren=[],this.toTHREE=function(e){if(this.threeNode)return this.threeNode;var t=new n.Object3D;t.name=this.mName,t.matrix=this.mTransformation.toTHREE();for(let r=0;r0)var t=this.mAnimations[0].toTHREE(this);return{object:e,animation:t}}}}class L{constructor(){this.elements=[[],[],[],[]],this.toTHREE=function(){var e=new n.Matrix4;for(let t=0;t<4;++t)for(let r=0;r<4;++r)e.elements[4*t+r]=this.elements[r][t];return e}}}var F=!0;function U(e){var t=e.getFloat32(e.readOffset,F);return e.readOffset+=4,t}function O(e){var t=e.getFloat64(e.readOffset,F);return e.readOffset+=8,t}function N(e){var t=e.getUint16(e.readOffset,F);return e.readOffset+=2,t}function k(e){var t=e.getUint32(e.readOffset,F);return e.readOffset+=4,t}function G(e){var t=e.getUint32(e.readOffset,F);return e.readOffset+=4,t}function z(e){var t=new d;return t.x=U(e),t.y=U(e),t.z=U(e),t}function Q(e){var t=new p;return t.r=U(e),t.g=U(e),t.b=U(e),t}function V(e){var t=new g,r=k(e);return e.ReadBytes(t.data,1,r),t.toString()}function H(e){var t=new m;return t.mVertexId=k(e),t.mWeight=U(e),t}function j(e){var t=new L;for(let r=0;r<4;++r)for(let n=0;n<4;++n)t.elements[r][n]=U(e);return t}function W(e){var t=new A;return t.mTime=O(e),t.mValue=z(e),t}function X(e){var t=new v;return t.mTime=O(e),t.mValue=function(e){var t=new f;return t.w=U(e),t.x=U(e),t.y=U(e),t.z=U(e),t}(e),t}function Y(e,t,r){for(let n=0;n0,ce=N(r)>0,le)throw"Shortened binaries are not supported!";if(r.Seek(256,he),r.Seek(128,he),r.Seek(64,he),ce){var n=G(r),i=r.FileSize()-r.Tell(),s=[];r.Read(s,1,i);var a=[];uncompress(a,n,s,i),oe(new ArrayBuffer(a),t)}else oe(r,t);return t.toTHREE()}(e)}}t.AssimpLoader=i},4951:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e),this.animateBonePositions=!0,this.animateBoneRotations=!0}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){function t(e,r,i){if("ENDSITE"===i.type)return;const s={time:r,position:new n.Vector3,rotation:new n.Quaternion};i.frames.push(s);const a=new n.Quaternion,o=new n.Vector3(1,0,0),l=new n.Vector3(0,1,0),c=new n.Vector3(0,0,1);for(let t=0;t{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=new WeakMap,o=class extends s.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.workerConfig=null}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerLimit=e,this}detectSupport(e){return this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},this}load(e,t,r,n){const i=new s.FileLoader(this.manager);i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials);const o=new s.CompressedTexture;return i.load(e,(e=>{if(a.has(e)){return a.get(e).promise.then(t).catch(n)}this._createTexture([e]).then((function(e){o.copy(e),o.needsUpdate=!0,t&&t(o)})).catch(n)}),r,n),o}parseInternalAsync(e){const{levels:t}=e,r=new Set;for(let n=0;n(r=t,n=this.workerNextTaskID++,new Promise(((t,s)=>{r._callbacks[n]={resolve:t,reject:s},r.postMessage({type:"transcode",id:n,buffers:e,taskConfig:i},e)}))))).then((e=>{const{mipmaps:t,width:r,height:n,format:i}=e,a=new s.CompressedTexture(t,r,n,i,s.UnsignedByteType);return a.minFilter=1===t.length?s.LinearFilter:s.LinearMipmapLinearFilter,a.magFilter=s.LinearFilter,a.generateMipmaps=!1,a.needsUpdate=!0,a}));return l.catch((()=>!0)).then((()=>{r&&n&&(r._taskLoad-=o,delete r._callbacks[n])})),a.set(e[0],{promise:l}),l}_initTranscoder(){if(!this.transcoderPending){const e=new s.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=new Promise(((t,r)=>{e.load("basis_transcoder.js",t,void 0,r)})),r=new s.FileLoader(this.manager);r.setPath(this.transcoderPath),r.setResponseType("arraybuffer"),r.setWithCredentials(this.withCredentials);const n=new Promise(((e,t)=>{r.load("basis_transcoder.wasm",e,void 0,t)}));this.transcoderPending=Promise.all([t,n]).then((([e,t])=>{const r=o.BasisWorker.toString(),n=["/* constants */","let _EngineFormat = "+JSON.stringify(o.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(o.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(o.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([n])),this.transcoderBinary=t}))}return this.transcoderPending}_allocateWorker(e){return this._initTranscoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));const t=this.workerPool[this.workerPool.length-1];return t._taskLoad+=e,t}))}dispose(){for(let e=0;e{r={wasmBinary:a,onRuntimeInitialized:e},BASIS(r)})).then((()=>{r.initializeBasis()}));break;case"transcode":t.then((()=>{try{const{width:e,height:t,hasAlpha:n,mipmaps:a,format:o}=i.taskConfig.lowLevel?function(e){const{basisFormat:t,width:n,height:i,hasAlpha:a}=e,{transcoderFormat:o,engineFormat:l}=c(t,n,i,a),f=r.getBytesPerBlockOrPixel(o);h(r.isFormatSupported(o),"THREE.BasisTextureLoader: Unsupported format.");const m=[];if(t===s.ETC1S){const t=new r.LowLevelETC1SImageTranscoder,{endpointCount:n,endpointsData:i,selectorCount:s,selectorsData:l,tablesData:c}=e.globalData;try{let r;r=t.decodePalettes(n,i,s,l),h(r,"THREE.BasisTextureLoader: decodePalettes() failed."),r=t.decodeTables(c),h(r,"THREE.BasisTextureLoader: decodeTables() failed.");for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(2545);class s extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=""===s.path?n.LoaderUtils.extractUrlBase(e):s.path,o=new n.FileLoader(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,(function(r){try{t(s.parse(r,a))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e,t){function r(e,t){const r=[],n=e.childNodes;for(let i=0,s=n.length;i0&&t.push(new n.VectorKeyframeTrack(i+".position",s,a)),o.length>0&&t.push(new n.QuaternionKeyframeTrack(i+".quaternion",s,o)),l.length>0&&t.push(new n.VectorKeyframeTrack(i+".scale",s,l)),t}function S(e,t,r){let n,i,s,a=!0;for(i=0,s=e.length;i=0;){const n=e[t];if(null!==n.value[r])return n;t--}return null}function w(e,t,r){for(;t>>0));r=r.toLowerCase(),t="tga"===r?Ye:Xe;return t}(i);if(void 0!==t){const r=t.load(i),s=e.extra;if(void 0!==s&&void 0!==s.technique&&!1===c(s.technique)){const e=s.technique;r.wrapS=e.wrapU?n.RepeatWrapping:n.ClampToEdgeWrapping,r.wrapT=e.wrapV?n.RepeatWrapping:n.ClampToEdgeWrapping,r.offset.set(e.offsetU||0,e.offsetV||0),r.repeat.set(e.repeatU||1,e.repeatV||1)}else r.wrapS=n.RepeatWrapping,r.wrapT=n.RepeatWrapping;return r}return console.warn("THREE.ColladaLoader: Loader for texture %s not found.",i),null}return console.warn("THREE.ColladaLoader: Couldn't create texture with ID:",e.id),null}s.name=e.name||"";const o=i.parameters;for(const n in o){const e=o[n];switch(n){case"diffuse":e.color&&s.color.fromArray(e.color),e.texture&&(s.map=a(e.texture));break;case"specular":e.color&&s.specular&&s.specular.fromArray(e.color),e.texture&&(s.specularMap=a(e.texture));break;case"bump":e.texture&&(s.normalMap=a(e.texture));break;case"ambient":e.texture&&(s.lightMap=a(e.texture));break;case"shininess":e.float&&s.shininess&&(s.shininess=e.float);break;case"emission":e.color&&s.emissive&&s.emissive.fromArray(e.color),e.texture&&(s.emissiveMap=a(e.texture))}}let l=o.transparent,h=o.transparency;if(void 0===h&&l&&(h={float:1}),void 0===l&&h&&(l={opaque:"A_ONE",data:{color:[1,1,1,1]}}),l&&h)if(l.data.texture)s.transparent=!0;else{const e=l.data.color;switch(l.opaque){case"A_ONE":s.opacity=e[3]*h.float;break;case"RGB_ZERO":s.opacity=1-e[0]*h.float;break;case"A_ZERO":s.opacity=1-e[3]*h.float;break;case"RGB_ONE":s.opacity=e[0]*h.float;break;default:console.warn('THREE.ColladaLoader: Invalid opaque type "%s" of transparent tag.',l.opaque)}s.opacity<1&&(s.transparent=!0)}if(void 0!==i.extra&&void 0!==i.extra.technique){const e=i.extra.technique;for(const t in e){const r=e[t];switch(t){case"double_sided":s.side=1===r?n.DoubleSide:n.FrontSide;break;case"bump":s.normalMap=a(r.texture),s.normalScale=new n.Vector2(1,1)}}}return s}function J(e){return f(Ze.materials[e],K)}function Z(e){for(let t=0;t0?r+s:r;t.inputs[a]={id:e,offset:i},t.stride=Math.max(t.stride,i+1),"TEXCOORD"===r&&(t.hasUV=!0);break;case"vcount":t.vcount=o(n.textContent);break;case"p":t.p=o(n.textContent)}}return t}function he(e){let t=0;for(let r=0,n=e.length;r0&&t0&&f.setAttribute("position",new n.Float32BufferAttribute(s.array,s.stride)),a.array.length>0&&f.setAttribute("normal",new n.Float32BufferAttribute(a.array,a.stride)),c.array.length>0&&f.setAttribute("color",new n.Float32BufferAttribute(c.array,c.stride)),o.array.length>0&&f.setAttribute("uv",new n.Float32BufferAttribute(o.array,o.stride)),l.array.length>0&&f.setAttribute("uv2",new n.Float32BufferAttribute(l.array,l.stride)),h.length>0&&f.setAttribute("skinIndex",new n.Float32BufferAttribute(h,u)),d.length>0&&f.setAttribute("skinWeight",new n.Float32BufferAttribute(d,p)),i.data=f,i.type=e[0].type,i.materialKeys=m,i}function pe(e,t,r,n){const i=e.p,s=e.stride,a=e.vcount;function o(e){let t=i[e+r]*c;const s=t+c;for(;t4)for(let t=1,n=r-2;t<=n;t++){const r=e+s*t,n=e+s*(t+1);o(e+0*s),o(r),o(n)}e+=s*r}}else for(let h=0,u=i.length;h=t.limits.max&&(t.static=!0),t.middlePosition=(t.limits.min+t.limits.max)/2,t}function ye(e){const t={sid:e.getAttribute("sid"),name:e.getAttribute("name")||"",attachments:[],transforms:[]};for(let r=0;ri.limits.max||t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.CompressedTextureLoader{constructor(e){super(e)}parse(e,t){const r={mipmaps:[],width:0,height:0,format:null,mipmapCount:1};function i(e){return e.charCodeAt(0)+(e.charCodeAt(1)<<8)+(e.charCodeAt(2)<<16)+(e.charCodeAt(3)<<24)}function s(e,t,r,n){const i=r*n*4,s=new Uint8Array(e,t,i),a=new Uint8Array(i);let o=0,l=0;for(let c=0;c>8&255,f>>16&255,f>>24&255))),r;p=!0,u=64,r.format=n.RGBAFormat}var f;r.mipmapCount=1,131072&h[2]&&!1!==t&&(r.mipmapCount=Math.max(1,h[7]));const m=h[28];if(r.isCubemap=!!(512&m),r.isCubemap&&(!(1024&m)||!(2048&m)||!(4096&m)||!(8192&m)||!(16384&m)||!(32768&m)))return console.error("THREE.DDSLoader.parse: Incomplete cubemap faces"),r;r.width=h[4],r.height=h[3];let g=h[1]+4;const A=r.isCubemap?6:1;for(let n=0;n>1,1),n=Math.max(n>>1,1)}}return r}}t.DDSLoader=i},88909:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new WeakMap;class s extends n.Loader{constructor(e){super(e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}}setDecoderPath(e){return this.decoderPath=e,this}setDecoderConfig(e){return this.decoderConfig=e,this}setWorkerLimit(e){return this.workerLimit=e,this}load(e,t,r,i){const s=new n.FileLoader(this.manager);s.setPath(this.path),s.setResponseType("arraybuffer"),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,(e=>{const r={attributeIDs:this.defaultAttributeIDs,attributeTypes:this.defaultAttributeTypes,useUniqueIDs:!1};this.decodeGeometry(e,r).then(t).catch(i)}),r,i)}decodeDracoFile(e,t,r,n){const i={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,i).then(t)}decodeGeometry(e,t){for(const i in t.attributeTypes){const e=t.attributeTypes[i];void 0!==e.BYTES_PER_ELEMENT&&(t.attributeTypes[i]=e.name)}const r=JSON.stringify(t);if(i.has(e)){const t=i.get(e);if(t.key===r)return t.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let n;const s=this.workerNextTaskID++,a=e.byteLength,o=this._getWorker(s,a).then((r=>(n=r,new Promise(((r,i)=>{n._callbacks[s]={resolve:r,reject:i},n.postMessage({type:"decode",id:s,taskConfig:t,buffer:e},[e])}))))).then((e=>this._createGeometry(e.geometry)));return o.catch((()=>!0)).then((()=>{n&&s&&this._releaseTask(n,s)})),i.set(e,{key:r,promise:o}),o}_createGeometry(e){const t=new n.BufferGeometry;e.index&&t.setIndex(new n.BufferAttribute(e.index.array,1));for(let r=0;r{r.load(e,t,void 0,n)}))}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const e="object"!=typeof WebAssembly||"js"===this.decoderConfig.type,t=[];return e?t.push(this._loadLibrary("draco_decoder.js","text")):(t.push(this._loadLibrary("draco_wasm_wrapper.js","text")),t.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(t).then((t=>{const r=t[0];e||(this.decoderConfig.wasmBinary=t[1]);const n=a.toString(),i=["/* draco decoder */",r,"","/* worker */",n.substring(n.indexOf("{")+1,n.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([i]))})),this.decoderPending}_getWorker(e,t){return this._initDecoder().then((()=>{if(this.workerPool.lengtht._taskLoad?-1:1}));const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[e]=t,r._taskLoad+=t,r}))}_releaseTask(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]}debug(){console.log("Task load: ",this.workerPool.map((e=>e._taskLoad)))}dispose(){for(let e=0;e{const t=e.draco,a=new t.Decoder,o=new t.DecoderBuffer;o.Init(new Int8Array(n),n.byteLength);try{const e=function(e,t,n,i){const s=i.attributeIDs,a=i.attributeTypes;let o,l;const c=t.GetEncodedGeometryType(n);if(c===e.TRIANGULAR_MESH)o=new e.Mesh,l=t.DecodeBufferToMesh(n,o);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");o=new e.PointCloud,l=t.DecodeBufferToPointCloud(n,o)}if(!l.ok()||0===o.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+l.error_msg());const h={index:null,attributes:[]};for(const u in s){const n=self[a[u]];let l,c;if(i.useUniqueIDs)c=s[u],l=t.GetAttributeByUniqueId(o,c);else{if(c=t.GetAttributeId(o,e[s[u]]),-1===c)continue;l=t.GetAttribute(o,c)}h.attributes.push(r(e,t,o,u,n,l))}c===e.TRIANGULAR_MESH&&(h.index=function(e,t,r){const n=r.num_faces(),i=3*n,s=4*i,a=e._malloc(s);t.GetTrianglesUInt32Array(r,s,a);const o=new Uint32Array(e.HEAPF32.buffer,a,i).slice();return e._free(a),{array:o,itemSize:1}}(e,t,o));return e.destroy(o),h}(t,a,o,s),n=e.attributes.map((e=>e.array.buffer));e.index&&n.push(e.index.array.buffer),self.postMessage({type:"decode",id:i.id,geometry:e},n)}catch(l){console.error(l),self.postMessage({type:"error",id:i.id,error:l.message})}finally{t.destroy(o),t.destroy(a)}}))}}}t.DRACOLoader=s},13785:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(8083),s="colorSpace"in new n.Texture;class a extends n.DataTextureLoader{constructor(e){super(e),this.type=n.HalfFloatType}parse(e){const t=65536,r=14,a=65537,o=16384,l=Math.pow(2.7182818,2.2);const c={l:0,c:0,lc:0};function h(e,t,r,n,i){for(;r>r&(1<n)return!1;h(6,d,p,e,l);var f=c.l;if(d=c.c,p=c.lc,o[i]=f,63==f){if(l.value-r.value>n)throw"Something wrong with hufUnpackEncTable";h(8,d,p,e,l);var m=c.l+6;if(d=c.c,p=c.lc,i+m>s+1)throw"Something wrong with hufUnpackEncTable";for(;m--;)o[i++]=0;i--}else if(f>=59){if(i+(m=f-59+2)>s+1)throw"Something wrong with hufUnpackEncTable";for(;m--;)o[i++]=0;i--}}!function(e){for(var t=0;t<=58;++t)u[t]=0;for(t=0;t0;--t){var n=r+u[t]>>1;u[t]=r,r=n}for(t=0;t0&&(e[t]=i|u[i]++<<6)}}(o)}function p(e){return 63&e}function f(e){return e>>6}const m={c:0,lc:0};function g(e,t,r,n){e=e<<8|H(r,n),t+=8,m.c=e,m.lc=t}const A={c:0,lc:0};function v(e,t,r,n,i,s,a,o,l,c){if(e==t){n<8&&(g(r,n,i,a),r=m.c,n=m.lc);var h=r>>(n-=8);h=new Uint8Array([h])[0];if(l.value+h>c)return!1;for(var u=o[l.value-1];h-- >0;)o[l.value++]=u}else{if(!(l.value32767?t-65536:t}const b={a:0,b:0};function E(e,t){var r=x(e),n=x(t),i=r+(1&n)+(n>>1),s=i,a=i-n;b.a=s,b.b=a}function _(e,t){var r=y(e),n=y(t),i=r-(n>>1)&65535,s=n+i-32768&65535;b.a=s,b.b=i}function S(e,t,r,n,i,s,a){for(var o,l=a<16384,c=r>i?i:r,h=1;h<=c;)h<<=1;for(o=h>>=1,h>>=1;h>=1;){for(var u,d,p,f,m=0,g=m+s*(i-o),A=s*h,v=s*o,y=n*h,x=n*o;m<=g;m+=v){for(var S=m,M=m+n*(r-o);S<=M;S+=x){var w=S+y,C=(T=S+A)+y;l?(E(e[S+t],e[T+t]),u=b.a,p=b.b,E(e[w+t],e[C+t]),d=b.a,f=b.b,E(u,d),e[S+t]=b.a,e[w+t]=b.b,E(p,f),e[T+t]=b.a,e[C+t]=b.b):(_(e[S+t],e[T+t]),u=b.a,p=b.b,_(e[w+t],e[C+t]),d=b.a,f=b.b,_(u,d),e[S+t]=b.a,e[w+t]=b.b,_(p,f),e[T+t]=b.a,e[C+t]=b.b)}if(r&h){var T=S+A;l?E(e[S+t],e[T+t]):_(e[S+t],e[T+t]),u=b.a,e[T+t]=b.b,e[S+t]=u}}if(i&h)for(S=m,M=m+n*(r-o);S<=M;S+=x){w=S+y;l?E(e[S+t],e[w+t]):_(e[S+t],e[w+t]),u=b.a,e[w+t]=b.b,e[S+t]=u}o=h,h>>=1}return m}function M(e,t,n,i,s,l){var c=n.value,h=V(t,n),u=V(t,n);n.value+=4;var y=V(t,n);if(n.value+=4,h<0||h>=a||u<0||u>=a)throw"Something wrong with HUF_ENCSIZE";var x=new Array(a),b=new Array(o);if(function(e){for(var t=0;t8*(i-(n.value-c)))throw"Something wrong with hufUncompress";!function(e,t,n,i){for(;t<=n;t++){var s=f(e[t]),a=p(e[t]);if(s>>a)throw"Invalid table entry";if(a>r){if((h=i[s>>a-r]).len)throw"Invalid table entry";if(h.lit++,h.p){var o=h.p;h.p=new Array(h.lit);for(var l=0;l0;l--){var h;if((h=i[(s<=r;)if((S=t[u>>d-r&16383]).len)d-=S.len,v(S.lit,o,u,d,n,0,s,c,h,y),u=A.c,d=A.lc;else{if(!S.p)throw"hufDecode issues";var b;for(b=0;b=E&&f(e[S.p[b]])==(u>>d-E&(1<>=_,d-=_;d>0;){var S;if(!(S=t[u<s||(t[i++]=e[r++],i>s));)t[i++]=e[n++]}function T(e){for(var t=e.byteLength,r=new Array,n=0,i=new DataView(e);t>0;){var s=i.getInt8(n++);if(s<0){t-=(o=-s)+1;for(var a=0;a>8==255?i+=255&n:(r[i]=n,i++),e.value++}function B(e,t){t[0]=q(e[0]),t[1]=q(e[1]),t[2]=q(e[5]),t[3]=q(e[6]),t[4]=q(e[14]),t[5]=q(e[15]),t[6]=q(e[27]),t[7]=q(e[28]),t[8]=q(e[2]),t[9]=q(e[4]),t[10]=q(e[7]),t[11]=q(e[13]),t[12]=q(e[16]),t[13]=q(e[26]),t[14]=q(e[29]),t[15]=q(e[42]),t[16]=q(e[3]),t[17]=q(e[8]),t[18]=q(e[12]),t[19]=q(e[17]),t[20]=q(e[25]),t[21]=q(e[30]),t[22]=q(e[41]),t[23]=q(e[43]),t[24]=q(e[9]),t[25]=q(e[11]),t[26]=q(e[18]),t[27]=q(e[24]),t[28]=q(e[31]),t[29]=q(e[40]),t[30]=q(e[44]),t[31]=q(e[53]),t[32]=q(e[10]),t[33]=q(e[19]),t[34]=q(e[23]),t[35]=q(e[32]),t[36]=q(e[39]),t[37]=q(e[45]),t[38]=q(e[52]),t[39]=q(e[54]),t[40]=q(e[20]),t[41]=q(e[22]),t[42]=q(e[33]),t[43]=q(e[38]),t[44]=q(e[46]),t[45]=q(e[51]),t[46]=q(e[55]),t[47]=q(e[60]),t[48]=q(e[21]),t[49]=q(e[34]),t[50]=q(e[37]),t[51]=q(e[47]),t[52]=q(e[50]),t[53]=q(e[56]),t[54]=q(e[59]),t[55]=q(e[61]),t[56]=q(e[35]),t[57]=q(e[36]),t[58]=q(e[48]),t[59]=q(e[49]),t[60]=q(e[57]),t[61]=q(e[58]),t[62]=q(e[62]),t[63]=q(e[63])}function R(e){const t=.5*Math.cos(.7853975),r=.5*Math.cos(3.14159/16),n=.5*Math.cos(3.14159/8),i=.5*Math.cos(3*3.14159/16),s=.5*Math.cos(.981746875),a=.5*Math.cos(3*3.14159/8),o=.5*Math.cos(1.374445625);for(var l=new Array(4),c=new Array(4),h=new Array(4),u=new Array(4),d=0;d<8;++d){var p=8*d;l[0]=n*e[p+2],l[1]=a*e[p+2],l[2]=n*e[p+6],l[3]=a*e[p+6],c[0]=r*e[p+1]+i*e[p+3]+s*e[p+5]+o*e[p+7],c[1]=i*e[p+1]-o*e[p+3]-r*e[p+5]-s*e[p+7],c[2]=s*e[p+1]-r*e[p+3]+o*e[p+5]+i*e[p+7],c[3]=o*e[p+1]-s*e[p+3]+i*e[p+5]-r*e[p+7],h[0]=t*(e[p+0]+e[p+4]),h[3]=t*(e[p+0]-e[p+4]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],u[0]=h[0]+h[1],u[1]=h[3]+h[2],u[2]=h[3]-h[2],u[3]=h[0]-h[1],e[p+0]=u[0]+c[0],e[p+1]=u[1]+c[1],e[p+2]=u[2]+c[2],e[p+3]=u[3]+c[3],e[p+4]=u[3]-c[3],e[p+5]=u[2]-c[2],e[p+6]=u[1]-c[1],e[p+7]=u[0]-c[0]}for(var f=0;f<8;++f)l[0]=n*e[16+f],l[1]=a*e[16+f],l[2]=n*e[48+f],l[3]=a*e[48+f],c[0]=r*e[8+f]+i*e[24+f]+s*e[40+f]+o*e[56+f],c[1]=i*e[8+f]-o*e[24+f]-r*e[40+f]-s*e[56+f],c[2]=s*e[8+f]-r*e[24+f]+o*e[40+f]+i*e[56+f],c[3]=o*e[8+f]-s*e[24+f]+i*e[40+f]-r*e[56+f],h[0]=t*(e[f]+e[32+f]),h[3]=t*(e[f]-e[32+f]),h[1]=l[0]+l[3],h[2]=l[1]-l[2],u[0]=h[0]+h[1],u[1]=h[3]+h[2],u[2]=h[3]-h[2],u[3]=h[0]-h[1],e[0+f]=u[0]+c[0],e[8+f]=u[1]+c[1],e[16+f]=u[2]+c[2],e[24+f]=u[3]+c[3],e[32+f]=u[3]-c[3],e[40+f]=u[2]-c[2],e[48+f]=u[1]-c[1],e[56+f]=u[0]-c[0]}function P(e){for(var t=0;t<64;++t){var r=e[0][t],n=e[1][t],i=e[2][t];e[0][t]=r+1.5747*i,e[1][t]=r-.1873*n-.4682*i,e[2][t]=r+1.8556*n}}function D(e,t,r){for(var i=0;i<64;++i)t[r+i]=n.DataUtils.toHalfFloat(L(e[i]))}function L(e){return e<=1?Math.sign(e)*Math.pow(Math.abs(e),2.2):Math.sign(e)*Math.pow(l,Math.abs(e)-1)}function F(e){return new DataView(e.array.buffer,e.offset.value,e.size)}function U(e){var t=e.viewer.buffer.slice(e.offset.value,e.offset.value+e.size),r=new Uint8Array(T(t)),n=new Uint8Array(r.length);return w(r),C(r,n),new DataView(n.buffer)}function O(e){var t=e.array.slice(e.offset.value,e.offset.value+e.size),r=i.unzlibSync(t),n=new Uint8Array(r.length);return w(r),C(r,n),new DataView(n.buffer)}function N(e){for(var r=e.viewer,n={value:e.offset.value},i=new Uint16Array(e.width*e.scanlineBlockSize*(e.channels*e.type)),s=new Uint8Array(8192),a=0,o=new Array(e.channels),l=0;l=8192)throw"Something is wrong with PIZ_COMPRESSION BITMAP_SIZE";if(c<=h)for(l=0;l>3]&1<<(7&i))&&(r[n++]=i);for(var s=n-1;n0;){var l=z(t.buffer,r),c=j(t,r),h=c>>2&3,u=new Int8Array([(c>>4)-1])[0],d=j(t,r);a.push({name:l,index:u,type:d,compression:h}),o-=l.length+3}for(var p=re.channels,f=new Array(e.channels),m=0;m=0&&(v.idx[x.index]=y),g.offset=y)}if(s.acCompressedSize>0)switch(s.acCompression){case 0:var b=new Uint16Array(s.totalAcUncompressedCount);M(e.array,t,r,s.acCompressedSize,b,s.totalAcUncompressedCount);break;case 1:var E=e.array.slice(r.value,r.value+s.totalAcUncompressedCount),_=i.unzlibSync(E);b=new Uint16Array(_.buffer);r.value+=s.totalAcUncompressedCount}if(s.dcCompressedSize>0){var S={array:e.array,offset:r,size:s.dcCompressedSize},w=new Uint16Array(O(S).buffer);r.value+=s.dcCompressedSize}if(s.rleRawSize>0){E=e.array.slice(r.value,r.value+s.rleCompressedSize);var C=T((_=i.unzlibSync(E)).buffer);r.value+=s.rleCompressedSize}var L=0,F=new Array(f.length);for(m=0;m>10,r=1023&e;return(e>>15?-1:1)*(t?31===t?r?NaN:1/0:Math.pow(2,t-15)*(1+r/1024):r/1024*6103515625e-14)}function K(e,t){var r=e.getUint16(t.value,!0);return t.value+=2,r}function J(e,t){return q(K(e,t))}function Z(e,t,r,n,i){return"string"===n||"stringvector"===n||"iccProfile"===n?function(e,t,r){var n=(new TextDecoder).decode(new Uint8Array(e).slice(t.value,t.value+r));return t.value=t.value+r,n}(t,r,i):"chlist"===n?function(e,t,r,n){for(var i=r.value,s=[];r.valuene.height?ne.height-e:ne.scanlineBlockSize;const t=ne.size=ne.height)break;for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(8083),s=r(98001);let a,o,l;class c extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=""===s.path?n.LoaderUtils.extractUrlBase(e):s.path,o=new n.FileLoader(this.manager);o.setPath(s.path),o.setResponseType("arraybuffer"),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,(function(r){try{t(s.parse(r,a))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e,t){if(function(e){const t="Kaydara FBX Binary \0";return e.byteLength>=t.length&&t===w(e,0,t.length)}(e))a=(new f).parse(e);else{const t=w(e);if(!function(e){const t=["K","a","y","d","a","r","a","\\","F","B","X","\\","B","i","n","a","r","y","\\","\\"];let r=0;function n(t){const n=e[t-1];return e=e.slice(r+t),r++,n}for(let i=0;i0,s="string"==typeof i.Content&&""!==i.Content;if(e||s){const e=this.parseImage(r[n]);t[i.RelativeFilename||i.Filename]=e}}}}for(const r in e){const n=e[r];void 0!==t[n]?e[r]=t[n]:e[r]=e[r].split("\\").pop()}return e}parseImage(e){const t=e.Content,r=e.RelativeFilename||e.Filename,n=r.slice(r.lastIndexOf(".")+1).toLowerCase();let i;switch(n){case"bmp":i="image/bmp";break;case"jpg":case"jpeg":i="image/jpeg";break;case"png":i="image/png";break;case"tif":i="image/tiff";break;case"tga":null===this.manager.getHandler(".tga")&&console.warn("FBXLoader: TGA loader not found, skipping ",r),i="image/tga";break;default:return void console.warn('FBXLoader: Image type "'+n+'" is not supported.')}if("string"==typeof t)return"data:"+i+";base64,"+t;{const e=new Uint8Array(t);return window.URL.createObjectURL(new Blob([e],{type:i}))}}parseTextures(e){const t=new Map;if("Texture"in a.Objects){const r=a.Objects.Texture;for(const n in r){const i=this.parseTexture(r[n],e);t.set(parseInt(n),i)}}return t}parseTexture(e,t){const r=this.loadTexture(e,t);r.ID=e.id,r.name=e.attrName;const i=e.WrapModeU,s=e.WrapModeV,a=void 0!==i?i.value:0,o=void 0!==s?s.value:0;if(r.wrapS=0===a?n.RepeatWrapping:n.ClampToEdgeWrapping,r.wrapT=0===o?n.RepeatWrapping:n.ClampToEdgeWrapping,"Scaling"in e){const t=e.Scaling.value;r.repeat.x=t[0],r.repeat.y=t[1]}return r}loadTexture(e,t){let r;const i=this.textureLoader.path,s=o.get(e.id).children;let a;void 0!==s&&s.length>0&&void 0!==t[s[0].ID]&&(r=t[s[0].ID],0!==r.indexOf("blob:")&&0!==r.indexOf("data:")||this.textureLoader.setPath(void 0));const l=e.FileName.slice(-3).toLowerCase();if("tga"===l){const t=this.manager.getHandler(".tga");null===t?(console.warn("FBXLoader: TGA loader not found, creating placeholder texture for",e.RelativeFilename),a=new n.Texture):(t.setPath(this.textureLoader.path),a=t.load(r))}else"psd"===l?(console.warn("FBXLoader: PSD textures are not supported, creating placeholder texture for",e.RelativeFilename),a=new n.Texture):a=this.textureLoader.load(r);return this.textureLoader.setPath(i),a}parseMaterials(e){const t=new Map;if("Material"in a.Objects){const r=a.Objects.Material;for(const n in r){const i=this.parseMaterial(r[n],e);null!==i&&t.set(parseInt(n),i)}}return t}parseMaterial(e,t){const r=e.id,i=e.attrName;let s=e.ShadingModel;if("object"==typeof s&&(s=s.value),!o.has(r))return null;const a=this.parseParameters(e,t,r);let l;switch(s.toLowerCase()){case"phong":l=new n.MeshPhongMaterial;break;case"lambert":l=new n.MeshLambertMaterial;break;default:console.warn('THREE.FBXLoader: unknown material type "%s". Defaulting to MeshPhongMaterial.',s),l=new n.MeshPhongMaterial}return l.setValues(a),l.name=i,l}parseParameters(e,t,r){const i={};e.BumpFactor&&(i.bumpScale=e.BumpFactor.value),e.Diffuse?i.color=(new n.Color).fromArray(e.Diffuse.value):!e.DiffuseColor||"Color"!==e.DiffuseColor.type&&"ColorRGB"!==e.DiffuseColor.type||(i.color=(new n.Color).fromArray(e.DiffuseColor.value)),e.DisplacementFactor&&(i.displacementScale=e.DisplacementFactor.value),e.Emissive?i.emissive=(new n.Color).fromArray(e.Emissive.value):!e.EmissiveColor||"Color"!==e.EmissiveColor.type&&"ColorRGB"!==e.EmissiveColor.type||(i.emissive=(new n.Color).fromArray(e.EmissiveColor.value)),e.EmissiveFactor&&(i.emissiveIntensity=parseFloat(e.EmissiveFactor.value)),e.Opacity&&(i.opacity=parseFloat(e.Opacity.value)),i.opacity<1&&(i.transparent=!0),e.ReflectionFactor&&(i.reflectivity=e.ReflectionFactor.value),e.Shininess&&(i.shininess=e.Shininess.value),e.Specular?i.specular=(new n.Color).fromArray(e.Specular.value):e.SpecularColor&&"Color"===e.SpecularColor.type&&(i.specular=(new n.Color).fromArray(e.SpecularColor.value));const s=this;return o.get(r).children.forEach((function(e){const r=e.relationship;switch(r){case"Bump":i.bumpMap=s.getTexture(t,e.ID);break;case"Maya|TEX_ao_map":i.aoMap=s.getTexture(t,e.ID);break;case"DiffuseColor":case"Maya|TEX_color_map":i.map=s.getTexture(t,e.ID),void 0!==i.map&&("colorSpace"in i.map?i.map.colorSpace="srgb":i.map.encoding=3001);break;case"DisplacementColor":i.displacementMap=s.getTexture(t,e.ID);break;case"EmissiveColor":i.emissiveMap=s.getTexture(t,e.ID),void 0!==i.emissiveMap&&("colorSpace"in i.emissiveMap?i.emissiveMap.colorSpace="srgb":i.emissiveMap.encoding=3001);break;case"NormalMap":case"Maya|TEX_normal_map":i.normalMap=s.getTexture(t,e.ID);break;case"ReflectionColor":i.envMap=s.getTexture(t,e.ID),void 0!==i.envMap&&(i.envMap.mapping=n.EquirectangularReflectionMapping,"colorSpace"in i.envMap?i.envMap.colorSpace="srgb":i.envMap.encoding=3001);break;case"SpecularColor":i.specularMap=s.getTexture(t,e.ID),void 0!==i.specularMap&&("colorSpace"in i.specularMap?i.specularMap.colorSpace="srgb":i.specularMap.encoding=3001);break;case"TransparentColor":case"TransparencyFactor":i.alphaMap=s.getTexture(t,e.ID),i.transparent=!0;break;default:console.warn("THREE.FBXLoader: %s map is not supported in three.js, skipping texture.",r)}})),i}getTexture(e,t){return"LayeredTexture"in a.Objects&&t in a.Objects.LayeredTexture&&(console.warn("THREE.FBXLoader: layered textures are not supported in three.js. Discarding all but first layer."),t=o.get(t).children[0].ID),e.get(t)}parseDeformers(){const e={},t={};if("Deformer"in a.Objects){const r=a.Objects.Deformer;for(const n in r){const i=r[n],s=o.get(parseInt(n));if("Skin"===i.attrType){const t=this.parseSkeleton(s,r);t.ID=n,s.parents.length>1&&console.warn("THREE.FBXLoader: skeleton attached to more than one geometry is not supported."),t.geometryID=s.parents[0].ID,e[n]=t}else if("BlendShape"===i.attrType){const e={id:n};e.rawTargets=this.parseMorphTargets(s,r),e.id=n,s.parents.length>1&&console.warn("THREE.FBXLoader: morph target attached to more than one geometry is not supported."),t[n]=e}}}return{skeletons:e,morphTargets:t}}parseSkeleton(e,t){const r=[];return e.children.forEach((function(e){const i=t[e.ID];if("Cluster"!==i.attrType)return;const s={ID:e.ID,indices:[],weights:[],transformLink:(new n.Matrix4).fromArray(i.TransformLink.a)};"Indexes"in i&&(s.indices=i.Indexes.a,s.weights=i.Weights.a),r.push(s)})),{rawBones:r,bones:[]}}parseMorphTargets(e,t){const r=[];for(let n=0;n1?a=o:o.length>0?a=o[0]:(a=new n.MeshPhongMaterial({color:13421772}),o.push(a)),"color"in s.attributes&&o.forEach((function(e){e.vertexColors=!0})),s.FBX_Deformer?(i=new n.SkinnedMesh(s,a),i.normalizeSkinWeights()):i=new n.Mesh(s,a),i}createCurve(e,t){const r=e.children.reduce((function(e,r){return t.has(r.ID)&&(e=t.get(r.ID)),e}),null),i=new n.LineBasicMaterial({color:3342591,linewidth:1});return new n.Line(r,i)}getTransformData(e,t){const r={};"InheritType"in t&&(r.inheritType=parseInt(t.InheritType.value)),r.eulerOrder="RotationOrder"in t?S(t.RotationOrder.value):"ZYX","Lcl_Translation"in t&&(r.translation=t.Lcl_Translation.value),"PreRotation"in t&&(r.preRotation=t.PreRotation.value),"Lcl_Rotation"in t&&(r.rotation=t.Lcl_Rotation.value),"PostRotation"in t&&(r.postRotation=t.PostRotation.value),"Lcl_Scaling"in t&&(r.scale=t.Lcl_Scaling.value),"ScalingOffset"in t&&(r.scalingOffset=t.ScalingOffset.value),"ScalingPivot"in t&&(r.scalingPivot=t.ScalingPivot.value),"RotationOffset"in t&&(r.rotationOffset=t.RotationOffset.value),"RotationPivot"in t&&(r.rotationPivot=t.RotationPivot.value),e.userData.transformData=r}setLookAtProperties(e,t){if("LookAtProperty"in t){o.get(e.ID).children.forEach((function(t){if("LookAtProperty"===t.relationship){const r=a.Objects.Model[t.ID];if("Lcl_Translation"in r){const t=r.Lcl_Translation.value;void 0!==e.target?(e.target.position.fromArray(t),l.add(e.target)):e.lookAt((new n.Vector3).fromArray(t))}}}))}}bindSkeleton(e,t,r){const i=this.parsePoseNodes();for(const s in e){const a=e[s];o.get(parseInt(a.ID)).parents.forEach((function(e){if(t.has(e.ID)){const t=e.ID;o.get(t).parents.forEach((function(e){if(r.has(e.ID)){r.get(e.ID).bind(new n.Skeleton(a.bones),i[e.ID])}}))}}))}}parsePoseNodes(){const e={};if("Pose"in a.Objects){const t=a.Objects.Pose;for(const r in t)if("BindPose"===t[r].attrType&&t[r].NbPoseNodes>0){const i=t[r].PoseNode;Array.isArray(i)?i.forEach((function(t){e[t.Node]=(new n.Matrix4).fromArray(t.Matrix.a)})):e[i.Node]=(new n.Matrix4).fromArray(i.Matrix.a)}}return e}createAmbientLight(){if("GlobalSettings"in a&&"AmbientColor"in a.GlobalSettings){const e=a.GlobalSettings.AmbientColor.value,t=e[0],r=e[1],i=e[2];if(0!==t||0!==r||0!==i){const e=new n.Color(t,r,i);l.add(new n.AmbientLight(e,1))}}}}class u{parse(e){const t=new Map;if("Geometry"in a.Objects){const r=a.Objects.Geometry;for(const n in r){const i=o.get(parseInt(n)),s=this.parseGeometry(i,r[n],e);t.set(parseInt(n),s)}}return t}parseGeometry(e,t,r){switch(t.attrType){case"Mesh":return this.parseMeshGeometry(e,t,r);case"NurbsCurve":return this.parseNurbsGeometry(t)}}parseMeshGeometry(e,t,r){const n=r.skeletons,i=[],s=e.parents.map((function(e){return a.Objects.Model[e.ID]}));if(0===s.length)return;const o=e.children.reduce((function(e,t){return void 0!==n[t.ID]&&(e=n[t.ID]),e}),null);e.children.forEach((function(e){void 0!==r.morphTargets[e.ID]&&i.push(r.morphTargets[e.ID])}));const l=s[0],c={};"RotationOrder"in l&&(c.eulerOrder=S(l.RotationOrder.value)),"InheritType"in l&&(c.inheritType=parseInt(l.InheritType.value)),"GeometricTranslation"in l&&(c.translation=l.GeometricTranslation.value),"GeometricRotation"in l&&(c.rotation=l.GeometricRotation.value),"GeometricScaling"in l&&(c.scale=l.GeometricScaling.value);const h=_(c);return this.genGeometry(t,o,i,h)}genGeometry(e,t,r,i){const s=new n.BufferGeometry;e.attrName&&(s.name=e.attrName);const a=this.parseGeoNode(e,t),o=this.genBuffers(a),l=new n.Float32BufferAttribute(o.vertex,3);if(l.applyMatrix4(i),s.setAttribute("position",l),o.colors.length>0&&s.setAttribute("color",new n.Float32BufferAttribute(o.colors,3)),t&&(s.setAttribute("skinIndex",new n.Uint16BufferAttribute(o.weightsIndices,4)),s.setAttribute("skinWeight",new n.Float32BufferAttribute(o.vertexWeights,4)),s.FBX_Deformer=t),o.normal.length>0){const e=(new n.Matrix3).getNormalMatrix(i),t=new n.Float32BufferAttribute(o.normal,3);t.applyNormalMatrix(e),s.setAttribute("normal",t)}if(o.uvs.forEach((function(e,t){let r="uv"+(t+1).toString();0===t&&(r="uv"),s.setAttribute(r,new n.Float32BufferAttribute(o.uvs[t],2))})),a.material&&"AllSame"!==a.material.mappingType){let e=o.materialIndex[0],t=0;if(o.materialIndex.forEach((function(r,n){r!==e&&(s.addGroup(t,n-t,e),e=r,t=n)})),s.groups.length>0){const t=s.groups[s.groups.length-1],r=t.start+t.count;r!==o.materialIndex.length&&s.addGroup(r,o.materialIndex.length-r,e)}0===s.groups.length&&s.addGroup(0,o.materialIndex.length,o.materialIndex[0])}return this.addMorphTargets(s,e,r,i),s}parseGeoNode(e,t){const r={};if(r.vertexPositions=void 0!==e.Vertices?e.Vertices.a:[],r.vertexIndices=void 0!==e.PolygonVertexIndex?e.PolygonVertexIndex.a:[],e.LayerElementColor&&(r.color=this.parseVertexColors(e.LayerElementColor[0])),e.LayerElementMaterial&&(r.material=this.parseMaterialIndices(e.LayerElementMaterial[0])),e.LayerElementNormal&&(r.normal=this.parseNormals(e.LayerElementNormal[0])),e.LayerElementUV){r.uv=[];let t=0;for(;e.LayerElementUV[t];)e.LayerElementUV[t].UV&&r.uv.push(this.parseUVs(e.LayerElementUV[t])),t++}return r.weightTable={},null!==t&&(r.skeleton=t,t.rawBones.forEach((function(e,t){e.indices.forEach((function(n,i){void 0===r.weightTable[n]&&(r.weightTable[n]=[]),r.weightTable[n].push({id:t,weight:e.weights[i]})}))}))),r}genBuffers(e){const t={vertex:[],normal:[],colors:[],uvs:[],materialIndex:[],vertexWeights:[],weightsIndices:[]};let r=0,n=0,i=!1,s=[],a=[],o=[],l=[],c=[],h=[];const u=this;return e.vertexIndices.forEach((function(d,p){let f,m=!1;d<0&&(d^=-1,m=!0);let g=[],A=[];if(s.push(3*d,3*d+1,3*d+2),e.color){const t=x(p,r,d,e.color);o.push(t[0],t[1],t[2])}if(e.skeleton){if(void 0!==e.weightTable[d]&&e.weightTable[d].forEach((function(e){A.push(e.weight),g.push(e.id)})),A.length>4){i||(console.warn("THREE.FBXLoader: Vertex has more than 4 skinning weights assigned to vertex. Deleting additional weights."),i=!0);const e=[0,0,0,0],t=[0,0,0,0];A.forEach((function(r,n){let i=r,s=g[n];t.forEach((function(t,r,n){if(i>t){n[r]=i,i=t;const a=e[r];e[r]=s,s=a}}))})),g=e,A=t}for(;A.length<4;)A.push(0),g.push(0);for(let e=0;e<4;++e)c.push(A[e]),h.push(g[e])}if(e.normal){const t=x(p,r,d,e.normal);a.push(t[0],t[1],t[2])}e.material&&"AllSame"!==e.material.mappingType&&(f=x(p,r,d,e.material)[0]),e.uv&&e.uv.forEach((function(e,t){const n=x(p,r,d,e);void 0===l[t]&&(l[t]=[]),l[t].push(n[0]),l[t].push(n[1])})),n++,m&&(u.genFace(t,e,s,f,a,o,l,c,h,n),r++,n=0,s=[],a=[],o=[],l=[],c=[],h=[])})),t}genFace(e,t,r,n,i,s,a,o,l,c){for(let h=2;h1&&console.warn("THREE.FBXLoader: Encountered an animation stack with multiple layers, this is currently not supported. Ignoring subsequent layers.");const s=e.get(i[0].ID);r[n]={name:t[n].attrName,layer:s}}return r}addClip(e){let t=[];const r=this;return e.layer.forEach((function(e){t=t.concat(r.generateTracks(e))})),new n.AnimationClip(e.name,-1,t)}generateTracks(e){const t=[];let r=new n.Vector3,i=new n.Quaternion,s=new n.Vector3;if(e.transform&&e.transform.decompose(r,i,s),r=r.toArray(),i=(new n.Euler).setFromQuaternion(i,e.eulerOrder).toArray(),s=s.toArray(),void 0!==e.T&&Object.keys(e.T.curves).length>0){const n=this.generateVectorTrack(e.modelName,e.T.curves,r,"position");void 0!==n&&t.push(n)}if(void 0!==e.R&&Object.keys(e.R.curves).length>0){const r=this.generateRotationTrack(e.modelName,e.R.curves,i,e.preRotation,e.postRotation,e.eulerOrder);void 0!==r&&t.push(r)}if(void 0!==e.S&&Object.keys(e.S.curves).length>0){const r=this.generateVectorTrack(e.modelName,e.S.curves,s,"scale");void 0!==r&&t.push(r)}if(void 0!==e.DeformPercent){const r=this.generateMorphTrack(e);void 0!==r&&t.push(r)}return t}generateVectorTrack(e,t,r,i){const s=this.getTimesForAllAxes(t),a=this.getKeyframeTrackValues(s,t,r);return new n.VectorKeyframeTrack(e+"."+i,s,a)}generateRotationTrack(e,t,r,i,s,a){void 0!==t.x&&(this.interpolateRotations(t.x),t.x.values=t.x.values.map(n.MathUtils.degToRad)),void 0!==t.y&&(this.interpolateRotations(t.y),t.y.values=t.y.values.map(n.MathUtils.degToRad)),void 0!==t.z&&(this.interpolateRotations(t.z),t.z.values=t.z.values.map(n.MathUtils.degToRad));const o=this.getTimesForAllAxes(t),l=this.getKeyframeTrackValues(o,t,r);void 0!==i&&((i=i.map(n.MathUtils.degToRad)).push(a),i=(new n.Euler).fromArray(i),i=(new n.Quaternion).setFromEuler(i)),void 0!==s&&((s=s.map(n.MathUtils.degToRad)).push(a),s=(new n.Euler).fromArray(s),s=(new n.Quaternion).setFromEuler(s).invert());const c=new n.Quaternion,h=new n.Euler,u=[];for(let n=0;n1){let e=1,r=t[0];for(let n=1;n=180){const s=i/180,a=n/s;let o=r+a;const l=e.times[t-1],c=(e.times[t]-l)/s;let h=l+c;const u=[],d=[];for(;h1&&(r=e[1].replace(/^(\w+)::/,""),n=e[2]),{id:t,name:r,type:n}}parseNodeProperty(e,t,r){let n=t[1].replace(/^"/,"").replace(/"$/,"").trim(),i=t[2].replace(/^"/,"").replace(/"$/,"").trim();"Content"===n&&","===i&&(i=r.replace(/"/g,"").replace(/,$/,"").trim());const s=this.getCurrentNode();if("Properties70"!==s.name){if("C"===n){const e=i.split(",").slice(1),t=parseInt(e[0]),r=parseInt(e[1]);let a=i.split(",").slice(3);a=a.map((function(e){return e.trim().replace(/^"/,"")})),n="connections",i=[t,r],function(e,t){for(let r=0,n=e.length,i=t.length;r=e.size():e.getOffset()+160+16>=e.size()}parseNode(e,t){const r={},n=t>=7500?e.getUint64():e.getUint32(),i=t>=7500?e.getUint64():e.getUint32();t>=7500?e.getUint64():e.getUint32();const s=e.getUint8(),a=e.getString(s);if(0===n)return null;const o=[];for(let u=0;u0?o[0]:"",c=o.length>1?o[1]:"",h=o.length>2?o[2]:"";for(r.singleProperty=1===i&&e.getOffset()===n;n>e.getOffset();){const n=this.parseNode(e,t);null!==n&&this.parseSubNode(a,r,n)}return r.propertyList=o,"number"==typeof l&&(r.id=l),""!==c&&(r.attrName=c),""!==h&&(r.attrType=h),""!==a&&(r.name=a),r}parseSubNode(e,t,r){if(!0===r.singleProperty){const e=r.propertyList[0];Array.isArray(e)?(t[r.name]=r,r.a=e):t[r.name]=e}else if("Connections"===e&&"C"===r.name){const e=[];r.propertyList.forEach((function(t,r){0!==r&&e.push(t)})),void 0===t.connections&&(t.connections=[]),t.connections.push(e)}else if("Properties70"===r.name){Object.keys(r).forEach((function(e){t[e]=r[e]}))}else if("Properties70"===e&&"P"===r.name){let e=r.propertyList[0],n=r.propertyList[1];const i=r.propertyList[2],s=r.propertyList[3];let a;0===e.indexOf("Lcl ")&&(e=e.replace("Lcl ","Lcl_")),0===n.indexOf("Lcl ")&&(n=n.replace("Lcl ","Lcl_")),a="Color"===n||"ColorRGB"===n||"Vector"===n||"Vector3D"===n||0===n.indexOf("Lcl_")?[r.propertyList[4],r.propertyList[5],r.propertyList[6]]:r.propertyList[4],t[e]={type:n,type2:i,flag:s,value:a}}else void 0===t[r.name]?"number"==typeof r.id?(t[r.name]={},t[r.name][r.id]=r):t[r.name]=r:"PoseNode"===r.name?(Array.isArray(t[r.name])||(t[r.name]=[t[r.name]]),t[r.name].push(r)):void 0===t[r.name][r.id]&&(t[r.name][r.id]=r)}parseProperty(e){const t=e.getString(1);let r;switch(t){case"C":return e.getBoolean();case"D":return e.getFloat64();case"F":return e.getFloat32();case"I":return e.getInt32();case"L":return e.getInt64();case"R":return r=e.getUint32(),e.getArrayBuffer(r);case"S":return r=e.getUint32(),e.getString(r);case"Y":return e.getInt16();case"b":case"c":case"d":case"f":case"i":case"l":const n=e.getUint32(),s=e.getUint32(),a=e.getUint32();if(0===s)switch(t){case"b":case"c":return e.getBooleanArray(n);case"d":return e.getFloat64Array(n);case"f":return e.getFloat32Array(n);case"i":return e.getInt32Array(n);case"l":return e.getInt64Array(n)}const o=i.unzlibSync(new Uint8Array(e.getArrayBuffer(a))),l=new m(o.buffer);switch(t){case"b":case"c":return l.getBooleanArray(n);case"d":return l.getFloat64Array(n);case"f":return l.getFloat32Array(n);case"i":return l.getInt32Array(n);case"l":return l.getInt64Array(n)}default:throw new Error("THREE.FBXLoader: Unknown property type "+t)}}}class m{constructor(e,t){this.dv=new DataView(e),this.offset=0,this.littleEndian=void 0===t||t}getOffset(){return this.offset}size(){return this.dv.buffer.byteLength}skip(e){this.offset+=e}getBoolean(){return 1==(1&this.getUint8())}getBooleanArray(e){const t=[];for(let r=0;r=0&&(t=t.slice(0,r)),n.LoaderUtils.decodeText(new Uint8Array(t))}}class g{add(e,t){this[e]=t}}function A(e){const t=e.match(/FBXVersion: (\d+)/);if(t){return parseInt(t[1])}throw new Error("THREE.FBXLoader: Cannot find the version number for the file given.")}function v(e){return e/46186158e3}const y=[];function x(e,t,r,n){let i;switch(n.mappingType){case"ByPolygonVertex":i=e;break;case"ByPolygon":i=t;break;case"ByVertice":i=r;break;case"AllSame":i=n.indices[0];break;default:console.warn("THREE.FBXLoader: unknown attribute mapping type "+n.mappingType)}"IndexToDirect"===n.referenceType&&(i=n.indices[i]);const s=i*n.dataSize,a=s+n.dataSize;return function(e,t,r,n){for(let i=r,s=0;i{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);class a extends s.Loader{constructor(e){super(e)}load(e,t,r,n){const i=new s.FileLoader(this.manager);i.setPath(this.path),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{if("string"!=typeof e)throw new Error("unsupported data type");const r=JSON.parse(e),n=this.parse(r);t&&t(n)}),r,n)}loadAsync(e,t){return super.loadAsync(e,t)}parse(e){return new o(e)}}class o{constructor(e){i(this,"data"),this.data=e}generateShapes(e,t=100,r){const n=[],i={letterSpacing:0,lineHeight:1,...r},s=function(e,t,r,n){const i=Array.from(e),s=t/r.resolution,a=(r.boundingBox.yMax-r.boundingBox.yMin+r.underlineThickness)*s,o=[];let c=0,h=0;for(let u=0;u{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e),this.splitLayer=!1}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){let t,r={x:0,y:0,z:0,e:0,f:0,extruding:!1,relative:!1},i=[];const s=new n.LineBasicMaterial({color:16711680});s.name="path";const a=new n.LineBasicMaterial({color:65280});function o(e){t={vertex:[],pathVertex:[],z:e.z},i.push(t)}function l(e,t){return r.relative?t:t-e}function c(e,t){return r.relative?e+t:t}a.name="extruded";let h=e.replace(/;.+/g,"").split("\n");for(let n=0;n0&&(e.extruding=l(r.e,e.e)>0,null!=t&&e.z==t.z||o(e)),u=r,d=e,void 0===t&&o(u),r.extruding?(t.vertex.push(u.x,u.y,u.z),t.vertex.push(d.x,d.y,d.z)):(t.pathVertex.push(u.x,u.y,u.z),t.pathVertex.push(d.x,d.y,d.z)),r=e}else if("G2"===i||"G3"===i);else if("G90"===i)r.relative=!1;else if("G91"===i)r.relative=!0;else if("G92"===i){let e=r;e.x=void 0!==s.x?s.x:e.x,e.y=void 0!==s.y?s.y:e.y,e.z=void 0!==s.z?s.z:e.z,e.e=void 0!==s.e?s.e:e.e,r=e}}var u,d;function p(e,t,r){let i=new n.BufferGeometry;i.setAttribute("position",new n.Float32BufferAttribute(e,3));let o=new n.LineSegments(i,t?a:s);o.name="layer"+r,f.add(o)}const f=new n.Group;if(f.name="gcode",this.splitLayer)for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(66552),s=r(65236);class a extends n.Loader{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register((function(e){return new d(e)})),this.register((function(e){return new x(e)})),this.register((function(e){return new b(e)})),this.register((function(e){return new E(e)})),this.register((function(e){return new f(e)})),this.register((function(e){return new m(e)})),this.register((function(e){return new g(e)})),this.register((function(e){return new A(e)})),this.register((function(e){return new u(e)})),this.register((function(e){return new v(e)})),this.register((function(e){return new p(e)})),this.register((function(e){return new y(e)})),this.register((function(e){return new c(e)})),this.register((function(e){return new _(e)})),this.register((function(e){return new S(e)}))}load(e,t,r,i){const s=this;let a;a=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:n.LoaderUtils.extractUrlBase(e),this.manager.itemStart(e);const o=function(t){i?i(t):console.error(t),s.manager.itemError(e),s.manager.itemEnd(e)},l=new n.FileLoader(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,(function(r){try{s.parse(r,a,(function(r){t(r),s.manager.itemEnd(e)}),o)}catch(n){o(n)}}),r,o)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return-1===this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.push(e),this}unregister(e){return-1!==this.pluginCallbacks.indexOf(e)&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,r,i){let s;const a={},o={};if("string"==typeof e)s=JSON.parse(e);else if(e instanceof ArrayBuffer){if(n.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4)))===M){try{a[l.KHR_BINARY_GLTF]=new T(e)}catch(u){return void(i&&i(u))}s=JSON.parse(a[l.KHR_BINARY_GLTF].content)}else s=JSON.parse(n.LoaderUtils.decodeText(new Uint8Array(e)))}else s=e;if(void 0===s.asset||s.asset.version[0]<2)return void(i&&i(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported.")));const c=new $(s,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let n=0;n=0&&void 0===o[e]&&console.warn('THREE.GLTFLoader: Unknown extension "'+e+'".')}}c.setExtensions(a),c.setPlugins(o),c.parse(r,i)}parseAsync(e,t){const r=this;return new Promise((function(n,i){r.parse(e,t,n,i)}))}}function o(){let e={};return{get:function(t){return e[t]},add:function(t,r){e[t]=r},remove:function(t){delete e[t]},removeAll:function(){e={}}}}const l={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class c{constructor(e){this.parser=e,this.name=l.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const e=this.parser,t=this.parser.json.nodes||[];for(let r=0,n=t.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,i.source,s)}}class b{constructor(e){this.parser=e,this.name=l.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){const t=this.name,r=this.parser,n=r.json,i=n.textures[e];if(!i.extensions||!i.extensions[t])return null;const s=i.extensions[t],a=n.images[s.source];let o=r.textureLoader;if(a.uri){const e=r.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(i){if(i)return r.loadTextureImage(e,s.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class E{constructor(e){this.parser=e,this.name=l.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){const t=this.name,r=this.parser,n=r.json,i=n.textures[e];if(!i.extensions||!i.extensions[t])return null;const s=i.extensions[t],a=n.images[s.source];let o=r.textureLoader;if(a.uri){const e=r.options.manager.getHandler(a.uri);null!==e&&(o=e)}return this.detectSupport().then((function(i){if(i)return r.loadTextureImage(e,s.source,o);if(n.extensionsRequired&&n.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(e)}))}detectSupport(){return this.isSupported||(this.isSupported=new Promise((function(e){const t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(1===t.height)}}))),this.isSupported}}class _{constructor(e){this.name=l.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){const t=this.parser.json,r=t.bufferViews[e];if(r.extensions&&r.extensions[this.name]){const e=r.extensions[this.name],n=this.parser.getDependency("buffer",e.buffer),i=this.parser.options.meshoptDecoder;if(!i||!i.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return n.then((function(t){const r=e.byteOffset||0,n=e.byteLength||0,s=e.count,a=e.byteStride,o=new Uint8Array(t,r,n);return i.decodeGltfBufferAsync?i.decodeGltfBufferAsync(s,a,o,e.mode,e.filter).then((function(e){return e.buffer})):i.ready.then((function(){const t=new ArrayBuffer(s*a);return i.decodeGltfBuffer(new Uint8Array(t),s,a,o,e.mode,e.filter),t}))}))}return null}}class S{constructor(e){this.name=l.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){const t=this.parser.json,r=t.nodes[e];if(!r.extensions||!r.extensions[this.name]||void 0===r.mesh)return null;const i=t.meshes[r.mesh];for(const n of i.primitives)if(n.mode!==F.TRIANGLES&&n.mode!==F.TRIANGLE_STRIP&&n.mode!==F.TRIANGLE_FAN&&void 0!==n.mode)return null;const s=r.extensions[this.name].attributes,a=[],o={};for(const n in s)a.push(this.parser.getDependency("accessor",s[n]).then((e=>(o[n]=e,o[n]))));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then((e=>{const t=e.pop(),r=t.isGroup?t.children:[t],i=e[0].count,s=[];for(const a of r){const e=new n.Matrix4,t=new n.Vector3,r=new n.Quaternion,l=new n.Vector3(1,1,1),c=new n.InstancedMesh(a.geometry,a.material,i);for(let n=0;n=152?{TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3"}:{TEXCOORD_0:"uv",TEXCOORD_1:"uv2"},COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},z={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Q={CUBICSPLINE:void 0,LINEAR:n.InterpolateLinear,STEP:n.InterpolateDiscrete},V="OPAQUE",H="MASK",j="BLEND";function W(e,t,r){for(const n in r.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=r.extensions[n])}function X(e,t){void 0!==t.extras&&("object"==typeof t.extras?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function Y(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(let r=0,n=t.weights.length;r-1,s=i?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),"undefined"==typeof createImageBitmap||r||i&&s<98?this.textureLoader=new n.TextureLoader(this.options.manager):this.textureLoader=new n.ImageBitmapLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new n.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){const r=this,n=this.json,i=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll((function(e){return e._markDefs&&e._markDefs()})),Promise.all(this._invokeAll((function(e){return e.beforeRoot&&e.beforeRoot()}))).then((function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])})).then((function(t){const s={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:r,userData:{}};W(i,s,n),X(s,n),Promise.all(r._invokeAll((function(e){return e.afterRoot&&e.afterRoot(s)}))).then((function(){e(s)}))})).catch(t)}_markDefs(){const e=this.json.nodes||[],t=this.json.skins||[],r=this.json.meshes||[];for(let n=0,i=t.length;n{const r=this.associations.get(e);null!=r&&this.associations.set(t,r);for(const[n,s]of e.children.entries())i(s,t.children[n])};return i(r,n),n.name+="_instance_"+e.uses[t]++,n}_invokeOne(e){const t=Object.values(this.plugins);t.push(this);for(let r=0;r=2&&f.setY(t,u[e*a+1]),a>=3&&f.setZ(t,u[e*a+2]),a>=4&&f.setW(t,u[e*a+3]),a>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return f}))}loadTexture(e){const t=this.json,r=this.options,n=t.textures[e].source,i=t.images[n];let s=this.textureLoader;if(i.uri){const e=r.manager.getHandler(i.uri);null!==e&&(s=e)}return this.loadTextureImage(e,n,s)}loadTextureImage(e,t,r){const i=this,s=this.json,a=s.textures[e],o=s.images[t],l=(o.uri||o.bufferView)+":"+a.sampler;if(this.textureCache[l])return this.textureCache[l];const c=this.loadImageSource(t,r).then((function(t){t.flipY=!1,t.name=a.name||o.name||"",""===t.name&&"string"==typeof o.uri&&!1===o.uri.startsWith("data:image/")&&(t.name=o.uri);const r=(s.samplers||{})[a.sampler]||{};return t.magFilter=O[r.magFilter]||n.LinearFilter,t.minFilter=O[r.minFilter]||n.LinearMipmapLinearFilter,t.wrapS=N[r.wrapS]||n.RepeatWrapping,t.wrapT=N[r.wrapT]||n.RepeatWrapping,i.associations.set(t,{textures:e}),t})).catch((function(){return null}));return this.textureCache[l]=c,c}loadImageSource(e,t){const r=this,i=this.json,s=this.options;if(void 0!==this.sourceCache[e])return this.sourceCache[e].then((e=>e.clone()));const a=i.images[e],o=self.URL||self.webkitURL;let l=a.uri||"",c=!1;if(void 0!==a.bufferView)l=r.getDependency("bufferView",a.bufferView).then((function(e){c=!0;const t=new Blob([e],{type:a.mimeType});return l=o.createObjectURL(t),l}));else if(void 0===a.uri)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");const h=Promise.resolve(l).then((function(e){return new Promise((function(r,i){let a=r;!0===t.isImageBitmapLoader&&(a=function(e){const t=new n.Texture(e);t.needsUpdate=!0,r(t)}),t.load(n.LoaderUtils.resolveURL(e,s.path),a,void 0,i)}))})).then((function(e){var t;return!0===c&&o.revokeObjectURL(l),e.userData.mimeType=a.mimeType||((t=a.uri).search(/\.jpe?g($|\?)/i)>0||0===t.search(/^data\:image\/jpeg/)?"image/jpeg":t.search(/\.webp($|\?)/i)>0||0===t.search(/^data\:image\/webp/)?"image/webp":"image/png"),e})).catch((function(e){throw console.error("THREE.GLTFLoader: Couldn't load texture",l),e}));return this.sourceCache[e]=h,h}assignTexture(e,t,r,n){const i=this;return this.getDependency("texture",r.index).then((function(s){if(!s)return null;if(void 0!==r.texCoord&&r.texCoord>0&&((s=s.clone()).channel=r.texCoord),i.extensions[l.KHR_TEXTURE_TRANSFORM]){const e=void 0!==r.extensions?r.extensions[l.KHR_TEXTURE_TRANSFORM]:void 0;if(e){const t=i.associations.get(s);s=i.extensions[l.KHR_TEXTURE_TRANSFORM].extendTexture(s,e),i.associations.set(s,t)}}return void 0!==n&&("colorSpace"in s?s.colorSpace=3001===n?"srgb":"srgb-linear":s.encoding=n),e[t]=s,s}))}assignFinalMaterial(e){const t=e.geometry;let r=e.material;const i=void 0===t.attributes.tangent,s=void 0!==t.attributes.color,a=void 0===t.attributes.normal;if(e.isPoints){const e="PointsMaterial:"+r.uuid;let t=this.cache.get(e);t||(t=new n.PointsMaterial,n.Material.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,t.sizeAttenuation=!1,this.cache.add(e,t)),r=t}else if(e.isLine){const e="LineBasicMaterial:"+r.uuid;let t=this.cache.get(e);t||(t=new n.LineBasicMaterial,n.Material.prototype.copy.call(t,r),t.color.copy(r.color),t.map=r.map,this.cache.add(e,t)),r=t}if(i||s||a){let e="ClonedMaterial:"+r.uuid+":";i&&(e+="derivative-tangents:"),s&&(e+="vertex-colors:"),a&&(e+="flat-shading:");let t=this.cache.get(e);t||(t=r.clone(),s&&(t.vertexColors=!0),a&&(t.flatShading=!0),i&&(t.normalScale&&(t.normalScale.y*=-1),t.clearcoatNormalScale&&(t.clearcoatNormalScale.y*=-1)),this.cache.add(e,t),this.associations.set(t,this.associations.get(r))),r=t}e.material=r}getMaterialType(){return n.MeshStandardMaterial}loadMaterial(e){const t=this,r=this.json,i=this.extensions,s=r.materials[e];let a;const o={},c=[];if((s.extensions||{})[l.KHR_MATERIALS_UNLIT]){const e=i[l.KHR_MATERIALS_UNLIT];a=e.getMaterialType(),c.push(e.extendParams(o,s,t))}else{const r=s.pbrMetallicRoughness||{};if(o.color=new n.Color(1,1,1),o.opacity=1,Array.isArray(r.baseColorFactor)){const e=r.baseColorFactor;o.color.fromArray(e),o.opacity=e[3]}void 0!==r.baseColorTexture&&c.push(t.assignTexture(o,"map",r.baseColorTexture,3001)),o.metalness=void 0!==r.metallicFactor?r.metallicFactor:1,o.roughness=void 0!==r.roughnessFactor?r.roughnessFactor:1,void 0!==r.metallicRoughnessTexture&&(c.push(t.assignTexture(o,"metalnessMap",r.metallicRoughnessTexture)),c.push(t.assignTexture(o,"roughnessMap",r.metallicRoughnessTexture))),a=this._invokeOne((function(t){return t.getMaterialType&&t.getMaterialType(e)})),c.push(Promise.all(this._invokeAll((function(t){return t.extendMaterialParams&&t.extendMaterialParams(e,o)}))))}!0===s.doubleSided&&(o.side=n.DoubleSide);const h=s.alphaMode||V;if(h===j?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,h===H&&(o.alphaTest=void 0!==s.alphaCutoff?s.alphaCutoff:.5)),void 0!==s.normalTexture&&a!==n.MeshBasicMaterial&&(c.push(t.assignTexture(o,"normalMap",s.normalTexture)),o.normalScale=new n.Vector2(1,1),void 0!==s.normalTexture.scale)){const e=s.normalTexture.scale;o.normalScale.set(e,e)}return void 0!==s.occlusionTexture&&a!==n.MeshBasicMaterial&&(c.push(t.assignTexture(o,"aoMap",s.occlusionTexture)),void 0!==s.occlusionTexture.strength&&(o.aoMapIntensity=s.occlusionTexture.strength)),void 0!==s.emissiveFactor&&a!==n.MeshBasicMaterial&&(o.emissive=(new n.Color).fromArray(s.emissiveFactor)),void 0!==s.emissiveTexture&&a!==n.MeshBasicMaterial&&c.push(t.assignTexture(o,"emissiveMap",s.emissiveTexture,3001)),Promise.all(c).then((function(){const r=new a(o);return s.name&&(r.name=s.name),X(r,s),t.associations.set(r,{materials:e}),s.extensions&&W(i,r,s),r}))}createUniqueName(e){const t=n.PropertyBinding.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){const t=this,r=this.extensions,i=this.primitiveCache;function s(e){return r[l.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(r){return ee(r,e,t)}))}const a=[];for(let o=0,c=e.length;o0&&Y(p,a),p.name=t.createUniqueName(a.name||"mesh_"+e),X(p,a),u.extensions&&W(s,p,u),t.assignFinalMaterial(p),h.push(p)}for(let n=0,i=h.length;n1?new n.Group:1===t.length?t[0]:new n.Object3D,o!==t[0])for(let e=0,r=t.length;e{const t=new Map;for(const[r,s]of i.associations)(r instanceof n.Material||r instanceof n.Texture)&&t.set(r,s);return e.traverse((e=>{const r=i.associations.get(e);null!=r&&t.set(e,r)})),t})(s),s}))}}function ee(e,t,r){const i=t.attributes,s=[];function a(t,n){return r.getDependency("accessor",t).then((function(t){e.setAttribute(n,t)}))}for(const n in i){const t=G[n]||n.toLowerCase();t in e.attributes||s.push(a(i[n],t))}if(void 0!==t.indices&&!e.index){const n=r.getDependency("accessor",t.indices).then((function(t){e.setIndex(t)}));s.push(n)}return X(e,t),function(e,t,r){const i=t.attributes,s=new n.Box3;if(void 0===i.POSITION)return;{const e=r.json.accessors[i.POSITION],t=e.min,a=e.max;if(void 0===t||void 0===a)return void console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");if(s.set(new n.Vector3(t[0],t[1],t[2]),new n.Vector3(a[0],a[1],a[2])),e.normalized){const t=J(U[e.componentType]);s.min.multiplyScalar(t),s.max.multiplyScalar(t)}}const a=t.targets;if(void 0!==a){const e=new n.Vector3,t=new n.Vector3;for(let n=0,i=a.length;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(31150);class s extends n.Loader{constructor(e){super(e),this.hdrLoader=new i.RGBELoader,this.type=n.HalfFloatType}load(e,t,r,i){Array.isArray(e)||(console.warn("THREE.HDRCubeTextureLoader signature has changed. Use .setDataType() instead."),this.setDataType(e),e=t,t=r,r=i,i=arguments[4]);const s=new n.CubeTexture;switch(s.type=this.type,s.type){case n.FloatType:case n.HalfFloatType:"colorSpace"in s?s.colorSpace="srgb-linear":s.encoding=3e3,s.minFilter=n.LinearFilter,s.magFilter=n.LinearFilter,s.generateMipmaps=!1}const a=this;let o=0;function l(t,r,i,l){new n.FileLoader(a.manager).setPath(a.path).setResponseType("arraybuffer").setWithCredentials(a.withCredentials).load(e[t],(function(e){o++;const i=a.hdrLoader.parse(e);if(i){if(void 0!==i.data){const e=new n.DataTexture(i.data,i.width,i.height);e.type=s.type,e.encoding=s.encoding,e.format=s.format,e.minFilter=s.minFilter,e.magFilter=s.magFilter,e.generateMipmaps=s.generateMipmaps,s.images[t]=e}6===o&&(s.needsUpdate=!0,r&&r(s))}}),i,l)}for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(16354),s=r(8083);class a extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){const t=new n.LoadingManager;t.setURLModifier((function(e){const t=function(e){for(const t in r)if(t.substr(-e.length)===e)return r[t]}(e);if(t){console.log("Loading",e);const r=new Blob([t.buffer],{type:"application/octet-stream"});return URL.createObjectURL(r)}return e}));const r=s.unzipSync(new Uint8Array(e));if(r["doc.kml"]){const e=(new DOMParser).parseFromString(fflate.strFromU8(r["doc.kml"]),"application/xml").querySelector("Placemark Model Link href");if(e){return new i.ColladaLoader(t).parse(fflate.strFromU8(r[e.textContent]))}}else{console.warn("KMZLoader: Missing doc.kml file.");for(const e in r){if("dae"===e.split(".").pop().toLowerCase()){return new i.ColladaLoader(t).parse(fflate.strFromU8(r[e]))}}}return console.error("KMZLoader: Couldn't find .dae file."),{scene:new n.Group}}}t.KMZLoader=a},8117:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(83088),o=r(29234),l=r(12258),c=r(84951),h=r(79836),u=new WeakMap;let d,p=0;const f=class extends s.Loader{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new a.WorkerPool,this.workerSourceURL="",this.workerConfig=null,"undefined"!=typeof MSC_TRANSCODER&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}detectSupport(e){return this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},e.capabilities.isWebGL2&&(this.workerConfig.etc1Supported=!1),this}init(){if(!this.transcoderPending){const e=new s.FileLoader(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);const t=e.loadAsync("basis_transcoder.js"),r=new s.FileLoader(this.manager);r.setPath(this.transcoderPath),r.setResponseType("arraybuffer"),r.setWithCredentials(this.withCredentials);const n=r.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,n]).then((([e,t])=>{const r=f.BasisWorker.toString(),n=["/* constants */","let _EngineFormat = "+JSON.stringify(f.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(f.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(f.BasisFormat),"/* basis_transcoder.js */",e,"/* worker */",r.substring(r.indexOf("{")+1,r.lastIndexOf("}"))].join("\n");this.workerSourceURL=URL.createObjectURL(new Blob([n])),this.transcoderBinary=t,this.workerPool.setWorkerCreator((()=>{const e=new Worker(this.workerSourceURL),t=this.transcoderBinary.slice(0);return e.postMessage({type:"init",config:this.workerConfig,transcoderBinary:t},[t]),e}))})),p>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),p++}return this.transcoderPending}load(e,t,r,n){if(null===this.workerConfig)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");const i=new s.FileLoader(this.manager);i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials),i.load(e,(e=>{if(u.has(e)){return u.get(e).promise.then(t).catch(n)}this._createTexture(e).then((e=>t?t(e):null)).catch(n)}),r,n)}_createTextureFrom(e,t){const{mipmaps:r,width:n,height:i,format:a,type:l,error:h,dfdTransferFn:u,dfdFlags:d}=e;if("error"===l)return Promise.reject(h);const p=t.layerCount>1?new c.CompressedArrayTexture(r,n,i,t.layerCount,a,s.UnsignedByteType):new s.CompressedTexture(r,n,i,a,s.UnsignedByteType);return p.minFilter=1===r.length?s.LinearFilter:s.LinearMipmapLinearFilter,p.magFilter=s.LinearFilter,p.generateMipmaps=!1,p.needsUpdate=!0,"colorSpace"in p?p.colorSpace=u===o.KHR_DF_TRANSFER_SRGB?"srgb":"srgb-linear":p.encoding=u===o.KHR_DF_TRANSFER_SRGB?3001:3e3,p.premultiplyAlpha=!!(d&o.KHR_DF_FLAG_ALPHA_PREMULTIPLIED),p}async _createTexture(e,t={}){const r=o.read(new Uint8Array(e));if(r.vkFormat!==o.VK_FORMAT_UNDEFINED)return async function(e){const{vkFormat:t,pixelWidth:r,pixelHeight:n,pixelDepth:i}=e;if(void 0===g[t])throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");const a=e.levels[0];let c,u;if(e.supercompressionScheme===o.KHR_SUPERCOMPRESSION_NONE)c=a.levelData;else{if(e.supercompressionScheme!==o.KHR_SUPERCOMPRESSION_ZSTD)throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");d||(d=new Promise((async e=>{const t=new l.ZSTDDecoder;await t.init(),e(t)}))),c=(await d).decode(a.levelData,a.uncompressedByteLength)}u=A[t]===s.FloatType?new Float32Array(c.buffer,c.byteOffset,c.byteLength/Float32Array.BYTES_PER_ELEMENT):A[t]===s.HalfFloatType?new Uint16Array(c.buffer,c.byteOffset,c.byteLength/Uint16Array.BYTES_PER_ELEMENT):c;const p=0===i?new s.DataTexture(u,r,n):new h.Data3DTexture(u,r,n,i);return p.type=A[t],p.format=g[t],p.encoding=v[t]||3e3,p.needsUpdate=!0,Promise.resolve(p)}(r);const n=t,i=this.init().then((()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:n},[e]))).then((e=>this._createTextureFrom(e.data,r)));return u.set(e,{promise:i}),i}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),p--,this}};let m=f;i(m,"BasisFormat",{ETC1S:0,UASTC_4x4:1}),i(m,"TranscoderFormat",{ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16}),i(m,"EngineFormat",{RGBAFormat:s.RGBAFormat,RGBA_ASTC_4x4_Format:s.RGBA_ASTC_4x4_Format,RGBA_BPTC_Format:s.RGBA_BPTC_Format,RGBA_ETC2_EAC_Format:s.RGBA_ETC2_EAC_Format,RGBA_PVRTC_4BPPV1_Format:s.RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT5_Format:s.RGBA_S3TC_DXT5_Format,RGB_ETC1_Format:s.RGB_ETC1_Format,RGB_ETC2_Format:s.RGB_ETC2_Format,RGB_PVRTC_4BPPV1_Format:s.RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format:s.RGB_S3TC_DXT1_Format}),i(m,"BasisWorker",(function(){let e,t,r;const n=_EngineFormat,i=_TranscoderFormat,s=_BasisFormat;self.addEventListener("message",(function(a){const u=a.data;switch(u.type){case"init":e=u.config,d=u.transcoderBinary,t=new Promise((e=>{r={wasmBinary:d,onRuntimeInitialized:e},BASIS(r)})).then((()=>{r.initializeBasis(),void 0===r.KTX2File&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")}));break;case"transcode":t.then((()=>{try{const{width:t,height:a,hasAlpha:d,mipmaps:p,format:f,dfdTransferFn:m,dfdFlags:g}=function(t){const a=new r.KTX2File(new Uint8Array(t));function u(){a.close(),a.delete()}if(!a.isValid())throw u(),new Error("THREE.KTX2Loader:\tInvalid or unsupported .ktx2 file");const d=a.isUASTC()?s.UASTC_4x4:s.ETC1S,p=a.getWidth(),f=a.getHeight(),m=a.getLayers()||1,g=a.getLevels(),A=a.getHasAlpha(),v=a.getDFDTransferFunc(),y=a.getDFDFlags(),{transcoderFormat:x,engineFormat:b}=function(t,r,a,h){let u,d;const p=t===s.ETC1S?o:l;for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.CompressedTextureLoader{constructor(e){super(e)}parse(e,t){const r=new s(e,1);return{mipmaps:r.mipmaps(t),width:r.pixelWidth,height:r.pixelHeight,format:r.glInternalFormat,isCubemap:6===r.numberOfFaces,mipmapCount:r.numberOfMipmapLevels}}}class s{constructor(e,t){this.arrayBuffer=e;const r=new Uint8Array(this.arrayBuffer,0,12);if(171!==r[0]||75!==r[1]||84!==r[2]||88!==r[3]||32!==r[4]||49!==r[5]||49!==r[6]||187!==r[7]||13!==r[8]||10!==r[9]||26!==r[10]||10!==r[11])return void console.error("texture missing KTX identifier");const n=Uint32Array.BYTES_PER_ELEMENT,i=new DataView(this.arrayBuffer,12,13*n),s=67305985===i.getUint32(0,!0);this.glType=i.getUint32(1*n,s),this.glTypeSize=i.getUint32(2*n,s),this.glFormat=i.getUint32(3*n,s),this.glInternalFormat=i.getUint32(4*n,s),this.glBaseInternalFormat=i.getUint32(5*n,s),this.pixelWidth=i.getUint32(6*n,s),this.pixelHeight=i.getUint32(7*n,s),this.pixelDepth=i.getUint32(8*n,s),this.numberOfArrayElements=i.getUint32(9*n,s),this.numberOfFaces=i.getUint32(10*n,s),this.numberOfMipmapLevels=i.getUint32(11*n,s),this.bytesOfKeyValueData=i.getUint32(12*n,s),0===this.glType?(this.numberOfMipmapLevels=Math.max(1,this.numberOfMipmapLevels),0!==this.pixelHeight&&0===this.pixelDepth?0===this.numberOfArrayElements?this.numberOfFaces===t?this.loadType=0:console.warn("number of faces expected"+t+", but found "+this.numberOfFaces):console.warn("texture arrays not currently supported"):console.warn("only 2D textures currently supported")):console.warn("only compressed formats currently supported")}mipmaps(e){const t=[];let r=64+this.bytesOfKeyValueData,n=this.pixelWidth,i=this.pixelHeight;const s=e?this.numberOfMipmapLevels:1;for(let a=0;a{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i="16",s="24",a=new n.Vector3,o=new n.Vector3;class l extends n.ShaderMaterial{constructor(e){super({uniforms:n.UniformsUtils.merge([n.UniformsLib.fog,{diffuse:{value:new n.Color},opacity:{value:1}}]),vertexShader:"\n attribute vec3 control0;\n attribute vec3 control1;\n attribute vec3 direction;\n varying float discardFlag;\n\n #include \n #include \n #include \n #include \n #include \n\n void main() {\n #include \n\n vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * mvPosition;\n\n // Transform the line segment ends and control points into camera clip space\n vec4 c0 = projectionMatrix * modelViewMatrix * vec4(control0, 1.0);\n vec4 c1 = projectionMatrix * modelViewMatrix * vec4(control1, 1.0);\n vec4 p0 = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n vec4 p1 = projectionMatrix * modelViewMatrix * vec4(position + direction, 1.0);\n\n c0.xy /= c0.w;\n c1.xy /= c1.w;\n p0.xy /= p0.w;\n p1.xy /= p1.w;\n\n // Get the direction of the segment and an orthogonal vector\n vec2 dir = p1.xy - p0.xy;\n vec2 norm = vec2(-dir.y, dir.x);\n\n // Get control point directions from the line\n vec2 c0dir = c0.xy - p1.xy;\n vec2 c1dir = c1.xy - p1.xy;\n\n // If the vectors to the controls points are pointed in different directions away\n // from the line segment then the line should not be drawn.\n float d0 = dot(normalize(norm), normalize(c0dir));\n float d1 = dot(normalize(norm), normalize(c1dir));\n discardFlag = float(sign(d0) != sign(d1));\n\n #include \n #include \n #include \n }\n ",fragmentShader:`\n uniform vec3 diffuse;\n uniform float opacity;\n varying float discardFlag;\n\n #include \n #include \n #include \n #include \n #include \n\n void main() {\n if (discardFlag > 0.5) discard;\n\n #include \n vec3 outgoingLight = vec3(0.0);\n vec4 diffuseColor = vec4(diffuse, opacity);\n #include \n #include \n outgoingLight = diffuseColor.rgb; // simple shader\n gl_FragColor = vec4(outgoingLight, diffuseColor.a);\n #include \n #include <${parseInt(n.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n #include \n #include \n }\n `}),Object.defineProperties(this,{opacity:{get:function(){return this.uniforms.opacity.value},set:function(e){this.uniforms.opacity.value=e}},color:{get:function(){return this.uniforms.diffuse.value}}}),this.setValues(e),this.isLDrawConditionalLineMaterial=!0}}class c extends n.LineSegments{constructor(e,t){super(e,t),this.isConditionalLine=!0}}const h=new n.Ray;function u(e){return"Part"===e||"Unofficial_Part"===e}class d{constructor(e,t){this.line=e,this.lineLength=e.length,this.currentCharIndex=0,this.currentChar=" ",this.lineNumber=t}seekNonSpace(){for(;this.currentCharIndex=this.lineLength}setToEnd(){this.currentCharIndex=this.lineLength}getLineNumberString(){return this.lineNumber>=0?" at line "+this.lineNumber:""}}class p{constructor(e){this.loader=e,this._cache={}}cloneResult(e){const t={};return t.faces=e.faces.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone())),normals:e.normals.map((()=>null)),faceNormal:null}))),t.conditionalSegments=e.conditionalSegments.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone())),controlPoints:e.controlPoints.map((e=>e.clone()))}))),t.lineSegments=e.lineSegments.map((e=>({colorCode:e.colorCode,material:e.material,vertices:e.vertices.map((e=>e.clone()))}))),t.type=e.type,t.category=e.category,t.keywords=e.keywords,t.subobjects=e.subobjects,t.totalFaces=e.totalFaces,t.startingConstructionStep=e.startingConstructionStep,t.materials=e.materials,t.group=null,t}async fetchData(e){let t=!1,r=0;for(;6!==r;){let s=e;switch(r){case 0:r+=1;break;case 1:s="parts/"+s,r+=1;break;case 2:s="p/"+s,r+=1;break;case 3:s="models/"+s,r+=1;break;case 4:s=e.substring(0,e.lastIndexOf("/")+1)+s,r+=1;break;case 5:t?r=6:(s=e=e.toLowerCase(),t=!0,r=0)}const a=this.loader,o=new n.FileLoader(a.manager);o.setPath(a.partsLibraryPath),o.setRequestHeader(a.requestHeader),o.setWithCredentials(a.withCredentials);try{return await o.loadAsync(s)}catch(i){continue}}throw new Error('LDrawLoader: Subobject "'+e+'" could not be loaded.')}parse(e,t=null){const r=this.loader,i=[],s=[],a=[],o=[],l={},c=e=>l[e]||null;let h="Model",u=null,p=null,f=0;-1!==e.indexOf("\r\n")&&(e=e.replace(/\r\n/g,"\n"));const m=e.split("\n"),g=m.length;let A=!1,v=null,y=null,x=!1,b=!0,E=!1,_=!0,S=!1;for(let M=0;M0&&(p||(p=[]),e.forEach((function(e){p.push(e.trim())})));break;case"FILE":M>0&&(A=!0,v=t.getRemainingString(),y="",x=!1,b=!0);break;case"BFC":for(;!t.isAtTheEnd();){const e=t.getToken();switch(e){case"CERTIFY":case"NOCERTIFY":x="CERTIFY"===e,b=!0;break;case"CW":case"CCW":b="CCW"===e;break;case"INVERTNEXT":E=!0;break;case"CLIP":case"NOCLIP":_="CLIP"===e;break;default:console.warn('THREE.LDrawLoader: BFC directive "'+e+'" is unknown.')}}break;case"STEP":S=!0}break;case"1":C=t.getToken(),w=c(C);const d=parseFloat(t.getToken()),m=parseFloat(t.getToken()),O=parseFloat(t.getToken()),N=parseFloat(t.getToken()),k=parseFloat(t.getToken()),G=parseFloat(t.getToken()),z=parseFloat(t.getToken()),Q=parseFloat(t.getToken()),V=parseFloat(t.getToken()),H=parseFloat(t.getToken()),j=parseFloat(t.getToken()),W=parseFloat(t.getToken()),X=(new n.Matrix4).set(N,k,G,d,z,Q,V,m,H,j,W,O,0,0,0,1);let Y=t.getRemainingString().trim().replace(/\\/g,"/");r.fileMap[Y]?Y=r.fileMap[Y]:Y.startsWith("s/")?Y="parts/"+Y:Y.startsWith("48/")&&(Y="p/"+Y),o.push({material:w,colorCode:C,matrix:X,fileName:Y,inverted:E,startingConstructionStep:S}),E=!1;break;case"2":C=t.getToken(),w=c(C),R=t.getVector(),P=t.getVector(),T={material:w,colorCode:C,vertices:[R,P]},s.push(T);break;case"5":C=t.getToken(),w=c(C),R=t.getVector(),P=t.getVector(),F=t.getVector(),U=t.getVector(),T={material:w,colorCode:C,vertices:[R,P],controlPoints:[F,U]},a.push(T);break;case"3":C=t.getToken(),w=c(C),I=b,B=!x||!_,!0===I?(R=t.getVector(),P=t.getVector(),D=t.getVector()):(D=t.getVector(),P=t.getVector(),R=t.getVector()),i.push({material:w,colorCode:C,faceNormal:null,vertices:[R,P,D],normals:[null,null,null]}),f++,!0===B&&(i.push({material:w,colorCode:C,faceNormal:null,vertices:[D,P,R],normals:[null,null,null]}),f++);break;case"4":C=t.getToken(),w=c(C),I=b,B=!x||!_,!0===I?(R=t.getVector(),P=t.getVector(),D=t.getVector(),L=t.getVector()):(L=t.getVector(),D=t.getVector(),P=t.getVector(),R=t.getVector()),i.push({material:w,colorCode:C,faceNormal:null,vertices:[R,P,D,L],normals:[null,null,null,null]}),f+=2,!0===B&&(i.push({material:w,colorCode:C,faceNormal:null,vertices:[L,D,P,R],normals:[null,null,null,null]}),f+=2);break;default:throw new Error('LDrawLoader: Unknown line type "'+g+'"'+t.getLineNumberString()+".")}}return A&&this.setData(v,y),{faces:i,conditionalSegments:a,lineSegments:s,type:h,category:u,keywords:p,subobjects:o,totalFaces:f,startingConstructionStep:S,materials:l,fileName:t,group:null}}getData(e,t=!0){const r=e.toLowerCase(),n=this._cache[r];return null===n||n instanceof Promise?null:t?this.cloneResult(n):n}async ensureDataLoaded(e){const t=e.toLowerCase();t in this._cache||(this._cache[t]=this.fetchData(e).then((r=>{const n=this.parse(r,e);return this._cache[t]=n,n}))),await this._cache[t]}setData(e,t){const r=e.toLowerCase();this._cache[r]=this.parse(t,e)}}function f(e,t,r,n){return(!n&&e===i||n&&e===s)&&(e=t),r[e]||null}class m{constructor(e){this.loader=e,this.parseCache=new p(e),this._cache={}}async processIntoMesh(e){const t=this.loader,r=this.parseCache,l=new Set,c=async(e,a=null)=>{const o=e.subobjects,h=[];for(let t=0,n=o.length;t{const t=r.getData(e.fileName,!1);return n=t.type,/primitive/i.test(n)||"Subpart"===n?c(r.getData(e.fileName),e):this.loadModel(e.fileName).catch((e=>(console.warn(e),null)));var n}));h.push(n)}const u=new n.Group;u.userData.category=e.category,u.userData.keywords=e.keywords,e.group=u;const d=await Promise.all(h);for(let r=0,n=d.length;r1;!function(e){for(let t=0,r=e.length;tc&&([a,c]=[c,a]),r.distances.push(a,c)}}for(let n=0,f=e.length;ns&&([i,s]=[s,i]);let a=!1;for(let e=0,o=n.length;e=n[e]&&s<=n[e+1]){a=!0;break}if(a)continue}}const A={index:n,tri:t};d[g]=A}}for(;;){let e=null;for(const r in d){e=d[r];break}if(null===e)break;const t=[e];for(;t.length>0;){const e=t.pop().tri,r=e.vertices,i=e.normals,s=e.faceNormal,o=r.length;for(let l=0;l0&&u.add(A(e.faces,3,!1,e.totalFaces)),e.lineSegments.length>0&&u.add(A(e.lineSegments,2)),e.conditionalSegments.length>0&&u.add(A(e.conditionalSegments,2,!0)),u}hasCachedModel(e){return null!==e&&e.toLowerCase()in this._cache}async getCachedModel(e){if(null!==e&&this.hasCachedModel(e)){const t=e.toLowerCase();return(await this._cache[t]).clone()}return null}async loadModel(e){const t=this.parseCache,r=e.toLowerCase();if(this.hasCachedModel(e))return this.getCachedModel(e);{await t.ensureDataLoaded(e);const n=t.getData(e),i=this.processIntoMesh(n);if(this.hasCachedModel(e))return this.getCachedModel(e);u(n.type)&&(this._cache[r]=i);return(await i).clone()}}async parseModel(e){const t=this.parseCache.parse(e);return u(t.type)&&this.hasCachedModel(t.fileName)?this.getCachedModel(t.fileName):this.processIntoMesh(t)}}function g(e,t){return e.colorCode===t.colorCode?0:e.colorCode0&&d.addGroup(f,1/0,h.length-1),d.setAttribute("position",new n.BufferAttribute(s,3)),null!==l&&d.setAttribute("normal",new n.BufferAttribute(l,3));let v=null;if(2===t?v=r?new c(d,1===h.length?h[0]:h):new n.LineSegments(d,1===h.length?h[0]:h):3===t&&(v=new n.Mesh(d,1===h.length?h[0]:h)),r){v.isConditionalLine=!0;const t=new Float32Array(3*e.length*2),r=new Float32Array(3*e.length*2),i=new Float32Array(3*e.length*2);for(let n=0,s=e.length;n{this.partsCache.parseModel(e,this.materialLibrary).then((e=>{this.applyMaterialsToMesh(e,i,this.materialLibrary,!0),this.computeConstructionSteps(e),t(e)})).catch(s)}),r,s)}parse(e,t){this.partsCache.parseModel(e,this.materialLibrary).then((e=>{this.computeConstructionSteps(e),t(e)}))}setMaterials(e){this.materialLibrary={},this.materials=[];for(let t=0,r=e.length;t{if(e.isMesh||e.isLineSegments)if(Array.isArray(e.material))for(let t=0,r=e.material.length;t{e.isGroup&&(e.userData.startingConstructionStep&&t++,e.userData.constructionStep=t)})),e.userData.numConstructionSteps=t+1}}t.LDrawLoader=v},7472:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(79836);class s extends n.Loader{load(e,t,r,i){const s=new n.FileLoader(this.manager);s.setPath(this.path),s.setResponseType("text"),s.load(e,(r=>{try{t(this.parse(r))}catch(n){i?i(n):console.error(n),this.manager.itemError(e)}}),r,i)}parse(e){const t=(e=e.replace(/^#.*?(\n|\r)/gm,"").replace(/^\s*?(\n|\r)/gm,"").trim()).split(/[\n\r]+/g),r=t[0].trim().split(/\s+/g).map((e=>parseFloat(e))),s=r[1]-r[0],a=r.length;for(let n=1,i=r.length;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(79836);class s extends n.Loader{load(e,t,r,i){const s=new n.FileLoader(this.manager);s.setPath(this.path),s.setResponseType("text"),s.load(e,(r=>{try{t(this.parse(r))}catch(n){i?i(n):console.error(n),this.manager.itemError(e)}}),r,i)}parse(e){e=e.replace(/^#.*?(\n|\r)/gm,"").replace(/^\s*?(\n|\r)/gm,"").trim();let t=null,r=null;const s=new n.Vector3(0,0,0),a=new n.Vector3(1,1,1),o=e.split(/[\n\r]+/g);let l=null,c=0;for(let n=0,i=o.length;n1||o<0||h>1||h<0||u>1||u<0)throw new Error("LUTCubeLoader : Non normalized values not supported.");l[c+0]=255*o,l[c+1]=255*h,l[c+2]=255*u,l[c+3]=255,c+=4}}const h=new n.DataTexture;h.image.data=l,h.image.width=r,h.image.height=r*r,h.type=n.UnsignedByteType,h.magFilter=n.LinearFilter,h.minFilter=n.LinearFilter,h.wrapS=n.ClampToEdgeWrapping,h.wrapT=n.ClampToEdgeWrapping,h.generateMipmaps=!1,h.needsUpdate=!0;const u=new i.Data3DTexture;return u.image.data=l,u.image.width=r,u.image.height=r,u.image.depth=r,u.type=n.UnsignedByteType,u.magFilter=n.LinearFilter,u.minFilter=n.LinearFilter,u.wrapS=n.ClampToEdgeWrapping,u.wrapT=n.ClampToEdgeWrapping,u.wrapR=n.ClampToEdgeWrapping,u.generateMipmaps=!1,u.needsUpdate=!0,{title:t,size:r,domainMin:s,domainMax:a,texture:h,texture3D:u}}}t.LUTCubeLoader=s},18113:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(40876);let s;class a extends n.Loader{constructor(e,t={}){super(e),this.resourcePath=void 0!==t.resourcePath?t.resourcePath:""}load(e,t,r,i){const s=this,a=""===s.path?function(e,t){const r=e.indexOf(t);return-1===r?"./":e.substr(0,r)}(e,"Objects"):s.path,o=e.split(a).pop().split(".")[0],l=new n.FileLoader(this.manager);l.setPath(s.path),l.setResponseType("arraybuffer"),l.load(e,(function(r){try{t(s.parse(r,a,o))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e,t,r){s=(new i.IFFParser).parse(e);const a=new n.TextureLoader(this.manager).setPath(this.resourcePath||t).setCrossOrigin(this.crossOrigin);return new o(a).parse(r)}}class o{constructor(e){this.textureLoader=e}parse(e){return this.materials=new l(this.textureLoader).parse(),this.defaultLayerName=e,this.meshes=this.parseLayers(),{materials:this.materials,meshes:this.meshes}}parseLayers(){const e=[],t=[],r=new c,n=this;return s.layers.forEach((function(i){const s=r.parse(i.geometry,i),a=n.parseMesh(s,i);e[i.number]=a,-1===i.parent?t.push(a):e[i.parent].add(a)})),this.applyPivots(t),t}parseMesh(e,t){let r;const i=this.getMaterials(e.userData.matNames,t.geometry.type);return this.duplicateUVs(e,i),r="points"===t.geometry.type?new n.Points(e,i):"lines"===t.geometry.type?new n.LineSegments(e,i):new n.Mesh(e,i),t.name?r.name=t.name:r.name=this.defaultLayerName+"_layer_"+t.number,r.userData.pivot=t.pivot,r}applyPivots(e){e.forEach((function(e){e.traverse((function(e){const t=e.userData.pivot;if(e.position.x+=t[0],e.position.y+=t[1],e.position.z+=t[2],e.parent){const t=e.parent.userData.pivot;e.position.x-=t[0],e.position.y-=t[1],e.position.z-=t[2]}}))}))}getMaterials(e,t){const r=[],i=this;e.forEach((function(e,t){r[t]=i.getMaterialByName(e)})),"points"!==t&&"lines"!==t||r.forEach((function(e,i){const s={color:e.color};"points"===t?(s.size=.1,s.map=e.map,s.morphTargets=e.morphTargets,r[i]=new n.PointsMaterial(s)):"lines"===t&&(r[i]=new n.LineBasicMaterial(s))}));const s=r.filter(Boolean);return 1===s.length?s[0]:r}getMaterialByName(e){return this.materials.filter((function(t){return t.name===e}))[0]}duplicateUVs(e,t){let r=!1;Array.isArray(t)?t.forEach((function(e){e.aoMap&&(r=!0)})):t.aoMap&&(r=!0),r&&e.setAttribute("uv2",new n.BufferAttribute(e.attributes.uv.array,2))}}class l{constructor(e){this.textureLoader=e}parse(){const e=[];this.textures={};for(const t in s.materials)"LWO3"===s.format?e.push(this.parseMaterial(s.materials[t],t,s.textures)):"LWO2"===s.format&&e.push(this.parseMaterialLwo2(s.materials[t],t,s.textures));return e}parseMaterial(e,t,r){let n={name:t,side:this.getSide(e.attributes),flatShading:this.getSmooth(e.attributes)};const i=this.parseConnections(e.connections,e.nodes),s=this.parseTextureNodes(i.maps);this.parseAttributeImageMaps(i.attributes,r,s,e.maps);const a=this.parseAttributes(i.attributes,s);this.parseEnvMap(i,s,a),n=Object.assign(s,n),n=Object.assign(n,a);return new(this.getMaterialType(i.attributes))(n)}parseMaterialLwo2(e,t){let r={name:t,side:this.getSide(e.attributes),flatShading:this.getSmooth(e.attributes)};const i=this.parseAttributes(e.attributes,{});return r=Object.assign(r,i),new n.MeshPhongMaterial(r)}getSide(e){if(!e.side)return n.BackSide;switch(e.side){case 0:case 1:return n.BackSide;case 2:return n.FrontSide;case 3:return n.DoubleSide}}getSmooth(e){return!e.smooth||!e.smooth}parseConnections(e,t){const r={maps:{}},n=e.inputName,i=e.inputNodeName,s=e.nodeName,a=this;return n.forEach((function(e,n){if("Material"===e){const e=a.getNodeByRefName(i[n],t);r.attributes=e.attributes,r.envMap=e.fileName,r.name=i[n]}})),s.forEach((function(e,s){e===r.name&&(r.maps[n[s]]=a.getNodeByRefName(i[s],t))})),r}getNodeByRefName(e,t){for(const r in t)if(t[r].refName===e)return t[r]}parseTextureNodes(e){const t={};for(const r in e){const i=e[r],s=i.fileName;if(!s)return;const a=this.loadTexture(s);switch(void 0!==i.widthWrappingMode&&(a.wrapS=this.getWrappingType(i.widthWrappingMode)),void 0!==i.heightWrappingMode&&(a.wrapT=this.getWrappingType(i.heightWrappingMode)),r){case"Color":t.map=a;break;case"Roughness":t.roughnessMap=a,t.roughness=.5;break;case"Specular":t.specularMap=a,t.specular=16777215;break;case"Luminous":t.emissiveMap=a,t.emissive=8421504;break;case"Luminous Color":t.emissive=8421504;break;case"Metallic":t.metalnessMap=a,t.metalness=.5;break;case"Transparency":case"Alpha":t.alphaMap=a,t.transparent=!0;break;case"Normal":t.normalMap=a,void 0!==i.amplitude&&(t.normalScale=new n.Vector2(i.amplitude,i.amplitude));break;case"Bump":t.bumpMap=a}}return t.roughnessMap&&t.specularMap&&delete t.specularMap,t}parseAttributeImageMaps(e,t,r){for(const n in e){const i=e[n];if(i.maps){const e=i.maps[0],s=this.getTexturePathByIndex(e.imageIndex,t);if(!s)return;const a=this.loadTexture(s);switch(void 0!==e.wrap&&(a.wrapS=this.getWrappingType(e.wrap.w)),void 0!==e.wrap&&(a.wrapT=this.getWrappingType(e.wrap.h)),n){case"Color":r.map=a;break;case"Diffuse":r.aoMap=a;break;case"Roughness":r.roughnessMap=a,r.roughness=1;break;case"Specular":r.specularMap=a,r.specular=16777215;break;case"Luminosity":r.emissiveMap=a,r.emissive=8421504;break;case"Metallic":r.metalnessMap=a,r.metalness=1;break;case"Transparency":case"Alpha":r.alphaMap=a,r.transparent=!0;break;case"Normal":r.normalMap=a;break;case"Bump":r.bumpMap=a}}}}parseAttributes(e,t){const r={};return e.Color&&!t.map?r.color=(new n.Color).fromArray(e.Color.value):r.color=new n.Color,e.Transparency&&0!==e.Transparency.value&&(r.opacity=1-e.Transparency.value,r.transparent=!0),e["Bump Height"]&&(r.bumpScale=.1*e["Bump Height"].value),e["Refraction Index"]&&(r.refractionRatio=1/e["Refraction Index"].value),this.parsePhysicalAttributes(r,e,t),this.parseStandardAttributes(r,e,t),this.parsePhongAttributes(r,e,t),r}parsePhysicalAttributes(e,t){t.Clearcoat&&t.Clearcoat.value>0&&(e.clearcoat=t.Clearcoat.value,t["Clearcoat Gloss"]&&(e.clearcoatRoughness=.5*(1-t["Clearcoat Gloss"].value)))}parseStandardAttributes(e,t,r){t.Luminous&&(e.emissiveIntensity=t.Luminous.value,t["Luminous Color"]&&!r.emissive?e.emissive=(new n.Color).fromArray(t["Luminous Color"].value):e.emissive=new n.Color(8421504)),t.Roughness&&!r.roughnessMap&&(e.roughness=t.Roughness.value),t.Metallic&&!r.metalnessMap&&(e.metalness=t.Metallic.value)}parsePhongAttributes(e,t,r){t.Diffuse&&e.color.multiplyScalar(t.Diffuse.value),t.Reflection&&(e.reflectivity=t.Reflection.value,e.combine=n.AddOperation),t.Luminosity&&(e.emissiveIntensity=t.Luminosity.value,r.emissiveMap||r.map?e.emissive=new n.Color(8421504):e.emissive=e.color),t.Roughness||!t.Specular||r.specularMap||(t["Color Highlight"]?e.specular=(new n.Color).setScalar(t.Specular.value).lerp(e.color.clone().multiplyScalar(t.Specular.value),t["Color Highlight"].value):e.specular=(new n.Color).setScalar(t.Specular.value)),e.specular&&t.Glossiness&&(e.shininess=7+Math.pow(2,12*t.Glossiness.value+2))}parseEnvMap(e,t,r){if(e.envMap){const i=this.loadTexture(e.envMap);r.transparent&&r.opacity<.999?(i.mapping=n.EquirectangularRefractionMapping,void 0!==r.reflectivity&&(delete r.reflectivity,delete r.combine),void 0!==r.metalness&&delete r.metalness):i.mapping=n.EquirectangularReflectionMapping,t.envMap=i}}getTexturePathByIndex(e){let t="";return s.textures?(s.textures.forEach((function(r){r.index===e&&(t=r.fileName)})),t):t}loadTexture(e){if(!e)return null;return this.textureLoader.load(e,void 0,void 0,(function(){console.warn("LWOLoader: non-standard resource hierarchy. Use `resourcePath` parameter to specify root content directory.")}))}getWrappingType(e){switch(e){case 0:return console.warn('LWOLoader: "Reset" texture wrapping type is not supported in three.js'),n.ClampToEdgeWrapping;case 1:return n.RepeatWrapping;case 2:return n.MirroredRepeatWrapping;case 3:return n.ClampToEdgeWrapping}}getMaterialType(e){return e.Clearcoat&&e.Clearcoat.value>0?n.MeshPhysicalMaterial:e.Roughness?n.MeshStandardMaterial:n.MeshPhongMaterial}}class c{parse(e,t){const r=new n.BufferGeometry;r.setAttribute("position",new n.Float32BufferAttribute(e.points,3));const i=this.splitIndices(e.vertexIndices,e.polygonDimensions);return r.setIndex(i),this.parseGroups(r,e),r.computeVertexNormals(),this.parseUVs(r,t,i),this.parseMorphTargets(r,t,i),r.translate(-t.pivot[0],-t.pivot[1],-t.pivot[2]),r}splitIndices(e,t){const r=[];let n=0;return t.forEach((function(t){if(t<4)for(let i=0;i4){for(let i=1;i0){let t;l[r[h]]?t=l[r[h]]:(t=o,l[r[h]]=o,n[o]=r[h]),e.addGroup(u,d,t)}e.userData.matNames=n}splitMaterialIndices(e,t){const r=[];return e.forEach((function(e,n){if(e<=3)r.push(t[2*n],t[2*n+1]);else if(4===e)r.push(t[2*n],t[2*n+1],t[2*n],t[2*n+1]);else for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(47132);class s extends n.Loader{setQuality(e){this._quality=e}load(e,t,r,s){const a=this._quality||1,o=new n.CanvasTexture;o.minFilter=n.NearestFilter;const l=new n.FileLoader(this.manager);return l.setPath(this.path),l.setWithCredentials(this.withCredentials),l.load(e,(function(e){const r=JSON.parse(e),n=document.createElement("div");n.style.width=r.w+"px",n.style.height=r.h+"px",document.body.appendChild(n);const s=i.loadAnimation({container:n,animType:"canvas",loop:!0,autoplay:!0,animationData:r,rendererSettings:{dpr:a}});o.animation=s,o.image=s.container,s.addEventListener("enterFrame",(function(){o.needsUpdate=!0})),n.style.display="none",void 0!==t&&t(o)}),r,s),o}}t.LottieLoader=s},28057:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=[[-.525731,0,.850651],[-.442863,.238856,.864188],[-.295242,0,.955423],[-.309017,.5,.809017],[-.16246,.262866,.951056],[0,0,1],[0,.850651,.525731],[-.147621,.716567,.681718],[.147621,.716567,.681718],[0,.525731,.850651],[.309017,.5,.809017],[.525731,0,.850651],[.295242,0,.955423],[.442863,.238856,.864188],[.16246,.262866,.951056],[-.681718,.147621,.716567],[-.809017,.309017,.5],[-.587785,.425325,.688191],[-.850651,.525731,0],[-.864188,.442863,.238856],[-.716567,.681718,.147621],[-.688191,.587785,.425325],[-.5,.809017,.309017],[-.238856,.864188,.442863],[-.425325,.688191,.587785],[-.716567,.681718,-.147621],[-.5,.809017,-.309017],[-.525731,.850651,0],[0,.850651,-.525731],[-.238856,.864188,-.442863],[0,.955423,-.295242],[-.262866,.951056,-.16246],[0,1,0],[0,.955423,.295242],[-.262866,.951056,.16246],[.238856,.864188,.442863],[.262866,.951056,.16246],[.5,.809017,.309017],[.238856,.864188,-.442863],[.262866,.951056,-.16246],[.5,.809017,-.309017],[.850651,.525731,0],[.716567,.681718,.147621],[.716567,.681718,-.147621],[.525731,.850651,0],[.425325,.688191,.587785],[.864188,.442863,.238856],[.688191,.587785,.425325],[.809017,.309017,.5],[.681718,.147621,.716567],[.587785,.425325,.688191],[.955423,.295242,0],[1,0,0],[.951056,.16246,.262866],[.850651,-.525731,0],[.955423,-.295242,0],[.864188,-.442863,.238856],[.951056,-.16246,.262866],[.809017,-.309017,.5],[.681718,-.147621,.716567],[.850651,0,.525731],[.864188,.442863,-.238856],[.809017,.309017,-.5],[.951056,.16246,-.262866],[.525731,0,-.850651],[.681718,.147621,-.716567],[.681718,-.147621,-.716567],[.850651,0,-.525731],[.809017,-.309017,-.5],[.864188,-.442863,-.238856],[.951056,-.16246,-.262866],[.147621,.716567,-.681718],[.309017,.5,-.809017],[.425325,.688191,-.587785],[.442863,.238856,-.864188],[.587785,.425325,-.688191],[.688191,.587785,-.425325],[-.147621,.716567,-.681718],[-.309017,.5,-.809017],[0,.525731,-.850651],[-.525731,0,-.850651],[-.442863,.238856,-.864188],[-.295242,0,-.955423],[-.16246,.262866,-.951056],[0,0,-1],[.295242,0,-.955423],[.16246,.262866,-.951056],[-.442863,-.238856,-.864188],[-.309017,-.5,-.809017],[-.16246,-.262866,-.951056],[0,-.850651,-.525731],[-.147621,-.716567,-.681718],[.147621,-.716567,-.681718],[0,-.525731,-.850651],[.309017,-.5,-.809017],[.442863,-.238856,-.864188],[.16246,-.262866,-.951056],[.238856,-.864188,-.442863],[.5,-.809017,-.309017],[.425325,-.688191,-.587785],[.716567,-.681718,-.147621],[.688191,-.587785,-.425325],[.587785,-.425325,-.688191],[0,-.955423,-.295242],[0,-1,0],[.262866,-.951056,-.16246],[0,-.850651,.525731],[0,-.955423,.295242],[.238856,-.864188,.442863],[.262866,-.951056,.16246],[.5,-.809017,.309017],[.716567,-.681718,.147621],[.525731,-.850651,0],[-.238856,-.864188,-.442863],[-.5,-.809017,-.309017],[-.262866,-.951056,-.16246],[-.850651,-.525731,0],[-.716567,-.681718,-.147621],[-.716567,-.681718,.147621],[-.525731,-.850651,0],[-.5,-.809017,.309017],[-.238856,-.864188,.442863],[-.262866,-.951056,.16246],[-.864188,-.442863,.238856],[-.809017,-.309017,.5],[-.688191,-.587785,.425325],[-.681718,-.147621,.716567],[-.442863,-.238856,.864188],[-.587785,-.425325,.688191],[-.309017,-.5,.809017],[-.147621,-.716567,.681718],[-.425325,-.688191,.587785],[-.16246,-.262866,.951056],[.442863,-.238856,.864188],[.16246,-.262866,.951056],[.309017,-.5,.809017],[.147621,-.716567,.681718],[0,-.525731,.850651],[.425325,-.688191,.587785],[.587785,-.425325,.688191],[.688191,-.587785,.425325],[-.955423,.295242,0],[-.951056,.16246,.262866],[-1,0,0],[-.850651,0,.525731],[-.955423,-.295242,0],[-.951056,-.16246,.262866],[-.864188,.442863,-.238856],[-.951056,.16246,-.262866],[-.809017,.309017,-.5],[-.864188,-.442863,-.238856],[-.951056,-.16246,-.262866],[-.809017,-.309017,-.5],[-.681718,.147621,-.716567],[-.681718,-.147621,-.716567],[-.850651,0,-.525731],[-.688191,.587785,-.425325],[-.587785,.425325,-.688191],[-.425325,.688191,-.587785],[-.425325,-.688191,-.587785],[-.587785,-.425325,-.688191],[-.688191,-.587785,-.425325]];class s extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){const t=new DataView(e),r={},s=["ident","version","skinwidth","skinheight","framesize","num_skins","num_vertices","num_st","num_tris","num_glcmds","num_frames","offset_skins","offset_st","offset_tris","offset_frames","offset_glcmds","offset_end"];for(let n=0;n0){const r=[];for(let t=0,n=c.length;t0){const r=[];for(let t=0,n=c.length;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=new n.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.load(e,(function(e){t(s.parse(e))}),r,i)}parse(e){const t=new DataView(e),r=t.getUint32(0),i=t.getUint32(4);let s=8;const a=new Float32Array(r),o=new Float32Array(r*r).fill(0);for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(2545),s=r(62717);class a extends n.Loader{constructor(e){super(e),this.loader=new n.FileLoader(this.manager),this.parser=null,this.meshBuilder=new l(this.manager),this.animationBuilder=new u}setAnimationPath(e){return this.animationPath=e,this}load(e,t,r,i){const s=this.meshBuilder.setCrossOrigin(this.crossOrigin);let a;a=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:n.LoaderUtils.extractUrlBase(e);const o=this._extractExtension(e).toLowerCase();"pmd"===o||"pmx"===o?this["pmd"===o?"loadPMD":"loadPMX"](e,(function(e){t(s.build(e,a,r,i))}),r,i):i&&i(new Error("THREE.MMDLoader: Unknown model file extension ."+o+"."))}loadAnimation(e,t,r,n,i){const s=this.animationBuilder;this.loadVMD(e,(function(e){r(t.isCamera?s.buildCameraAnimation(e):s.build(e,t))}),n,i)}loadWithAnimation(e,t,r,n,i){const s=this;this.load(e,(function(e){s.loadAnimation(t,e,(function(t){r({mesh:e,animation:t})}),n,i)}),n,i)}loadPMD(e,t,r,n){const i=this._getParser();this.loader.setMimeType(void 0).setPath(this.path).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials).load(e,(function(e){t(i.parsePmd(e,!0))}),r,n)}loadPMX(e,t,r,n){const i=this._getParser();this.loader.setMimeType(void 0).setPath(this.path).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials).load(e,(function(e){t(i.parsePmx(e,!0))}),r,n)}loadVMD(e,t,r,n){const i=Array.isArray(e)?e:[e],s=[],a=i.length,o=this._getParser();this.loader.setMimeType(void 0).setPath(this.animationPath).setResponseType("arraybuffer").setRequestHeader(this.requestHeader).setWithCredentials(this.withCredentials);for(let l=0,c=i.length;l=e?s.skinIndices[e]:0);for(let e=0;e<4;e++)c.push(s.skinWeights.length-1>=e?s.skinWeights[e]:0)}for(let n=0;n=0&&(s.limitation=new n.Vector3(1,0,0)),r.links.push(s)}d.push(r)}else for(let x=0;x0,o.morphTargets=t.morphTargets.length>0,o.fog=!0,o.blending=n.CustomBlending,o.blendSrc=n.SrcAlphaFactor,o.blendDst=n.OneMinusSrcAlphaFactor,o.blendSrcAlpha=n.SrcAlphaFactor,o.blendDstAlpha=n.DstAlphaFactor,"pmx"===e.metadata.format&&1==(1&a.flag)?o.side=n.DoubleSide:o.side=1===o.opacity?n.FrontSide:n.DoubleSide,"pmd"===e.metadata.format){if(a.fileName){const e=a.fileName.split("*");if(o.map=this._loadTexture(e[0],i),e.length>1){const t=e[1].slice(-4).toLowerCase();o.envMap=this._loadTexture(e[1],i),o.combine=".sph"===t?n.MultiplyOperation:n.AddOperation}}const t=-1===a.toonIndex?"toon00.bmp":e.toonTextures[a.toonIndex].fileName;o.gradientMap=this._loadTexture(t,i,{isToonTexture:!0,isDefaultToonTexture:this._isDefaultToonTexture(t)}),o.userData.outlineParameters={thickness:1===a.edgeFlag?.003:0,color:[0,0,0],alpha:1,visible:1===a.edgeFlag}}else{let t,r;-1!==a.textureIndex&&(o.map=this._loadTexture(e.textures[a.textureIndex],i)),-1===a.envTextureIndex||1!==a.envFlag&&2!=a.envFlag||(o.envMap=this._loadTexture(e.textures[a.envTextureIndex],i),o.combine=1===a.envFlag?n.MultiplyOperation:n.AddOperation),-1===a.toonIndex||0!==a.toonFlag?(t="toon"+("0"+(a.toonIndex+1)).slice(-2)+".bmp",r=!0):(t=e.textures[a.toonIndex],r=!1),o.gradientMap=this._loadTexture(t,i,{isToonTexture:!0,isDefaultToonTexture:r}),o.userData.outlineParameters={thickness:a.edgeSize/300,color:a.edgeColor.slice(0,3),alpha:a.edgeColor[3],visible:0!=(16&a.flag)&&a.edgeSize>0}}void 0!==o.map&&(o.transparent||this._checkImageTransparency(o.map,t,s),o.emissive.multiplyScalar(.2)),r.push(new n.MeshToonMaterial(o))}if("pmx"===e.metadata.format){let t=function(e,t){for(let r=0,n=e.length;r2){r=r.slice(),n=n.slice(),i=i.slice();const e=n.length/r.length,t=i.length/r.length;let s=1;for(let a=2,o=r.length;as){r[s]=r[a];for(let t=0;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=""===this.path?n.LoaderUtils.extractUrlBase(e):this.path,o=new n.FileLoader(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,(function(r){try{t(s.parse(r,a))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}setMaterialOptions(e){return this.materialOptions=e,this}parse(e,t){const r=e.split("\n");let n={};const i=/\s+/,a={};for(let s=0;s=0?e.substring(0,t):e;o=o.toLowerCase();let l=t>=0?e.substring(t+1):"";if(l=l.trim(),"newmtl"===o)n={name:l},a[l]=n;else if("ka"===o||"kd"===o||"ks"===o||"ke"===o){const e=l.split(i,3);n[o]=[parseFloat(e[0]),parseFloat(e[1]),parseFloat(e[2])]}else n[o]=l}const o=new s(this.resourcePath||t,this.materialOptions);return o.setCrossOrigin(this.crossOrigin),o.setManager(this.manager),o.setMaterials(a),o}}class s{constructor(e="",t={}){this.baseUrl=e,this.options=t,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.crossOrigin="anonymous",this.side=void 0!==this.options.side?this.options.side:n.FrontSide,this.wrap=void 0!==this.options.wrap?this.options.wrap:n.RepeatWrapping}setCrossOrigin(e){return this.crossOrigin=e,this}setManager(e){this.manager=e}setMaterials(e){this.materialsInfo=this.convert(e),this.materials={},this.materialsArray=[],this.nameLookup={}}convert(e){if(!this.options)return e;const t={};for(const r in e){const n=e[r],i={};t[r]=i;for(const e in n){let t=!0,r=n[e];const s=e.toLowerCase();switch(s){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(r=[r[0]/255,r[1]/255,r[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===r[0]&&0===r[1]&&0===r[2]&&(t=!1)}t&&(i[s]=r)}}return t}preload(){for(const e in this.materialsInfo)this.create(e)}getIndex(e){return this.nameLookup[e]}getAsArray(){let e=0;for(const t in this.materialsInfo)this.materialsArray[e]=this.create(t),this.nameLookup[t]=e,e++;return this.materialsArray}create(e){return void 0===this.materials[e]&&this.createMaterial_(e),this.materials[e]}createMaterial_(e){const t=this,r=this.materialsInfo[e],i={name:e,side:this.side};function s(e,r){if(i[e])return;const n=t.getTextureParams(r,i),s=t.loadTexture((a=t.baseUrl,"string"!=typeof(o=n.url)||""===o?"":/^https?:\/\//i.test(o)?o:a+o));var a,o;s.repeat.copy(n.scale),s.offset.copy(n.offset),s.wrapS=t.wrap,s.wrapT=t.wrap,i[e]=s}for(const a in r){const e=r[a];let t;if(""!==e)switch(a.toLowerCase()){case"kd":i.color=(new n.Color).fromArray(e);break;case"ks":i.specular=(new n.Color).fromArray(e);break;case"ke":i.emissive=(new n.Color).fromArray(e);break;case"map_kd":s("map",e);break;case"map_ks":s("specularMap",e);break;case"map_ke":s("emissiveMap",e);break;case"norm":s("normalMap",e);break;case"map_bump":case"bump":s("bumpMap",e);break;case"map_d":s("alphaMap",e),i.transparent=!0;break;case"ns":i.shininess=parseFloat(e);break;case"d":t=parseFloat(e),t<1&&(i.opacity=t,i.transparent=!0);break;case"tr":t=parseFloat(e),this.options&&this.options.invertTrProperty&&(t=1-t),t>0&&(i.opacity=1-t,i.transparent=!0)}}return this.materials[e]=new n.MeshPhongMaterial(i),this.materials[e]}getTextureParams(e,t){const r={scale:new n.Vector2(1,1),offset:new n.Vector2(0,0)},i=e.split(/\s+/);let s;return s=i.indexOf("-bm"),s>=0&&(t.bumpScale=parseFloat(i[s+1]),i.splice(s,2)),s=i.indexOf("-s"),s>=0&&(r.scale.set(parseFloat(i[s+1]),parseFloat(i[s+2])),i.splice(s,4)),s=i.indexOf("-o"),s>=0&&(r.offset.set(parseFloat(i[s+1]),parseFloat(i[s+2])),i.splice(s,4)),r.url=i.join(" ").trim(),r}loadTexture(e,t,r,i,s){const a=void 0!==this.manager?this.manager:n.DefaultLoadingManager;let o=a.getHandler(e);null===o&&(o=new n.TextureLoader(a)),o.setCrossOrigin&&o.setCrossOrigin(this.crossOrigin);const l=o.load(e,r,i,s);return void 0!==t&&(l.mapping=t),l}}t.MTLLoader=i},78798:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(8083),s=r(61350);class a extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){let t=e,r=0;const a=new Int8Array(new Int16Array([1]).buffer)[0]>0,l={};const c=function(e,n){null==n&&(n=1);let i=1,s=Uint8Array;switch(e){case"uchar":break;case"schar":s=Int8Array;break;case"ushort":s=Uint16Array,i=2;break;case"sshort":s=Int16Array,i=2;break;case"uint":s=Uint32Array,i=4;break;case"sint":s=Int32Array,i=4;break;case"float":s=Float32Array,i=4;break;case"complex":case"double":s=Float64Array,i=8}let o=new s(t.slice(r,r+=n*i));return true!=a&&(o=function(e,t){const r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);for(let n=0;ni;e--,i++){const t=r[i];r[i]=r[e],r[e]=t}return e}(o,i)),1==n?o[0]:o}("uchar",e.byteLength),h=c.length;let u,d=null,p=0;for(u=1;u13)&&32!==n?i+=String.fromCharCode(n):(""!==i&&(o[c]=h(i,a),c++),i="");return""!==i&&(o[c]=h(i,a),c++),o}(t);else if("raw"===l.encoding){const e=new Uint8Array(t.length);for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=/^[og]\s*(.+)?/,s=/^mtllib /,a=/^usemtl /,o=/^usemap /,l=new n.Vector3,c=new n.Vector3,h=new n.Vector3,u=new n.Vector3,d=new n.Vector3;function p(){const e={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materials:{},materialLibraries:[],startObject:function(e,t){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=e,void(this.object.fromDeclaration=!1!==t);const r=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:e||"",fromDeclaration:!1!==t,geometry:{vertices:[],normals:[],colors:[],uvs:[],hasUVIndices:!1},materials:[],smooth:!0,startMaterial:function(e,t){const r=this._finalize(!1);r&&(r.inherited||r.groupCount<=0)&&this.materials.splice(r.index,1);const n={index:this.materials.length,name:e||"",mtllib:Array.isArray(t)&&t.length>0?t[t.length-1]:"",smooth:void 0!==r?r.smooth:this.smooth,groupStart:void 0!==r?r.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(e){const t={index:"number"==typeof e?e:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return t.clone=this.clone.bind(t),t}};return this.materials.push(n),n},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(e){const t=this.currentMaterial();if(t&&-1===t.groupEnd&&(t.groupEnd=this.geometry.vertices.length/3,t.groupCount=t.groupEnd-t.groupStart,t.inherited=!1),e&&this.materials.length>1)for(let r=this.materials.length-1;r>=0;r--)this.materials[r].groupCount<=0&&this.materials.splice(r,1);return e&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),t}},r&&r.name&&"function"==typeof r.clone){const e=r.clone(0);e.inherited=!0,this.object.materials.push(e)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(e,t){const r=parseInt(e,10);return 3*(r>=0?r-1:r+t/3)},parseNormalIndex:function(e,t){const r=parseInt(e,10);return 3*(r>=0?r-1:r+t/3)},parseUVIndex:function(e,t){const r=parseInt(e,10);return 2*(r>=0?r-1:r+t/2)},addVertex:function(e,t,r){const n=this.vertices,i=this.object.geometry.vertices;i.push(n[e+0],n[e+1],n[e+2]),i.push(n[t+0],n[t+1],n[t+2]),i.push(n[r+0],n[r+1],n[r+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,r){const n=this.normals,i=this.object.geometry.normals;i.push(n[e+0],n[e+1],n[e+2]),i.push(n[t+0],n[t+1],n[t+2]),i.push(n[r+0],n[r+1],n[r+2])},addFaceNormal:function(e,t,r){const n=this.vertices,i=this.object.geometry.normals;l.fromArray(n,e),c.fromArray(n,t),h.fromArray(n,r),d.subVectors(h,c),u.subVectors(l,c),d.cross(u),d.normalize(),i.push(d.x,d.y,d.z),i.push(d.x,d.y,d.z),i.push(d.x,d.y,d.z)},addColor:function(e,t,r){const n=this.colors,i=this.object.geometry.colors;void 0!==n[e]&&i.push(n[e+0],n[e+1],n[e+2]),void 0!==n[t]&&i.push(n[t+0],n[t+1],n[t+2]),void 0!==n[r]&&i.push(n[r+0],n[r+1],n[r+2])},addUV:function(e,t,r){const n=this.uvs,i=this.object.geometry.uvs;i.push(n[e+0],n[e+1]),i.push(n[t+0],n[t+1]),i.push(n[r+0],n[r+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,r,n,i,s,a,o,l){const c=this.vertices.length;let h=this.parseVertexIndex(e,c),u=this.parseVertexIndex(t,c),d=this.parseVertexIndex(r,c);if(this.addVertex(h,u,d),this.addColor(h,u,d),void 0!==a&&""!==a){const e=this.normals.length;h=this.parseNormalIndex(a,e),u=this.parseNormalIndex(o,e),d=this.parseNormalIndex(l,e),this.addNormal(h,u,d)}else this.addFaceNormal(h,u,d);if(void 0!==n&&""!==n){const e=this.uvs.length;h=this.parseUVIndex(n,e),u=this.parseUVIndex(i,e),d=this.parseUVIndex(s,e),this.addUV(h,u,d),this.object.geometry.hasUVIndices=!0}else this.addDefaultUV()},addPointGeometry:function(e){this.object.geometry.type="Points";const t=this.vertices.length;for(let r=0,n=e.length;r=7?t.colors.push(parseFloat(e[4]),parseFloat(e[5]),parseFloat(e[6])):t.colors.push(void 0,void 0,void 0);break;case"vn":t.normals.push(parseFloat(e[1]),parseFloat(e[2]),parseFloat(e[3]));break;case"vt":t.uvs.push(parseFloat(e[1]),parseFloat(e[2]))}}else if("f"===c){const e=l.substr(1).trim().split(/\s+/),r=[];for(let t=0,i=e.length;t0){const e=n.split("/");r.push(e)}}const n=r[0];for(let i=1,s=r.length-1;i1){const e=u[1].trim().toLowerCase();t.object.smooth="0"!==e&&"off"!==e}else t.object.smooth=!0;const e=t.object.currentMaterial();e&&(e.smooth=t.object.smooth)}else{if("\0"===l)continue;console.warn('THREE.OBJLoader: Unexpected line: "'+l+'"')}t.finalize();const f=new n.Group;f.materialLibraries=[].concat(t.materialLibraries);if(!0===!(1===t.objects.length&&0===t.objects[0].geometry.vertices.length))for(let i=0,s=t.objects.length;i0&&c.setAttribute("normal",new n.Float32BufferAttribute(r.normals,3)),r.colors.length>0&&(l=!0,c.setAttribute("color",new n.Float32BufferAttribute(r.colors,3))),!0===r.hasUVIndices&&c.setAttribute("uv",new n.Float32BufferAttribute(r.uvs,2));const h=[];for(let i=0,d=s.length;i1){for(let e=0,t=s.length;e0){const e=new n.PointsMaterial({size:1,sizeAttenuation:!1}),r=new n.BufferGeometry;r.setAttribute("position",new n.Float32BufferAttribute(t.vertices,3)),t.colors.length>0&&void 0!==t.colors[0]&&(r.setAttribute("color",new n.Float32BufferAttribute(t.colors,3)),e.vertexColors=!0);const i=new n.Points(r,e);f.add(i)}return f}}t.OBJLoader=f},26386:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e),this.littleEndian=!0}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r,e))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e,t){const r=n.LoaderUtils.decodeText(new Uint8Array(e)),i=function(e){const t={},r=e.search(/[\r\n]DATA\s(\S*)\s/i),n=/[\r\n]DATA\s(\S*)\s/i.exec(e.substr(r-1));if(t.data=n[1],t.headerLen=n[0].length+r,t.str=e.substr(0,t.headerLen),t.str=t.str.replace(/\#.*/gi,""),t.version=/VERSION (.*)/i.exec(t.str),t.fields=/FIELDS (.*)/i.exec(t.str),t.size=/SIZE (.*)/i.exec(t.str),t.type=/TYPE (.*)/i.exec(t.str),t.count=/COUNT (.*)/i.exec(t.str),t.width=/WIDTH (.*)/i.exec(t.str),t.height=/HEIGHT (.*)/i.exec(t.str),t.viewpoint=/VIEWPOINT (.*)/i.exec(t.str),t.points=/POINTS (.*)/i.exec(t.str),null!==t.version&&(t.version=parseFloat(t.version[1])),null!==t.fields&&(t.fields=t.fields[1].split(" ")),null!==t.type&&(t.type=t.type[1].split(" ")),null!==t.width&&(t.width=parseInt(t.width[1])),null!==t.height&&(t.height=parseInt(t.height[1])),null!==t.viewpoint&&(t.viewpoint=t.viewpoint[1]),null!==t.points&&(t.points=parseInt(t.points[1],10)),null===t.points&&(t.points=t.width*t.height),null!==t.size&&(t.size=t.size[1].split(" ").map((function(e){return parseInt(e,10)}))),null!==t.count)t.count=t.count[1].split(" ").map((function(e){return parseInt(e,10)}));else{t.count=[];for(let e=0,r=t.fields.length;e>16&255,i=t>>8&255,s=t>>0&255;o.push(r/255,i/255,s/255)}void 0!==e.normal_x&&(a.push(parseFloat(n[e.normal_x])),a.push(parseFloat(n[e.normal_y])),a.push(parseFloat(n[e.normal_z])))}}if("binary_compressed"===i.data){const t=new Uint32Array(e.slice(i.headerLen,i.headerLen+8)),r=t[0],n=t[1],l=function(e,t){const r=e.length,n=new Uint8Array(t);let i,s,a,o=0,l=0;do{if(i=e[o++],i<32){if(i++,l+i>t)throw new Error("Output buffer is not large enough");if(o+i>r)throw new Error("Invalid compressed data");do{n[l++]=e[o++]}while(--i)}else{if(s=i>>5,a=l-((31&i)<<8)-1,o>=r)throw new Error("Invalid compressed data");if(7===s&&(s+=e[o++],o>=r))throw new Error("Invalid compressed data");if(a-=e[o++],l+s+2>t)throw new Error("Output buffer is not large enough");if(a<0)throw new Error("Invalid compressed data");if(a>=l)throw new Error("Invalid compressed data");do{n[l++]=n[a++]}while(2+--s)}}while(o0&&l.setAttribute("position",new n.Float32BufferAttribute(s,3)),a.length>0&&l.setAttribute("normal",new n.Float32BufferAttribute(a,3)),o.length>0&&l.setAttribute("color",new n.Float32BufferAttribute(o,3)),l.computeBoundingSphere();const c=new n.PointsMaterial({size:.005});o.length>0?c.vertexColors=!0:c.color.setHex(16777215*Math.random());const h=new n.Points(l,c);let u=t.split("").reverse().join("");return u=/([^\/]*)/.exec(u),u=u[1].split("").reverse().join(""),h.name=u,h}}t.PCDLoader=i},67071:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){function t(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function r(e,t,r,n){const i=parseInt(c[n].substr(e,t));if(i){const e=(s=r,l=i,"s"+Math.min(s,l)+"e"+Math.max(s,l));void 0===o[e]&&(a.push([r-1,i-1,1]),o[e]=a.length-1)}var s,l}const i={h:[255,255,255],he:[217,255,255],li:[204,128,255],be:[194,255,0],b:[255,181,181],c:[144,144,144],n:[48,80,248],o:[255,13,13],f:[144,224,80],ne:[179,227,245],na:[171,92,242],mg:[138,255,0],al:[191,166,166],si:[240,200,160],p:[255,128,0],s:[255,255,48],cl:[31,240,31],ar:[128,209,227],k:[143,64,212],ca:[61,255,0],sc:[230,230,230],ti:[191,194,199],v:[166,166,171],cr:[138,153,199],mn:[156,122,199],fe:[224,102,51],co:[240,144,160],ni:[80,208,80],cu:[200,128,51],zn:[125,128,176],ga:[194,143,143],ge:[102,143,143],as:[189,128,227],se:[255,161,0],br:[166,41,41],kr:[92,184,209],rb:[112,46,176],sr:[0,255,0],y:[148,255,255],zr:[148,224,224],nb:[115,194,201],mo:[84,181,181],tc:[59,158,158],ru:[36,143,143],rh:[10,125,140],pd:[0,105,133],ag:[192,192,192],cd:[255,217,143],in:[166,117,115],sn:[102,128,128],sb:[158,99,181],te:[212,122,0],i:[148,0,148],xe:[66,158,176],cs:[87,23,143],ba:[0,201,0],la:[112,212,255],ce:[255,255,199],pr:[217,255,199],nd:[199,255,199],pm:[163,255,199],sm:[143,255,199],eu:[97,255,199],gd:[69,255,199],tb:[48,255,199],dy:[31,255,199],ho:[0,255,156],er:[0,230,117],tm:[0,212,82],yb:[0,191,56],lu:[0,171,36],hf:[77,194,255],ta:[77,166,255],w:[33,148,214],re:[38,125,171],os:[38,102,150],ir:[23,84,135],pt:[208,208,224],au:[255,209,35],hg:[184,184,208],tl:[166,84,77],pb:[87,89,97],bi:[158,79,181],po:[171,92,0],at:[117,79,69],rn:[66,130,150],fr:[66,0,102],ra:[0,125,0],ac:[112,171,250],th:[0,186,255],pa:[0,161,255],u:[0,143,255],np:[0,128,255],pu:[0,107,255],am:[84,92,242],cm:[120,92,227],bk:[138,79,227],cf:[161,54,212],es:[179,31,212],fm:[179,31,186],md:[179,13,166],no:[189,13,135],lr:[199,0,102],rf:[204,0,89],db:[209,0,79],sg:[217,0,69],bh:[224,0,56],hs:[230,0,46],mt:[235,0,38],ds:[235,0,38],rg:[235,0,38],cn:[235,0,38],uut:[235,0,38],uuq:[235,0,38],uup:[235,0,38],uuh:[235,0,38],uus:[235,0,38],uuo:[235,0,38]},s=[],a=[],o={},l={},c=e.split("\n");for(let n=0,u=c.length;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e),this.propertyNameMapping={}}load(e,t,r,i){const s=this,a=new n.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}setPropertyNameMapping(e){this.propertyNameMapping=e}parse(e){function t(e){let t="",r=0;const n=/ply([\s\S]*)end_header\r?\n/.exec(e);null!==n&&(t=n[1],r=new Blob([n[0]]).size);const i={comments:[],elements:[],headerLength:r,objInfo:""},s=t.split("\n");let a;function o(e,t){const r={type:e[0]};return"list"===r.type?(r.name=e[3],r.countType=e[1],r.itemType=e[2]):r.name=e[1],r.name in t&&(r.name=t[r.name]),r}for(let l=0;l=t.elements[c].count&&(c++,h=0);const n=i(t.elements[c].properties,e);o(r,t.elements[c].name,n),h++}return a(r)}function a(e){let t=new n.BufferGeometry;return e.indices.length>0&&t.setIndex(e.indices),t.setAttribute("position",new n.Float32BufferAttribute(e.vertices,3)),e.normals.length>0&&t.setAttribute("normal",new n.Float32BufferAttribute(e.normals,3)),e.uvs.length>0&&t.setAttribute("uv",new n.Float32BufferAttribute(e.uvs,2)),e.colors.length>0&&t.setAttribute("color",new n.Float32BufferAttribute(e.colors,3)),e.faceVertexUvs.length>0&&(t=t.toNonIndexed(),t.setAttribute("uv",new n.Float32BufferAttribute(e.faceVertexUvs,2))),t.computeBoundingSphere(),t}function o(e,t,r){if("vertex"===t)e.vertices.push(r.x,r.y,r.z),"nx"in r&&"ny"in r&&"nz"in r&&e.normals.push(r.nx,r.ny,r.nz),"s"in r&&"t"in r&&e.uvs.push(r.s,r.t),"red"in r&&"green"in r&&"blue"in r&&e.colors.push(r.red/255,r.green/255,r.blue/255);else if("face"===t){const t=r.vertex_indices||r.vertex_index,n=r.texcoord;3===t.length?(e.indices.push(t[0],t[1],t[2]),n&&6===n.length&&(e.faceVertexUvs.push(n[0],n[1]),e.faceVertexUvs.push(n[2],n[3]),e.faceVertexUvs.push(n[4],n[5]))):4===t.length&&(e.indices.push(t[0],t[1],t[3]),e.indices.push(t[1],t[2],t[3]))}}function l(e,t,r,n){switch(r){case"int8":case"char":return[e.getInt8(t),1];case"uint8":case"uchar":return[e.getUint8(t),1];case"int16":case"short":return[e.getInt16(t,n),2];case"uint16":case"ushort":return[e.getUint16(t,n),2];case"int32":case"int":return[e.getInt32(t,n),4];case"uint32":case"uint":return[e.getUint32(t,n),4];case"float32":case"float":return[e.getFloat32(t,n),4];case"float64":case"double":return[e.getFloat64(t,n),8]}}function c(e,t,r,n){const i={};let s,a=0;for(let o=0;o{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);let i=null;function s(){if(null===i){const e=new ArrayBuffer(2),t=new Uint8Array(e),r=new Uint16Array(e);t[0]=170,t[1]=187,i=43707===r[0]}return i}const a=[null,Float32Array,null,Int8Array,Int16Array,null,Int32Array,Uint8Array,Uint16Array,null,Uint32Array],o={Uint16Array:"getUint16",Uint32Array:"getUint32",Int16Array:"getInt16",Int32Array:"getInt32",Float32Array:"getFloat32",Float64Array:"getFloat64"};function l(e,t,r,n,i){const a=t.BYTES_PER_ELEMENT;let l;if(i===s()||1===a)l=new t(e,r,n);else{const s=new DataView(e,r,n*a),c=o[t.name],h=!i;l=new t(n);for(let e=0;e>7&1),s=n>>6&1,o=1==(n>>5&1),c=31&n;let h=0,u=0;if(o?(h=(t[2]<<16)+(t[3]<<8)+t[4],u=(t[5]<<16)+(t[6]<<8)+t[7]):(h=t[2]+(t[3]<<8)+(t[4]<<16),u=t[5]+(t[6]<<8)+(t[7]<<16)),0===r)throw new Error("PRWM decoder: Invalid format version: 0");if(1!==r)throw new Error("PRWM decoder: Unsupported format version: "+r);if(!i){if(0!==s)throw new Error("PRWM decoder: Indices type must be set to 0 for non-indexed geometries");if(0!==u)throw new Error("PRWM decoder: Number of indices must be set to 0 for non-indexed geometries")}let d=8;const p={};for(let m=0;m>7&1,s=1+(n>>4&3),c=a[15&n];d++,d=4*Math.ceil(d/4);const u=l(e,c,d,s*h,o);d+=c.BYTES_PER_ELEMENT*s*h,p[r]={type:i,cardinality:s,values:u}}d=4*Math.ceil(d/4);let f=null;return i&&(f=l(e,1===s?Uint32Array:Uint16Array,d,u,o)),{version:r,attributes:p,indices:f}}(e),r=Object.keys(t.attributes),i=new n.BufferGeometry;for(let s=0;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.CompressedTextureLoader{constructor(e){super(e)}parse(e,t){const r=new Uint32Array(e,0,13),i={buffer:e,header:r,loadMipmaps:t};return 55727696===r[0]?function(e){const t=e.header;let r,i;const a=t[12],o=t[2],l=t[6],c=t[7],h=t[10],u=t[11];switch(o){case 0:r=2,i=n.RGB_PVRTC_2BPPV1_Format;break;case 1:r=2,i=n.RGBA_PVRTC_2BPPV1_Format;break;case 2:r=4,i=n.RGB_PVRTC_4BPPV1_Format;break;case 3:r=4,i=n.RGBA_PVRTC_4BPPV1_Format;break;default:console.error("THREE.PVRLoader: Unsupported PVR format:",o)}return e.dataPtr=52+a,e.bpp=r,e.format=i,e.width=c,e.height=l,e.numSurfaces=h,e.numMipmaps=u,e.isCubemap=6===h,s(e)}(i):559044176===r[11]?function(e){const t=e.header,r=t[0],i=t[1],a=t[2],o=t[3],l=t[4],c=t[10],h=t[12],u=24,d=255&l;let p,f;const m=c>0;25===d?(f=m?n.RGBA_PVRTC_4BPPV1_Format:n.RGB_PVRTC_4BPPV1_Format,p=4):d===u?(f=m?n.RGBA_PVRTC_2BPPV1_Format:n.RGB_PVRTC_2BPPV1_Format,p=2):console.error("THREE.PVRLoader: Unknown PVR format:",d);return e.dataPtr=r,e.bpp=p,e.format=f,e.width=a,e.height=i,e.numSurfaces=h,e.numMipmaps=o+1,e.isCubemap=6===h,s(e)}(i):void console.error("THREE.PVRLoader: Unknown PVR format.")}}function s(e){const t={mipmaps:[],width:e.width,height:e.height,format:e.format,mipmapCount:e.numMipmaps,isCubemap:e.isCubemap},r=e.buffer;let n=e.dataPtr,i=0,s=0,a=0,o=0,l=0,c=0;const h=e.bpp,u=e.numSurfaces;2===h?(a=8,o=4):(a=4,o=4),s=a*o*h/8,t.mipmaps.length=e.numMipmaps*u;let d=0;for(;d>d,p=e.height>>d;l=h/a,c=p/o,l<2&&(l=2),c<2&&(c=2),i=l*c*s;for(let s=0;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.DataTextureLoader{constructor(e){super(e),this.type=n.HalfFloatType}parse(e){const t=function(e,t){switch(e){case 1:console.error("THREE.RGBELoader Read Error: "+(t||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(t||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(t||""));break;default:console.error("THREE.RGBELoader: Error: "+(t||""))}return-1},r=function(e,t,r){t=t||1024;let n=e.pos,i=-1,s=0,a="",o=String.fromCharCode.apply(null,new Uint16Array(e.subarray(n,n+128)));for(;0>(i=o.indexOf("\n"))&&s=e.byteLength||!(l=r(e)))return t(1,"no header found");if(!(c=l.match(/^#\?(\S+)/)))return t(3,"bad initial token");for(o.valid|=1,o.programtype=c[1],o.string+=l+"\n";l=r(e),!1!==l;)if(o.string+=l+"\n","#"!==l.charAt(0)){if((c=l.match(n))&&(o.gamma=parseFloat(c[1])),(c=l.match(i))&&(o.exposure=parseFloat(c[1])),(c=l.match(s))&&(o.valid|=2,o.format=c[1]),(c=l.match(a))&&(o.valid|=4,o.height=parseInt(c[1],10),o.width=parseInt(c[2],10)),2&o.valid&&4&o.valid)break}else o.comments+=l+"\n";return 2&o.valid?4&o.valid?o:t(3,"missing image size specifier"):t(3,"missing format specifier")}(a);if(-1!==o){const e=o.width,r=o.height,l=function(e,r,n){const i=r;if(i<8||i>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);if(i!==(e[2]<<8|e[3]))return t(3,"wrong scanline width");const s=new Uint8Array(4*r*n);if(!s.length)return t(4,"unable to allocate buffer space");let a=0,o=0;const l=4*i,c=new Uint8Array(4),h=new Uint8Array(l);let u=n;for(;u>0&&oe.byteLength)return t(1);if(c[0]=e[o++],c[1]=e[o++],c[2]=e[o++],c[3]=e[o++],2!=c[0]||2!=c[1]||(c[2]<<8|c[3])!=i)return t(3,"bad rgbe scanline format");let r,n=0;for(;n128;if(i&&(r-=128),0===r||n+r>l)return t(3,"bad scanline data");if(i){const t=e[o++];for(let e=0;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);let i;class s extends n.DataTextureLoader{constructor(e){super(e),this.type=n.HalfFloatType,this.maxRange=7}setDataType(e){return this.type=e,this}setMaxRange(e){return this.maxRange=e,this}loadCubemap(e,t,r,i){const s=new n.CubeTexture;let a=0;const o=this;function l(r){o.load(e[r],(function(e){s.images[r]=e,a++,6===a&&(s.needsUpdate=!0,t&&t(s))}),void 0,i)}for(let n=0;n>3)]>>7-((7&f)<<0)&1);l[x]=b[C],l[x+1]=b[C+1],l[x+2]=b[C+2],l[x+3]=T<_?E[T]:255}}if(2==u)for(S=0;S>2)]>>6-((3&f)<<1)&3),l[x]=b[C],l[x+1]=b[C+1],l[x+2]=b[C+2],l[x+3]=T<_?E[T]:255;if(4==u)for(S=0;S>1)]>>4-((1&f)<<2)&15),l[x]=b[C],l[x+1]=b[C+1],l[x+2]=b[C+2],l[x+3]=T<_?E[T]:255;if(8==u)for(f=0;f>>3)]>>>7-(7&D)&1))==255*A?0:255;c[P+D]=L<<24|I<<16|I<<8|I}else if(2==u)for(D=0;D>>2)]>>>6-((3&D)<<1)&3))==85*A?0:255,c[P+D]=L<<24|I<<16|I<<8|I;else if(4==u)for(D=0;D>>1)]>>>4-((1&D)<<2)&15))==17*A?0:255,c[P+D]=L<<24|I<<16|I<<8|I;else if(8==u)for(D=0;D>>2<<5));0==a;)if(a=g(e,f,1),o=g(e,f+1,2),f+=3,0!=o){if(_&&(t=r.H.W(t,p+(1<<17))),1==o&&(n=E.J,i=E.h,u=511,d=31),2==o){l=A(e,f,5)+257,c=A(e,f+5,5)+1,h=A(e,f+10,4)+4,f+=14;for(var S=1,M=0;M<38;M+=2)E.Q[M]=0,E.Q[M+1]=0;for(M=0;MS&&(S=w)}f+=3*h,y(E.Q,S),x(E.Q,S,E.u),n=E.w,i=E.d,f=v(E.u,(1<>>4;if(B>>>8==0)t[p++]=B;else{if(256==B)break;var R=p+B-254;if(B>264){var P=E.q[B-257];R=p+(P>>>3)+A(e,f,7&P),f+=7&P}var D=i[b(e,f)&d];f+=15&D;var L=D>>>4,F=E.c[L],U=(F>>>4)+g(e,f,15&F);for(f+=15&F;p>>3),N=e[O-4]|e[O-3]<<8;_&&(t=r.H.W(t,p+N)),t.set(new s(e.buffer,e.byteOffset+O,N),p),f=O+N<<3,p+=N}return t.length==p?t:t.slice(0,p)},r.H.W=function(e,t){var r=e.length;if(t<=r)return e;var n=new Uint8Array(r<<1);return n.set(e,0),n},r.H.R=function(e,t,n,i,s,a){for(var o=r.H.e,l=r.H.Z,c=0;c>>4;if(u<=15)a[c]=u,c++;else{var d=0,p=0;16==u?(p=3+o(i,s,2),s+=2,d=a[c-1]):17==u?(p=3+o(i,s,3),s+=3):18==u&&(p=11+o(i,s,7),s+=7);for(var f=c+p;c>>1;si&&(i=o),s++}for(;s>1,l=e[a+1],c=o<<4|l,h=t-l,u=e[a]<>>15-t]=c,u++},r.H.l=function(e,t){for(var n=r.H.m.r,i=15-t,s=0;s>>i}},r.H.M=function(e,t,r){r<<=7&t;var n=t>>>3;e[n]|=r,e[n+1]|=r>>>8},r.H.I=function(e,t,r){r<<=7&t;var n=t>>>3;e[n]|=r,e[n+1]|=r>>>8,e[n+2]|=r>>>16},r.H.e=function(e,t,r){return(e[t>>>3]|e[1+(t>>>3)]<<8)>>>(7&t)&(1<>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)&(1<>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16)>>>(7&t)},r.H.i=function(e,t){return(e[t>>>3]|e[1+(t>>>3)]<<8|e[2+(t>>>3)]<<16|e[3+(t>>>3)]<<24)>>>(7&t)},r.H.m=(e=Uint16Array,t=Uint32Array,{K:new e(16),j:new e(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new e(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new t(32),J:new e(512),_:[],h:new e(32),$:[],w:new e(32768),C:[],v:[],d:new e(32768),D:[],u:new e(512),Q:[],r:new e(32768),s:new t(286),Y:new t(30),a:new t(19),t:new t(15e3),k:new e(65536),g:new e(32768)}),function(){for(var e=r.H.m,t=0;t<32768;t++){var n=t;n=(4278255360&(n=(4042322160&(n=(3435973836&(n=(2863311530&n)>>>1|(1431655765&n)<<1))>>>2|(858993459&n)<<2))>>>4|(252645135&n)<<4))>>>8|(16711935&n)<<8,e.r[t]=(n>>>16|n<<16)>>>17}function i(e,t,r){for(;0!=t--;)e.push(0,r)}for(t=0;t<32;t++)e.q[t]=e.S[t]<<3|e.T[t],e.c[t]=e.p[t]<<4|e.z[t];i(e._,144,8),i(e._,112,9),i(e._,24,7),i(e._,8,8),r.H.n(e._,9),r.H.A(e._,9,e.J),r.H.l(e._,9),i(e.$,32,5),r.H.n(e.$,5),r.H.A(e.$,5,e.h),r.H.l(e.$,5),i(e.Q,19,0),i(e.C,286,0),i(e.D,30,0),i(e.v,320,0)}(),r.H.N),i.decode._readInterlace=function(e,t){for(var r=t.width,n=t.height,s=i.decode._getBPP(t),a=s>>3,o=Math.ceil(r*s/8),l=new Uint8Array(n*o),c=0,h=[0,0,4,0,2,0,1],u=[0,4,0,2,0,1,0],d=[8,8,8,4,4,2,2],p=[8,8,4,4,2,2,1],f=0;f<7;){for(var m=d[f],g=p[f],A=0,v=0,y=h[f];y>3])>>7-(7&w)&1,l[S*o+(M>>3)]|=E<<7-((7&M)<<0)),2==s&&(E=(E=e[w>>3])>>6-(7&w)&3,l[S*o+(M>>2)]|=E<<6-((3&M)<<1)),4==s&&(E=(E=e[w>>3])>>4-(7&w)&15,l[S*o+(M>>1)]|=E<<4-((1&M)<<2)),s>=8)for(var C=S*o+M*a,T=0;T>3)+T];w+=s,M+=g}_++,S+=m}A*v!=0&&(c+=v*(1+b)),f+=1}return l},i.decode._getBPP=function(e){return[1,null,3,1,2,null,4][e.ctype]*e.depth},i.decode._filterZero=function(e,t,r,n,s){var a=i.decode._getBPP(t),o=Math.ceil(n*a/8),l=i.decode._paeth;a=Math.ceil(a/8);var c,h,u=e[r],d=0;if(u>1&&(e[r]=[0,0,1][u-2]),3==u)for(d=a;d>>1)&255;for(var p=0;p>>1);for(;d>>1)}else{for(;d>8&255,e[t+1]=255&r},readUint:function(e,t){return 16777216*e[t]+(e[t+1]<<16|e[t+2]<<8|e[t+3])},writeUint:function(e,t,r){e[t]=r>>24&255,e[t+1]=r>>16&255,e[t+2]=r>>8&255,e[t+3]=255&r},readASCII:function(e,t,r){for(var n="",i=0;i=0&&o>=0?(u=p*t+f<<2,d=(o+p)*i+a+f<<2):(u=(-o+p)*t-a+f<<2,d=p*i+f<<2),0==l)n[d]=e[u],n[d+1]=e[u+1],n[d+2]=e[u+2],n[d+3]=e[u+3];else if(1==l){var m=e[u+3]*(1/255),g=e[u]*m,A=e[u+1]*m,v=e[u+2]*m,y=n[d+3]*(1/255),x=n[d]*y,b=n[d+1]*y,E=n[d+2]*y,_=1-m,S=m+y*_,M=0==S?0:1/S;n[d+3]=255*S,n[d+0]=(g+x*_)*M,n[d+1]=(A+b*_)*M,n[d+2]=(v+E*_)*M}else if(2==l)m=e[u+3],g=e[u],A=e[u+1],v=e[u+2],y=n[d+3],x=n[d],b=n[d+1],E=n[d+2],m==y&&g==x&&A==b&&v==E?(n[d]=0,n[d+1]=0,n[d+2]=0,n[d+3]=0):(n[d]=g,n[d+1]=A,n[d+2]=v,n[d+3]=m);else if(3==l){if(m=e[u+3],g=e[u],A=e[u+1],v=e[u+2],y=n[d+3],x=n[d],b=n[d+1],E=n[d+2],m==y&&g==x&&A==b&&v==E)continue;if(m<220&&y>20)return!1}return!0}}();const t=i.decode(e),r=i.toRGBA8(t)[0],s=new Uint8Array(r),a=t.width*t.height*4,o=this.type===n.HalfFloatType?new Uint16Array(a):new Float32Array(a);for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=new n.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){function t(e,t,r){for(let n=0,i=e.length;n>5&31)/31,a=(r>>10&31)/31):(i=l,s=c,a=h)}for(let l=1;l<=3;l++){const c=e+12*l,h=3*n*3+3*(l-1);f[h]=t.getFloat32(c,!0),f[h+1]=t.getFloat32(c+4,!0),f[h+2]=t.getFloat32(c+8,!0),m[h]=r,m[h+1]=u,m[h+2]=p,d&&(o[h]=i,o[h+1]=s,o[h+2]=a)}}return p.setAttribute("position",new n.BufferAttribute(f,3)),p.setAttribute("normal",new n.BufferAttribute(m,3)),d&&(p.setAttribute("color",new n.BufferAttribute(o,3)),p.hasColors=!0,p.alpha=u),p}(r):function(e){const t=new n.BufferGeometry,r=/solid([\s\S]*?)endsolid/g,i=/facet([\s\S]*?)endfacet/g;let s=0;const a=/[\s]+([+-]?(?:\d*)(?:\.\d*)?(?:[eE][+-]?\d+)?)/.source,o=new RegExp("vertex"+a+a+a,"g"),l=new RegExp("normal"+a+a+a,"g"),c=[],h=[],u=new n.Vector3;let d,p=0,f=0,m=0;for(;null!==(d=r.exec(e));){f=m;const e=d[0];for(;null!==(d=i.exec(e));){let e=0,t=0;const r=d[0];for(;null!==(d=l.exec(r));)u.x=parseFloat(d[1]),u.y=parseFloat(d[2]),u.z=parseFloat(d[3]),t++;for(;null!==(d=o.exec(r));)c.push(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3])),h.push(u.x,u.y,u.z),e++,m++;1!==t&&console.error("THREE.STLLoader: Something isn't right with the normal of face number "+s),3!==e&&console.error("THREE.STLLoader: Something isn't right with the vertices of face number "+s),s++}const r=f,n=m-f;t.addGroup(r,n,p),p++}return t.setAttribute("position",new n.Float32BufferAttribute(c,3)),t.setAttribute("normal",new n.Float32BufferAttribute(h,3)),t}("string"!=typeof(i=e)?n.LoaderUtils.decodeText(new Uint8Array(i)):i);var i}}t.STLLoader=i},49935:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e),this.defaultDPI=90,this.defaultUnit="px"}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){const t=this;function r(e,t,r,n,s,a,o,l){if(0==t||0==r)return void e.lineTo(l.x,l.y);n=n*Math.PI/180,t=Math.abs(t),r=Math.abs(r);const c=(o.x-l.x)/2,h=(o.y-l.y)/2,u=Math.cos(n)*c+Math.sin(n)*h,d=-Math.sin(n)*c+Math.cos(n)*h;let p=t*t,f=r*r;const m=u*u,g=d*d,A=m/p+g/f;if(A>1){const e=Math.sqrt(A);p=(t*=e)*t,f=(r*=e)*r}const v=p*g+f*m,y=(p*f-v)/v;let x=Math.sqrt(Math.max(0,y));s===a&&(x=-x);const b=x*t*d/r,E=-x*r*u/t,_=Math.cos(n)*b-Math.sin(n)*E+(o.x+l.x)/2,S=Math.sin(n)*b+Math.cos(n)*E+(o.y+l.y)/2,M=i(1,0,(u-b)/t,(d-E)/r),w=i((u-b)/t,(d-E)/r,(-u-b)/t,(-d-E)/r)%(2*Math.PI);e.currentPath.absellipse(_,S,t,r,M,M+w,0===a,n)}function i(e,t,r,n){const i=e*r+t*n,s=Math.sqrt(e*e+t*t)*Math.sqrt(r*r+n*n);let a=Math.acos(Math.max(-1,Math.min(1,i/s)));return e*n-t*r<0&&(a=-a),a}function s(e,t){t=Object.assign({},t);let r={};if(e.hasAttribute("class")){const t=e.getAttribute("class").split(/\s/).filter(Boolean).map((e=>e.trim()));for(let e=0;e=0;e--){const i=n[e].trim();if(""===i)continue;const s=i.indexOf("("),a=i.length;if(s>0&&s=1){const e=t[0];let n=e;t.length>=2&&(n=t[1]),r.translate(e,n)}break;case"rotate":if(t.length>=1){let e=0,n=0,i=0;e=-t[0]*Math.PI/180,t.length>=3&&(n=t[1],i=t[2]),A.identity().translate(-n,-i),v.identity().rotate(e),y.multiplyMatrices(v,A),A.identity().translate(n,i),r.multiplyMatrices(A,y)}break;case"scale":if(t.length>=1){const e=t[0];let n=e;t.length>=2&&(n=t[1]),r.scale(e,n)}break;case"skewX":1===t.length&&r.set(1,Math.tan(t[0]*Math.PI/180),0,0,1,0,0,0,1);break;case"skewY":1===t.length&&r.set(1,0,0,Math.tan(t[0]*Math.PI/180),1,0,0,0,1);break;case"matrix":6===t.length&&r.set(t[0],t[2],t[4],t[1],t[3],t[5],0,0,1)}}t.premultiply(r)}}return t}(e);m.length>0&&t.premultiply(m[m.length-1]);return E.copy(t),m.push(t),t}(t);let c=!0,_=null;switch(t.nodeName){case"svg":break;case"style":!function(e){if(!e.sheet||!e.sheet.cssRules||!e.sheet.cssRules.length)return;for(let t=0;te.trim()));for(let e=0;e0&&(i.copy(l),t.currentPath.currentPoint.copy(i),c=!0);break;default:console.warn(e)}h=!1}return t}(t));break;case"rect":i=s(t,i),_=function(e){const t=h(e.getAttribute("x")||0),r=h(e.getAttribute("y")||0),i=h(e.getAttribute("rx")||e.getAttribute("ry")||0),s=h(e.getAttribute("ry")||e.getAttribute("rx")||0),a=h(e.getAttribute("width")),o=h(e.getAttribute("height")),l=.448084975506,c=new n.ShapePath;c.moveTo(t+i,r),c.lineTo(t+a-i,r),(0!==i||0!==s)&&c.bezierCurveTo(t+a-i*l,r,t+a,r+s*l,t+a,r+s);c.lineTo(t+a,r+o-s),(0!==i||0!==s)&&c.bezierCurveTo(t+a,r+o-s*l,t+a-i*l,r+o,t+a-i,r+o);c.lineTo(t+i,r+o),(0!==i||0!==s)&&c.bezierCurveTo(t+i*l,r+o,t,r+o-s*l,t,r+o-s);c.lineTo(t,r+s),(0!==i||0!==s)&&c.bezierCurveTo(t,r+s*l,t+i*l,r,t+i,r);return c}(t);break;case"polygon":i=s(t,i),_=function(e){function t(e,t,r){const n=h(t),a=h(r);0===s?i.moveTo(n,a):i.lineTo(n,a),s++}const r=/(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g,i=new n.ShapePath;let s=0;return e.getAttribute("points").replace(r,t),i.currentPath.autoClose=!0,i}(t);break;case"polyline":i=s(t,i),_=function(e){function t(e,t,r){const n=h(t),a=h(r);0===s?i.moveTo(n,a):i.lineTo(n,a),s++}const r=/(-?[\d\.?]+)[,|\s](-?[\d\.?]+)/g,i=new n.ShapePath;let s=0;return e.getAttribute("points").replace(r,t),i.currentPath.autoClose=!1,i}(t);break;case"circle":i=s(t,i),_=function(e){const t=h(e.getAttribute("cx")||0),r=h(e.getAttribute("cy")||0),i=h(e.getAttribute("r")||0),s=new n.Path;s.absarc(t,r,i,0,2*Math.PI);const a=new n.ShapePath;return a.subPaths.push(s),a}(t);break;case"ellipse":i=s(t,i),_=function(e){const t=h(e.getAttribute("cx")||0),r=h(e.getAttribute("cy")||0),i=h(e.getAttribute("rx")||0),s=h(e.getAttribute("ry")||0),a=new n.Path;a.absellipse(t,r,i,s,0,2*Math.PI);const o=new n.ShapePath;return o.subPaths.push(a),o}(t);break;case"line":i=s(t,i),_=function(e){const t=h(e.getAttribute("x1")||0),r=h(e.getAttribute("y1")||0),i=h(e.getAttribute("x2")||0),s=h(e.getAttribute("y2")||0),a=new n.ShapePath;return a.moveTo(t,r),a.lineTo(i,s),a.currentPath.autoClose=!1,a}(t);break;case"defs":case"mask":c=!1;break;case"use":i=s(t,i);const l=t.href.baseVal.substring(1),u=t.viewportElement.getElementById(l);u?e(u,i):console.warn("SVGLoader: 'use node' references non-existent node id: "+l)}if(_&&(void 0!==i.fill&&"none"!==i.fill&&_.color.setStyle(i.fill),function(e,t){function r(e){b.set(e.x,e.y,1).applyMatrix3(t),e.set(b.x,b.y)}const n=function(e){return 0!==e.elements[1]||0!==e.elements[3]}(t),i=e.subPaths;for(let s=0,a=i.length;s0?E.copy(m[m.length-1]):E.identity())}(_.documentElement,{fill:"#000",fillOpacity:1,strokeOpacity:1,strokeWidth:1,strokeLineJoin:"miter",strokeLineCap:"butt",strokeMiterLimit:4});return{paths:p,xml:_.documentElement}}static createShapes(e){const t=999999999,r=0,i=1,s=2,a=3,o=4,l=5,c=6,h={loc:r,t:0};function u(e,t,n,i){const a=e.x,o=t.x,l=n.x,c=i.x,u=e.y,p=t.y,f=n.y,m=i.y,g=(c-l)*(u-f)-(m-f)*(a-l),A=(m-f)*(o-a)-(c-l)*(p-u),v=g/A,y=((o-a)*(u-f)-(p-u)*(a-l))/A;if(0===A&&0!==g||v<=0||v>=1||y<0||y>1)return null;if(0===g&&0===A){for(let l=0;l<2;l++){if(d(0===l?n:i,e,t),h.loc==r){const e=0===l?n:i;return{x:e.x,y:e.y,t:h.t}}if(h.loc==s){return{x:+(a+h.t*(o-a)).toPrecision(10),y:+(u+h.t*(p-u)).toPrecision(10),t:h.t}}}return null}for(let s=0;s<2;s++)if(d(0===s?n:i,e,t),h.loc==r){const e=0===s?n:i;return{x:e.x,y:e.y,t:h.t}}return{x:+(a+v*(o-a)).toPrecision(10),y:+(u+v*(p-u)).toPrecision(10),t:v}}function d(e,t,n){const u=n.x-t.x,d=n.y-t.y,p=e.x-t.x,f=e.y-t.y,m=u*f-p*d;if(e.x===t.x&&e.y===t.y)return h.loc=r,void(h.t=0);if(e.x===n.x&&e.y===n.y)return h.loc=i,void(h.t=1);if(m<-Number.EPSILON)return void(h.loc=a);if(m>Number.EPSILON)return void(h.loc=o);if(u*p<0||d*f<0)return void(h.loc=l);if(Math.sqrt(u*u+d*d){if(t.boundingBox.containsPoint(i)){(function(e,t){const r=[],i=[];for(let s=1;se.t<=s.t+Number.EPSILON&&e.t>=s.t-Number.EPSILON))&&(r.push(s),i.push(new n.Vector2(s.x,s.y)))}}return i})(e,t.points).forEach((e=>{s.push({identifier:t.identifier,isCW:t.isCW,point:e})}))}})),s.sort(((e,t)=>e.point.x-t.point.x)),s}let f=0,m=t,g=-999999999,A=e.subPaths.map((e=>{const r=e.getPoints();let i=-999999999,s=t,a=-999999999,o=t;for(let t=0;ti&&(i=e.y),e.ya&&(a=e.x),e.x=o&&(m=o-1),{curves:e.curves,points:r,isCW:n.ShapeUtils.isClockWise(r),identifier:f++,boundingBox:new n.Box2(new n.Vector2(o,s),new n.Vector2(a,i))}}));A=A.filter((e=>e.points.length>1));const v=A.map((t=>function(e,t,r,i,s){null!=s&&""!==s||(s="nonzero");const a=new n.Vector2;e.boundingBox.getCenter(a);const o=p([new n.Vector2(r,a.y),new n.Vector2(i,a.y)],e.boundingBox,t);o.sort(((e,t)=>e.point.x-t.point.x));const l=[],c=[];o.forEach((t=>{t.identifier===e.identifier?l.push(t):c.push(t)}));const h=l[0].point.x,u=[];let d=0;for(;d0&&u[u.length-1]===c[d].identifier?u.pop():u.push(c[d].identifier),d++;if(u.push(e.identifier),"evenodd"===s){const t=u.length%2==0,r=u[u.length-2];return{identifier:e.identifier,isHole:t,for:r}}if("nonzero"===s){let r=!0,n=null,i=null;for(let e=0;e{if(!v[e.identifier].isHole){const t=new n.Shape;t.curves=e.curves;v.filter((t=>t.isHole&&t.for===e.identifier)).forEach((e=>{const r=A[e.identifier],i=new n.Path;i.curves=r.curves,t.holes.push(i)})),y.push(t)}})),y}static getStrokeStyle(e,t,r,n,i){return{strokeColor:t=void 0!==t?t:"#000",strokeWidth:e=void 0!==e?e:1,strokeLineJoin:r=void 0!==r?r:"miter",strokeLineCap:n=void 0!==n?n:"butt",strokeMiterLimit:i=void 0!==i?i:4}}static pointsToStroke(e,t,r,s){const a=[],o=[],l=[];if(0===i.pointsToStrokeWithBuffers(e,t,r,s,a,o,l))return null;const c=new n.BufferGeometry;return c.setAttribute("position",new n.Float32BufferAttribute(a,3)),c.setAttribute("normal",new n.Float32BufferAttribute(o,3)),c.setAttribute("uv",new n.Float32BufferAttribute(l,2)),c}static pointsToStrokeWithBuffers(e,t,r,i,s,a,o,l){const c=new n.Vector2,h=new n.Vector2,u=new n.Vector2,d=new n.Vector2,p=new n.Vector2,f=new n.Vector2,m=new n.Vector2,g=new n.Vector2,A=new n.Vector2,v=new n.Vector2,y=new n.Vector2,x=new n.Vector2,b=new n.Vector2,E=new n.Vector2,_=new n.Vector2,S=new n.Vector2,M=new n.Vector2;r=void 0!==r?r:12,i=void 0!==i?i:.001,l=void 0!==l?l:0;const w=(e=function(e){let t=!1;for(let n=1,s=e.length-1;n=i&&r.push(e[n]);return r.push(e[e.length-1]),r}(e)).length;if(w<2)return 0;const C=e[0].equals(e[w-1]);let T,I,B=e[0];const R=t.strokeWidth/2,P=1/(w-1);let D,L,F,U,O=0,N=!1,k=0,G=3*l,z=2*l;Q(e[0],e[1],c).multiplyScalar(R),g.copy(e[0]).sub(c),A.copy(e[0]).add(c),v.copy(g),y.copy(A);for(let n=1;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{constructor(e){super(e),this.debug=!1,this.group=null,this.position=0,this.materials=[],this.meshes=[]}load(e,t,r,i){const s=this,a=""===this.path?n.LoaderUtils.extractUrlBase(e):this.path,o=new n.FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,(function(r){try{t(s.parse(r,a))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e,t){this.group=new n.Group,this.position=0,this.materials=[],this.meshes=[],this.readFile(e,t);for(let r=0;r=t.end)return 0;this.position=t.cur;try{const r=this.readChunk(e);return t.cur+=r.size,r.id}catch(r){return this.debugMessage("Unable to read chunk at "+this.position),0}}resetPosition(){this.position-=6}readByte(e){const t=e.getUint8(this.position,!0);return this.position+=1,t}readFloat(e){try{const t=e.getFloat32(this.position,!0);return this.position+=4,t}catch(t){this.debugMessage(t+" "+this.position+" "+e.byteLength)}}readInt(e){const t=e.getInt32(this.position,!0);return this.position+=4,t}readShort(e){const t=e.getInt16(this.position,!0);return this.position+=2,t}readDWord(e){const t=e.getUint32(this.position,!0);return this.position+=4,t}readWord(e){const t=e.getUint16(this.position,!0);return this.position+=2,t}readString(e,t){let r="";for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.DataTextureLoader{constructor(e){super(e)}parse(e){const t=0,r=1,i=2,s=3,a=9,o=10,l=11,c=48,h=4,u=0,d=1,p=2,f=3;e.length<19&&console.error("THREE.TGALoader: Not enough data to contain header.");let m=0;const g=new Uint8Array(e),A={id_length:g[m++],colormap_type:g[m++],image_type:g[m++],colormap_index:g[m++]|g[m++]<<8,colormap_length:g[m++]|g[m++]<<8,colormap_size:g[m++],origin:[g[m++]|g[m++]<<8,g[m++]|g[m++]<<8],width:g[m++]|g[m++]<<8,height:g[m++]|g[m++]<<8,pixel_size:g[m++],flags:g[m++]};!function(e){switch(e.image_type){case r:case a:(e.colormap_length>256||24!==e.colormap_size||1!==e.colormap_type)&&console.error("THREE.TGALoader: Invalid type colormap data for indexed type.");break;case i:case s:case o:case l:e.colormap_type&&console.error("THREE.TGALoader: Invalid type colormap data for colormap type.");break;case t:console.error("THREE.TGALoader: No data.");default:console.error('THREE.TGALoader: Invalid type "%s".',e.image_type)}(e.width<=0||e.height<=0)&&console.error("THREE.TGALoader: Invalid image size."),8!==e.pixel_size&&16!==e.pixel_size&&24!==e.pixel_size&&32!==e.pixel_size&&console.error('THREE.TGALoader: Invalid pixel size "%s".',e.pixel_size)}(A),A.id_length+m>e.length&&console.error("THREE.TGALoader: No data."),m+=A.id_length;let v=!1,y=!1,x=!1;switch(A.image_type){case a:v=!0,y=!0;break;case r:y=!0;break;case o:v=!0;break;case i:break;case l:v=!0,x=!0;break;case s:x=!0}const b=new Uint8Array(A.width*A.height*4),E=function(e,t,r,n,i){let s,a;const o=r.pixel_size>>3,l=r.width*r.height*o;if(t&&(a=i.subarray(n,n+=r.colormap_length*(r.colormap_size>>3))),e){let e,t,r;s=new Uint8Array(l);let a=0;const c=new Uint8Array(o);for(;a>h){default:case p:s=0,o=1,m=t,a=0,l=1,g=r;break;case u:s=0,o=1,m=t,a=r-1,l=-1,g=-1;break;case f:s=t-1,o=-1,m=-1,a=0,l=1,g=r;break;case d:s=t-1,o=-1,m=-1,a=r-1,l=-1,g=-1}if(x)switch(A.pixel_size){case 8:!function(e,t,r,n,i,s,a,o){let l,c,h,u=0;const d=A.width;for(h=t;h!==n;h+=r)for(c=i;c!==a;c+=s,u++)l=o[u],e[4*(c+d*h)+0]=l,e[4*(c+d*h)+1]=l,e[4*(c+d*h)+2]=l,e[4*(c+d*h)+3]=255}(e,a,l,g,s,o,m,n);break;case 16:!function(e,t,r,n,i,s,a,o){let l,c,h=0;const u=A.width;for(c=t;c!==n;c+=r)for(l=i;l!==a;l+=s,h+=2)e[4*(l+u*c)+0]=o[h+0],e[4*(l+u*c)+1]=o[h+0],e[4*(l+u*c)+2]=o[h+0],e[4*(l+u*c)+3]=o[h+1]}(e,a,l,g,s,o,m,n);break;default:console.error("THREE.TGALoader: Format not supported.")}else switch(A.pixel_size){case 8:!function(e,t,r,n,i,s,a,o,l){const c=l;let h,u,d,p=0;const f=A.width;for(d=t;d!==n;d+=r)for(u=i;u!==a;u+=s,p++)h=o[p],e[4*(u+f*d)+3]=255,e[4*(u+f*d)+2]=c[3*h+0],e[4*(u+f*d)+1]=c[3*h+1],e[4*(u+f*d)+0]=c[3*h+2]}(e,a,l,g,s,o,m,n,i);break;case 16:!function(e,t,r,n,i,s,a,o){let l,c,h,u=0;const d=A.width;for(h=t;h!==n;h+=r)for(c=i;c!==a;c+=s,u+=2)l=o[u+0]+(o[u+1]<<8),e[4*(c+d*h)+0]=(31744&l)>>7,e[4*(c+d*h)+1]=(992&l)>>2,e[4*(c+d*h)+2]=(31&l)>>3,e[4*(c+d*h)+3]=32768&l?0:255}(e,a,l,g,s,o,m,n);break;case 24:!function(e,t,r,n,i,s,a,o){let l,c,h=0;const u=A.width;for(c=t;c!==n;c+=r)for(l=i;l!==a;l+=s,h+=3)e[4*(l+u*c)+3]=255,e[4*(l+u*c)+2]=o[h+0],e[4*(l+u*c)+1]=o[h+1],e[4*(l+u*c)+0]=o[h+2]}(e,a,l,g,s,o,m,n);break;case 32:!function(e,t,r,n,i,s,a,o){let l,c,h=0;const u=A.width;for(c=t;c!==n;c+=r)for(l=i;l!==a;l+=s,h+=4)e[4*(l+u*c)+2]=o[h+0],e[4*(l+u*c)+1]=o[h+1],e[4*(l+u*c)+0]=o[h+2],e[4*(l+u*c)+3]=o[h+3]}(e,a,l,g,s,o,m,n);break;default:console.error("THREE.TGALoader: Format not supported.")}}(b,A.width,A.height,E.pixel_data,E.palettes),{data:b,width:A.width,height:A.height,flipY:!0,generateMipmaps:!0,minFilter:n.LinearMipmapLinearFilter}}}t.TGALoader=i},60716:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(55599);class s extends n.Loader{constructor(e){super(e),this.reversed=!1}load(e,t,r,s){const a=this,o=new n.FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(e,(function(r){try{t(i.parse(r))}catch(n){s?s(n):console.error(n),a.manager.itemError(e)}}),r,s)}parse(e){function t(e){const t=[];let r;e.forEach((function(e){"m"===e.type.toLowerCase()?(r=[e],t.push(r)):"z"!==e.type.toLowerCase()&&r.push(e)}));const n=[];return t.forEach((function(e){const t={type:"m",x:e[e.length-1].x,y:e[e.length-1].y};n.push(t);for(let r=e.length-1;r>0;r--){const t=e[r],i={type:t.type};void 0!==t.x2&&void 0!==t.y2?(i.x1=t.x2,i.y1=t.y2,i.x2=t.x1,i.y2=t.y1):void 0!==t.x1&&void 0!==t.y1&&(i.x1=t.x1,i.y1=t.y1),i.x=e[r-1].x,i.y=e[r-1].y,n.push(i)}})),n}return function(e,r){const n=Math.round,i={},s=1e5/(72*(e.unitsPerEm||2048)),a=e.encoding.cmap.glyphIndexMap,o=Object.keys(a);for(let l=0;l{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(8083);class s extends n.Loader{load(e,t,r,i){const s=this,a=new n.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),a.setWithCredentials(this.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){const t=new n.Group,r=i.unzipSync(new Uint8Array(e.slice(16))),s=JSON.parse(i.strFromU8(r["metadata.json"])),o=new DataView(r["data.sketch"].buffer),l=o.getInt32(16,!0),c={};let u=20;for(let n=0;n0&&(s+=4),(i&e)>0&&(a+=4)}u=u+28+s+4;const l=o.getInt32(u,!0),h=new Float32Array(3*l),d=new Float32Array(4*l);u+=4;for(let c=0,p=0;c({Light:{uniforms:{mainTex:{value:(new n.TextureLoader).setPath("./textures/tiltbrush/").loader.load("Light.webp")},alphaTest:{value:.067},emission_gain:{value:.45},alpha:{value:1}},vertexShader:`\n\t\t\tprecision highp float;\n\t\t\tprecision highp int;\n\n\t\t\tattribute vec2 uv;\n\t\t\tattribute vec4 color;\n\t\t\tattribute vec3 position;\n\n\t\t\tuniform mat4 modelMatrix;\n\t\t\tuniform mat4 modelViewMatrix;\n\t\t\tuniform mat4 projectionMatrix;\n\t\t\tuniform mat4 viewMatrix;\n\t\t\tuniform mat3 normalMatrix;\n\t\t\tuniform vec3 cameraPosition;\n\n\t\t\tvarying vec2 vUv;\n\t\t\tvarying vec3 vColor;\n\n\t\t\t${l.LinearToSrgb}\n\t\t\t${l.hsv}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvUv = uv;\n\n\t\t\t\tvColor = lookup(color.rgb);\n\n\t\t\t\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t}\n\t\t`,fragmentShader:`\n\t\t\tprecision highp float;\n\t\t\tprecision highp int;\n\n\t\t\tuniform float emission_gain;\n\n\t\t\tuniform sampler2D mainTex;\n\t\t\tuniform float alphaTest;\n\n\t\t\tvarying vec2 vUv;\n\t\t\tvarying vec3 vColor;\n\n\t\t\t${l.BloomColor}\n\t\t\t${l.SrgbToLinear}\n\n\t\t\tvoid main(){\n\t\t\t\tvec4 col = texture2D(mainTex, vUv);\n\t\t\t\tvec3 color = vColor;\n\t\t\t\tcolor = BloomColor(color, emission_gain);\n\t\t\t\tcolor = color * col.rgb;\n\t\t\t\tcolor = color * col.a;\n\t\t\t\tcolor = SrgbToLinear(color);\n\t\t\t\tgl_FragColor = vec4(color, 1.0);\n\t\t\t}\n\t\t`,side:2,transparent:!0,depthFunc:2,depthWrite:!0,depthTest:!1,blending:5,blendDst:201,blendDstAlpha:201,blendEquation:100,blendEquationAlpha:100,blendSrc:201,blendSrcAlpha:201}});function h(e){return"Light"===o[e]?new n.RawShaderMaterial(c().Light):new n.MeshBasicMaterial({vertexColors:!0,side:n.DoubleSide})}t.TiltLoader=s},21847:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(79836);class s extends n.Loader{load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){const t=new DataView(e),r=t.getUint32(0,!0),n=t.getUint32(4,!0);if(542658390!==r||150!==n)return void console.error("Not a valid VOX file");const i=[0,4294967295,4291624959,4288282623,4284940287,4281597951,4278255615,4294954239,4291611903,4288269567,4284927231,4281584895,4278242559,4294941183,4291598847,4288256511,4284914175,4281571839,4278229503,4294928127,4291585791,4288243455,4284901119,4281558783,4278216447,4294915071,4291572735,4288230399,4284888063,4281545727,4278203391,4294902015,4291559679,4288217343,4284875007,4281532671,4278190335,4294967244,4291624908,4288282572,4284940236,4281597900,4278255564,4294954188,4291611852,4288269516,4284927180,4281584844,4278242508,4294941132,4291598796,4288256460,4284914124,4281571788,4278229452,4294928076,4291585740,4288243404,4284901068,4281558732,4278216396,4294915020,4291572684,4288230348,4284888012,4281545676,4278203340,4294901964,4291559628,4288217292,4284874956,4281532620,4278190284,4294967193,4291624857,4288282521,4284940185,4281597849,4278255513,4294954137,4291611801,4288269465,4284927129,4281584793,4278242457,4294941081,4291598745,4288256409,4284914073,4281571737,4278229401,4294928025,4291585689,4288243353,4284901017,4281558681,4278216345,4294914969,4291572633,4288230297,4284887961,4281545625,4278203289,4294901913,4291559577,4288217241,4284874905,4281532569,4278190233,4294967142,4291624806,4288282470,4284940134,4281597798,4278255462,4294954086,4291611750,4288269414,4284927078,4281584742,4278242406,4294941030,4291598694,4288256358,4284914022,4281571686,4278229350,4294927974,4291585638,4288243302,4284900966,4281558630,4278216294,4294914918,4291572582,4288230246,4284887910,4281545574,4278203238,4294901862,4291559526,4288217190,4284874854,4281532518,4278190182,4294967091,4291624755,4288282419,4284940083,4281597747,4278255411,4294954035,4291611699,4288269363,4284927027,4281584691,4278242355,4294940979,4291598643,4288256307,4284913971,4281571635,4278229299,4294927923,4291585587,4288243251,4284900915,4281558579,4278216243,4294914867,4291572531,4288230195,4284887859,4281545523,4278203187,4294901811,4291559475,4288217139,4284874803,4281532467,4278190131,4294967040,4291624704,4288282368,4284940032,4281597696,4278255360,4294953984,4291611648,4288269312,4284926976,4281584640,4278242304,4294940928,4291598592,4288256256,4284913920,4281571584,4278229248,4294927872,4291585536,4288243200,4284900864,4281558528,4278216192,4294914816,4291572480,4288230144,4284887808,4281545472,4278203136,4294901760,4291559424,4288217088,4284874752,4281532416,4278190318,4278190301,4278190267,4278190250,4278190216,4278190199,4278190165,4278190148,4278190114,4278190097,4278251008,4278246656,4278237952,4278233600,4278224896,4278220544,4278211840,4278207488,4278198784,4278194432,4293787648,4292673536,4290445312,4289331200,4287102976,4285988864,4283760640,4282646528,4280418304,4279304192,4293848814,4292730333,4290493371,4289374890,4287137928,4286019447,4283782485,4282664004,4280427042,4279308561];let s,a=8;const o=[];for(;a>0&255)/255,x=(v>>8&255)/255,b=(v>>16&255)/255;(y>0||x>0||b>0)&&(A=!0);const E=e+s*f+a*m;0!==g[E+1]&&e!==r.x-1||p(l,e,a,-s,y,x,b),0!==g[E-1]&&0!==e||p(o,e,a,-s,y,x,b),0!==g[E+f]&&s!==r.y-1||p(h,e,a,-s,y,x,b),0!==g[E-f]&&0!==s||p(c,e,a,-s,y,x,b),0!==g[E+m]&&a!==r.z-1||p(d,e,a,-s,y,x,b),0!==g[E-m]&&0!==a||p(u,e,a,-s,y,x,b)}const v=new n.BufferGeometry;v.setAttribute("position",new n.Float32BufferAttribute(s,3)),v.computeVertexNormals();const y=new n.MeshStandardMaterial;A&&(v.setAttribute("color",new n.Float32BufferAttribute(a,3)),y.vertexColors=!0),super(v,y)}}class o extends i.Data3DTexture{constructor(e){const t=e.data,r=e.size,i=r.x,s=r.x*r.y,a=new Uint8Array(r.x*r.y*r.z);for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(94479);class s extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=""===s.path?n.LoaderUtils.extractUrlBase(e):s.path,o=new n.FileLoader(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(e,(function(r){try{t(s.parse(r,a))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e,t){const r={};function s(e){e.DEF&&(r[e.DEF]=e);const t=e.fields;for(let r=0,n=t.length;r3?(L(e,l,s,D(a),!0),r.vertexColors=!0):r.color.setRGB(a[0],a[1],a[2]);const i=new n.Mesh(e,r);t.add(i)}if(i&&i.length>0){const e=new n.SphereGeometry(l,32,16,0,2*Math.PI,.5*Math.PI,1.5*Math.PI),s=new n.MeshBasicMaterial({fog:!1,side:n.BackSide,vertexColors:!0,depthWrite:!1,depthTest:!1});L(e,l,r,D(i),!1);const a=new n.Mesh(e,s);t.add(a)}return t.renderOrder=-1/0,t}(e);break;case"Shape":r=function(e){const t=e.fields;let r,i,s=new n.MeshBasicMaterial({color:0});for(let n=0,a=t.length;n0&&(r.transparent=!0)}else r=new n.MeshBasicMaterial({color:0});break;case"texture":const e=o[0];null!==e&&("ImageTexture"!==e.name&&"PixelTexture"!==e.name||(r.map=h(e)));break;case"textureTransform":null!==o[0]&&(t=h(o[0]));break;default:console.warn("THREE.VRMLLoader: Unknown field:",a)}}if(r.map){if(r.map.__type){switch(r.map.__type){case c.INTENSITY_ALPHA:r.opacity=1;break;case c.RGB:r.color.set(16777215);break;case c.RGBA:r.color.set(16777215),r.opacity=1}delete r.map.__type}t&&(r.map.center.copy(t.center),r.map.rotation=t.rotation,r.map.repeat.copy(t.scale),r.map.offset.copy(t.translation))}return r}(e);break;case"Material":r=function(e){const t={},r=e.fields;for(let i=0,s=r.length;i0){b=M(x,f(a,u),t,3)}else b=T(x,new n.Float32BufferAttribute(t,3));else if(a&&a.length>0){b=w(x,m(g(t,a),o))}else{b=w(x,m(t,o))}if(i)if(!0===v)if(l&&l.length>0){E=M(x,f(l,u),i,3)}else E=T(x,new n.Float32BufferAttribute(i,3));else if(l&&l.length>0){E=w(x,m(g(i,l),o))}else{E=w(x,m(i,o))}else E=R(x,r,p);if(s)if(c&&c.length>0){_=M(x,f(c,u),s,2)}else _=T(x,new n.Float32BufferAttribute(s,2));const S=new n.BufferGeometry,C=T(x,new n.Float32BufferAttribute(r,3));S.setAttribute("position",C),S.setAttribute("normal",E),b&&S.setAttribute("color",b);_&&S.setAttribute("uv",_);return S._solid=d,S._type="mesh",S}(e);break;case"IndexedLineSet":r=function(e){let t,r,i,s,a=!0;const o=e.fields;for(let n=0,p=o.length;n0){l=M(c,A(i),t,3)}else l=T(c,new n.Float32BufferAttribute(t,3));else if(i.length>0){l=C(c,v(g(t,i),s))}else{l=C(c,v(t,s))}const u=new n.BufferGeometry,d=T(c,new n.Float32BufferAttribute(r,3));u.setAttribute("position",d),l&&u.setAttribute("color",l);return u._type="line",u}(e);break;case"PointSet":r=function(e){let t,r;const i=e.fields;for(let n=0,a=i.length;n=s)&&(i+=3,n=i+1)}return r}function m(e,t){const r=[];let n=0;for(let i=0,s=t.length;i=s)&&(i+=3,n++)}return r}function g(e,t){const r=[];for(let n=0,i=t.length;n=n)&&(r+=2)}return t}function v(e,t){const r=[];let n=0;for(let i=0,s=t.length;i=s)&&(i+=2,n++)}return r}const y=new n.Vector3,x=new n.Vector3,b=new n.Vector3,E=new n.Vector2,_=new n.Vector2,S=new n.Vector2;function M(e,t,r,i){const s=[];for(let n=0,a=e.length;ni.y){o=Math.abs(e.y-u.y)/Math.abs(e.y-i.y);break}}else if(u.y>=e.y&&u.y0)throw console.error(n.errors),Error("THREE.VRMLLoader: Parsing errors detected.");return s.visit(c)}(e))}}class a{constructor(e){this.lexer=new i.Lexer(e)}lex(e){const t=this.lexer.tokenize(e);if(t.errors.length>0)throw console.error(t.errors),Error("THREE.VRMLLexer: Lexing errors detected.");return t}}class o extends i.CstParser{constructor(e){super(e);const t=this,r=e.Version,n=e.LCurly,i=e.RCurly,s=e.LSquare,a=e.RSquare,o=e.Identifier,l=e.RouteIdentifier,c=e.StringLiteral,h=e.HexLiteral,u=e.NumberLiteral,d=e.TrueLiteral,p=e.FalseLiteral,f=e.NullLiteral,m=e.DEF,g=e.USE,A=e.ROUTE,v=e.TO,y=e.NodeName;t.RULE("vrml",(function(){t.SUBRULE(t.version),t.AT_LEAST_ONE((function(){t.SUBRULE(t.node)})),t.MANY((function(){t.SUBRULE(t.route)}))})),t.RULE("version",(function(){t.CONSUME(r)})),t.RULE("node",(function(){t.OPTION((function(){t.SUBRULE(t.def)})),t.CONSUME(y),t.CONSUME(n),t.MANY((function(){t.SUBRULE(t.field)})),t.CONSUME(i)})),t.RULE("field",(function(){t.CONSUME(o),t.OR2([{ALT:function(){t.SUBRULE(t.singleFieldValue)}},{ALT:function(){t.SUBRULE(t.multiFieldValue)}}])})),t.RULE("def",(function(){t.CONSUME(m),t.OR([{ALT:function(){t.CONSUME(o)}},{ALT:function(){t.CONSUME(y)}}])})),t.RULE("use",(function(){t.CONSUME(g),t.OR([{ALT:function(){t.CONSUME(o)}},{ALT:function(){t.CONSUME(y)}}])})),t.RULE("singleFieldValue",(function(){t.AT_LEAST_ONE((function(){t.OR([{ALT:function(){t.SUBRULE(t.node)}},{ALT:function(){t.SUBRULE(t.use)}},{ALT:function(){t.CONSUME(c)}},{ALT:function(){t.CONSUME(h)}},{ALT:function(){t.CONSUME(u)}},{ALT:function(){t.CONSUME(d)}},{ALT:function(){t.CONSUME(p)}},{ALT:function(){t.CONSUME(f)}}])}))})),t.RULE("multiFieldValue",(function(){t.CONSUME(s),t.MANY((function(){t.OR([{ALT:function(){t.SUBRULE(t.node)}},{ALT:function(){t.SUBRULE(t.use)}},{ALT:function(){t.CONSUME(c)}},{ALT:function(){t.CONSUME(h)}},{ALT:function(){t.CONSUME(u)}},{ALT:function(){t.CONSUME(f)}}])})),t.CONSUME(a)})),t.RULE("route",(function(){t.CONSUME(A),t.CONSUME(l),t.CONSUME(v),t.CONSUME2(l)})),this.performSelfAnalysis()}}class l{constructor(e,t,r){this.a=e,this.b=t,this.c=r,this.normal=new n.Vector3}}const c={INTENSITY:1,INTENSITY_ALPHA:2,RGB:3,RGBA:4};t.VRMLLoader=s},7955:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(20614);class s extends n.Loader{constructor(e){super(e),this.gltfLoader=new i.GLTFLoader(e)}load(e,t,r,n){const i=this;this.gltfLoader.load(e,(function(r){try{i.parse(r,t)}catch(s){n?n(s):console.error(s),i.manager.itemError(e)}}),r,n)}setDRACOLoader(e){return this.gltfLoader.setDRACOLoader(e),this}parse(e,t){t(e)}}t.VRMLoader=s},39142:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(8083);class s extends n.Loader{constructor(e){super(e)}load(e,t,r,i){const s=this,a=new n.FileLoader(s.manager);a.setPath(s.path),a.setResponseType("arraybuffer"),a.setRequestHeader(s.requestHeader),a.setWithCredentials(s.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){function t(e,t){const r=e.length,n=new Float32Array(r+t.length);return n.set(e),n.set(t,r),n}var r=n.LoaderUtils.decodeText(new Uint8Array(e,0,250)).split("\n");return-1!==r[0].indexOf("xml")?function(e){function r(e){var t,r,n,i,s,a,o="undefined"!=typeof Uint8Array?Uint8Array:Array,l=[],c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=64;for(t=0;t0)throw new Error("Invalid string. Length must be a multiple of 4");a=new o(3*h/4-(s="="===e[h-2]?2:"="===e[h-1]?1:0)),n=s>0?h-4:h;var u=0;for(t=0,r=0;t>16,a[u++]=(65280&i)>>8,a[u++]=255&i;return 2===s?(i=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===s&&(i=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function s(e,n){var s,a,l,c,h=0;if("UInt64"===o.attributes.header_type?h=8:"UInt32"===o.attributes.header_type&&(h=4),"binary"===e.attributes.format&&n){var u,d,p,f,m,g;if("Float32"===e.attributes.type)var A=new Float32Array;else"Int64"===e.attributes.type&&(A=new Int32Array);d=(u=r(e["#text"]))[0];for(var v=1;v0?3-f%3:0,(m=[]).push(g),p=3*h,v=0;v0){r.attributes={};for(var n=0;n0&&(A[v].text=s(A[v],d)),v++;switch(p[f]){case"PointData":var x=parseInt(u.attributes.NumberOfPoints),b=g.attributes.Normals;if(x>0)for(var E=0,_=A.length;E<_;E++)if(b===A[E].attributes.Name){var S=A[E].attributes.NumberOfComponents;(c=new Float32Array(x*S)).set(A[E].text,0)}break;case"Points":(x=parseInt(u.attributes.NumberOfPoints))>0&&(S=g.DataArray.attributes.NumberOfComponents,(l=new Float32Array(x*S)).set(g.DataArray.text,0));break;case"Strips":var M=parseInt(u.attributes.NumberOfStrips);if(M>0){var w=new Int32Array(g.DataArray[0].text.length),C=new Int32Array(g.DataArray[1].text.length);w.set(g.DataArray[0].text,0),C.set(g.DataArray[1].text,0);var T=M+w.length;h=new Uint32Array(3*T-9*M);var I=0;for(E=0,_=M;E<_;E++){for(var B=[],R=0,P=C[E],D=0;R0&&(D=C[E-1]);var L=0;for(P=C[E],D=0;L0&&(D=C[E-1])}}break;case"Polys":var F=parseInt(u.attributes.NumberOfPolys);if(F>0){w=new Int32Array(g.DataArray[0].text.length),C=new Int32Array(g.DataArray[1].text.length),w.set(g.DataArray[0].text,0),C.set(g.DataArray[1].text,0),T=F+w.length,h=new Uint32Array(3*T-9*F),I=0;var U=0;for(E=0,_=F,D=0;E<_;){var O=[];for(R=0,P=C[E];R=3)for(var D=parseInt(P[0]),L=1,F=0;F=3)for(F=0;F=c.byteLength)break}var _=new n.BufferGeometry;return _.setIndex(new n.BufferAttribute(p,1)),_.setAttribute("position",new n.BufferAttribute(u,3)),d.length===u.length&&_.setAttribute("normal",new n.BufferAttribute(d,3)),_}(e)}}t.VTKLoader=s},56668:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);var s,a,o,l,c,h,u=(s=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},a=function(){function e(e,t){for(let n=0;n1&&void 0!==arguments[1]?arguments[1]:0;t-1&&r<2))break;var n=-1;t=(n=e.indexOf("\r\n",t))>0?n+2:(n=e.indexOf("\r",t))>0?n+1:e.indexOf("\n",t)+1}return e.substr(t)}},{key:"_readLine",value:function(e){for(var t=0;;){var r=-1;if(-1===(r=e.indexOf("//",t))&&(r=e.indexOf("#",t)),!(r>-1&&r<2))break;var n=-1;t=(n=e.indexOf("\r\n",t))>0?n+2:(n=e.indexOf("\r",t))>0?n+1:e.indexOf("\n",t)+1}return e.substr(t)}},{key:"_isBinary",value:function(e){var t=new DataView(e);if(84+50*t.getUint32(80,!0)===t.byteLength)return!0;var r=t.byteLength;for(let n=0;n127)return!0;return!1}},{key:"_ensureBinary",value:function(e){if("string"==typeof e){var t=new Uint8Array(e.length);for(let r=0;r0&&i>n)){r=-1===n?this._data.length:i+1;break}var a={children:[]},o=this._readLine(this._data.substr(r,n-r-1)).trim(),l=o.split(/ /g);if(l.length>0?(a.type=l[0],l.length>=2?a.name=l[1]:a.name=l[0]+this.Hierarchies.children.length):(a.name=o,a.type=""),"Animation"===a.type){a.data=this._data.substr(s,i-s).trim();var c=this._hierarchieParse(a,i+1);r=c.end,a.children=c.parent.children}else{var h=this._data.lastIndexOf(";",s>0?Math.min(s,i):i);if(a.data=this._data.substr(n,h-n).trim(),s<=0||i0||!this._currentObject.worked?setTimeout((function(){e._mainloop()}),1):setTimeout((function(){e.onLoad({models:e.Meshes,animations:e.animations})}),1)}},{key:"_mainProc",value:function(){for(var e=!1;;){if(!this._currentObject.worked){switch(this._currentObject.type){case"template":case"VertexDuplicationIndices":break;case"AnimTicksPerSecond":this.animTicksPerSecond=parseInt(this._currentObject.data);break;case"Frame":this._setFrame();break;case"FrameTransformMatrix":this._setFrameTransformMatrix();break;case"Mesh":this._changeRoot(),this._currentGeo={},this._currentGeo.name=this._currentObject.name.trim(),this._currentGeo.parentName=this._getParentName(this._currentObject).trim(),this._currentGeo.VertexSetedBoneCount=[],this._currentGeo.GeometryData={vertices:[],normals:[],uvs:[],skinIndices:[],skinWeights:[],indices:[],materialIndices:[]},this._currentGeo.Materials=[],this._currentGeo.normalVectors=[],this._currentGeo.BoneInfs=[],this._currentGeo.baseFrame=this._currentFrame,this._makeBoneFrom_CurrentFrame(),this._readVertexDatas(),e=!0;break;case"MeshNormals":this._readVertexDatas();break;case"MeshTextureCoords":this._setMeshTextureCoords();break;case"MeshMaterialList":this._setMeshMaterialList();break;case"Material":this._setMaterial();break;case"SkinWeights":this._setSkinWeights();break;case"AnimationSet":this._changeRoot(),this._currentAnime={},this._currentAnime.name=this._currentObject.name.trim(),this._currentAnime.AnimeFrames=[];break;case"Animation":this._currentAnimeFrames&&this._currentAnime.AnimeFrames.push(this._currentAnimeFrames),this._currentAnimeFrames=new l,this._currentAnimeFrames.boneName=this._currentObject.data.trim();break;case"AnimationKey":this._readAnimationKey(),e=!0}this._currentObject.worked=!0}if(this._currentObject.children.length>0){if(this._currentObject=this._currentObject.children.shift(),this.debug&&console.log("processing "+this._currentObject.name),e)break}else if(this._currentObject.worked&&this._currentObject.parent&&!this._currentObject.parent.parent&&this._changeRoot(),this._currentObject.parent?this._currentObject=this._currentObject.parent:e=!0,e)break}}},{key:"_changeRoot",value:function(){null!=this._currentGeo&&this._currentGeo.name&&this._makeOutputGeometry(),this._currentGeo={},null!=this._currentAnime&&this._currentAnime.name&&(this._currentAnimeFrames&&(this._currentAnime.AnimeFrames.push(this._currentAnimeFrames),this._currentAnimeFrames=null),this._makeOutputAnimation()),this._currentAnime={}}},{key:"_getParentName",value:function(e){return e.parent?e.parent.name?e.parent.name:this._getParentName(e.parent):""}},{key:"_setFrame",value:function(){this._nowFrameName=this._currentObject.name.trim(),this._currentFrame={},this._currentFrame.name=this._nowFrameName,this._currentFrame.children=[],this._currentObject.parent&&this._currentObject.parent.name&&(this._currentFrame.parentName=this._currentObject.parent.name),this.frameHierarchie.push(this._nowFrameName),this.HieStack[this._nowFrameName]=this._currentFrame}},{key:"_setFrameTransformMatrix",value:function(){this._currentFrame.FrameTransformMatrix=new n.Matrix4;var e=this._currentObject.data.split(",");this._ParseMatrixData(this._currentFrame.FrameTransformMatrix,e),this._makeBoneFrom_CurrentFrame()}},{key:"_makeBoneFrom_CurrentFrame",value:function(){if(this._currentFrame.FrameTransformMatrix){var e=new n.Bone;if(e.name=this._currentFrame.name,e.applyMatrix4(this._currentFrame.FrameTransformMatrix),e.matrixWorld=e.matrix,e.FrameTransformMatrix=this._currentFrame.FrameTransformMatrix,this._currentFrame.putBone=e,this._currentFrame.parentName)for(let e in this.HieStack)this.HieStack[e].name===this._currentFrame.parentName&&this.HieStack[e].putBone.add(this._currentFrame.putBone)}}},{key:"_readVertexDatas",value:function(){for(var e=0,t=0,r=0,n=0;;){var i=!1;if(0===r)e=this._readInt1(e).endRead,r=1,(n=this._currentObject.data.indexOf(";;",e)+1)<=0&&(n=this._currentObject.data.length);else{var s=0;switch(t){case 0:s=this._currentObject.data.indexOf(",",e)+1;break;case 1:s=this._currentObject.data.indexOf(";,",e)+1}switch((0===s||s>n)&&(s=n,r=0,i=!0),this._currentObject.type){case"Mesh":switch(t){case 0:this._readVertex1(this._currentObject.data.substr(e,s-e));break;case 1:this._readFace1(this._currentObject.data.substr(e,s-e))}break;case"MeshNormals":0===t&&this._readNormalVector1(this._currentObject.data.substr(e,s-e))}e=s+1,i&&t++}if(e>=this._currentObject.data.length)break}}},{key:"_readInt1",value:function(e){var t=this._currentObject.data.indexOf(";",e);return{refI:parseInt(this._currentObject.data.substr(e,t-e)),endRead:t+1}}},{key:"_readVertex1",value:function(e){var t=this._readLine(e.trim()).substr(0,e.length-2).split(";");this._currentGeo.GeometryData.vertices.push(parseFloat(t[0]),parseFloat(t[1]),parseFloat(t[2])),this._currentGeo.GeometryData.skinIndices.push(0,0,0,0),this._currentGeo.GeometryData.skinWeights.push(1,0,0,0),this._currentGeo.VertexSetedBoneCount.push(0)}},{key:"_readFace1",value:function(e){var t=this._readLine(e.trim()).substr(2,e.length-4).split(",");this._currentGeo.GeometryData.indices.push(parseInt(t[0],10),parseInt(t[1],10),parseInt(t[2],10))}},{key:"_readNormalVector1",value:function(e){var t=this._readLine(e.trim()).substr(0,e.length-2).split(";");this._currentGeo.GeometryData.normals.push(parseFloat(t[0]),parseFloat(t[1]),parseFloat(t[2]))}},{key:"_buildGeometry",value:function(){var e=new n.BufferGeometry,t=[],r=[],i=[],s=[],a=[],o=this._currentGeo.GeometryData;for(let n=0,u=o.indices.length;n=this._currentObject.data.length)break}}},{key:"_setMeshMaterialList",value:function(){for(var e=0,t=0,r=0;;){if(r<2)e=this._readInt1(e).endRead,r++;else{var n=this._currentObject.data.indexOf(";",e);-1===n&&(n=this._currentObject.data.length,t=3,r=0);var i=this._currentObject.data.substr(e,n-e),s=this._readLine(i.trim()).split(",");for(let e=0;e=this._currentObject.data.length||t>=3)break}}},{key:"_setMaterial",value:function(){var e=new n.MeshPhongMaterial({color:16777215*Math.random()});e.side=n.FrontSide,e.name=this._currentObject.name;var t=0,r=this._currentObject.data.indexOf(";;",t),i=this._currentObject.data.substr(t,r-t),s=this._readLine(i.trim()).split(";");e.color.r=parseFloat(s[0]),e.color.g=parseFloat(s[1]),e.color.b=parseFloat(s[2]),t=r+2,r=this._currentObject.data.indexOf(";",t),i=this._currentObject.data.substr(t,r-t),e.shininess=parseFloat(this._readLine(i)),t=r+1,r=this._currentObject.data.indexOf(";;",t),i=this._currentObject.data.substr(t,r-t);var a=this._readLine(i.trim()).split(";");e.specular.r=parseFloat(a[0]),e.specular.g=parseFloat(a[1]),e.specular.b=parseFloat(a[2]),t=r+2,-1===(r=this._currentObject.data.indexOf(";;",t))&&(r=this._currentObject.data.length),i=this._currentObject.data.substr(t,r-t);var o=this._readLine(i.trim()).split(";");e.emissive.r=parseFloat(o[0]),e.emissive.g=parseFloat(o[1]),e.emissive.b=parseFloat(o[2]);for(var l=null;this._currentObject.children.length>0;){l=this._currentObject.children.shift(),this.debug&&console.log("processing "+l.name);var c=l.data.substr(1,l.data.length-2);switch(l.type){case"TextureFilename":e.map=this.texloader.load(c);break;case"BumpMapFilename":e.bumpMap=this.texloader.load(c),e.bumpScale=.05;break;case"NormalMapFilename":e.normalMap=this.texloader.load(c),e.normalScale=new n.Vector2(2,2);break;case"EmissiveMapFilename":e.emissiveMap=this.texloader.load(c);break;case"LightMapFilename":e.lightMap=this.texloader.load(c)}}this._currentGeo.Materials.push(e)}},{key:"_setSkinWeights",value:function(){var e=new o,t=0,r=this._currentObject.data.indexOf(";",t),i=this._currentObject.data.substr(t,r-t);t=r+1,e.boneName=i.substr(1,i.length-2),e.BoneIndex=this._currentGeo.BoneInfs.length,t=(r=this._currentObject.data.indexOf(";",t))+1,r=this._currentObject.data.indexOf(";",t),i=this._currentObject.data.substr(t,r-t);var s=this._readLine(i.trim()).split(",");for(let n=0;n0)for(let e=0;e0){var t=[];this._makePutBoneList(this._currentGeo.baseFrame.parentName,t);for(let e=0;e4&&console.log("warn! over 4 bone weight! :"+i)}}for(let e=0;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Loader{load(e,t,r,i){const s=this,a=new n.FileLoader(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(r){try{t(s.parse(r))}catch(n){i?i(n):console.error(n),s.manager.itemError(e)}}),r,i)}parse(e){const t=e.split("\n"),r=[],i=[];for(let n of t){if(n=n.trim(),"#"===n.charAt(0))continue;const e=n.split(/\s+/);3===e.length&&(r.push(parseFloat(e[0])),r.push(parseFloat(e[1])),r.push(parseFloat(e[2]))),6===e.length&&(r.push(parseFloat(e[0])),r.push(parseFloat(e[1])),r.push(parseFloat(e[2])),i.push(parseFloat(e[3])/255),i.push(parseFloat(e[4])/255),i.push(parseFloat(e[5])/255))}const s=new n.BufferGeometry;return s.setAttribute("position",new n.Float32BufferAttribute(r,3)),i.length>0&&s.setAttribute("color",new n.Float32BufferAttribute(i,3)),s}}t.XYZLoader=i},40876:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(90153),i=r(30997);class s{constructor(e){this.dv=new DataView(e),this.offset=0,this._textDecoder=new TextDecoder,this._bytes=new Uint8Array(e)}size(){return this.dv.buffer.byteLength}setOffset(e){e>0&&e=this.size()}skip(e){this.offset+=e}getUint8(){var e=this.dv.getUint8(this.offset);return this.offset+=1,e}getUint16(){var e=this.dv.getUint16(this.offset);return this.offset+=2,e}getInt32(){var e=this.dv.getInt32(this.offset,!1);return this.offset+=4,e}getUint32(){var e=this.dv.getUint32(this.offset,!1);return this.offset+=4,e}getUint64(){return 4294967296*this.getUint32()+this.getUint32()}getFloat32(){var e=this.dv.getFloat32(this.offset,!1);return this.offset+=4,e}getFloat32Array(e){for(var t=[],r=0;r ( ${this.dataOffset+this.length} )`,0==this.node?" {":"",this.skipped?"SKIPPED":"",0==this.node&&this.skipped?"}":""),0!=this.node||this.skipped||(this.depth+=1,this.formList.push(this.dataOffset+this.length)),this.skipped=!1}}closeForms(){if(this.active)for(var e=this.formList.length-1;e>=0;e--)this.offset>=this.formList[e]&&(this.depth-=1,console.log("| ".repeat(this.depth)+"}"),this.formList.splice(-1,1))}}function o(e){return e.length+1+((e.length+1)%2?1:0)}t.IFFParser=class{constructor(){this.debugger=new a}parse(e){if(this.reader=new s(e),this.tree={materials:{},layers:[],tags:[],textures:[]},this.currentLayer=this.tree,this.currentForm=this.tree,this.parseTopForm(),void 0!==this.tree.format){if("LWO2"===this.tree.format)for(this.parser=new n.LWO2Parser(this);!this.reader.endOfFile();)this.parser.parseBlock();else if("LWO3"===this.tree.format)for(this.parser=new i.LWO3Parser(this);!this.reader.endOfFile();)this.parser.parseBlock();return this.debugger.offset=this.reader.offset,this.debugger.closeForms(),this.tree}}parseTopForm(){if(this.debugger.offset=this.reader.offset,"FORM"===this.reader.getIDTag()){var e=this.reader.getUint32();this.debugger.dataOffset=this.reader.offset,this.debugger.length=e;var t=this.reader.getIDTag();("LWO2"===t||"LWO3"===t)&&(this.tree.format=t),this.debugger.node=0,this.debugger.nodeID=t,this.debugger.log()}else console.warn("LWOLoader: Top-level FORM missing.")}parseForm(e){var t=this.reader.getIDTag();switch(t){case"ISEQ":case"ANIM":case"STCC":case"VPVL":case"VPRM":case"NROT":case"WRPW":case"WRPH":case"FUNC":case"FALL":case"OPAC":case"GRAD":case"ENVS":case"VMOP":case"VMBG":case"OMAX":case"STEX":case"CKBG":case"CKEY":case"VMLA":case"VMLB":this.debugger.skipped=!0,this.skipForm(e);break;case"META":case"NNDS":case"NODS":case"NDTA":case"ADAT":case"AOVS":case"BLOK":case"IBGC":case"IOPC":case"IIMG":case"TXTR":this.debugger.length=4,this.debugger.skipped=!0;break;case"IFAL":case"ISCL":case"IPOS":case"IROT":case"IBMP":case"IUTD":case"IVTD":this.parseTextureNodeAttribute(t);break;case"ENVL":this.parseEnvelope(e);break;case"CLIP":"LWO2"===this.tree.format?this.parseForm(e):this.parseClip(e);break;case"STIL":this.parseImage();break;case"XREF":this.reader.skip(8),this.currentForm.referenceTexture={index:this.reader.getUint32(),refName:this.reader.getString()};break;case"IMST":this.parseImageStateForm(e);break;case"SURF":this.parseSurfaceForm(e);break;case"VALU":this.parseValueForm(e);break;case"NTAG":this.parseSubNode(e);break;case"ATTR":case"SATR":this.setupForm("attributes",e);break;case"NCON":this.parseConnections(e);break;case"SSHA":this.parentForm=this.currentForm,this.currentForm=this.currentSurface,this.setupForm("surfaceShader",e);break;case"SSHD":this.setupForm("surfaceShaderData",e);break;case"ENTR":this.parseEntryForm(e);break;case"IMAP":this.parseImageMap(e);break;case"TAMP":this.parseXVAL("amplitude",e);break;case"TMAP":this.setupForm("textureMap",e);break;case"CNTR":this.parseXVAL3("center",e);break;case"SIZE":this.parseXVAL3("scale",e);break;case"ROTA":this.parseXVAL3("rotation",e);break;default:this.parseUnknownForm(t,e)}this.debugger.node=0,this.debugger.nodeID=t,this.debugger.log()}setupForm(e,t){this.currentForm||(this.currentForm=this.currentNode),this.currentFormEnd=this.reader.offset+t,this.parentForm=this.currentForm,this.currentForm[e]?(console.warn("LWOLoader: form already exists on parent: ",e,this.currentForm),this.currentForm=this.currentForm[e]):(this.currentForm[e]={},this.currentForm=this.currentForm[e])}skipForm(e){this.reader.skip(e-4)}parseUnknownForm(e,t){var r,n,i;console.warn("LWOLoader: unknown FORM encountered: "+e,t),r=this.reader.dv.buffer,n=this.reader.offset,i=t-4,console.log((new TextDecoder).decode(new Uint8Array(r,n,i))),this.reader.skip(t-4)}parseSurfaceForm(e){this.reader.skip(8);var t=this.reader.getString(),r={attributes:{},connections:{},name:t,inputName:t,nodes:{},source:this.reader.getString()};this.tree.materials[t]=r,this.currentSurface=r,this.parentForm=this.tree.materials,this.currentForm=r,this.currentFormEnd=this.reader.offset+e}parseSurfaceLwo2(e){var t=this.reader.getString(),r={attributes:{},connections:{},name:t,nodes:{},source:this.reader.getString()};this.tree.materials[t]=r,this.currentSurface=r,this.parentForm=this.tree.materials,this.currentForm=r,this.currentFormEnd=this.reader.offset+e}parseSubNode(e){this.reader.skip(8);var t={name:this.reader.getString()};this.currentForm=t,this.currentNode=t,this.currentFormEnd=this.reader.offset+e}parseConnections(e){this.currentFormEnd=this.reader.offset+e,this.parentForm=this.currentForm,this.currentForm=this.currentSurface.connections}parseEntryForm(e){this.reader.skip(8);var t=this.reader.getString();this.currentForm=this.currentNode.attributes,this.setupForm(t,e)}parseValueForm(){this.reader.skip(8);var e=this.reader.getString();"double"===e?this.currentForm.value=this.reader.getUint64():"int"===e?this.currentForm.value=this.reader.getUint32():"vparam"===e?(this.reader.skip(24),this.currentForm.value=this.reader.getFloat64()):"vparam3"===e&&(this.reader.skip(24),this.currentForm.value=this.reader.getFloat64Array(3))}parseImageStateForm(){this.reader.skip(8),this.currentForm.mipMapLevel=this.reader.getFloat32()}parseImageMap(e){this.currentFormEnd=this.reader.offset+e,this.parentForm=this.currentForm,this.currentForm.maps||(this.currentForm.maps=[]);var t={};this.currentForm.maps.push(t),this.currentForm=t,this.reader.skip(10)}parseTextureNodeAttribute(e){switch(this.reader.skip(28),this.reader.skip(20),e){case"ISCL":this.currentNode.scale=this.reader.getFloat32Array(3);break;case"IPOS":this.currentNode.position=this.reader.getFloat32Array(3);break;case"IROT":this.currentNode.rotation=this.reader.getFloat32Array(3);break;case"IFAL":this.currentNode.falloff=this.reader.getFloat32Array(3);break;case"IBMP":this.currentNode.amplitude=this.reader.getFloat32();break;case"IUTD":this.currentNode.uTiles=this.reader.getFloat32();break;case"IVTD":this.currentNode.vTiles=this.reader.getFloat32()}this.reader.skip(2)}parseEnvelope(e){this.reader.skip(e-4)}parseClip(e){if("FORM"===this.reader.getIDTag())return this.reader.skip(16),void(this.currentNode.fileName=this.reader.getString());this.reader.setOffset(this.reader.offset-4),this.currentFormEnd=this.reader.offset+e,this.parentForm=this.currentForm,this.reader.skip(8);var t={index:this.reader.getUint32()};this.tree.textures.push(t),this.currentForm=t}parseClipLwo2(e){for(var t={index:this.reader.getUint32(),fileName:""};;){var r=this.reader.getIDTag(),n=this.reader.getUint16();if("STIL"===r){t.fileName=this.reader.getString();break}if(n>=e)break}this.tree.textures.push(t),this.currentForm=t}parseImage(){this.reader.skip(8),this.currentForm.fileName=this.reader.getString()}parseXVAL(e,t){var r=this.reader.offset+t-4;this.reader.skip(8),this.currentForm[e]=this.reader.getFloat32(),this.reader.setOffset(r)}parseXVAL3(e,t){var r=this.reader.offset+t-4;this.reader.skip(8),this.currentForm[e]={x:this.reader.getFloat32(),y:this.reader.getFloat32(),z:this.reader.getFloat32()},this.reader.setOffset(r)}parseObjectTag(){this.tree.objectTags||(this.tree.objectTags={}),this.tree.objectTags[this.reader.getIDTag()]={tagString:this.reader.getString()}}parseLayer(e){var t={number:this.reader.getUint16(),flags:this.reader.getUint16(),pivot:this.reader.getFloat32Array(3),name:this.reader.getString()};this.tree.layers.push(t),this.currentLayer=t;var r=16+o(this.currentLayer.name);this.currentLayer.parent=r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.LWO2Parser=class{constructor(e){this.IFF=e}parseBlock(){this.IFF.debugger.offset=this.IFF.reader.offset,this.IFF.debugger.closeForms();const e=this.IFF.reader.getIDTag();let t=this.IFF.reader.getUint32();switch(t>this.IFF.reader.dv.byteLength-this.IFF.reader.offset&&(this.IFF.reader.offset-=4,t=this.IFF.reader.getUint16()),this.IFF.debugger.dataOffset=this.IFF.reader.offset,this.IFF.debugger.length=t,e){case"FORM":this.IFF.parseForm(t);break;case"ICON":case"VMPA":case"BBOX":case"NORM":case"PRE ":case"POST":case"KEY ":case"SPAN":case"TIME":case"CLRS":case"CLRA":case"FILT":case"DITH":case"CONT":case"BRIT":case"SATR":case"HUE ":case"GAMM":case"NEGA":case"IFLT":case"PFLT":case"PROJ":case"AXIS":case"AAST":case"PIXB":case"AUVO":case"STCK":case"PROC":case"VALU":case"FUNC":case"PNAM":case"INAM":case"GRST":case"GREN":case"GRPT":case"FKEY":case"IKEY":case"CSYS":case"OPAQ":case"CMAP":case"NLOC":case"NZOM":case"NVER":case"NSRV":case"NVSK":case"NCRD":case"WRPW":case"WRPH":case"NMOD":case"NSEL":case"NPRW":case"NPLA":case"NODS":case"VERS":case"ENUM":case"TAG ":case"OPAC":case"CGMD":case"CGTY":case"CGST":case"CGEN":case"CGTS":case"CGTE":case"OSMP":case"OMDE":case"OUTR":case"FLAG":case"TRNL":case"GLOW":case"GVAL":case"SHRP":case"RFOP":case"RSAN":case"TROP":case"RBLR":case"TBLR":case"CLRH":case"CLRF":case"ADTR":case"LINE":case"ALPH":case"VCOL":case"ENAB":case"TMAP":this.IFF.debugger.skipped=!0,this.IFF.reader.skip(t);break;case"SURF":this.IFF.parseSurfaceLwo2(t);break;case"CLIP":this.IFF.parseClipLwo2(t);break;case"IPIX":case"IMIP":case"IMOD":case"AMOD":case"IINV":case"INCR":case"IAXS":case"IFOT":case"ITIM":case"IWRL":case"IUTI":case"IINX":case"IINY":case"IINZ":case"IREF":4===t?this.IFF.currentNode[e]=this.IFF.reader.getInt32():this.IFF.reader.skip(t);break;case"OTAG":this.IFF.parseObjectTag();break;case"LAYR":this.IFF.parseLayer(t);break;case"PNTS":this.IFF.parsePoints(t);break;case"VMAP":this.IFF.parseVertexMapping(t);break;case"AUVU":case"AUVN":this.IFF.reader.skip(t-1),this.IFF.reader.getVariableLengthIndex();break;case"POLS":this.IFF.parsePolygonList(t);break;case"TAGS":this.IFF.parseTagStrings(t);break;case"PTAG":this.IFF.parsePolygonTagMapping(t);break;case"VMAD":this.IFF.parseVertexMapping(t,!0);break;case"DESC":this.IFF.currentForm.description=this.IFF.reader.getString();break;case"TEXT":case"CMNT":case"NCOM":this.IFF.currentForm.comment=this.IFF.reader.getString();break;case"NAME":this.IFF.currentForm.channelName=this.IFF.reader.getString();break;case"WRAP":this.IFF.currentForm.wrap={w:this.IFF.reader.getUint16(),h:this.IFF.reader.getUint16()};break;case"IMAG":const r=this.IFF.reader.getVariableLengthIndex();this.IFF.currentForm.imageIndex=r;break;case"OREF":this.IFF.currentForm.referenceObject=this.IFF.reader.getString();break;case"ROID":this.IFF.currentForm.referenceObjectID=this.IFF.reader.getUint32();break;case"SSHN":this.IFF.currentSurface.surfaceShaderName=this.IFF.reader.getString();break;case"AOVN":this.IFF.currentSurface.surfaceCustomAOVName=this.IFF.reader.getString();break;case"NSTA":this.IFF.currentForm.disabled=this.IFF.reader.getUint16();break;case"NRNM":this.IFF.currentForm.realName=this.IFF.reader.getString();break;case"NNME":this.IFF.currentForm.refName=this.IFF.reader.getString(),this.IFF.currentSurface.nodes[this.IFF.currentForm.refName]=this.IFF.currentForm;break;case"INME":this.IFF.currentForm.nodeName||(this.IFF.currentForm.nodeName=[]),this.IFF.currentForm.nodeName.push(this.IFF.reader.getString());break;case"IINN":this.IFF.currentForm.inputNodeName||(this.IFF.currentForm.inputNodeName=[]),this.IFF.currentForm.inputNodeName.push(this.IFF.reader.getString());break;case"IINM":this.IFF.currentForm.inputName||(this.IFF.currentForm.inputName=[]),this.IFF.currentForm.inputName.push(this.IFF.reader.getString());break;case"IONM":this.IFF.currentForm.inputOutputName||(this.IFF.currentForm.inputOutputName=[]),this.IFF.currentForm.inputOutputName.push(this.IFF.reader.getString());break;case"FNAM":this.IFF.currentForm.fileName=this.IFF.reader.getString();break;case"CHAN":4===t?this.IFF.currentForm.textureChannel=this.IFF.reader.getIDTag():this.IFF.reader.skip(t);break;case"SMAN":const n=this.IFF.reader.getFloat32();this.IFF.currentSurface.attributes.smooth=!(n<0);break;case"COLR":this.IFF.currentSurface.attributes.Color={value:this.IFF.reader.getFloat32Array(3)},this.IFF.reader.skip(2);break;case"LUMI":this.IFF.currentSurface.attributes.Luminosity={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"SPEC":this.IFF.currentSurface.attributes.Specular={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"DIFF":this.IFF.currentSurface.attributes.Diffuse={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"REFL":this.IFF.currentSurface.attributes.Reflection={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"GLOS":this.IFF.currentSurface.attributes.Glossiness={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"TRAN":this.IFF.currentSurface.attributes.opacity=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"BUMP":this.IFF.currentSurface.attributes.bumpStrength=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"SIDE":this.IFF.currentSurface.attributes.side=this.IFF.reader.getUint16();break;case"RIMG":this.IFF.currentSurface.attributes.reflectionMap=this.IFF.reader.getVariableLengthIndex();break;case"RIND":this.IFF.currentSurface.attributes.refractiveIndex=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"TIMG":this.IFF.currentSurface.attributes.refractionMap=this.IFF.reader.getVariableLengthIndex();break;case"IMAP":this.IFF.reader.skip(2);break;case"IUVI":this.IFF.currentNode.UVChannel=this.IFF.reader.getString(t);break;case"IUTL":this.IFF.currentNode.widthWrappingMode=this.IFF.reader.getUint32();break;case"IVTL":this.IFF.currentNode.heightWrappingMode=this.IFF.reader.getUint32();break;case"BLOK":break;default:this.IFF.parseUnknownCHUNK(e,t)}"FORM"!=e&&(this.IFF.debugger.node=1,this.IFF.debugger.nodeID=e,this.IFF.debugger.log()),this.IFF.reader.offset>=this.IFF.currentFormEnd&&(this.IFF.currentForm=this.IFF.parentForm)}}},30997:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.LWO3Parser=class{constructor(e){this.IFF=e}parseBlock(){this.IFF.debugger.offset=this.IFF.reader.offset,this.IFF.debugger.closeForms();const e=this.IFF.reader.getIDTag(),t=this.IFF.reader.getUint32();switch(this.IFF.debugger.dataOffset=this.IFF.reader.offset,this.IFF.debugger.length=t,e){case"FORM":this.IFF.parseForm(t);break;case"ICON":case"VMPA":case"BBOX":case"NORM":case"PRE ":case"POST":case"KEY ":case"SPAN":case"TIME":case"CLRS":case"CLRA":case"FILT":case"DITH":case"CONT":case"BRIT":case"SATR":case"HUE ":case"GAMM":case"NEGA":case"IFLT":case"PFLT":case"PROJ":case"AXIS":case"AAST":case"PIXB":case"STCK":case"VALU":case"PNAM":case"INAM":case"GRST":case"GREN":case"GRPT":case"FKEY":case"IKEY":case"CSYS":case"OPAQ":case"CMAP":case"NLOC":case"NZOM":case"NVER":case"NSRV":case"NCRD":case"NMOD":case"NSEL":case"NPRW":case"NPLA":case"VERS":case"ENUM":case"TAG ":case"CGMD":case"CGTY":case"CGST":case"CGEN":case"CGTS":case"CGTE":case"OSMP":case"OMDE":case"OUTR":case"FLAG":case"TRNL":case"SHRP":case"RFOP":case"RSAN":case"TROP":case"RBLR":case"TBLR":case"CLRH":case"CLRF":case"ADTR":case"GLOW":case"LINE":case"ALPH":case"VCOL":case"ENAB":this.IFF.debugger.skipped=!0,this.IFF.reader.skip(t);break;case"IPIX":case"IMIP":case"IMOD":case"AMOD":case"IINV":case"INCR":case"IAXS":case"IFOT":case"ITIM":case"IWRL":case"IUTI":case"IINX":case"IINY":case"IINZ":case"IREF":4===t?this.IFF.currentNode[e]=this.IFF.reader.getInt32():this.IFF.reader.skip(t);break;case"OTAG":this.IFF.parseObjectTag();break;case"LAYR":this.IFF.parseLayer(t);break;case"PNTS":this.IFF.parsePoints(t);break;case"VMAP":this.IFF.parseVertexMapping(t);break;case"POLS":this.IFF.parsePolygonList(t);break;case"TAGS":this.IFF.parseTagStrings(t);break;case"PTAG":this.IFF.parsePolygonTagMapping(t);break;case"VMAD":this.IFF.parseVertexMapping(t,!0);break;case"DESC":this.IFF.currentForm.description=this.IFF.reader.getString();break;case"TEXT":case"CMNT":case"NCOM":this.IFF.currentForm.comment=this.IFF.reader.getString();break;case"NAME":this.IFF.currentForm.channelName=this.IFF.reader.getString();break;case"WRAP":this.IFF.currentForm.wrap={w:this.IFF.reader.getUint16(),h:this.IFF.reader.getUint16()};break;case"IMAG":const r=this.IFF.reader.getVariableLengthIndex();this.IFF.currentForm.imageIndex=r;break;case"OREF":this.IFF.currentForm.referenceObject=this.IFF.reader.getString();break;case"ROID":this.IFF.currentForm.referenceObjectID=this.IFF.reader.getUint32();break;case"SSHN":this.IFF.currentSurface.surfaceShaderName=this.IFF.reader.getString();break;case"AOVN":this.IFF.currentSurface.surfaceCustomAOVName=this.IFF.reader.getString();break;case"NSTA":this.IFF.currentForm.disabled=this.IFF.reader.getUint16();break;case"NRNM":this.IFF.currentForm.realName=this.IFF.reader.getString();break;case"NNME":this.IFF.currentForm.refName=this.IFF.reader.getString(),this.IFF.currentSurface.nodes[this.IFF.currentForm.refName]=this.IFF.currentForm;break;case"INME":this.IFF.currentForm.nodeName||(this.IFF.currentForm.nodeName=[]),this.IFF.currentForm.nodeName.push(this.IFF.reader.getString());break;case"IINN":this.IFF.currentForm.inputNodeName||(this.IFF.currentForm.inputNodeName=[]),this.IFF.currentForm.inputNodeName.push(this.IFF.reader.getString());break;case"IINM":this.IFF.currentForm.inputName||(this.IFF.currentForm.inputName=[]),this.IFF.currentForm.inputName.push(this.IFF.reader.getString());break;case"IONM":this.IFF.currentForm.inputOutputName||(this.IFF.currentForm.inputOutputName=[]),this.IFF.currentForm.inputOutputName.push(this.IFF.reader.getString());break;case"FNAM":this.IFF.currentForm.fileName=this.IFF.reader.getString();break;case"CHAN":4===t?this.IFF.currentForm.textureChannel=this.IFF.reader.getIDTag():this.IFF.reader.skip(t);break;case"SMAN":const n=this.IFF.reader.getFloat32();this.IFF.currentSurface.attributes.smooth=!(n<0);break;case"COLR":this.IFF.currentSurface.attributes.Color={value:this.IFF.reader.getFloat32Array(3)},this.IFF.reader.skip(2);break;case"LUMI":this.IFF.currentSurface.attributes.Luminosity={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"SPEC":this.IFF.currentSurface.attributes.Specular={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"DIFF":this.IFF.currentSurface.attributes.Diffuse={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"REFL":this.IFF.currentSurface.attributes.Reflection={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"GLOS":this.IFF.currentSurface.attributes.Glossiness={value:this.IFF.reader.getFloat32()},this.IFF.reader.skip(2);break;case"TRAN":this.IFF.currentSurface.attributes.opacity=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"BUMP":this.IFF.currentSurface.attributes.bumpStrength=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"SIDE":this.IFF.currentSurface.attributes.side=this.IFF.reader.getUint16();break;case"RIMG":this.IFF.currentSurface.attributes.reflectionMap=this.IFF.reader.getVariableLengthIndex();break;case"RIND":this.IFF.currentSurface.attributes.refractiveIndex=this.IFF.reader.getFloat32(),this.IFF.reader.skip(2);break;case"TIMG":this.IFF.currentSurface.attributes.refractionMap=this.IFF.reader.getVariableLengthIndex();break;case"IMAP":this.IFF.currentSurface.attributes.imageMapIndex=this.IFF.reader.getUint32();break;case"IUVI":this.IFF.currentNode.UVChannel=this.IFF.reader.getString(t);break;case"IUTL":this.IFF.currentNode.widthWrappingMode=this.IFF.reader.getUint32();break;case"IVTL":this.IFF.currentNode.heightWrappingMode=this.IFF.reader.getUint32();break;default:this.IFF.parseUnknownCHUNK(e,t)}"FORM"!=e&&(this.IFF.debugger.node=1,this.IFF.debugger.nodeID=e,this.IFF.debugger.log()),this.IFF.reader.offset>=this.IFF.currentFormEnd&&(this.IFF.currentForm=this.IFF.parentForm)}}},84145:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Vector3,s=new n.Vector3,a=new n.Vector3;class o{constructor(e=new n.Vector3(0,0,0),t=new n.Vector3(0,1,0),r=1){this.start=e,this.end=t,this.radius=r}clone(){return new o(this.start.clone(),this.end.clone(),this.radius)}set(e,t,r){this.start.copy(e),this.end.copy(t),this.radius=r}copy(e){this.start.copy(e.start),this.end.copy(e.end),this.radius=e.radius}getCenter(e){return e.copy(this.end).add(this.start).multiplyScalar(.5)}translate(e){this.start.add(e),this.end.add(e)}checkAABBAxis(e,t,r,n,i,s,a,o,l){return(i-e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={};t.ColorConverter=class{static setHSV(e,t,r,i){return t=n.MathUtils.euclideanModulo(t,1),r=n.MathUtils.clamp(r,0,1),i=n.MathUtils.clamp(i,0,1),e.setHSL(t,r*i/((t=(2-r)*i)<1?t:2-t),.5*t)}static getHSV(e,t){return e.getHSL(i),i.s*=i.l<.5?i.l:1-i.l,t.h=i.h,t.s=2*i.s/(i.l+i.s),t.v=i.l+i.s,t}static setCMYK(e,t,r,n,i){const s=(1-t)*(1-i),a=(1-r)*(1-i),o=(1-n)*(1-i);return e.setRGB(s,a,o)}static getCMYK(e,t){const r=e.r,n=e.g,i=e.b,s=1-Math.max(r,n,i),a=(1-r-s)/(1-s),o=(1-n-s)/(1-s),l=(1-i-s)/(1-s);return t.c=a,t.m=o,t.y=l,t.k=s,t}}},90515:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Vector3,s=new n.Line3,a=new n.Plane,o=new n.Vector3,l=new n.Triangle;class c{constructor(){this.normal=new n.Vector3,this.midpoint=new n.Vector3,this.area=0,this.constant=0,this.outside=null,this.mark=0,this.edge=null}static create(e,t,r){const n=new c,i=new h(e,n),s=new h(t,n),a=new h(r,n);return i.next=a.prev=s,s.next=i.prev=a,a.next=s.prev=i,n.edge=i,n.compute()}getEdge(e){let t=this.edge;for(;e>0;)t=t.next,e--;for(;e<0;)t=t.prev,e++;return t}compute(){const e=this.edge.tail(),t=this.edge.head(),r=this.edge.next.head();return l.set(e.point,t.point,r.point),l.getNormal(this.normal),l.getMidpoint(this.midpoint),this.area=l.getArea(),this.constant=this.normal.dot(this.midpoint),this}distanceToPoint(e){return this.normal.dot(e)-this.constant}}class h{constructor(e,t){this.vertex=e,this.prev=null,this.next=null,this.twin=null,this.face=t}head(){return this.vertex}tail(){return this.prev?this.prev.vertex:null}length(){const e=this.head(),t=this.tail();return null!==t?t.point.distanceTo(e.point):-1}lengthSquared(){const e=this.head(),t=this.tail();return null!==t?t.point.distanceToSquared(e.point):-1}setTwin(e){return this.twin=e,e.twin=this,this}}class u{constructor(e){this.point=e,this.prev=null,this.next=null,this.face=null}}class d{constructor(){this.head=null,this.tail=null}first(){return this.head}last(){return this.tail}clear(){return this.head=this.tail=null,this}insertBefore(e,t){return t.prev=e.prev,t.next=e,null===t.prev?this.head=t:t.prev.next=t,e.prev=t,this}insertAfter(e,t){return t.prev=e,t.next=e.next,null===t.next?this.tail=t:t.next.prev=t,e.next=t,this}append(e){return null===this.head?this.head=e:this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e,this}appendChain(e){for(null===this.head?this.head=e:this.tail.next=e,e.prev=this.tail;null!==e.next;)e=e.next;return this.tail=e,this}remove(e){return null===e.prev?this.head=e.next:e.prev.next=e.next,null===e.next?this.tail=e.prev:e.next.prev=e.prev,this}removeSubList(e,t){return null===e.prev?this.head=t.next:e.prev.next=t.next,null===t.next?this.tail=e.prev:t.next.prev=e.prev,this}isEmpty(){return null===this.head}}t.ConvexHull=class{constructor(){this.tolerance=-1,this.faces=[],this.newFaces=[],this.assigned=new d,this.unassigned=new d,this.vertices=[]}setFromPoints(e){if(e.length>=4){this.makeEmpty();for(let t=0,r=e.length;tthis.tolerance)return!1}return!0}intersectRay(e,t){const r=this.faces;let n=-1/0,i=1/0;for(let s=0,a=r.length;s0&&o>=0)return null;const l=0!==o?-a/o:0;if(!(l<=0)&&(o>0?i=Math.min(l,i):n=Math.max(l,n),n>i))return null}return n!==-1/0?e.at(n,t):e.at(i,t),t}intersectsRay(e){return null!==this.intersectRay(e,i)}makeEmpty(){return this.faces=[],this.vertices=[],this}addVertexToFace(e,t){return e.face=t,null===t.outside?this.assigned.append(e):this.assigned.insertBefore(t.outside,e),t.outside=e,this}removeVertexFromFace(e,t){return e===t.outside&&(null!==e.next&&e.next.face===t?t.outside=e.next:t.outside=null),this.assigned.remove(e),this}removeAllVerticesFromFace(e){if(null!==e.outside){const t=e.outside;let r=e.outside;for(;null!==r.next&&r.next.face===e;)r=r.next;return this.assigned.removeSubList(t,r),t.prev=r.next=null,e.outside=null,t}}deleteFaceVertices(e,t){const r=this.removeAllVerticesFromFace(e);if(void 0!==r)if(void 0===t)this.unassigned.appendChain(r);else{let e=r;do{const r=e.next;t.distanceToPoint(e.point)>this.tolerance?this.addVertexToFace(e,t):this.unassigned.append(e),e=r}while(null!==e)}return this}resolveUnassignedPoints(e){if(!1===this.unassigned.isEmpty()){let t=this.unassigned.first();do{const r=t.next;let n=this.tolerance,i=null;for(let s=0;sn&&(n=e,i=r),n>1e3*this.tolerance)break}}null!==i&&this.addVertexToFace(t,i),t=r}while(null!==t)}return this}computeExtremes(){const e=new n.Vector3,t=new n.Vector3,r=[],i=[];for(let n=0;n<3;n++)r[n]=i[n]=this.vertices[0];e.copy(this.vertices[0].point),t.copy(this.vertices[0].point);for(let n=0,s=this.vertices.length;nt.getComponent(e)&&(t.setComponent(e,a.getComponent(e)),i[e]=s)}return this.tolerance=3*Number.EPSILON*(Math.max(Math.abs(e.x),Math.abs(t.x))+Math.max(Math.abs(e.y),Math.abs(t.y))+Math.max(Math.abs(e.z),Math.abs(t.z))),{min:r,max:i}}computeInitialHull(){const e=this.vertices,t=this.computeExtremes(),r=t.min,n=t.max;let i=0,l=0;for(let s=0;s<3;s++){const e=n[s].point.getComponent(s)-r[s].point.getComponent(s);e>i&&(i=e,l=s)}const h=r[l],u=n[l];let d,p;i=0,s.set(h.point,u.point);for(let a=0,c=this.vertices.length;ai&&(i=e,d=t)}}i=-1,a.setFromCoplanarPoints(h.point,u.point,d.point);for(let s=0,o=this.vertices.length;si&&(i=e,p=t)}}const f=[];if(a.distanceToPoint(p.point)<0){f.push(c.create(h,u,d),c.create(p,u,h),c.create(p,d,u),c.create(p,h,d));for(let e=0;e<3;e++){const t=(e+1)%3;f[e+1].getEdge(2).setTwin(f[0].getEdge(t)),f[e+1].getEdge(1).setTwin(f[t+1].getEdge(0))}}else{f.push(c.create(h,d,u),c.create(p,h,u),c.create(p,u,d),c.create(p,d,h));for(let e=0;e<3;e++){const t=(e+1)%3;f[e+1].getEdge(2).setTwin(f[0].getEdge((3-e)%3)),f[e+1].getEdge(0).setTwin(f[t+1].getEdge(1))}}for(let s=0;s<4;s++)this.faces.push(f[s]);for(let s=0,a=e.length;si&&(i=n,e=this.faces[r])}null!==e&&this.addVertexToFace(t,e)}}return this}reindexFaces(){const e=[];for(let t=0;tt&&(t=i,e=n),n=n.next}while(null!==n&&n.face===r);return e}}computeHorizon(e,t,r,n){let i;this.deleteFaceVertices(r),r.mark=1,i=null===t?t=r.getEdge(0):t.next;do{const t=i.twin,r=t.face;0===r.mark&&(r.distanceToPoint(e)>this.tolerance?this.computeHorizon(e,t,r,n):n.push(i)),i=i.next}while(i!==t);return this}addAdjoiningFace(e,t){const r=c.create(e,t.tail(),t.head());return this.faces.push(r),r.getEdge(-1).setTwin(t.twin),r.getEdge(0)}addNewFaces(e,t){this.newFaces=[];let r=null,n=null;for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=function(){const e=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];for(let t=0;t<256;t++)e[256+t]=e[t];return e}();function n(e){return e*e*e*(e*(6*e-15)+10)}function i(e,t,r){return t+e*(r-t)}function s(e,t,r,n){const i=15&e,s=i<8?t:r,a=i<4?r:12==i||14==i?t:n;return(0==(1&i)?s:-s)+(0==(2&i)?a:-a)}t.ImprovedNoise=class{noise(e,t,a){const o=Math.floor(e),l=Math.floor(t),c=Math.floor(a),h=255&o,u=255&l,d=255&c,p=(e-=o)-1,f=(t-=l)-1,m=(a-=c)-1,g=n(e),A=n(t),v=n(a),y=r[h]+u,x=r[y]+d,b=r[y+1]+d,E=r[h+1]+u,_=r[E]+d,S=r[E+1]+d;return i(v,i(A,i(g,s(r[x],e,t,a),s(r[_],p,t,a)),i(g,s(r[b],e,f,a),s(r[S],p,f,a))),i(A,i(g,s(r[x+1],e,t,m),s(r[_+1],p,t,m)),i(g,s(r[b+1],e,f,m),s(r[S+1],p,f,m))))}}},83828:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);const i={rainbow:[[0,255],[.2,65535],[.5,65280],[.8,16776960],[1,16711680]],cooltowarm:[[0,3952322],[.2,10206463],[.5,14474460],[.8,16163717],[1,11797542]],blackbody:[[0,0],[.2,7864320],[.5,15086080],[.8,16776960],[1,16777215]],grayscale:[[0,0],[.2,4210752],[.5,8355712],[.8,12566463],[1,16777215]]};t.ColorMapKeywords=i,t.Lut=class{constructor(e,t=32){this.isLut=!0,this.lut=[],this.map=[],this.n=0,this.minV=0,this.maxV=1,this.setColorMap(e,t)}set(e){return!0===e.isLut&&this.copy(e),this}setMin(e){return this.minV=e,this}setMax(e){return this.maxV=e,this}setColorMap(e,t=32){this.map=i[e]||i.rainbow,this.n=t;const r=1/this.n,s=new n.Color,a=new n.Color;this.lut.length=0,this.lut.push(new n.Color(this.map[0][1]));for(let i=1;ithis.map[t][0]&&e<=this.map[t+1][0]){const r=this.map[t][0],i=this.map[t+1][0];s.setHex(this.map[t][1],"linear-srgb"),a.setHex(this.map[t+1][1],"linear-srgb");const o=(new n.Color).lerpColors(s,a,(e-r)/(i-r));this.lut.push(o)}}return this.lut.push(new n.Color(this.map[this.map.length-1][1])),this}copy(e){return this.lut=e.lut,this.map=e.map,this.n=e.n,this.minV=e.minV,this.maxV=e.maxV,this}getColor(e){e=((e=n.MathUtils.clamp(e,this.minV,this.maxV))-this.minV)/(this.maxV-this.minV);const t=Math.round(e*this.n);return this.lut[t]}addColorMap(e,t){return i[e]=t,this}createCanvas(){const e=document.createElement("canvas");return e.width=1,e.height=this.n,this.updateCanvas(e),e}updateCanvas(e){const t=e.getContext("2d",{alpha:!1}),r=t.getImageData(0,0,1,this.n),i=r.data;let s=0;const a=1/this.n,o=new n.Color,l=new n.Color,c=new n.Color;for(let n=1;n>=0;n-=a)for(let e=this.map.length-1;e>=0;e--)if(n=this.map[e-1][0]){const t=this.map[e-1][0],r=this.map[e][0];o.setHex(this.map[e-1][1],"linear-srgb"),l.setHex(this.map[e][1],"linear-srgb"),c.lerpColors(o,l,(n-t)/(r-t)),i[4*s]=Math.round(255*c.r),i[4*s+1]=Math.round(255*c.g),i[4*s+2]=Math.round(255*c.b),i[4*s+3]=255,s+=1}return t.putImageData(r,0,0),e}}},17570:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Triangle,s=new n.Vector3;t.MeshSurfaceSampler=class{constructor(e){let t=e.geometry;t.index&&(console.warn("THREE.MeshSurfaceSampler: Converting geometry to non-indexed BufferGeometry."),t=t.toNonIndexed()),this.geometry=t,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.colorAttribute=this.geometry.getAttribute("color"),this.weightAttribute=null,this.distribution=null}setWeightAttribute(e){return this.weightAttribute=e?this.geometry.getAttribute(e):null,this}build(){const e=this.positionAttribute,t=this.weightAttribute,r=new Float32Array(e.count/3);for(let s=0;se){i=s;break}e1&&(a=1-a,o=1-o),i.a.fromBufferAttribute(this.positionAttribute,3*e),i.b.fromBufferAttribute(this.positionAttribute,3*e+1),i.c.fromBufferAttribute(this.positionAttribute,3*e+2),t.set(0,0,0).addScaledVector(i.a,a).addScaledVector(i.b,o).addScaledVector(i.c,1-(a+o)),void 0!==r&&i.getNormal(r),void 0!==n&&void 0!==this.colorAttribute&&(i.a.fromBufferAttribute(this.colorAttribute,3*e),i.b.fromBufferAttribute(this.colorAttribute,3*e+1),i.c.fromBufferAttribute(this.colorAttribute,3*e+2),s.set(0,0,0).addScaledVector(i.a,a).addScaledVector(i.b,o).addScaledVector(i.c,1-(a+o)),n.r=s.x,n.g=s.y,n.b=s.z),this}}},17458:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={c:null,u:[new n.Vector3,new n.Vector3,new n.Vector3],e:[]},s={c:null,u:[new n.Vector3,new n.Vector3,new n.Vector3],e:[]},a=[[],[],[]],o=[[],[],[]],l=[],c=new n.Vector3,h=new n.Vector3,u=new n.Vector3,d=new n.Vector3,p=new n.Vector3,f=new n.Vector3,m=new n.Matrix3,g=new n.Box3,A=new n.Matrix4,v=new n.Matrix4,y=new n.Ray;class x{constructor(e=new n.Vector3,t=new n.Vector3,r=new n.Matrix3){this.center=e,this.halfSize=t,this.rotation=r}set(e,t,r){return this.center=e,this.halfSize=t,this.rotation=r,this}copy(e){return this.center.copy(e.center),this.halfSize.copy(e.halfSize),this.rotation.copy(e.rotation),this}clone(){return(new this.constructor).copy(this)}getSize(e){return e.copy(this.halfSize).multiplyScalar(2)}clampPoint(e,t){const r=this.halfSize;d.subVectors(e,this.center),this.rotation.extractBasis(c,h,u),t.copy(this.center);const i=n.MathUtils.clamp(d.dot(c),-r.x,r.x);t.add(c.multiplyScalar(i));const s=n.MathUtils.clamp(d.dot(h),-r.y,r.y);t.add(h.multiplyScalar(s));const a=n.MathUtils.clamp(d.dot(u),-r.z,r.z);return t.add(u.multiplyScalar(a)),t}containsPoint(e){return d.subVectors(e,this.center),this.rotation.extractBasis(c,h,u),Math.abs(d.dot(c))<=this.halfSize.x&&Math.abs(d.dot(h))<=this.halfSize.y&&Math.abs(d.dot(u))<=this.halfSize.z}intersectsBox3(e){return this.intersectsOBB(b.fromBox3(e))}intersectsSphere(e){return this.clampPoint(e.center,f),f.distanceToSquared(e.center)<=e.radius*e.radius}intersectsOBB(e,t=Number.EPSILON){i.c=this.center,i.e[0]=this.halfSize.x,i.e[1]=this.halfSize.y,i.e[2]=this.halfSize.z,this.rotation.extractBasis(i.u[0],i.u[1],i.u[2]),s.c=e.center,s.e[0]=e.halfSize.x,s.e[1]=e.halfSize.y,s.e[2]=e.halfSize.z,e.rotation.extractBasis(s.u[0],s.u[1],s.u[2]);for(let o=0;o<3;o++)for(let e=0;e<3;e++)a[o][e]=i.u[o].dot(s.u[e]);d.subVectors(s.c,i.c),l[0]=d.dot(i.u[0]),l[1]=d.dot(i.u[1]),l[2]=d.dot(i.u[2]);for(let i=0;i<3;i++)for(let e=0;e<3;e++)o[i][e]=Math.abs(a[i][e])+t;let r,n;for(let a=0;a<3;a++)if(r=i.e[a],n=s.e[0]*o[a][0]+s.e[1]*o[a][1]+s.e[2]*o[a][2],Math.abs(l[a])>r+n)return!1;for(let c=0;c<3;c++)if(r=i.e[0]*o[0][c]+i.e[1]*o[1][c]+i.e[2]*o[2][c],n=s.e[c],Math.abs(l[0]*a[0][c]+l[1]*a[1][c]+l[2]*a[2][c])>r+n)return!1;return r=i.e[1]*o[2][0]+i.e[2]*o[1][0],n=s.e[1]*o[0][2]+s.e[2]*o[0][1],!(Math.abs(l[2]*a[1][0]-l[1]*a[2][0])>r+n)&&(r=i.e[1]*o[2][1]+i.e[2]*o[1][1],n=s.e[0]*o[0][2]+s.e[2]*o[0][0],!(Math.abs(l[2]*a[1][1]-l[1]*a[2][1])>r+n)&&(r=i.e[1]*o[2][2]+i.e[2]*o[1][2],n=s.e[0]*o[0][1]+s.e[1]*o[0][0],!(Math.abs(l[2]*a[1][2]-l[1]*a[2][2])>r+n)&&(r=i.e[0]*o[2][0]+i.e[2]*o[0][0],n=s.e[1]*o[1][2]+s.e[2]*o[1][1],!(Math.abs(l[0]*a[2][0]-l[2]*a[0][0])>r+n)&&(r=i.e[0]*o[2][1]+i.e[2]*o[0][1],n=s.e[0]*o[1][2]+s.e[2]*o[1][0],!(Math.abs(l[0]*a[2][1]-l[2]*a[0][1])>r+n)&&(r=i.e[0]*o[2][2]+i.e[2]*o[0][2],n=s.e[0]*o[1][1]+s.e[1]*o[1][0],!(Math.abs(l[0]*a[2][2]-l[2]*a[0][2])>r+n)&&(r=i.e[0]*o[1][0]+i.e[1]*o[0][0],n=s.e[1]*o[2][2]+s.e[2]*o[2][1],!(Math.abs(l[1]*a[0][0]-l[0]*a[1][0])>r+n)&&(r=i.e[0]*o[1][1]+i.e[1]*o[0][1],n=s.e[0]*o[2][2]+s.e[2]*o[2][0],!(Math.abs(l[1]*a[0][1]-l[0]*a[1][1])>r+n)&&(r=i.e[0]*o[1][2]+i.e[1]*o[0][2],n=s.e[0]*o[2][1]+s.e[1]*o[2][0],!(Math.abs(l[1]*a[0][2]-l[0]*a[1][2])>r+n)))))))))}intersectsPlane(e){this.rotation.extractBasis(c,h,u);const t=this.halfSize.x*Math.abs(e.normal.dot(c))+this.halfSize.y*Math.abs(e.normal.dot(h))+this.halfSize.z*Math.abs(e.normal.dot(u)),r=e.normal.dot(this.center)-e.constant;return Math.abs(r)<=t}intersectRay(e,t){return this.getSize(p),g.setFromCenterAndSize(d.set(0,0,0),p),A.setFromMatrix3(this.rotation),A.setPosition(this.center),v.copy(A).invert(),y.copy(e).applyMatrix4(v),y.intersectBox(g,t)?t.applyMatrix4(A):null}intersectsRay(e){return null!==this.intersectRay(e,d)}fromBox3(e){return e.getCenter(this.center),e.getSize(this.halfSize).multiplyScalar(.5),this.rotation.identity(),this}equals(e){return e.center.equals(this.center)&&e.halfSize.equals(this.halfSize)&&e.rotation.equals(this.rotation)}applyMatrix4(e){const t=e.elements;let r=d.set(t[0],t[1],t[2]).length();const n=d.set(t[4],t[5],t[6]).length(),i=d.set(t[8],t[9],t[10]).length();e.determinant()<0&&(r=-r),m.setFromMatrix4(e);const s=1/r,a=1/n,o=1/i;return m.elements[0]*=s,m.elements[1]*=s,m.elements[2]*=s,m.elements[3]*=a,m.elements[4]*=a,m.elements[5]*=a,m.elements[6]*=o,m.elements[7]*=o,m.elements[8]*=o,this.rotation.multiply(m),this.halfSize.x*=r,this.halfSize.y*=n,this.halfSize.z*=i,d.setFromMatrixPosition(e),this.center.add(d),this}}const b=new x;t.OBB=x},30252:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(84145),s=new n.Vector3,a=new n.Vector3,o=new n.Plane,l=new n.Line3,c=new n.Line3,h=new n.Sphere,u=new i.Capsule;class d{constructor(e){this.triangles=[],this.box=e,this.subTrees=[]}addTriangle(e){return this.bounds||(this.bounds=new n.Box3),this.bounds.min.x=Math.min(this.bounds.min.x,e.a.x,e.b.x,e.c.x),this.bounds.min.y=Math.min(this.bounds.min.y,e.a.y,e.b.y,e.c.y),this.bounds.min.z=Math.min(this.bounds.min.z,e.a.z,e.b.z,e.c.z),this.bounds.max.x=Math.max(this.bounds.max.x,e.a.x,e.b.x,e.c.x),this.bounds.max.y=Math.max(this.bounds.max.y,e.a.y,e.b.y,e.c.y),this.bounds.max.z=Math.max(this.bounds.max.z,e.a.z,e.b.z,e.c.z),this.triangles.push(e),this}calcBox(){return this.box=this.bounds.clone(),this.box.min.x-=.01,this.box.min.y-=.01,this.box.min.z-=.01,this}split(e){if(!this.box)return;const t=[],r=a.copy(this.box.max).sub(this.box.min).multiplyScalar(.5);for(let a=0;a<2;a++)for(let e=0;e<2;e++)for(let i=0;i<2;i++){const o=new n.Box3,l=s.set(a,e,i);o.min.copy(this.box.min).add(l.multiply(r)),o.max.copy(o.min).add(r),t.push(new d(o))}let i;for(;i=this.triangles.pop();)for(let e=0;e8&&e<16&&t[n].split(e+1),0!==r&&this.subTrees.push(t[n])}return this}build(){return this.calcBox(),this.split(0),this}getRayTriangles(e,t){for(let r=0;r0)for(let e=0;e0&&n>0||r<-e.radius&&n<-e.radius)return!1;const i=Math.abs(r/(Math.abs(r)+Math.abs(n))),a=s.copy(e.start).lerp(e.end,i);if(t.containsPoint(a))return{normal:o.normal.clone(),point:a.clone(),depth:Math.abs(Math.min(r,n))};const h=e.radius*e.radius,u=l.set(e.start,e.end),d=[[t.a,t.b],[t.b,t.c],[t.c,t.a]];for(let s=0;s0)for(let e=0;e0)for(let e=0;es&&(n=o.clone().add(e.origin),i=s,r=t[a])}}return i<1e100&&{distance:i,triangle:r,position:n}}fromGraphNode(e){return e.updateWorldMatrix(!0,!0),e.traverse((e=>{if(!0===e.isMesh){let t,r=!1;null!==e.geometry.index?(r=!0,t=e.geometry.toNonIndexed()):t=e.geometry;const i=t.getAttribute("position");for(let s=0;s{"use strict";var r=Object.defineProperty,n=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.SimplexNoise=class{constructor(e=Math){n(this,"grad3",[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]]),n(this,"grad4",[[0,1,1,1],[0,1,1,-1],[0,1,-1,1],[0,1,-1,-1],[0,-1,1,1],[0,-1,1,-1],[0,-1,-1,1],[0,-1,-1,-1],[1,0,1,1],[1,0,1,-1],[1,0,-1,1],[1,0,-1,-1],[-1,0,1,1],[-1,0,1,-1],[-1,0,-1,1],[-1,0,-1,-1],[1,1,0,1],[1,1,0,-1],[1,-1,0,1],[1,-1,0,-1],[-1,1,0,1],[-1,1,0,-1],[-1,-1,0,1],[-1,-1,0,-1],[1,1,1,0],[1,1,-1,0],[1,-1,1,0],[1,-1,-1,0],[-1,1,1,0],[-1,1,-1,0],[-1,-1,1,0],[-1,-1,-1,0]]),n(this,"p",[]),n(this,"perm",[]),n(this,"simplex",[[0,1,2,3],[0,1,3,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]),n(this,"dot",((e,t,r)=>e[0]*t+e[1]*r)),n(this,"dot3",((e,t,r,n)=>e[0]*t+e[1]*r+e[2]*n)),n(this,"dot4",((e,t,r,n,i)=>e[0]*t+e[1]*r+e[2]*n+e[3]*i)),n(this,"noise",((e,t)=>{let r,n,i;const s=(e+t)*(.5*(Math.sqrt(3)-1)),a=Math.floor(e+s),o=Math.floor(t+s),l=(3-Math.sqrt(3))/6,c=(a+o)*l,h=e-(a-c),u=t-(o-c);let d=0,p=1;h>u&&(d=1,p=0);const f=h-d+l,m=u-p+l,g=h-1+2*l,A=u-1+2*l,v=255&a,y=255&o,x=this.perm[v+this.perm[y]]%12,b=this.perm[v+d+this.perm[y+p]]%12,E=this.perm[v+1+this.perm[y+1]]%12;let _=.5-h*h-u*u;_<0?r=0:(_*=_,r=_*_*this.dot(this.grad3[x],h,u));let S=.5-f*f-m*m;S<0?n=0:(S*=S,n=S*S*this.dot(this.grad3[b],f,m));let M=.5-g*g-A*A;return M<0?i=0:(M*=M,i=M*M*this.dot(this.grad3[E],g,A)),70*(r+n+i)})),n(this,"noise3d",((e,t,r)=>{let n,i,s,a;const o=(e+t+r)*(1/3),l=Math.floor(e+o),c=Math.floor(t+o),h=Math.floor(r+o),u=1/6,d=(l+c+h)*u,p=e-(l-d),f=t-(c-d),m=r-(h-d);let g,A,v,y,x,b;p>=f?f>=m?(g=1,A=0,v=0,y=1,x=1,b=0):p>=m?(g=1,A=0,v=0,y=1,x=0,b=1):(g=0,A=0,v=1,y=1,x=0,b=1):f{const i=this.grad4,s=this.simplex,a=this.perm,o=(Math.sqrt(5)-1)/4,l=(5-Math.sqrt(5))/20;let c,h,u,d,p;const f=(e+t+r+n)*o,m=Math.floor(e+f),g=Math.floor(t+f),A=Math.floor(r+f),v=Math.floor(n+f),y=(m+g+A+v)*l,x=e-(m-y),b=t-(g-y),E=r-(A-y),_=n-(v-y),S=(x>b?32:0)+(x>E?16:0)+(b>E?8:0)+(x>_?4:0)+(b>_?2:0)+(E>_?1:0);let M,w,C,T,I,B,R,P,D,L,F,U;M=s[S][0]>=3?1:0,w=s[S][1]>=3?1:0,C=s[S][2]>=3?1:0,T=s[S][3]>=3?1:0,I=s[S][0]>=2?1:0,B=s[S][1]>=2?1:0,R=s[S][2]>=2?1:0,P=s[S][3]>=2?1:0,D=s[S][0]>=1?1:0,L=s[S][1]>=1?1:0,F=s[S][2]>=1?1:0,U=s[S][3]>=1?1:0;const O=x-M+l,N=b-w+l,k=E-C+l,G=_-T+l,z=x-I+2*l,Q=b-B+2*l,V=E-R+2*l,H=_-P+2*l,j=x-D+3*l,W=b-L+3*l,X=E-F+3*l,Y=_-U+3*l,q=x-1+4*l,K=b-1+4*l,J=E-1+4*l,Z=_-1+4*l,$=255&m,ee=255&g,te=255&A,re=255&v,ne=a[$+a[ee+a[te+a[re]]]]%32,ie=a[$+M+a[ee+w+a[te+C+a[re+T]]]]%32,se=a[$+I+a[ee+B+a[te+R+a[re+P]]]]%32,ae=a[$+D+a[ee+L+a[te+F+a[re+U]]]]%32,oe=a[$+1+a[ee+1+a[te+1+a[re+1]]]]%32;let le=.6-x*x-b*b-E*E-_*_;le<0?c=0:(le*=le,c=le*le*this.dot4(i[ne],x,b,E,_));let ce=.6-O*O-N*N-k*k-G*G;ce<0?h=0:(ce*=ce,h=ce*ce*this.dot4(i[ie],O,N,k,G));let he=.6-z*z-Q*Q-V*V-H*H;he<0?u=0:(he*=he,u=he*he*this.dot4(i[se],z,Q,V,H));let ue=.6-j*j-W*W-X*X-Y*Y;ue<0?d=0:(ue*=ue,d=ue*ue*this.dot4(i[ae],j,W,X,Y));let de=.6-q*q-K*K-J*J-Z*Z;return de<0?p=0:(de*=de,p=de*de*this.dot4(i[oe],q,K,J,Z)),27*(c+h+u+d+p)}));for(let t=0;t<256;t++)this.p[t]=Math.floor(256*e.random());for(let t=0;t<512;t++)this.perm[t]=this.p[255&t]}}},30864:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(92018),s=new n.Vector3;class a{constructor(e=1.4,t=1e-4){this.minSizeForBreak=e,this.smallDelta=t,this.tempLine1=new n.Line3,this.tempPlane1=new n.Plane,this.tempPlane2=new n.Plane,this.tempPlane_Cut=new n.Plane,this.tempCM1=new n.Vector3,this.tempCM2=new n.Vector3,this.tempVector3=new n.Vector3,this.tempVector3_2=new n.Vector3,this.tempVector3_3=new n.Vector3,this.tempVector3_P0=new n.Vector3,this.tempVector3_P1=new n.Vector3,this.tempVector3_P2=new n.Vector3,this.tempVector3_N0=new n.Vector3,this.tempVector3_N1=new n.Vector3,this.tempVector3_AB=new n.Vector3,this.tempVector3_CB=new n.Vector3,this.tempResultObjects={object1:null,object2:null},this.segments=[];for(let r=0;r<900;r++)this.segments[r]=!1}prepareBreakableObject(e,t,r,n,i){const s=e.userData;s.mass=t,s.velocity=r.clone(),s.angularVelocity=n.clone(),s.breakable=i}subdivideByImpact(e,t,r,n,i){const s=[],a=this.tempPlane1,o=this.tempPlane2;this.tempVector3.addVectors(t,r),a.setFromCoplanarPoints(t,e.position,this.tempVector3);const l=i+n,c=this;return function i(h,u,d,p){if(Math.random()<.05*p||p>l)return void s.push(h);let f=Math.PI;0===p?(o.normal.copy(a.normal),o.constant=a.constant):p<=n?(f=(d-u)*(.2+.6*Math.random())+u,c.tempVector3_2.copy(e.position).sub(t).applyAxisAngle(r,f).add(t),o.setFromCoplanarPoints(t,c.tempVector3,c.tempVector3_2)):(f=(.5*(1&p)+.2*(2-Math.random()))*Math.PI,c.tempVector3_2.copy(t).sub(h.position).applyAxisAngle(r,f).add(h.position),c.tempVector3_3.copy(r).add(h.position),o.setFromCoplanarPoints(h.position,c.tempVector3_3,c.tempVector3_2)),c.cutByPlane(h,o,c.tempResultObjects);const m=c.tempResultObjects.object1,g=c.tempResultObjects.object2;m&&i(m,u,f,p+1),g&&i(g,f,d,p+1)}(e,0,2*Math.PI,0),s}cutByPlane(e,t,r){const s=e.geometry,o=s.attributes.position.array,l=s.attributes.normal.array,c=o.length/3;let h=c/3,u=s.getIndex();function d(e,t){const r=3*e+t;return u?u[r]:r}u&&(u=u.array,h=u.length/3);const p=[],f=[],m=this.smallDelta,g=c*c;for(let n=0;nm?(h=2,f.push(A.clone())):u<-m?(h=1,p.push(A.clone())):(h=3,p.push(A.clone()),f.push(A.clone()));let d=0;if(u=b.distanceToPoint(v),u>m?(d=2,f.push(v.clone())):u<-m?(d=1,p.push(v.clone())):(d=3,p.push(v.clone()),f.push(v.clone())),1===h&&2===d||2===h&&1===d){this.tempLine1.start.copy(A),this.tempLine1.end.copy(v);let e=new n.Vector3;if(e=b.intersectLine(this.tempLine1,e),null===e)return console.error("Internal error: segment does not intersect plane."),r.segmentedObject1=null,r.segmentedObject2=null,0;p.push(e),f.push(e.clone())}}}const E=.5*e.userData.mass;this.tempCM1.set(0,0,0);let _=0;const S=p.length;if(S>0){for(let e=0;e0){for(let e=0;e4&&(C=new n.Mesh(new i.ConvexGeometry(p),e.material),C.position.copy(this.tempCM1),C.quaternion.copy(e.quaternion),this.prepareBreakableObject(C,E,e.userData.velocity,e.userData.angularVelocity,2*_>this.minSizeForBreak),I++),w>4&&(T=new n.Mesh(new i.ConvexGeometry(f),e.material),T.position.copy(this.tempCM2),T.quaternion.copy(e.quaternion),this.prepareBreakableObject(T,E,e.userData.velocity,e.userData.angularVelocity,2*M>this.minSizeForBreak),I++),r.object1=C,r.object2=T,I}static transformFreeVector(e,t){const r=e.x,n=e.y,i=e.z,s=t.elements;return e.x=s[0]*r+s[4]*n+s[8]*i,e.y=s[1]*r+s[5]*n+s[9]*i,e.z=s[2]*r+s[6]*n+s[10]*i,e}static transformFreeVectorInverse(e,t){const r=e.x,n=e.y,i=e.z,s=t.elements;return e.x=s[0]*r+s[1]*n+s[2]*i,e.y=s[4]*r+s[5]*n+s[6]*i,e.z=s[8]*r+s[9]*n+s[10]*i,e}static transformTiedVectorInverse(e,t){const r=e.x,n=e.y,i=e.z,s=t.elements;return e.x=s[0]*r+s[1]*n+s[2]*i-s[12],e.y=s[4]*r+s[5]*n+s[6]*i-s[13],e.z=s[8]*r+s[9]*n+s[10]*i-s[14],e}static transformPlaneToLocalSpace(e,t,r){r.normal.copy(e.normal),r.constant=e.constant;const n=a.transformTiedVectorInverse(e.coplanarPoint(s),t);a.transformFreeVectorInverse(r.normal,t),r.constant=-n.dot(r.normal)}}t.ConvexObjectBreaker=a},58532:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.GPUComputationRenderer=class{constructor(e,t,r){this.variables=[],this.currentTextureIndex=0;let i=n.FloatType;const s=new n.Scene,a=new n.Camera;a.position.z=1;const o={passThruTexture:{value:null}},l=u("uniform sampler2D passThruTexture;\n\nvoid main() {\n\n\tvec2 uv = gl_FragCoord.xy / resolution.xy;\n\n\tgl_FragColor = texture2D( passThruTexture, uv );\n\n}\n",o),c=new n.Mesh(new n.PlaneGeometry(2,2),l);function h(r){r.defines.resolution="vec2( "+e.toFixed(1)+", "+t.toFixed(1)+" )"}function u(e,t){t=t||{};const r=new n.ShaderMaterial({uniforms:t,vertexShader:"void main()\t{\n\n\tgl_Position = vec4( position, 1.0 );\n\n}\n",fragmentShader:e});return h(r),r}s.add(c),this.setDataType=function(e){return i=e,this},this.addVariable=function(e,t,r){const i={name:e,initialValueTexture:r,material:this.createShaderMaterial(t),dependencies:null,renderTargets:[],wrapS:null,wrapT:null,minFilter:n.NearestFilter,magFilter:n.NearestFilter};return this.variables.push(i),i},this.setVariableDependencies=function(e,t){e.dependencies=t},this.init=function(){if(!1===r.capabilities.isWebGL2&&!1===r.extensions.has("OES_texture_float"))return"No OES_texture_float support for float textures.";if(0===r.capabilities.maxVertexTextures)return"No support for vertex shader textures.";for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Vector3,s=new n.Quaternion,a=new n.Vector3,o=new n.Vector3,l=new n.Quaternion,c=new n.Vector3;class h extends n.Object3D{constructor(){super()}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(null!==this.parent?(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorld.decompose(o,l,c),this.matrix.decompose(i,s,a),this.matrixWorld.compose(o,s,c)):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);for(let t=0,r=this.children.length;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(28057);t.MD2Character=class{constructor(){this.scale=1,this.animationFPS=6,this.root=new n.Object3D,this.meshBody=null,this.meshWeapon=null,this.skinsBody=[],this.skinsWeapon=[],this.weapons=[],this.activeAnimation=null,this.mixer=null,this.onLoadComplete=function(){},this.loadCounter=0}loadParts(e){const t=this;function r(e,t){const r=new n.MeshLambertMaterial({color:16755200,wireframe:!0,morphTargets:!0,morphNormals:!0}),i=new n.MeshLambertMaterial({color:16777215,wireframe:!1,map:t,morphTargets:!0,morphNormals:!0}),s=new n.Mesh(e,i);return s.rotation.y=-Math.PI/2,s.castShadow=!0,s.receiveShadow=!0,s.materialTexture=i,s.materialWireframe=r,s}function s(e,t){const r=new n.TextureLoader,i=[];for(let s=0;s{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(28057),s=r(46863);t.MD2CharacterComplex=class{constructor(){this.scale=1,this.animationFPS=6,this.transitionFrames=15,this.maxSpeed=275,this.maxReverseSpeed=-275,this.frontAcceleration=600,this.backAcceleration=600,this.frontDecceleration=600,this.angularSpeed=2.5,this.root=new n.Object3D,this.meshBody=null,this.meshWeapon=null,this.controls=null,this.skinsBody=[],this.skinsWeapon=[],this.weapons=[],this.currentSkin=void 0,this.onLoadComplete=function(){},this.meshes=[],this.animations={},this.loadCounter=0,this.speed=0,this.bodyOrientation=0,this.walkSpeed=this.maxSpeed,this.crouchSpeed=.5*this.maxSpeed,this.activeAnimation=null,this.oldAnimation=null}enableShadows(e){for(let t=0;t0&&(t=(this.transitionFrames-this.blendCounter)/this.transitionFrames,this.blendCounter-=1),this.meshBody&&(this.meshBody.update(e),this.meshBody.setAnimationWeight(this.activeAnimation,t),this.meshBody.setAnimationWeight(this.oldAnimation,1-t)),this.meshWeapon&&(this.meshWeapon.update(e),this.meshWeapon.setAnimationWeight(this.activeAnimation,t),this.meshWeapon.setAnimationWeight(this.oldAnimation,1-t))}updateBehaviors(){const e=this.controls,t=this.animations;let r,n;e.crouch?(r=t.crouchMove,n=t.crouchIdle):(r=t.move,n=t.idle),e.jump&&(r=t.jump,n=t.jump),e.attack&&(e.crouch?(r=t.crouchAttack,n=t.crouchAttack):(r=t.attack,n=t.attack)),(e.moveForward||e.moveBackward||e.moveLeft||e.moveRight)&&this.activeAnimation!==r&&this.setAnimation(r),Math.abs(this.speed)<.2*this.maxSpeed&&!(e.moveLeft||e.moveRight||e.moveForward||e.moveBackward)&&this.activeAnimation!==n&&this.setAnimation(n),e.moveForward&&(this.meshBody&&(this.meshBody.setAnimationDirectionForward(this.activeAnimation),this.meshBody.setAnimationDirectionForward(this.oldAnimation)),this.meshWeapon&&(this.meshWeapon.setAnimationDirectionForward(this.activeAnimation),this.meshWeapon.setAnimationDirectionForward(this.oldAnimation))),e.moveBackward&&(this.meshBody&&(this.meshBody.setAnimationDirectionBackward(this.activeAnimation),this.meshBody.setAnimationDirectionBackward(this.oldAnimation)),this.meshWeapon&&(this.meshWeapon.setAnimationDirectionBackward(this.activeAnimation),this.meshWeapon.setAnimationDirectionBackward(this.oldAnimation)))}updateMovementModel(e){function t(e){return 1===e?1:1-Math.pow(2,-10*e)}const r=this.controls;r.crouch?this.maxSpeed=this.crouchSpeed:this.maxSpeed=this.walkSpeed,this.maxReverseSpeed=-this.maxSpeed,r.moveForward&&(this.speed=n.MathUtils.clamp(this.speed+e*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),r.moveBackward&&(this.speed=n.MathUtils.clamp(this.speed-e*this.backAcceleration,this.maxReverseSpeed,this.maxSpeed));if(r.moveLeft&&(this.bodyOrientation+=e*this.angularSpeed,this.speed=n.MathUtils.clamp(this.speed+1*e*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),r.moveRight&&(this.bodyOrientation-=e*this.angularSpeed,this.speed=n.MathUtils.clamp(this.speed+1*e*this.frontAcceleration,this.maxReverseSpeed,this.maxSpeed)),!r.moveForward&&!r.moveBackward)if(this.speed>0){const r=t(this.speed/this.maxSpeed);this.speed=n.MathUtils.clamp(this.speed-r*e*this.frontDecceleration,0,this.maxSpeed)}else{const r=t(this.speed/this.maxReverseSpeed);this.speed=n.MathUtils.clamp(this.speed+r*e*this.backAcceleration,this.maxReverseSpeed,0)}const i=this.speed*e;this.root.position.x+=Math.sin(this.bodyOrientation)*i,this.root.position.z+=Math.cos(this.bodyOrientation)*i,this.root.rotation.y=this.bodyOrientation}_createPart(e,t){const r=new n.MeshLambertMaterial({color:16755200,wireframe:!0,morphTargets:!0,morphNormals:!0}),i=new n.MeshLambertMaterial({color:16777215,wireframe:!1,map:t,morphTargets:!0,morphNormals:!0}),a=new s.MorphBlendMesh(e,i);return a.rotation.y=-Math.PI/2,a.materialTexture=i,a.materialWireframe=r,a.autoCreateAnimations(this.animationFPS),a}}},73653:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Mesh{constructor(e,t){super(e,t),this.type="MorphAnimMesh",this.mixer=new n.AnimationMixer(this),this.activeAction=null}setDirectionForward(){this.mixer.timeScale=1}setDirectionBackward(){this.mixer.timeScale=-1}playAnimation(e,t){this.activeAction&&(this.activeAction.stop(),this.activeAction=null);const r=n.AnimationClip.findByName(this,e);if(!r)throw new Error("THREE.MorphAnimMesh: animations["+e+"] undefined in .playAnimation()");{const e=this.mixer.clipAction(r);e.timeScale=r.tracks.length*t/r.duration,this.activeAction=e.play()}}updateAnimation(e){this.mixer.update(e)}copy(e,t){return super.copy(e,t),this.mixer=new n.AnimationMixer(this),this}}t.MorphAnimMesh=i},46863:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Mesh{constructor(e,t){super(e,t),this.animationsMap={},this.animationsList=[];const r=Object.keys(this.morphTargetDictionary).length,n="__default",i=r-1,s=r/1;this.createAnimation(n,0,i,s),this.setAnimationWeight(n,1)}createAnimation(e,t,r,n){const i={start:t,end:r,length:r-t+1,fps:n,duration:(r-t)/n,lastFrame:0,currentFrame:0,active:!1,time:0,direction:1,weight:1,directionBackwards:!1,mirroredLoop:!1};this.animationsMap[e]=i,this.animationsList.push(i)}autoCreateAnimations(e){const t=/([a-z]+)_?(\d+)/i;let r;const n={};let i=0;for(const s in this.morphTargetDictionary){const e=s.match(t);if(e&&e.length>1){const t=e[1];n[t]||(n[t]={start:1/0,end:-1/0});const s=n[t];is.end&&(s.end=i),r||(r=t)}i++}for(const s in n){const t=n[s];this.createAnimation(s,t.start,t.end,e)}this.firstAnimation=r}setAnimationDirectionForward(e){const t=this.animationsMap[e];t&&(t.direction=1,t.directionBackwards=!1)}setAnimationDirectionBackward(e){const t=this.animationsMap[e];t&&(t.direction=-1,t.directionBackwards=!0)}setAnimationFPS(e,t){const r=this.animationsMap[e];r&&(r.fps=t,r.duration=(r.end-r.start)/r.fps)}setAnimationDuration(e,t){const r=this.animationsMap[e];r&&(r.duration=t,r.fps=(r.end-r.start)/r.duration)}setAnimationWeight(e,t){const r=this.animationsMap[e];r&&(r.weight=t)}setAnimationTime(e,t){const r=this.animationsMap[e];r&&(r.time=t)}getAnimationTime(e){let t=0;const r=this.animationsMap[e];return r&&(t=r.time),t}getAnimationDuration(e){let t=-1;const r=this.animationsMap[e];return r&&(t=r.duration),t}playAnimation(e){const t=this.animationsMap[e];t?(t.time=0,t.active=!0):console.warn("THREE.MorphBlendMesh: animation["+e+"] undefined in .playAnimation()")}stopAnimation(e){const t=this.animationsMap[e];t&&(t.active=!1)}update(e){for(let t=0,r=this.animationsList.length;tr.duration||r.time<0)&&(r.direction*=-1,r.time>r.duration&&(r.time=r.duration,r.directionBackwards=!0),r.time<0&&(r.time=0,r.directionBackwards=!1)):(r.time=r.time%r.duration,r.time<0&&(r.time+=r.duration));const s=r.start+n.MathUtils.clamp(Math.floor(r.time/i),0,r.length-1),a=r.weight;s!==r.currentFrame&&(this.morphTargetInfluences[r.lastFrame]=0,this.morphTargetInfluences[r.currentFrame]=1*a,this.morphTargetInfluences[s]=0,r.lastFrame=r.currentFrame,r.currentFrame=s);let o=r.time%i/i;r.directionBackwards&&(o=1-o),r.currentFrame!==r.lastFrame?(this.morphTargetInfluences[r.currentFrame]=o*a,this.morphTargetInfluences[r.lastFrame]=(1-o)*a):this.morphTargetInfluences[r.currentFrame]=a}}}t.MorphBlendMesh=i},29667:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(85581);t.ProgressiveLightMap=class{constructor(e,t=1024){this.renderer=e,this.res=t,this.lightMapContainers=[],this.compiled=!1,this.scene=new n.Scene,this.scene.background=null,this.tinyTarget=new n.WebGLRenderTarget(1,1),this.buffer1Active=!1,this.firstUpdate=!0,this.warned=!1;const r=/(Android|iPad|iPhone|iPod)/g.test(navigator.userAgent)?alfFloatType:n.FloatType;this.progressiveLightMap1=new n.WebGLRenderTarget(this.res,this.res,{type:r}),this.progressiveLightMap2=new n.WebGLRenderTarget(this.res,this.res,{type:r}),this.uvMat=new n.MeshPhongMaterial,this.uvMat.uniforms={},this.uvMat.onBeforeCompile=e=>{e.vertexShader="#define USE_LIGHTMAP\n"+e.vertexShader.slice(0,-1)+"\tgl_Position = vec4((uv2 - 0.5) * 2.0, 1.0, 1.0); }";const t=e.fragmentShader.indexOf("void main() {");e.fragmentShader="varying vec2 vUv2;\n"+e.fragmentShader.slice(0,t)+"\tuniform sampler2D previousShadowMap;\n\tuniform float averagingWindow;\n"+e.fragmentShader.slice(t-1,-1)+"\nvec3 texelOld = texture2D(previousShadowMap, vUv2).rgb;\n\t\t\t\tgl_FragColor.rgb = mix(texelOld, gl_FragColor.rgb, 1.0/averagingWindow);\n\t\t\t}",e.uniforms.previousShadowMap={value:this.progressiveLightMap1.texture},e.uniforms.averagingWindow={value:100},this.uvMat.uniforms=e.uniforms,this.uvMat.userData.shader=e,this.compiled=!0}}addObjectsToLightMap(e){this.uv_boxes=[];const t=3/this.res;for(let n=0;n{const i=e[n.index].geometry.getAttribute("uv").clone();for(let e=0;e{n.vertexShader="#define USE_UV\n"+n.vertexShader.slice(0,-1)+"\tgl_Position = vec4((uv - 0.5) * 2.0, 1.0, 1.0); }";const i=n.fragmentShader.indexOf("void main() {");n.fragmentShader="#define USE_UV\n"+n.fragmentShader.slice(0,i)+"\tuniform sampler2D previousShadowMap;\n\tuniform float pixelOffset;\n"+n.fragmentShader.slice(i-1,-1)+"\tgl_FragColor.rgb = (\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, 0.0 )).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( 0.0 , pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( 0.0 , -pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, 0.0 )).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2( pixelOffset, -pixelOffset)).rgb +\n\t\t\t texture2D(previousShadowMap, vUv + vec2(-pixelOffset, -pixelOffset)).rgb)/8.0;\n\t\t}",n.uniforms.previousShadowMap={value:t.texture},n.uniforms.pixelOffset={value:.5/e},r.uniforms=n.uniforms,r.userData.shader=n,this.compiled=!0},this.blurringPlane=new n.Mesh(new n.PlaneGeometry(1,1),r),this.blurringPlane.name="Blurring Plane",this.blurringPlane.frustumCulled=!1,this.blurringPlane.renderOrder=0,this.blurringPlane.material.depthWrite=!1,this.scene.add(this.blurringPlane)}}},91248:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.BufferGeometry{constructor(e,t){super();const r=[],i=[],s=[],a=[1,1,1],o=[1,1,0],l=new n.Vector3(0,1,0),c=new n.Vector3,h=new n.Vector3,u=new n.Quaternion,d=new n.Quaternion;d.setFromAxisAngle(l,Math.PI/2);const p=new n.Vector3,f=new n.Vector3;f.copy(e.getPointAt(0));const m=[new n.Vector3(-.225,0,0),new n.Vector3(0,-.05,0),new n.Vector3(0,-.175,0),new n.Vector3(0,-.05,0),new n.Vector3(.225,0,0),new n.Vector3(0,-.175,0)],g=2*Math.PI;let A=5;const v=[];for(let D=0;D=0;n--)x.copy(e[n]),x.applyQuaternion(u),x.add(p),r.push(x.x,x.y,x.z),i.push(b.x,b.y,b.z),s.push(t[0],t[1],t[2])}const _=new n.Vector3,S=new n.Vector3,M=new n.Vector3,w=new n.Vector3,C=new n.Vector3,T=new n.Vector3,I=new n.Vector3,B=new n.Vector3;function R(e,t,n){for(let a=0,o=e.length;a10?(b.set(-.75,-.35,0),b.applyQuaternion(s),b.add(o),E.set(.75,-.35,0),E.applyQuaternion(s),E.add(o),x(c,b,E),b.set(-.7,-.3,0),b.applyQuaternion(s),b.add(o),E.set(-.7,-o.y,0),E.applyQuaternion(s),E.add(o),x(h,b,E),b.set(.7,-.3,0),b.applyQuaternion(s),b.add(o),E.set(.7,-o.y,0),E.applyQuaternion(s),E.add(o),x(u,b,E)):(b.set(0,-.2,0),b.applyQuaternion(s),b.add(o),E.set(0,-o.y,0),E.applyQuaternion(s),E.add(o),x(u,b,E))}this.setAttribute("position",new n.BufferAttribute(new Float32Array(r),3)),this.setAttribute("normal",new n.BufferAttribute(new Float32Array(i),3))}}class a extends n.BufferGeometry{constructor(e,t){super();const r=[],i=new n.Vector3(0,1,0),s=new n.Vector3,a=new n.Quaternion,o=new n.Quaternion;o.setFromAxisAngle(i,Math.PI/2);const l=new n.Vector3,c=new n.Vector3;c.copy(e.getPointAt(0)),c.y=0;const h=new n.Vector3,u=new n.Vector3,d=new n.Vector3,p=new n.Vector3;for(let n=1;n<=t;n++){l.copy(e.getPointAt(n/t)),l.y=0,s.subVectors(l,c);const f=Math.atan2(s.x,s.z);a.setFromAxisAngle(i,f),h.set(-.3,0,0),h.applyQuaternion(a),h.add(l),u.set(.3,0,0),u.applyQuaternion(a),u.add(l),d.set(.3,0,0),d.applyQuaternion(o),d.add(c),p.set(-.3,0,0),p.applyQuaternion(o),p.add(c),r.push(h.x,h.y,h.z),r.push(u.x,u.y,u.z),r.push(p.x,p.y,p.z),r.push(u.x,u.y,u.z),r.push(d.x,d.y,d.z),r.push(p.x,p.y,p.z),c.copy(l),o.copy(a)}this.setAttribute("position",new n.BufferAttribute(new Float32Array(r),3))}}class o extends n.BufferGeometry{constructor(){super();const e=[];for(let t=0;t<100;t++){const t=800*Math.random()-400,r=50*Math.random()+50,n=800*Math.random()-400,i=40*Math.random()+20;e.push(t-i,r,n-i),e.push(t+i,r,n-i),e.push(t-i,r,n+i),e.push(t+i,r,n-i),e.push(t+i,r,n+i),e.push(t-i,r,n+i)}this.setAttribute("position",new n.BufferAttribute(new Float32Array(e),3))}}class l extends n.BufferGeometry{constructor(e){super();const t=[],r=[],i=new n.Raycaster;i.ray.direction.set(0,-1,0);const s=new n.Color;for(let n=0;n<2e3;n++){const n=500*Math.random()-250,a=500*Math.random()-250;i.ray.origin.set(n,50,a);const o=i.intersectObject(e);if(0===o.length)continue;const l=o[0].point.y,c=5*Math.random()+.5;let h=Math.random()*Math.PI*2;t.push(n+Math.sin(h),l,a+Math.cos(h)),t.push(n,l+c,a),t.push(n+Math.sin(h+Math.PI),l,a+Math.cos(h+Math.PI)),h+=Math.PI/2,t.push(n+Math.sin(h),l,a+Math.cos(h)),t.push(n,l+c,a),t.push(n+Math.sin(h+Math.PI),l,a+Math.cos(h+Math.PI));const u=.1*Math.random();for(let e=0;e<6;e++)s.setRGB(.2+u,.4+u,0,"srgb"),r.push(s.r,s.g,s.b)}this.setAttribute("position",new n.BufferAttribute(new Float32Array(t),3)),this.setAttribute("color",new n.BufferAttribute(new Float32Array(r),3))}}t.RollerCoasterGeometry=i,t.RollerCoasterLiftersGeometry=s,t.RollerCoasterShadowGeometry=a,t.SkyGeometry=o,t.TreesGeometry=l},90648:(e,t)=>{"use strict";var r=Object.defineProperty,n=(e,t,n)=>(((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function i(){!1===document.hidden&&this.reset()}t.Timer=class{constructor(){n(this,"_previousTime"),n(this,"_currentTime"),n(this,"_delta"),n(this,"_elapsed"),n(this,"_timescale"),n(this,"_useFixedDelta"),n(this,"_fixedDelta"),n(this,"_usePageVisibilityAPI"),n(this,"_pageVisibilityHandler"),this._previousTime=0,this._currentTime=0,this._delta=0,this._elapsed=0,this._timescale=1,this._useFixedDelta=!1,this._fixedDelta=16.67,this._usePageVisibilityAPI="undefined"!=typeof document&&void 0!==document.hidden}connect(){return this._usePageVisibilityAPI&&(this._pageVisibilityHandler=i.bind(this),document.addEventListener("visibilitychange",this._pageVisibilityHandler,!1)),this}dispose(){return this._usePageVisibilityAPI&&this._pageVisibilityHandler&&document.removeEventListener("visibilitychange",this._pageVisibilityHandler),this}disableFixedDelta(){return this._useFixedDelta=!1,this}enableFixedDelta(){return this._useFixedDelta=!0,this}getDelta(){return this._delta/1e3}getElapsedTime(){return this._elapsed/1e3}getFixedDelta(){return this._fixedDelta/1e3}getTimescale(){return this._timescale}reset(){return this._currentTime=this._now(),this}setFixedDelta(e){return this._fixedDelta=1e3*e,this}setTimescale(e){return this._timescale=e,this}update(){return!0===this._useFixedDelta?this._delta=this._fixedDelta:(this._previousTime=this._currentTime,this._currentTime=this._now(),this._delta=this._currentTime-this._previousTime),this._delta*=this._timescale,this._elapsed+=this._delta,this}get elapsedTime(){return this.getElapsedTime()}_now(){return("undefined"==typeof performance?Date:performance).now()}}},70599:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.TubePainter=function(){const e=3e6,t=new n.BufferAttribute(new Float32Array(e),3);t.usage=n.DynamicDrawUsage;const r=new n.BufferAttribute(new Float32Array(e),3);r.usage=n.DynamicDrawUsage;const i=new n.BufferAttribute(new Float32Array(e),3);i.usage=n.DynamicDrawUsage;const s=new n.BufferGeometry;s.setAttribute("position",t),s.setAttribute("normal",r),s.setAttribute("color",i),s.drawRange.count=0;const a=new n.MeshStandardMaterial({vertexColors:!0}),o=new n.Mesh(s,a);o.frustumCulled=!1;const l=new n.Vector3,c=new n.Vector3,h=new n.Vector3,u=new n.Vector3,d=new n.Color(16777215);let p=1;function f(e,a,o,f){if(0===e.distanceToSquared(a))return;let m=s.drawRange.count;const g=function(e){const t=2*Math.PI,r=[],i=.01*e;for(let s=0;s<10;s++){const e=s/10*t;r.push(new n.Vector3(Math.sin(e)*i,Math.cos(e)*i,0))}return r}(p);for(let n=0,s=g.length;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(94117);t.Volume=class{constructor(e,t,r,i,s){if(void 0!==e){switch(this.xLength=Number(e)||1,this.yLength=Number(t)||1,this.zLength=Number(r)||1,this.axisOrder=["x","y","z"],i){case"Uint8":case"uint8":case"uchar":case"unsigned char":case"uint8_t":default:this.data=new Uint8Array(s);break;case"Int8":case"int8":case"signed char":case"int8_t":this.data=new Int8Array(s);break;case"Int16":case"int16":case"short":case"short int":case"signed short":case"signed short int":case"int16_t":this.data=new Int16Array(s);break;case"Uint16":case"uint16":case"ushort":case"unsigned short":case"unsigned short int":case"uint16_t":this.data=new Uint16Array(s);break;case"Int32":case"int32":case"int":case"signed int":case"int32_t":this.data=new Int32Array(s);break;case"Uint32":case"uint32":case"uint":case"unsigned int":case"uint32_t":this.data=new Uint32Array(s);break;case"longlong":case"long long":case"long long int":case"signed long long":case"signed long long int":case"int64":case"int64_t":case"ulonglong":case"unsigned long long":case"unsigned long long int":case"uint64":case"uint64_t":throw new Error("Error in Volume constructor : this type is not supported in JavaScript");case"Float32":case"float32":case"float":this.data=new Float32Array(s);break;case"Float64":case"float64":case"double":this.data=new Float64Array(s)}if(this.data.length!==this.xLength*this.yLength*this.zLength)throw new Error("Error in Volume constructor, lengths are not matching arrayBuffer size")}this.spacing=[1,1,1],this.offset=[0,0,0],this.matrix=new n.Matrix3,this.matrix.identity();let a=-1/0;Object.defineProperty(this,"lowerThreshold",{get:function(){return a},set:function(e){a=e,this.sliceList.forEach((function(e){e.geometryNeedsUpdate=!0}))}});let o=1/0;Object.defineProperty(this,"upperThreshold",{get:function(){return o},set:function(e){o=e,this.sliceList.forEach((function(e){e.geometryNeedsUpdate=!0}))}}),this.sliceList=[],this.segmentation=!1}getData(e,t,r){return this.data[r*this.xLength*this.yLength+t*this.xLength+e]}access(e,t,r){return r*this.xLength*this.yLength+t*this.xLength+e}reverseAccess(e){const t=Math.floor(e/(this.yLength*this.xLength)),r=Math.floor((e-t*this.yLength*this.xLength)/this.xLength);return[e-t*this.yLength*this.xLength-r*this.xLength,r,t]}map(e,t){const r=this.data.length;t=t||this;for(let n=0;n.9})),y=[l,c,o].find((function(e){return Math.abs(e.dot(A[1]))>.9})),x=[l,c,o].find((function(e){return Math.abs(e.dot(A[2]))>.9}));return{iLength:p,jLength:f,sliceAccess:function(e,t){const r=v===o?a:"i"===v.arglet?e:t,n=y===o?a:"i"===y.arglet?e:t,i=x===o?a:"i"===x.arglet?e:t,s=v.dot(A[0])>0?r:u.xLength-1-r,l=y.dot(A[1])>0?n:u.yLength-1-n,c=x.dot(A[2])>0?i:u.zLength-1-i;return u.access(s,l,c)},matrix:h,planeWidth:m,planeHeight:g}}extractSlice(e,t){const r=new i.VolumeSlice(this,t,e);return this.sliceList.push(r),r}repaintAllSlices(){return this.sliceList.forEach((function(e){e.repaint()})),this}computeMinMax(){let e=1/0,t=-1/0;const r=this.data.length;let n=0;for(n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.VolumeSlice=class{constructor(e,t,r){const i=this;this.volume=e,t=t||0,Object.defineProperty(this,"index",{get:function(){return t},set:function(e){return t=e,i.geometryNeedsUpdate=!0,t}}),this.axis=r||"z",this.canvas=document.createElement("canvas"),this.canvasBuffer=document.createElement("canvas"),this.updateGeometry();const s=new n.Texture(this.canvas);s.minFilter=n.LinearFilter,s.wrapS=s.wrapT=n.ClampToEdgeWrapping,"colorSpace"in s?s.colorSpace="srgb":s.encoding=3001;const a=new n.MeshBasicMaterial({map:s,side:n.DoubleSide,transparent:!0});this.mesh=new n.Mesh(this.geometry,a),this.mesh.matrixAutoUpdate=!1,this.geometryNeedsUpdate=!0,this.repaint()}repaint(){this.geometryNeedsUpdate&&this.updateGeometry();const e=this.iLength,t=this.jLength,r=this.sliceAccess,n=this.volume,i=this.canvasBuffer,s=this.ctxBuffer,a=s.getImageData(0,0,e,t),o=a.data,l=n.data,c=n.upperThreshold,h=n.lowerThreshold,u=n.windowLow,d=n.windowHigh;let p=0;if("label"===n.dataType)for(let f=0;f=this.colorMap.length?e%this.colorMap.length+1:e;const n=this.colorMap[e];o[4*p]=n>>24&255,o[4*p+1]=n>>16&255,o[4*p+2]=n>>8&255,o[4*p+3]=255&n,p++}else for(let f=0;f=e&&h<=e?n:0,e=Math.floor(255*(e-u)/(d-u)),e=e>255?255:e<0?0:0|e,o[4*p]=e,o[4*p+1]=e,o[4*p+2]=e,o[4*p+3]=n,p++}s.putImageData(a,0,0),this.ctx.drawImage(i,0,0,e,t,0,0,this.canvas.width,this.canvas.height),this.mesh.material.map.needsUpdate=!0}updateGeometry(){const e=this.volume.extractPerpendicularPlane(this.axis,this.index);this.sliceAccess=e.sliceAccess,this.jLength=e.jLength,this.iLength=e.iLength,this.matrix=e.matrix,this.canvas.width=e.planeWidth,this.canvas.height=e.planeHeight,this.canvasBuffer.width=this.iLength,this.canvasBuffer.height=this.jLength,this.ctx=this.canvas.getContext("2d"),this.ctxBuffer=this.canvasBuffer.getContext("2d"),this.geometry&&this.geometry.dispose(),this.geometry=new n.PlaneGeometry(e.planeWidth,e.planeHeight),this.mesh&&(this.mesh.geometry=this.geometry,this.mesh.matrix.identity(),this.mesh.applyMatrix4(this.matrix)),this.geometryNeedsUpdate=!1}}},17101:(e,t)=>{"use strict";let r,n;function i(e){const t={1:window.WebGLRenderingContext,2:window.WebGL2RenderingContext},r=document.createElement("div");r.id="webglmessage",r.style.fontFamily="monospace",r.style.fontSize="13px",r.style.fontWeight="normal",r.style.textAlign="center",r.style.background="#fff",r.style.color="#000",r.style.padding="1.5em",r.style.width="400px",r.style.margin="5em auto 0";let n='Your $0 does not seem to support $1';return n=t[e]?n.replace("$0","graphics card"):n.replace("$0","browser"),n=n.replace("$1",{1:"WebGL",2:"WebGL 2"}[e]),r.innerHTML=n,r}Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getErrorMessage=i,t.getWebGL2ErrorMessage=function(){return i(2)},t.getWebGLErrorMessage=function(){return i(1)},t.isWebGL2Available=function(){var e;if(void 0!==n)return n;try{let t;const r=document.createElement("canvas");return n=!(!window.WebGL2RenderingContext||!(t=r.getContext("webgl2"))),t&&(null==(e=t.getExtension("WEBGL_lose_context"))||e.loseContext()),n}catch(t){return n=!1}},t.isWebGLAvailable=function(){var e;if(void 0!==r)return r;try{let t;const n=document.createElement("canvas");return r=!(!window.WebGLRenderingContext||!(t=n.getContext("webgl"))),t&&(null==(e=t.getExtension("WEBGL_lose_context"))||e.loseContext()),r}catch(t){return r=!1}}},29022:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=1024,o=(e=1)=>{const t=new Float32Array(4096*e*4),r=new s.DataTexture(t,a,4*e,s.RGBAFormat,s.FloatType);return r.wrapS=s.RepeatWrapping,r.wrapT=s.RepeatWrapping,r.magFilter=s.NearestFilter,r.needsUpdate=!0,r},l=(e,t,r=0)=>{const n=Math.floor(1024);t.arcLengthDivisions=n/2,t.updateArcLengths();const i=t.getSpacedPoints(n),s=t.computeFrenetFrames(n,!0);for(let o=0;o{const a=e.image,{data:o}=a,l=4096*s;o[4*t+l+0]=r,o[4*t+l+1]=n,o[4*t+l+2]=i,o[4*t+l+3]=1},h=e=>({spineTexture:{value:e},pathOffset:{type:"f",value:0},pathSegment:{type:"f",value:1},spineOffset:{type:"f",value:161},spineLength:{type:"f",value:400},flow:{type:"i",value:1}});function u(e,t,r=1){e.__ok||(e.__ok=!0,e.onBeforeCompile=e=>{if(e.__modified)return;e.__modified=!0,Object.assign(e.uniforms,t);const n=`\n\t\tuniform sampler2D spineTexture;\n\t\tuniform float pathOffset;\n\t\tuniform float pathSegment;\n\t\tuniform float spineOffset;\n\t\tuniform float spineLength;\n\t\tuniform int flow;\n\n\t\tfloat textureLayers = ${4*r}.;\n\t\tfloat textureStacks = 1.;\n\n\t\t${e.vertexShader}\n\t\t`.replace("#include ","").replace("#include ","").replace("#include ","").replace(/void\s*main\s*\(\)\s*\{/,"\n void main() {\n #include \n\n vec4 worldPos = modelMatrix * vec4(position, 1.);\n\n bool bend = flow > 0;\n float xWeight = bend ? 0. : 1.;\n\n #ifdef USE_INSTANCING\n float pathOffsetFromInstanceMatrix = instanceMatrix[3][2];\n float spineLengthFromInstanceMatrix = instanceMatrix[3][0];\n float spinePortion = bend ? (worldPos.x + spineOffset) / spineLengthFromInstanceMatrix : 0.;\n float mt = (spinePortion * pathSegment + pathOffset + pathOffsetFromInstanceMatrix)*textureStacks;\n #else\n float spinePortion = bend ? (worldPos.x + spineOffset) / spineLength : 0.;\n float mt = (spinePortion * pathSegment + pathOffset)*textureStacks;\n #endif\n\n mt = mod(mt, textureStacks);\n float rowOffset = floor(mt);\n\n #ifdef USE_INSTANCING\n rowOffset += instanceMatrix[3][1] * 4.;\n #endif\n\n vec3 spinePos = texture2D(spineTexture, vec2(mt, (0. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 a = texture2D(spineTexture, vec2(mt, (1. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 b = texture2D(spineTexture, vec2(mt, (2. + rowOffset + 0.5) / textureLayers)).xyz;\n vec3 c = texture2D(spineTexture, vec2(mt, (3. + rowOffset + 0.5) / textureLayers)).xyz;\n mat3 basis = mat3(a, b, c);\n\n vec3 transformed = basis\n * vec3(worldPos.x * xWeight, worldPos.y * 1., worldPos.z * 1.)\n + spinePos;\n\n vec3 transformedNormal = normalMatrix * (basis * objectNormal);\n\t\t\t").replace("#include ","vec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\n\t\t\t\tgl_Position = projectionMatrix * mvPosition;");e.vertexShader=n})}class d{constructor(e,t=1){i(this,"curveArray"),i(this,"curveLengthArray"),i(this,"object3D"),i(this,"splineTexure"),i(this,"uniforms");const r=e.clone(),n=o(t),a=h(n);r.traverse((e=>{(e instanceof s.Mesh||e instanceof s.InstancedMesh)&&(e.material=e.material.clone(),u(e.material,a,t))})),this.curveArray=new Array(t),this.curveLengthArray=new Array(t),this.object3D=r,this.splineTexure=n,this.uniforms=a}updateCurve(e,t){if(e>=this.curveArray.length)throw Error("Index out of range for Flow");const r=t.getLength();this.uniforms.spineLength.value=r,this.curveLengthArray[e]=r,this.curveArray[e]=t,l(this.splineTexure,t,e)}moveAlongCurve(e){this.uniforms.pathOffset.value+=e}}const p=new s.Matrix4;t.Flow=d,t.InstancedFlow=class extends d{constructor(e,t,r,n){const a=new s.InstancedMesh(r,n,e);a.instanceMatrix.setUsage(s.DynamicDrawUsage),a.frustumCulled=!1,super(a,t),i(this,"offsets"),i(this,"whichCurve"),this.offsets=new Array(e).fill(0),this.whichCurve=new Array(e).fill(0)}writeChanges(e){p.makeTranslation(this.curveLengthArray[this.whichCurve[e]],this.whichCurve[e],this.offsets[e]),this.object3D.setMatrixAt(e,p),this.object3D.instanceMatrix.needsUpdate=!0}moveIndividualAlongCurve(e,t){this.offsets[e]+=t,this.writeChanges(e)}setCurve(e,t){if(isNaN(t))throw Error("curve index being set is Not a Number (NaN)");this.whichCurve[e]=t,this.writeChanges(e)}},t.getUniforms=h,t.initSplineTexture=o,t.modifyShader=u,t.updateSplineTexture=l},80101:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(66552);t.EdgeSplitModifier=class{constructor(){i(this,"A",new s.Vector3),i(this,"B",new s.Vector3),i(this,"C",new s.Vector3),i(this,"positions",[]),i(this,"normals",new Float32Array),i(this,"indexes",[]),i(this,"pointToIndexMap",[]),i(this,"splitIndexes",[]),i(this,"oldNormals",[]),i(this,"computeNormals",(()=>{this.normals=new Float32Array(3*this.indexes.length);for(let e=0;e{this.pointToIndexMap=Array(this.positions.length/3);for(let e=0;e{this.A.set(this.normals[3*r],this.normals[3*r+1],this.normals[3*r+2]).normalize();const n={splitGroup:[],currentGroup:[r]};for(let i of e)i!==r&&(this.B.set(this.normals[3*i],this.normals[3*i+1],this.normals[3*i+2]).normalize(),this.B.dot(this.A){if(0===e.length)return;const n=[];for(let s of e)n.push(this.edgeSplitToGroups(e,t,s));let i=n[0];for(let s of n)s.currentGroup.length>i.currentGroup.length&&(i=s);null!=r&&this.splitIndexes.push({original:r,indexes:i.currentGroup}),i.splitGroup.length&&this.edgeSplit(i.splitGroup,t,r||i.currentGroup[0])})),i(this,"modify",((e,t,r=!0)=>{let n=!1;if(e.attributes.normal&&(n=!0,e=e.clone(),!0===r&&null!==e.index&&(this.oldNormals=e.attributes.normal.array),e.deleteAttribute("normal")),null==e.index){if(void 0===a)throw"THREE.EdgeSplitModifier relies on BufferGeometryUtils";e=a.mergeVertices(e)}this.indexes=e.index.array,this.positions=e.getAttribute("position").array,this.computeNormals(),this.mapPositionsToIndexes(),this.splitIndexes=[];for(let s of this.pointToIndexMap)this.edgeSplit(s,Math.cos(t)-.001);const i={};for(let a of Object.keys(e.attributes)){const t=e.attributes[a],r=new t.array.constructor((this.indexes.length+this.splitIndexes.length)*t.itemSize);r.set(t.array),i[a]=new s.BufferAttribute(r,t.itemSize,t.normalized)}const o=new Uint32Array(this.indexes.length);o.set(this.indexes);for(let s=0;s{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(66552),o=new s.Vector3,l=new s.Vector3;function c(e,t){const r=e.indexOf(t);r>-1&&e.splice(r,1)}class h{constructor(e,t){i(this,"position"),i(this,"id"),i(this,"faces"),i(this,"neighbors"),i(this,"collapseCost"),i(this,"collapseNeighbor"),i(this,"minCost",0),i(this,"totalCost",0),i(this,"costCount",0),this.position=e,this.id=t,this.faces=[],this.neighbors=[],this.collapseCost=0,this.collapseNeighbor=null}addUniqueNeighbor(e){var t,r;t=this.neighbors,r=e,-1===t.indexOf(r)&&t.push(r)}removeIfNonNeighbor(e){const t=this.neighbors,r=this.faces,n=t.indexOf(e);if(-1!==n){for(let t=0;t{const r=t.position.distanceTo(e.position);let n=0;const i=[];let s,a,o,l=e.faces.length;for(s=0;s{if(0===e.neighbors.length)return e.collapseNeighbor=null,void(e.collapseCost=-.01);e.collapseCost=1e5,e.collapseNeighbor=null;for(let t=0;t{c(t,e),e.v1&&c(e.v1.faces,e),e.v2&&c(e.v2.faces,e),e.v3&&c(e.v3.faces,e);const r=[e.v1,e.v2,e.v3];let n,i;for(let s=0;s<3;s++)n=r[s],i=r[(s+1)%3],n&&i&&(n.removeIfNonNeighbor(i),i.removeIfNonNeighbor(n))})),i(this,"collapse",((e,t,r,n)=>{if(!n)return void this.removeVertex(r,e);let i;const s=[];for(i=0;i=0;i--)r.faces[i].hasVertex(n)&&this.removeFace(r.faces[i],t);for(i=r.faces.length-1;i>=0;i--)r.faces[i].replaceVertex(r,n);for(this.removeVertex(r,e),i=0;i{let t=e[0];for(let r=0;r{const r=(e=e.clone()).attributes;for(let s in r)"position"!==s&&e.deleteAttribute(s);const n=[],i=[],o=(e=a.mergeVertices(e)).getAttribute("position");for(let a=0;a{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);t.TessellateModifier=class{constructor(e=.1,t=6){i(this,"maxEdgeLength"),i(this,"maxIterations"),i(this,"modify",(e=>{null!==e.index&&(e=e.toNonIndexed());const t=this.maxIterations,r=this.maxEdgeLength*this.maxEdgeLength,n=new s.Vector3,i=new s.Vector3,a=new s.Vector3,o=new s.Vector3,l=[n,i,a,o],c=new s.Vector3,h=new s.Vector3,u=new s.Vector3,d=new s.Vector3,p=[c,h,u,d],f=new s.Color,m=new s.Color,g=new s.Color,A=new s.Color,v=[f,m,g,A],y=new s.Vector2,x=new s.Vector2,b=new s.Vector2,E=new s.Vector2,_=[y,x,b,E],S=new s.Vector2,M=new s.Vector2,w=new s.Vector2,C=new s.Vector2,T=[S,M,w,C],I=e.attributes,B=void 0!==I.normal,R=void 0!==I.color,P=void 0!==I.uv,D=void 0!==I.uv2;let L=I.position.array,F=B?I.normal.array:null,U=R?I.color.array:null,O=P?I.uv.array:null,N=D?I.uv2.array:null,k=L,G=F,z=U,Q=O,V=N,H=0,j=!0;function W(e,t,r){const n=l[e],i=l[t],s=l[r];if(k.push(n.x,n.y,n.z),k.push(i.x,i.y,i.z),k.push(s.x,s.y,s.z),B){const n=p[e],i=p[t],s=p[r];G.push(n.x,n.y,n.z),G.push(i.x,i.y,i.z),G.push(s.x,s.y,s.z)}if(R){const n=v[e],i=v[t],s=v[r];z.push(n.r,n.g,n.b),z.push(i.r,i.g,i.b),z.push(s.r,s.g,s.b)}if(P){const n=_[e],i=_[t],s=_[r];Q.push(n.x,n.y),Q.push(i.x,i.y),Q.push(s.x,s.y)}if(D){const n=T[e],i=T[t],s=T[r];V.push(n.x,n.y),V.push(i.x,i.y),V.push(s.x,s.y)}}for(;j&&Hr||l>r||p>r?(j=!0,s>=l&&s>=p?(o.lerpVectors(n,i,.5),B&&d.lerpVectors(c,h,.5),R&&A.lerpColors(f,m,.5),P&&E.lerpVectors(y,x,.5),D&&C.lerpVectors(S,M,.5),W(0,3,2),W(3,1,2)):l>=s&&l>=p?(o.lerpVectors(i,a,.5),B&&d.lerpVectors(h,u,.5),R&&A.lerpColors(m,g,.5),P&&E.lerpVectors(x,b,.5),D&&C.lerpVectors(M,w,.5),W(0,1,3),W(3,2,0)):(o.lerpVectors(n,a,.5),B&&d.lerpVectors(c,u,.5),R&&A.lerpColors(f,g,.5),P&&E.lerpVectors(y,b,.5),D&&C.lerpVectors(S,w,.5),W(0,1,3),W(3,1,2))):W(0,1,2)}}const X=new s.BufferGeometry;return X.setAttribute("position",new s.Float32BufferAttribute(k,3)),B&&X.setAttribute("normal",new s.Float32BufferAttribute(G,3)),R&&X.setAttribute("color",new s.Float32BufferAttribute(z,3)),P&&X.setAttribute("uv",new s.Float32BufferAttribute(Q,2)),D&&X.setAttribute("uv2",new s.Float32BufferAttribute(V,2)),X})),this.maxEdgeLength=e,this.maxIterations=t}}},89930:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a="_batch_id_",o=new s.Matrix4,l=(new s.Matrix4).set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1),c=`\n#ifdef BATCHING\n\tattribute float ${a};\n\tuniform highp sampler2D batchingTexture;\n\tmat4 getBatchingMatrix( const in float i ) {\n\n\t\tint size = textureSize( batchingTexture, 0 ).x;\n\t\tint j = int( i ) * 4;\n\t\tint x = j % size;\n\t\tint y = j / size;\n\t\tvec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );\n\t\tvec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );\n\t\tvec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );\n\t\tvec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );\n\t\treturn mat4( v1, v2, v3, v4 );\n\n\t}\n#endif\n`,h=`\n#ifdef BATCHING\n\tmat4 batchingMatrix = getBatchingMatrix( ${a} );\n#endif\n`;function u(e,t,r=0){const n=t.itemSize;if(e.isInterleavedBufferAttribute||e.array.constructor!==t.array.constructor){const i=e.count;for(let s=0;s","#include \n"+c).replace("#include ","#include \n"+h).replace("#include ","#include \n\n#ifdef BATCHING\n\tobjectNormal = vec4( batchingMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( batchingMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif\n").replace("#include ","#include \n\n#ifdef BATCHING\n\ttransformed = ( batchingMatrix * vec4( transformed, 1.0 ) ).xyz;\n#endif\n");for(const t in r)e.uniforms[t]=r[t];t.call(this,e,n)},e.defines=e.defines||{},e.defines.BATCHING=!1}_initializeGeometry(e){const t=this.geometry,r=this._maxVertexCount,n=this._maxGeometryCount,i=this._maxIndexCount;if(!1===this._geometryInitialized){for(const n in e.attributes){const i=e.getAttribute(n),{array:s,itemSize:a,normalized:o}=i,l=new s.constructor(r*a),c=new i.constructor(l,a,o);c.setUsage(i.usage),t.setAttribute(n,c)}if(null!==e.getIndex()){const e=r>65536?new Uint32Array(i):new Uint16Array(i);t.setIndex(new s.BufferAttribute(e,1))}const o=n>65536?new Uint32Array(r):new Uint16Array(r);t.setAttribute(a,new s.BufferAttribute(o,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(a))throw new Error(`BatchedMesh: Geometry cannot use attribute "${a}"`);const t=this.geometry;if(Boolean(e.getIndex())!==Boolean(t.getIndex()))throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const r in t.attributes){if(r===a)continue;if(!e.hasAttribute(r))throw new Error(`BatchedMesh: Added geometry missing "${r}". All geometries must have consistent attributes.`);const n=e.getAttribute(r),i=t.getAttribute(r);if(n.itemSize!==i.itemSize||n.normalized!==i.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}getGeometryCount(){return this._geometryCount}getVertexCount(){const e=this._reservedRanges;if(0===e.length)return 0;{const t=e[e.length-1];return t.vertexStart+t.vertexCount}}getIndexCount(){const e=this._reservedRanges;if(null===this.geometry.getIndex()||0===e.length)return 0;{const t=e[e.length-1];return t.indexStart+t.indexCount}}addGeometry(e,t=-1,r=-1){if(this._initializeGeometry(e),this._validateGeometry(e),this._geometryCount>=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const n={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let i=null;const l=this._reservedRanges;if(0!==this._geometryCount&&(i=l[l.length-1]),n.vertexCount=-1===t?e.getAttribute("position").count:t,n.vertexStart=null===i?0:i.vertexStart+i.vertexCount,null!==e.getIndex()&&(n.indexCount=-1===r?e.getIndex().count:r,n.indexStart=null===i?0:i.indexStart+i.indexCount),-1!==n.indexStart&&n.indexStart+n.indexCount>this._maxIndexCount||n.vertexStart+n.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const c=this._indexCounts,h=this._indexStarts,u=this._vertexCounts,d=this._vertexStarts,p=this._visible,f=this._active,m=this._matricesTexture,g=this._matrices,A=this._matricesTexture.image.data;p.push(!0),f.push(!0);const v=this._geometryCount;this._geometryCount++,g.push(new s.Matrix4),o.toArray(A,16*v),m.needsUpdate=!0,l.push(n),d.push(n.vertexStart),u.push(n.vertexCount),null!==e.getIndex()&&(h.push(n.indexCount),c.push(n.indexCount));const y=this.geometry.getAttribute(a);for(let s=0;s=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(t);const r=this._reservedRanges[e];if(null!==t.getIndex()&&t.getIndex().count>r.indexCount||t.attributes.position.count>r.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const n=this.geometry,i=t.getAttribute("position"),s=null!==n.getIndex(),o=n.getIndex(),l=t.getIndex(),c=r.vertexStart,h=r.vertexCount;for(const d in n.attributes){if(d===a)continue;const e=t.getAttribute(d),r=n.getAttribute(d);u(e,r,c);const i=e.itemSize;for(let t=e.count,n=h;t=t.length||!1===t[e]||(t[e]=!1,l.toArray(n,16*e),r.needsUpdate=!0),this}optimize(){throw new Error("BatchedMesh: Optimize function not implemented.")}setMatrixAt(e,t){const r=this._visible,n=this._active,i=this._matricesTexture,s=this._matrices,a=i.image.data;return e>=s.length||!1===n[e]||(!0===r[e]&&(t.toArray(a,16*e),i.needsUpdate=!0),s[e].copy(t)),this}getMatrixAt(e,t){const r=this._matrices,n=this._active;return e>=r.length||!1===n[e]?t:t.copy(r[e])}setVisibleAt(e,t){const r=this._visible,n=this._active,i=this._matricesTexture,s=this._matrices,a=i.image.data;return e>=r.length||!1===n[e]||r[e]===t||(!0===t?s[e].toArray(a,16*e):l.toArray(a,16*e),i.needsUpdate=!0,r[e]=t),this}getVisibleAt(e){const t=this._visible,r=this._active;return!(e>=t.length||!1===r[e])&&t[e]}raycast(){console.warn("BatchedMesh: Raycast function not implemented.")}copy(){throw new Error("BatchedMesh: Copy function not implemented.")}toJSON(){throw new Error("BatchedMesh: toJSON function not implemented.")}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}}t.BatchedMesh=d},29888:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Mesh{constructor(e,t){var r,i;const s=(a=e)&&a.isCubeTexture;var a;const o=(null!=(i=s?null==(r=e.image[0])?void 0:r.width:e.image.width)?i:1024)/4,l=Math.floor(Math.log2(o)),c=Math.pow(2,l),h=[s?"#define ENVMAP_TYPE_CUBE":"","#define CUBEUV_TEXEL_WIDTH "+1/(3*Math.max(c,112)),"#define CUBEUV_TEXEL_HEIGHT "+1/(4*c),`#define CUBEUV_MAX_MIP ${l}.0`].join("\n")+`\n #define ENVMAP_TYPE_CUBE_UV\n varying vec3 vWorldPosition;\n uniform float radius;\n uniform float height;\n uniform float angle;\n #ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube map;\n #else\n uniform sampler2D map;\n #endif\n // From: https://www.shadertoy.com/view/4tsBD7\n float diskIntersectWithBackFaceCulling( vec3 ro, vec3 rd, vec3 c, vec3 n, float r ) \n {\n float d = dot ( rd, n );\n \n if( d > 0.0 ) { return 1e6; }\n \n vec3 o = ro - c;\n float t = - dot( n, o ) / d;\n vec3 q = o + rd * t;\n \n return ( dot( q, q ) < r * r ) ? t : 1e6;\n }\n // From: https://www.iquilezles.org/www/articles/intersectors/intersectors.htm\n float sphereIntersect( vec3 ro, vec3 rd, vec3 ce, float ra ) \n {\n vec3 oc = ro - ce;\n float b = dot( oc, rd );\n float c = dot( oc, oc ) - ra * ra;\n float h = b * b - c;\n \n if( h < 0.0 ) { return -1.0; }\n \n h = sqrt( h );\n \n return - b + h;\n }\n vec3 project() \n {\n vec3 p = normalize( vWorldPosition );\n vec3 camPos = cameraPosition;\n camPos.y -= height;\n float intersection = sphereIntersect( camPos, p, vec3( 0.0 ), radius );\n if( intersection > 0.0 ) {\n \n vec3 h = vec3( 0.0, - height, 0.0 );\n float intersection2 = diskIntersectWithBackFaceCulling( camPos, p, h, vec3( 0.0, 1.0, 0.0 ), radius );\n p = ( camPos + min( intersection, intersection2 ) * p ) / radius;\n } else {\n p = vec3( 0.0, 1.0, 0.0 );\n }\n return p;\n }\n #include \n #include \n void main() \n {\n vec3 projectedWorldPosition = project();\n \n #ifdef ENVMAP_TYPE_CUBE\n vec3 outcolor = textureCube( map, projectedWorldPosition ).rgb;\n #else\n vec3 direction = normalize( projectedWorldPosition );\n vec2 uv = equirectUv( direction );\n vec3 outcolor = texture2D( map, uv ).rgb;\n #endif\n gl_FragColor = vec4( outcolor, 1.0 );\n #include \n #include <${parseInt(n.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `,u={map:{value:e},height:{value:(null==t?void 0:t.height)||15},radius:{value:(null==t?void 0:t.radius)||100}};super(new n.IcosahedronGeometry(1,16),new n.ShaderMaterial({uniforms:u,fragmentShader:h,vertexShader:"\n varying vec3 vWorldPosition;\n void main() \n {\n vec4 worldPosition = ( modelMatrix * vec4( position, 1.0 ) );\n vWorldPosition = worldPosition.xyz;\n \n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n ",side:n.DoubleSide}))}set radius(e){this.material.uniforms.radius.value=e}get radius(){return this.material.uniforms.radius.value}set height(e){this.material.uniforms.height.value=e}get height(){return this.material.uniforms.height.value}}t.GroundProjectedEnv=i},17564:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=new s.BufferGeometry,o=new Float32Array([-1,-1,0,0,0,1,-1,0,1,0,1,1,0,1,1,-1,1,0,0,1]),l=new s.InterleavedBuffer(o,5);a.setIndex([0,1,2,0,2,3]),a.setAttribute("position",new s.InterleavedBufferAttribute(l,3,0,!1)),a.setAttribute("uv",new s.InterleavedBufferAttribute(l,2,3,!1));const c=class extends s.Mesh{constructor(){super(c.Geometry,new s.MeshBasicMaterial({opacity:0,transparent:!0})),this.isLensflare=!0,this.type="Lensflare",this.frustumCulled=!1,this.renderOrder=1/0;const e=new s.Vector3,t=new s.Vector3,r=new s.DataTexture(new Uint8Array(768),16,16,s.RGBAFormat);r.minFilter=s.NearestFilter,r.magFilter=s.NearestFilter,r.wrapS=s.ClampToEdgeWrapping,r.wrapT=s.ClampToEdgeWrapping;const n=new s.DataTexture(new Uint8Array(768),16,16,s.RGBAFormat);n.minFilter=s.NearestFilter,n.magFilter=s.NearestFilter,n.wrapS=s.ClampToEdgeWrapping,n.wrapT=s.ClampToEdgeWrapping;const i=c.Geometry,a=new s.RawShaderMaterial({uniforms:{scale:{value:null},screenPosition:{value:null}},vertexShader:"\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform vec3 screenPosition;\n\t\t\t\tuniform vec2 scale;\n\n\t\t\t\tattribute vec3 position;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\n\n\t\t\t\t}",fragmentShader:"\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 );\n\n\t\t\t\t}",depthTest:!0,depthWrite:!1,transparent:!1}),o=new s.RawShaderMaterial({uniforms:{map:{value:r},scale:{value:null},screenPosition:{value:null}},vertexShader:"\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform vec3 screenPosition;\n\t\t\t\tuniform vec2 scale;\n\n\t\t\t\tattribute vec3 position;\n\t\t\t\tattribute vec2 uv;\n\n\t\t\t\tvarying vec2 vUV;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUV = uv;\n\n\t\t\t\t\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\n\n\t\t\t\t}",fragmentShader:"\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform sampler2D map;\n\n\t\t\t\tvarying vec2 vUV;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = texture2D( map, vUV );\n\n\t\t\t\t}",depthTest:!1,depthWrite:!1,transparent:!1}),l=new s.Mesh(i,a),h=[],d=u.Shader,p=new s.RawShaderMaterial({uniforms:{map:{value:null},occlusionMap:{value:n},color:{value:new s.Color(16777215)},scale:{value:new s.Vector2},screenPosition:{value:new s.Vector3}},vertexShader:d.vertexShader,fragmentShader:d.fragmentShader,blending:s.AdditiveBlending,transparent:!0,depthWrite:!1}),f=new s.Mesh(i,p);this.addElement=function(e){h.push(e)};const m=new s.Vector2,g=new s.Vector2,A=new s.Box2,v=new s.Vector4;this.onBeforeRender=function(s,c,u){s.getCurrentViewport(v);const d=v.w/v.z,y=v.z/2,x=v.w/2;let b=16/v.w;if(m.set(b*d,b),A.min.set(v.x,v.y),A.max.set(v.x+(v.z-16),v.y+(v.w-16)),t.setFromMatrixPosition(this.matrixWorld),t.applyMatrix4(u.matrixWorldInverse),!(t.z>0)&&(e.copy(t).applyMatrix4(u.projectionMatrix),g.x=v.x+e.x*y+y-8,g.y=v.y+e.y*x+x-8,A.containsPoint(g))){s.copyFramebufferToTexture(g,r);let t=a.uniforms;t.scale.value=m,t.screenPosition.value=e,s.renderBufferDirect(u,null,i,a,l,null),s.copyFramebufferToTexture(g,n),t=o.uniforms,t.scale.value=m,t.screenPosition.value=e,s.renderBufferDirect(u,null,i,o,l,null);const c=2*-e.x,d=2*-e.y;for(let r=0,n=h.length;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(42095);class s extends n.Object3D{constructor(e={}){super(),this.isLightningStorm=!0,this.stormParams=e,e.size=void 0!==e.size?e.size:1e3,e.minHeight=void 0!==e.minHeight?e.minHeight:80,e.maxHeight=void 0!==e.maxHeight?e.maxHeight:100,e.maxSlope=void 0!==e.maxSlope?e.maxSlope:1.1,e.maxLightnings=void 0!==e.maxLightnings?e.maxLightnings:3,e.lightningMinPeriod=void 0!==e.lightningMinPeriod?e.lightningMinPeriod:3,e.lightningMaxPeriod=void 0!==e.lightningMaxPeriod?e.lightningMaxPeriod:7,e.lightningMinDuration=void 0!==e.lightningMinDuration?e.lightningMinDuration:1,e.lightningMaxDuration=void 0!==e.lightningMaxDuration?e.lightningMaxDuration:2.5,this.lightningParameters=i.LightningStrike.copyParameters(e.lightningParameters,e.lightningParameters),this.lightningParameters.isEternal=!1,this.lightningMaterial=void 0!==e.lightningMaterial?e.lightningMaterial:new n.MeshBasicMaterial({color:11599871}),void 0!==e.onRayPosition?this.onRayPosition=e.onRayPosition:this.onRayPosition=function(t,r){r.set((Math.random()-.5)*e.size,0,(Math.random()-.5)*e.size);const i=n.MathUtils.lerp(e.minHeight,e.maxHeight,Math.random());t.set(e.maxSlope*(2*Math.random()-1),1,e.maxSlope*(2*Math.random()-1)).multiplyScalar(i).add(r)},this.onLightningDown=e.onLightningDown,this.inited=!1,this.nextLightningTime=0,this.lightningsMeshes=[],this.deadLightningsMeshes=[];for(let t=0;t=this.nextLightningTime){const t=this.deadLightningsMeshes.pop();if(t){const r=i.LightningStrike.copyParameters(t.geometry.rayParameters,this.lightningParameters);r.birthTime=e,r.deathTime=e+n.MathUtils.lerp(this.stormParams.lightningMinDuration,this.stormParams.lightningMaxDuration,Math.random()),this.onRayPosition(r.sourceOffset,r.destOffset),r.noiseSeed=Math.random(),this.add(t),this.lightningsMeshes.push(t)}this.nextLightningTime=this.getNextLightningTime(e)}let t=0,r=this.lightningsMeshes.length;for(;ta&&this.onLightningDown&&this.onLightningDown(s),s.state===i.LightningStrike.RAY_EXTINGUISHED?(this.lightningsMeshes.splice(this.lightningsMeshes.indexOf(n),1),this.deadLightningsMeshes.push(n),this.remove(n),r--):t++}}getNextLightningTime(e){return e+n.MathUtils.lerp(this.stormParams.lightningMinPeriod,this.stormParams.lightningMaxPeriod,Math.random())/(this.stormParams.maxLightnings+1)}copy(e,t){return super.copy(e,t),this.stormParams.size=e.stormParams.size,this.stormParams.minHeight=e.stormParams.minHeight,this.stormParams.maxHeight=e.stormParams.maxHeight,this.stormParams.maxSlope=e.stormParams.maxSlope,this.stormParams.maxLightnings=e.stormParams.maxLightnings,this.stormParams.lightningMinPeriod=e.stormParams.lightningMinPeriod,this.stormParams.lightningMaxPeriod=e.stormParams.lightningMaxPeriod,this.stormParams.lightningMinDuration=e.stormParams.lightningMinDuration,this.stormParams.lightningMaxDuration=e.stormParams.lightningMaxDuration,this.lightningParameters=i.LightningStrike.copyParameters({},e.lightningParameters),this.lightningMaterial=e.stormParams.lightningMaterial,this.onLightningDown=e.onLightningDown,this}clone(){return new this.constructor(this.stormParams).copy(this)}}t.LightningStorm=s},14514:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Mesh{constructor(e,t,r=!1,i=!1,o=1e4){const l=new n.BufferGeometry;super(l,t),this.isMarchingCubes=!0;const c=this,h=new Float32Array(36),u=new Float32Array(36),d=new Float32Array(36);function p(e,t,r){return e+(t-e)*r}function f(e,t,r,n,i,s,a,o,l,f){const m=(r-a)/(o-a),g=c.normal_cache;h[t+0]=n+m*c.delta,h[t+1]=i,h[t+2]=s,u[t+0]=p(g[e+0],g[e+3],m),u[t+1]=p(g[e+1],g[e+4],m),u[t+2]=p(g[e+2],g[e+5],m),d[t+0]=p(c.palette[3*l+0],c.palette[3*f+0],m),d[t+1]=p(c.palette[3*l+1],c.palette[3*f+1],m),d[t+2]=p(c.palette[3*l+2],c.palette[3*f+2],m)}function m(e,t,r,n,i,s,a,o,l,f){const m=(r-a)/(o-a),g=c.normal_cache;h[t+0]=n,h[t+1]=i+m*c.delta,h[t+2]=s;const A=e+3*c.yd;u[t+0]=p(g[e+0],g[A+0],m),u[t+1]=p(g[e+1],g[A+1],m),u[t+2]=p(g[e+2],g[A+2],m),d[t+0]=p(c.palette[3*l+0],c.palette[3*f+0],m),d[t+1]=p(c.palette[3*l+1],c.palette[3*f+1],m),d[t+2]=p(c.palette[3*l+2],c.palette[3*f+2],m)}function g(e,t,r,n,i,s,a,o,l,f){const m=(r-a)/(o-a),g=c.normal_cache;h[t+0]=n,h[t+1]=i,h[t+2]=s+m*c.delta;const A=e+3*c.zd;u[t+0]=p(g[e+0],g[A+0],m),u[t+1]=p(g[e+1],g[A+1],m),u[t+2]=p(g[e+2],g[A+2],m),d[t+0]=p(c.palette[3*l+0],c.palette[3*f+0],m),d[t+1]=p(c.palette[3*l+1],c.palette[3*f+1],m),d[t+2]=p(c.palette[3*l+2],c.palette[3*f+2],m)}function A(e){const t=3*e;0===c.normal_cache[t]&&(c.normal_cache[t+0]=c.field[e-1]-c.field[e+1],c.normal_cache[t+1]=c.field[e-c.yd]-c.field[e+c.yd],c.normal_cache[t+2]=c.field[e-c.zd]-c.field[e+c.zd])}function v(e,t,r,n,i){const o=n+1,l=n+c.yd,p=n+c.zd,v=o+c.yd,x=o+c.zd,b=n+c.yd+c.zd,E=o+c.yd+c.zd;let _=0;const S=c.field[n],M=c.field[o],w=c.field[l],C=c.field[v],T=c.field[p],I=c.field[x],B=c.field[b],R=c.field[E];Sthis.size-1&&(m=this.size-1);let g=Math.floor(d-h);g<1&&(g=1);let A=Math.floor(d+h);A>this.size-1&&(A=this.size-1);let v=Math.floor(p-h);v<1&&(v=1);let y,x,b,E,_,S,M,w,C,T,I,B=Math.floor(p+h);for(B>this.size-1&&(B=this.size-1),b=f;b0){this.field[E+y]+=I*o;const e=Math.sqrt((y-p)*(y-p)+(x-d)*(x-d)+(b-u)*(b-u))/h,t=1-e*e*e*(e*(6*e-15)+10);this.palette[3*(E+y)+0]+=c.r*t,this.palette[3*(E+y)+1]+=c.g*t,this.palette[3*(E+y)+2]+=c.b*t}},this.addPlaneX=function(e,t){const r=this.size,n=this.yd,i=this.zd,s=this.field;let a,o,l,c,h,u,d,p=r*Math.sqrt(e/t);for(p>r&&(p=r),a=0;a0)for(o=0;or&&(f=r),o=0;o0)for(d=o*n,a=0;ar&&(f=r),l=0;l0)for(d=i*l,o=0;o=n))for(let t=-1;t<=1;t+=2){const s=t+a;if(!(s<0||s>=n))for(let t=-1;t<=1;t+=2){const a=t+o;if(a<0||a>=n)continue;h++,c+=e*(r[i*a+n*s+l]-c)/h}}}t[l]=c}},this.reset=function(){for(let e=0;eo&&console.warn("THREE.MarchingCubes: Geometry buffers too small for rendering. Please create an instance with a higher poly count.")},this.init(e)}}const s=new Int32Array([0,265,515,778,1030,1295,1541,1804,2060,2309,2575,2822,3082,3331,3593,3840,400,153,915,666,1430,1183,1941,1692,2460,2197,2975,2710,3482,3219,3993,3728,560,825,51,314,1590,1855,1077,1340,2620,2869,2111,2358,3642,3891,3129,3376,928,681,419,170,1958,1711,1445,1196,2988,2725,2479,2214,4010,3747,3497,3232,1120,1385,1635,1898,102,367,613,876,3180,3429,3695,3942,2154,2403,2665,2912,1520,1273,2035,1786,502,255,1013,764,3580,3317,4095,3830,2554,2291,3065,2800,1616,1881,1107,1370,598,863,85,348,3676,3925,3167,3414,2650,2899,2137,2384,1984,1737,1475,1226,966,719,453,204,4044,3781,3535,3270,3018,2755,2505,2240,2240,2505,2755,3018,3270,3535,3781,4044,204,453,719,966,1226,1475,1737,1984,2384,2137,2899,2650,3414,3167,3925,3676,348,85,863,598,1370,1107,1881,1616,2800,3065,2291,2554,3830,4095,3317,3580,764,1013,255,502,1786,2035,1273,1520,2912,2665,2403,2154,3942,3695,3429,3180,876,613,367,102,1898,1635,1385,1120,3232,3497,3747,4010,2214,2479,2725,2988,1196,1445,1711,1958,170,419,681,928,3376,3129,3891,3642,2358,2111,2869,2620,1340,1077,1855,1590,314,51,825,560,3728,3993,3219,3482,2710,2975,2197,2460,1692,1941,1183,1430,666,915,153,400,3840,3593,3331,3082,2822,2575,2309,2060,1804,1541,1295,1030,778,515,265,0]),a=new Int32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,9,8,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,2,10,0,2,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,8,3,2,10,8,10,9,8,-1,-1,-1,-1,-1,-1,-1,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,8,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,11,2,1,9,11,9,8,11,-1,-1,-1,-1,-1,-1,-1,3,10,1,11,10,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,10,1,0,8,10,8,11,10,-1,-1,-1,-1,-1,-1,-1,3,9,0,3,11,9,11,10,9,-1,-1,-1,-1,-1,-1,-1,9,8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,7,3,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,1,9,4,7,1,7,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,4,7,3,0,4,1,2,10,-1,-1,-1,-1,-1,-1,-1,9,2,10,9,0,2,8,4,7,-1,-1,-1,-1,-1,-1,-1,2,10,9,2,9,7,2,7,3,7,9,4,-1,-1,-1,-1,8,4,7,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,4,7,11,2,4,2,0,4,-1,-1,-1,-1,-1,-1,-1,9,0,1,8,4,7,2,3,11,-1,-1,-1,-1,-1,-1,-1,4,7,11,9,4,11,9,11,2,9,2,1,-1,-1,-1,-1,3,10,1,3,11,10,7,8,4,-1,-1,-1,-1,-1,-1,-1,1,11,10,1,4,11,1,0,4,7,11,4,-1,-1,-1,-1,4,7,8,9,0,11,9,11,10,11,0,3,-1,-1,-1,-1,4,7,11,4,11,9,9,11,10,-1,-1,-1,-1,-1,-1,-1,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,5,4,1,5,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,5,4,8,3,5,3,1,5,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,10,4,9,5,-1,-1,-1,-1,-1,-1,-1,5,2,10,5,4,2,4,0,2,-1,-1,-1,-1,-1,-1,-1,2,10,5,3,2,5,3,5,4,3,4,8,-1,-1,-1,-1,9,5,4,2,3,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,0,8,11,4,9,5,-1,-1,-1,-1,-1,-1,-1,0,5,4,0,1,5,2,3,11,-1,-1,-1,-1,-1,-1,-1,2,1,5,2,5,8,2,8,11,4,8,5,-1,-1,-1,-1,10,3,11,10,1,3,9,5,4,-1,-1,-1,-1,-1,-1,-1,4,9,5,0,8,1,8,10,1,8,11,10,-1,-1,-1,-1,5,4,0,5,0,11,5,11,10,11,0,3,-1,-1,-1,-1,5,4,8,5,8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,9,7,8,5,7,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,3,0,9,5,3,5,7,3,-1,-1,-1,-1,-1,-1,-1,0,7,8,0,1,7,1,5,7,-1,-1,-1,-1,-1,-1,-1,1,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,7,8,9,5,7,10,1,2,-1,-1,-1,-1,-1,-1,-1,10,1,2,9,5,0,5,3,0,5,7,3,-1,-1,-1,-1,8,0,2,8,2,5,8,5,7,10,5,2,-1,-1,-1,-1,2,10,5,2,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,7,9,5,7,8,9,3,11,2,-1,-1,-1,-1,-1,-1,-1,9,5,7,9,7,2,9,2,0,2,7,11,-1,-1,-1,-1,2,3,11,0,1,8,1,7,8,1,5,7,-1,-1,-1,-1,11,2,1,11,1,7,7,1,5,-1,-1,-1,-1,-1,-1,-1,9,5,8,8,5,7,10,1,3,10,3,11,-1,-1,-1,-1,5,7,0,5,0,9,7,11,0,1,0,10,11,10,0,-1,11,10,0,11,0,3,10,5,0,8,0,7,5,7,0,-1,11,10,5,7,11,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,6,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,0,1,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,1,9,8,5,10,6,-1,-1,-1,-1,-1,-1,-1,1,6,5,2,6,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,6,5,1,2,6,3,0,8,-1,-1,-1,-1,-1,-1,-1,9,6,5,9,0,6,0,2,6,-1,-1,-1,-1,-1,-1,-1,5,9,8,5,8,2,5,2,6,3,2,8,-1,-1,-1,-1,2,3,11,10,6,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,0,8,11,2,0,10,6,5,-1,-1,-1,-1,-1,-1,-1,0,1,9,2,3,11,5,10,6,-1,-1,-1,-1,-1,-1,-1,5,10,6,1,9,2,9,11,2,9,8,11,-1,-1,-1,-1,6,3,11,6,5,3,5,1,3,-1,-1,-1,-1,-1,-1,-1,0,8,11,0,11,5,0,5,1,5,11,6,-1,-1,-1,-1,3,11,6,0,3,6,0,6,5,0,5,9,-1,-1,-1,-1,6,5,9,6,9,11,11,9,8,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,4,7,3,6,5,10,-1,-1,-1,-1,-1,-1,-1,1,9,0,5,10,6,8,4,7,-1,-1,-1,-1,-1,-1,-1,10,6,5,1,9,7,1,7,3,7,9,4,-1,-1,-1,-1,6,1,2,6,5,1,4,7,8,-1,-1,-1,-1,-1,-1,-1,1,2,5,5,2,6,3,0,4,3,4,7,-1,-1,-1,-1,8,4,7,9,0,5,0,6,5,0,2,6,-1,-1,-1,-1,7,3,9,7,9,4,3,2,9,5,9,6,2,6,9,-1,3,11,2,7,8,4,10,6,5,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,2,4,2,0,2,7,11,-1,-1,-1,-1,0,1,9,4,7,8,2,3,11,5,10,6,-1,-1,-1,-1,9,2,1,9,11,2,9,4,11,7,11,4,5,10,6,-1,8,4,7,3,11,5,3,5,1,5,11,6,-1,-1,-1,-1,5,1,11,5,11,6,1,0,11,7,11,4,0,4,11,-1,0,5,9,0,6,5,0,3,6,11,6,3,8,4,7,-1,6,5,9,6,9,11,4,7,9,7,11,9,-1,-1,-1,-1,10,4,9,6,4,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,10,6,4,9,10,0,8,3,-1,-1,-1,-1,-1,-1,-1,10,0,1,10,6,0,6,4,0,-1,-1,-1,-1,-1,-1,-1,8,3,1,8,1,6,8,6,4,6,1,10,-1,-1,-1,-1,1,4,9,1,2,4,2,6,4,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,9,2,4,9,2,6,4,-1,-1,-1,-1,0,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,3,2,8,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,10,4,9,10,6,4,11,2,3,-1,-1,-1,-1,-1,-1,-1,0,8,2,2,8,11,4,9,10,4,10,6,-1,-1,-1,-1,3,11,2,0,1,6,0,6,4,6,1,10,-1,-1,-1,-1,6,4,1,6,1,10,4,8,1,2,1,11,8,11,1,-1,9,6,4,9,3,6,9,1,3,11,6,3,-1,-1,-1,-1,8,11,1,8,1,0,11,6,1,9,1,4,6,4,1,-1,3,11,6,3,6,0,0,6,4,-1,-1,-1,-1,-1,-1,-1,6,4,8,11,6,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,10,6,7,8,10,8,9,10,-1,-1,-1,-1,-1,-1,-1,0,7,3,0,10,7,0,9,10,6,7,10,-1,-1,-1,-1,10,6,7,1,10,7,1,7,8,1,8,0,-1,-1,-1,-1,10,6,7,10,7,1,1,7,3,-1,-1,-1,-1,-1,-1,-1,1,2,6,1,6,8,1,8,9,8,6,7,-1,-1,-1,-1,2,6,9,2,9,1,6,7,9,0,9,3,7,3,9,-1,7,8,0,7,0,6,6,0,2,-1,-1,-1,-1,-1,-1,-1,7,3,2,6,7,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,11,10,6,8,10,8,9,8,6,7,-1,-1,-1,-1,2,0,7,2,7,11,0,9,7,6,7,10,9,10,7,-1,1,8,0,1,7,8,1,10,7,6,7,10,2,3,11,-1,11,2,1,11,1,7,10,6,1,6,7,1,-1,-1,-1,-1,8,9,6,8,6,7,9,1,6,11,6,3,1,3,6,-1,0,9,1,11,6,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,0,7,0,6,3,11,0,11,6,0,-1,-1,-1,-1,7,11,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,1,9,8,3,1,11,7,6,-1,-1,-1,-1,-1,-1,-1,10,1,2,6,11,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,3,0,8,6,11,7,-1,-1,-1,-1,-1,-1,-1,2,9,0,2,10,9,6,11,7,-1,-1,-1,-1,-1,-1,-1,6,11,7,2,10,3,10,8,3,10,9,8,-1,-1,-1,-1,7,2,3,6,2,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,0,8,7,6,0,6,2,0,-1,-1,-1,-1,-1,-1,-1,2,7,6,2,3,7,0,1,9,-1,-1,-1,-1,-1,-1,-1,1,6,2,1,8,6,1,9,8,8,7,6,-1,-1,-1,-1,10,7,6,10,1,7,1,3,7,-1,-1,-1,-1,-1,-1,-1,10,7,6,1,7,10,1,8,7,1,0,8,-1,-1,-1,-1,0,3,7,0,7,10,0,10,9,6,10,7,-1,-1,-1,-1,7,6,10,7,10,8,8,10,9,-1,-1,-1,-1,-1,-1,-1,6,8,4,11,8,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,6,11,3,0,6,0,4,6,-1,-1,-1,-1,-1,-1,-1,8,6,11,8,4,6,9,0,1,-1,-1,-1,-1,-1,-1,-1,9,4,6,9,6,3,9,3,1,11,3,6,-1,-1,-1,-1,6,8,4,6,11,8,2,10,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,3,0,11,0,6,11,0,4,6,-1,-1,-1,-1,4,11,8,4,6,11,0,2,9,2,10,9,-1,-1,-1,-1,10,9,3,10,3,2,9,4,3,11,3,6,4,6,3,-1,8,2,3,8,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,0,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,4,2,4,6,4,3,8,-1,-1,-1,-1,1,9,4,1,4,2,2,4,6,-1,-1,-1,-1,-1,-1,-1,8,1,3,8,6,1,8,4,6,6,10,1,-1,-1,-1,-1,10,1,0,10,0,6,6,0,4,-1,-1,-1,-1,-1,-1,-1,4,6,3,4,3,8,6,10,3,0,3,9,10,9,3,-1,10,9,4,6,10,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,5,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,5,11,7,6,-1,-1,-1,-1,-1,-1,-1,5,0,1,5,4,0,7,6,11,-1,-1,-1,-1,-1,-1,-1,11,7,6,8,3,4,3,5,4,3,1,5,-1,-1,-1,-1,9,5,4,10,1,2,7,6,11,-1,-1,-1,-1,-1,-1,-1,6,11,7,1,2,10,0,8,3,4,9,5,-1,-1,-1,-1,7,6,11,5,4,10,4,2,10,4,0,2,-1,-1,-1,-1,3,4,8,3,5,4,3,2,5,10,5,2,11,7,6,-1,7,2,3,7,6,2,5,4,9,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,6,0,6,2,6,8,7,-1,-1,-1,-1,3,6,2,3,7,6,1,5,0,5,4,0,-1,-1,-1,-1,6,2,8,6,8,7,2,1,8,4,8,5,1,5,8,-1,9,5,4,10,1,6,1,7,6,1,3,7,-1,-1,-1,-1,1,6,10,1,7,6,1,0,7,8,7,0,9,5,4,-1,4,0,10,4,10,5,0,3,10,6,10,7,3,7,10,-1,7,6,10,7,10,8,5,4,10,4,8,10,-1,-1,-1,-1,6,9,5,6,11,9,11,8,9,-1,-1,-1,-1,-1,-1,-1,3,6,11,0,6,3,0,5,6,0,9,5,-1,-1,-1,-1,0,11,8,0,5,11,0,1,5,5,6,11,-1,-1,-1,-1,6,11,3,6,3,5,5,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,11,9,11,8,11,5,6,-1,-1,-1,-1,0,11,3,0,6,11,0,9,6,5,6,9,1,2,10,-1,11,8,5,11,5,6,8,0,5,10,5,2,0,2,5,-1,6,11,3,6,3,5,2,10,3,10,5,3,-1,-1,-1,-1,5,8,9,5,2,8,5,6,2,3,8,2,-1,-1,-1,-1,9,5,6,9,6,0,0,6,2,-1,-1,-1,-1,-1,-1,-1,1,5,8,1,8,0,5,6,8,3,8,2,6,2,8,-1,1,5,6,2,1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,3,6,1,6,10,3,8,6,5,6,9,8,9,6,-1,10,1,0,10,0,6,9,5,0,5,6,0,-1,-1,-1,-1,0,3,8,5,6,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,7,5,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,11,7,5,8,3,0,-1,-1,-1,-1,-1,-1,-1,5,11,7,5,10,11,1,9,0,-1,-1,-1,-1,-1,-1,-1,10,7,5,10,11,7,9,8,1,8,3,1,-1,-1,-1,-1,11,1,2,11,7,1,7,5,1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,7,1,7,5,7,2,11,-1,-1,-1,-1,9,7,5,9,2,7,9,0,2,2,11,7,-1,-1,-1,-1,7,5,2,7,2,11,5,9,2,3,2,8,9,8,2,-1,2,5,10,2,3,5,3,7,5,-1,-1,-1,-1,-1,-1,-1,8,2,0,8,5,2,8,7,5,10,2,5,-1,-1,-1,-1,9,0,1,5,10,3,5,3,7,3,10,2,-1,-1,-1,-1,9,8,2,9,2,1,8,7,2,10,2,5,7,5,2,-1,1,3,5,3,7,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,7,0,7,1,1,7,5,-1,-1,-1,-1,-1,-1,-1,9,0,3,9,3,5,5,3,7,-1,-1,-1,-1,-1,-1,-1,9,8,7,5,9,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,8,4,5,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,5,0,4,5,11,0,5,10,11,11,3,0,-1,-1,-1,-1,0,1,9,8,4,10,8,10,11,10,4,5,-1,-1,-1,-1,10,11,4,10,4,5,11,3,4,9,4,1,3,1,4,-1,2,5,1,2,8,5,2,11,8,4,5,8,-1,-1,-1,-1,0,4,11,0,11,3,4,5,11,2,11,1,5,1,11,-1,0,2,5,0,5,9,2,11,5,4,5,8,11,8,5,-1,9,4,5,2,11,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,5,10,3,5,2,3,4,5,3,8,4,-1,-1,-1,-1,5,10,2,5,2,4,4,2,0,-1,-1,-1,-1,-1,-1,-1,3,10,2,3,5,10,3,8,5,4,5,8,0,1,9,-1,5,10,2,5,2,4,1,9,2,9,4,2,-1,-1,-1,-1,8,4,5,8,5,3,3,5,1,-1,-1,-1,-1,-1,-1,-1,0,4,5,1,0,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,4,5,8,5,3,9,0,5,0,3,5,-1,-1,-1,-1,9,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,11,7,4,9,11,9,10,11,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,7,9,11,7,9,10,11,-1,-1,-1,-1,1,10,11,1,11,4,1,4,0,7,4,11,-1,-1,-1,-1,3,1,4,3,4,8,1,10,4,7,4,11,10,11,4,-1,4,11,7,9,11,4,9,2,11,9,1,2,-1,-1,-1,-1,9,7,4,9,11,7,9,1,11,2,11,1,0,8,3,-1,11,7,4,11,4,2,2,4,0,-1,-1,-1,-1,-1,-1,-1,11,7,4,11,4,2,8,3,4,3,2,4,-1,-1,-1,-1,2,9,10,2,7,9,2,3,7,7,4,9,-1,-1,-1,-1,9,10,7,9,7,4,10,2,7,8,7,0,2,0,7,-1,3,7,10,3,10,2,7,4,10,1,10,0,4,0,10,-1,1,10,2,8,7,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,7,1,3,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,0,8,1,8,7,1,-1,-1,-1,-1,4,0,3,7,4,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,8,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,11,9,10,-1,-1,-1,-1,-1,-1,-1,0,1,10,0,10,8,8,10,11,-1,-1,-1,-1,-1,-1,-1,3,1,10,11,3,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,11,1,11,9,9,11,8,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,1,2,9,2,11,9,-1,-1,-1,-1,0,2,11,8,0,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,2,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,10,8,9,-1,-1,-1,-1,-1,-1,-1,9,10,2,0,9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,0,1,8,1,10,8,-1,-1,-1,-1,1,10,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,3,8,9,1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,9,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,3,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]);t.MarchingCubes=i,t.edgeTable=s,t.triTable=a},75488:(e,t,r)=>{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=r(85232),s=r(65236),a=class extends i.Mesh{constructor(e,t={}){super(e),this.isReflector=!0,this.type="Reflector",this.camera=new i.PerspectiveCamera;const r=this,n=void 0!==t.color?new i.Color(t.color):new i.Color(8355711),s=t.textureWidth||512,o=t.textureHeight||512,l=t.clipBias||0,c=t.shader||a.ReflectorShader,h=void 0!==t.multisample?t.multisample:4,u=new i.Plane,d=new i.Vector3,p=new i.Vector3,f=new i.Vector3,m=new i.Matrix4,g=new i.Vector3(0,0,-1),A=new i.Vector4,v=new i.Vector3,y=new i.Vector3,x=new i.Vector4,b=new i.Matrix4,E=this.camera,_=new i.WebGLRenderTarget(s,o,{samples:h,type:i.HalfFloatType}),S=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(c.uniforms),fragmentShader:c.fragmentShader,vertexShader:c.vertexShader});S.uniforms.tDiffuse.value=_.texture,S.uniforms.color.value=n,S.uniforms.textureMatrix.value=b,this.material=S,this.onBeforeRender=function(e,t,n){if(p.setFromMatrixPosition(r.matrixWorld),f.setFromMatrixPosition(n.matrixWorld),m.extractRotation(r.matrixWorld),d.set(0,0,1),d.applyMatrix4(m),v.subVectors(p,f),v.dot(d)>0)return;v.reflect(d).negate(),v.add(p),m.extractRotation(n.matrixWorld),g.set(0,0,-1),g.applyMatrix4(m),g.add(f),y.subVectors(p,g),y.reflect(d).negate(),y.add(p),E.position.copy(v),E.up.set(0,1,0),E.up.applyMatrix4(m),E.up.reflect(d),E.lookAt(y),E.far=n.far,E.updateMatrixWorld(),E.projectionMatrix.copy(n.projectionMatrix),b.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),b.multiply(E.projectionMatrix),b.multiply(E.matrixWorldInverse),b.multiply(r.matrixWorld),u.setFromNormalAndCoplanarPoint(d,p),u.applyMatrix4(E.matrixWorldInverse),A.set(u.normal.x,u.normal.y,u.normal.z,u.constant);const s=E.projectionMatrix;x.x=(Math.sign(A.x)+s.elements[8])/s.elements[0],x.y=(Math.sign(A.y)+s.elements[9])/s.elements[5],x.z=-1,x.w=(1+s.elements[10])/s.elements[14],A.multiplyScalar(2/A.dot(x)),s.elements[2]=A.x,s.elements[6]=A.y,s.elements[10]=A.z+1-l,s.elements[14]=A.w,r.visible=!1;const a=e.getRenderTarget(),o=e.xr.enabled,c=e.shadowMap.autoUpdate,h=e.toneMapping;let S=!1;S="outputColorSpace"in e?"srgb"===e.outputColorSpace:3001===e.outputEncoding,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,"outputColorSpace"in e?e.outputColorSpace="linear-srgb":e.outputEncoding=3e3,e.toneMapping=i.NoToneMapping,e.setRenderTarget(_),e.state.buffers.depth.setMask(!0),!1===e.autoClear&&e.clear(),e.render(t,E),e.xr.enabled=o,e.shadowMap.autoUpdate=c,e.toneMapping=h,"outputColorSpace"in e?e.outputColorSpace=S?"srgb":"srgb-linear":e.outputEncoding=S?3001:3e3,e.setRenderTarget(a);const M=n.viewport;void 0!==M&&e.state.viewport(M),r.visible=!0},this.getRenderTarget=function(){return _},this.dispose=function(){_.dispose(),r.material.dispose()}}};let o=a;var l,c,h;l=o,c="ReflectorShader",h={uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:"\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\t#include \n\t\t#include \n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t#include \n\n\t\t}",fragmentShader:`\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\t\tvarying vec4 vUv;\n\n\t\t#include \n\n\t\tfloat blendOverlay( float base, float blend ) {\n\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\n\t\t}\n\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\t#include \n\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\n\t\t\t#include \n\t\t\t#include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n\n\t\t}`},((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(l,"symbol"!=typeof c?c+"":c,h),t.Reflector=o},92664:(e,t,r)=>{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=r(85232),s=class extends i.Mesh{constructor(e,t={}){super(e),this.isReflectorForSSRPass=!0,this.type="ReflectorForSSRPass";const r=this,n=void 0!==t.color?new i.Color(t.color):new i.Color(8355711),a=t.textureWidth||512,o=t.textureHeight||512,l=t.clipBias||0,c=t.shader||s.ReflectorShader,h=!0===t.useDepthTexture,u=new i.Vector3(0,1,0),d=new i.Vector3,p=new i.Vector3;r.needsUpdate=!1,r.maxDistance=s.ReflectorShader.uniforms.maxDistance.value,r.opacity=s.ReflectorShader.uniforms.opacity.value,r.color=n,r.resolution=t.resolution||new i.Vector2(window.innerWidth,window.innerHeight),r._distanceAttenuation=s.ReflectorShader.defines.DISTANCE_ATTENUATION,Object.defineProperty(r,"distanceAttenuation",{get:()=>r._distanceAttenuation,set(e){r._distanceAttenuation!==e&&(r._distanceAttenuation=e,r.material.defines.DISTANCE_ATTENUATION=e,r.material.needsUpdate=!0)}}),r._fresnel=s.ReflectorShader.defines.FRESNEL,Object.defineProperty(r,"fresnel",{get:()=>r._fresnel,set(e){r._fresnel!==e&&(r._fresnel=e,r.material.defines.FRESNEL=e,r.material.needsUpdate=!0)}});const f=new i.Vector3,m=new i.Vector3,g=new i.Vector3,A=new i.Matrix4,v=new i.Vector3(0,0,-1),y=new i.Vector3,x=new i.Vector3,b=new i.Matrix4,E=new i.PerspectiveCamera;let _;h&&(_=new i.DepthTexture,_.type=i.UnsignedShortType,_.minFilter=i.NearestFilter,_.magFilter=i.NearestFilter);const S={depthTexture:h?_:null,type:i.HalfFloatType},M=new i.WebGLRenderTarget(a,o,S),w=new i.ShaderMaterial({transparent:h,defines:Object.assign({},s.ReflectorShader.defines,{useDepthTexture:h}),uniforms:i.UniformsUtils.clone(c.uniforms),fragmentShader:c.fragmentShader,vertexShader:c.vertexShader});w.uniforms.tDiffuse.value=M.texture,w.uniforms.color.value=r.color,w.uniforms.textureMatrix.value=b,h&&(w.uniforms.tDepth.value=M.depthTexture),this.material=w;const C=[new i.Plane(new i.Vector3(0,1,0),l)];this.doRender=function(e,t,n){if(w.uniforms.maxDistance.value=r.maxDistance,w.uniforms.color.value=r.color,w.uniforms.opacity.value=r.opacity,d.copy(n.position).normalize(),p.copy(d).reflect(u),w.uniforms.fresnelCoe.value=(d.dot(p)+1)/2,m.setFromMatrixPosition(r.matrixWorld),g.setFromMatrixPosition(n.matrixWorld),A.extractRotation(r.matrixWorld),f.set(0,0,1),f.applyMatrix4(A),y.subVectors(m,g),y.dot(f)>0)return;y.reflect(f).negate(),y.add(m),A.extractRotation(n.matrixWorld),v.set(0,0,-1),v.applyMatrix4(A),v.add(g),x.subVectors(m,v),x.reflect(f).negate(),x.add(m),E.position.copy(y),E.up.set(0,1,0),E.up.applyMatrix4(A),E.up.reflect(f),E.lookAt(x),E.far=n.far,E.updateMatrixWorld(),E.projectionMatrix.copy(n.projectionMatrix),w.uniforms.virtualCameraNear.value=n.near,w.uniforms.virtualCameraFar.value=n.far,w.uniforms.virtualCameraMatrixWorld.value=E.matrixWorld,w.uniforms.virtualCameraProjectionMatrix.value=n.projectionMatrix,w.uniforms.virtualCameraProjectionMatrixInverse.value=n.projectionMatrixInverse,w.uniforms.resolution.value=r.resolution,b.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),b.multiply(E.projectionMatrix),b.multiply(E.matrixWorldInverse),b.multiply(r.matrixWorld);const i=e.getRenderTarget(),s=e.xr.enabled,a=e.shadowMap.autoUpdate,o=e.clippingPlanes;e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,e.clippingPlanes=C,e.setRenderTarget(M),e.state.buffers.depth.setMask(!0),!1===e.autoClear&&e.clear(),e.render(t,E),e.xr.enabled=s,e.shadowMap.autoUpdate=a,e.clippingPlanes=o,e.setRenderTarget(i);const l=n.viewport;void 0!==l&&e.state.viewport(l)},this.getRenderTarget=function(){return M}}};let a=s;var o,l,c;o=a,l="ReflectorShader",c={defines:{DISTANCE_ATTENUATION:!0,FRESNEL:!0},uniforms:{color:{value:null},tDiffuse:{value:null},tDepth:{value:null},textureMatrix:{value:new i.Matrix4},maxDistance:{value:180},opacity:{value:.5},fresnelCoe:{value:null},virtualCameraNear:{value:null},virtualCameraFar:{value:null},virtualCameraProjectionMatrix:{value:new i.Matrix4},virtualCameraMatrixWorld:{value:new i.Matrix4},virtualCameraProjectionMatrixInverse:{value:new i.Matrix4},resolution:{value:new i.Vector2}},vertexShader:"\n\t\tuniform mat4 textureMatrix;\n\t\tvarying vec4 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:"\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform sampler2D tDepth;\n\t\tuniform float maxDistance;\n\t\tuniform float opacity;\n\t\tuniform float fresnelCoe;\n\t\tuniform float virtualCameraNear;\n\t\tuniform float virtualCameraFar;\n\t\tuniform mat4 virtualCameraProjectionMatrix;\n\t\tuniform mat4 virtualCameraProjectionMatrixInverse;\n\t\tuniform mat4 virtualCameraMatrixWorld;\n\t\tuniform vec2 resolution;\n\t\tvarying vec4 vUv;\n\t\t#include \n\t\tfloat blendOverlay( float base, float blend ) {\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\t\t}\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\treturn perspectiveDepthToViewZ( depth, virtualCameraNear, virtualCameraFar );\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( virtualCameraProjectionMatrixInverse * clipPosition ).xyz;//view\n\t\t}\n\t\tvoid main() {\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\t#ifdef useDepthTexture\n\t\t\t\tvec2 uv=(gl_FragCoord.xy-.5)/resolution.xy;\n\t\t\t\tuv.x=1.-uv.x;\n\t\t\t\tfloat depth = texture2DProj( tDepth, vUv ).r;\n\t\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\t\tfloat clipW = virtualCameraProjectionMatrix[2][3] * viewZ+virtualCameraProjectionMatrix[3][3];\n\t\t\t\tvec3 viewPosition=getViewPosition( uv, depth, clipW );\n\t\t\t\tvec3 worldPosition=(virtualCameraMatrixWorld*vec4(viewPosition,1)).xyz;\n\t\t\t\tif(worldPosition.y>maxDistance) discard;\n\t\t\t\tfloat op=opacity;\n\t\t\t\t#ifdef DISTANCE_ATTENUATION\n\t\t\t\t\tfloat ratio=1.-(worldPosition.y/maxDistance);\n\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t#endif\n\t\t\t\t#ifdef FRESNEL\n\t\t\t\t\top*=fresnelCoe;\n\t\t\t\t#endif\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), op );\n\t\t\t#else\n\t\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\t\t\t#endif\n\t\t}\n\t"},((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(o,"symbol"!=typeof l?l+"":l,c),t.ReflectorForSSRPass=a},91909:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(75488);class i extends n.Reflector{constructor(e,t){super(e,t),this.geometry.setDrawRange(0,0)}}t.ReflectorRTT=i},86307:(e,t,r)=>{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=r(85232),s=r(65236),a=class extends i.Mesh{constructor(e,t={}){super(e),this.isRefractor=!0,this.type="Refractor",this.camera=new i.PerspectiveCamera;const r=this,n=void 0!==t.color?new i.Color(t.color):new i.Color(8355711),s=t.textureWidth||512,o=t.textureHeight||512,l=t.clipBias||0,c=t.shader||a.RefractorShader,h=void 0!==t.multisample?t.multisample:4,u=this.camera;u.matrixAutoUpdate=!1,u.userData.refractor=!0;const d=new i.Plane,p=new i.Matrix4,f=new i.WebGLRenderTarget(s,o,{samples:h,type:i.HalfFloatType});this.material=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(c.uniforms),vertexShader:c.vertexShader,fragmentShader:c.fragmentShader,transparent:!0}),this.material.uniforms.color.value=n,this.material.uniforms.tDiffuse.value=f.texture,this.material.uniforms.textureMatrix.value=p;const m=function(){const e=new i.Vector3,t=new i.Vector3,n=new i.Matrix4,s=new i.Vector3,a=new i.Vector3;return function(i){return e.setFromMatrixPosition(r.matrixWorld),t.setFromMatrixPosition(i.matrixWorld),s.subVectors(e,t),n.extractRotation(r.matrixWorld),a.set(0,0,1),a.applyMatrix4(n),s.dot(a)<0}}(),g=function(){const e=new i.Vector3,t=new i.Vector3,n=new i.Quaternion,s=new i.Vector3;return function(){r.matrixWorld.decompose(t,n,s),e.set(0,0,1).applyQuaternion(n).normalize(),e.negate(),d.setFromNormalAndCoplanarPoint(e,t)}}(),A=function(){const e=new i.Plane,t=new i.Vector4,r=new i.Vector4;return function(n){u.matrixWorld.copy(n.matrixWorld),u.matrixWorldInverse.copy(u.matrixWorld).invert(),u.projectionMatrix.copy(n.projectionMatrix),u.far=n.far,e.copy(d),e.applyMatrix4(u.matrixWorldInverse),t.set(e.normal.x,e.normal.y,e.normal.z,e.constant);const i=u.projectionMatrix;r.x=(Math.sign(t.x)+i.elements[8])/i.elements[0],r.y=(Math.sign(t.y)+i.elements[9])/i.elements[5],r.z=-1,r.w=(1+i.elements[10])/i.elements[14],t.multiplyScalar(2/t.dot(r)),i.elements[2]=t.x,i.elements[6]=t.y,i.elements[10]=t.z+1-l,i.elements[14]=t.w}}();this.onBeforeRender=function(e,t,n){!0!==n.userData.refractor&&!0!=!m(n)&&(g(),function(e){p.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),p.multiply(e.projectionMatrix),p.multiply(e.matrixWorldInverse),p.multiply(r.matrixWorld)}(n),A(n),function(e,t,n){r.visible=!1;const s=e.getRenderTarget(),a=e.xr.enabled,o=e.shadowMap.autoUpdate,l=e.toneMapping;let c=!1;c="outputColorSpace"in e?"srgb"===e.outputColorSpace:3001===e.outputEncoding,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,"outputColorSpace"in e?e.outputColorSpace="linear-srgb":e.outputEncoding=3e3,e.toneMapping=i.NoToneMapping,e.setRenderTarget(f),!1===e.autoClear&&e.clear(),e.render(t,u),e.xr.enabled=a,e.shadowMap.autoUpdate=o,e.toneMapping=l,e.setRenderTarget(s),"outputColorSpace"in e?e.outputColorSpace=c?"srgb":"srgb-linear":e.outputEncoding=c?3001:3e3;const h=n.viewport;void 0!==h&&e.state.viewport(h),r.visible=!0}(e,t,n))},this.getRenderTarget=function(){return f},this.dispose=function(){f.dispose(),r.material.dispose()}}};let o=a;var l,c,h;l=o,c="RefractorShader",h={uniforms:{color:{value:null},tDiffuse:{value:null},textureMatrix:{value:null}},vertexShader:"\n\n\t\tuniform mat4 textureMatrix;\n\n\t\tvarying vec4 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = textureMatrix * vec4( position, 1.0 );\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}",fragmentShader:`\n\n\t\tuniform vec3 color;\n\t\tuniform sampler2D tDiffuse;\n\n\t\tvarying vec4 vUv;\n\n\t\tfloat blendOverlay( float base, float blend ) {\n\n\t\t\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );\n\n\t\t}\n\n\t\tvec3 blendOverlay( vec3 base, vec3 blend ) {\n\n\t\t\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ), blendOverlay( base.b, blend.b ) );\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvec4 base = texture2DProj( tDiffuse, vUv );\n\t\t\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );\n\n\t\t\t#include \n\t\t\t#include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n\n\t\t}`},((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(l,"symbol"!=typeof c?c+"":c,h),t.Refractor=o},16558:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Matrix4;class s extends n.Mesh{constructor(e){const t=new n.MeshBasicMaterial({color:0,transparent:!0,opacity:.6,depthWrite:!1,stencilWrite:!0,stencilFunc:n.EqualStencilFunc,stencilRef:0,stencilZPass:n.IncrementStencilOp});super(e.geometry,t),this.isShadowMesh=!0,this.meshMatrix=e.matrixWorld,this.frustumCulled=!1,this.matrixAutoUpdate=!1}update(e,t){const r=e.normal.x*t.x+e.normal.y*t.y+e.normal.z*t.z+-e.constant*t.w,n=i.elements;n[0]=r-t.x*e.normal.x,n[4]=-t.x*e.normal.y,n[8]=-t.x*e.normal.z,n[12]=-t.x*-e.constant,n[1]=-t.y*e.normal.x,n[5]=r-t.y*e.normal.y,n[9]=-t.y*e.normal.z,n[13]=-t.y*-e.constant,n[2]=-t.z*e.normal.x,n[6]=-t.z*e.normal.y,n[10]=r-t.z*e.normal.z,n[14]=-t.z*-e.constant,n[3]=-t.w*e.normal.x,n[7]=-t.w*e.normal.y,n[11]=-t.w*e.normal.z,n[15]=r-t.w*-e.constant,this.matrix.multiplyMatrices(i,this.meshMatrix)}}t.ShadowMesh=s},79047:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(65236),o={uniforms:{turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new s.Vector3},up:{value:new s.Vector3(0,1,0)}},vertexShader:"\n uniform vec3 sunPosition;\n uniform float rayleigh;\n uniform float turbidity;\n uniform float mieCoefficient;\n uniform vec3 up;\n\n varying vec3 vWorldPosition;\n varying vec3 vSunDirection;\n varying float vSunfade;\n varying vec3 vBetaR;\n varying vec3 vBetaM;\n varying float vSunE;\n\n // constants for atmospheric scattering\n const float e = 2.71828182845904523536028747135266249775724709369995957;\n const float pi = 3.141592653589793238462643383279502884197169;\n\n // wavelength of used primaries, according to preetham\n const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 );\n // this pre-calcuation replaces older TotalRayleigh(vec3 lambda) function:\n // (8.0 * pow(pi, 3.0) * pow(pow(n, 2.0) - 1.0, 2.0) * (6.0 + 3.0 * pn)) / (3.0 * N * pow(lambda, vec3(4.0)) * (6.0 - 7.0 * pn))\n const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 );\n\n // mie stuff\n // K coefficient for the primaries\n const float v = 4.0;\n const vec3 K = vec3( 0.686, 0.678, 0.666 );\n // MieConst = pi * pow( ( 2.0 * pi ) / lambda, vec3( v - 2.0 ) ) * K\n const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 );\n\n // earth shadow hack\n // cutoffAngle = pi / 1.95;\n const float cutoffAngle = 1.6110731556870734;\n const float steepness = 1.5;\n const float EE = 1000.0;\n\n float sunIntensity( float zenithAngleCos ) {\n zenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 );\n return EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) );\n }\n\n vec3 totalMie( float T ) {\n float c = ( 0.2 * T ) * 10E-18;\n return 0.434 * c * MieConst;\n }\n\n void main() {\n\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n vWorldPosition = worldPosition.xyz;\n\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n gl_Position.z = gl_Position.w; // set z to camera.far\n\n vSunDirection = normalize( sunPosition );\n\n vSunE = sunIntensity( dot( vSunDirection, up ) );\n\n vSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 );\n\n float rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) );\n\n // extinction (absorbtion + out scattering)\n // rayleigh coefficients\n vBetaR = totalRayleigh * rayleighCoefficient;\n\n // mie coefficients\n vBetaM = totalMie( turbidity ) * mieCoefficient;\n\n }\n ",fragmentShader:`\n varying vec3 vWorldPosition;\n varying vec3 vSunDirection;\n varying float vSunfade;\n varying vec3 vBetaR;\n varying vec3 vBetaM;\n varying float vSunE;\n\n uniform float mieDirectionalG;\n uniform vec3 up;\n\n const vec3 cameraPos = vec3( 0.0, 0.0, 0.0 );\n\n // constants for atmospheric scattering\n const float pi = 3.141592653589793238462643383279502884197169;\n\n const float n = 1.0003; // refractive index of air\n const float N = 2.545E25; // number of molecules per unit volume for air at 288.15K and 1013mb (sea level -45 celsius)\n\n // optical length at zenith for molecules\n const float rayleighZenithLength = 8.4E3;\n const float mieZenithLength = 1.25E3;\n // 66 arc seconds -> degrees, and the cosine of that\n const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;\n\n // 3.0 / ( 16.0 * pi )\n const float THREE_OVER_SIXTEENPI = 0.05968310365946075;\n // 1.0 / ( 4.0 * pi )\n const float ONE_OVER_FOURPI = 0.07957747154594767;\n\n float rayleighPhase( float cosTheta ) {\n return THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) );\n }\n\n float hgPhase( float cosTheta, float g ) {\n float g2 = pow( g, 2.0 );\n float inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 );\n return ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse );\n }\n\n void main() {\n\n vec3 direction = normalize( vWorldPosition - cameraPos );\n\n // optical length\n // cutoff angle at 90 to avoid singularity in next formula.\n float zenithAngle = acos( max( 0.0, dot( up, direction ) ) );\n float inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) );\n float sR = rayleighZenithLength * inverse;\n float sM = mieZenithLength * inverse;\n\n // combined extinction factor\n vec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) );\n\n // in scattering\n float cosTheta = dot( direction, vSunDirection );\n\n float rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 );\n vec3 betaRTheta = vBetaR * rPhase;\n\n float mPhase = hgPhase( cosTheta, mieDirectionalG );\n vec3 betaMTheta = vBetaM * mPhase;\n\n vec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) );\n Lin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) );\n\n // nightsky\n float theta = acos( direction.y ); // elevation --\x3e y-axis, [-pi/2, pi/2]\n float phi = atan( direction.z, direction.x ); // azimuth --\x3e x-axis [-pi/2, pi/2]\n vec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 );\n vec3 L0 = vec3( 0.1 ) * Fex;\n\n // composition + solar disc\n float sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta );\n L0 += ( vSunE * 19000.0 * Fex ) * sundisk;\n\n vec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 );\n\n vec3 retColor = pow( texColor, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) );\n\n gl_FragColor = vec4( retColor, 1.0 );\n\n #include \n #include <${a.version>=154?"colorspace_fragment":"encodings_fragment"}>\n\n }\n `},l=new s.ShaderMaterial({name:"SkyShader",fragmentShader:o.fragmentShader,vertexShader:o.vertexShader,uniforms:s.UniformsUtils.clone(o.uniforms),side:s.BackSide,depthWrite:!1});class c extends s.Mesh{constructor(){super(new s.BoxGeometry(1,1,1),l)}}i(c,"SkyShader",o),i(c,"material",l),t.Sky=c},52359:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Mesh{constructor(e,t={}){super(e),this.isWater=!0;const r=this,i=void 0!==t.textureWidth?t.textureWidth:512,s=void 0!==t.textureHeight?t.textureHeight:512,a=void 0!==t.clipBias?t.clipBias:0,o=void 0!==t.alpha?t.alpha:1,l=void 0!==t.time?t.time:0,c=void 0!==t.waterNormals?t.waterNormals:null,h=void 0!==t.sunDirection?t.sunDirection:new n.Vector3(.70707,.70707,0),u=new n.Color(void 0!==t.sunColor?t.sunColor:16777215),d=new n.Color(void 0!==t.waterColor?t.waterColor:8355711),p=void 0!==t.eye?t.eye:new n.Vector3(0,0,0),f=void 0!==t.distortionScale?t.distortionScale:20,m=void 0!==t.side?t.side:n.FrontSide,g=void 0!==t.fog&&t.fog,A=new n.Plane,v=new n.Vector3,y=new n.Vector3,x=new n.Vector3,b=new n.Matrix4,E=new n.Vector3(0,0,-1),_=new n.Vector4,S=new n.Vector3,M=new n.Vector3,w=new n.Vector4,C=new n.Matrix4,T=new n.PerspectiveCamera,I=new n.WebGLRenderTarget(i,s),B={uniforms:n.UniformsUtils.merge([n.UniformsLib.fog,n.UniformsLib.lights,{normalSampler:{value:null},mirrorSampler:{value:null},alpha:{value:1},time:{value:0},size:{value:1},distortionScale:{value:20},textureMatrix:{value:new n.Matrix4},sunColor:{value:new n.Color(8355711)},sunDirection:{value:new n.Vector3(.70707,.70707,0)},eye:{value:new n.Vector3},waterColor:{value:new n.Color(5592405)}}]),vertexShader:"\n\t\t\t\tuniform mat4 textureMatrix;\n\t\t\t\tuniform float time;\n\n\t\t\t\tvarying vec4 mirrorCoord;\n\t\t\t\tvarying vec4 worldPosition;\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\t\t\t\t\tmirrorCoord = modelMatrix * vec4( position, 1.0 );\n\t\t\t\t\tworldPosition = mirrorCoord.xyzw;\n\t\t\t\t\tmirrorCoord = textureMatrix * mirrorCoord;\n\t\t\t\t\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t}",fragmentShader:`\n\t\t\t\tuniform sampler2D mirrorSampler;\n\t\t\t\tuniform float alpha;\n\t\t\t\tuniform float time;\n\t\t\t\tuniform float size;\n\t\t\t\tuniform float distortionScale;\n\t\t\t\tuniform sampler2D normalSampler;\n\t\t\t\tuniform vec3 sunColor;\n\t\t\t\tuniform vec3 sunDirection;\n\t\t\t\tuniform vec3 eye;\n\t\t\t\tuniform vec3 waterColor;\n\n\t\t\t\tvarying vec4 mirrorCoord;\n\t\t\t\tvarying vec4 worldPosition;\n\n\t\t\t\tvec4 getNoise( vec2 uv ) {\n\t\t\t\t\tvec2 uv0 = ( uv / 103.0 ) + vec2(time / 17.0, time / 29.0);\n\t\t\t\t\tvec2 uv1 = uv / 107.0-vec2( time / -19.0, time / 31.0 );\n\t\t\t\t\tvec2 uv2 = uv / vec2( 8907.0, 9803.0 ) + vec2( time / 101.0, time / 97.0 );\n\t\t\t\t\tvec2 uv3 = uv / vec2( 1091.0, 1027.0 ) - vec2( time / 109.0, time / -113.0 );\n\t\t\t\t\tvec4 noise = texture2D( normalSampler, uv0 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv1 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv2 ) +\n\t\t\t\t\t\ttexture2D( normalSampler, uv3 );\n\t\t\t\t\treturn noise * 0.5 - 1.0;\n\t\t\t\t}\n\n\t\t\t\tvoid sunLight( const vec3 surfaceNormal, const vec3 eyeDirection, float shiny, float spec, float diffuse, inout vec3 diffuseColor, inout vec3 specularColor ) {\n\t\t\t\t\tvec3 reflection = normalize( reflect( -sunDirection, surfaceNormal ) );\n\t\t\t\t\tfloat direction = max( 0.0, dot( eyeDirection, reflection ) );\n\t\t\t\t\tspecularColor += pow( direction, shiny ) * sunColor * spec;\n\t\t\t\t\tdiffuseColor += max( dot( sunDirection, surfaceNormal ), 0.0 ) * sunColor * diffuse;\n\t\t\t\t}\n\n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\t#include \n\t\t\t\t\tvec4 noise = getNoise( worldPosition.xz * size );\n\t\t\t\t\tvec3 surfaceNormal = normalize( noise.xzy * vec3( 1.5, 1.0, 1.5 ) );\n\n\t\t\t\t\tvec3 diffuseLight = vec3(0.0);\n\t\t\t\t\tvec3 specularLight = vec3(0.0);\n\n\t\t\t\t\tvec3 worldToEye = eye-worldPosition.xyz;\n\t\t\t\t\tvec3 eyeDirection = normalize( worldToEye );\n\t\t\t\t\tsunLight( surfaceNormal, eyeDirection, 100.0, 2.0, 0.5, diffuseLight, specularLight );\n\n\t\t\t\t\tfloat distance = length(worldToEye);\n\n\t\t\t\t\tvec2 distortion = surfaceNormal.xz * ( 0.001 + 1.0 / distance ) * distortionScale;\n\t\t\t\t\tvec3 reflectionSample = vec3( texture2D( mirrorSampler, mirrorCoord.xy / mirrorCoord.w + distortion ) );\n\n\t\t\t\t\tfloat theta = max( dot( eyeDirection, surfaceNormal ), 0.0 );\n\t\t\t\t\tfloat rf0 = 0.3;\n\t\t\t\t\tfloat reflectance = rf0 + ( 1.0 - rf0 ) * pow( ( 1.0 - theta ), 5.0 );\n\t\t\t\t\tvec3 scatter = max( 0.0, dot( surfaceNormal, eyeDirection ) ) * waterColor;\n\t\t\t\t\tvec3 albedo = mix( ( sunColor * diffuseLight * 0.3 + scatter ) * getShadowMask(), ( vec3( 0.1 ) + reflectionSample * 0.9 + reflectionSample * specularLight ), reflectance);\n\t\t\t\t\tvec3 outgoingLight = albedo;\n\t\t\t\t\tgl_FragColor = vec4( outgoingLight, alpha );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include <${parseInt(n.REVISION.replace(/\D+/g,""))>=154?"colorspace_fragment":"encodings_fragment"}>\n\t\t\t\t\t#include \t\n\t\t\t\t}`},R=new n.ShaderMaterial({fragmentShader:B.fragmentShader,vertexShader:B.vertexShader,uniforms:n.UniformsUtils.clone(B.uniforms),lights:!0,side:m,fog:g});R.uniforms.mirrorSampler.value=I.texture,R.uniforms.textureMatrix.value=C,R.uniforms.alpha.value=o,R.uniforms.time.value=l,R.uniforms.normalSampler.value=c,R.uniforms.sunColor.value=u,R.uniforms.waterColor.value=d,R.uniforms.sunDirection.value=h,R.uniforms.distortionScale.value=f,R.uniforms.eye.value=p,r.material=R,r.onBeforeRender=function(e,t,n){if(y.setFromMatrixPosition(r.matrixWorld),x.setFromMatrixPosition(n.matrixWorld),b.extractRotation(r.matrixWorld),v.set(0,0,1),v.applyMatrix4(b),S.subVectors(y,x),S.dot(v)>0)return;S.reflect(v).negate(),S.add(y),b.extractRotation(n.matrixWorld),E.set(0,0,-1),E.applyMatrix4(b),E.add(x),M.subVectors(y,E),M.reflect(v).negate(),M.add(y),T.position.copy(S),T.up.set(0,1,0),T.up.applyMatrix4(b),T.up.reflect(v),T.lookAt(M),T.far=n.far,T.updateMatrixWorld(),T.projectionMatrix.copy(n.projectionMatrix),C.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),C.multiply(T.projectionMatrix),C.multiply(T.matrixWorldInverse),A.setFromNormalAndCoplanarPoint(v,y),A.applyMatrix4(T.matrixWorldInverse),_.set(A.normal.x,A.normal.y,A.normal.z,A.constant);const i=T.projectionMatrix;w.x=(Math.sign(_.x)+i.elements[8])/i.elements[0],w.y=(Math.sign(_.y)+i.elements[9])/i.elements[5],w.z=-1,w.w=(1+i.elements[10])/i.elements[14],_.multiplyScalar(2/_.dot(w)),i.elements[2]=_.x,i.elements[6]=_.y,i.elements[10]=_.z+1-a,i.elements[14]=_.w,p.setFromMatrixPosition(n.matrixWorld);const s=e.getRenderTarget(),o=e.xr.enabled,l=e.shadowMap.autoUpdate;r.visible=!1,e.xr.enabled=!1,e.shadowMap.autoUpdate=!1,e.setRenderTarget(I),e.state.buffers.depth.setMask(!0),!1===e.autoClear&&e.clear(),e.render(t,T),r.visible=!0,e.xr.enabled=o,e.shadowMap.autoUpdate=l,e.setRenderTarget(s);const c=n.viewport;void 0!==c&&e.state.viewport(c)}}}t.Water=i},95034:(e,t,r)=>{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=r(85232),s=r(75488),a=r(86307),o=r(65236),l=class extends i.Mesh{constructor(e,t={}){super(e),this.isWater=!0,this.type="Water";const r=this,n=void 0!==t.color?new i.Color(t.color):new i.Color(16777215),o=t.textureWidth||512,c=t.textureHeight||512,h=t.clipBias||0,u=t.flowDirection||new i.Vector2(1,0),d=t.flowSpeed||.03,p=t.reflectivity||.02,f=t.scale||1,m=t.shader||l.WaterShader,g=void 0!==t.encoding?t.encoding:3e3,A=t.flowMap||void 0,v=t.normalMap0,y=t.normalMap1,x=.15,b=.075,E=new i.Matrix4,_=new i.Clock;if(void 0===s.Reflector)return void console.error("THREE.Water: Required component Reflector not found.");if(void 0===a.Refractor)return void console.error("THREE.Water: Required component Refractor not found.");const S=new s.Reflector(e,{textureWidth:o,textureHeight:c,clipBias:h,encoding:g}),M=new a.Refractor(e,{textureWidth:o,textureHeight:c,clipBias:h,encoding:g});S.matrixAutoUpdate=!1,M.matrixAutoUpdate=!1,this.material=new i.ShaderMaterial({uniforms:i.UniformsUtils.merge([i.UniformsLib.fog,m.uniforms]),vertexShader:m.vertexShader,fragmentShader:m.fragmentShader,transparent:!0,fog:!0}),void 0!==A?(this.material.defines.USE_FLOWMAP="",this.material.uniforms.tFlowMap={type:"t",value:A}):this.material.uniforms.flowDirection={type:"v2",value:u},v.wrapS=v.wrapT=i.RepeatWrapping,y.wrapS=y.wrapT=i.RepeatWrapping,this.material.uniforms.tReflectionMap.value=S.getRenderTarget().texture,this.material.uniforms.tRefractionMap.value=M.getRenderTarget().texture,this.material.uniforms.tNormalMap0.value=v,this.material.uniforms.tNormalMap1.value=y,this.material.uniforms.color.value=n,this.material.uniforms.reflectivity.value=p,this.material.uniforms.textureMatrix.value=E,this.material.uniforms.config.value.x=0,this.material.uniforms.config.value.y=b,this.material.uniforms.config.value.z=b,this.material.uniforms.config.value.w=f,this.onBeforeRender=function(e,t,n){!function(e){E.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),E.multiply(e.projectionMatrix),E.multiply(e.matrixWorldInverse),E.multiply(r.matrixWorld)}(n),function(){const e=_.getDelta(),t=r.material.uniforms.config;t.value.x+=d*e,t.value.y=t.value.x+b,t.value.x>=x?(t.value.x=0,t.value.y=b):t.value.y>=x&&(t.value.y=t.value.y-x)}(),r.visible=!1,S.matrixWorld.copy(r.matrixWorld),M.matrixWorld.copy(r.matrixWorld),S.onBeforeRender(e,t,n),M.onBeforeRender(e,t,n),r.visible=!0}}};let c=l;var h,u,d;h=c,u="WaterShader",d={uniforms:{color:{value:null},reflectivity:{value:0},tReflectionMap:{value:null},tRefractionMap:{value:null},tNormalMap0:{value:null},tNormalMap1:{value:null},textureMatrix:{value:null},config:{value:new i.Vector4}},vertexShader:"\n\n\t\t#include \n\t\t#include \n\t\t#include \n\n\t\tuniform mat4 textureMatrix;\n\n\t\tvarying vec4 vCoord;\n\t\tvarying vec2 vUv;\n\t\tvarying vec3 vToEye;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tvCoord = textureMatrix * vec4( position, 1.0 );\n\n\t\t\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\t\t\tvToEye = cameraPosition - worldPosition.xyz;\n\n\t\t\tvec4 mvPosition = viewMatrix * worldPosition; // used in fog_vertex\n\t\t\tgl_Position = projectionMatrix * mvPosition;\n\n\t\t\t#include \n\t\t\t#include \n\n\t\t}",fragmentShader:`\n\n\t\t#include \n\t\t#include \n\t\t#include \n\n\t\tuniform sampler2D tReflectionMap;\n\t\tuniform sampler2D tRefractionMap;\n\t\tuniform sampler2D tNormalMap0;\n\t\tuniform sampler2D tNormalMap1;\n\n\t\t#ifdef USE_FLOWMAP\n\t\t\tuniform sampler2D tFlowMap;\n\t\t#else\n\t\t\tuniform vec2 flowDirection;\n\t\t#endif\n\n\t\tuniform vec3 color;\n\t\tuniform float reflectivity;\n\t\tuniform vec4 config;\n\n\t\tvarying vec4 vCoord;\n\t\tvarying vec2 vUv;\n\t\tvarying vec3 vToEye;\n\n\t\tvoid main() {\n\n\t\t\t#include \n\n\t\t\tfloat flowMapOffset0 = config.x;\n\t\t\tfloat flowMapOffset1 = config.y;\n\t\t\tfloat halfCycle = config.z;\n\t\t\tfloat scale = config.w;\n\n\t\t\tvec3 toEye = normalize( vToEye );\n\n\t\t\t// determine flow direction\n\t\t\tvec2 flow;\n\t\t\t#ifdef USE_FLOWMAP\n\t\t\t\tflow = texture2D( tFlowMap, vUv ).rg * 2.0 - 1.0;\n\t\t\t#else\n\t\t\t\tflow = flowDirection;\n\t\t\t#endif\n\t\t\tflow.x *= - 1.0;\n\n\t\t\t// sample normal maps (distort uvs with flowdata)\n\t\t\tvec4 normalColor0 = texture2D( tNormalMap0, ( vUv * scale ) + flow * flowMapOffset0 );\n\t\t\tvec4 normalColor1 = texture2D( tNormalMap1, ( vUv * scale ) + flow * flowMapOffset1 );\n\n\t\t\t// linear interpolate to get the final normal color\n\t\t\tfloat flowLerp = abs( halfCycle - flowMapOffset0 ) / halfCycle;\n\t\t\tvec4 normalColor = mix( normalColor0, normalColor1, flowLerp );\n\n\t\t\t// calculate normal vector\n\t\t\tvec3 normal = normalize( vec3( normalColor.r * 2.0 - 1.0, normalColor.b, normalColor.g * 2.0 - 1.0 ) );\n\n\t\t\t// calculate the fresnel term to blend reflection and refraction maps\n\t\t\tfloat theta = max( dot( toEye, normal ), 0.0 );\n\t\t\tfloat reflectance = reflectivity + ( 1.0 - reflectivity ) * pow( ( 1.0 - theta ), 5.0 );\n\n\t\t\t// calculate final uv coords\n\t\t\tvec3 coord = vCoord.xyz / vCoord.w;\n\t\t\tvec2 uv = coord.xy + coord.z * normal.xz * 0.05;\n\n\t\t\tvec4 reflectColor = texture2D( tReflectionMap, vec2( 1.0 - uv.x, uv.y ) );\n\t\t\tvec4 refractColor = texture2D( tRefractionMap, uv );\n\n\t\t\t// multiply water color with the mix of both textures\n\t\t\tgl_FragColor = vec4( color, 1.0 ) * mix( refractColor, reflectColor, reflectance );\n\n\t\t\t#include \n\t\t\t#include <${o.version>=154?"colorspace_fragment":"encodings_fragment"}>\n\t\t\t#include \n\n\t\t}`},((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(h,"symbol"!=typeof u?u+"":u,d),t.Water2=c},49693:(e,t)=>{"use strict";function r(e,t,r,n){const i=t.x(),s=t.y(),a=t.z(),o=t.w(),l=i+i,c=s+s,h=a+a,u=i*l,d=i*c,p=i*h,f=s*c,m=s*h,g=a*h,A=o*l,v=o*c,y=o*h;r[n+0]=1-(f+g),r[n+1]=d+y,r[n+2]=p-v,r[n+3]=0,r[n+4]=d-y,r[n+5]=1-(u+g),r[n+6]=m+A,r[n+7]=0,r[n+8]=p+v,r[n+9]=m-A,r[n+10]=1-(u+f),r[n+11]=0,r[n+12]=e.x(),r[n+13]=e.y(),r[n+14]=e.z(),r[n+15]=1}Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.AmmoPhysics=async function(){if("Ammo"in window==!1)return void console.error("AmmoPhysics: Couldn't find Ammo.js");const e=await Ammo(),t=new e.btDefaultCollisionConfiguration,n=new e.btCollisionDispatcher(t),i=new e.btDbvtBroadphase,s=new e.btSequentialImpulseConstraintSolver,a=new e.btDiscreteDynamicsWorld(n,i,s,t);a.setGravity(new e.btVector3(0,-9.8,0));const o=new e.btTransform,l=[],c=new WeakMap;let h=0;return setInterval((function(){const e=performance.now();if(h>0){const t=(e-h)/1e3;a.stepSimulation(t,10)}h=e;for(let t=0,n=l.length;t0&&(t.instanceMatrix.setUsage(35048),l.push(t),c.set(t,s))}(t,r,n):t.isMesh&&function(t,r,n){const i=t.position,s=t.quaternion,o=new e.btTransform;o.setIdentity(),o.setOrigin(new e.btVector3(i.x,i.y,i.z)),o.setRotation(new e.btQuaternion(s.x,s.y,s.z,s.w));const h=new e.btDefaultMotionState(o),u=new e.btVector3(0,0,0);n.calculateLocalInertia(r,u);const d=new e.btRigidBodyConstructionInfo(r,h,n,u),p=new e.btRigidBody(d);a.addRigidBody(p),r>0&&(l.push(t),c.set(t,p))}(t,r,n))},setMeshPosition:function(t,r,n=0){if(t.isInstancedMesh){const i=c.get(t)[n];i.setAngularVelocity(new e.btVector3(0,0,0)),i.setLinearVelocity(new e.btVector3(0,0,0)),o.setIdentity(),o.setOrigin(new e.btVector3(r.x,r.y,r.z)),i.setWorldTransform(o)}else if(t.isMesh){const n=c.get(t);n.setAngularVelocity(new e.btVector3(0,0,0)),n.setLinearVelocity(new e.btVector3(0,0,0)),o.setIdentity(),o.setOrigin(new e.btVector3(r.x,r.y,r.z)),n.setWorldTransform(o)}}}}},69265:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(49190),s=r(83453),a=r(48123),o=r(51867);class l extends i.Pass{constructor(e,t){super(),this.resolution=void 0!==t?t:256,this.needsInit=!0,this.adaptive=void 0===e||!!e,this.luminanceRT=null,this.previousLuminanceRT=null,this.currentLuminanceRT=null;const r=s.CopyShader;this.copyUniforms=n.UniformsUtils.clone(r.uniforms),this.materialCopy=new n.ShaderMaterial({uniforms:this.copyUniforms,vertexShader:r.vertexShader,fragmentShader:r.fragmentShader,blending:n.NoBlending,depthTest:!1}),this.materialLuminance=new n.ShaderMaterial({uniforms:n.UniformsUtils.clone(a.LuminosityShader.uniforms),vertexShader:a.LuminosityShader.vertexShader,fragmentShader:a.LuminosityShader.fragmentShader,blending:n.NoBlending}),this.adaptLuminanceShader={defines:{MIP_LEVEL_1X1:(Math.log(this.resolution)/Math.log(2)).toFixed(1)},uniforms:{lastLum:{value:null},currentLum:{value:null},minLuminance:{value:.01},delta:{value:.016},tau:{value:1}},vertexShader:"varying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\n\t\t\t\tuniform sampler2D lastLum;\n\t\t\t\tuniform sampler2D currentLum;\n\t\t\t\tuniform float minLuminance;\n\t\t\t\tuniform float delta;\n\t\t\t\tuniform float tau;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec4 lastLum = texture2D( lastLum, vUv, MIP_LEVEL_1X1 );\n\t\t\t\t\tvec4 currentLum = texture2D( currentLum, vUv, MIP_LEVEL_1X1 );\n\n\t\t\t\t\tfloat fLastLum = max( minLuminance, lastLum.r );\n\t\t\t\t\tfloat fCurrentLum = max( minLuminance, currentLum.r );\n\n\t\t\t\t\t//The adaption seems to work better in extreme lighting differences\n\t\t\t\t\t//if the input luminance is squared.\n\t\t\t\t\tfCurrentLum *= fCurrentLum;\n\n\t\t\t\t\t// Adapt the luminance using Pattanaik's technique\n\t\t\t\t\tfloat fAdaptedLum = fLastLum + (fCurrentLum - fLastLum) * (1.0 - exp(-delta * tau));\n\t\t\t\t\t// \"fAdaptedLum = sqrt(fAdaptedLum);\n\t\t\t\t\tgl_FragColor.r = fAdaptedLum;\n\t\t\t\t}"},this.materialAdaptiveLum=new n.ShaderMaterial({uniforms:n.UniformsUtils.clone(this.adaptLuminanceShader.uniforms),vertexShader:this.adaptLuminanceShader.vertexShader,fragmentShader:this.adaptLuminanceShader.fragmentShader,defines:Object.assign({},this.adaptLuminanceShader.defines),blending:n.NoBlending}),this.materialToneMap=new n.ShaderMaterial({uniforms:n.UniformsUtils.clone(o.ToneMapShader.uniforms),vertexShader:o.ToneMapShader.vertexShader,fragmentShader:o.ToneMapShader.fragmentShader,blending:n.NoBlending}),this.fsQuad=new i.FullScreenQuad(null)}render(e,t,r,n){this.needsInit&&(this.reset(e),this.luminanceRT.texture.type=r.texture.type,this.previousLuminanceRT.texture.type=r.texture.type,this.currentLuminanceRT.texture.type=r.texture.type,this.needsInit=!1),this.adaptive&&(this.fsQuad.material=this.materialLuminance,this.materialLuminance.uniforms.tDiffuse.value=r.texture,e.setRenderTarget(this.currentLuminanceRT),this.fsQuad.render(e),this.fsQuad.material=this.materialAdaptiveLum,this.materialAdaptiveLum.uniforms.delta.value=n,this.materialAdaptiveLum.uniforms.lastLum.value=this.previousLuminanceRT.texture,this.materialAdaptiveLum.uniforms.currentLum.value=this.currentLuminanceRT.texture,e.setRenderTarget(this.luminanceRT),this.fsQuad.render(e),this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.luminanceRT.texture,e.setRenderTarget(this.previousLuminanceRT),this.fsQuad.render(e)),this.fsQuad.material=this.materialToneMap,this.materialToneMap.uniforms.tDiffuse.value=r.texture,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}reset(){this.luminanceRT&&this.luminanceRT.dispose(),this.currentLuminanceRT&&this.currentLuminanceRT.dispose(),this.previousLuminanceRT&&this.previousLuminanceRT.dispose(),this.luminanceRT=new n.WebGLRenderTarget(this.resolution,this.resolution),this.luminanceRT.texture.name="AdaptiveToneMappingPass.l",this.luminanceRT.texture.generateMipmaps=!1,this.previousLuminanceRT=new n.WebGLRenderTarget(this.resolution,this.resolution),this.previousLuminanceRT.texture.name="AdaptiveToneMappingPass.pl",this.previousLuminanceRT.texture.generateMipmaps=!1;const e={minFilter:n.LinearMipmapLinearFilter,generateMipmaps:!0};this.currentLuminanceRT=new n.WebGLRenderTarget(this.resolution,this.resolution,e),this.currentLuminanceRT.texture.name="AdaptiveToneMappingPass.cl",this.adaptive&&(this.materialToneMap.defines.ADAPTED_LUMINANCE="",this.materialToneMap.uniforms.luminanceMap.value=this.luminanceRT.texture),this.fsQuad.material=new n.MeshBasicMaterial({color:7829367}),this.materialLuminance.needsUpdate=!0,this.materialAdaptiveLum.needsUpdate=!0,this.materialToneMap.needsUpdate=!0}setAdaptive(e){e?(this.adaptive=!0,this.materialToneMap.defines.ADAPTED_LUMINANCE="",this.materialToneMap.uniforms.luminanceMap.value=this.luminanceRT.texture):(this.adaptive=!1,delete this.materialToneMap.defines.ADAPTED_LUMINANCE,this.materialToneMap.uniforms.luminanceMap.value=null),this.materialToneMap.needsUpdate=!0}setAdaptionRate(e){e&&(this.materialAdaptiveLum.uniforms.tau.value=Math.abs(e))}setMinLuminance(e){e&&(this.materialToneMap.uniforms.minLuminance.value=e,this.materialAdaptiveLum.uniforms.minLuminance.value=e)}setMaxLuminance(e){e&&(this.materialToneMap.uniforms.maxLuminance.value=e)}setAverageLuminance(e){e&&(this.materialToneMap.uniforms.averageLuminance.value=e)}setMiddleGrey(e){e&&(this.materialToneMap.uniforms.middleGrey.value=e)}dispose(){this.luminanceRT&&this.luminanceRT.dispose(),this.previousLuminanceRT&&this.previousLuminanceRT.dispose(),this.currentLuminanceRT&&this.currentLuminanceRT.dispose(),this.materialLuminance&&this.materialLuminance.dispose(),this.materialAdaptiveLum&&this.materialAdaptiveLum.dispose(),this.materialCopy&&this.materialCopy.dispose(),this.materialToneMap&&this.materialToneMap.dispose()}}t.AdaptiveToneMappingPass=l},23918:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(49190),o=r(70382);class l extends a.Pass{constructor(e=.96,t=o.AfterimageShader){super(),i(this,"shader"),i(this,"uniforms"),i(this,"textureComp"),i(this,"textureOld"),i(this,"shaderMaterial"),i(this,"compFsQuad"),i(this,"copyFsQuad"),this.shader=t,this.uniforms=s.UniformsUtils.clone(t.uniforms),this.uniforms.damp.value=e,this.textureComp=new s.WebGLRenderTarget(window.innerWidth,window.innerHeight,{minFilter:s.LinearFilter,magFilter:s.NearestFilter,format:s.RGBAFormat}),this.textureOld=new s.WebGLRenderTarget(window.innerWidth,window.innerHeight,{minFilter:s.LinearFilter,magFilter:s.NearestFilter,format:s.RGBAFormat}),this.shaderMaterial=new s.ShaderMaterial({uniforms:this.uniforms,vertexShader:this.shader.vertexShader,fragmentShader:this.shader.fragmentShader}),this.compFsQuad=new a.FullScreenQuad(this.shaderMaterial);let r=new s.MeshBasicMaterial;this.copyFsQuad=new a.FullScreenQuad(r)}render(e,t,r){this.uniforms.tOld.value=this.textureOld.texture,this.uniforms.tNew.value=r.texture,e.setRenderTarget(this.textureComp),this.compFsQuad.render(e),this.copyFsQuad.material.map=this.textureComp.texture,this.renderToScreen?(e.setRenderTarget(null),this.copyFsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.copyFsQuad.render(e));let n=this.textureOld;this.textureOld=this.textureComp,this.textureComp=n}setSize(e,t){this.textureComp.setSize(e,t),this.textureOld.setSize(e,t)}}t.AfterimagePass=l},62788:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190),a=r(85232),o=r(59564);class l extends s.Pass{constructor(e=1,t=25,r=4,n=256){super(),i(this,"renderTargetX"),i(this,"renderTargetY"),i(this,"materialCombine"),i(this,"materialConvolution"),i(this,"fsQuad"),i(this,"combineUniforms"),i(this,"convolutionUniforms"),i(this,"blurX",new a.Vector2(.001953125,0)),i(this,"blurY",new a.Vector2(0,.001953125)),this.renderTargetX=new a.WebGLRenderTarget(n,n),this.renderTargetX.texture.name="BloomPass.x",this.renderTargetY=new a.WebGLRenderTarget(n,n),this.renderTargetY.texture.name="BloomPass.y",this.combineUniforms=a.UniformsUtils.clone(c.uniforms),this.combineUniforms.strength.value=e,this.materialCombine=new a.ShaderMaterial({uniforms:this.combineUniforms,vertexShader:c.vertexShader,fragmentShader:c.fragmentShader,blending:a.AdditiveBlending,transparent:!0}),void 0===o.ConvolutionShader&&console.error("BloomPass relies on ConvolutionShader");const l=o.ConvolutionShader;this.convolutionUniforms=a.UniformsUtils.clone(l.uniforms),this.convolutionUniforms.uImageIncrement.value=this.blurX,this.convolutionUniforms.cKernel.value=o.ConvolutionShader.buildKernel(r),this.materialConvolution=new a.ShaderMaterial({uniforms:this.convolutionUniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader,defines:{KERNEL_SIZE_FLOAT:t.toFixed(1),KERNEL_SIZE_INT:t.toFixed(0)}}),this.needsSwap=!1,this.fsQuad=new s.FullScreenQuad(this.materialConvolution)}render(e,t,r,n,i){i&&e.state.buffers.stencil.setTest(!1),this.fsQuad.material=this.materialConvolution,this.convolutionUniforms.tDiffuse.value=r.texture,this.convolutionUniforms.uImageIncrement.value=this.blurX,e.setRenderTarget(this.renderTargetX),e.clear(),this.fsQuad.render(e),this.convolutionUniforms.tDiffuse.value=this.renderTargetX.texture,this.convolutionUniforms.uImageIncrement.value=this.blurY,e.setRenderTarget(this.renderTargetY),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.materialCombine,this.combineUniforms.tDiffuse.value=this.renderTargetY.texture,i&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(r),this.clear&&e.clear(),this.fsQuad.render(e)}}const c={uniforms:{tDiffuse:{value:null},strength:{value:1}},vertexShader:"\n varying vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"\n uniform float strength;\n uniform sampler2D tDiffuse;\n varying vec2 vUv;\n void main() {\n vec4 texel = texture2D( tDiffuse, vUv );\n gl_FragColor = strength * texel;\n }"};t.BloomPass=l},98263:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190),a=r(85232),o=r(73500);class l extends s.Pass{constructor(e,t,r){super(),i(this,"scene"),i(this,"camera"),i(this,"renderTargetDepth"),i(this,"materialDepth"),i(this,"materialBokeh"),i(this,"fsQuad"),i(this,"_oldClearColor"),i(this,"uniforms"),this.scene=e,this.camera=t;const n=void 0!==r.focus?r.focus:1,l=void 0!==r.aspect?r.aspect:t.aspect,c=void 0!==r.aperture?r.aperture:.025,h=void 0!==r.maxblur?r.maxblur:1,u=r.width||window.innerWidth||1,d=r.height||window.innerHeight||1;this.renderTargetDepth=new a.WebGLRenderTarget(u,d,{minFilter:a.NearestFilter,magFilter:a.NearestFilter}),this.renderTargetDepth.texture.name="BokehPass.depth",this.materialDepth=new a.MeshDepthMaterial,this.materialDepth.depthPacking=a.RGBADepthPacking,this.materialDepth.blending=a.NoBlending,void 0===o.BokehShader&&console.error("BokehPass relies on BokehShader");const p=o.BokehShader,f=a.UniformsUtils.clone(p.uniforms);f.tDepth.value=this.renderTargetDepth.texture,f.focus.value=n,f.aspect.value=l,f.aperture.value=c,f.maxblur.value=h,f.nearClip.value=t.near,f.farClip.value=t.far,this.materialBokeh=new a.ShaderMaterial({defines:Object.assign({},p.defines),uniforms:f,vertexShader:p.vertexShader,fragmentShader:p.fragmentShader}),this.uniforms=f,this.needsSwap=!1,this.fsQuad=new s.FullScreenQuad(this.materialBokeh),this._oldClearColor=new a.Color}render(e,t,r){this.scene.overrideMaterial=this.materialDepth,e.getClearColor(this._oldClearColor);const n=e.getClearAlpha(),i=e.autoClear;e.autoClear=!1,e.setClearColor(16777215),e.setClearAlpha(1),e.setRenderTarget(this.renderTargetDepth),e.clear(),e.render(this.scene,this.camera),this.uniforms.tColor.value=r.texture,this.uniforms.nearClip.value=this.camera.near,this.uniforms.farClip.value=this.camera.far,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),e.clear(),this.fsQuad.render(e)),this.scene.overrideMaterial=null,e.setClearColor(this._oldClearColor),e.setClearAlpha(n),e.autoClear=i}}t.BokehPass=l},51761:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190),a=r(85232);class o extends s.Pass{constructor(e,t){super(),i(this,"clearColor"),i(this,"clearAlpha"),i(this,"_oldClearColor"),this.needsSwap=!1,this.clearColor=void 0!==e?e:0,this.clearAlpha=void 0!==t?t:0,this._oldClearColor=new a.Color}render(e,t,r){let n;this.clearColor&&(e.getClearColor(this._oldClearColor),n=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),e.setRenderTarget(this.renderToScreen?null:r),e.clear(),this.clearColor&&e.setClearColor(this._oldClearColor,n)}}t.ClearPass=o},72449:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(49190);class s extends i.Pass{constructor(e,t,r=1){super(),this.camera=e,this.needsSwap=!1,this.cubeShader=n.ShaderLib.cube,this.cubeMesh=new n.Mesh(new n.BoxGeometry(10,10,10),new n.ShaderMaterial({uniforms:n.UniformsUtils.clone(this.cubeShader.uniforms),vertexShader:this.cubeShader.vertexShader,fragmentShader:this.cubeShader.fragmentShader,depthTest:!1,depthWrite:!1,side:n.BackSide})),Object.defineProperty(this.cubeMesh.material,"envMap",{get:function(){return this.uniforms.tCube.value}}),this.tCube=t,this.opacity=r,this.cubeScene=new n.Scene,this.cubeCamera=new n.PerspectiveCamera,this.cubeScene.add(this.cubeMesh)}render(e,t,r){const n=e.autoClear;e.autoClear=!1,this.cubeCamera.projectionMatrix.copy(this.camera.projectionMatrix),this.cubeCamera.quaternion.setFromRotationMatrix(this.camera.matrixWorld),this.cubeMesh.material.uniforms.tCube.value=this.tCube,this.cubeMesh.material.uniforms.tFlip.value=this.tCube.isCubeTexture&&!1===this.tCube.isRenderTargetTexture?-1:1,this.cubeMesh.material.uniforms.opacity.value=this.opacity,this.cubeMesh.material.transparent=this.opacity<1,e.setRenderTarget(this.renderToScreen?null:r),this.clear&&e.clear(),e.render(this.cubeScene,this.cubeCamera),e.autoClear=n}dispose(){this.cubeMesh.geometry.dispose(),this.cubeMesh.material.dispose()}}t.CubeTexturePass=s},17214:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190),a=r(85232),o=r(15479);class l extends s.Pass{constructor(e,t,r){super(),i(this,"material"),i(this,"fsQuad"),i(this,"uniforms"),void 0===o.DotScreenShader&&console.error("THREE.DotScreenPass relies on THREE.DotScreenShader");const n=o.DotScreenShader;this.uniforms=a.UniformsUtils.clone(n.uniforms),void 0!==e&&this.uniforms.center.value.copy(e),void 0!==t&&(this.uniforms.angle.value=t),void 0!==r&&(this.uniforms.scale.value=r),this.material=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader}),this.fsQuad=new s.FullScreenQuad(this.material)}render(e,t,r){this.uniforms.tDiffuse.value=r.texture,this.uniforms.tSize.value.set(r.width,r.height),this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}}t.DotScreenPass=l},1258:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(83453),o=r(18921),l=r(81362);t.EffectComposer=class{constructor(e,t){if(i(this,"renderer"),i(this,"_pixelRatio"),i(this,"_width"),i(this,"_height"),i(this,"renderTarget1"),i(this,"renderTarget2"),i(this,"writeBuffer"),i(this,"readBuffer"),i(this,"renderToScreen"),i(this,"passes",[]),i(this,"copyPass"),i(this,"clock"),this.renderer=e,void 0===t){const r={minFilter:s.LinearFilter,magFilter:s.LinearFilter,format:s.RGBAFormat},n=e.getSize(new s.Vector2);this._pixelRatio=e.getPixelRatio(),this._width=n.width,this._height=n.height,(t=new s.WebGLRenderTarget(this._width*this._pixelRatio,this._height*this._pixelRatio,r)).texture.name="EffectComposer.rt1"}else this._pixelRatio=1,this._width=t.width,this._height=t.height;this.renderTarget1=t,this.renderTarget2=t.clone(),this.renderTarget2.texture.name="EffectComposer.rt2",this.writeBuffer=this.renderTarget1,this.readBuffer=this.renderTarget2,this.renderToScreen=!0,void 0===a.CopyShader&&console.error("THREE.EffectComposer relies on CopyShader"),void 0===o.ShaderPass&&console.error("THREE.EffectComposer relies on ShaderPass"),this.copyPass=new o.ShaderPass(a.CopyShader),this.copyPass.material.blending=s.NoBlending,this.clock=new s.Clock}swapBuffers(){const e=this.readBuffer;this.readBuffer=this.writeBuffer,this.writeBuffer=e}addPass(e){this.passes.push(e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}insertPass(e,t){this.passes.splice(t,0,e),e.setSize(this._width*this._pixelRatio,this._height*this._pixelRatio)}removePass(e){const t=this.passes.indexOf(e);-1!==t&&this.passes.splice(t,1)}isLastEnabledPass(e){for(let t=e+1;t{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190),a=r(85232),o=r(29076);class l extends s.Pass{constructor(e,t,r,n){super(),i(this,"material"),i(this,"fsQuad"),i(this,"uniforms"),void 0===o.FilmShader&&console.error("THREE.FilmPass relies on FilmShader");const l=o.FilmShader;this.uniforms=a.UniformsUtils.clone(l.uniforms),this.material=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:l.vertexShader,fragmentShader:l.fragmentShader}),void 0!==n&&(this.uniforms.grayscale.value=n),void 0!==e&&(this.uniforms.nIntensity.value=e),void 0!==t&&(this.uniforms.sIntensity.value=t),void 0!==r&&(this.uniforms.sCount.value=r),this.fsQuad=new s.FullScreenQuad(this.material)}render(e,t,r,n){this.uniforms.tDiffuse.value=r.texture,this.uniforms.time.value+=n,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}}t.FilmPass=l},88511:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190),a=r(85232),o=r(59305);class l extends s.Pass{constructor(e=64){super(),i(this,"material"),i(this,"fsQuad"),i(this,"goWild"),i(this,"curF"),i(this,"randX"),i(this,"uniforms"),this.uniforms=a.UniformsUtils.clone(o.DigitalGlitch.uniforms),this.uniforms.tDisp.value=this.generateHeightmap(e),this.material=new a.ShaderMaterial({uniforms:this.uniforms,vertexShader:o.DigitalGlitch.vertexShader,fragmentShader:o.DigitalGlitch.fragmentShader}),this.fsQuad=new s.FullScreenQuad(this.material),this.goWild=!1,this.curF=0,this.generateTrigger()}render(e,t,r){!1===e.capabilities.isWebGL2&&(this.uniforms.tDisp.value.format=a.LuminanceFormat),this.uniforms.tDiffuse.value=r.texture,this.uniforms.seed.value=Math.random(),this.uniforms.byp.value=0,this.curF%this.randX==0||1==this.goWild?(this.uniforms.amount.value=Math.random()/30,this.uniforms.angle.value=a.MathUtils.randFloat(-Math.PI,Math.PI),this.uniforms.seed_x.value=a.MathUtils.randFloat(-1,1),this.uniforms.seed_y.value=a.MathUtils.randFloat(-1,1),this.uniforms.distortion_x.value=a.MathUtils.randFloat(0,1),this.uniforms.distortion_y.value=a.MathUtils.randFloat(0,1),this.curF=0,this.generateTrigger()):this.curF%this.randX{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190),a=r(85232),o=r(79169);class l extends s.Pass{constructor(e,t,r){super(),i(this,"material"),i(this,"fsQuad"),i(this,"uniforms"),void 0===o.HalftoneShader&&console.error("THREE.HalftonePass requires HalftoneShader"),this.uniforms=a.UniformsUtils.clone(o.HalftoneShader.uniforms),this.material=new a.ShaderMaterial({uniforms:this.uniforms,fragmentShader:o.HalftoneShader.fragmentShader,vertexShader:o.HalftoneShader.vertexShader}),this.uniforms.width.value=e,this.uniforms.height.value=t;for(const n in r)r.hasOwnProperty(n)&&this.uniforms.hasOwnProperty(n)&&(this.uniforms[n].value=r[n]);this.fsQuad=new s.FullScreenQuad(this.material)}render(e,t,r){this.material.uniforms.tDiffuse.value=r.texture,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}setSize(e,t){this.uniforms.width.value=e,this.uniforms.height.value=t}}t.HalftonePass=l},834:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(18921),i={defines:{USE_3DTEXTURE:1},uniforms:{lut3d:{value:null},lut:{value:null},lutSize:{value:0},tDiffuse:{value:null},intensity:{value:1}},vertexShader:"\n\n\t\tvarying vec2 vUv;\n\n\t\tvoid main() {\n\n\t\t\tvUv = uv;\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t}\n\n\t",fragmentShader:"\n\n\t\tuniform float lutSize;\n\t\t#if USE_3DTEXTURE\n\t\tprecision highp sampler3D;\n\t\tuniform sampler3D lut3d;\n\t\t#else\n\t\tuniform sampler2D lut;\n\n\t\tvec3 lutLookup( sampler2D tex, float size, vec3 rgb ) {\n\n\t\t\tfloat sliceHeight = 1.0 / size;\n\t\t\tfloat yPixelHeight = 1.0 / ( size * size );\n\n\t\t\t// Get the slices on either side of the sample\n\t\t\tfloat slice = rgb.b * size;\n\t\t\tfloat interp = fract( slice );\n\t\t\tfloat slice0 = slice - interp;\n\t\t\tfloat centeredInterp = interp - 0.5;\n\n\t\t\tfloat slice1 = slice0 + sign( centeredInterp );\n\n\t\t\t// Pull y sample in by half a pixel in each direction to avoid color\n\t\t\t// bleeding from adjacent slices.\n\t\t\tfloat greenOffset = clamp( rgb.g * sliceHeight, yPixelHeight * 0.5, sliceHeight - yPixelHeight * 0.5 );\n\n\t\t\tvec2 uv0 = vec2(\n\t\t\t\trgb.r,\n\t\t\t\tslice0 * sliceHeight + greenOffset\n\t\t\t);\n\t\t\tvec2 uv1 = vec2(\n\t\t\t\trgb.r,\n\t\t\t\tslice1 * sliceHeight + greenOffset\n\t\t\t);\n\n\t\t\tvec3 sample0 = texture2D( tex, uv0 ).rgb;\n\t\t\tvec3 sample1 = texture2D( tex, uv1 ).rgb;\n\n\t\t\treturn mix( sample0, sample1, abs( centeredInterp ) );\n\n\t\t}\n\t\t#endif\n\n\t\tvarying vec2 vUv;\n\t\tuniform float intensity;\n\t\tuniform sampler2D tDiffuse;\n\t\tvoid main() {\n\n\t\t\tvec4 val = texture2D( tDiffuse, vUv );\n\t\t\tvec4 lutVal;\n\n\t\t\t// pull the sample in by half a pixel so the sample begins\n\t\t\t// at the center of the edge pixels.\n\t\t\tfloat pixelWidth = 1.0 / lutSize;\n\t\t\tfloat halfPixelWidth = 0.5 / lutSize;\n\t\t\tvec3 uvw = vec3( halfPixelWidth ) + val.rgb * ( 1.0 - pixelWidth );\n\n\t\t\t#if USE_3DTEXTURE\n\n\t\t\tlutVal = vec4( texture( lut3d, uvw ).rgb, val.a );\n\n\t\t\t#else\n\n\t\t\tlutVal = vec4( lutLookup( lut, lutSize, uvw ), val.a );\n\n\t\t\t#endif\n\n\t\t\tgl_FragColor = vec4( mix( val, lutVal, intensity ) );\n\n\t\t}\n\n\t"};class s extends n.ShaderPass{set lut(e){const t=this.material;if(e!==this.lut&&(t.uniforms.lut3d.value=null,t.uniforms.lut.value=null,e)){const r=e.isData3DTexture?1:0;r!==t.defines.USE_3DTEXTURE&&(t.defines.USE_3DTEXTURE=r,t.needsUpdate=!0),t.uniforms.lutSize.value=e.image.width,e.isData3DTexture?t.uniforms.lut3d.value=e:t.uniforms.lut.value=e}}get lut(){return this.material.uniforms.lut.value||this.material.uniforms.lut3d.value}set intensity(e){this.material.uniforms.intensity.value=e}get intensity(){return this.material.uniforms.intensity.value}constructor(e={}){super(i),this.lut=e.lut||null,this.intensity="intensity"in e?e.intensity:1}}t.LUTPass=s},81362:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190);class a extends s.Pass{constructor(e,t){super(),i(this,"scene"),i(this,"camera"),i(this,"inverse"),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.inverse=!1}render(e,t,r){const n=e.getContext(),i=e.state;let s,a;i.buffers.color.setMask(!1),i.buffers.depth.setMask(!1),i.buffers.color.setLocked(!0),i.buffers.depth.setLocked(!0),this.inverse?(s=0,a=1):(s=1,a=0),i.buffers.stencil.setTest(!0),i.buffers.stencil.setOp(n.REPLACE,n.REPLACE,n.REPLACE),i.buffers.stencil.setFunc(n.ALWAYS,s,4294967295),i.buffers.stencil.setClear(a),i.buffers.stencil.setLocked(!0),e.setRenderTarget(r),this.clear&&e.clear(),e.render(this.scene,this.camera),e.setRenderTarget(t),this.clear&&e.clear(),e.render(this.scene,this.camera),i.buffers.color.setLocked(!1),i.buffers.depth.setLocked(!1),i.buffers.stencil.setLocked(!1),i.buffers.stencil.setFunc(n.EQUAL,1,4294967295),i.buffers.stencil.setOp(n.KEEP,n.KEEP,n.KEEP),i.buffers.stencil.setLocked(!0)}}class o extends s.Pass{constructor(){super(),this.needsSwap=!1}render(e){e.state.buffers.stencil.setLocked(!1),e.state.buffers.stencil.setTest(!1)}}t.ClearMaskPass=o,t.MaskPass=a},79666:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(49190),a=r(85232),o=r(83453);class l extends s.Pass{constructor(e,t,r,n){super(),i(this,"renderScene"),i(this,"renderCamera"),i(this,"selectedObjects"),i(this,"visibleEdgeColor"),i(this,"hiddenEdgeColor"),i(this,"edgeGlow"),i(this,"usePatternTexture"),i(this,"edgeThickness"),i(this,"edgeStrength"),i(this,"downSampleRatio"),i(this,"pulsePeriod"),i(this,"resolution"),i(this,"renderTargetMaskBuffer"),i(this,"depthMaterial"),i(this,"prepareMaskMaterial"),i(this,"renderTargetDepthBuffer"),i(this,"renderTargetMaskDownSampleBuffer"),i(this,"renderTargetBlurBuffer1"),i(this,"renderTargetBlurBuffer2"),i(this,"edgeDetectionMaterial"),i(this,"renderTargetEdgeBuffer1"),i(this,"renderTargetEdgeBuffer2"),i(this,"separableBlurMaterial1"),i(this,"separableBlurMaterial2"),i(this,"overlayMaterial"),i(this,"materialCopy"),i(this,"oldClearAlpha"),i(this,"fsQuad"),i(this,"tempPulseColor1"),i(this,"tempPulseColor2"),i(this,"textureMatrix"),i(this,"patternTexture"),i(this,"_visibilityCache"),i(this,"_oldClearColor"),i(this,"copyUniforms"),i(this,"BlurDirectionX",new a.Vector2(1,0)),i(this,"BlurDirectionY",new a.Vector2(0,1)),this.renderScene=t,this.renderCamera=r,this.selectedObjects=void 0!==n?n:[],this.visibleEdgeColor=new a.Color(1,1,1),this.hiddenEdgeColor=new a.Color(.1,.04,.02),this.edgeGlow=0,this.usePatternTexture=!1,this.edgeThickness=1,this.edgeStrength=3,this.downSampleRatio=2,this.pulsePeriod=0,this._visibilityCache=new Map,this.resolution=void 0!==e?new a.Vector2(e.x,e.y):new a.Vector2(256,256);const l=Math.round(this.resolution.x/this.downSampleRatio),c=Math.round(this.resolution.y/this.downSampleRatio);this.renderTargetMaskBuffer=new a.WebGLRenderTarget(this.resolution.x,this.resolution.y),this.renderTargetMaskBuffer.texture.name="OutlinePass.mask",this.renderTargetMaskBuffer.texture.generateMipmaps=!1,this.depthMaterial=new a.MeshDepthMaterial,this.depthMaterial.side=a.DoubleSide,this.depthMaterial.depthPacking=a.RGBADepthPacking,this.depthMaterial.blending=a.NoBlending,this.prepareMaskMaterial=this.getPrepareMaskMaterial(),this.prepareMaskMaterial.side=a.DoubleSide,this.prepareMaskMaterial.fragmentShader=function(e,t){const r=t.isPerspectiveCamera?"perspective":"orthographic";return e.replace(/DEPTH_TO_VIEW_Z/g,r+"DepthToViewZ")}(this.prepareMaskMaterial.fragmentShader,this.renderCamera),this.renderTargetDepthBuffer=new a.WebGLRenderTarget(this.resolution.x,this.resolution.y),this.renderTargetDepthBuffer.texture.name="OutlinePass.depth",this.renderTargetDepthBuffer.texture.generateMipmaps=!1,this.renderTargetMaskDownSampleBuffer=new a.WebGLRenderTarget(l,c),this.renderTargetMaskDownSampleBuffer.texture.name="OutlinePass.depthDownSample",this.renderTargetMaskDownSampleBuffer.texture.generateMipmaps=!1,this.renderTargetBlurBuffer1=new a.WebGLRenderTarget(l,c),this.renderTargetBlurBuffer1.texture.name="OutlinePass.blur1",this.renderTargetBlurBuffer1.texture.generateMipmaps=!1,this.renderTargetBlurBuffer2=new a.WebGLRenderTarget(Math.round(l/2),Math.round(c/2)),this.renderTargetBlurBuffer2.texture.name="OutlinePass.blur2",this.renderTargetBlurBuffer2.texture.generateMipmaps=!1,this.edgeDetectionMaterial=this.getEdgeDetectionMaterial(),this.renderTargetEdgeBuffer1=new a.WebGLRenderTarget(l,c),this.renderTargetEdgeBuffer1.texture.name="OutlinePass.edge1",this.renderTargetEdgeBuffer1.texture.generateMipmaps=!1,this.renderTargetEdgeBuffer2=new a.WebGLRenderTarget(Math.round(l/2),Math.round(c/2)),this.renderTargetEdgeBuffer2.texture.name="OutlinePass.edge2",this.renderTargetEdgeBuffer2.texture.generateMipmaps=!1;this.separableBlurMaterial1=this.getSeperableBlurMaterial(4),this.separableBlurMaterial1.uniforms.texSize.value.set(l,c),this.separableBlurMaterial1.uniforms.kernelRadius.value=1,this.separableBlurMaterial2=this.getSeperableBlurMaterial(4),this.separableBlurMaterial2.uniforms.texSize.value.set(Math.round(l/2),Math.round(c/2)),this.separableBlurMaterial2.uniforms.kernelRadius.value=4,this.overlayMaterial=this.getOverlayMaterial(),void 0===o.CopyShader&&console.error("THREE.OutlinePass relies on CopyShader");const h=o.CopyShader;this.copyUniforms=a.UniformsUtils.clone(h.uniforms),this.copyUniforms.opacity.value=1,this.materialCopy=new a.ShaderMaterial({uniforms:this.copyUniforms,vertexShader:h.vertexShader,fragmentShader:h.fragmentShader,blending:a.NoBlending,depthTest:!1,depthWrite:!1,transparent:!0}),this.enabled=!0,this.needsSwap=!1,this._oldClearColor=new a.Color,this.oldClearAlpha=1,this.fsQuad=new s.FullScreenQuad(this.materialCopy),this.tempPulseColor1=new a.Color,this.tempPulseColor2=new a.Color,this.textureMatrix=new a.Matrix4}dispose(){this.renderTargetMaskBuffer.dispose(),this.renderTargetDepthBuffer.dispose(),this.renderTargetMaskDownSampleBuffer.dispose(),this.renderTargetBlurBuffer1.dispose(),this.renderTargetBlurBuffer2.dispose(),this.renderTargetEdgeBuffer1.dispose(),this.renderTargetEdgeBuffer2.dispose()}setSize(e,t){this.renderTargetMaskBuffer.setSize(e,t),this.renderTargetDepthBuffer.setSize(e,t);let r=Math.round(e/this.downSampleRatio),n=Math.round(t/this.downSampleRatio);this.renderTargetMaskDownSampleBuffer.setSize(r,n),this.renderTargetBlurBuffer1.setSize(r,n),this.renderTargetEdgeBuffer1.setSize(r,n),this.separableBlurMaterial1.uniforms.texSize.value.set(r,n),r=Math.round(r/2),n=Math.round(n/2),this.renderTargetBlurBuffer2.setSize(r,n),this.renderTargetEdgeBuffer2.setSize(r,n),this.separableBlurMaterial2.uniforms.texSize.value.set(r,n)}changeVisibilityOfSelectedObjects(e){const t=this._visibilityCache;function r(r){r.isMesh&&(!0===e?r.visible=t.get(r):(t.set(r,r.visible),r.visible=e))}for(let n=0;n0){e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const t=e.autoClear;e.autoClear=!1,i&&e.state.buffers.stencil.setTest(!1),e.setClearColor(16777215,1),this.changeVisibilityOfSelectedObjects(!1);const n=this.renderScene.background;if(this.renderScene.background=null,this.renderScene.overrideMaterial=this.depthMaterial,e.setRenderTarget(this.renderTargetDepthBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.changeVisibilityOfSelectedObjects(!0),this._visibilityCache.clear(),this.updateTextureMatrix(),this.changeVisibilityOfNonSelectedObjects(!1),this.renderScene.overrideMaterial=this.prepareMaskMaterial,this.prepareMaskMaterial.uniforms.cameraNearFar.value.set(this.renderCamera.near,this.renderCamera.far),this.prepareMaskMaterial.uniforms.depthTexture.value=this.renderTargetDepthBuffer.texture,this.prepareMaskMaterial.uniforms.textureMatrix.value=this.textureMatrix,e.setRenderTarget(this.renderTargetMaskBuffer),e.clear(),e.render(this.renderScene,this.renderCamera),this.renderScene.overrideMaterial=null,this.changeVisibilityOfNonSelectedObjects(!0),this._visibilityCache.clear(),this.renderScene.background=n,this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=this.renderTargetMaskBuffer.texture,e.setRenderTarget(this.renderTargetMaskDownSampleBuffer),e.clear(),this.fsQuad.render(e),this.tempPulseColor1.copy(this.visibleEdgeColor),this.tempPulseColor2.copy(this.hiddenEdgeColor),this.pulsePeriod>0){const e=.625+.75*Math.cos(.01*performance.now()/this.pulsePeriod)/2;this.tempPulseColor1.multiplyScalar(e),this.tempPulseColor2.multiplyScalar(e)}this.fsQuad.material=this.edgeDetectionMaterial,this.edgeDetectionMaterial.uniforms.maskTexture.value=this.renderTargetMaskDownSampleBuffer.texture,this.edgeDetectionMaterial.uniforms.texSize.value.set(this.renderTargetMaskDownSampleBuffer.width,this.renderTargetMaskDownSampleBuffer.height),this.edgeDetectionMaterial.uniforms.visibleEdgeColor.value=this.tempPulseColor1,this.edgeDetectionMaterial.uniforms.hiddenEdgeColor.value=this.tempPulseColor2,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial1,this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=this.BlurDirectionX,this.separableBlurMaterial1.uniforms.kernelRadius.value=this.edgeThickness,e.setRenderTarget(this.renderTargetBlurBuffer1),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial1.uniforms.colorTexture.value=this.renderTargetBlurBuffer1.texture,this.separableBlurMaterial1.uniforms.direction.value=this.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer1),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.separableBlurMaterial2,this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetEdgeBuffer1.texture,this.separableBlurMaterial2.uniforms.direction.value=this.BlurDirectionX,e.setRenderTarget(this.renderTargetBlurBuffer2),e.clear(),this.fsQuad.render(e),this.separableBlurMaterial2.uniforms.colorTexture.value=this.renderTargetBlurBuffer2.texture,this.separableBlurMaterial2.uniforms.direction.value=this.BlurDirectionY,e.setRenderTarget(this.renderTargetEdgeBuffer2),e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.overlayMaterial,this.overlayMaterial.uniforms.maskTexture.value=this.renderTargetMaskBuffer.texture,this.overlayMaterial.uniforms.edgeTexture1.value=this.renderTargetEdgeBuffer1.texture,this.overlayMaterial.uniforms.edgeTexture2.value=this.renderTargetEdgeBuffer2.texture,this.overlayMaterial.uniforms.patternTexture.value=this.patternTexture,this.overlayMaterial.uniforms.edgeStrength.value=this.edgeStrength,this.overlayMaterial.uniforms.edgeGlow.value=this.edgeGlow,this.overlayMaterial.uniforms.usePatternTexture.value=this.usePatternTexture,i&&e.state.buffers.stencil.setTest(!0),e.setRenderTarget(r),this.fsQuad.render(e),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=t}this.renderToScreen&&(this.fsQuad.material=this.materialCopy,this.copyUniforms.tDiffuse.value=r.texture,e.setRenderTarget(null),this.fsQuad.render(e))}getPrepareMaskMaterial(){return new a.ShaderMaterial({uniforms:{depthTexture:{value:null},cameraNearFar:{value:new a.Vector2(.5,.5)},textureMatrix:{value:null}},vertexShader:"#include \n\t\t\t\t#include \n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tuniform mat4 textureMatrix;\n\t\t\t\tvoid main() {\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\t\t\t\t\tvPosition = mvPosition;\n\t\t\t\t\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\n\t\t\t\t\tprojTexCoord = textureMatrix * worldPosition;\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec4 vPosition;\n\t\t\t\tvarying vec4 projTexCoord;\n\t\t\t\tuniform sampler2D depthTexture;\n\t\t\t\tuniform vec2 cameraNearFar;\n\t\t\t\tvoid main() {\n\t\t\t\t\tfloat depth = unpackRGBAToDepth(texture2DProj( depthTexture, projTexCoord ));\n\t\t\t\t\tfloat viewZ = - DEPTH_TO_VIEW_Z( depth, cameraNearFar.x, cameraNearFar.y );\n\t\t\t\t\tfloat depthTest = (-vPosition.z > viewZ) ? 1.0 : 0.0;\n\t\t\t\t\tgl_FragColor = vec4(0.0, depthTest, 1.0, 1.0);\n\t\t\t\t}"})}getEdgeDetectionMaterial(){return new a.ShaderMaterial({uniforms:{maskTexture:{value:null},texSize:{value:new a.Vector2(.5,.5)},visibleEdgeColor:{value:new a.Vector3(1,1,1)},hiddenEdgeColor:{value:new a.Vector3(1,1,1)}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec3 visibleEdgeColor;\n\t\t\t\tuniform vec3 hiddenEdgeColor;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tvec4 uvOffset = vec4(1.0, 0.0, 0.0, 1.0) * vec4(invSize, invSize);\n\t\t\t\t\tvec4 c1 = texture2D( maskTexture, vUv + uvOffset.xy);\n\t\t\t\t\tvec4 c2 = texture2D( maskTexture, vUv - uvOffset.xy);\n\t\t\t\t\tvec4 c3 = texture2D( maskTexture, vUv + uvOffset.yw);\n\t\t\t\t\tvec4 c4 = texture2D( maskTexture, vUv - uvOffset.yw);\n\t\t\t\t\tfloat diff1 = (c1.r - c2.r)*0.5;\n\t\t\t\t\tfloat diff2 = (c3.r - c4.r)*0.5;\n\t\t\t\t\tfloat d = length( vec2(diff1, diff2) );\n\t\t\t\t\tfloat a1 = min(c1.g, c2.g);\n\t\t\t\t\tfloat a2 = min(c3.g, c4.g);\n\t\t\t\t\tfloat visibilityFactor = min(a1, a2);\n\t\t\t\t\tvec3 edgeColor = 1.0 - visibilityFactor > 0.001 ? visibleEdgeColor : hiddenEdgeColor;\n\t\t\t\t\tgl_FragColor = vec4(edgeColor, 1.0) * vec4(d);\n\t\t\t\t}"})}getSeperableBlurMaterial(e){return new a.ShaderMaterial({defines:{MAX_RADIUS:e},uniforms:{colorTexture:{value:null},texSize:{value:new a.Vector2(.5,.5)},direction:{value:new a.Vector2(.5,.5)},kernelRadius:{value:1}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"#include \n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\t\t\t\tuniform float kernelRadius;\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, kernelRadius);\n\t\t\t\t\tvec4 diffuseSum = texture2D( colorTexture, vUv) * weightSum;\n\t\t\t\t\tvec2 delta = direction * invSize * kernelRadius/float(MAX_RADIUS);\n\t\t\t\t\tvec2 uvOffset = delta;\n\t\t\t\t\tfor( int i = 1; i <= MAX_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat w = gaussianPdf(uvOffset.x, kernelRadius);\n\t\t\t\t\t\tvec4 sample1 = texture2D( colorTexture, vUv + uvOffset);\n\t\t\t\t\t\tvec4 sample2 = texture2D( colorTexture, vUv - uvOffset);\n\t\t\t\t\t\tdiffuseSum += ((sample1 + sample2) * w);\n\t\t\t\t\t\tweightSum += (2.0 * w);\n\t\t\t\t\t\tuvOffset += delta;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = diffuseSum/weightSum;\n\t\t\t\t}"})}getOverlayMaterial(){return new a.ShaderMaterial({uniforms:{maskTexture:{value:null},edgeTexture1:{value:null},edgeTexture2:{value:null},patternTexture:{value:null},edgeStrength:{value:1},edgeGlow:{value:1},usePatternTexture:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D maskTexture;\n\t\t\t\tuniform sampler2D edgeTexture1;\n\t\t\t\tuniform sampler2D edgeTexture2;\n\t\t\t\tuniform sampler2D patternTexture;\n\t\t\t\tuniform float edgeStrength;\n\t\t\t\tuniform float edgeGlow;\n\t\t\t\tuniform bool usePatternTexture;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec4 edgeValue1 = texture2D(edgeTexture1, vUv);\n\t\t\t\t\tvec4 edgeValue2 = texture2D(edgeTexture2, vUv);\n\t\t\t\t\tvec4 maskColor = texture2D(maskTexture, vUv);\n\t\t\t\t\tvec4 patternColor = texture2D(patternTexture, 6.0 * vUv);\n\t\t\t\t\tfloat visibilityFactor = 1.0 - maskColor.g > 0.0 ? 1.0 : 0.5;\n\t\t\t\t\tvec4 edgeValue = edgeValue1 + edgeValue2 * edgeGlow;\n\t\t\t\t\tvec4 finalColor = edgeStrength * maskColor.r * edgeValue;\n\t\t\t\t\tif(usePatternTexture)\n\t\t\t\t\t\tfinalColor += + visibilityFactor * (1.0 - maskColor.r) * (1.0 - patternColor.r);\n\t\t\t\t\tgl_FragColor = finalColor;\n\t\t\t\t}",blending:a.AdditiveBlending,depthTest:!1,depthWrite:!1,transparent:!0})}}t.OutlinePass=l},49190:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);t.FullScreenQuad=class{constructor(e){i(this,"camera",new s.OrthographicCamera(-1,1,1,-1,0,1)),i(this,"geometry",new s.PlaneGeometry(2,2)),i(this,"mesh"),this.mesh=new s.Mesh(this.geometry,e)}get material(){return this.mesh.material}set material(e){this.mesh.material=e}dispose(){this.mesh.geometry.dispose()}render(e){e.render(this.mesh,this.camera)}},t.Pass=class{constructor(){i(this,"enabled",!0),i(this,"needsSwap",!0),i(this,"clear",!1),i(this,"renderToScreen",!1)}setSize(e,t){}render(e,t,r,n,i){console.error("THREE.Pass: .render() must be implemented in derived pass.")}}},27251:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(49190);class o extends a.Pass{constructor(e,t,r,n,a=0){super(),i(this,"scene"),i(this,"camera"),i(this,"overrideMaterial"),i(this,"clearColor"),i(this,"clearAlpha"),i(this,"clearDepth",!1),i(this,"_oldClearColor",new s.Color),this.scene=e,this.camera=t,this.overrideMaterial=r,this.clearColor=n,this.clearAlpha=a,this.clear=!0,this.needsSwap=!1}render(e,t,r){let n,i=e.autoClear;e.autoClear=!1;let s=null;void 0!==this.overrideMaterial&&(s=this.scene.overrideMaterial,this.scene.overrideMaterial=this.overrideMaterial),this.clearColor&&(e.getClearColor(this._oldClearColor),n=e.getClearAlpha(),e.setClearColor(this.clearColor,this.clearAlpha)),this.clearDepth&&e.clearDepth(),e.setRenderTarget(this.renderToScreen?null:r),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),e.render(this.scene,this.camera),this.clearColor&&e.setClearColor(this._oldClearColor,n),void 0!==this.overrideMaterial&&(this.scene.overrideMaterial=s),e.autoClear=i}}t.RenderPass=o},17497:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(49190);class s extends i.Pass{constructor(e,t,r,s,o={}){var l,c;super(),this.pixelSize=t,this.resolution=new n.Vector2,this.renderResolution=new n.Vector2,this.setSize(e.x,e.y),this.fsQuad=new i.FullScreenQuad(this.material()),this.scene=r,this.camera=s,this.normalEdgeStrength=null!=(l=o.normalEdgeStrength)?l:.3,this.depthEdgeStrength=null!=(c=o.depthEdgeStrength)?c:.4,this.rgbRenderTarget=a(this.renderResolution,n.RGBAFormat,!0),this.normalRenderTarget=a(this.renderResolution,n.RGBAFormat,!1),this.normalMaterial=new n.MeshNormalMaterial}dispose(){this.rgbRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.fsQuad.dispose()}setSize(e,t){var r,n,i;this.resolution.set(e,t),this.renderResolution.set(e/this.pixelSize|0,t/this.pixelSize|0);const{x:s,y:a}=this.renderResolution;null==(r=this.rgbRenderTarget)||r.setSize(s,a),null==(n=this.normalRenderTarget)||n.setSize(s,a),null==(i=this.fsQuad)||i.material.uniforms.resolution.value.set(s,a,1/s,1/a)}setPixelSize(e){this.pixelSize=e,this.setSize(this.resolution.x,this.resolution.y)}render(e,t){const r=this.fsQuad.material.uniforms;r.normalEdgeStrength.value=this.normalEdgeStrength,r.depthEdgeStrength.value=this.depthEdgeStrength,e.setRenderTarget(this.rgbRenderTarget),e.render(this.scene,this.camera);const n=this.scene.overrideMaterial;e.setRenderTarget(this.normalRenderTarget),this.scene.overrideMaterial=this.normalMaterial,e.render(this.scene,this.camera),this.scene.overrideMaterial=n,r.tDiffuse.value=this.rgbRenderTarget.texture,r.tDepth.value=this.rgbRenderTarget.depthTexture,r.tNormal.value=this.normalRenderTarget.texture,this.renderToScreen?e.setRenderTarget(null):(e.setRenderTarget(t),this.clear&&e.clear()),this.fsQuad.render(e)}material(){return new n.ShaderMaterial({uniforms:{tDiffuse:{value:null},tDepth:{value:null},tNormal:{value:null},resolution:{value:new n.Vector4(this.renderResolution.x,this.renderResolution.y,1/this.renderResolution.x,1/this.renderResolution.y)},normalEdgeStrength:{value:0},depthEdgeStrength:{value:0}},vertexShader:"\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n\t\t\t\t}\n\t\t\t\t",fragmentShader:"\n\t\t\t\tuniform sampler2D tDiffuse;\n\t\t\t\tuniform sampler2D tDepth;\n\t\t\t\tuniform sampler2D tNormal;\n\t\t\t\tuniform vec4 resolution;\n\t\t\t\tuniform float normalEdgeStrength;\n\t\t\t\tuniform float depthEdgeStrength;\n\t\t\t\tvarying vec2 vUv;\n\n\t\t\t\tfloat getDepth(int x, int y) {\n\n\t\t\t\t\treturn texture2D( tDepth, vUv + vec2(x, y) * resolution.zw ).r;\n\n\t\t\t\t}\n\n\t\t\t\tvec3 getNormal(int x, int y) {\n\n\t\t\t\t\treturn texture2D( tNormal, vUv + vec2(x, y) * resolution.zw ).rgb * 2.0 - 1.0;\n\n\t\t\t\t}\n\n\t\t\t\tfloat depthEdgeIndicator(float depth, vec3 normal) {\n\n\t\t\t\t\tfloat diff = 0.0;\n\t\t\t\t\tdiff += clamp(getDepth(1, 0) - depth, 0.0, 1.0);\n\t\t\t\t\tdiff += clamp(getDepth(-1, 0) - depth, 0.0, 1.0);\n\t\t\t\t\tdiff += clamp(getDepth(0, 1) - depth, 0.0, 1.0);\n\t\t\t\t\tdiff += clamp(getDepth(0, -1) - depth, 0.0, 1.0);\n\t\t\t\t\treturn floor(smoothstep(0.01, 0.02, diff) * 2.) / 2.;\n\n\t\t\t\t}\n\n\t\t\t\tfloat neighborNormalEdgeIndicator(int x, int y, float depth, vec3 normal) {\n\n\t\t\t\t\tfloat depthDiff = getDepth(x, y) - depth;\n\t\t\t\t\tvec3 neighborNormal = getNormal(x, y);\n\t\t\t\t\t\n\t\t\t\t\t// Edge pixels should yield to faces who's normals are closer to the bias normal.\n\t\t\t\t\tvec3 normalEdgeBias = vec3(1., 1., 1.); // This should probably be a parameter.\n\t\t\t\t\tfloat normalDiff = dot(normal - neighborNormal, normalEdgeBias);\n\t\t\t\t\tfloat normalIndicator = clamp(smoothstep(-.01, .01, normalDiff), 0.0, 1.0);\n\t\t\t\t\t\n\t\t\t\t\t// Only the shallower pixel should detect the normal edge.\n\t\t\t\t\tfloat depthIndicator = clamp(sign(depthDiff * .25 + .0025), 0.0, 1.0);\n\n\t\t\t\t\treturn (1.0 - dot(normal, neighborNormal)) * depthIndicator * normalIndicator;\n\n\t\t\t\t}\n\n\t\t\t\tfloat normalEdgeIndicator(float depth, vec3 normal) {\n\t\t\t\t\t\n\t\t\t\t\tfloat indicator = 0.0;\n\n\t\t\t\t\tindicator += neighborNormalEdgeIndicator(0, -1, depth, normal);\n\t\t\t\t\tindicator += neighborNormalEdgeIndicator(0, 1, depth, normal);\n\t\t\t\t\tindicator += neighborNormalEdgeIndicator(-1, 0, depth, normal);\n\t\t\t\t\tindicator += neighborNormalEdgeIndicator(1, 0, depth, normal);\n\n\t\t\t\t\treturn step(0.1, indicator);\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec4 texel = texture2D( tDiffuse, vUv );\n\n\t\t\t\t\tfloat depth = 0.0;\n\t\t\t\t\tvec3 normal = vec3(0.0);\n\n\t\t\t\t\tif (depthEdgeStrength > 0.0 || normalEdgeStrength > 0.0) {\n\n\t\t\t\t\t\tdepth = getDepth(0, 0);\n\t\t\t\t\t\tnormal = getNormal(0, 0);\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat dei = 0.0;\n\t\t\t\t\tif (depthEdgeStrength > 0.0) \n\t\t\t\t\t\tdei = depthEdgeIndicator(depth, normal);\n\n\t\t\t\t\tfloat nei = 0.0; \n\t\t\t\t\tif (normalEdgeStrength > 0.0) \n\t\t\t\t\t\tnei = normalEdgeIndicator(depth, normal);\n\n\t\t\t\t\tfloat Strength = dei > 0.0 ? (1.0 - depthEdgeStrength * dei) : (1.0 + normalEdgeStrength * nei);\n\n\t\t\t\t\tgl_FragColor = texel * Strength;\n\n\t\t\t\t}\n\t\t\t\t"})}}function a(e,t,r){const i=new n.WebGLRenderTarget(e.x,e.y,r?{depthTexture:new n.DepthTexture(e.x,e.y),depthBuffer:!0}:void 0);return i.texture.format=t,i.texture.minFilter=n.NearestFilter,i.texture.magFilter=n.NearestFilter,i.texture.generateMipmaps=!1,i.stencilBuffer=!1,i}t.RenderPixelatedPass=s},96665:(e,t,r)=>{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=r(85232),s=r(49190),a=r(24730),o=r(86170),l=r(83453),c=r(65149);class h extends s.Pass{constructor(e,t,r=!1,n=!1,h=new i.Vector2(256,256)){let u;super(),this.scene=e,this.camera=t,this.clear=!0,this.needsSwap=!1,this.supportsDepthTextureExtension=r,this.supportsNormalTexture=n,this.originalClearColor=new i.Color,this._oldClearColor=new i.Color,this.oldClearAlpha=1,this.params={output:0,saoBias:.5,saoIntensity:.18,saoScale:1,saoKernelRadius:100,saoMinResolution:0,saoBlur:!0,saoBlurRadius:8,saoBlurStdDev:4,saoBlurDepthCutoff:.01},this.resolution=new i.Vector2(h.x,h.y),this.saoRenderTarget=new i.WebGLRenderTarget(this.resolution.x,this.resolution.y,{type:i.HalfFloatType}),this.blurIntermediateRenderTarget=this.saoRenderTarget.clone(),this.beautyRenderTarget=this.saoRenderTarget.clone(),this.normalRenderTarget=new i.WebGLRenderTarget(this.resolution.x,this.resolution.y,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.HalfFloatType}),this.depthRenderTarget=this.normalRenderTarget.clone(),this.supportsDepthTextureExtension&&(u=new i.DepthTexture,u.type=i.UnsignedShortType,this.beautyRenderTarget.depthTexture=u,this.beautyRenderTarget.depthBuffer=!0),this.depthMaterial=new i.MeshDepthMaterial,this.depthMaterial.depthPacking=i.RGBADepthPacking,this.depthMaterial.blending=i.NoBlending,this.normalMaterial=new i.MeshNormalMaterial,this.normalMaterial.blending=i.NoBlending,this.saoMaterial=new i.ShaderMaterial({defines:Object.assign({},a.SAOShader.defines),fragmentShader:a.SAOShader.fragmentShader,vertexShader:a.SAOShader.vertexShader,uniforms:i.UniformsUtils.clone(a.SAOShader.uniforms)}),this.saoMaterial.extensions.derivatives=!0,this.saoMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.saoMaterial.defines.NORMAL_TEXTURE=this.supportsNormalTexture?1:0,this.saoMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.saoMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?u:this.depthRenderTarget.texture,this.saoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.saoMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.blending=i.NoBlending,this.vBlurMaterial=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(o.DepthLimitedBlurShader.uniforms),defines:Object.assign({},o.DepthLimitedBlurShader.defines),vertexShader:o.DepthLimitedBlurShader.vertexShader,fragmentShader:o.DepthLimitedBlurShader.fragmentShader}),this.vBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.vBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.vBlurMaterial.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.vBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?u:this.depthRenderTarget.texture,this.vBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.vBlurMaterial.blending=i.NoBlending,this.hBlurMaterial=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(o.DepthLimitedBlurShader.uniforms),defines:Object.assign({},o.DepthLimitedBlurShader.defines),vertexShader:o.DepthLimitedBlurShader.vertexShader,fragmentShader:o.DepthLimitedBlurShader.fragmentShader}),this.hBlurMaterial.defines.DEPTH_PACKING=this.supportsDepthTextureExtension?0:1,this.hBlurMaterial.defines.PERSPECTIVE_CAMERA=this.camera.isPerspectiveCamera?1:0,this.hBlurMaterial.uniforms.tDiffuse.value=this.blurIntermediateRenderTarget.texture,this.hBlurMaterial.uniforms.tDepth.value=this.supportsDepthTextureExtension?u:this.depthRenderTarget.texture,this.hBlurMaterial.uniforms.size.value.set(this.resolution.x,this.resolution.y),this.hBlurMaterial.blending=i.NoBlending,this.materialCopy=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(l.CopyShader.uniforms),vertexShader:l.CopyShader.vertexShader,fragmentShader:l.CopyShader.fragmentShader,blending:i.NoBlending}),this.materialCopy.transparent=!0,this.materialCopy.depthTest=!1,this.materialCopy.depthWrite=!1,this.materialCopy.blending=i.CustomBlending,this.materialCopy.blendSrc=i.DstColorFactor,this.materialCopy.blendDst=i.ZeroFactor,this.materialCopy.blendEquation=i.AddEquation,this.materialCopy.blendSrcAlpha=i.DstAlphaFactor,this.materialCopy.blendDstAlpha=i.ZeroFactor,this.materialCopy.blendEquationAlpha=i.AddEquation,this.depthCopy=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(c.UnpackDepthRGBAShader.uniforms),vertexShader:c.UnpackDepthRGBAShader.vertexShader,fragmentShader:c.UnpackDepthRGBAShader.fragmentShader,blending:i.NoBlending}),this.fsQuad=new s.FullScreenQuad(null)}render(e,t,r){if(this.renderToScreen&&(this.materialCopy.blending=i.NoBlending,this.materialCopy.uniforms.tDiffuse.value=r.texture,this.materialCopy.needsUpdate=!0,this.renderPass(e,this.materialCopy,null)),1===this.params.output)return;e.getClearColor(this._oldClearColor),this.oldClearAlpha=e.getClearAlpha();const n=e.autoClear;e.autoClear=!1,e.setRenderTarget(this.depthRenderTarget),e.clear(),this.saoMaterial.uniforms.bias.value=this.params.saoBias,this.saoMaterial.uniforms.intensity.value=this.params.saoIntensity,this.saoMaterial.uniforms.scale.value=this.params.saoScale,this.saoMaterial.uniforms.kernelRadius.value=this.params.saoKernelRadius,this.saoMaterial.uniforms.minResolution.value=this.params.saoMinResolution,this.saoMaterial.uniforms.cameraNear.value=this.camera.near,this.saoMaterial.uniforms.cameraFar.value=this.camera.far;const s=this.params.saoBlurDepthCutoff*(this.camera.far-this.camera.near);this.vBlurMaterial.uniforms.depthCutoff.value=s,this.hBlurMaterial.uniforms.depthCutoff.value=s,this.vBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.vBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.hBlurMaterial.uniforms.cameraNear.value=this.camera.near,this.hBlurMaterial.uniforms.cameraFar.value=this.camera.far,this.params.saoBlurRadius=Math.floor(this.params.saoBlurRadius),this.prevStdDev===this.params.saoBlurStdDev&&this.prevNumSamples===this.params.saoBlurRadius||(o.BlurShaderUtils.configure(this.vBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new i.Vector2(0,1)),o.BlurShaderUtils.configure(this.hBlurMaterial,this.params.saoBlurRadius,this.params.saoBlurStdDev,new i.Vector2(1,0)),this.prevStdDev=this.params.saoBlurStdDev,this.prevNumSamples=this.params.saoBlurRadius),e.setClearColor(0),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.supportsDepthTextureExtension||this.renderOverride(e,this.depthMaterial,this.depthRenderTarget,0,1),this.supportsNormalTexture&&this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.renderPass(e,this.saoMaterial,this.saoRenderTarget,16777215,1),this.params.saoBlur&&(this.renderPass(e,this.vBlurMaterial,this.blurIntermediateRenderTarget,16777215,1),this.renderPass(e,this.hBlurMaterial,this.saoRenderTarget,16777215,1));let a=this.materialCopy;3===this.params.output?this.supportsDepthTextureExtension?(this.materialCopy.uniforms.tDiffuse.value=this.beautyRenderTarget.depthTexture,this.materialCopy.needsUpdate=!0):(this.depthCopy.uniforms.tDiffuse.value=this.depthRenderTarget.texture,this.depthCopy.needsUpdate=!0,a=this.depthCopy):4===this.params.output?(this.materialCopy.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.materialCopy.needsUpdate=!0):(this.materialCopy.uniforms.tDiffuse.value=this.saoRenderTarget.texture,this.materialCopy.needsUpdate=!0),0===this.params.output?a.blending=i.CustomBlending:a.blending=i.NoBlending,this.renderPass(e,a,this.renderToScreen?null:r),e.setClearColor(this._oldClearColor,this.oldClearAlpha),e.autoClear=n}renderPass(e,t,r,n,i){e.getClearColor(this.originalClearColor);const s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,null!=n&&(e.setClearColor(n),e.setClearAlpha(i||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderOverride(e,t,r,n,i){e.getClearColor(this.originalClearColor);const s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,n=t.clearColor||n,i=t.clearAlpha||i,null!=n&&(e.setClearColor(n),e.setClearAlpha(i||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}setSize(e,t){this.beautyRenderTarget.setSize(e,t),this.saoRenderTarget.setSize(e,t),this.blurIntermediateRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.depthRenderTarget.setSize(e,t),this.saoMaterial.uniforms.size.value.set(e,t),this.saoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.saoMaterial.uniforms.cameraProjectionMatrix.value=this.camera.projectionMatrix,this.saoMaterial.needsUpdate=!0,this.vBlurMaterial.uniforms.size.value.set(e,t),this.vBlurMaterial.needsUpdate=!0,this.hBlurMaterial.uniforms.size.value.set(e,t),this.hBlurMaterial.needsUpdate=!0}dispose(){this.saoRenderTarget.dispose(),this.blurIntermediateRenderTarget.dispose(),this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.depthRenderTarget.dispose(),this.depthMaterial.dispose(),this.normalMaterial.dispose(),this.saoMaterial.dispose(),this.vBlurMaterial.dispose(),this.hBlurMaterial.dispose(),this.materialCopy.dispose(),this.depthCopy.dispose(),this.fsQuad.dispose()}}var u;((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(h,"symbol"!=typeof(u="OUTPUT")?u+"":u,{Beauty:1,Default:0,SAO:2,Depth:3,Normal:4}),t.SAOPass=h},7679:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(49190),s=r(27407);class a extends i.Pass{constructor(e,t){super(),this.edgesRT=new n.WebGLRenderTarget(e,t,{depthBuffer:!1}),this.edgesRT.texture.name="SMAAPass.edges",this.weightsRT=new n.WebGLRenderTarget(e,t,{depthBuffer:!1}),this.weightsRT.texture.name="SMAAPass.weights";const r=this,a=new Image;a.src=this.getAreaTexture(),a.onload=function(){r.areaTexture.needsUpdate=!0},this.areaTexture=new n.Texture,this.areaTexture.name="SMAAPass.area",this.areaTexture.image=a,this.areaTexture.minFilter=n.LinearFilter,this.areaTexture.generateMipmaps=!1,this.areaTexture.flipY=!1;const o=new Image;o.src=this.getSearchTexture(),o.onload=function(){r.searchTexture.needsUpdate=!0},this.searchTexture=new n.Texture,this.searchTexture.name="SMAAPass.search",this.searchTexture.image=o,this.searchTexture.magFilter=n.NearestFilter,this.searchTexture.minFilter=n.NearestFilter,this.searchTexture.generateMipmaps=!1,this.searchTexture.flipY=!1,void 0===s.SMAAEdgesShader&&console.error("THREE.SMAAPass relies on SMAAShader"),this.uniformsEdges=n.UniformsUtils.clone(s.SMAAEdgesShader.uniforms),this.uniformsEdges.resolution.value.set(1/e,1/t),this.materialEdges=new n.ShaderMaterial({defines:Object.assign({},s.SMAAEdgesShader.defines),uniforms:this.uniformsEdges,vertexShader:s.SMAAEdgesShader.vertexShader,fragmentShader:s.SMAAEdgesShader.fragmentShader}),this.uniformsWeights=n.UniformsUtils.clone(s.SMAAWeightsShader.uniforms),this.uniformsWeights.resolution.value.set(1/e,1/t),this.uniformsWeights.tDiffuse.value=this.edgesRT.texture,this.uniformsWeights.tArea.value=this.areaTexture,this.uniformsWeights.tSearch.value=this.searchTexture,this.materialWeights=new n.ShaderMaterial({defines:Object.assign({},s.SMAAWeightsShader.defines),uniforms:this.uniformsWeights,vertexShader:s.SMAAWeightsShader.vertexShader,fragmentShader:s.SMAAWeightsShader.fragmentShader}),this.uniformsBlend=n.UniformsUtils.clone(s.SMAABlendShader.uniforms),this.uniformsBlend.resolution.value.set(1/e,1/t),this.uniformsBlend.tDiffuse.value=this.weightsRT.texture,this.materialBlend=new n.ShaderMaterial({uniforms:this.uniformsBlend,vertexShader:s.SMAABlendShader.vertexShader,fragmentShader:s.SMAABlendShader.fragmentShader}),this.needsSwap=!1,this.fsQuad=new i.FullScreenQuad(null)}render(e,t,r){this.uniformsEdges.tDiffuse.value=r.texture,this.fsQuad.material=this.materialEdges,e.setRenderTarget(this.edgesRT),this.clear&&e.clear(),this.fsQuad.render(e),this.fsQuad.material=this.materialWeights,e.setRenderTarget(this.weightsRT),this.clear&&e.clear(),this.fsQuad.render(e),this.uniformsBlend.tColor.value=r.texture,this.fsQuad.material=this.materialBlend,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}setSize(e,t){this.edgesRT.setSize(e,t),this.weightsRT.setSize(e,t),this.materialEdges.uniforms.resolution.value.set(1/e,1/t),this.materialWeights.uniforms.resolution.value.set(1/e,1/t),this.materialBlend.uniforms.resolution.value.set(1/e,1/t)}getAreaTexture(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAIwCAIAAACOVPcQAACBeklEQVR42u39W4xlWXrnh/3WWvuciIzMrKxrV8/0rWbY0+SQFKcb4owIkSIFCjY9AC1BT/LYBozRi+EX+cV+8IMsYAaCwRcBwjzMiw2jAWtgwC8WR5Q8mDFHZLNHTarZGrLJJllt1W2qKrsumZWZcTvn7L3W54e1vrXX3vuciLPPORFR1XE2EomorB0nVuz//r71re/y/1eMvb4Cb3N11xV/PP/2v4UBAwJG/7H8urx6/25/Gf8O5hypMQ0EEEQwAqLfoN/Z+97f/SW+/NvcgQk4sGBJK6H7N4PFVL+K+e0N11yNfkKvwUdwdlUAXPHHL38oa15f/i/46Ih6SuMSPmLAYAwyRKn7dfMGH97jaMFBYCJUgotIC2YAdu+LyW9vvubxAP8kAL8H/koAuOKP3+q6+xGnd5kdYCeECnGIJViwGJMAkQKfDvB3WZxjLKGh8VSCCzhwEWBpMc5/kBbjawT4HnwJfhr+pPBIu7uu+OOTo9vsmtQcniMBGkKFd4jDWMSCRUpLjJYNJkM+IRzQ+PQvIeAMTrBS2LEiaiR9b/5PuT6Ap/AcfAFO4Y3dA3DFH7/VS+M8k4baEAQfMI4QfbVDDGIRg7GKaIY52qAjTAgTvGBAPGIIghOCYAUrGFNgzA7Q3QhgCwfwAnwe5vDejgG44o/fbm1C5ZlYQvQDARPAIQGxCWBM+wWl37ZQESb4gImexGMDouhGLx1Cst0Saa4b4AqO4Hk4gxo+3DHAV/nx27p3JziPM2pVgoiia5MdEzCGULprIN7gEEeQ5IQxEBBBQnxhsDb5auGmAAYcHMA9eAAz8PBol8/xij9+C4Djlim4gJjWcwZBhCBgMIIYxGAVIkH3ZtcBuLdtRFMWsPGoY9rN+HoBji9VBYdwD2ZQg4cnO7OSq/z4rU5KKdwVbFAjNojCQzTlCLPFSxtamwh2jMUcEgg2Wm/6XgErIBhBckQtGN3CzbVacERgCnfgLswhnvqf7QyAq/z4rRZm1YglYE3affGITaZsdIe2FmMIpnOCap25I6jt2kCwCW0D1uAD9sZctNGXcQIHCkINDQgc78aCr+zjtw3BU/ijdpw3zhCwcaONwBvdeS2YZKkJNJsMPf2JKEvC28RXxxI0ASJyzQCjCEQrO4Q7sFArEzjZhaFc4cdv+/JFdKULM4px0DfUBI2hIsy06BqLhGTQEVdbfAIZXYMPesq6VoCHICzUyjwInO4Y411//LYLs6TDa9wvg2CC2rElgAnpTBziThxaL22MYhzfkghz6GAs2VHbbdM91VZu1MEEpupMMwKyVTb5ij9+u4VJG/5EgEMMmFF01cFai3isRbKbzb+YaU/MQbAm2XSMoUPAmvZzbuKYRIFApbtlrfFuUGd6vq2hXNnH78ZLh/iFhsQG3T4D1ib7k5CC6vY0DCbtrohgLEIClXiGtl10zc0CnEGIhhatLBva7NP58Tvw0qE8yWhARLQ8h4+AhQSP+I4F5xoU+VilGRJs6wnS7ruti/4KvAY/CfdgqjsMy4pf8fodQO8/gnuX3f/3xi3om1/h7THr+co3x93PP9+FBUfbNUjcjEmhcrkT+8K7ml7V10Jo05mpIEFy1NmCJWx9SIKKt+EjAL4Ez8EBVOB6havuT/rByPvHXK+9zUcfcbb254+9fydJknYnRr1oGfdaiAgpxu1Rx/Rek8KISftx3L+DfsLWAANn8Hvw0/AFeAGO9DFV3c6D+CcWbL8Dj9e7f+T1k8AZv/d7+PXWM/Z+VvdCrIvuAKO09RpEEQJM0Ci6+B4xhTWr4cZNOvhktabw0ta0rSJmqz3Yw5/AKXwenod7cAhTmBSPKf6JBdvH8IP17h95pXqw50/+BFnj88fev4NchyaK47OPhhtI8RFSvAfDSNh0Ck0p2gLxGkib5NJj/JWCr90EWQJvwBzO4AHcgztwAFN1evHPUVGwfXON+0debT1YeGON9Yy9/63X+OguiwmhIhQhD7l4sMqlG3D86Suc3qWZ4rWjI1X7u0Ytw6x3rIMeIOPDprfe2XzNgyj6PahhBjO4C3e6puDgXrdg+/5l948vF3bqwZetZ+z9Rx9zdIY5pInPK4Nk0t+l52xdK2B45Qd87nM8fsD5EfUhIcJcERw4RdqqH7Yde5V7m1vhNmtedkz6EDzUMF/2jJYWbC+4fzzA/Y+/8PPH3j9dcBAPIRP8JLXd5BpAu03aziOL3VVHZzz3CXWDPWd+SH2AnxIqQoTZpo9Ckc6HIrFbAbzNmlcg8Ag8NFDDAhbJvTBZXbC94P7t68EXfv6o+21gUtPETU7bbkLxvNKRFG2+KXzvtObonPP4rBvsgmaKj404DlshFole1Glfh02fE7bYR7dZ82oTewIBGn1Md6CG6YUF26X376oevOLzx95vhUmgblI6LBZwTCDY7vMq0op5WVXgsObOXJ+1x3qaBl9j1FeLxbhU9w1F+Wiba6s1X/TBz1LnUfuYDi4r2C69f1f14BWfP+p+W2GFKuC9phcELMYRRLur9DEZTUdEH+iEqWdaM7X4WOoPGI+ZYD2+wcQ+y+ioHUZ9dTDbArzxmi/bJI9BND0Ynd6lBdve/butBw8+f/T9D3ABa3AG8W3VPX4hBin+bj8dMMmSpp5pg7fJ6xrBFE2WQQEWnV8Qg3FbAWzYfM1rREEnmvkN2o1+acG2d/9u68GDzx91v3mAjb1zkpqT21OipPKO0b9TO5W0nTdOmAQm0TObts3aBKgwARtoPDiCT0gHgwnbArzxmtcLc08HgF1asN0C4Ms/fvD5I+7PhfqyXE/b7RbbrGyRQRT9ARZcwAUmgdoz0ehJ9Fn7QAhUjhDAQSw0bV3T3WbNa59jzmiP6GsWbGXDX2ytjy8+f9T97fiBPq9YeLdBmyuizZHaqXITnXiMUEEVcJ7K4j3BFPurtB4bixW8wTpweL8DC95szWMOqucFYGsWbGU7p3TxxxefP+r+oTVktxY0v5hbq3KiOKYnY8ddJVSBxuMMVffNbxwIOERShst73HZ78DZrHpmJmH3K6sGz0fe3UUj0eyRrSCGTTc+rjVNoGzNSv05srAxUBh8IhqChiQgVNIIBH3AVPnrsnXQZbLTm8ammv8eVXn/vWpaTem5IXRlt+U/LA21zhSb9cye6jcOfCnOwhIAYXAMVTUNV0QhVha9xjgA27ODJbLbmitt3tRN80lqG6N/khgot4ZVlOyO4WNg3OIMzhIZQpUEHieg2im6F91hB3I2tubql6BYNN9Hj5S7G0G2tahslBWKDnOiIvuAEDzakDQKDNFQT6gbn8E2y4BBubM230YIpBnDbMa+y3dx0n1S0BtuG62lCCXwcY0F72T1VRR3t2ONcsmDjbmzNt9RFs2LO2hQNyb022JisaI8rAWuw4HI3FuAIhZdOGIcdjLJvvObqlpqvWTJnnQbyi/1M9O8UxWhBs//H42I0q1Yb/XPGONzcmm+ri172mHKvZBpHkJaNJz6v9jxqiklDj3U4CA2ugpAaYMWqNXsdXbmJNd9egCnJEsphXNM+MnK3m0FCJ5S1kmJpa3DgPVbnQnPGWIDspW9ozbcO4K/9LkfaQO2KHuqlfFXSbdNzcEcwoqNEFE9zcIXu9/6n/ym/BC/C3aJLzEKPuYVlbFnfhZ8kcWxV3dbv4bKl28566wD+8C53aw49lTABp9PWbsB+knfc/Li3eVizf5vv/xmvnPKg5ihwKEwlrcHqucuVcVOxEv8aH37E3ZqpZypUulrHEtIWKUr+txHg+ojZDGlwnqmkGlzcVi1dLiNSJiHjfbRNOPwKpx9TVdTn3K05DBx4psIk4Ei8aCkJahRgffk4YnEXe07T4H2RR1u27E6wfQsBDofUgjFUFnwC2AiVtA+05J2zpiDK2Oa0c5fmAecN1iJzmpqFZxqYBCYhFTCsUNEmUnIcZ6aEA5rQVhEywG6w7HSW02XfOoBlQmjwulOFQAg66SvJblrTEX1YtJ3uG15T/BH1OfOQeuR8g/c0gdpT5fx2SKbs9EfHTKdM8A1GaJRHLVIwhcGyydZsbifAFVKl5EMKNU2Hryo+06BeTgqnxzYjThVySDikbtJPieco75lYfKAJOMEZBTjoITuWHXXZVhcUDIS2hpiXHV9Ku4u44bN5OYLDOkJo8w+xJSMbhBRHEdEs9JZUCkQrPMAvaHyLkxgkEHxiNkx/x2YB0mGsQ8EUWj/stW5YLhtS5SMu+/YBbNPDCkGTUybN8krRLBGPlZkVOA0j+a1+rkyQKWGaPHPLZOkJhioQYnVZ2hS3zVxMtgC46KuRwbJNd9nV2PHgb36F194ecf/Yeu2vAFe5nm/bRBFrnY4BauE8ERmZRFUn0k8hbftiVYSKMEme2dJCJSCGYAlNqh87bXOPdUkGy24P6d1ll21MBqqx48Fvv8ZHH8HZFY7j/uAq1xMJUFqCSUlJPmNbIiNsmwuMs/q9CMtsZsFO6SprzCS1Z7QL8xCQClEelpjTduDMsmWD8S1PT152BtvmIGvUeDA/yRn83u/x0/4qxoPHjx+PXY9pqX9bgMvh/Nz9kpP4pOe1/fYf3axUiMdHLlPpZCNjgtNFAhcHEDxTumNONhHrBduW+vOyY++70WWnPXj98eA4kOt/mj/5E05l9+O4o8ePx67HFqyC+qSSnyselqjZGaVK2TadbFLPWAQ4NBhHqDCCV7OTpo34AlSSylPtIdd2AJZlyzYQrDJ5lcWGNceD80CunPLGGzsfD+7wRb95NevJI5docQ3tgCyr5bGnyaPRlmwNsFELViOOx9loebGNq2moDOKpHLVP5al2cymWHbkfzGXL7kfRl44H9wZy33tvt+PB/Xnf93e+nh5ZlU18wCiRUa9m7kib9LYuOk+hudQNbxwm0AQqbfloimaB2lM5fChex+ylMwuTbfmXQtmWlenZljbdXTLuOxjI/fDDHY4Hjx8/Hrse0zXfPFxbUN1kKqSCCSk50m0Ajtx3ub9XHBKHXESb8iO6E+qGytF4nO0OG3SXzbJlhxBnKtKyl0NwybjvYCD30aMdjgePHz8eu56SVTBbgxJMliQ3Oauwg0QHxXE2Ez/EIReLdQj42Gzb4CLS0YJD9xUx7bsi0vJi5mUbW1QzL0h0PFk17rtiIPfJk52MB48fPx67npJJwyrBa2RCCQRTbGZSPCxTPOiND4G2pYyOQ4h4jINIJh5wFU1NFZt+IsZ59LSnDqBjZ2awbOku+yInunLcd8VA7rNnOxkPHj9+PGY9B0MWJJNozOJmlglvDMXDEozdhQWbgs/U6oBanGzLrdSNNnZFjOkmbi5bNt1lX7JLLhn3vXAg9/h4y/Hg8ePHI9dzQMEkWCgdRfYykYKnkP7D4rIujsujaKPBsB54vE2TS00ccvFY/Tth7JXeq1hz+qgVy04sAJawTsvOknHfCwdyT062HA8eP348Zj0vdoXF4pilKa2BROed+9fyw9rWRXeTFXESMOanvDZfJuJaSXouQdMdDJZtekZcLLvEeK04d8m474UDuaenW44Hjx8/Xns9YYqZpszGWB3AN/4VHw+k7WSFtJ3Qicuqb/NlVmgXWsxh570xg2UwxUw3WfO6B5nOuO8aA7lnZxuPB48fPx6znm1i4bsfcbaptF3zNT78eFPtwi1OaCNOqp1x3zUGcs/PN++AGD1+fMXrSVm2baTtPhPahbPhA71wIHd2bXzRa69nG+3CraTtPivahV/55tXWg8fyRY/9AdsY8VbSdp8V7cKrrgdfM//z6ILQFtJ2nxHtwmuoB4/kf74+gLeRtvvMaBdeSz34+vifx0YG20jbfTa0C6+tHrwe//NmOG0L8EbSdp8R7cLrrQe/996O+ai3ujQOskpTNULa7jOjXXj99eCd8lHvoFiwsbTdZ0a78PrrwTvlo966pLuRtB2fFe3Cm6oHP9kNH/W2FryxtN1nTLvwRurBO+Kj3pWXHidtx2dFu/Bm68Fb81HvykuPlrb7LGkX3mw9eGs+6h1Y8MbSdjegXcguQLjmevDpTQLMxtJ2N6NdyBZu9AbrwVvwUW+LbteULUpCdqm0HTelXbhNPe8G68Gb8lFvVfYfSNuxvrTdTWoXbozAzdaDZzfkorOj1oxVxlIMlpSIlpLrt8D4hrQL17z+c3h6hU/wv4Q/utps4+bm+6P/hIcf0JwQ5oQGPBL0eKPTYEXTW+eL/2DKn73J9BTXYANG57hz1cEMviVf/4tf5b/6C5pTQkMIWoAq7hTpOJjtAM4pxKu5vg5vXeUrtI09/Mo/5H+4z+Mp5xULh7cEm2QbRP2tFIKR7WM3fPf/jZ3SWCqLM2l4NxID5zB72HQXv3jj/8mLR5xXNA5v8EbFQEz7PpRfl1+MB/hlAN65qgDn3wTgH13hK7T59bmP+NIx1SHHU84nLOITt3iVz8mNO+lPrjGAnBFqmioNn1mTyk1ta47R6d4MrX7tjrnjYUpdUbv2rVr6YpVfsGG58AG8Ah9eyUN8CX4WfgV+G8LVWPDGb+Zd4cU584CtqSbMKxauxTg+dyn/LkVgA+IR8KHtejeFKRtTmLLpxN6mYVLjYxwXf5x2VofiZcp/lwKk4wGOpYDnoIZPdg/AAbwMfx0+ge9dgZvYjuqKe4HnGnykYo5TvJbG0Vj12JagRhwKa44H95ShkZa5RyLGGdfYvG7aw1TsF6iapPAS29mNS3NmsTQZCmgTzFwgL3upCTgtBTRwvGMAKrgLn4evwin8+afJRcff+8izUGUM63GOOuAs3tJkw7J4kyoNreqrpO6cYLQeFUd7TTpr5YOTLc9RUUogUOVJQ1GYJaFLAW0oTmKyYS46ZooP4S4EON3xQ5zC8/CX4CnM4c1PE8ApexpoYuzqlP3d4S3OJP8ZDK7cKWNaTlqmgDiiHwl1YsE41w1zT4iRTm3DBqxvOUsbMKKDa/EHxagtnta072ejc3DOIh5ojvh8l3tk1JF/AV6FU6jh3U8HwEazLgdCLYSQ+MYiAI2ltomkzttUb0gGHdSUUgsIYjTzLG3mObX4FBRaYtpDVNZrih9TgTeYOBxsEnN1gOCTM8Bsw/ieMc75w9kuAT6A+/AiHGvN/+Gn4KRkiuzpNNDYhDGFndWRpE6SVfm8U5bxnSgVV2jrg6JCKmneqey8VMFgq2+AM/i4L4RUbfSi27lNXZ7R7W9RTcq/q9fk4Xw3AMQd4I5ifAZz8FcVtm9SAom/dyN4lczJQW/kC42ZrHgcCoIf1oVMKkVItmMBi9cOeNHGLqOZk+QqQmrbc5YmYgxELUUN35z2iohstgfLIFmcMV7s4CFmI74L9+EFmGsi+tGnAOD4Yk9gIpo01Y4cA43BWGygMdr4YZekG3OBIUXXNukvJS8tqa06e+lSDCtnqqMFu6hWHXCF+WaYt64m9QBmNxi7Ioy7D+fa1yHw+FMAcPt7SysFLtoG4PXAk7JOA3aAxBRqUiAdU9Yp5lK3HLSRFtOim0sa8euEt08xvKjYjzeJ2GU7YawexrnKI9tmobInjFXCewpwriY9+RR4aaezFhMhGCppKwom0ChrgFlKzyPKkGlTW1YQrE9HJqu8hKGgMc6hVi5QRq0PZxNfrYNgE64utmRv6KKHRpxf6VDUaOvNP5jCEx5q185My/7RKz69UQu2im5k4/eownpxZxNLwiZ1AZTO2ZjWjkU9uaB2HFn6Q3u0JcsSx/qV9hTEApRzeBLDJQXxYmTnq7bdLa3+uqFrxLJ5w1TehnNHx5ECvCh2g2c3hHH5YsfdaSKddztfjQ6imKFGSyFwlLzxEGPp6r5IevVjk1AMx3wMqi1NxDVjLBiPs9tbsCkIY5we5/ML22zrCScFxnNtzsr9Wcc3CnD+pYO+4VXXiDE0oc/vQQ/fDK3oPESJMYXNmJa/DuloJZkcTpcYE8lIH8Dz8DJMiynNC86Mb2lNaaqP/+L7f2fcE/yP7/Lde8xfgSOdMxvOixZf/9p3+M4hT1+F+zApxg9XfUvYjc8qX2lfOOpK2gNRtB4flpFu9FTKCp2XJRgXnX6olp1zyYjTKJSkGmLE2NjUr1bxFM4AeAAHBUFIeSLqXR+NvH/M9fOnfHzOD2vCSyQJKzfgsCh+yi/Mmc35F2fUrw7miW33W9hBD1vpuUojFphIyvg7aTeoymDkIkeW3XLHmguMzbIAJejN6B5MDrhipE2y6SoFRO/AK/AcHHZHNIfiWrEe/C6cr3f/yOvrQKB+zMM55/GQdLDsR+ifr5Fiuu+/y+M78LzOE5dsNuXC3PYvYWd8NXvphLSkJIasrlD2/HOqQ+RjcRdjKTGWYhhVUm4yxlyiGPuMsZR7sMCHUBeTuNWA7if+ifXgc/hovftHXs/DV+Fvwe+f8shzMiMcweFgBly3//vwJfg5AN4450fn1Hd1Rm1aBLu22Dy3y3H2+OqMemkbGZ4jozcDjJf6596xOLpC0eMTHbKnxLxH27uZ/bMTGs2jOaMOY4m87CfQwF0dw53oa1k80JRuz/XgS+8fX3N9Af4qPIMfzKgCp4H5TDGe9GGeFPzSsZz80SlPTxXjgwJmC45njzgt2vbQ4b4OAdUK4/vWhO8d8v6EE8fMUsfakXbPpFJeLs2ubM/qdm/la3WP91uWhxXHjoWhyRUq2iJ/+5mA73zwIIo+LoZ/SgvIRjAd1IMvvn98PfgOvAJfhhm8scAKVWDuaRaK8aQ9f7vuPDH6Bj47ZXau7rqYJ66mTDwEDU6lLbCjCK0qTXyl5mnDoeNRxanj3FJbaksTk0faXxHxLrssgPkWB9LnA/MFleXcJozzjwsUvUG0X/QCve51qkMDXp9mtcyOy3rwBfdvVJK7D6/ACSzg3RoruIq5UDeESfEmVclDxnniU82vxMLtceD0hGZWzBNPMM/jSPne2OVatiTKUpY5vY7gc0LdUAWeWM5tH+O2I66AOWw9xT2BuyRVLGdoDHUsVRXOo/c+ZdRXvFfnxWyIV4upFLCl9eAL7h8Zv0QH8Ry8pA2cHzQpGesctVA37ZtklBTgHjyvdSeKY/RZw/kJMk0Y25cSNRWSigQtlULPTw+kzuJPeYEkXjQRpoGZobYsLF79pyd1dMRHInbgFTZqNLhDqiIsTNpoex2WLcy0/X6rHcdMMQvFSd5dWA++4P7xv89deACnmr36uGlL69bRCL6BSZsS6c0TU2TKK5gtWCzgAOOwQcurqk9j8whvziZSMLcq5hbuwBEsYjopUBkqw1yYBGpLA97SRElEmx5MCInBY5vgLk94iKqSWmhIGmkJ4Bi9m4L645J68LyY4wsFYBfUg5feP/6gWWm58IEmKQM89hq7KsZNaKtP5TxxrUZZVkNmMJtjbKrGxLNEbHPJxhqy7lAmbC32ZqeF6lTaknRWcYaFpfLUBh/rwaQycCCJmW15Kstv6jRHyJFry2C1ahkkIW0LO75s61+owxK1y3XqweX9m5YLM2DPFeOjn/iiqCKJ+yKXF8t5Yl/kNsqaSCryxPq5xWTFIaP8KSW0RYxqupaUf0RcTNSSdJZGcKYdYA6kdtrtmyBckfKXwqk0pHpUHlwWaffjNRBYFPUDWa8e3Lt/o0R0CdisKDM89cX0pvRHEfM8ca4t0s2Xx4kgo91MPQJ/0c9MQYq0co8MBh7bz1fio0UUHLR4aAIOvOmoYO6kwlEVODSSTliWtOtH6sPkrtctF9ZtJ9GIerBskvhdVS5cFNv9s1BU0AbdUgdK4FG+dRnjFmDTzniRMdZO1QhzMK355vigbdkpz9P6qjUGE5J2qAcXmwJ20cZUiAD0z+pGMx6xkzJkmEf40Hr4qZfVg2XzF9YOyoV5BjzVkUJngKf8lgNYwKECEHrCNDrWZzMlflS3yBhr/InyoUgBc/lKT4pxVrrC6g1YwcceK3BmNxZcAtz3j5EIpqguh9H6wc011YN75cKDLpFDxuwkrPQmUwW4KTbj9mZTwBwLq4aQMUZbHm1rylJ46dzR0dua2n3RYCWZsiHROeywyJGR7mXKlpryyCiouY56sFkBWEnkEB/raeh/Sw4162KeuAxMQpEkzy5alMY5wamMsWKKrtW2WpEWNnReZWONKWjrdsKZarpFjqCslq773PLmEhM448Pc3+FKr1+94vv/rfw4tEcu+lKTBe4kZSdijBrykwv9vbCMPcLQTygBjzVckSLPRVGslqdunwJ4oegtFOYb4SwxNgWLCmD7T9kVjTv5YDgpo0XBmN34Z/rEHp0sgyz7lngsrm4lvMm2Mr1zNOJYJ5cuxuQxwMGJq/TP5emlb8fsQBZviK4t8hFL+zbhtlpwaRSxQRWfeETjuauPsdGxsBVdO7nmP4xvzSoT29pRl7kGqz+k26B3Oy0YNV+SXbbQas1ctC/GarskRdFpKczVAF1ZXnLcpaMuzVe6lZ2g/1ndcvOVgRG3sdUAY1bKD6achijMPdMxV4muKVorSpiDHituH7rSTs7n/4y5DhRXo4FVBN4vO/zbAcxhENzGbHCzU/98Mcx5e7a31kWjw9FCe/zNeYyQjZsWb1uc7U33pN4Mji6hCLhivqfa9Ss6xLg031AgfesA/l99m9fgvnaF9JoE6bYKmkGNK3aPbHB96w3+DnxFm4hs0drLsk7U8kf/N/CvwQNtllna0rjq61sH8L80HAuvwH1tvBy2ChqWSCaYTaGN19sTvlfzFD6n+iKTbvtayfrfe9ueWh6GJFoxLdr7V72a5ZpvHcCPDzma0wTO4EgbLyedxstO81n57LYBOBzyfsOhUKsW1J1BB5vr/tz8RyqOFylQP9Tvst2JALsC5lsH8PyQ40DV4ANzYa4dedNiKNR1s+x2wwbR7q4/4cTxqEk4LWDebfisuo36JXLiWFjOtLrlNWh3K1rRS4xvHcDNlFnNmWBBAl5SWaL3oPOfnvbr5pdjVnEaeBJSYjuLEkyLLsWhKccadmOphZkOPgVdalj2QpSmfOsADhMWE2ZBu4+EEJI4wKTAuCoC4xwQbWXBltpxbjkXJtKxxabo9e7tyhlgb6gNlSbUpMh+l/FaqzVwewGu8BW1Zx7pTpQDJUjb8tsUTW6+GDXbMn3mLbXlXJiGdggxFAoUrtPS3wE4Nk02UZG2OOzlk7fRs7i95QCLo3E0jtrjnM7SR3uS1p4qtS2nJ5OwtQVHgOvArLBFijZUV9QtSl8dAY5d0E0hM0w3HS2DpIeB6m/A1+HfhJcGUq4sOxH+x3f5+VO+Ds9rYNI7zPXOYWPrtf8bYMx6fuOAX5jzNR0PdsuON+X1f7EERxMJJoU6GkTEWBvVolVlb5lh3tKCg6Wx1IbaMDdJ+9sUCc5KC46hKGCk3IVOS4TCqdBNfUs7Kd4iXf2RjnT/LLysJy3XDcHLh/vde3x8DoGvwgsa67vBk91G5Pe/HbOe7xwym0NXbtiuuDkGO2IJDh9oQvJ4cY4vdoqLDuoH9Zl2F/ofsekn8lkuhIlhQcffUtSjytFyp++p6NiE7Rqx/lodgKVoceEp/CP4FfjrquZaTtj2AvH5K/ywpn7M34K/SsoYDAdIN448I1/0/wveW289T1/lX5xBzc8N5IaHr0XMOQdHsIkDuJFifj20pBm5jzwUv9e2FhwRsvhAbalCIuIw3bhJihY3p6nTFFIZgiSYjfTf3aXuOjmeGn4bPoGvwl+CFzTRczBIuHBEeImHc37/lGfwZR0cXzVDOvaKfNHvwe+suZ771K/y/XcBlsoN996JpBhoE2toYxOznNEOS5TJc6Id5GEXLjrWo+LEWGNpPDU4WAwsIRROu+1vM+0oW37z/MBN9kqHnSArwPfgFJ7Cq/Ai3Ie7g7ncmI09v8sjzw9mzOAEXoIHxURueaAce5V80f/DOuuZwHM8vsMb5wBzOFWM7wymTXPAEvm4vcFpZ2ut0VZRjkiP2MlmLd6DIpbGSiHOjdnUHN90hRYmhTnmvhzp1iKDNj+b7t5hi79lWGwQ+HN9RsfFMy0FXbEwhfuczKgCbyxYwBmcFhhvo/7a44v+i3XWcwDP86PzpGQYdWh7csP5dBvZ1jNzdxC8pBGuxqSW5vw40nBpj5JhMwvOzN0RWqERHMr4Lv1kWX84xLR830G3j6yqZ1a8UstTlW+qJPOZ+sZ7xZPKTJLhiNOAFd6tk+jrTH31ncLOxid8+nzRb128HhUcru/y0Wn6iT254YPC6FtVSIMoW2sk727AhvTtrWKZTvgsmckfXYZWeNRXx/3YQ2OUxLDrbHtN11IwrgXT6c8dATDwLniYwxzO4RzuQqTKSC5gAofMZ1QBK3zQ4JWobFbcvJm87FK+6JXrKahLn54m3p+McXzzYtP8VF/QpJuh1OwieElEoI1pRxPS09FBrkq2tWCU59+HdhNtTIqKm8EBrw2RTOEDpG3IKo2Y7mFdLm3ZeVjYwVw11o/oznceMve4CgMfNym/utA/d/ILMR7gpXzRy9eDsgLcgbs8O2Va1L0zzIdwGGemTBuwROHeoMShkUc7P+ISY3KH5ZZeWqO8mFTxQYeXTNuzvvK5FGPdQfuu00DwYFY9dyhctEt+OJDdnucfpmyhzUJzfsJjr29l8S0bXBfwRS9ZT26tmMIdZucch5ZboMz3Nio3nIOsYHCGoDT4kUA9MiXEp9Xsui1S8th/kbWIrMBxDGLodWUQIWcvnXy+9M23xPiSMOiRPqM+YMXkUN3gXFrZJwXGzUaMpJfyRS9ZT0lPe8TpScuRlbMHeUmlaKDoNuy62iWNTWNFYjoxFzuJs8oR+RhRx7O4SVNSXpa0ZJQ0K1LAHDQ+D9IepkMXpcsq5EVCvClBUIzDhDoyKwDw1Lc59GbTeORivugw1IcuaEOaGWdNm+Ps5fQ7/tm0DjMegq3yM3vb5j12qUId5UZD2oxDSEWOZMSqFl/W+5oynWDa/aI04tJRQ2eTXusg86SQVu/nwSYwpW6wLjlqIzwLuxGIvoAvul0PS+ZNz0/akp/pniO/8JDnGyaCkzbhl6YcqmK/69prxPqtpx2+Km9al9sjL+rwMgHw4jE/C8/HQ3m1vBuL1fldbzd8mOueVJ92syqdEY4KJjSCde3mcRw2TA6szxedn+zwhZMps0XrqEsiUjnC1hw0TELC2Ek7uAAdzcheXv1BYLagspxpzSAoZZUsIzIq35MnFQ9DOrlNB30jq3L4pkhccKUAA8/ocvN1Rzx9QyOtERs4CVsJRK/DF71kPYrxYsGsm6RMh4cps5g1DOmM54Ly1ii0Hd3Y/BMk8VWFgBVmhqrkJCPBHAolwZaWzLR9Vb7bcWdX9NyUYE+uB2BKfuaeBUcjDljbYVY4DdtsVWvzRZdWnyUzDpjNl1Du3aloAjVJTNDpcIOVVhrHFF66lLfJL1zJr9PQ2nFJSBaKoDe+sAvLufZVHVzYh7W0h/c6AAZ+7Tvj6q9j68G/cTCS/3n1vLKHZwNi+P+pS0WkZNMBMUl+LDLuiE4omZy71r3UFMwNJV+VJ/GC5ixVUkBStsT4gGKh0Gm4Oy3qvq7Lbmq24nPdDuDR9deR11XzP4vFu3TYzfnIyiSVmgizUYGqkIXNdKTY9pgb9D2Ix5t0+NHkVzCdU03suWkkVZAoCONCn0T35gAeW38de43mf97sMOpSvj4aa1KYUm58USI7Wxxes03bAZdRzk6UtbzMaCQ6IxO0dy7X+XsjoD16hpsBeGz9dfzHj+R/Hp8nCxZRqkEDTaCKCSywjiaoMJ1TITE9eg7Jqnq8HL6gDwiZb0u0V0Rr/rmvqjxKuaLCX7ZWXTvAY+uvm3z8CP7nzVpngqrJpZKwWnCUjIviYVlirlGOzPLI3SMVyp/elvBUjjDkNhrtufFFErQ8pmdSlbK16toBHlt/HV8uHMX/vEGALkV3RJREiSlopxwdMXOZPLZ+ix+kAHpMKIk8UtE1ygtquttwxNhphrIZ1IBzjGF3IIGxGcBj6q8bHJBG8T9vdsoWrTFEuebEZuVxhhClH6P5Zo89OG9fwHNjtNQTpD0TG9PJLEYqvEY6Rlxy+ZZGfL0Aj62/bnQCXp//eeM4KzfQVJbgMQbUjlMFIm6TpcfWlZje7NBSV6IsEVmumWIbjiloUzQX9OzYdo8L1wjw2PrrpimONfmfNyzKklrgnEkSzT5QWYQW40YShyzqsRmMXbvVxKtGuYyMKaU1ugenLDm5Ily4iT14fP11Mx+xJv+zZ3MvnfdFqxU3a1W/FTB4m3Qfsyc1XUcdVhDeUDZXSFHHLQj/Y5jtC7ZqM0CXGwB4bP11i3LhOvzPGygYtiUBiwQV/4wFO0majijGsafHyRLu0yG6q35cL1rOpVxr2s5cM2jJYMCdc10Aj6q/blRpWJ//+dmm5psMl0KA2+AFRx9jMe2WbC4jQxnikd4DU8TwUjRVacgdlhmr3bpddzuJ9zXqr2xnxJfzP29RexdtjDVZqzkqa6PyvcojGrfkXiJ8SEtml/nYskicv0ivlxbqjemwUjMw5evdg8fUX9nOiC/lf94Q2i7MURk9nW1MSj5j8eAyV6y5CN2S6qbnw3vdA1Iwq+XOSCl663udN3IzLnrt+us25cI1+Z83SXQUldqQq0b5XOT17bGpLd6ssN1VMPf8c+jG8L3NeCnMdF+Ra3fRa9dft39/LuZ/3vwHoHrqGmQFafmiQw6eyzMxS05K4bL9uA+SKUQzCnSDkqOGokXyJvbgJ/BHI+qvY69//4rl20NsmK2ou2dTsyIALv/91/8n3P2Aao71WFGi8KKv1fRC5+J67Q/507/E/SOshqN5TsmYIjVt+kcjAx98iz/4SaojbIV1rexE7/C29HcYD/DX4a0rBOF5VTu7omsb11L/AWcVlcVZHSsqGuXLLp9ha8I//w3Mv+T4Ew7nTBsmgapoCrNFObIcN4pf/Ob/mrvHTGqqgAupL8qWjWPS9m/31jAe4DjA+4+uCoQoT/zOzlrNd3qd4SdphFxsUvYwGWbTWtISc3wNOWH+kHBMfc6kpmpwPgHWwqaSUG2ZWWheYOGQGaHB+eQ/kn6b3pOgLV+ODSn94wDvr8Bvb70/LLuiPPEr8OGVWfDmr45PZyccEmsVXZGe1pRNX9SU5+AVQkNTIVPCHF/jGmyDC9j4R9LfWcQvfiETmgMMUCMN1uNCakkweZsowdYobiMSlnKA93u7NzTXlSfe+SVbfnPQXmg9LpYAQxpwEtONyEyaueWM4FPjjyjG3uOaFmBTWDNgBXGEiQpsaWhnAqIijB07Dlsy3fUGeP989xbWkyf+FF2SNEtT1E0f4DYYVlxFlbaSMPIRMk/3iMU5pME2SIWJvjckciebkQuIRRyhUvkHg/iUljG5kzVog5hV7vIlCuBrmlhvgPfNHQM8lCf+FEGsYbMIBC0qC9a0uuy2wLXVbLBaP5kjHokCRxapkQyzI4QEcwgYHRZBp+XEFTqXFuNVzMtjXLJgX4gAid24Hjwc4N3dtVSe+NNiwTrzH4WVUOlDobUqr1FuAgYllc8pmzoVrELRHSIW8ViPxNy4xwjBpyR55I6J220qQTZYR4guvUICJiSpr9gFFle4RcF/OMB7BRiX8sSfhpNSO3lvEZCQfLUVTKT78Ek1LRLhWN+yLyTnp8qWUZ46b6vxdRGXfHVqx3eI75YaLa4iNNiK4NOW7wPW6lhbSOF9/M9qw8e/aoB3d156qTzxp8pXx5BKAsYSTOIIiPkp68GmTq7sZtvyzBQaRLNxIZ+paozHWoLFeExIhRBrWitHCAHrCF7/thhD8JhYz84wg93QRV88wLuLY8zF8sQ36qF1J455bOlgnELfshKVxYOXKVuKx0jaj22sczTQqPqtV/XDgpswmGTWWMSDw3ssyUunLLrVPGjYRsH5ggHeHSWiV8kT33ycFSfMgkoOK8apCye0J6VW6GOYvffgU9RWsukEi2kUV2nl4dOYUzRik9p7bcA4ggdJ53LxKcEe17B1R8eqAd7dOepV8sTXf5lhejoL85hUdhDdknPtKHFhljOT+bdq0hxbm35p2nc8+Ja1Iw+tJykgp0EWuAAZYwMVwac5KzYMslhvgHdHRrxKnvhTYcfKsxTxtTETkjHO7rr3zjoV25lAQHrqpV7bTiy2aXMmUhTBnKS91jhtR3GEoF0oLnWhWNnYgtcc4N0FxlcgT7yz3TgNIKkscx9jtV1ZKpWW+Ub1tc1eOv5ucdgpx+FJy9pgbLE7xDyXb/f+hLHVGeitHOi6A7ybo3sF8sS7w7cgdk0nJaOn3hLj3uyD0Zp5pazFIUXUpuTTU18d1EPkDoX8SkmWTnVIozEdbTcZjoqxhNHf1JrSS/AcvHjZ/SMHhL/7i5z+POsTUh/8BvNfYMTA8n+yU/MlTZxSJDRStqvEuLQKWwDctMTQogUDyQRoTQG5Kc6oQRE1yV1jCA7ri7jdZyK0sYTRjCR0Hnnd+y7nHxNgTULqw+8wj0mQKxpYvhjm9uSUxg+TTy7s2GtLUGcywhXSKZN275GsqlclX90J6bRI1aouxmgL7Q0Nen5ziM80SqMIo8cSOo+8XplT/5DHNWsSUr/6lLN/QQ3rDyzLruEW5enpf7KqZoShEduuSFOV7DLX7Ye+GmXb6/hnNNqKsVXuMDFpb9Y9eH3C6NGEzuOuI3gpMH/I6e+zDiH1fXi15t3vA1czsLws0TGEtmPEJdiiFPwlwKbgLHAFk4P6ZyPdymYYHGE0dutsChQBl2JcBFlrEkY/N5bQeXQ18gjunuMfMfsBlxJSx3niO485fwO4fGD5T/+3fPQqkneWVdwnw/3bMPkW9Wbqg+iC765Zk+xcT98ibKZc2EdgHcLoF8cSOo/Oc8fS+OyEULF4g4sJqXVcmfMfsc7A8v1/yfGXmL9I6Fn5pRwZhsPv0TxFNlAfZCvG+Oohi82UC5f/2IsJo0cTOm9YrDoKhFPEUr/LBYTUNht9zelHXDqwfPCIw4owp3mOcIQcLttWXFe3VZ/j5H3cIc0G6oPbCR+6Y2xF2EC5cGUm6wKC5tGEzhsWqw5hNidUiKX5gFWE1GXh4/Qplw4sVzOmx9QxU78g3EF6wnZlEN4FzJ1QPSLEZz1KfXC7vd8ssGdIbNUYpVx4UapyFUHzJoTOo1McSkeNn1M5MDQfs4qQuhhX5vQZFw8suwWTcyYTgioISk2YdmkhehG4PkE7w51inyAGGaU+uCXADabGzJR1fn3lwkty0asIo8cROm9Vy1g0yDxxtPvHDAmpu+PKnM8Ix1wwsGw91YJqhteaWgjYBmmQiebmSpwKKzE19hx7jkzSWOm66oPbzZ8Yj6kxVSpYjVAuvLzYMCRo3oTQecOOjjgi3NQ4l9K5/hOGhNTdcWVOTrlgYNkEXINbpCkBRyqhp+LdRB3g0OU6rMfW2HPCFFMV9nSp+uB2woepdbLBuJQyaw/ZFysXrlXwHxI0b0LovEkiOpXGA1Ijagf+KUNC6rKNa9bQnLFqYNkEnMc1uJrg2u64ELPBHpkgWbmwKpJoDhMwNbbGzAp7Yg31wS2T5rGtzit59PrKhesWG550CZpHEzpv2NGRaxlNjbMqpmEIzygJqQfjypycs2pg2cS2RY9r8HUqkqdEgKTWtWTKoRvOBPDYBltja2SO0RGjy9UHtxwRjA11ujbKF+ti5cIR9eCnxUg6owidtyoU5tK4NLji5Q3HCtiyF2IqLGYsHViOXTXOYxucDqG0HyttqYAKqYo3KTY1ekyDXRAm2AWh9JmsVh/ccg9WJ2E8YjG201sPq5ULxxX8n3XLXuMInbft2mk80rRGjCGctJ8/GFdmEQ9Ug4FlE1ll1Y7jtiraqm5Fe04VV8lvSVBL8hiPrfFVd8+7QH3Qbu2ipTVi8cvSGivc9cj8yvH11YMHdNSERtuOslM97feYFOPKzGcsI4zW0YGAbTAOaxCnxdfiYUmVWslxiIblCeAYr9VYR1gM7GmoPrilunSxxeT3DN/2eBQ9H11+nk1adn6VK71+5+Jfct4/el10/7KBZfNryUunWSCPxPECk1rdOv1WVSrQmpC+Tl46YD3ikQYcpunSQgzVB2VHFhxHVGKDgMEY5GLlQnP7FMDzw7IacAWnO6sBr12u+XanW2AO0wQ8pknnFhsL7KYIqhkEPmEXFkwaN5KQphbkUmG72wgw7WSm9RiL9QT925hkjiVIIhphFS9HKI6/8QAjlpXqg9W2C0apyaVDwKQwrwLY3j6ADR13ZyUNByQXHQu6RY09Hu6zMqXRaNZGS/KEJs0cJEe9VH1QdvBSJv9h09eiRmy0V2uJcqHcShcdvbSNg5fxkenkVprXM9rDVnX24/y9MVtncvbKY706anNl3ASll9a43UiacVquXGhvq4s2FP62NGKfQLIQYu9q1WmdMfmUrDGt8eDS0cXozH/fjmUH6Jruvm50hBDSaEU/2Ru2LEN/dl006TSc/g7tfJERxGMsgDUEr104pfWH9lQaN+M4KWQjwZbVc2rZVNHsyHal23wZtIs2JJqtIc/WLXXRFCpJkfE9jvWlfFbsNQ9pP5ZBS0zKh4R0aMFj1IjTcTnvi0Zz2rt7NdvQb2mgbju1plsH8MmbnEk7KbK0b+wC2iy3aX3szW8xeZvDwET6hWZYwqTXSSG+wMETKum0Dq/q+x62gt2ua2ppAo309TRk9TPazfV3qL9H8z7uhGqGqxNVg/FKx0HBl9OVUORn8Q8Jx9gFttGQUDr3tzcXX9xGgN0EpzN9mdZ3GATtPhL+CjxFDmkeEU6x56kqZRusLzALXVqkCN7zMEcqwjmywDQ6OhyUe0Xao1Qpyncrg6wKp9XfWDsaZplElvQ/b3sdweeghorwBDlHzgk1JmMc/wiERICVy2VJFdMjFuLQSp3S0W3+sngt2njwNgLssFGVQdJ0tu0KH4ky1LW4yrbkuaA6Iy9oz/qEMMXMMDWyIHhsAyFZc2peV9hc7kiKvfULxCl9iddfRK1f8kk9qvbdOoBtOg7ZkOZ5MsGrSHsokgLXUp9y88smniwWyuFSIRVmjplga3yD8Uij5QS1ZiM4U3Qw5QlSm2bXjFe6jzzBFtpg+/YBbLAWG7OPynNjlCw65fukGNdkJRf7yM1fOxVzbxOJVocFoYIaGwH22mIQkrvu1E2nGuebxIgW9U9TSiukPGU+Lt++c3DJPKhyhEEbXCQLUpae2exiKy6tMPe9mDRBFCEMTWrtwxN8qvuGnt6MoihKWS5NSyBhbH8StXoAz8PLOrRgLtOT/+4vcu+7vDLnqNvztOq7fmd8sMmY9Xzn1zj8Dq8+XVdu2Nv0IIySgEdQo3xVHps3Q5i3fLFsV4aiqzAiBhbgMDEd1uh8qZZ+lwhjkgokkOIv4xNJmyncdfUUzgB4oFMBtiu71Xumpz/P+cfUP+SlwFExwWW62r7b+LSPxqxn/gvMZ5z9C16t15UbNlq+jbGJtco7p8wbYlL4alSyfWdeuu0j7JA3JFNuVAwtst7F7FhWBbPFNKIUORndWtLraFLmMu7KFVDDOzqkeaiN33YAW/r76wR4XDN/yN1z7hejPau06EddkS/6XThfcz1fI/4K736fO48vlxt2PXJYFaeUkFS8U15XE3428xdtn2kc8GQlf1vkIaNRRnOMvLTWrZbElEHeLWi1o0dlKPAh1MVgbbVquPJ5+Cr8LU5/H/+I2QlHIU2ClXM9G8v7Rr7oc/hozfUUgsPnb3D+I+7WF8kNO92GY0SNvuxiE+2Bt8prVJTkzE64sfOstxuwfxUUoyk8VjcTlsqe2qITSFoSj6Epd4KsT6BZOWmtgE3hBfir8IzZDwgV4ZTZvD8VvPHERo8v+vL1DASHTz/i9OlKueHDjK5Rnx/JB1Vb1ioXdBra16dmt7dgik10yA/FwJSVY6XjA3oy4SqM2frqDPPSRMex9qs3XQtoWxMj7/Er8GWYsXgjaVz4OYumP2+9kbxvny/6kvWsEBw+fcb5bInc8APdhpOSs01tEqIkoiZjbAqKMruLbJYddHuHFRIyJcbdEdbl2sVLaySygunutBg96Y2/JjKRCdyHV+AEFtTvIpbKIXOamknYSiB6KV/0JetZITgcjjk5ZdaskBtWO86UF0ap6ozGXJk2WNiRUlCPFir66lzdm/SLSuK7EUdPz8f1z29Skq6F1fXg8+5UVR6bszncP4Tn4KUkkdJ8UFCY1zR1i8RmL/qQL3rlei4THG7OODlnKko4oI01kd3CaM08Ia18kC3GNoVaO9iDh+hWxSyTXFABXoau7Q6q9OxYg/OVEMw6jdbtSrJ9cBcewGmaZmg+bvkUnUUaGr+ZfnMH45Ivevl61hMcXsxYLFTu1hTm2zViCp7u0o5l+2PSUh9bDj6FgYypufBDhqK2+oXkiuHFHR3zfj+9PtA8oR0xnqX8qn+sx3bFODSbbF0X8EUvWQ8jBIcjo5bRmLOljDNtcqNtOe756h3l0VhKa9hDd2l1eqmsnh0MNMT/Cqnx6BInumhLT8luljzQ53RiJeA/0dxe5NK0o2fA1+GLXr6eNQWHNUOJssQaTRlGpLHKL9fD+IrQzTOMZS9fNQD4AnRNVxvTdjC+fJdcDDWQcyB00B0t9BDwTxXgaAfzDZ/DBXzRnfWMFRwuNqocOmX6OKNkY63h5n/fFcB28McVHqnXZVI27K0i4rDLNE9lDKV/rT+udVbD8dFFu2GGZ8mOt0kAXcoX3ZkIWVtw+MNf5NjR2FbivROHmhV1/pj2egv/fMGIOWTIWrV3Av8N9imV9IWml36H6cUjqEWNv9aNc+veb2sH46PRaHSuMBxvtW+twxctq0z+QsHhux8Q7rCY4Ct8lqsx7c6Sy0dl5T89rIeEuZKoVctIk1hNpfavER6yyH1Vvm3MbsUHy4ab4hWr/OZPcsRBphnaV65/ZcdYPNNwsjN/djlf9NqCw9U5ExCPcdhKxUgLSmfROpLp4WSUr8ojdwbncbvCf+a/YzRaEc6QOvXcGO256TXc5Lab9POvB+AWY7PigWYjzhifbovuunzRawsO24ZqQQAqguBtmpmPB7ysXJfyDDaV/aPGillgz1MdQg4u5MYaEtBNNHFjkRlSpd65lp4hd2AVPTfbV7FGpyIOfmNc/XVsPfg7vzaS/3nkvLL593ANLvMuRMGpQIhiF7kUEW9QDpAUbTWYBcbp4WpacHHY1aacqQyjGZS9HI3yCBT9kUZJhVOD+zUDvEH9ddR11fzPcTDQ5TlgB0KwqdXSavk9BC0pKp0WmcuowSw07VXmXC5guzSa4p0UvRw2lbDiYUx0ExJJRzWzi6Gm8cnEkfXXsdcG/M/jAJa0+bmCgdmQ9CYlNlSYZOKixmRsgiFxkrmW4l3KdFKv1DM8tk6WxPYJZhUUzcd8Kdtgrw/gkfXXDT7+avmfVak32qhtkg6NVdUS5wgkru1YzIkSduTW1FDwVWV3JQVJVuieTc0y4iDpFwc7/BvSalvKdQM8sv662cevz/+8sQVnjVAT0W2wLllw1JiMhJRxgDjCjLQsOzSFSgZqx7lAW1JW0e03yAD3asC+GD3NbQhbe+mN5GXH1F83KDOM4n/e5JIuH4NpdQARrFPBVptUNcjj4cVMcFSRTE2NpR1LEYbYMmfWpXgP9KejaPsLUhuvLCsVXznAG9dfx9SR1ud/3hZdCLHb1GMdPqRJgqDmm76mHbvOXDtiO2QPUcKo/TWkQ0i2JFXpBoo7vij1i1Lp3ADAo+qvG3V0rM//vFnnTE4hxd5Ka/Cor5YEdsLVJyKtDgVoHgtW11pWSjolPNMnrlrVj9Fv2Qn60twMwKPqr+N/wvr8z5tZcDsDrv06tkqyzESM85Ycv6XBWA2birlNCXrI6VbD2lx2L0vQO0QVTVVLH4SE67fgsfVXv8n7sz7/85Z7cMtbE6f088wSaR4kCkCm10s6pKbJhfqiUNGLq+0gLWC6eUAZFPnLjwqtKd8EwGvWX59t7iPW4X/eAN1svgRVSY990YZg06BD1ohLMtyFTI4pKTJsS9xREq9EOaPWiO2gpms7397x6nQJkbh+Fz2q/rqRROX6/M8bJrqlVW4l6JEptKeUFuMYUbtCQ7CIttpGc6MY93x1r1vgAnRXvY5cvwWPqb9uWQm+lP95QxdNMeWhOq1x0Db55C7GcUv2ZUuN6n8iKzsvOxibC//Yfs9Na8r2Rlz02vXXDT57FP/zJi66/EJSmsJKa8QxnoqW3VLQ+jZVUtJwJ8PNX1NQCwfNgdhhHD9on7PdRdrdGPF28rJr1F+3LBdeyv+8yYfLoMYet1vX4upNAjVvwOUWnlNXJXlkzk5Il6kqeoiL0C07qno+/CYBXq/+utlnsz7/Mzvy0tmI4zm4ag23PRN3t/CWryoUVJGm+5+K8RJ0V8Hc88/XHUX/HfiAq7t+BH+x6v8t438enWmdJwFA6ZINriLGKv/95f8lT9/FnyA1NMVEvQyaXuu+gz36f/DD73E4pwqpLcvm/o0Vle78n//+L/NPvoefp1pTJye6e4A/D082FERa5/opeH9zpvh13cNm19/4v/LDe5xMWTi8I0Ta0qKlK27AS/v3/r+/x/2GO9K2c7kVMonDpq7//jc5PKCxeNPpFVzaRr01wF8C4Pu76hXuX18H4LduTr79guuFD3n5BHfI+ZRFhY8w29TYhbbLi/bvBdqKE4fUgg1pBKnV3FEaCWOWyA+m3WpORZr/j+9TKJtW8yBTF2/ZEODI9/QavHkVdGFp/Pjn4Q+u5hXapsP5sOH+OXXA1LiKuqJxiMNbhTkbdJTCy4llEt6NnqRT4dhg1V3nbdrm6dYMecA1yTOL4PWTE9L5VzPFlLBCvlG58AhehnN4uHsAYinyJ+AZ/NkVvELbfOBUuOO5syBIEtiqHU1k9XeISX5bsimrkUUhnGDxourN8SgUsCZVtKyGbyGzHXdjOhsAvOAswSRyIBddRdEZWP6GZhNK/yjwew9ehBo+3jEADu7Ay2n8mDc+TS7awUHg0OMzR0LABhqLD4hJEh/BEGyBdGlSJoXYXtr+3HS4ijzVpgi0paWXtdruGTknXBz+11qT1Q2inxaTzQCO46P3lfLpyS4fou2PH/PupwZgCxNhGlj4IvUuWEsTkqMWm6i4xCSMc9N1RDQoCVcuGItJ/MRWefais+3synowi/dESgJjkilnWnBTGvRWmaw8oR15257t7CHmCf8HOn7cwI8+NQBXMBEmAa8PMRemrNCEhLGEhDQKcGZWS319BX9PFBEwGTbRBhLbDcaV3drFcDqk5kCTd2JF1Wp0HraqBx8U0wwBTnbpCadwBA/gTH/CDrcCs93LV8E0YlmmcyQRQnjBa8JESmGUfIjK/7fkaDJpmD2QptFNVJU1bbtIAjjWQizepOKptRjbzR9Kag6xZmMLLjHOtcLT3Tx9o/0EcTT1XN3E45u24AiwEypDJXihKjQxjLprEwcmRKclaDNZCVqr/V8mYWyFADbusiY5hvgFoU2vio49RgJLn5OsReRFN6tabeetiiy0V7KFHT3HyZLx491u95sn4K1QQSPKM9hNT0wMVvAWbzDSVdrKw4zRjZMyJIHkfq1VAVCDl/bUhNKlGq0zGr05+YAceXVPCttVk0oqjVwMPt+BBefx4yPtGVkUsqY3CHDPiCM5ngupUwCdbkpd8kbPrCWHhkmtIKLEetF2499eS1jZlIPGYnlcPXeM2KD9vLS0bW3ktYNqUllpKLn5ZrsxlIzxvDu5eHxzGLctkZLEY4PgSOg2IUVVcUONzUDBEpRaMoXNmUc0tFZrTZquiLyKxrSm3DvIW9Fil+AkhXu5PhEPx9mUNwqypDvZWdKlhIJQY7vn2OsnmBeOWnYZ0m1iwbbw1U60by5om47iHRV6fOgzjMf/DAZrlP40Z7syxpLK0lJ0gqaAK1c2KQKu7tabTXkLFz0sCftuwX++MyNeNn68k5Buq23YQhUh0SNTJa1ioQ0p4nUG2y0XilF1JqODqdImloPS4Bp111DEWT0jJjVv95uX9BBV7eB3bUWcu0acSVM23YZdd8R8UbQUxJ9wdu3oMuhdt929ME+mh6JXJ8di2RxbTi6TbrDquqV4aUKR2iwT6aZbyOwEXN3DUsWr8Hn4EhwNyHuXHh7/pdaUjtR7vnDh/d8c9xD/s5f501eQ1+CuDiCvGhk1AN/4Tf74RfxPwD3toLarR0zNtsnPzmS64KIRk861dMWCU8ArasG9T9H0ZBpsDGnjtAOM2+/LuIb2iIUGXNgl5ZmKD/Tw8TlaAuihaFP5yrw18v4x1898zIdP+DDAX1bM3GAMvPgRP/cJn3zCW013nrhHkrITyvYuwOUkcHuKlRSW5C6rzIdY4ppnF7J8aAJbQepgbJYBjCY9usGXDKQxq7RZfh9eg5d1UHMVATRaD/4BHK93/1iAgYZ/+jqPn8Dn4UExmWrpa3+ZOK6MvM3bjwfzxNWA2dhs8+51XHSPJiaAhGSpWevEs5xHLXcEGFXYiCONySH3fPWq93JIsBiSWvWyc3CAN+EcXoT7rCSANloPPoa31rt/5PUA/gp8Q/jDD3hyrjzlR8VkanfOvB1XPubt17vzxAfdSVbD1pzAnfgyF3ycadOTOTXhpEUoLC1HZyNGW3dtmjeXgr2r56JNmRwdNNWaQVBddd6rh4MhviEB9EFRD/7RGvePvCbwAL4Mx/D6M541hHO4D3e7g6PafdcZVw689z7NGTwo5om7A8sPhccT6qKcl9NJl9aM/9kX+e59Hh1yPqGuCCZxuITcsmNaJ5F7d0q6J3H48TO1/+M57085q2icdu2U+W36Ldllz9Agiv4YGljoEN908EzvDOrBF98/vtJwCC/BF2AG75xxEmjmMIcjxbjoaxqOK3/4hPOZzhMPBpYPG44CM0dTVm1LjLtUWWVz1Bcf8tEx0zs8O2A2YVHRxKYOiy/aOVoAaMu0i7ubu43njjmd4ibMHU1sIDHaQNKrZND/FZYdk54oCXetjq7E7IVl9eAL7t+oHnwXXtLx44czzoRFHBztYVwtH1d+NOMkupZ5MTM+gUmq90X+Bh9zjRlmaQ+m7YMqUL/veemcecAtOJ0yq1JnVlN27di2E0+Klp1tAJ4KRw1eMI7aJjsO3R8kPSI3fUFXnIOfdQe86sIIVtWDL7h//Ok6vj8vwDk08NEcI8zz7OhBy+WwalzZeZ4+0XniRfst9pAJqQHDGLzVQ2pheZnnv1OWhwO43/AgcvAEXEVVpa4db9sGvNK8wjaENHkfFQ4Ci5i7dqnQlPoLQrHXZDvO3BIXZbJOBrOaEbML6sFL798I4FhKihjHMsPjBUZYCMFr6nvaArxqXPn4lCa+cHfSa2cP27g3Z3ziYTRrcbQNGLQmGF3F3cBdzzzX7AILx0IB9rbwn9kx2G1FW3Inic+ZLIsVvKR8Zwfj0l1fkqo8LWY1M3IX14OX3r9RKTIO+d9XzAI8qRPGPn/4NC2n6o4rN8XJ82TOIvuVA8zLKUHRFgBCetlDZlqR1gLKjS39xoE7Bt8UvA6BxuEDjU3tFsEijgA+615tmZkXKqiEENrh41iLDDZNq4pKTWR3LZfnos81LOuNa15cD956vLMsJd1rqYp51gDUQqMYm2XsxnUhD2jg1DM7SeuJxxgrmpfISSXVIJIS5qJJSvJPEQ49DQTVIbYWJ9QWa/E2+c/oPK1drmC7WSfJRNKBO5Yjvcp7Gc3dmmI/Xh1kDTEuiSnWqQf37h+fTMhGnDf6dsS8SQfQWlqqwXXGlc/PEZ/SC5mtzIV0nAshlQdM/LvUtYutrEZ/Y+EAFtq1k28zQhOwLr1AIeANzhF8t9qzTdZf2qRKO6MWE9ohBYwibbOmrFtNmg3mcS+tB28xv2uKd/agYCvOP+GkSc+0lr7RXzyufL7QbkUpjLjEWFLqOIkAGu2B0tNlO9Eau2W1qcOUvVRgKzypKIQZ5KI3q0MLzqTNRYqiZOqmtqloIRlmkBHVpHmRYV6/HixbO6UC47KOFJnoMrVyr7wYz+SlW6GUaghYbY1I6kkxA2W1fSJokUdSh2LQ1GAimRGm0MT+uu57H5l7QgOWxERpO9moLRPgTtquWCfFlGlIjQaRly9odmzMOWY+IBO5tB4sW/0+VWGUh32qYk79EidWKrjWuiLpiVNGFWFRJVktyeXWmbgBBzVl8anPuXyNJlBJOlKLTgAbi/EYHVHxWiDaVR06GnHQNpJcWcK2jJtiCfG2sEHLzuI66sGrMK47nPIInPnu799935aOK2cvmvubrE38ZzZjrELCmXM2hM7UcpXD2oC3+ECVp7xtIuxptJ0jUr3sBmBS47TVxlvJ1Sqb/E0uLdvLj0lLr29ypdd/eMX3f6lrxGlKwKQxEGvw0qHbkbwrF3uHKwVENbIV2wZ13kNEF6zD+x24aLNMfDTCbDPnEikZFyTNttxWBXDaBuM8KtI2rmaMdUY7cXcUPstqTGvBGSrFWIpNMfbdea990bvAOC1YX0qbc6smDS1mPxSJoW4fwEXvjMmhlijDRq6qale6aJEuFGoppYDoBELQzLBuh/mZNx7jkinv0EtnUp50lO9hbNK57lZaMAWuWR5Yo9/kYwcYI0t4gWM47Umnl3YmpeBPqSyNp3K7s2DSAS/39KRuEN2bS4xvowV3dFRMx/VFcp2Yp8w2nTO9hCXtHG1kF1L4KlrJr2wKfyq77R7MKpFKzWlY9UkhYxyHWW6nBWPaudvEAl3CGcNpSXPZ6R9BbBtIl6cHL3gIBi+42CYXqCx1gfGWe7Ap0h3luyXdt1MKy4YUT9xSF01G16YEdWsouW9mgDHd3veyA97H+Ya47ZmEbqMY72oPztCGvK0onL44AvgC49saZKkWRz4veWljE1FHjbRJaWv6ZKKtl875h4CziFCZhG5rx7tefsl0aRT1bMHZjm8dwL/6u7wCRysaQblQoG5yAQN5zpatMNY/+yf8z+GLcH/Qn0iX2W2oEfXP4GvwQHuIL9AYGnaO3zqAX6946nkgqZNnUhx43DIdQtMFeOPrgy/y3Yd85HlJWwjLFkU3kFwq28xPnuPhMWeS+tDLV9Otllq7pQCf3uXJDN9wFDiUTgefHaiYbdfi3b3u8+iY6TnzhgehI1LTe8lcd7s1wJSzKbahCRxKKztTLXstGAiu3a6rPuQs5pk9TWAan5f0BZmGf7Ylxzzk/A7PAs4QPPPAHeFQ2hbFHszlgZuKZsJcUmbDC40sEU403cEjczstOEypa+YxevL4QBC8oRYqWdK6b7sK25tfE+oDZgtOQ2Jg8T41HGcBE6fTWHn4JtHcu9S7uYgU5KSCkl/mcnq+5/YBXOEr6lCUCwOTOM1taOI8mSxx1NsCXBEmLKbMAg5MkwbLmpBaFOPrNSlO2HnLiEqW3tHEwd8AeiQLmn+2gxjC3k6AxREqvKcJbTEzlpLiw4rNZK6oJdidbMMGX9FULKr0AkW+2qDEPBNNm5QAt2Ik2nftNWHetubosHLo2nG4vQA7GkcVCgVCgaDixHqo9UUn1A6OshapaNR/LPRYFV8siT1cCtJE0k/3WtaNSuUZYKPnsVIW0xXWnMUxq5+En4Kvw/MqQmVXnAXj9Z+9zM98zM/Agy7F/qqj2Nh67b8HjFnPP3iBn/tkpdzwEJX/whIcQUXOaikeliCRGUk7tiwF0rItwMEhjkZ309hikFoRAmLTpEXWuHS6y+am/KB/fM50aLEhGnSMwkpxzOov4H0AvgovwJ1iGzDLtJn/9BU+fAINfwUe6FHSLhu83viV/+/HrOePX+STT2B9uWGbrMHHLldRBlhS/CJQmcRxJFqZica01XixAZsYiH1uolZxLrR/SgxVIJjkpQP4PE9sE59LKLr7kltSBogS5tyszzH8Fvw8/AS8rNOg0xUS9fIaHwb+6et8Q/gyvKRjf5OusOzGx8evA/BP4IP11uN/grca5O0lcsPLJ5YjwI4QkJBOHa0WdMZYGxPbh2W2nR9v3WxEWqgp/G3+6VZbRLSAAZ3BhdhAaUL33VUSw9yjEsvbaQ9u4A/gGXwZXoEHOuU1GSj2chf+Mo+f8IcfcAxfIKVmyunRbYQVnoevwgfw3TXXcw++xNuP4fhyueEUNttEduRVaDttddoP0eSxLe2LENk6itYxlrxBNBYrNNKSQmeaLcm9c8UsaB5WyO6675yyQIAWSDpBVoA/gxmcwEvwoDv0m58UE7gHn+fJOa8/Ywan8EKRfjsopF83eCglX/Sfr7OeaRoQfvt1CGvIDccH5BCvw1sWIzRGC/66t0VTcLZQZtm6PlAasbOJ9iwWtUo7biktTSIPxnR24jxP1ZKaqq+2RcXM9OrBAm/AAs7hDJ5bNmGb+KIfwCs8a3jnjBrOFeMjHSCdbKr+2uOLfnOd9eiA8Hvvwwq54VbP2OqwkB48Ytc4YEOiH2vTXqodabfWEOzso4qxdbqD5L6tbtNPECqbhnA708DZH4QOJUXqScmUlks7Ot6FBuZw3n2mEbaUX7kDzxHOOQk8nKWMzAzu6ZZ8sOFw4RK+6PcuXo9tB4SbMz58ApfKDXf3szjNIIbGpD5TKTRxGkEMLjLl+K3wlWXBsCUxIDU+jbOiysESqAy1MGUJpXgwbTWzNOVEziIXZrJ+VIztl1PUBxTSo0dwn2bOmfDRPD3TRTGlfbCJvO9KvuhL1hMHhB9wPuPRLGHcdOWG2xc0U+5bQtAJT0nRTewXL1pgk2+rZAdeWmz3jxAqfNQQdzTlbF8uJ5ecEIWvTkevAHpwz7w78QujlD/Lr491bD8/1vhM2yrUQRrWXNQY4fGilfctMWYjL72UL/qS9eiA8EmN88nbNdour+PBbbAjOjIa4iBhfFg6rxeKdEGcL6p3EWR1Qq2Qkhs2DrnkRnmN9tG2EAqmgPw6hoL7Oza7B+3SCrR9tRftko+Lsf2F/mkTndN2LmzuMcKTuj/mX2+4Va3ki16+nnJY+S7MefpkidxwnV+4wkXH8TKnX0tsYzYp29DOOoSW1nf7nTh2akYiWmcJOuTidSaqESrTYpwjJJNVGQr+rLI7WsqerHW6Kp/oM2pKuV7T1QY9gjqlZp41/WfKpl56FV/0kvXQFRyeQ83xaTu5E8p5dNP3dUF34ihyI3GSpeCsywSh22ZJdWto9winhqifb7VRvgktxp13vyjrS0EjvrRfZ62uyqddSWaWYlwTPAtJZ2oZ3j/Sgi/mi+6vpzesfAcWNA0n8xVyw90GVFGuZjTXEQy+6GfLGLMLL523f5E0OmxVjDoOuRiH91RKU+vtoCtH7TgmvBLvtFXWLW15H9GTdVw8ow4IlRLeHECN9ym1e9K0I+Cbnhgv4Yu+aD2HaQJ80XDqOzSGAV4+4yCqBxrsJAX6ZTIoX36QnvzhhzzMfFW2dZVLOJfo0zbce5OvwXMFaZ81mOnlTVXpDZsQNuoYWveketKb5+6JOOsgX+NTm7H49fUTlx+WLuWL7qxnOFh4BxpmJx0p2gDzA/BUARuS6phR+pUsY7MMboAHx5xNsSVfVZcYSwqCKrqon7zM+8ecCkeS4nm3rINuaWvVNnMRI1IRpxTqx8PZUZ0Br/UEduo3B3hNvmgZfs9gQPj8vIOxd2kndir3awvJ6BLvoUuOfFWNYB0LR1OQJoUySKb9IlOBx74q1+ADC2G6rOdmFdJcD8BkfualA+BdjOOzP9uUhGUEX/TwhZsUduwRr8wNuXKurCixLBgpQI0mDbJr9dIqUuV+92ngkJZ7xduCk2yZKbfWrH1VBiTg9VdzsgRjW3CVXCvAwDd+c1z9dWw9+B+8MJL/eY15ZQ/HqvTwVdsZn5WQsgRRnMaWaecu3jFvMBEmgg+FJFZsnSl0zjB9OqPYaBD7qmoVyImFvzi41usesV0julaAR9dfR15Xzv9sEruRDyk1nb+QaLU67T885GTls6YgcY+UiMa25M/pwGrbCfzkvR3e0jjtuaFtnwuagHTSb5y7boBH119HXhvwP487jJLsLJ4XnUkHX5sLbS61dpiAXRoZSCrFJ+EjpeU3puVfitngYNo6PJrAigKktmwjyQdZpfq30mmtulaAx9Zfx15Xzv+cyeuiBFUs9zq8Kq+XB9a4PVvph3GV4E3y8HENJrN55H1X2p8VyqSKwVusJDKzXOZzplWdzBUFK9e+B4+uv468xvI/b5xtSAkBHQaPvtqWzllVvEOxPbuiE6+j2pvjcKsbvI7txnRErgfH7LdXqjq0IokKzga14GzQ23SSbCQvO6r+Or7SMIr/efOkkqSdMnj9mBx2DRsiY29Uj6+qK9ZrssCKaptR6HKURdwUYeUWA2kPzVKQO8ku2nU3Anhs/XWkBx3F/7wJtCTTTIKftthue1ty9xvNYLY/zo5KSbIuKbXpbEdSyeRyYdAIwKY2neyoc3+k1XUaufYga3T9daMUx/r8z1s10ITknIO0kuoMt+TB8jK0lpayqqjsJ2qtXAYwBU932zinimgmd6mTRDnQfr88q36NAI+tv24E8Pr8zxtasBqx0+xHH9HhlrwsxxNUfKOHQaZBITNf0uccj8GXiVmXAuPEAKSdN/4GLHhs/XWj92dN/uetNuBMnVR+XWDc25JLjo5Mg5IZIq226tmCsip2zZliL213YrTlL2hcFjpCduyim3M7/eB16q/blQsv5X/esDRbtJeabLIosWy3ycavwLhtxdWzbMmHiBTiVjJo6lCLjXZsi7p9PEPnsq6X6wd4bP11i0rD5fzPm/0A6brrIsllenZs0lCJlU4abakR59enZKrKe3BZihbTxlyZ2zl1+g0wvgmA166/bhwDrcn/7Ddz0eWZuJvfSESug6NzZsox3Z04FIxz0mUjMwVOOVTq1CQ0AhdbBGVdjG/CgsfUX7esJl3K/7ytWHRv683praW/8iDOCqWLLhpljDY1ZpzK75QiaZoOTpLKl60auHS/97oBXrv+umU9+FL+5+NtLFgjqVLCdbmj7pY5zPCPLOHNCwXGOcLquOhi8CmCWvbcuO73XmMUPab+ug3A6/A/78Bwe0bcS2+tgHn4J5pyS2WbOck0F51Vq3LcjhLvZ67p1ABbaL2H67bg78BfjKi/jr3+T/ABV3ilLmNXTI2SpvxWBtt6/Z//D0z/FXaGbSBgylzlsEGp+5//xrd4/ae4d8DUUjlslfIYS3t06HZpvfQtvv0N7AHWqtjP2pW08QD/FLy//da38vo8PNlKHf5y37Dxdfe/oj4kVIgFq3koLReSR76W/bx//n9k8jonZxzWTANVwEniDsg87sOSd/z7//PvMp3jQiptGVWFX2caezzAXwfgtzYUvbr0iozs32c3Uge7varH+CNE6cvEYmzbPZ9hMaYDdjK4V2iecf6EcEbdUDVUARda2KzO/JtCuDbNQB/iTeL0EG1JSO1jbXS+nLxtPMDPw1fh5+EPrgSEKE/8Gry5A73ui87AmxwdatyMEBCPNOCSKUeRZ2P6Myb5MRvgCHmA9ywsMifU+AYXcB6Xa5GibUC5TSyerxyh0j6QgLVpdyhfArRTTLqQjwe4HOD9s92D4Ap54odXAPBWLAwB02igG5Kkc+piN4lvODIFGAZgT+EO4Si1s7fjSR7vcQETUkRm9O+MXyo9OYhfe4xt9STQ2pcZRLayCV90b4D3jR0DYAfyxJ+eywg2IL7NTMXna7S/RpQ63JhWEM8U41ZyQGjwsVS0QBrEKLu8xwZsbi4wLcCT+OGidPIOCe1PiSc9Qt+go+vYqB7cG+B9d8cAD+WJPz0Am2gxXgU9IneOqDpAAXOsOltVuMzpdakJXrdPCzXiNVUpCeOos5cxnpQT39G+XVLhs1osQVvJKPZyNq8HDwd4d7pNDuWJPxVX7MSzqUDU6gfadKiNlUFTzLeFHHDlzO4kpa7aiKhBPGKwOqxsBAmYkOIpipyXcQSPlRTf+Tii0U3EJGaZsDER2qoB3h2hu0qe+NNwUooYU8y5mILbJe6OuX+2FTKy7bieTDAemaQyQ0CPthljSWO+xmFDIYiESjM5xKd6Ik5lvLq5GrQ3aCMLvmCA9wowLuWJb9xF59hVVP6O0CrBi3ZjZSNOvRy+I6klNVRJYRBaEzdN+imiUXQ8iVF8fsp+W4JXw7WISW7fDh7lptWkCwZ4d7QTXyBPfJMYK7SijjFppGnlIVJBJBYj7eUwtiP1IBXGI1XCsjNpbjENVpSAJ2hq2LTywEly3hUYazt31J8w2+aiLx3g3fohXixPfOMYm6zCGs9LVo9MoW3MCJE7R5u/WsOIjrqBoHUO0bJE9vxBpbhsd3+Nb4/vtPCZ4oZYCitNeYuC/8UDvDvy0qvkiW/cgqNqRyzqSZa/s0mqNGjtKOoTm14zZpUauiQgVfqtQiZjq7Q27JNaSK5ExRcrGCXO1FJYh6jR6CFqK7bZdQZ4t8g0rSlPfP1RdBtqaa9diqtzJkQ9duSryi2brQXbxDwbRUpFMBHjRj8+Nt7GDKgvph9okW7LX47gu0SpGnnFQ1S1lYldOsC7hYteR574ZuKs7Ei1lBsfdz7IZoxzzCVmmVqaSySzQbBVAWDek+N4jh9E/4VqZrJjPwiv9BC1XcvOWgO8275CVyBPvAtTVlDJfZkaZGU7NpqBogAj/xEHkeAuJihWYCxGN6e8+9JtSegFXF1TrhhLGP1fak3pebgPz192/8gB4d/6WT7+GdYnpH7hH/DJzzFiYPn/vjW0SgNpTNuPIZoAEZv8tlGw4+RLxy+ZjnKa5NdFoC7UaW0aduoYse6+bXg1DLg6UfRYwmhGEjqPvF75U558SANrElK/+MdpXvmqBpaXOa/MTZaa1DOcSiLaw9j0NNNst3c+63c7EKTpkvKHzu6bPbP0RkuHAVcbRY8ijP46MIbQeeT1mhA+5PV/inyDdQipf8LTvMXbwvoDy7IruDNVZKTfV4CTSRUYdybUCnGU7KUTDxLgCknqUm5aAW6/1p6eMsOYsphLzsHrE0Y/P5bQedx1F/4yPHnMB3/IOoTU9+BL8PhtjuFKBpZXnYNJxTuv+2XqolKR2UQgHhS5novuxVySJhBNRF3SoKK1XZbbXjVwWNyOjlqWJjrWJIy+P5bQedyldNScP+HZ61xKSK3jyrz+NiHG1hcOLL/+P+PDF2gOkekKGiNWKgJ+8Z/x8Iv4DdQHzcpZyF4v19I27w9/yPGDFQvmEpKtqv/TLiWMfn4sofMm9eAH8Ao0zzh7h4sJqYtxZd5/D7hkYPneDzl5idlzNHcIB0jVlQ+8ULzw/nc5/ojzl2juE0apD7LRnJxe04dMz2iOCFNtGFpTuXA5AhcTRo8mdN4kz30nVjEC4YTZQy4gpC7GlTlrePKhGsKKgeXpCYeO0MAd/GH7yKQUlXPLOasOH3FnSphjHuDvEu4gB8g66oNbtr6eMbFIA4fIBJkgayoXriw2XEDQPJrQeROAlY6aeYOcMf+IVYTU3XFlZufMHinGywaW3YLpObVBAsbjF4QJMsVUSayjk4voPsHJOQfPWDhCgDnmDl6XIRerD24HsGtw86RMHOLvVSHrKBdeVE26gKB5NKHzaIwLOmrqBWJYZDLhASG16c0Tn+CdRhWDgWXnqRZUTnPIHuMJTfLVpkoYy5CzylHVTGZMTwkGAo2HBlkQplrJX6U+uF1wZz2uwS1SQ12IqWaPuO4baZaEFBdukksJmkcTOm+YJSvoqPFzxFA/YUhIvWxcmSdPWTWwbAKVp6rxTtPFUZfKIwpzm4IoMfaYQLWgmlG5FME2gdBgm+J7J+rtS/XBbaVLsR7bpPQnpMFlo2doWaVceHk9+MkyguZNCJ1He+kuHTWyQAzNM5YSUg/GlTk9ZunAsg1qELVOhUSAK0LABIJHLKbqaEbHZLL1VA3VgqoiOKXYiS+HRyaEKgsfIqX64HYWbLRXy/qWoylIV9gudL1OWBNgBgTNmxA6b4txDT4gi3Ri7xFSLxtXpmmYnzAcWDZgY8d503LFogz5sbonDgkKcxGsWsE1OI+rcQtlgBBCSOKD1mtqYpIU8cTvBmAT0yZe+zUzeY92fYjTtGipXLhuR0ePoHk0ofNWBX+lo8Z7pAZDk8mEw5L7dVyZZoE/pTewbI6SNbiAL5xeygW4xPRuLCGbhcO4RIeTMFYHEJkYyEO9HmJfXMDEj/LaH781wHHZEtqSQ/69UnGpzH7LKIAZEDSPJnTesJTUa+rwTepI9dLJEawYV+ZkRn9g+QirD8vF8Mq0jFQ29js6kCS3E1+jZIhgPNanHdHFqFvPJLHqFwQqbIA4jhDxcNsOCCQLDomaL/dr5lyJaJU6FxPFjO3JOh3kVMcROo8u+C+jo05GjMF3P3/FuDLn5x2M04xXULPwaS6hBYki+MrMdZJSgPHlcB7nCR5bJ9Kr5ACUn9jk5kivdd8tk95SOGrtqu9lr2IhK65ZtEl7ZKrp7DrqwZfRUSN1el7+7NJxZbywOC8neNKTch5vsTEMNsoCCqHBCqIPRjIPkm0BjvFODGtto99rCl+d3wmHkW0FPdpZtC7MMcVtGFQjJLX5bdQ2+x9ypdc313uj8xlsrfuLgWXz1cRhZvJYX0iNVBRcVcmCXZs6aEf3RQF2WI/TcCbKmGU3IOoDJGDdDub0+hYckt6PlGu2BcxmhbTdj/klhccLGJMcqRjMJP1jW2ETqLSWJ/29MAoORluJ+6LPffBZbi5gqi5h6catQpmOT7/OFf5UorRpLzCqcMltBLhwd1are3kztrSzXO0LUbXRQcdLh/RdSZ+swRm819REDrtqzC4es6Gw4JCKlSnjYVpo0xeq33PrADbFLL3RuCmObVmPN+24kfa+AojDuM4umKe2QwCf6EN906HwjujaitDs5o0s1y+k3lgbT2W2i7FJdnwbLXhJUBq/9liTctSmFC/0OqUinb0QddTWamtjbHRFuWJJ6NpqZ8vO3fZJ37Db+2GkaPYLGHs7XTTdiFQJ68SkVJFVmY6McR5UycflNCsccHFaV9FNbR4NttLxw4pQ7wJd066Z0ohVbzihaxHVExd/ay04oxUKWt+AsdiQ9OUyZ2krzN19IZIwafSTFgIBnMV73ADj7V/K8u1MaY2sJp2HWm0f41tqwajEvdHWOJs510MaAqN4aoSiPCXtN2KSi46dUxHdaMquar82O1x5jqhDGvqmoE9LfxcY3zqA7/x3HA67r9ZG4O6Cuxu12/+TP+eLP+I+HErqDDCDVmBDO4larujNe7x8om2rMug0MX0rL1+IWwdwfR+p1TNTyNmVJ85ljWzbWuGv8/C7HD/izjkHNZNYlhZcUOKVzKFUxsxxN/kax+8zPWPSFKw80rJr9Tizyj3o1gEsdwgWGoxPezDdZ1TSENE1dLdNvuKL+I84nxKesZgxXVA1VA1OcL49dFlpFV5yJMhzyCmNQ+a4BqusPJ2bB+xo8V9u3x48VVIEPS/mc3DvAbXyoYr6VgDfh5do5hhHOCXMqBZUPhWYbWZECwVJljLgMUWOCB4MUuMaxGNUQDVI50TQ+S3kFgIcu2qKkNSHVoM0SHsgoZxP2d5HH8B9woOk4x5bPkKtAHucZsdykjxuIpbUrSILgrT8G7G5oCW+K0990o7E3T6AdW4TilH5kDjds+H64kS0mz24grtwlzDHBJqI8YJQExotPvoC4JBq0lEjjQkyBZ8oH2LnRsQ4Hu1QsgDTJbO8fQDnllitkxuVskoiKbRF9VwzMDvxHAdwB7mD9yCplhHFEyUWHx3WtwCbSMMTCUCcEmSGlg4gTXkHpZXWQ7kpznK3EmCHiXInqndkQjunG5kxTKEeGye7jWz9cyMR2mGiFQ15ENRBTbCp+Gh86vAyASdgmJq2MC6hoADQ3GosP0QHbnMHjyBQvQqfhy/BUbeHd5WY/G/9LK/8Ka8Jd7UFeNWEZvzPb458Dn8DGLOe3/wGL/4xP+HXlRt+M1PE2iLhR8t+lfgxsuh7AfO2AOf+owWhSZRYQbd622hbpKWKuU+XuvNzP0OseRDa+mObgDHJUSc/pKx31QdKffQ5OIJpt8GWjlgTwMc/w5MPCR/yl1XC2a2Yut54SvOtMev55Of45BOat9aWG27p2ZVORRvnEk1hqWMVUmqa7S2YtvlIpspuF1pt0syuZS2NV14mUidCSfzQzg+KqvIYCMljIx2YK2AO34fX4GWdu5xcIAb8MzTw+j/lyWM+Dw/gjs4GD6ehNgA48kX/AI7XXM/XAN4WHr+9ntywqoCakCqmKP0rmQrJJEErG2Upg1JObr01lKQy4jskWalKYfJ/EDLMpjNSHFEUAde2fltaDgmrNaWQ9+AAb8I5vKjz3L1n1LriB/BXkG/wwR9y/oRX4LlioHA4LzP2inzRx/DWmutRweFjeP3tNeSGlaE1Fde0OS11yOpmbIp2u/jF1n2RRZviJM0yBT3IZl2HWImKjQOxIyeU325b/qWyU9Moj1o07tS0G7qJDoGHg5m8yeCxMoEH8GU45tnrNM84D2l297DQ9t1YP7jki/7RmutRweEA77/HWXOh3HCxkRgldDQkAjNTMl2Iloc1qN5JfJeeTlyTRzxURTdn1Ixv2uKjs12AbdEWlBtmVdk2k7FFwj07PCZ9XAwW3dG+8xKzNFr4EnwBZpy9Qzhh3jDXebBpYcpuo4fQ44u+fD1dweEnHzI7v0xuuOALRUV8rXpFyfSTQYkhd7IHm07jpyhlkCmI0ALYqPTpUxXS+z4jgDj1Pflvmz5ecuItpIBxyTHpSTGWd9g1ApfD/bvwUhL4nT1EzqgX7cxfCcNmb3mPL/qi9SwTHJ49oj5ZLjccbTG3pRmlYi6JCG0mQrAt1+i2UXTZ2dv9IlQpN5naMYtviaXlTrFpoMsl3bOAFEa8sqPj2WCMrx3Yjx99qFwO59Aw/wgx+HlqNz8oZvA3exRDvuhL1jMQHPaOJ0+XyA3fp1OfM3qObEVdhxjvynxNMXQV4+GJyvOEFqeQBaIbbO7i63rpxCltdZShPFxkjM2FPVkn3TG+Rp9pO3l2RzFegGfxGDHIAh8SteR0C4HopXzRF61nheDw6TFN05Ebvq8M3VKKpGjjO6r7nhudTEGMtYM92HTDaR1FDMXJ1eThsbKfywyoWwrzRSXkc51flG3vIid62h29bIcFbTGhfV+faaB+ohj7dPN0C2e2lC96+XouFByen9AsunLDJZ9z7NExiUc0OuoYW6UZkIyx2YUR2z6/TiRjyKMx5GbbjLHvHuf7YmtKghf34LJfx63Yg8vrvN2zC7lY0x0tvKezo4HmGYDU+Gab6dFL+KI761lDcNifcjLrrr9LWZJctG1FfU1uwhoQE22ObjdfkSzY63CbU5hzs21WeTddH2BaL11Gi7lVdlxP1nkxqhnKhVY6knS3EPgVGg1JpN5cP/hivujOelhXcPj8HC/LyI6MkteVjlolBdMmF3a3DbsuAYhL44dxzthWSN065xxUd55Lmf0wRbOYOqH09/o9WbO2VtFdaMb4qBgtFJoT1SqoN8wPXMoXLb3p1PUEhxfnnLzGzBI0Ku7FxrKsNJj/8bn/H8fPIVOd3rfrklUB/DOeO+nkghgSPzrlPxluCMtOnDL4Yml6dK1r3vsgMxgtPOrMFUZbEUbTdIzii5beq72G4PD0DKnwjmBULUVFmy8t+k7fZ3pKc0Q4UC6jpVRqS9Umv8bxw35flZVOU1X7qkjnhZlsMbk24qQ6Hz7QcuL6sDC0iHHki96Uh2UdvmgZnjIvExy2TeJdMDZNSbdZyAHe/Yd1xsQhHiKzjh7GxQ4yqMPaywPkjMamvqrYpmO7Knad+ZQC5msCuAPWUoxrxVhrGv7a+KLXFhyONdTMrZ7ke23qiO40ZJUyzgYyX5XyL0mV7NiUzEs9mjtbMN0dERqwyAJpigad0B3/zRV7s4PIfXSu6YV/MK7+OrYe/JvfGMn/PHJe2fyUdtnFrKRNpXV0Y2559aWPt/G4BlvjTMtXlVIWCnNyA3YQBDmYIodFz41PvXPSa6rq9lWZawZ4dP115HXV/M/tnFkkrBOdzg6aP4pID+MZnTJ1SuuB6iZlyiox4HT2y3YBtkUKWooacBQUDTpjwaDt5poBHl1/HXltwP887lKKXxNUEyPqpGTyA699UqY/lt9yGdlUKra0fFWS+36iylVWrAyd7Uw0CZM0z7xKTOduznLIjG2Hx8cDPLb+OvK6Bv7n1DYci4CxUuRxrjBc0bb4vD3rN5Zz36ntLb83eVJIB8LiIzCmn6SMPjlX+yNlTjvIGjs+QzHPf60Aj62/jrzG8j9vYMFtm1VoRWCJdmw7z9N0t+c8cxZpPeK4aTRicS25QhrVtUp7U578chk4q04Wx4YoQSjFryUlpcQ1AbxZ/XVMknIU//OGl7Q6z9Zpxi0+3yFhSkjUDpnCIUhLWVX23KQ+L9vKvFKI0ZWFQgkDLvBoylrHNVmaw10zwCPrr5tlodfnf94EWnQ0lFRWy8pW9LbkLsyUVDc2NSTHGDtnD1uMtchjbCeb1mpxFP0YbcClhzdLu6lfO8Bj6q+bdT2sz/+8SZCV7VIxtt0DUn9L7r4cLYWDSXnseEpOGFuty0qbOVlS7NNzs5FOGJUqQpl2Q64/yBpZf90sxbE+//PGdZ02HSipCbmD6NItmQ4Lk5XUrGpDMkhbMm2ZVheNYV+VbUWTcv99+2NyX1VoafSuC+AN6q9bFIMv5X/eagNWXZxEa9JjlMwNWb00akGUkSoepp1/yRuuqHGbUn3UdBSTxBU6SEVklzWRUkPndVvw2PrrpjvxOvzPmwHc0hpmq82npi7GRro8dXp0KXnUQmhZbRL7NEVp1uuZmO45vuzKsHrktS3GLWXODVjw+vXXLYx4Hf7njRPd0i3aoAGX6W29GnaV5YdyDj9TFkakje7GHYzDoObfddHtOSpoi2SmzJHrB3hM/XUDDEbxP2/oosszcRlehWXUvzHv4TpBVktHqwenFo8uLVmy4DKLa5d3RtLrmrM3aMFr1183E4sewf+85VWeg1c5ag276NZrM9IJVNcmLEvDNaV62aq+14IAOGFsBt973Ra8Xv11YzXwNfmft7Jg2oS+XOyoC8/cwzi66Dhmgk38kUmP1CUiYWOX1bpD2zWXt2FCp7uq8703APAa9dfNdscR/M/bZLIyouVxqJfeWvG9Je+JVckHQ9+CI9NWxz+blX/KYYvO5n2tAP/vrlZ7+8/h9y+9qeB/Hnt967e5mevX10rALDWK//FaAT5MXdBXdP0C/BAes792c40H+AiAp1e1oH8HgH94g/Lttx1gp63op1eyoM/Bvw5/G/7xFbqJPcCXnmBiwDPb/YKO4FX4OjyCb289db2/Noqicw4i7N6TVtoz8tNwDH+8x/i6Ae7lmaQVENzJFb3Di/BFeAwz+Is9SjeQySpPqbLFlNmyz47z5a/AF+AYFvDmHqibSXTEzoT4Gc3OALaqAP4KPFUJ6n+1x+rGAM6Zd78bgJ0a8QN4GU614vxwD9e1Amy6CcskNrczLx1JIp6HE5UZD/DBHrFr2oNlgG4Odv226BodoryjGJ9q2T/AR3vQrsOCS0ctXZi3ruLlhpFDJYl4HmYtjQCP9rhdn4suySLKDt6wLcC52h8xPlcjju1fn+yhuw4LZsAGUuo2b4Fx2UwQu77uqRHXGtg92aN3tQCbFexc0uk93vhTXbct6y7MulLycoUljx8ngDMBg1tvJjAazpEmOtxlzclvj1vQf1Tx7QlPDpGpqgtdSKz/d9/hdy1vTfFHSmC9dGDZbLiezz7Ac801HirGZsWjydfZyPvHXL/Y8Mjzg8BxTZiuwKz4Eb8sBE9zznszmjvFwHKPIWUnwhqfVRcd4Ck0K6ate48m1oOfrX3/yOtvAsJ8zsPAM89sjnddmuLuDPjX9Bu/L7x7xpMzFk6nWtyQfPg278Gn4Aekz2ZgOmU9eJ37R14vwE/BL8G3aibCiWMWWDQ0ZtkPMnlcGeAu/Ag+8ZyecU5BPuy2ILD+sQqyZhAKmn7XZd+jIMTN9eBL7x95xVLSX4On8EcNlXDqmBlqS13jG4LpmGbkF/0CnOi3H8ETOIXzmnmtb0a16Tzxj1sUvQCBiXZGDtmB3KAefPH94xcUa/6vwRn80GOFyjEXFpba4A1e8KQfFF+259tx5XS4egYn8fQsLGrqGrHbztr+uByTahWuL1NUGbDpsnrwBfePPwHHIf9X4RnM4Z2ABWdxUBlqQ2PwhuDxoS0vvqB1JzS0P4h2nA/QgTrsJFn+Y3AOjs9JFC07CGWX1oNX3T/yHOzgDjwPn1PM3g9Jk9lZrMEpxnlPmBbjyo2+KFXRU52TJM/2ALcY57RUzjObbjqxVw++4P6RAOf58pcVsw9Daje3htriYrpDOonre3CudSe6bfkTEgHBHuDiyu5MCsc7BHhYDx7ePxLjqigXZsw+ijMHFhuwBmtoTPtOxOrTvYJDnC75dnUbhfwu/ZW9AgYd+peL68HD+0emKquiXHhWjJg/UrkJYzuiaL3E9aI/ytrCvAd4GcYZMCkSQxfUg3v3j8c4e90j5ZTPdvmJJGHnOCI2nHS8081X013pHuBlV1gB2MX1YNmWLHqqGN/TWmG0y6clJWthxNUl48q38Bi8vtMKyzzpFdSDhxZ5WBA5ZLt8Jv3895DduBlgbPYAj8C4B8hO68FDkoh5lydC4FiWvBOVqjYdqjiLv92t8yPDjrDaiHdUD15qkSURSGmXJwOMSxWAXYwr3zaAufJ66l+94vv3AO+vPcD7aw/w/toDvL/2AO+vPcD7aw/wHuD9tQd4f+0B3l97gPfXHuD9tQd4f+0B3l97gG8LwP8G/AL8O/A5OCq0Ys2KIdv/qOIXG/4mvFAMF16gZD+2Xvu/B8as5+8bfllWyg0zaNO5bfXj6vfhhwD86/Aq3NfRS9t9WPnhfnvCIw/CT8GLcFTMnpntdF/z9V+PWc/vWoIH+FL3Znv57PitcdGP4R/C34avw5fgRVUInCwbsn1yyA8C8zm/BH8NXoXnVE6wVPjdeCI38kX/3+Ct9dbz1pTmHFRu+Hm4O9Ch3clr99negxfwj+ER/DR8EV6B5+DuQOnTgUw5rnkY+FbNU3gNXh0o/JYTuWOvyBf9FvzX663HH/HejO8LwAl8Hl5YLTd8q7sqA3wbjuExfAFegQdwfyDoSkWY8swzEf6o4Qyewefg+cHNbqMQruSL/u/WWc+E5g7vnnEXgDmcDeSGb/F4cBcCgT+GGRzDU3hZYburAt9TEtHgbM6JoxJ+6NMzzTcf6c2bycv2+KK/f+l6LBzw5IwfqZJhA3M472pWT/ajKxnjv4AFnMEpnBTPND6s2J7qHbPAqcMK74T2mZ4VGB9uJA465It+/eL1WKhYOD7xHOkr1ajK7d0C4+ke4Hy9qXZwpgLr+Znm/uNFw8xQOSy8H9IzjUrd9+BIfenYaylf9FsXr8fBAadnPIEDna8IBcwlxnuA0/Wv6GAWPd7dDIKjMdSWueAsBj4M7TOd06qBbwDwKr7oleuxMOEcTuEZTHWvDYUO7aHqAe0Bbq+HEFRzOz7WVoTDQkVds7A4sIIxfCQdCefFRoIOF/NFL1mPab/nvOakSL/Q1aFtNpUb/nFOVX6gzyg/1nISyDfUhsokIzaBR9Kxm80s5mK+6P56il1jXic7nhQxsxSm3OwBHl4fFdLqi64nDQZvqE2at7cWAp/IVvrN6/BFL1mPhYrGMBfOi4PyjuSGf6wBBh7p/FZTghCNWGgMzlBbrNJoPJX2mW5mwZfyRffXo7OFi5pZcS4qZUrlViptrXtw+GQoyhDPS+ANjcGBNRiLCQDPZPMHuiZfdFpPSTcQwwKYdRNqpkjm7AFeeT0pJzALgo7g8YYGrMHS0iocy+YTm2vyRUvvpXCIpQ5pe666TJrcygnScUf/p0NDs/iAI/nqDHC8TmQT8x3NF91l76oDdQGwu61Z6E0ABv7uO1dbf/37Zlv+Zw/Pbh8f1s4Avur6657/+YYBvur6657/+YYBvur6657/+YYBvur6657/+aYBvuL6657/+VMA8FXWX/f8zzcN8BXXX/f8zzcNMFdbf93zP38KLPiK6697/uebtuArrr/u+Z9vGmCusP6653/+1FjwVdZf9/zPN7oHX339dc//fNMu+irrr3v+50+Bi+Zq6697/uebA/jz8Pudf9ht/fWv517J/XUzAP8C/BAeX9WCDrUpZ3/dEMBxgPcfbtTVvsYV5Yn32u03B3Ac4P3b8I+vxNBKeeL9dRMAlwO83959qGO78sT769oB7g3w/vGVYFzKE++v6wV4OMD7F7tckFkmT7y/rhHgpQO8b+4Y46XyxPvrugBeNcB7BRiX8sT767oAvmCA9woAHsoT76+rBJjLBnh3txOvkifeX1dswZcO8G6N7sXyxPvr6i340gHe3TnqVfLE++uKAb50gHcXLnrX8sR7gNdPRqwzwLu7Y/FO5Yn3AK9jXCMGeHdgxDuVJ75VAI8ljP7PAb3/RfjcZfePHBB+79dpfpH1CanN30d+mT1h9GqAxxJGM5LQeeQ1+Tb+EQJrElLb38VHQ94TRq900aMIo8cSOo+8Dp8QfsB8zpqE1NO3OI9Zrj1h9EV78PqE0WMJnUdeU6E+Jjyk/hbrEFIfeWbvId8H9oTRFwdZaxJGvziW0Hn0gqYB/wyZ0PwRlxJST+BOw9m77Amj14ii1yGM/txYQudN0qDzGe4EqfA/5GJCagsHcPaEPWH0esekSwmjRxM6b5JEcZ4ww50ilvAOFxBSx4yLW+A/YU8YvfY5+ALC6NGEzhtmyZoFZoarwBLeZxUhtY4rc3bKnjB6TKJjFUHzJoTOozF2YBpsjcyxDgzhQ1YRUse8+J4wenwmaylB82hC5w0zoRXUNXaRBmSMQUqiWSWkLsaVqc/ZE0aPTFUuJWgeTei8SfLZQeMxNaZSIzbII4aE1Nmr13P2hNHjc9E9guYNCZ032YlNwESMLcZiLQHkE4aE1BFg0yAR4z1h9AiAGRA0jyZ03tyIxWMajMPWBIsxYJCnlITU5ShiHYdZ94TR4wCmSxg9jtB5KyPGYzymAYexWEMwAPIsAdYdV6aObmNPGD0aYLoEzaMJnTc0Ygs+YDw0GAtqxBjkuP38bMRWCHn73xNGjz75P73WenCEJnhwyVe3AEe8TtKdJcYhBl97wuhNAObK66lvD/9J9NS75v17wuitAN5fe4D31x7g/bUHeH/tAd5fe4D3AO+vPcD7aw/w/toDvL/2AO+vPcD7aw/w/toDvAd4f/24ABzZ8o+KLsSLS+Pv/TqTb3P4hKlQrTGh+fbIBT0Axqznnb+L/V2mb3HkN5Mb/nEHeK7d4IcDld6lmDW/iH9E+AH1MdOw/Jlu2T1xNmY98sv4wHnD7D3uNHu54WUuOsBTbQuvBsPT/UfzNxGYzwkP8c+Yz3C+r/i6DcyRL/rZ+utRwWH5PmfvcvYEt9jLDS/bg0/B64DWKrQM8AL8FPwS9beQCe6EMKNZYJol37jBMy35otdaz0Bw2H/C2Smc7+WGB0HWDELBmOByA3r5QONo4V+DpzR/hFS4U8wMW1PXNB4TOqYz9urxRV++ntWCw/U59Ty9ebdWbrgfRS9AYKKN63ZokZVygr8GZ/gfIhZXIXPsAlNjPOLBby5c1eOLvmQ9lwkOy5x6QV1j5TYqpS05JtUgUHUp5toHGsVfn4NX4RnMCe+AxTpwmApTYxqMxwfCeJGjpXzRF61nbcHhUBPqWze9svwcHJ+S6NPscKrEjug78Dx8Lj3T8D4YxGIdxmJcwhi34fzZUr7olevZCw5vkOhoClq5zBPZAnygD/Tl9EzDh6kl3VhsHYcDEb+hCtJSvuiV69kLDm+WycrOTArHmB5/VYyP6jOVjwgGawk2zQOaTcc1L+aLXrKeveDwZqlKrw8U9Y1p66uK8dEzdYwBeUQAY7DbyYNezBfdWQ97weEtAKYQg2xJIkuveAT3dYeLGH+ShrWNwZgN0b2YL7qznr3g8JYAo5bQBziPjx7BPZ0d9RCQp4UZbnFdzBddor4XHN4KYMrB2qHFRIzzcLAHQZ5the5ovui94PCWAPefaYnxIdzRwdHCbuR4B+tbiy96Lzi8E4D7z7S0mEPd+eqO3cT53Z0Y8SV80XvB4Z0ADJi/f7X113f+7p7/+UYBvur6657/+YYBvur6657/+aYBvuL6657/+aYBvuL6657/+aYBvuL6657/+aYBvuL6657/+VMA8FXWX/f8z58OgK+y/rrnf75RgLna+uue//lTA/CV1V/3/M837aKvvv6653++UQvmauuve/7nTwfAV1N/3fM/fzr24Cuuv+75nz8FFnxl9dc9//MOr/8/glixwRuUfM4AAAAASUVORK5CYII="}getSearchTexture(){return"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAhCAAAAABIXyLAAAAAOElEQVRIx2NgGAWjYBSMglEwEICREYRgFBZBqDCSLA2MGPUIVQETE9iNUAqLR5gIeoQKRgwXjwAAGn4AtaFeYLEAAAAASUVORK5CYII="}}t.SMAAPass=a},44652:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(49190),s=r(83453);class a extends i.Pass{constructor(e,t,r,a){super(),this.scene=e,this.camera=t,this.sampleLevel=4,this.unbiased=!0,this.clearColor=void 0!==r?r:0,this.clearAlpha=void 0!==a?a:0,this._oldClearColor=new n.Color;const o=s.CopyShader;this.copyUniforms=n.UniformsUtils.clone(o.uniforms),this.copyMaterial=new n.ShaderMaterial({uniforms:this.copyUniforms,vertexShader:o.vertexShader,fragmentShader:o.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,premultipliedAlpha:!0,blending:n.AdditiveBlending}),this.fsQuad=new i.FullScreenQuad(this.copyMaterial)}dispose(){this.sampleRenderTarget&&(this.sampleRenderTarget.dispose(),this.sampleRenderTarget=null),this.copyMaterial.dispose(),this.fsQuad.dispose()}setSize(e,t){this.sampleRenderTarget&&this.sampleRenderTarget.setSize(e,t)}render(e,t,r){this.sampleRenderTarget||(this.sampleRenderTarget=new n.WebGLRenderTarget(r.width,r.height,{type:n.HalfFloatType}),this.sampleRenderTarget.texture.name="SSAARenderPass.sample");const i=o[Math.max(0,Math.min(this.sampleLevel,5))],s=e.autoClear;e.autoClear=!1,e.getClearColor(this._oldClearColor);const a=e.getClearAlpha(),l=1/i.length;this.copyUniforms.tDiffuse.value=this.sampleRenderTarget.texture;const c={fullWidth:r.width,fullHeight:r.height,offsetX:0,offsetY:0,width:r.width,height:r.height},h=Object.assign({},this.camera.view);h.enabled&&Object.assign(c,h);for(let n=0;n{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=r(85232),s=r(49190),a=r(84181),o=r(48463),l=r(83453),c=class extends s.Pass{constructor(e,t,r,n){super(),this.width=void 0!==r?r:512,this.height=void 0!==n?n:512,this.clear=!0,this.camera=t,this.scene=e,this.kernelRadius=8,this.kernelSize=32,this.kernel=[],this.noiseTexture=null,this.output=0,this.minDistance=.005,this.maxDistance=.1,this._visibilityCache=new Map,this.generateSampleKernel(),this.generateRandomKernelRotations();const a=new i.DepthTexture;a.format=i.DepthStencilFormat,a.type=i.UnsignedInt248Type,this.beautyRenderTarget=new i.WebGLRenderTarget(this.width,this.height),this.normalRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,depthTexture:a}),this.ssaoRenderTarget=new i.WebGLRenderTarget(this.width,this.height),this.blurRenderTarget=this.ssaoRenderTarget.clone(),void 0===o.SSAOShader&&console.error("THREE.SSAOPass: The pass relies on SSAOShader."),this.ssaoMaterial=new i.ShaderMaterial({defines:Object.assign({},o.SSAOShader.defines),uniforms:i.UniformsUtils.clone(o.SSAOShader.uniforms),vertexShader:o.SSAOShader.vertexShader,fragmentShader:o.SSAOShader.fragmentShader,blending:i.NoBlending}),this.ssaoMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssaoMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssaoMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.ssaoMaterial.uniforms.tNoise.value=this.noiseTexture,this.ssaoMaterial.uniforms.kernel.value=this.kernel,this.ssaoMaterial.uniforms.cameraNear.value=this.camera.near,this.ssaoMaterial.uniforms.cameraFar.value=this.camera.far,this.ssaoMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new i.MeshNormalMaterial,this.normalMaterial.blending=i.NoBlending,this.blurMaterial=new i.ShaderMaterial({defines:Object.assign({},o.SSAOBlurShader.defines),uniforms:i.UniformsUtils.clone(o.SSAOBlurShader.uniforms),vertexShader:o.SSAOBlurShader.vertexShader,fragmentShader:o.SSAOBlurShader.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new i.ShaderMaterial({defines:Object.assign({},o.SSAODepthShader.defines),uniforms:i.UniformsUtils.clone(o.SSAODepthShader.uniforms),vertexShader:o.SSAODepthShader.vertexShader,fragmentShader:o.SSAODepthShader.fragmentShader,blending:i.NoBlending}),this.depthRenderMaterial.uniforms.tDepth.value=this.normalRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(l.CopyShader.uniforms),vertexShader:l.CopyShader.vertexShader,fragmentShader:l.CopyShader.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:i.DstColorFactor,blendDst:i.ZeroFactor,blendEquation:i.AddEquation,blendSrcAlpha:i.DstAlphaFactor,blendDstAlpha:i.ZeroFactor,blendEquationAlpha:i.AddEquation}),this.fsQuad=new s.FullScreenQuad(null),this.originalClearColor=new i.Color}dispose(){this.beautyRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.ssaoRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.normalMaterial.dispose(),this.blurMaterial.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()}render(e,t){switch(!1===e.capabilities.isWebGL2&&(this.noiseTexture.format=i.LuminanceFormat),e.setRenderTarget(this.beautyRenderTarget),e.clear(),e.render(this.scene,this.camera),this.overrideVisibility(),this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,7829503,1),this.restoreVisibility(),this.ssaoMaterial.uniforms.kernelRadius.value=this.kernelRadius,this.ssaoMaterial.uniforms.minDistance.value=this.minDistance,this.ssaoMaterial.uniforms.maxDistance.value=this.maxDistance,this.renderPass(e,this.ssaoMaterial,this.ssaoRenderTarget),this.renderPass(e,this.blurMaterial,this.blurRenderTarget),this.output){case c.OUTPUT.SSAO:this.copyMaterial.uniforms.tDiffuse.value=this.ssaoRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Blur:this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Depth:this.renderPass(e,this.depthRenderMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case c.OUTPUT.Default:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.copyMaterial.blending=i.CustomBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;default:console.warn("THREE.SSAOPass: Unknown output type.")}}renderPass(e,t,r,n,i){e.getClearColor(this.originalClearColor);const s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,null!=n&&(e.setClearColor(n),e.setClearAlpha(i||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderOverride(e,t,r,n,i){e.getClearColor(this.originalClearColor);const s=e.getClearAlpha(),a=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,n=t.clearColor||n,i=t.clearAlpha||i,null!=n&&(e.setClearColor(n),e.setClearAlpha(i||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}setSize(e,t){this.width=e,this.height=t,this.beautyRenderTarget.setSize(e,t),this.ssaoRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.ssaoMaterial.uniforms.resolution.value.set(e,t),this.ssaoMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssaoMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t)}generateSampleKernel(){const e=this.kernelSize,t=this.kernel;for(let r=0;r{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(h,"symbol"!=typeof(u="OUTPUT")?u+"":u,{Default:0,SSAO:1,Blur:2,Beauty:3,Depth:4,Normal:5}),t.SSAOPass=h},18526:(e,t,r)=>{"use strict";var n=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const i=r(85232),s=r(49190),a=r(30424),o=r(83453),l=class extends s.Pass{constructor({renderer:e,scene:t,camera:r,width:n,height:l,selects:c,bouncing:h=!1,groundReflector:u}){super(),this.width=void 0!==n?n:512,this.height=void 0!==l?l:512,this.clear=!0,this.renderer=e,this.scene=t,this.camera=r,this.groundReflector=u,this.opacity=a.SSRShader.uniforms.opacity.value,this.output=0,this.maxDistance=a.SSRShader.uniforms.maxDistance.value,this.thickness=a.SSRShader.uniforms.thickness.value,this.tempColor=new i.Color,this._selects=c,this.selective=Array.isArray(this._selects),Object.defineProperty(this,"selects",{get(){return this._selects},set(e){this._selects!==e&&(this._selects=e,Array.isArray(e)?(this.selective=!0,this.ssrMaterial.defines.SELECTIVE=!0,this.ssrMaterial.needsUpdate=!0):(this.selective=!1,this.ssrMaterial.defines.SELECTIVE=!1,this.ssrMaterial.needsUpdate=!0))}}),this._bouncing=h,Object.defineProperty(this,"bouncing",{get(){return this._bouncing},set(e){this._bouncing!==e&&(this._bouncing=e,this.ssrMaterial.uniforms.tDiffuse.value=e?this.prevRenderTarget.texture:this.beautyRenderTarget.texture)}}),this.blur=!0,this._distanceAttenuation=a.SSRShader.defines.DISTANCE_ATTENUATION,Object.defineProperty(this,"distanceAttenuation",{get(){return this._distanceAttenuation},set(e){this._distanceAttenuation!==e&&(this._distanceAttenuation=e,this.ssrMaterial.defines.DISTANCE_ATTENUATION=e,this.ssrMaterial.needsUpdate=!0)}}),this._fresnel=a.SSRShader.defines.FRESNEL,Object.defineProperty(this,"fresnel",{get(){return this._fresnel},set(e){this._fresnel!==e&&(this._fresnel=e,this.ssrMaterial.defines.FRESNEL=e,this.ssrMaterial.needsUpdate=!0)}}),this._infiniteThick=a.SSRShader.defines.INFINITE_THICK,Object.defineProperty(this,"infiniteThick",{get(){return this._infiniteThick},set(e){this._infiniteThick!==e&&(this._infiniteThick=e,this.ssrMaterial.defines.INFINITE_THICK=e,this.ssrMaterial.needsUpdate=!0)}});const d=new i.DepthTexture;d.type=i.UnsignedShortType,d.minFilter=i.NearestFilter,d.magFilter=i.NearestFilter,this.beautyRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.HalfFloatType,depthTexture:d,depthBuffer:!0}),this.prevRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),this.normalRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.HalfFloatType}),this.metalnessRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter,type:i.HalfFloatType}),this.ssrRenderTarget=new i.WebGLRenderTarget(this.width,this.height,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),this.blurRenderTarget=this.ssrRenderTarget.clone(),this.blurRenderTarget2=this.ssrRenderTarget.clone(),this.ssrMaterial=new i.ShaderMaterial({defines:Object.assign({},a.SSRShader.defines,{MAX_STEP:Math.sqrt(this.width*this.width+this.height*this.height)}),uniforms:i.UniformsUtils.clone(a.SSRShader.uniforms),vertexShader:a.SSRShader.vertexShader,fragmentShader:a.SSRShader.fragmentShader,blending:i.NoBlending}),this.ssrMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.ssrMaterial.uniforms.tNormal.value=this.normalRenderTarget.texture,this.ssrMaterial.defines.SELECTIVE=this.selective,this.ssrMaterial.needsUpdate=!0,this.ssrMaterial.uniforms.tMetalness.value=this.metalnessRenderTarget.texture,this.ssrMaterial.uniforms.tDepth.value=this.beautyRenderTarget.depthTexture,this.ssrMaterial.uniforms.cameraNear.value=this.camera.near,this.ssrMaterial.uniforms.cameraFar.value=this.camera.far,this.ssrMaterial.uniforms.thickness.value=this.thickness,this.ssrMaterial.uniforms.resolution.value.set(this.width,this.height),this.ssrMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssrMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.normalMaterial=new i.MeshNormalMaterial,this.normalMaterial.blending=i.NoBlending,this.metalnessOnMaterial=new i.MeshBasicMaterial({color:"white"}),this.metalnessOffMaterial=new i.MeshBasicMaterial({color:"black"}),this.blurMaterial=new i.ShaderMaterial({defines:Object.assign({},a.SSRBlurShader.defines),uniforms:i.UniformsUtils.clone(a.SSRBlurShader.uniforms),vertexShader:a.SSRBlurShader.vertexShader,fragmentShader:a.SSRBlurShader.fragmentShader}),this.blurMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.blurMaterial.uniforms.resolution.value.set(this.width,this.height),this.blurMaterial2=new i.ShaderMaterial({defines:Object.assign({},a.SSRBlurShader.defines),uniforms:i.UniformsUtils.clone(a.SSRBlurShader.uniforms),vertexShader:a.SSRBlurShader.vertexShader,fragmentShader:a.SSRBlurShader.fragmentShader}),this.blurMaterial2.uniforms.tDiffuse.value=this.blurRenderTarget.texture,this.blurMaterial2.uniforms.resolution.value.set(this.width,this.height),this.depthRenderMaterial=new i.ShaderMaterial({defines:Object.assign({},a.SSRDepthShader.defines),uniforms:i.UniformsUtils.clone(a.SSRDepthShader.uniforms),vertexShader:a.SSRDepthShader.vertexShader,fragmentShader:a.SSRDepthShader.fragmentShader,blending:i.NoBlending}),this.depthRenderMaterial.uniforms.tDepth.value=this.beautyRenderTarget.depthTexture,this.depthRenderMaterial.uniforms.cameraNear.value=this.camera.near,this.depthRenderMaterial.uniforms.cameraFar.value=this.camera.far,this.copyMaterial=new i.ShaderMaterial({uniforms:i.UniformsUtils.clone(o.CopyShader.uniforms),vertexShader:o.CopyShader.vertexShader,fragmentShader:o.CopyShader.fragmentShader,transparent:!0,depthTest:!1,depthWrite:!1,blendSrc:i.SrcAlphaFactor,blendDst:i.OneMinusSrcAlphaFactor,blendEquation:i.AddEquation,blendSrcAlpha:i.SrcAlphaFactor,blendDstAlpha:i.OneMinusSrcAlphaFactor,blendEquationAlpha:i.AddEquation}),this.fsQuad=new s.FullScreenQuad(null),this.originalClearColor=new i.Color}dispose(){this.beautyRenderTarget.dispose(),this.prevRenderTarget.dispose(),this.normalRenderTarget.dispose(),this.metalnessRenderTarget.dispose(),this.ssrRenderTarget.dispose(),this.blurRenderTarget.dispose(),this.blurRenderTarget2.dispose(),this.normalMaterial.dispose(),this.metalnessOnMaterial.dispose(),this.metalnessOffMaterial.dispose(),this.blurMaterial.dispose(),this.blurMaterial2.dispose(),this.copyMaterial.dispose(),this.depthRenderMaterial.dispose(),this.fsQuad.dispose()}render(e,t){switch(e.setRenderTarget(this.beautyRenderTarget),e.clear(),this.groundReflector&&(this.groundReflector.visible=!1,this.groundReflector.doRender(this.renderer,this.scene,this.camera),this.groundReflector.visible=!0),e.render(this.scene,this.camera),this.groundReflector&&(this.groundReflector.visible=!1),this.renderOverride(e,this.normalMaterial,this.normalRenderTarget,0,0),this.selective&&this.renderMetalness(e,this.metalnessOnMaterial,this.metalnessRenderTarget,0,0),this.ssrMaterial.uniforms.opacity.value=this.opacity,this.ssrMaterial.uniforms.maxDistance.value=this.maxDistance,this.ssrMaterial.uniforms.thickness.value=this.thickness,this.renderPass(e,this.ssrMaterial,this.ssrRenderTarget),this.blur&&(this.renderPass(e,this.blurMaterial,this.blurRenderTarget),this.renderPass(e,this.blurMaterial2,this.blurRenderTarget2)),this.output){case l.OUTPUT.Default:this.bouncing?(this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.prevRenderTarget),this.blur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=i.NormalBlending,this.renderPass(e,this.copyMaterial,this.prevRenderTarget),this.copyMaterial.uniforms.tDiffuse.value=this.prevRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t)):(this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.blur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=i.NormalBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t));break;case l.OUTPUT.SSR:this.blur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t),this.bouncing&&(this.blur?this.copyMaterial.uniforms.tDiffuse.value=this.blurRenderTarget2.texture:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.prevRenderTarget),this.copyMaterial.uniforms.tDiffuse.value=this.ssrRenderTarget.texture,this.copyMaterial.blending=i.NormalBlending,this.renderPass(e,this.copyMaterial,this.prevRenderTarget));break;case l.OUTPUT.Beauty:this.copyMaterial.uniforms.tDiffuse.value=this.beautyRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case l.OUTPUT.Depth:this.renderPass(e,this.depthRenderMaterial,this.renderToScreen?null:t);break;case l.OUTPUT.Normal:this.copyMaterial.uniforms.tDiffuse.value=this.normalRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;case l.OUTPUT.Metalness:this.copyMaterial.uniforms.tDiffuse.value=this.metalnessRenderTarget.texture,this.copyMaterial.blending=i.NoBlending,this.renderPass(e,this.copyMaterial,this.renderToScreen?null:t);break;default:console.warn("THREE.SSRPass: Unknown output type.")}}renderPass(e,t,r,n,i){this.originalClearColor.copy(e.getClearColor(this.tempColor));const s=e.getClearAlpha(this.tempColor),a=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,null!=n&&(e.setClearColor(n),e.setClearAlpha(i||0),e.clear()),this.fsQuad.material=t,this.fsQuad.render(e),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderOverride(e,t,r,n,i){this.originalClearColor.copy(e.getClearColor(this.tempColor));const s=e.getClearAlpha(this.tempColor),a=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,n=t.clearColor||n,i=t.clearAlpha||i,null!=n&&(e.setClearColor(n),e.setClearAlpha(i||0),e.clear()),this.scene.overrideMaterial=t,e.render(this.scene,this.camera),this.scene.overrideMaterial=null,e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}renderMetalness(e,t,r,n,i){this.originalClearColor.copy(e.getClearColor(this.tempColor));const s=e.getClearAlpha(this.tempColor),a=e.autoClear;e.setRenderTarget(r),e.autoClear=!1,n=t.clearColor||n,i=t.clearAlpha||i,null!=n&&(e.setClearColor(n),e.setClearAlpha(i||0),e.clear()),this.scene.traverseVisible((e=>{e._SSRPassBackupMaterial=e.material,this._selects.includes(e)?e.material=this.metalnessOnMaterial:e.material=this.metalnessOffMaterial})),e.render(this.scene,this.camera),this.scene.traverseVisible((e=>{e.material=e._SSRPassBackupMaterial})),e.autoClear=a,e.setClearColor(this.originalClearColor),e.setClearAlpha(s)}setSize(e,t){this.width=e,this.height=t,this.ssrMaterial.defines.MAX_STEP=Math.sqrt(e*e+t*t),this.ssrMaterial.needsUpdate=!0,this.beautyRenderTarget.setSize(e,t),this.prevRenderTarget.setSize(e,t),this.ssrRenderTarget.setSize(e,t),this.normalRenderTarget.setSize(e,t),this.metalnessRenderTarget.setSize(e,t),this.blurRenderTarget.setSize(e,t),this.blurRenderTarget2.setSize(e,t),this.ssrMaterial.uniforms.resolution.value.set(e,t),this.ssrMaterial.uniforms.cameraProjectionMatrix.value.copy(this.camera.projectionMatrix),this.ssrMaterial.uniforms.cameraInverseProjectionMatrix.value.copy(this.camera.projectionMatrixInverse),this.blurMaterial.uniforms.resolution.value.set(e,t),this.blurMaterial2.uniforms.resolution.value.set(e,t)}};let c=l;var h;((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(c,"symbol"!=typeof(h="OUTPUT")?h+"":h,{Default:0,SSR:1,Beauty:3,Depth:4,Normal:5,Metalness:7}),t.SSRPass=c},64753:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(49190),s=r(83453);class a extends i.Pass{constructor(e){super(),void 0===s.CopyShader&&console.error("THREE.SavePass relies on CopyShader");const t=s.CopyShader;this.textureID="tDiffuse",this.uniforms=n.UniformsUtils.clone(t.uniforms),this.material=new n.ShaderMaterial({uniforms:this.uniforms,vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,blending:n.NoBlending}),this.renderTarget=e,void 0===this.renderTarget&&(this.renderTarget=new n.WebGLRenderTarget(window.innerWidth,window.innerHeight),this.renderTarget.texture.name="SavePass.rt"),this.needsSwap=!1,this.fsQuad=new i.FullScreenQuad(this.material)}render(e,t,r){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=r.texture),e.setRenderTarget(this.renderTarget),this.clear&&e.clear(),this.fsQuad.render(e)}}t.SavePass=a},18921:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(49190);class o extends a.Pass{constructor(e,t="tDiffuse"){super(),i(this,"textureID"),i(this,"uniforms"),i(this,"material"),i(this,"fsQuad"),this.textureID=t,e instanceof s.ShaderMaterial?(this.uniforms=e.uniforms,this.material=e):(this.uniforms=s.UniformsUtils.clone(e.uniforms),this.material=new s.ShaderMaterial({defines:Object.assign({},e.defines),uniforms:this.uniforms,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader})),this.fsQuad=new a.FullScreenQuad(this.material)}render(e,t,r){this.uniforms[this.textureID]&&(this.uniforms[this.textureID].value=r.texture),this.fsQuad.material=this.material,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),this.fsQuad.render(e))}}t.ShaderPass=o},98060:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(44652);class s extends i.SSAARenderPass{constructor(e,t,r,n){super(e,t,r,n),this.sampleLevel=0,this.accumulate=!1,this.accumulateIndex=-1}render(e,t,r,i){if(!1===this.accumulate)return super.render(e,t,r,i),void(this.accumulateIndex=-1);const s=a[5];void 0===this.sampleRenderTarget&&(this.sampleRenderTarget=new n.WebGLRenderTarget(r.width,r.height,{type:n.HalfFloatType}),this.sampleRenderTarget.texture.name="TAARenderPass.sample"),void 0===this.holdRenderTarget&&(this.holdRenderTarget=new n.WebGLRenderTarget(r.width,r.height,{type:n.HalfFloatType}),this.holdRenderTarget.texture.name="TAARenderPass.hold"),-1===this.accumulateIndex&&(super.render(e,this.holdRenderTarget,r,i),this.accumulateIndex=0);const o=e.autoClear;e.autoClear=!1,e.getClearColor(this._oldClearColor);const l=e.getClearAlpha(),c=1/s.length;if(this.accumulateIndex>=0&&this.accumulateIndex=s.length)break}this.camera.clearViewOffset&&this.camera.clearViewOffset()}e.setClearColor(this.clearColor,this.clearAlpha);const h=this.accumulateIndex*c;h>0&&(this.copyUniforms.opacity.value=1,this.copyUniforms.tDiffuse.value=this.sampleRenderTarget.texture,e.setRenderTarget(t),e.clear(),this.fsQuad.render(e)),h<1&&(this.copyUniforms.opacity.value=1-h,this.copyUniforms.tDiffuse.value=this.holdRenderTarget.texture,e.setRenderTarget(t),this.fsQuad.render(e)),e.autoClear=o,e.setClearColor(this._oldClearColor,l)}dispose(){super.dispose(),void 0!==this.sampleRenderTarget&&this.sampleRenderTarget.dispose(),void 0!==this.holdRenderTarget&&this.holdRenderTarget.dispose()}}const a=[[[0,0]],[[4,4],[-4,-4]],[[-2,-6],[6,-2],[-6,2],[2,6]],[[1,-3],[-1,3],[5,1],[-3,-5],[-5,5],[-7,-1],[3,7],[7,-7]],[[1,1],[-1,-3],[-3,2],[4,-1],[-5,-2],[2,5],[5,3],[3,-5],[-2,6],[0,-7],[-4,-6],[-6,4],[-8,0],[7,-4],[6,7],[-7,-8]],[[-4,-7],[-7,-5],[-3,-5],[-5,-4],[-1,-4],[-2,-2],[-6,-1],[-4,0],[-7,1],[-1,2],[-6,3],[-3,3],[-7,6],[-3,6],[-5,7],[-1,7],[5,-7],[1,-6],[6,-5],[4,-4],[2,-3],[7,-2],[1,-1],[4,-1],[2,1],[6,2],[0,4],[4,4],[2,5],[7,5],[5,6],[3,7]]];t.TAARenderPass=s},70866:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(49190),s=r(83453);class a extends i.Pass{constructor(e,t){super();const r=s.CopyShader;this.map=e,this.opacity=void 0!==t?t:1,this.uniforms=n.UniformsUtils.clone(r.uniforms),this.material=new n.ShaderMaterial({uniforms:this.uniforms,vertexShader:r.vertexShader,fragmentShader:r.fragmentShader,depthTest:!1,depthWrite:!1,premultipliedAlpha:!0}),this.needsSwap=!1,this.fsQuad=new i.FullScreenQuad(null)}render(e,t,r){const n=e.autoClear;e.autoClear=!1,this.fsQuad.material=this.material,this.uniforms.opacity.value=this.opacity,this.uniforms.tDiffuse.value=this.map,this.material.transparent=this.opacity<1,e.setRenderTarget(this.renderToScreen?null:r),this.clear&&e.clear(),this.fsQuad.render(e),e.autoClear=n}dispose(){this.material.dispose(),this.fsQuad.dispose()}}t.TexturePass=a},24064:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(49190),o=r(83453),l=r(78440),c=class extends a.Pass{constructor(e,t,r,n){super(),this.strength=void 0!==t?t:1,this.radius=r,this.threshold=n,this.resolution=void 0!==e?new s.Vector2(e.x,e.y):new s.Vector2(256,256),this.clearColor=new s.Color(0,0,0),this.renderTargetsHorizontal=[],this.renderTargetsVertical=[],this.nMips=5;let i=Math.round(this.resolution.x/2),c=Math.round(this.resolution.y/2);this.renderTargetBright=new s.WebGLRenderTarget(i,c,{type:s.HalfFloatType}),this.renderTargetBright.texture.name="UnrealBloomPass.bright",this.renderTargetBright.texture.generateMipmaps=!1;for(let a=0;a\n\t\t\t\tvarying vec2 vUv;\n\t\t\t\tuniform sampler2D colorTexture;\n\t\t\t\tuniform vec2 texSize;\n\t\t\t\tuniform vec2 direction;\n\n\t\t\t\tfloat gaussianPdf(in float x, in float sigma) {\n\t\t\t\t\treturn 0.39894 * exp( -0.5 * x * x/( sigma * sigma))/sigma;\n\t\t\t\t}\n\t\t\t\tvoid main() {\n\t\t\t\t\tvec2 invSize = 1.0 / texSize;\n\t\t\t\t\tfloat fSigma = float(SIGMA);\n\t\t\t\t\tfloat weightSum = gaussianPdf(0.0, fSigma);\n\t\t\t\t\tvec3 diffuseSum = texture2D( colorTexture, vUv).rgb * weightSum;\n\t\t\t\t\tfor( int i = 1; i < KERNEL_RADIUS; i ++ ) {\n\t\t\t\t\t\tfloat x = float(i);\n\t\t\t\t\t\tfloat w = gaussianPdf(x, fSigma);\n\t\t\t\t\t\tvec2 uvOffset = direction * invSize * x;\n\t\t\t\t\t\tvec3 sample1 = texture2D( colorTexture, vUv + uvOffset).rgb;\n\t\t\t\t\t\tvec3 sample2 = texture2D( colorTexture, vUv - uvOffset).rgb;\n\t\t\t\t\t\tdiffuseSum += (sample1 + sample2) * w;\n\t\t\t\t\t\tweightSum += 2.0 * w;\n\t\t\t\t\t}\n\t\t\t\t\tgl_FragColor = vec4(diffuseSum/weightSum, 1.0);\n\t\t\t\t}"})}getCompositeMaterial(e){return new s.ShaderMaterial({defines:{NUM_MIPS:e},uniforms:{blurTexture1:{value:null},blurTexture2:{value:null},blurTexture3:{value:null},blurTexture4:{value:null},blurTexture5:{value:null},bloomStrength:{value:1},bloomFactors:{value:null},bloomTintColors:{value:null},bloomRadius:{value:0}},vertexShader:"varying vec2 vUv;\n\t\t\t\tvoid main() {\n\t\t\t\t\tvUv = uv;\n\t\t\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\t\t\t\t}",fragmentShader:"varying vec2 vUv;\n\t\t\t\tuniform sampler2D blurTexture1;\n\t\t\t\tuniform sampler2D blurTexture2;\n\t\t\t\tuniform sampler2D blurTexture3;\n\t\t\t\tuniform sampler2D blurTexture4;\n\t\t\t\tuniform sampler2D blurTexture5;\n\t\t\t\tuniform float bloomStrength;\n\t\t\t\tuniform float bloomRadius;\n\t\t\t\tuniform float bloomFactors[NUM_MIPS];\n\t\t\t\tuniform vec3 bloomTintColors[NUM_MIPS];\n\n\t\t\t\tfloat lerpBloomFactor(const in float factor) {\n\t\t\t\t\tfloat mirrorFactor = 1.2 - factor;\n\t\t\t\t\treturn mix(factor, mirrorFactor, bloomRadius);\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\t\t\t\t\tgl_FragColor = bloomStrength * ( lerpBloomFactor(bloomFactors[0]) * vec4(bloomTintColors[0], 1.0) * texture2D(blurTexture1, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[1]) * vec4(bloomTintColors[1], 1.0) * texture2D(blurTexture2, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[2]) * vec4(bloomTintColors[2], 1.0) * texture2D(blurTexture3, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[3]) * vec4(bloomTintColors[3], 1.0) * texture2D(blurTexture4, vUv) +\n\t\t\t\t\t\tlerpBloomFactor(bloomFactors[4]) * vec4(bloomTintColors[4], 1.0) * texture2D(blurTexture5, vUv) );\n\t\t\t\t}"})}};let h=c;i(h,"BlurDirectionX",new s.Vector2(1,0)),i(h,"BlurDirectionY",new s.Vector2(0,1)),t.UnrealBloomPass=h},4437:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(49190);class o extends a.Pass{constructor(){super(),i(this,"material"),i(this,"fsQuad"),i(this,"factor"),i(this,"time"),i(this,"uniforms"),this.uniforms=s.UniformsUtils.clone({tex:{value:null},time:{value:0},factor:{value:0},resolution:{value:new s.Vector2(64,64)}}),this.material=new s.ShaderMaterial({uniforms:this.uniforms,vertexShader:"\n varying vec2 vUv;\n void main(){ \n vUv = uv; \n vec4 modelViewPosition = modelViewMatrix * vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewPosition;\n }",fragmentShader:"\n uniform float time;\n uniform float factor;\n uniform vec2 resolution;\n uniform sampler2D tex;\n varying vec2 vUv;\n void main() { \n vec2 uv1 = vUv;\n vec2 uv = gl_FragCoord.xy/resolution.xy;\n float frequency = 6.0 * factor;\n float amplitude = 0.015 * factor;\n float x = uv1.y * frequency + time * .7; \n float y = uv1.x * frequency + time * .3;\n uv1.x += cos(x+y) * amplitude * cos(y);\n uv1.y += sin(x-y) * amplitude * cos(y);\n vec4 rgba = texture2D(tex, uv1);\n gl_FragColor = rgba;\n }"}),this.fsQuad=new a.FullScreenQuad(this.material),this.factor=0,this.time=0}render(e,t,r){this.uniforms.tex.value=r.texture,this.uniforms.time.value=this.time,this.uniforms.factor.value=this.factor,this.renderToScreen?(e.setRenderTarget(null),this.fsQuad.render(e)):(e.setRenderTarget(t),this.clear&&e.clear(),this.fsQuad.render(e))}}t.WaterPass=o},58688:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i extends n.Object3D{constructor(e=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new n.Vector2(.5,.5),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this.center=e.center,this}}const s=new n.Vector3,a=new n.Matrix4,o=new n.Matrix4,l=new n.Vector3,c=new n.Vector3;t.CSS2DObject=i,t.CSS2DRenderer=class{constructor(e={}){const t=this;let r,n,i,h;const u={objects:new WeakMap},d=void 0!==e.element?e.element:document.createElement("div");function p(e,r,n){if(e.isCSS2DObject){s.setFromMatrixPosition(e.matrixWorld),s.applyMatrix4(o);const a=!0===e.visible&&s.z>=-1&&s.z<=1&&!0===e.layers.test(n.layers);if(e.element.style.display=!0===a?"":"none",!0===a){e.onBeforeRender(t,r,n);const a=e.element;a.style.transform="translate("+-100*e.center.x+"%,"+-100*e.center.y+"%)translate("+(s.x*i+i)+"px,"+(-s.y*h+h)+"px)",a.parentNode!==d&&d.appendChild(a),e.onAfterRender(t,r,n)}const l={distanceToCameraSquared:f(n,e)};u.objects.set(e,l)}for(let t=0,i=e.children.length;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Vector3,s=new n.Quaternion,a=new n.Vector3;class o extends n.Object3D{constructor(e=document.createElement("div")){super(),this.isCSS3DObject=!0,this.element=e,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.addEventListener("removed",(function(){this.traverse((function(e){e.element instanceof Element&&null!==e.element.parentNode&&e.element.parentNode.removeChild(e.element)}))}))}copy(e,t){return super.copy(e,t),this.element=e.element.cloneNode(!0),this}}const l=new n.Matrix4,c=new n.Matrix4;t.CSS3DObject=o,t.CSS3DRenderer=class{constructor(e={}){const t=this;let r,n,o,h;const u={camera:{style:""},objects:new WeakMap},d=void 0!==e.element?e.element:document.createElement("div");d.style.overflow="hidden",this.domElement=d;const p=document.createElement("div");p.style.transformOrigin="0 0",p.style.pointerEvents="none",d.appendChild(p);const f=document.createElement("div");function m(e){return Math.abs(e)<1e-10?0:e}function g(e){const t=e.elements;return"matrix3d("+m(t[0])+","+m(-t[1])+","+m(t[2])+","+m(t[3])+","+m(t[4])+","+m(-t[5])+","+m(t[6])+","+m(t[7])+","+m(t[8])+","+m(-t[9])+","+m(t[10])+","+m(t[11])+","+m(t[12])+","+m(-t[13])+","+m(t[14])+","+m(t[15])+")"}function A(e){const t=e.elements;return"translate(-50%,-50%)"+("matrix3d("+m(t[0])+","+m(t[1])+","+m(t[2])+","+m(t[3])+","+m(-t[4])+","+m(-t[5])+","+m(-t[6])+","+m(-t[7])+","+m(t[8])+","+m(t[9])+","+m(t[10])+","+m(t[11])+","+m(t[12])+","+m(t[13])+","+m(t[14])+","+m(t[15])+")")}function v(e,r,n,o){if(e.isCSS3DObject){const o=!0===e.visible&&!0===e.layers.test(n.layers);if(e.element.style.display=!0===o?"":"none",!0===o){let o;e.onBeforeRender(t,r,n),e.isCSS3DSprite?(l.copy(n.matrixWorldInverse),l.transpose(),0!==e.rotation2D&&l.multiply(c.makeRotationZ(e.rotation2D)),e.matrixWorld.decompose(i,s,a),l.setPosition(i),l.scale(a),l.elements[3]=0,l.elements[7]=0,l.elements[11]=0,l.elements[15]=1,o=A(l)):o=A(e.matrixWorld);const h=e.element,d=u.objects.get(e);if(void 0===d||d.style!==o){h.style.transform=o;const t={style:o};u.objects.set(e,t)}h.parentNode!==f&&f.appendChild(h),e.onAfterRender(t,r,n)}}for(let t=0,i=e.children.length;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i{constructor(){this.id=0,this.object=null,this.z=0,this.renderOrder=0}}class s{constructor(){this.id=0,this.v1=new a,this.v2=new a,this.v3=new a,this.normalModel=new n.Vector3,this.vertexNormalsModel=[new n.Vector3,new n.Vector3,new n.Vector3],this.vertexNormalsLength=0,this.color=new n.Color,this.material=null,this.uvs=[new n.Vector2,new n.Vector2,new n.Vector2],this.z=0,this.renderOrder=0}}class a{constructor(){this.position=new n.Vector3,this.positionWorld=new n.Vector3,this.positionScreen=new n.Vector4,this.visible=!0}copy(e){this.positionWorld.copy(e.positionWorld),this.positionScreen.copy(e.positionScreen)}}class o{constructor(){this.id=0,this.v1=new a,this.v2=new a,this.vertexColors=[new n.Color,new n.Color],this.material=null,this.z=0,this.renderOrder=0}}class l{constructor(){this.id=0,this.object=null,this.x=0,this.y=0,this.z=0,this.rotation=0,this.scale=new n.Vector2,this.material=null,this.renderOrder=0}}t.Projector=class{constructor(){let e,t,r,c,h,u,d,p,f,m,g,A=0,v=0,y=0,x=0,b=0;const E={objects:[],lights:[],elements:[]},_=new n.Vector3,S=new n.Vector4,M=new n.Box3(new n.Vector3(-1,-1,-1),new n.Vector3(1,1,1)),w=new n.Box3,C=new Array(3),T=new n.Matrix4,I=new n.Matrix4,B=new n.Matrix4,R=new n.Frustum,P=[],D=[],L=[],F=[],U=[];const O=new function(){const e=[],t=[],i=[];let l=null;const f=new n.Matrix3;function m(e){const t=e.position,r=e.positionWorld,n=e.positionScreen;r.copy(t).applyMatrix4(g),n.copy(r).applyMatrix4(I);const i=1/n.w;n.x*=i,n.y*=i,n.z*=i,e.visible=n.x>=-1&&n.x<=1&&n.y>=-1&&n.y<=1&&n.z>=-1&&n.z<=1}function A(e,t,r){return!0===e.visible||!0===t.visible||!0===r.visible||(C[0]=e.positionScreen,C[1]=t.positionScreen,C[2]=r.positionScreen,M.intersectsBox(w.setFromPoints(C)))}function b(e,t,r){return(r.positionScreen.x-e.positionScreen.x)*(t.positionScreen.y-e.positionScreen.y)-(r.positionScreen.y-e.positionScreen.y)*(t.positionScreen.x-e.positionScreen.x)<0}return{setObject:function(r){l=r,f.getNormalMatrix(l.matrixWorld),e.length=0,t.length=0,i.length=0},projectVertex:m,checkTriangleVisibility:A,checkBackfaceCulling:b,pushVertex:function(e,t,n){r=function(){if(c===v){const e=new a;return D.push(e),v++,c++,e}return D[c++]}(),r.position.set(e,t,n),m(r)},pushNormal:function(t,r,n){e.push(t,r,n)},pushColor:function(e,r,n){t.push(e,r,n)},pushUv:function(e,t){i.push(e,t)},pushLine:function(e,r){const n=D[e],i=D[r];n.positionScreen.copy(n.position).applyMatrix4(B),i.positionScreen.copy(i.position).applyMatrix4(B),!0===function(e,t){let r=0,n=1;const i=e.z+e.w,s=t.z+t.w,a=-e.z+e.w,o=-t.z+t.w;return i>=0&&s>=0&&a>=0&&o>=0||!(i<0&&s<0||a<0&&o<0)&&(i<0?r=Math.max(r,i/(i-s)):s<0&&(n=Math.min(n,i/(i-s))),a<0?r=Math.max(r,a/(a-o)):o<0&&(n=Math.min(n,a/(a-o))),!(n=-1&&e.z<=1&&(f=function(){if(m===b){const e=new l;return U.push(e),b++,m++,e}return U[m++]}(),f.id=t.id,f.x=e.x*n,f.y=e.y*n,f.z=e.z,f.renderOrder=t.renderOrder,f.object=t,f.rotation=t.rotation,f.scale.x=t.scale.x*Math.abs(f.x-(e.x+r.projectionMatrix.elements[0])/(e.w+r.projectionMatrix.elements[12])),f.scale.y=t.scale.y*Math.abs(f.y-(e.y+r.projectionMatrix.elements[5])/(e.w+r.projectionMatrix.elements[13])),f.material=t.material,E.elements.push(f))}function z(e,t){return e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id!==t.id?e.id-t.id:0}this.projectScene=function(e,r,n,i){u=0,p=0,m=0,E.elements.length=0,!0===e.matrixWorldAutoUpdate&&e.updateMatrixWorld(),null===r.parent&&!0===r.matrixWorldAutoUpdate&&r.updateMatrixWorld(),T.copy(r.matrixWorldInverse),I.multiplyMatrices(r.projectionMatrix,T),R.setFromProjectionMatrix(I),t=0,E.objects.length=0,E.lights.length=0,N(e),!0===n&&E.objects.sort(z);const s=E.objects;for(let t=0,a=s.length;t0)for(let n=0;n0)for(let n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(35404);class s extends n.Object3D{constructor(e){super(),this.isSVGObject=!0,this.node=e}}t.SVGObject=s,t.SVGRenderer=class{constructor(){let e,t,r,s,a,o,l,c,h,u,d,p,f,m=0,g=null,A=1;const v=this,y=new n.Box2,x=new n.Box2,b=new n.Color,E=new n.Color,_=new n.Color,S=new n.Color,M=new n.Color,w=new n.Color,C=new n.Vector3,T=new n.Vector3,I=new n.Vector3,B=new n.Matrix3,R=new n.Matrix4,P=new n.Matrix4,D=[],L=new i.Projector,F=document.createElementNS("http://www.w3.org/2000/svg","svg");function U(){for(m=0;F.childNodes.length>0;)F.removeChild(F.childNodes[0])}function O(e){return null!==g?e.toFixed(g):e}function N(e,t,r){let n=t.scale.x*o,i=t.scale.y*l;r.isPointsMaterial&&(n*=r.size,i*=r.size);const s="M"+O(e.x-.5*n)+","+O(e.y-.5*i)+"h"+O(n)+"v"+O(i)+"h"+O(-n)+"z";let a="";(r.isSpriteMaterial||r.isPointsMaterial)&&(a="fill:"+r.color.getStyle()+";fill-opacity:"+r.opacity),Q(a,s)}function k(e,t,r){const n="M"+O(e.positionScreen.x)+","+O(e.positionScreen.y)+"L"+O(t.positionScreen.x)+","+O(t.positionScreen.y);if(r.isLineBasicMaterial){let e="fill:none;stroke:"+r.color.getStyle()+";stroke-opacity:"+r.opacity+";stroke-width:"+r.linewidth+";stroke-linecap:"+r.linecap;r.isLineDashedMaterial&&(e=e+";stroke-dasharray:"+r.dashSize+","+r.gapSize),Q(e,n)}}function G(e,t,n,i,s){v.info.render.vertices+=3,v.info.render.faces++;const a="M"+O(e.positionScreen.x)+","+O(e.positionScreen.y)+"L"+O(t.positionScreen.x)+","+O(t.positionScreen.y)+"L"+O(n.positionScreen.x)+","+O(n.positionScreen.y)+"z";let o="";s.isMeshBasicMaterial?(b.copy(s.color),s.vertexColors&&b.multiply(i.color)):s.isMeshLambertMaterial||s.isMeshPhongMaterial||s.isMeshStandardMaterial?(E.copy(s.color),s.vertexColors&&E.multiply(i.color),b.copy(_),T.copy(e.positionWorld).add(t.positionWorld).add(n.positionWorld).divideScalar(3),function(e,t,r,n){for(let i=0,s=e.length;i1)continue;if(h.positionScreen.z<-1||h.positionScreen.z>1)continue;if(u.positionScreen.z<-1||u.positionScreen.z>1)continue;c.positionScreen.x*=o,c.positionScreen.y*=-l,h.positionScreen.x*=o,h.positionScreen.y*=-l,u.positionScreen.x*=o,u.positionScreen.y*=-l,this.overdraw>0&&(z(c.positionScreen,h.positionScreen,this.overdraw),z(h.positionScreen,u.positionScreen,this.overdraw),z(u.positionScreen,c.positionScreen,this.overdraw)),x.setFromPoints([c.positionScreen,h.positionScreen,u.positionScreen]),!0===y.intersectsBox(x)&&G(c,h,u,r,n)}}V(),s.traverseVisible((function(e){if(e.isSVGObject){if(C.setFromMatrixPosition(e.matrixWorld),C.applyMatrix4(P),C.z<-1||C.z>1)return;const t=C.x*o,r=-C.y*l,n=e.node;n.setAttribute("transform","translate("+t+","+r+")"),F.appendChild(n)}}))}}}},42333:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},exposure:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define saturate(a) clamp( a, 0.0, 1.0 )","uniform sampler2D tDiffuse;","uniform float exposure;","varying vec2 vUv;","vec3 RRTAndODTFit( vec3 v ) {","\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;","\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;","\treturn a / b;","}","vec3 ACESFilmicToneMapping( vec3 color ) {","\tconst mat3 ACESInputMat = mat3(","\t\tvec3( 0.59719, 0.07600, 0.02840 ),","\t\tvec3( 0.35458, 0.90834, 0.13383 ),","\t\tvec3( 0.04823, 0.01566, 0.83777 )","\t);","\tconst mat3 ACESOutputMat = mat3(","\t\tvec3( 1.60475, -0.10208, -0.00327 ),","\t\tvec3( -0.53108, 1.10813, -0.07276 ),","\t\tvec3( -0.07367, -0.00605, 1.07602 )","\t);","\tcolor = ACESInputMat * color;","\tcolor = RRTAndODTFit( color );","\tcolor = ACESOutputMat * color;","\treturn saturate( color );","}","void main() {","\tvec4 tex = texture2D( tDiffuse, vUv );","\ttex.rgb *= exposure / 0.6;","\tgl_FragColor = vec4( ACESFilmicToneMapping( tex.rgb ), tex.a );","}"].join("\n")};t.ACESFilmicToneMappingShader=r},70382:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{damp:{value:.96},tOld:{value:null},tNew:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float damp;","uniform sampler2D tOld;","uniform sampler2D tNew;","varying vec2 vUv;","vec4 when_gt( vec4 x, float y ) {","\treturn max( sign( x - y ), 0.0 );","}","void main() {","\tvec4 texelOld = texture2D( tOld, vUv );","\tvec4 texelNew = texture2D( tNew, vUv );","\ttexelOld *= damp * when_gt( texelOld, 0.1 );","\tgl_FragColor = max(texelNew, texelOld);","}"].join("\n")};t.AfterimageShader=r},17853:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{},vertexShader:["void main() {","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["void main() {","\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 0.5 );","}"].join("\n")};t.BasicShader=r},18260:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 base = texture2D( tDiffuse, vUv );","\tvec3 lumCoeff = vec3( 0.25, 0.65, 0.1 );","\tfloat lum = dot( lumCoeff, base.rgb );","\tvec3 blend = vec3( lum );","\tfloat L = min( 1.0, max( 0.0, 10.0 * ( lum - 0.45 ) ) );","\tvec3 result1 = 2.0 * base.rgb * blend;","\tvec3 result2 = 1.0 - 2.0 * ( 1.0 - blend ) * ( 1.0 - base.rgb );","\tvec3 newColor = mix( result1, result2, L );","\tfloat A2 = opacity * base.a;","\tvec3 mixRGB = A2 * newColor.rgb;","\tmixRGB += ( ( 1.0 - A2 ) * base.rgb );","\tgl_FragColor = vec4( mixRGB, base.a );","}"].join("\n")};t.BleachBypassShader=r},69556:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse1:{value:null},tDiffuse2:{value:null},mixRatio:{value:.5},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform float mixRatio;","uniform sampler2D tDiffuse1;","uniform sampler2D tDiffuse2;","varying vec2 vUv;","void main() {","\tvec4 texel1 = texture2D( tDiffuse1, vUv );","\tvec4 texel2 = texture2D( tDiffuse2, vUv );","\tgl_FragColor = opacity * mix( texel1, texel2, mixRatio );","}"].join("\n")};t.BlendShader=r},73500:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={defines:{DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tColor:{value:null},tDepth:{value:null},focus:{value:1},aspect:{value:1},aperture:{value:.025},maxblur:{value:.01},nearClip:{value:1},farClip:{value:1e3}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","varying vec2 vUv;","uniform sampler2D tColor;","uniform sampler2D tDepth;","uniform float maxblur;","uniform float aperture;","uniform float nearClip;","uniform float farClip;","uniform float focus;","uniform float aspect;","#include ","float getDepth( const in vec2 screenPosition ) {","\t#if DEPTH_PACKING == 1","\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );","\t#else","\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","float getViewZ( const in float depth ) {","\t#if PERSPECTIVE_CAMERA == 1","\treturn perspectiveDepthToViewZ( depth, nearClip, farClip );","\t#else","\treturn orthographicDepthToViewZ( depth, nearClip, farClip );","\t#endif","}","void main() {","\tvec2 aspectcorrect = vec2( 1.0, aspect );","\tfloat viewZ = getViewZ( getDepth( vUv ) );","\tfloat factor = ( focus + viewZ );","\tvec2 dofblur = vec2 ( clamp( factor * aperture, -maxblur, maxblur ) );","\tvec2 dofblur9 = dofblur * 0.9;","\tvec2 dofblur7 = dofblur * 0.7;","\tvec2 dofblur4 = dofblur * 0.4;","\tvec4 col = vec4( 0.0 );","\tcol += texture2D( tColor, vUv.xy );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * dofblur );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, 0.37 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, 0.15 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, -0.15 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, -0.37 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.15, 0.37 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.37, 0.15 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.37, -0.15 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.15, -0.37 ) * aspectcorrect ) * dofblur9 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.40, 0.0 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur7 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, 0.29 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.4, 0.0 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.29, -0.29 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, -0.4 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, 0.29 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.4, 0.0 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( -0.29, -0.29 ) * aspectcorrect ) * dofblur4 );","\tcol += texture2D( tColor, vUv.xy + ( vec2( 0.0, 0.4 ) * aspectcorrect ) * dofblur4 );","\tgl_FragColor = col / 41.0;","\tgl_FragColor.a = 1.0;","}"].join("\n")};t.BokehShader=r},67971:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{textureWidth:{value:1},textureHeight:{value:1},focalDepth:{value:1},focalLength:{value:24},fstop:{value:.9},tColor:{value:null},tDepth:{value:null},maxblur:{value:1},showFocus:{value:0},manualdof:{value:0},vignetting:{value:0},depthblur:{value:0},threshold:{value:.5},gain:{value:2},bias:{value:.5},fringe:{value:.7},znear:{value:.1},zfar:{value:100},noise:{value:1},dithering:{value:1e-4},pentagon:{value:0},shaderFocus:{value:1},focusCoords:{value:new(r(85232).Vector2)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","varying vec2 vUv;","uniform sampler2D tColor;","uniform sampler2D tDepth;","uniform float textureWidth;","uniform float textureHeight;","uniform float focalDepth; //focal distance value in meters, but you may use autofocus option below","uniform float focalLength; //focal length in mm","uniform float fstop; //f-stop value","uniform bool showFocus; //show debug focus point and focal range (red = focal point, green = focal range)","/*","make sure that these two values are the same for your camera, otherwise distances will be wrong.","*/","uniform float znear; // camera clipping start","uniform float zfar; // camera clipping end","//------------------------------------------","//user variables","const int samples = SAMPLES; //samples on the first ring","const int rings = RINGS; //ring count","const int maxringsamples = rings * samples;","uniform bool manualdof; // manual dof calculation","float ndofstart = 1.0; // near dof blur start","float ndofdist = 2.0; // near dof blur falloff distance","float fdofstart = 1.0; // far dof blur start","float fdofdist = 3.0; // far dof blur falloff distance","float CoC = 0.03; //circle of confusion size in mm (35mm film = 0.03mm)","uniform bool vignetting; // use optical lens vignetting","float vignout = 1.3; // vignetting outer border","float vignin = 0.0; // vignetting inner border","float vignfade = 22.0; // f-stops till vignete fades","uniform bool shaderFocus;","// disable if you use external focalDepth value","uniform vec2 focusCoords;","// autofocus point on screen (0.0,0.0 - left lower corner, 1.0,1.0 - upper right)","// if center of screen use vec2(0.5, 0.5);","uniform float maxblur;","//clamp value of max blur (0.0 = no blur, 1.0 default)","uniform float threshold; // highlight threshold;","uniform float gain; // highlight gain;","uniform float bias; // bokeh edge bias","uniform float fringe; // bokeh chromatic aberration / fringing","uniform bool noise; //use noise instead of pattern for sample dithering","uniform float dithering;","uniform bool depthblur; // blur the depth buffer","float dbsize = 1.25; // depth blur size","/*","next part is experimental","not looking good with small sample and ring count","looks okay starting from samples = 4, rings = 4","*/","uniform bool pentagon; //use pentagon as bokeh shape?","float feather = 0.4; //pentagon shape feather","//------------------------------------------","float penta(vec2 coords) {","\t//pentagonal shape","\tfloat scale = float(rings) - 1.3;","\tvec4 HS0 = vec4( 1.0, 0.0, 0.0, 1.0);","\tvec4 HS1 = vec4( 0.309016994, 0.951056516, 0.0, 1.0);","\tvec4 HS2 = vec4(-0.809016994, 0.587785252, 0.0, 1.0);","\tvec4 HS3 = vec4(-0.809016994,-0.587785252, 0.0, 1.0);","\tvec4 HS4 = vec4( 0.309016994,-0.951056516, 0.0, 1.0);","\tvec4 HS5 = vec4( 0.0 ,0.0 , 1.0, 1.0);","\tvec4 one = vec4( 1.0 );","\tvec4 P = vec4((coords),vec2(scale, scale));","\tvec4 dist = vec4(0.0);","\tfloat inorout = -4.0;","\tdist.x = dot( P, HS0 );","\tdist.y = dot( P, HS1 );","\tdist.z = dot( P, HS2 );","\tdist.w = dot( P, HS3 );","\tdist = smoothstep( -feather, feather, dist );","\tinorout += dot( dist, one );","\tdist.x = dot( P, HS4 );","\tdist.y = HS5.w - abs( P.z );","\tdist = smoothstep( -feather, feather, dist );","\tinorout += dist.x;","\treturn clamp( inorout, 0.0, 1.0 );","}","float bdepth(vec2 coords) {","\t// Depth buffer blur","\tfloat d = 0.0;","\tfloat kernel[9];","\tvec2 offset[9];","\tvec2 wh = vec2(1.0/textureWidth,1.0/textureHeight) * dbsize;","\toffset[0] = vec2(-wh.x,-wh.y);","\toffset[1] = vec2( 0.0, -wh.y);","\toffset[2] = vec2( wh.x -wh.y);","\toffset[3] = vec2(-wh.x, 0.0);","\toffset[4] = vec2( 0.0, 0.0);","\toffset[5] = vec2( wh.x, 0.0);","\toffset[6] = vec2(-wh.x, wh.y);","\toffset[7] = vec2( 0.0, wh.y);","\toffset[8] = vec2( wh.x, wh.y);","\tkernel[0] = 1.0/16.0; kernel[1] = 2.0/16.0; kernel[2] = 1.0/16.0;","\tkernel[3] = 2.0/16.0; kernel[4] = 4.0/16.0; kernel[5] = 2.0/16.0;","\tkernel[6] = 1.0/16.0; kernel[7] = 2.0/16.0; kernel[8] = 1.0/16.0;","\tfor( int i=0; i<9; i++ ) {","\t\tfloat tmp = texture2D(tDepth, coords + offset[i]).r;","\t\td += tmp * kernel[i];","\t}","\treturn d;","}","vec3 color(vec2 coords,float blur) {","\t//processing the sample","\tvec3 col = vec3(0.0);","\tvec2 texel = vec2(1.0/textureWidth,1.0/textureHeight);","\tcol.r = texture2D(tColor,coords + vec2(0.0,1.0)*texel*fringe*blur).r;","\tcol.g = texture2D(tColor,coords + vec2(-0.866,-0.5)*texel*fringe*blur).g;","\tcol.b = texture2D(tColor,coords + vec2(0.866,-0.5)*texel*fringe*blur).b;","\tvec3 lumcoeff = vec3(0.299,0.587,0.114);","\tfloat lum = dot(col.rgb, lumcoeff);","\tfloat thresh = max((lum-threshold)*gain, 0.0);","\treturn col+mix(vec3(0.0),col,thresh*blur);","}","vec3 debugFocus(vec3 col, float blur, float depth) {","\tfloat edge = 0.002*depth; //distance based edge smoothing","\tfloat m = clamp(smoothstep(0.0,edge,blur),0.0,1.0);","\tfloat e = clamp(smoothstep(1.0-edge,1.0,blur),0.0,1.0);","\tcol = mix(col,vec3(1.0,0.5,0.0),(1.0-m)*0.6);","\tcol = mix(col,vec3(0.0,0.5,1.0),((1.0-e)-(1.0-m))*0.2);","\treturn col;","}","float linearize(float depth) {","\treturn -zfar * znear / (depth * (zfar - znear) - zfar);","}","float vignette() {","\tfloat dist = distance(vUv.xy, vec2(0.5,0.5));","\tdist = smoothstep(vignout+(fstop/vignfade), vignin+(fstop/vignfade), dist);","\treturn clamp(dist,0.0,1.0);","}","float gather(float i, float j, int ringsamples, inout vec3 col, float w, float h, float blur) {","\tfloat rings2 = float(rings);","\tfloat step = PI*2.0 / float(ringsamples);","\tfloat pw = cos(j*step)*i;","\tfloat ph = sin(j*step)*i;","\tfloat p = 1.0;","\tif (pentagon) {","\t\tp = penta(vec2(pw,ph));","\t}","\tcol += color(vUv.xy + vec2(pw*w,ph*h), blur) * mix(1.0, i/rings2, bias) * p;","\treturn 1.0 * mix(1.0, i /rings2, bias) * p;","}","void main() {","\t//scene depth calculation","\tfloat depth = linearize(texture2D(tDepth,vUv.xy).x);","\t// Blur depth?","\tif ( depthblur ) {","\t\tdepth = linearize(bdepth(vUv.xy));","\t}","\t//focal plane calculation","\tfloat fDepth = focalDepth;","\tif (shaderFocus) {","\t\tfDepth = linearize(texture2D(tDepth,focusCoords).x);","\t}","\t// dof blur factor calculation","\tfloat blur = 0.0;","\tif (manualdof) {","\t\tfloat a = depth-fDepth; // Focal plane","\t\tfloat b = (a-fdofstart)/fdofdist; // Far DoF","\t\tfloat c = (-a-ndofstart)/ndofdist; // Near Dof","\t\tblur = (a>0.0) ? b : c;","\t} else {","\t\tfloat f = focalLength; // focal length in mm","\t\tfloat d = fDepth*1000.0; // focal plane in mm","\t\tfloat o = depth*1000.0; // depth in mm","\t\tfloat a = (o*f)/(o-f);","\t\tfloat b = (d*f)/(d-f);","\t\tfloat c = (d-f)/(d*fstop*CoC);","\t\tblur = abs(a-b)*c;","\t}","\tblur = clamp(blur,0.0,1.0);","\t// calculation of pattern for dithering","\tvec2 noise = vec2(rand(vUv.xy), rand( vUv.xy + vec2( 0.4, 0.6 ) ) )*dithering*blur;","\t// getting blur x and y step factor","\tfloat w = (1.0/textureWidth)*blur*maxblur+noise.x;","\tfloat h = (1.0/textureHeight)*blur*maxblur+noise.y;","\t// calculation of final color","\tvec3 col = vec3(0.0);","\tif(blur < 0.05) {","\t\t//some optimization thingy","\t\tcol = texture2D(tColor, vUv.xy).rgb;","\t} else {","\t\tcol = texture2D(tColor, vUv.xy).rgb;","\t\tfloat s = 1.0;","\t\tint ringsamples;","\t\tfor (int i = 1; i <= rings; i++) {","\t\t\t/*unboxstart*/","\t\t\tringsamples = i * samples;","\t\t\tfor (int j = 0 ; j < maxringsamples ; j++) {","\t\t\t\tif (j >= ringsamples) break;","\t\t\t\ts += gather(float(i), float(j), ringsamples, col, w, h, blur);","\t\t\t}","\t\t\t/*unboxend*/","\t\t}","\t\tcol /= s; //divide by sample count","\t}","\tif (showFocus) {","\t\tcol = debugFocus(col, blur, depth);","\t}","\tif (vignetting) {","\t\tcol *= vignette();","\t}","\tgl_FragColor.rgb = col;","\tgl_FragColor.a = 1.0;","} "].join("\n")},i={uniforms:{mNear:{value:1},mFar:{value:1e3}},vertexShader:["varying float vViewZDepth;","void main() {","\t#include ","\t#include ","\tvViewZDepth = - mvPosition.z;","}"].join("\n"),fragmentShader:["uniform float mNear;","uniform float mFar;","varying float vViewZDepth;","void main() {","\tfloat color = 1.0 - smoothstep( mNear, mFar, vViewZDepth );","\tgl_FragColor = vec4( vec3( color ), 1.0 );","} "].join("\n")};t.BokehDepthShader=i,t.BokehShader2=n},49890:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},brightness:{value:0},contrast:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float brightness;","uniform float contrast;","varying vec2 vUv;","void main() {","\tgl_FragColor = texture2D( tDiffuse, vUv );","\tgl_FragColor.rgb += brightness;","\tif (contrast > 0.0) {","\t\tgl_FragColor.rgb = (gl_FragColor.rgb - 0.5) / (1.0 - contrast) + 0.5;","\t} else {","\t\tgl_FragColor.rgb = (gl_FragColor.rgb - 0.5) * (1.0 + contrast) + 0.5;","\t}","}"].join("\n")};t.BrightnessContrastShader=r},67618:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={uniforms:{tDiffuse:{value:null},powRGB:{value:new n.Vector3(2,2,2)},mulRGB:{value:new n.Vector3(1,1,1)},addRGB:{value:new n.Vector3(0,0,0)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform vec3 powRGB;","uniform vec3 mulRGB;","uniform vec3 addRGB;","varying vec2 vUv;","void main() {","\tgl_FragColor = texture2D( tDiffuse, vUv );","\tgl_FragColor.rgb = mulRGB * pow( ( gl_FragColor.rgb + addRGB ), powRGB );","}"].join("\n")};t.ColorCorrectionShader=i},2474:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},color:{value:new(r(85232).Color)(16777215)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform vec3 color;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tvec3 luma = vec3( 0.299, 0.587, 0.114 );","\tfloat v = dot( texel.xyz, luma );","\tgl_FragColor = vec4( v * color, texel.w );","}"].join("\n")};t.ColorifyShader=n},59564:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={defines:{KERNEL_SIZE_FLOAT:"25.0",KERNEL_SIZE_INT:"25"},uniforms:{tDiffuse:{value:null},uImageIncrement:{value:new(r(85232).Vector2)(.001953125,0)},cKernel:{value:[]}},vertexShader:["uniform vec2 uImageIncrement;","varying vec2 vUv;","void main() {","\tvUv = uv - ( ( KERNEL_SIZE_FLOAT - 1.0 ) / 2.0 ) * uImageIncrement;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float cKernel[ KERNEL_SIZE_INT ];","uniform sampler2D tDiffuse;","uniform vec2 uImageIncrement;","varying vec2 vUv;","void main() {","\tvec2 imageCoord = vUv;","\tvec4 sum = vec4( 0.0, 0.0, 0.0, 0.0 );","\tfor( int i = 0; i < KERNEL_SIZE_INT; i ++ ) {","\t\tsum += texture2D( tDiffuse, imageCoord ) * cKernel[ i ];","\t\timageCoord += uImageIncrement;","\t}","\tgl_FragColor = sum;","}"].join("\n"),buildKernel:function(e){const t=Math.min(2*Math.ceil(3*e)+1,25),r=.5*(t-1),n=new Array(t);let i=0;for(let o=0;o{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tgl_FragColor = opacity * texel;","}"].join("\n")};t.CopyShader=r},55175:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tColor:{value:null},tDepth:{value:null},focus:{value:1},maxblur:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float focus;","uniform float maxblur;","uniform sampler2D tColor;","uniform sampler2D tDepth;","varying vec2 vUv;","void main() {","\tvec4 depth = texture2D( tDepth, vUv );","\tfloat factor = depth.x - focus;","\tvec4 col = texture2D( tColor, vUv, 2.0 * maxblur * abs( focus - depth.x ) );","\tgl_FragColor = col;","\tgl_FragColor.a = 1.0;","}"].join("\n")};t.DOFMipMapShader=r},86170:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={defines:{KERNEL_RADIUS:4,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDiffuse:{value:null},size:{value:new n.Vector2(512,512)},sampleUvOffsets:{value:[new n.Vector2(0,0)]},sampleWeights:{value:[1]},tDepth:{value:null},cameraNear:{value:10},cameraFar:{value:1e3},depthCutoff:{value:10}},vertexShader:["#include ","uniform vec2 size;","varying vec2 vUv;","varying vec2 vInvSize;","void main() {","\tvUv = uv;","\tvInvSize = 1.0 / size;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","#include ","uniform sampler2D tDiffuse;","uniform sampler2D tDepth;","uniform float cameraNear;","uniform float cameraFar;","uniform float depthCutoff;","uniform vec2 sampleUvOffsets[ KERNEL_RADIUS + 1 ];","uniform float sampleWeights[ KERNEL_RADIUS + 1 ];","varying vec2 vUv;","varying vec2 vInvSize;","float getDepth( const in vec2 screenPosition ) {","\t#if DEPTH_PACKING == 1","\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );","\t#else","\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","float getViewZ( const in float depth ) {","\t#if PERSPECTIVE_CAMERA == 1","\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );","\t#else","\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );","\t#endif","}","void main() {","\tfloat depth = getDepth( vUv );","\tif( depth >= ( 1.0 - EPSILON ) ) {","\t\tdiscard;","\t}","\tfloat centerViewZ = -getViewZ( depth );","\tbool rBreak = false, lBreak = false;","\tfloat weightSum = sampleWeights[0];","\tvec4 diffuseSum = texture2D( tDiffuse, vUv ) * weightSum;","\tfor( int i = 1; i <= KERNEL_RADIUS; i ++ ) {","\t\tfloat sampleWeight = sampleWeights[i];","\t\tvec2 sampleUvOffset = sampleUvOffsets[i] * vInvSize;","\t\tvec2 sampleUv = vUv + sampleUvOffset;","\t\tfloat viewZ = -getViewZ( getDepth( sampleUv ) );","\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) rBreak = true;","\t\tif( ! rBreak ) {","\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;","\t\t\tweightSum += sampleWeight;","\t\t}","\t\tsampleUv = vUv - sampleUvOffset;","\t\tviewZ = -getViewZ( getDepth( sampleUv ) );","\t\tif( abs( viewZ - centerViewZ ) > depthCutoff ) lBreak = true;","\t\tif( ! lBreak ) {","\t\t\tdiffuseSum += texture2D( tDiffuse, sampleUv ) * sampleWeight;","\t\t\tweightSum += sampleWeight;","\t\t}","\t}","\tgl_FragColor = diffuseSum / weightSum;","}"].join("\n")},s={createSampleWeights:(e,t)=>{const r=[];for(let s=0;s<=e;s++)r.push((n=s,i=t,Math.exp(-n*n/(i*i*2))/(Math.sqrt(2*Math.PI)*i)));var n,i;return r},createSampleOffsets:(e,t)=>{const r=[];for(let n=0;n<=e;n++)r.push(t.clone().multiplyScalar(n));return r},configure:(e,t,r,n)=>{e.defines.KERNEL_RADIUS=t,e.uniforms.sampleUvOffsets.value=s.createSampleOffsets(t,n),e.uniforms.sampleWeights.value=s.createSampleWeights(t,r),e.needsUpdate=!0}};t.BlurShaderUtils=s,t.DepthLimitedBlurShader=i},59305:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},tDisp:{value:null},byp:{value:0},amount:{value:.08},angle:{value:.02},seed:{value:.02},seed_x:{value:.02},seed_y:{value:.02},distortion_x:{value:.5},distortion_y:{value:.6},col_s:{value:.05}},vertexShader:"varying vec2 vUv;\n void main() {\n \t vUv = uv;\n \t gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }",fragmentShader:"uniform int byp; //should we apply the glitch ?\n uniform sampler2D tDiffuse;\n uniform sampler2D tDisp;\n uniform float amount;\n uniform float angle;\n uniform float seed;\n uniform float seed_x;\n uniform float seed_y;\n uniform float distortion_x;\n uniform float distortion_y;\n uniform float col_s;\n\n varying vec2 vUv;\n\n float rand(vec2 co){\n \t return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);\n }\n\n void main() {\n \tif(byp<1) {\n \t\tvec2 p = vUv;\n \t\tfloat xs = floor(gl_FragCoord.x / 0.5);\n \t\tfloat ys = floor(gl_FragCoord.y / 0.5);\n //based on staffantans glitch shader for unity https://github.com/staffantan/unityglitch\n \t\tvec4 normal = texture2D (tDisp, p*seed*seed);\n \t\tif(p.ydistortion_x-col_s*seed) {\n \t\t\tif(seed_x>0.){\n \t\t\t\tp.y = 1. - (p.y + distortion_y);\n \t\t\t}\n \t\t\telse {\n \t\t\t\tp.y = distortion_y;\n \t\t\t}\n \t\t}\n \t\tif(p.xdistortion_y-col_s*seed) {\n \t\t\tif(seed_y>0.){\n \t\t\t\tp.x=distortion_x;\n \t\t\t}\n \t\t\telse {\n \t\t\t\tp.x = 1. - (p.x + distortion_x);\n \t\t\t}\n \t\t}\n \t\tp.x+=normal.x*seed_x*(seed/5.);\n \t\tp.y+=normal.y*seed_y*(seed/5.);\n //base from RGB shift shader\n \t\tvec2 offset = amount * vec2( cos(angle), sin(angle));\n \t\tvec4 cr = texture2D(tDiffuse, p + offset);\n \t\tvec4 cga = texture2D(tDiffuse, p);\n \t\tvec4 cb = texture2D(tDiffuse, p - offset);\n \t\tgl_FragColor = vec4(cr.r, cga.g, cb.b, cga.a);\n //add noise\n \t\tvec4 snow = 200.*amount*vec4(rand(vec2(xs * seed,ys * seed*50.))*0.2);\n \t\tgl_FragColor = gl_FragColor+ snow;\n \t}\n \telse {\n \t\tgl_FragColor=texture2D (tDiffuse, vUv);\n \t}\n }"};t.DigitalGlitch=r},15479:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={uniforms:{tDiffuse:{value:null},tSize:{value:new n.Vector2(256,256)},center:{value:new n.Vector2(.5,.5)},angle:{value:1.57},scale:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform vec2 center;","uniform float angle;","uniform float scale;","uniform vec2 tSize;","uniform sampler2D tDiffuse;","varying vec2 vUv;","float pattern() {","\tfloat s = sin( angle ), c = cos( angle );","\tvec2 tex = vUv * tSize - center;","\tvec2 point = vec2( c * tex.x - s * tex.y, s * tex.x + c * tex.y ) * scale;","\treturn ( sin( point.x ) * sin( point.y ) ) * 4.0;","}","void main() {","\tvec4 color = texture2D( tDiffuse, vUv );","\tfloat average = ( color.r + color.g + color.b ) / 3.0;","\tgl_FragColor = vec4( vec3( average * 10.0 - 5.0 + pattern() ), color.a );","}"].join("\n")};t.DotScreenShader=i},85832:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},resolution:{value:new(r(85232).Vector2)(1/1024,1/512)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["precision highp float;","","uniform sampler2D tDiffuse;","","uniform vec2 resolution;","","varying vec2 vUv;","","// FXAA 3.11 implementation by NVIDIA, ported to WebGL by Agost Biro (biro@archilogic.com)","","//----------------------------------------------------------------------------------","// File: es3-keplerFXAAassetsshaders/FXAA_DefaultES.frag","// SDK Version: v3.00","// Email: gameworks@nvidia.com","// Site: http://developer.nvidia.com/","//","// Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.","//","// Redistribution and use in source and binary forms, with or without","// modification, are permitted provided that the following conditions","// are met:","// * Redistributions of source code must retain the above copyright","// notice, this list of conditions and the following disclaimer.","// * Redistributions in binary form must reproduce the above copyright","// notice, this list of conditions and the following disclaimer in the","// documentation and/or other materials provided with the distribution.","// * Neither the name of NVIDIA CORPORATION nor the names of its","// contributors may be used to endorse or promote products derived","// from this software without specific prior written permission.","//","// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY","// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE","// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR","// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR","// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,","// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,","// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR","// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY","// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT","// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE","// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.","//","//----------------------------------------------------------------------------------","","#define FXAA_PC 1","#define FXAA_GLSL_100 1","#define FXAA_QUALITY_PRESET 12","","#define FXAA_GREEN_AS_LUMA 1","","/*--------------------------------------------------------------------------*/","#ifndef FXAA_PC_CONSOLE"," //"," // The console algorithm for PC is included"," // for developers targeting really low spec machines."," // Likely better to just run FXAA_PC, and use a really low preset."," //"," #define FXAA_PC_CONSOLE 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_GLSL_120"," #define FXAA_GLSL_120 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_GLSL_130"," #define FXAA_GLSL_130 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_HLSL_3"," #define FXAA_HLSL_3 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_HLSL_4"," #define FXAA_HLSL_4 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_HLSL_5"," #define FXAA_HLSL_5 0","#endif","/*==========================================================================*/","#ifndef FXAA_GREEN_AS_LUMA"," //"," // For those using non-linear color,"," // and either not able to get luma in alpha, or not wanting to,"," // this enables FXAA to run using green as a proxy for luma."," // So with this enabled, no need to pack luma in alpha."," //"," // This will turn off AA on anything which lacks some amount of green."," // Pure red and blue or combination of only R and B, will get no AA."," //"," // Might want to lower the settings for both,"," // fxaaConsoleEdgeThresholdMin"," // fxaaQualityEdgeThresholdMin"," // In order to insure AA does not get turned off on colors"," // which contain a minor amount of green."," //"," // 1 = On."," // 0 = Off."," //"," #define FXAA_GREEN_AS_LUMA 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_EARLY_EXIT"," //"," // Controls algorithm's early exit path."," // On PS3 turning this ON adds 2 cycles to the shader."," // On 360 turning this OFF adds 10ths of a millisecond to the shader."," // Turning this off on console will result in a more blurry image."," // So this defaults to on."," //"," // 1 = On."," // 0 = Off."," //"," #define FXAA_EARLY_EXIT 1","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_DISCARD"," //"," // Only valid for PC OpenGL currently."," // Probably will not work when FXAA_GREEN_AS_LUMA = 1."," //"," // 1 = Use discard on pixels which don't need AA."," // For APIs which enable concurrent TEX+ROP from same surface."," // 0 = Return unchanged color on pixels which don't need AA."," //"," #define FXAA_DISCARD 0","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_FAST_PIXEL_OFFSET"," //"," // Used for GLSL 120 only."," //"," // 1 = GL API supports fast pixel offsets"," // 0 = do not use fast pixel offsets"," //"," #ifdef GL_EXT_gpu_shader4"," #define FXAA_FAST_PIXEL_OFFSET 1"," #endif"," #ifdef GL_NV_gpu_shader5"," #define FXAA_FAST_PIXEL_OFFSET 1"," #endif"," #ifdef GL_ARB_gpu_shader5"," #define FXAA_FAST_PIXEL_OFFSET 1"," #endif"," #ifndef FXAA_FAST_PIXEL_OFFSET"," #define FXAA_FAST_PIXEL_OFFSET 0"," #endif","#endif","/*--------------------------------------------------------------------------*/","#ifndef FXAA_GATHER4_ALPHA"," //"," // 1 = API supports gather4 on alpha channel."," // 0 = API does not support gather4 on alpha channel."," //"," #if (FXAA_HLSL_5 == 1)"," #define FXAA_GATHER4_ALPHA 1"," #endif"," #ifdef GL_ARB_gpu_shader5"," #define FXAA_GATHER4_ALPHA 1"," #endif"," #ifdef GL_NV_gpu_shader5"," #define FXAA_GATHER4_ALPHA 1"," #endif"," #ifndef FXAA_GATHER4_ALPHA"," #define FXAA_GATHER4_ALPHA 0"," #endif","#endif","","","/*============================================================================"," FXAA QUALITY - TUNING KNOBS","------------------------------------------------------------------------------","NOTE the other tuning knobs are now in the shader function inputs!","============================================================================*/","#ifndef FXAA_QUALITY_PRESET"," //"," // Choose the quality preset."," // This needs to be compiled into the shader as it effects code."," // Best option to include multiple presets is to"," // in each shader define the preset, then include this file."," //"," // OPTIONS"," // -----------------------------------------------------------------------"," // 10 to 15 - default medium dither (10=fastest, 15=highest quality)"," // 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)"," // 39 - no dither, very expensive"," //"," // NOTES"," // -----------------------------------------------------------------------"," // 12 = slightly faster then FXAA 3.9 and higher edge quality (default)"," // 13 = about same speed as FXAA 3.9 and better than 12"," // 23 = closest to FXAA 3.9 visually and performance wise"," // _ = the lowest digit is directly related to performance"," // _ = the highest digit is directly related to style"," //"," #define FXAA_QUALITY_PRESET 12","#endif","","","/*============================================================================",""," FXAA QUALITY - PRESETS","","============================================================================*/","","/*============================================================================"," FXAA QUALITY - MEDIUM DITHER PRESETS","============================================================================*/","#if (FXAA_QUALITY_PRESET == 10)"," #define FXAA_QUALITY_PS 3"," #define FXAA_QUALITY_P0 1.5"," #define FXAA_QUALITY_P1 3.0"," #define FXAA_QUALITY_P2 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 11)"," #define FXAA_QUALITY_PS 4"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 3.0"," #define FXAA_QUALITY_P3 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 12)"," #define FXAA_QUALITY_PS 5"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 4.0"," #define FXAA_QUALITY_P4 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 13)"," #define FXAA_QUALITY_PS 6"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 4.0"," #define FXAA_QUALITY_P5 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 14)"," #define FXAA_QUALITY_PS 7"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 4.0"," #define FXAA_QUALITY_P6 12.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 15)"," #define FXAA_QUALITY_PS 8"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 4.0"," #define FXAA_QUALITY_P7 12.0","#endif","","/*============================================================================"," FXAA QUALITY - LOW DITHER PRESETS","============================================================================*/","#if (FXAA_QUALITY_PRESET == 20)"," #define FXAA_QUALITY_PS 3"," #define FXAA_QUALITY_P0 1.5"," #define FXAA_QUALITY_P1 2.0"," #define FXAA_QUALITY_P2 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 21)"," #define FXAA_QUALITY_PS 4"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 22)"," #define FXAA_QUALITY_PS 5"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 23)"," #define FXAA_QUALITY_PS 6"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 24)"," #define FXAA_QUALITY_PS 7"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 3.0"," #define FXAA_QUALITY_P6 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 25)"," #define FXAA_QUALITY_PS 8"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 4.0"," #define FXAA_QUALITY_P7 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 26)"," #define FXAA_QUALITY_PS 9"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 4.0"," #define FXAA_QUALITY_P8 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 27)"," #define FXAA_QUALITY_PS 10"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 2.0"," #define FXAA_QUALITY_P8 4.0"," #define FXAA_QUALITY_P9 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 28)"," #define FXAA_QUALITY_PS 11"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 2.0"," #define FXAA_QUALITY_P8 2.0"," #define FXAA_QUALITY_P9 4.0"," #define FXAA_QUALITY_P10 8.0","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_QUALITY_PRESET == 29)"," #define FXAA_QUALITY_PS 12"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.5"," #define FXAA_QUALITY_P2 2.0"," #define FXAA_QUALITY_P3 2.0"," #define FXAA_QUALITY_P4 2.0"," #define FXAA_QUALITY_P5 2.0"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 2.0"," #define FXAA_QUALITY_P8 2.0"," #define FXAA_QUALITY_P9 2.0"," #define FXAA_QUALITY_P10 4.0"," #define FXAA_QUALITY_P11 8.0","#endif","","/*============================================================================"," FXAA QUALITY - EXTREME QUALITY","============================================================================*/","#if (FXAA_QUALITY_PRESET == 39)"," #define FXAA_QUALITY_PS 12"," #define FXAA_QUALITY_P0 1.0"," #define FXAA_QUALITY_P1 1.0"," #define FXAA_QUALITY_P2 1.0"," #define FXAA_QUALITY_P3 1.0"," #define FXAA_QUALITY_P4 1.0"," #define FXAA_QUALITY_P5 1.5"," #define FXAA_QUALITY_P6 2.0"," #define FXAA_QUALITY_P7 2.0"," #define FXAA_QUALITY_P8 2.0"," #define FXAA_QUALITY_P9 2.0"," #define FXAA_QUALITY_P10 4.0"," #define FXAA_QUALITY_P11 8.0","#endif","","","","/*============================================================================",""," API PORTING","","============================================================================*/","#if (FXAA_GLSL_100 == 1) || (FXAA_GLSL_120 == 1) || (FXAA_GLSL_130 == 1)"," #define FxaaBool bool"," #define FxaaDiscard discard"," #define FxaaFloat float"," #define FxaaFloat2 vec2"," #define FxaaFloat3 vec3"," #define FxaaFloat4 vec4"," #define FxaaHalf float"," #define FxaaHalf2 vec2"," #define FxaaHalf3 vec3"," #define FxaaHalf4 vec4"," #define FxaaInt2 ivec2"," #define FxaaSat(x) clamp(x, 0.0, 1.0)"," #define FxaaTex sampler2D","#else"," #define FxaaBool bool"," #define FxaaDiscard clip(-1)"," #define FxaaFloat float"," #define FxaaFloat2 float2"," #define FxaaFloat3 float3"," #define FxaaFloat4 float4"," #define FxaaHalf half"," #define FxaaHalf2 half2"," #define FxaaHalf3 half3"," #define FxaaHalf4 half4"," #define FxaaSat(x) saturate(x)","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_GLSL_100 == 1)"," #define FxaaTexTop(t, p) texture2D(t, p, 0.0)"," #define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r), 0.0)","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_GLSL_120 == 1)"," // Requires,"," // #version 120"," // And at least,"," // #extension GL_EXT_gpu_shader4 : enable"," // (or set FXAA_FAST_PIXEL_OFFSET 1 to work like DX9)"," #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)"," #if (FXAA_FAST_PIXEL_OFFSET == 1)"," #define FxaaTexOff(t, p, o, r) texture2DLodOffset(t, p, 0.0, o)"," #else"," #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)"," #endif"," #if (FXAA_GATHER4_ALPHA == 1)"," // use #extension GL_ARB_gpu_shader5 : enable"," #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)"," #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)"," #define FxaaTexGreen4(t, p) textureGather(t, p, 1)"," #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)"," #endif","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_GLSL_130 == 1)",' // Requires "#version 130" or better'," #define FxaaTexTop(t, p) textureLod(t, p, 0.0)"," #define FxaaTexOff(t, p, o, r) textureLodOffset(t, p, 0.0, o)"," #if (FXAA_GATHER4_ALPHA == 1)"," // use #extension GL_ARB_gpu_shader5 : enable"," #define FxaaTexAlpha4(t, p) textureGather(t, p, 3)"," #define FxaaTexOffAlpha4(t, p, o) textureGatherOffset(t, p, o, 3)"," #define FxaaTexGreen4(t, p) textureGather(t, p, 1)"," #define FxaaTexOffGreen4(t, p, o) textureGatherOffset(t, p, o, 1)"," #endif","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_HLSL_3 == 1)"," #define FxaaInt2 float2"," #define FxaaTex sampler2D"," #define FxaaTexTop(t, p) tex2Dlod(t, float4(p, 0.0, 0.0))"," #define FxaaTexOff(t, p, o, r) tex2Dlod(t, float4(p + (o * r), 0, 0))","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_HLSL_4 == 1)"," #define FxaaInt2 int2"," struct FxaaTex { SamplerState smpl; Texture2D tex; };"," #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)"," #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)","#endif","/*--------------------------------------------------------------------------*/","#if (FXAA_HLSL_5 == 1)"," #define FxaaInt2 int2"," struct FxaaTex { SamplerState smpl; Texture2D tex; };"," #define FxaaTexTop(t, p) t.tex.SampleLevel(t.smpl, p, 0.0)"," #define FxaaTexOff(t, p, o, r) t.tex.SampleLevel(t.smpl, p, 0.0, o)"," #define FxaaTexAlpha4(t, p) t.tex.GatherAlpha(t.smpl, p)"," #define FxaaTexOffAlpha4(t, p, o) t.tex.GatherAlpha(t.smpl, p, o)"," #define FxaaTexGreen4(t, p) t.tex.GatherGreen(t.smpl, p)"," #define FxaaTexOffGreen4(t, p, o) t.tex.GatherGreen(t.smpl, p, o)","#endif","","","/*============================================================================"," GREEN AS LUMA OPTION SUPPORT FUNCTION","============================================================================*/","#if (FXAA_GREEN_AS_LUMA == 0)"," FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.w; }","#else"," FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }","#endif","","","","","/*============================================================================",""," FXAA3 QUALITY - PC","","============================================================================*/","#if (FXAA_PC == 1)","/*--------------------------------------------------------------------------*/","FxaaFloat4 FxaaPixelShader("," //"," // Use noperspective interpolation here (turn off perspective interpolation)."," // {xy} = center of pixel"," FxaaFloat2 pos,"," //"," // Used only for FXAA Console, and not used on the 360 version."," // Use noperspective interpolation here (turn off perspective interpolation)."," // {xy_} = upper left of pixel"," // {_zw} = lower right of pixel"," FxaaFloat4 fxaaConsolePosPos,"," //"," // Input color texture."," // {rgb_} = color in linear or perceptual color space"," // if (FXAA_GREEN_AS_LUMA == 0)"," // {__a} = luma in perceptual color space (not linear)"," FxaaTex tex,"," //"," // Only used on the optimized 360 version of FXAA Console.",' // For everything but 360, just use the same input here as for "tex".'," // For 360, same texture, just alias with a 2nd sampler."," // This sampler needs to have an exponent bias of -1."," FxaaTex fxaaConsole360TexExpBiasNegOne,"," //"," // Only used on the optimized 360 version of FXAA Console.",' // For everything but 360, just use the same input here as for "tex".'," // For 360, same texture, just alias with a 3nd sampler."," // This sampler needs to have an exponent bias of -2."," FxaaTex fxaaConsole360TexExpBiasNegTwo,"," //"," // Only used on FXAA Quality."," // This must be from a constant/uniform."," // {x_} = 1.0/screenWidthInPixels"," // {_y} = 1.0/screenHeightInPixels"," FxaaFloat2 fxaaQualityRcpFrame,"," //"," // Only used on FXAA Console."," // This must be from a constant/uniform."," // This effects sub-pixel AA quality and inversely sharpness."," // Where N ranges between,"," // N = 0.50 (default)"," // N = 0.33 (sharper)"," // {x__} = -N/screenWidthInPixels"," // {_y_} = -N/screenHeightInPixels"," // {_z_} = N/screenWidthInPixels"," // {__w} = N/screenHeightInPixels"," FxaaFloat4 fxaaConsoleRcpFrameOpt,"," //"," // Only used on FXAA Console."," // Not used on 360, but used on PS3 and PC."," // This must be from a constant/uniform."," // {x__} = -2.0/screenWidthInPixels"," // {_y_} = -2.0/screenHeightInPixels"," // {_z_} = 2.0/screenWidthInPixels"," // {__w} = 2.0/screenHeightInPixels"," FxaaFloat4 fxaaConsoleRcpFrameOpt2,"," //"," // Only used on FXAA Console."," // Only used on 360 in place of fxaaConsoleRcpFrameOpt2."," // This must be from a constant/uniform."," // {x__} = 8.0/screenWidthInPixels"," // {_y_} = 8.0/screenHeightInPixels"," // {_z_} = -4.0/screenWidthInPixels"," // {__w} = -4.0/screenHeightInPixels"," FxaaFloat4 fxaaConsole360RcpFrameOpt2,"," //"," // Only used on FXAA Quality."," // This used to be the FXAA_QUALITY_SUBPIX define."," // It is here now to allow easier tuning."," // Choose the amount of sub-pixel aliasing removal."," // This can effect sharpness."," // 1.00 - upper limit (softer)"," // 0.75 - default amount of filtering"," // 0.50 - lower limit (sharper, less sub-pixel aliasing removal)"," // 0.25 - almost off"," // 0.00 - completely off"," FxaaFloat fxaaQualitySubpix,"," //"," // Only used on FXAA Quality."," // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define."," // It is here now to allow easier tuning."," // The minimum amount of local contrast required to apply algorithm."," // 0.333 - too little (faster)"," // 0.250 - low quality"," // 0.166 - default"," // 0.125 - high quality"," // 0.063 - overkill (slower)"," FxaaFloat fxaaQualityEdgeThreshold,"," //"," // Only used on FXAA Quality."," // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define."," // It is here now to allow easier tuning."," // Trims the algorithm from processing darks."," // 0.0833 - upper limit (default, the start of visible unfiltered edges)"," // 0.0625 - high quality (faster)"," // 0.0312 - visible limit (slower)"," // Special notes when using FXAA_GREEN_AS_LUMA,"," // Likely want to set this to zero."," // As colors that are mostly not-green"," // will appear very dark in the green channel!"," // Tune by looking at mostly non-green content,"," // then start at zero and increase until aliasing is a problem."," FxaaFloat fxaaQualityEdgeThresholdMin,"," //"," // Only used on FXAA Console."," // This used to be the FXAA_CONSOLE_EDGE_SHARPNESS define."," // It is here now to allow easier tuning."," // This does not effect PS3, as this needs to be compiled in."," // Use FXAA_CONSOLE_PS3_EDGE_SHARPNESS for PS3."," // Due to the PS3 being ALU bound,"," // there are only three safe values here: 2 and 4 and 8."," // These options use the shaders ability to a free *|/ by 2|4|8."," // For all other platforms can be a non-power of two."," // 8.0 is sharper (default!!!)"," // 4.0 is softer"," // 2.0 is really soft (good only for vector graphics inputs)"," FxaaFloat fxaaConsoleEdgeSharpness,"," //"," // Only used on FXAA Console."," // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD define."," // It is here now to allow easier tuning."," // This does not effect PS3, as this needs to be compiled in."," // Use FXAA_CONSOLE_PS3_EDGE_THRESHOLD for PS3."," // Due to the PS3 being ALU bound,"," // there are only two safe values here: 1/4 and 1/8."," // These options use the shaders ability to a free *|/ by 2|4|8."," // The console setting has a different mapping than the quality setting."," // Other platforms can use other values."," // 0.125 leaves less aliasing, but is softer (default!!!)"," // 0.25 leaves more aliasing, and is sharper"," FxaaFloat fxaaConsoleEdgeThreshold,"," //"," // Only used on FXAA Console."," // This used to be the FXAA_CONSOLE_EDGE_THRESHOLD_MIN define."," // It is here now to allow easier tuning."," // Trims the algorithm from processing darks."," // The console setting has a different mapping than the quality setting."," // This only applies when FXAA_EARLY_EXIT is 1."," // This does not apply to PS3,"," // PS3 was simplified to avoid more shader instructions."," // 0.06 - faster but more aliasing in darks"," // 0.05 - default"," // 0.04 - slower and less aliasing in darks"," // Special notes when using FXAA_GREEN_AS_LUMA,"," // Likely want to set this to zero."," // As colors that are mostly not-green"," // will appear very dark in the green channel!"," // Tune by looking at mostly non-green content,"," // then start at zero and increase until aliasing is a problem."," FxaaFloat fxaaConsoleEdgeThresholdMin,"," //"," // Extra constants for 360 FXAA Console only."," // Use zeros or anything else for other platforms."," // These must be in physical constant registers and NOT immediates."," // Immediates will result in compiler un-optimizing."," // {xyzw} = float4(1.0, -1.0, 0.25, -0.25)"," FxaaFloat4 fxaaConsole360ConstDir",") {","/*--------------------------------------------------------------------------*/"," FxaaFloat2 posM;"," posM.x = pos.x;"," posM.y = pos.y;"," #if (FXAA_GATHER4_ALPHA == 1)"," #if (FXAA_DISCARD == 0)"," FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);"," #if (FXAA_GREEN_AS_LUMA == 0)"," #define lumaM rgbyM.w"," #else"," #define lumaM rgbyM.y"," #endif"," #endif"," #if (FXAA_GREEN_AS_LUMA == 0)"," FxaaFloat4 luma4A = FxaaTexAlpha4(tex, posM);"," FxaaFloat4 luma4B = FxaaTexOffAlpha4(tex, posM, FxaaInt2(-1, -1));"," #else"," FxaaFloat4 luma4A = FxaaTexGreen4(tex, posM);"," FxaaFloat4 luma4B = FxaaTexOffGreen4(tex, posM, FxaaInt2(-1, -1));"," #endif"," #if (FXAA_DISCARD == 1)"," #define lumaM luma4A.w"," #endif"," #define lumaE luma4A.z"," #define lumaS luma4A.x"," #define lumaSE luma4A.y"," #define lumaNW luma4B.w"," #define lumaN luma4B.z"," #define lumaW luma4B.x"," #else"," FxaaFloat4 rgbyM = FxaaTexTop(tex, posM);"," #if (FXAA_GREEN_AS_LUMA == 0)"," #define lumaM rgbyM.w"," #else"," #define lumaM rgbyM.y"," #endif"," #if (FXAA_GLSL_100 == 1)"," FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0, 1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 0.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 0.0,-1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 0.0), fxaaQualityRcpFrame.xy));"," #else"," FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));"," #endif"," #endif","/*--------------------------------------------------------------------------*/"," FxaaFloat maxSM = max(lumaS, lumaM);"," FxaaFloat minSM = min(lumaS, lumaM);"," FxaaFloat maxESM = max(lumaE, maxSM);"," FxaaFloat minESM = min(lumaE, minSM);"," FxaaFloat maxWN = max(lumaN, lumaW);"," FxaaFloat minWN = min(lumaN, lumaW);"," FxaaFloat rangeMax = max(maxWN, maxESM);"," FxaaFloat rangeMin = min(minWN, minESM);"," FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;"," FxaaFloat range = rangeMax - rangeMin;"," FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);"," FxaaBool earlyExit = range < rangeMaxClamped;","/*--------------------------------------------------------------------------*/"," if(earlyExit)"," #if (FXAA_DISCARD == 1)"," FxaaDiscard;"," #else"," return rgbyM;"," #endif","/*--------------------------------------------------------------------------*/"," #if (FXAA_GATHER4_ALPHA == 0)"," #if (FXAA_GLSL_100 == 1)"," FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0,-1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0, 1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2( 1.0,-1.0), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaFloat2(-1.0, 1.0), fxaaQualityRcpFrame.xy));"," #else"," FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));"," #endif"," #else"," FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(1, -1), fxaaQualityRcpFrame.xy));"," FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));"," #endif","/*--------------------------------------------------------------------------*/"," FxaaFloat lumaNS = lumaN + lumaS;"," FxaaFloat lumaWE = lumaW + lumaE;"," FxaaFloat subpixRcpRange = 1.0/range;"," FxaaFloat subpixNSWE = lumaNS + lumaWE;"," FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;"," FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;","/*--------------------------------------------------------------------------*/"," FxaaFloat lumaNESE = lumaNE + lumaSE;"," FxaaFloat lumaNWNE = lumaNW + lumaNE;"," FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;"," FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;","/*--------------------------------------------------------------------------*/"," FxaaFloat lumaNWSW = lumaNW + lumaSW;"," FxaaFloat lumaSWSE = lumaSW + lumaSE;"," FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);"," FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);"," FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;"," FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;"," FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;"," FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;","/*--------------------------------------------------------------------------*/"," FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;"," FxaaFloat lengthSign = fxaaQualityRcpFrame.x;"," FxaaBool horzSpan = edgeHorz >= edgeVert;"," FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;","/*--------------------------------------------------------------------------*/"," if(!horzSpan) lumaN = lumaW;"," if(!horzSpan) lumaS = lumaE;"," if(horzSpan) lengthSign = fxaaQualityRcpFrame.y;"," FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;","/*--------------------------------------------------------------------------*/"," FxaaFloat gradientN = lumaN - lumaM;"," FxaaFloat gradientS = lumaS - lumaM;"," FxaaFloat lumaNN = lumaN + lumaM;"," FxaaFloat lumaSS = lumaS + lumaM;"," FxaaBool pairN = abs(gradientN) >= abs(gradientS);"," FxaaFloat gradient = max(abs(gradientN), abs(gradientS));"," if(pairN) lengthSign = -lengthSign;"," FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);","/*--------------------------------------------------------------------------*/"," FxaaFloat2 posB;"," posB.x = posM.x;"," posB.y = posM.y;"," FxaaFloat2 offNP;"," offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;"," offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;"," if(!horzSpan) posB.x += lengthSign * 0.5;"," if( horzSpan) posB.y += lengthSign * 0.5;","/*--------------------------------------------------------------------------*/"," FxaaFloat2 posN;"," posN.x = posB.x - offNP.x * FXAA_QUALITY_P0;"," posN.y = posB.y - offNP.y * FXAA_QUALITY_P0;"," FxaaFloat2 posP;"," posP.x = posB.x + offNP.x * FXAA_QUALITY_P0;"," posP.y = posB.y + offNP.y * FXAA_QUALITY_P0;"," FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;"," FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));"," FxaaFloat subpixE = subpixC * subpixC;"," FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));","/*--------------------------------------------------------------------------*/"," if(!pairN) lumaNN = lumaSS;"," FxaaFloat gradientScaled = gradient * 1.0/4.0;"," FxaaFloat lumaMM = lumaM - lumaNN * 0.5;"," FxaaFloat subpixF = subpixD * subpixE;"," FxaaBool lumaMLTZero = lumaMM < 0.0;","/*--------------------------------------------------------------------------*/"," lumaEndN -= lumaNN * 0.5;"," lumaEndP -= lumaNN * 0.5;"," FxaaBool doneN = abs(lumaEndN) >= gradientScaled;"," FxaaBool doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;"," FxaaBool doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;","/*--------------------------------------------------------------------------*/"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 3)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 4)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 5)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 6)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 7)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 8)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 9)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 10)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 11)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;","/*--------------------------------------------------------------------------*/"," #if (FXAA_QUALITY_PS > 12)"," if(doneNP) {"," if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));"," if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));"," if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;"," if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;"," doneN = abs(lumaEndN) >= gradientScaled;"," doneP = abs(lumaEndP) >= gradientScaled;"," if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;"," if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;"," doneNP = (!doneN) || (!doneP);"," if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;"," if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }"," #endif","/*--------------------------------------------------------------------------*/"," }","/*--------------------------------------------------------------------------*/"," FxaaFloat dstN = posM.x - posN.x;"," FxaaFloat dstP = posP.x - posM.x;"," if(!horzSpan) dstN = posM.y - posN.y;"," if(!horzSpan) dstP = posP.y - posM.y;","/*--------------------------------------------------------------------------*/"," FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;"," FxaaFloat spanLength = (dstP + dstN);"," FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;"," FxaaFloat spanLengthRcp = 1.0/spanLength;","/*--------------------------------------------------------------------------*/"," FxaaBool directionN = dstN < dstP;"," FxaaFloat dst = min(dstN, dstP);"," FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;"," FxaaFloat subpixG = subpixF * subpixF;"," FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;"," FxaaFloat subpixH = subpixG * fxaaQualitySubpix;","/*--------------------------------------------------------------------------*/"," FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;"," FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);"," if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;"," if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;"," #if (FXAA_DISCARD == 1)"," return FxaaTexTop(tex, posM);"," #else"," return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);"," #endif","}","/*==========================================================================*/","#endif","","void main() {"," gl_FragColor = FxaaPixelShader("," vUv,"," vec4(0.0),"," tDiffuse,"," tDiffuse,"," tDiffuse,"," resolution,"," vec4(0.0),"," vec4(0.0),"," vec4(0.0),"," 0.75,"," 0.166,"," 0.0833,"," 0.0,"," 0.0,"," 0.0,"," vec4(0.0)"," );",""," // TODO avoid querying texture twice for same texel"," gl_FragColor.a = texture2D(tDiffuse, vUv).a;","}"].join("\n")};t.FXAAShader=n},29076:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},time:{value:0},nIntensity:{value:.5},sIntensity:{value:.05},sCount:{value:4096},grayscale:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","uniform float time;","uniform bool grayscale;","uniform float nIntensity;","uniform float sIntensity;","uniform float sCount;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 cTextureScreen = texture2D( tDiffuse, vUv );","\tfloat dx = rand( vUv + time );","\tvec3 cResult = cTextureScreen.rgb + cTextureScreen.rgb * clamp( 0.1 + dx, 0.0, 1.0 );","\tvec2 sc = vec2( sin( vUv.y * sCount ), cos( vUv.y * sCount ) );","\tcResult += cTextureScreen.rgb * vec3( sc.x, sc.y, sc.x ) * sIntensity;","\tcResult = cTextureScreen.rgb + clamp( nIntensity, 0.0,1.0 ) * ( cResult - cTextureScreen.rgb );","\tif( grayscale ) {","\t\tcResult = vec3( cResult.r * 0.3 + cResult.g * 0.59 + cResult.b * 0.11 );","\t}","\tgl_FragColor = vec4( cResult, cTextureScreen.a );","}"].join("\n")};t.FilmShader=r},13855:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},screenWidth:{value:1024},screenHeight:{value:1024},sampleDistance:{value:.94},waveFactor:{value:.00125}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float screenWidth;","uniform float screenHeight;","uniform float sampleDistance;","uniform float waveFactor;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 color, org, tmp, add;","\tfloat sample_dist, f;","\tvec2 vin;","\tvec2 uv = vUv;","\tadd = color = org = texture2D( tDiffuse, uv );","\tvin = ( uv - vec2( 0.5 ) ) * vec2( 1.4 );","\tsample_dist = dot( vin, vin ) * 2.0;","\tf = ( waveFactor * 100.0 + sample_dist ) * sampleDistance * 4.0;","\tvec2 sampleSize = vec2( 1.0 / screenWidth, 1.0 / screenHeight ) * vec2( f );","\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.111964, 0.993712 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.846724, 0.532032 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.943883, -0.330279 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( 0.330279, -0.943883 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.532032, -0.846724 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.993712, -0.111964 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tadd += tmp = texture2D( tDiffuse, uv + vec2( -0.707107, 0.707107 ) * sampleSize );","\tif( tmp.b < color.b ) color = tmp;","\tcolor = color * vec4( 2.0 ) - ( add / vec4( 8.0 ) );","\tcolor = color + ( add / vec4( 8.0 ) - color ) * ( vec4( 1.0 ) - vec4( sample_dist * 0.5 ) );","\tgl_FragColor = vec4( color.rgb * color.rgb * vec3( 0.95 ) + color.rgb, 1.0 );","}"].join("\n")};t.FocusShader=r},37272:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},aspect:{value:new(r(85232).Vector2)(512,512)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","uniform vec2 aspect;","vec2 texel = vec2(1.0 / aspect.x, 1.0 / aspect.y);","mat3 G[9];","const mat3 g0 = mat3( 0.3535533845424652, 0, -0.3535533845424652, 0.5, 0, -0.5, 0.3535533845424652, 0, -0.3535533845424652 );","const mat3 g1 = mat3( 0.3535533845424652, 0.5, 0.3535533845424652, 0, 0, 0, -0.3535533845424652, -0.5, -0.3535533845424652 );","const mat3 g2 = mat3( 0, 0.3535533845424652, -0.5, -0.3535533845424652, 0, 0.3535533845424652, 0.5, -0.3535533845424652, 0 );","const mat3 g3 = mat3( 0.5, -0.3535533845424652, 0, -0.3535533845424652, 0, 0.3535533845424652, 0, 0.3535533845424652, -0.5 );","const mat3 g4 = mat3( 0, -0.5, 0, 0.5, 0, 0.5, 0, -0.5, 0 );","const mat3 g5 = mat3( -0.5, 0, 0.5, 0, 0, 0, 0.5, 0, -0.5 );","const mat3 g6 = mat3( 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.6666666865348816, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204 );","const mat3 g7 = mat3( -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, 0.6666666865348816, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408 );","const mat3 g8 = mat3( 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408 );","void main(void)","{","\tG[0] = g0,","\tG[1] = g1,","\tG[2] = g2,","\tG[3] = g3,","\tG[4] = g4,","\tG[5] = g5,","\tG[6] = g6,","\tG[7] = g7,","\tG[8] = g8;","\tmat3 I;","\tfloat cnv[9];","\tvec3 sample;","\tfor (float i=0.0; i<3.0; i++) {","\t\tfor (float j=0.0; j<3.0; j++) {","\t\t\tsample = texture2D(tDiffuse, vUv + texel * vec2(i-1.0,j-1.0) ).rgb;","\t\t\tI[int(i)][int(j)] = length(sample);","\t\t}","\t}","\tfor (int i=0; i<9; i++) {","\t\tfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);","\t\tcnv[i] = dp3 * dp3;","\t}","\tfloat M = (cnv[0] + cnv[1]) + (cnv[2] + cnv[3]);","\tfloat S = (cnv[4] + cnv[5]) + (cnv[6] + cnv[7]) + (cnv[8] + M);","\tgl_FragColor = vec4(vec3(sqrt(M/S)), 1.0);","}"].join("\n")};t.FreiChenShader=n},29839:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{mRefractionRatio:{value:1.02},mFresnelBias:{value:.1},mFresnelPower:{value:2},mFresnelScale:{value:1},tCube:{value:null}},vertexShader:["uniform float mRefractionRatio;","uniform float mFresnelBias;","uniform float mFresnelScale;","uniform float mFresnelPower;","varying vec3 vReflect;","varying vec3 vRefract[3];","varying float vReflectionFactor;","void main() {","\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );","\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );","\tvec3 worldNormal = normalize( mat3( modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz ) * normal );","\tvec3 I = worldPosition.xyz - cameraPosition;","\tvReflect = reflect( I, worldNormal );","\tvRefract[0] = refract( normalize( I ), worldNormal, mRefractionRatio );","\tvRefract[1] = refract( normalize( I ), worldNormal, mRefractionRatio * 0.99 );","\tvRefract[2] = refract( normalize( I ), worldNormal, mRefractionRatio * 0.98 );","\tvReflectionFactor = mFresnelBias + mFresnelScale * pow( 1.0 + dot( normalize( I ), worldNormal ), mFresnelPower );","\tgl_Position = projectionMatrix * mvPosition;","}"].join("\n"),fragmentShader:["uniform samplerCube tCube;","varying vec3 vReflect;","varying vec3 vRefract[3];","varying float vReflectionFactor;","void main() {","\tvec4 reflectedColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );","\tvec4 refractedColor = vec4( 1.0 );","\trefractedColor.r = textureCube( tCube, vec3( -vRefract[0].x, vRefract[0].yz ) ).r;","\trefractedColor.g = textureCube( tCube, vec3( -vRefract[1].x, vRefract[1].yz ) ).g;","\trefractedColor.b = textureCube( tCube, vec3( -vRefract[2].x, vRefract[2].yz ) ).b;","\tgl_FragColor = mix( refractedColor, reflectedColor, clamp( vReflectionFactor, 0.0, 1.0 ) );","}"].join("\n")};t.FresnelShader=r},85402:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 tex = texture2D( tDiffuse, vUv );","\tgl_FragColor = LinearTosRGB( tex );","}"].join("\n")};t.GammaCorrectionShader=r},50044:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={uniforms:{tInput:{value:null}},vertexShader:["varying vec2 vUv;","void main() {"," vUv = uv;"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["varying vec2 vUv;","uniform sampler2D tInput;","void main() {","\tgl_FragColor = vec4( 1.0 ) - texture2D( tInput, vUv );","}"].join("\n")},s={uniforms:{tInput:{value:null},fStepSize:{value:1},vSunPositionScreenSpace:{value:new n.Vector3}},vertexShader:["varying vec2 vUv;","void main() {"," vUv = uv;"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define TAPS_PER_PASS 6.0","varying vec2 vUv;","uniform sampler2D tInput;","uniform vec3 vSunPositionScreenSpace;","uniform float fStepSize;","void main() {","\tvec2 delta = vSunPositionScreenSpace.xy - vUv;","\tfloat dist = length( delta );","\tvec2 stepv = fStepSize * delta / dist;","\tfloat iters = dist/fStepSize;","\tvec2 uv = vUv.xy;","\tfloat col = 0.0;","\tfloat f = min( 1.0, max( vSunPositionScreenSpace.z / 1000.0, 0.0 ) );","\tif ( 0.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 1.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 2.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 3.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 4.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tif ( 5.0 <= iters && uv.y < 1.0 ) col += texture2D( tInput, uv ).r * f;","\tuv += stepv;","\tgl_FragColor = vec4( col/TAPS_PER_PASS );","\tgl_FragColor.a = 1.0;","}"].join("\n")},a={uniforms:{tColors:{value:null},tGodRays:{value:null},fGodRayIntensity:{value:.69}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["varying vec2 vUv;","uniform sampler2D tColors;","uniform sampler2D tGodRays;","uniform float fGodRayIntensity;","void main() {","\tgl_FragColor = texture2D( tColors, vUv ) + fGodRayIntensity * vec4( 1.0 - texture2D( tGodRays, vUv ).r );","\tgl_FragColor.a = 1.0;","}"].join("\n")},o={uniforms:{vSunPositionScreenSpace:{value:new n.Vector3},fAspect:{value:1},sunColor:{value:new n.Color(16772608)},bgColor:{value:new n.Color(0)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["varying vec2 vUv;","uniform vec3 vSunPositionScreenSpace;","uniform float fAspect;","uniform vec3 sunColor;","uniform vec3 bgColor;","void main() {","\tvec2 diff = vUv - vSunPositionScreenSpace.xy;","\tdiff.x *= fAspect;","\tfloat prop = clamp( length( diff ) / 0.5, 0.0, 1.0 );","\tprop = 0.35 * pow( 1.0 - prop, 3.0 );","\tgl_FragColor.xyz = ( vSunPositionScreenSpace.z > 0.0 ) ? mix( sunColor, bgColor, 1.0 - prop ) : bgColor;","\tgl_FragColor.w = 1.0;","}"].join("\n")};t.GodRaysCombineShader=a,t.GodRaysDepthMaskShader=i,t.GodRaysFakeSunShader=o,t.GodRaysGenerateShader=s},79169:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},shape:{value:1},radius:{value:4},rotateR:{value:Math.PI/12*1},rotateG:{value:Math.PI/12*2},rotateB:{value:Math.PI/12*3},scatter:{value:0},width:{value:1},height:{value:1},blending:{value:1},blendingMode:{value:1},greyscale:{value:!1},disable:{value:!1}},vertexShader:["varying vec2 vUV;","void main() {","\tvUV = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);","}"].join("\n"),fragmentShader:["#define SQRT2_MINUS_ONE 0.41421356","#define SQRT2_HALF_MINUS_ONE 0.20710678","#define PI2 6.28318531","#define SHAPE_DOT 1","#define SHAPE_ELLIPSE 2","#define SHAPE_LINE 3","#define SHAPE_SQUARE 4","#define BLENDING_LINEAR 1","#define BLENDING_MULTIPLY 2","#define BLENDING_ADD 3","#define BLENDING_LIGHTER 4","#define BLENDING_DARKER 5","uniform sampler2D tDiffuse;","uniform float radius;","uniform float rotateR;","uniform float rotateG;","uniform float rotateB;","uniform float scatter;","uniform float width;","uniform float height;","uniform int shape;","uniform bool disable;","uniform float blending;","uniform int blendingMode;","varying vec2 vUV;","uniform bool greyscale;","const int samples = 8;","float blend( float a, float b, float t ) {","\treturn a * ( 1.0 - t ) + b * t;","}","float hypot( float x, float y ) {","\treturn sqrt( x * x + y * y );","}","float rand( vec2 seed ){","return fract( sin( dot( seed.xy, vec2( 12.9898, 78.233 ) ) ) * 43758.5453 );","}","float distanceToDotRadius( float channel, vec2 coord, vec2 normal, vec2 p, float angle, float rad_max ) {","\tfloat dist = hypot( coord.x - p.x, coord.y - p.y );","\tfloat rad = channel;","\tif ( shape == SHAPE_DOT ) {","\t\trad = pow( abs( rad ), 1.125 ) * rad_max;","\t} else if ( shape == SHAPE_ELLIPSE ) {","\t\trad = pow( abs( rad ), 1.125 ) * rad_max;","\t\tif ( dist != 0.0 ) {","\t\t\tfloat dot_p = abs( ( p.x - coord.x ) / dist * normal.x + ( p.y - coord.y ) / dist * normal.y );","\t\t\tdist = ( dist * ( 1.0 - SQRT2_HALF_MINUS_ONE ) ) + dot_p * dist * SQRT2_MINUS_ONE;","\t\t}","\t} else if ( shape == SHAPE_LINE ) {","\t\trad = pow( abs( rad ), 1.5) * rad_max;","\t\tfloat dot_p = ( p.x - coord.x ) * normal.x + ( p.y - coord.y ) * normal.y;","\t\tdist = hypot( normal.x * dot_p, normal.y * dot_p );","\t} else if ( shape == SHAPE_SQUARE ) {","\t\tfloat theta = atan( p.y - coord.y, p.x - coord.x ) - angle;","\t\tfloat sin_t = abs( sin( theta ) );","\t\tfloat cos_t = abs( cos( theta ) );","\t\trad = pow( abs( rad ), 1.4 );","\t\trad = rad_max * ( rad + ( ( sin_t > cos_t ) ? rad - sin_t * rad : rad - cos_t * rad ) );","\t}","\treturn rad - dist;","}","struct Cell {","\tvec2 normal;","\tvec2 p1;","\tvec2 p2;","\tvec2 p3;","\tvec2 p4;","\tfloat samp2;","\tfloat samp1;","\tfloat samp3;","\tfloat samp4;","};","vec4 getSample( vec2 point ) {","\tvec4 tex = texture2D( tDiffuse, vec2( point.x / width, point.y / height ) );","\tfloat base = rand( vec2( floor( point.x ), floor( point.y ) ) ) * PI2;","\tfloat step = PI2 / float( samples );","\tfloat dist = radius * 0.66;","\tfor ( int i = 0; i < samples; ++i ) {","\t\tfloat r = base + step * float( i );","\t\tvec2 coord = point + vec2( cos( r ) * dist, sin( r ) * dist );","\t\ttex += texture2D( tDiffuse, vec2( coord.x / width, coord.y / height ) );","\t}","\ttex /= float( samples ) + 1.0;","\treturn tex;","}","float getDotColour( Cell c, vec2 p, int channel, float angle, float aa ) {","\tfloat dist_c_1, dist_c_2, dist_c_3, dist_c_4, res;","\tif ( channel == 0 ) {","\t\tc.samp1 = getSample( c.p1 ).r;","\t\tc.samp2 = getSample( c.p2 ).r;","\t\tc.samp3 = getSample( c.p3 ).r;","\t\tc.samp4 = getSample( c.p4 ).r;","\t} else if (channel == 1) {","\t\tc.samp1 = getSample( c.p1 ).g;","\t\tc.samp2 = getSample( c.p2 ).g;","\t\tc.samp3 = getSample( c.p3 ).g;","\t\tc.samp4 = getSample( c.p4 ).g;","\t} else {","\t\tc.samp1 = getSample( c.p1 ).b;","\t\tc.samp3 = getSample( c.p3 ).b;","\t\tc.samp2 = getSample( c.p2 ).b;","\t\tc.samp4 = getSample( c.p4 ).b;","\t}","\tdist_c_1 = distanceToDotRadius( c.samp1, c.p1, c.normal, p, angle, radius );","\tdist_c_2 = distanceToDotRadius( c.samp2, c.p2, c.normal, p, angle, radius );","\tdist_c_3 = distanceToDotRadius( c.samp3, c.p3, c.normal, p, angle, radius );","\tdist_c_4 = distanceToDotRadius( c.samp4, c.p4, c.normal, p, angle, radius );","\tres = ( dist_c_1 > 0.0 ) ? clamp( dist_c_1 / aa, 0.0, 1.0 ) : 0.0;","\tres += ( dist_c_2 > 0.0 ) ? clamp( dist_c_2 / aa, 0.0, 1.0 ) : 0.0;","\tres += ( dist_c_3 > 0.0 ) ? clamp( dist_c_3 / aa, 0.0, 1.0 ) : 0.0;","\tres += ( dist_c_4 > 0.0 ) ? clamp( dist_c_4 / aa, 0.0, 1.0 ) : 0.0;","\tres = clamp( res, 0.0, 1.0 );","\treturn res;","}","Cell getReferenceCell( vec2 p, vec2 origin, float grid_angle, float step ) {","\tCell c;","\tvec2 n = vec2( cos( grid_angle ), sin( grid_angle ) );","\tfloat threshold = step * 0.5;","\tfloat dot_normal = n.x * ( p.x - origin.x ) + n.y * ( p.y - origin.y );","\tfloat dot_line = -n.y * ( p.x - origin.x ) + n.x * ( p.y - origin.y );","\tvec2 offset = vec2( n.x * dot_normal, n.y * dot_normal );","\tfloat offset_normal = mod( hypot( offset.x, offset.y ), step );","\tfloat normal_dir = ( dot_normal < 0.0 ) ? 1.0 : -1.0;","\tfloat normal_scale = ( ( offset_normal < threshold ) ? -offset_normal : step - offset_normal ) * normal_dir;","\tfloat offset_line = mod( hypot( ( p.x - offset.x ) - origin.x, ( p.y - offset.y ) - origin.y ), step );","\tfloat line_dir = ( dot_line < 0.0 ) ? 1.0 : -1.0;","\tfloat line_scale = ( ( offset_line < threshold ) ? -offset_line : step - offset_line ) * line_dir;","\tc.normal = n;","\tc.p1.x = p.x - n.x * normal_scale + n.y * line_scale;","\tc.p1.y = p.y - n.y * normal_scale - n.x * line_scale;","\tif ( scatter != 0.0 ) {","\t\tfloat off_mag = scatter * threshold * 0.5;","\t\tfloat off_angle = rand( vec2( floor( c.p1.x ), floor( c.p1.y ) ) ) * PI2;","\t\tc.p1.x += cos( off_angle ) * off_mag;","\t\tc.p1.y += sin( off_angle ) * off_mag;","\t}","\tfloat normal_step = normal_dir * ( ( offset_normal < threshold ) ? step : -step );","\tfloat line_step = line_dir * ( ( offset_line < threshold ) ? step : -step );","\tc.p2.x = c.p1.x - n.x * normal_step;","\tc.p2.y = c.p1.y - n.y * normal_step;","\tc.p3.x = c.p1.x + n.y * line_step;","\tc.p3.y = c.p1.y - n.x * line_step;","\tc.p4.x = c.p1.x - n.x * normal_step + n.y * line_step;","\tc.p4.y = c.p1.y - n.y * normal_step - n.x * line_step;","\treturn c;","}","float blendColour( float a, float b, float t ) {","\tif ( blendingMode == BLENDING_LINEAR ) {","\t\treturn blend( a, b, 1.0 - t );","\t} else if ( blendingMode == BLENDING_ADD ) {","\t\treturn blend( a, min( 1.0, a + b ), t );","\t} else if ( blendingMode == BLENDING_MULTIPLY ) {","\t\treturn blend( a, max( 0.0, a * b ), t );","\t} else if ( blendingMode == BLENDING_LIGHTER ) {","\t\treturn blend( a, max( a, b ), t );","\t} else if ( blendingMode == BLENDING_DARKER ) {","\t\treturn blend( a, min( a, b ), t );","\t} else {","\t\treturn blend( a, b, 1.0 - t );","\t}","}","void main() {","\tif ( ! disable ) {","\t\tvec2 p = vec2( vUV.x * width, vUV.y * height );","\t\tvec2 origin = vec2( 0, 0 );","\t\tfloat aa = ( radius < 2.5 ) ? radius * 0.5 : 1.25;","\t\tCell cell_r = getReferenceCell( p, origin, rotateR, radius );","\t\tCell cell_g = getReferenceCell( p, origin, rotateG, radius );","\t\tCell cell_b = getReferenceCell( p, origin, rotateB, radius );","\t\tfloat r = getDotColour( cell_r, p, 0, rotateR, aa );","\t\tfloat g = getDotColour( cell_g, p, 1, rotateG, aa );","\t\tfloat b = getDotColour( cell_b, p, 2, rotateB, aa );","\t\tvec4 colour = texture2D( tDiffuse, vUV );","\t\tr = blendColour( r, colour.r, blending );","\t\tg = blendColour( g, colour.g, blending );","\t\tb = blendColour( b, colour.b, blending );","\t\tif ( greyscale ) {","\t\t\tr = g = b = (r + b + g) / 3.0;","\t\t}","\t\tgl_FragColor = vec4( r, g, b, 1.0 );","\t} else {","\t\tgl_FragColor = texture2D( tDiffuse, vUV );","\t}","}"].join("\n")};t.HalftoneShader=r},37211:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},h:{value:1/512}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n ",fragmentShader:"\n uniform sampler2D tDiffuse;\n uniform float h;\n\n varying vec2 vUv;\n\n void main() {\n\n \tvec4 sum = vec4( 0.0 );\n\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * h, vUv.y ) ) * 0.051;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * h, vUv.y ) ) * 0.0918;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * h, vUv.y ) ) * 0.12245;\n \tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * h, vUv.y ) ) * 0.1531;\n \tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * h, vUv.y ) ) * 0.1531;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * h, vUv.y ) ) * 0.12245;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * h, vUv.y ) ) * 0.0918;\n \tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * h, vUv.y ) ) * 0.051;\n\n \tgl_FragColor = sum;\n\n }\n "};t.HorizontalBlurShader=r},39032:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},h:{value:1/512},r:{value:.35}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float h;","uniform float r;","varying vec2 vUv;","void main() {","\tvec4 sum = vec4( 0.0 );","\tfloat hh = h * abs( r - vUv.y );","\tsum += texture2D( tDiffuse, vec2( vUv.x - 4.0 * hh, vUv.y ) ) * 0.051;","\tsum += texture2D( tDiffuse, vec2( vUv.x - 3.0 * hh, vUv.y ) ) * 0.0918;","\tsum += texture2D( tDiffuse, vec2( vUv.x - 2.0 * hh, vUv.y ) ) * 0.12245;","\tsum += texture2D( tDiffuse, vec2( vUv.x - 1.0 * hh, vUv.y ) ) * 0.1531;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;","\tsum += texture2D( tDiffuse, vec2( vUv.x + 1.0 * hh, vUv.y ) ) * 0.1531;","\tsum += texture2D( tDiffuse, vec2( vUv.x + 2.0 * hh, vUv.y ) ) * 0.12245;","\tsum += texture2D( tDiffuse, vec2( vUv.x + 3.0 * hh, vUv.y ) ) * 0.0918;","\tsum += texture2D( tDiffuse, vec2( vUv.x + 4.0 * hh, vUv.y ) ) * 0.051;","\tgl_FragColor = sum;","}"].join("\n")};t.HorizontalTiltShiftShader=r},43098:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},hue:{value:0},saturation:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float hue;","uniform float saturation;","varying vec2 vUv;","void main() {","\tgl_FragColor = texture2D( tDiffuse, vUv );","\tfloat angle = hue * 3.14159265;","\tfloat s = sin(angle), c = cos(angle);","\tvec3 weights = (vec3(2.0 * c, -sqrt(3.0) * s - c, sqrt(3.0) * s - c) + 1.0) / 3.0;","\tfloat len = length(gl_FragColor.rgb);","\tgl_FragColor.rgb = vec3(","\t\tdot(gl_FragColor.rgb, weights.xyz),","\t\tdot(gl_FragColor.rgb, weights.zxy),","\t\tdot(gl_FragColor.rgb, weights.yzx)","\t);","\tfloat average = (gl_FragColor.r + gl_FragColor.g + gl_FragColor.b) / 3.0;","\tif (saturation > 0.0) {","\t\tgl_FragColor.rgb += (average - gl_FragColor.rgb) * (1.0 - 1.0 / (1.001 - saturation));","\t} else {","\t\tgl_FragColor.rgb += (average - gl_FragColor.rgb) * (-saturation);","\t}","}"].join("\n")};t.HueSaturationShader=r},29983:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},sides:{value:6},angle:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float sides;","uniform float angle;","varying vec2 vUv;","void main() {","\tvec2 p = vUv - 0.5;","\tfloat r = length(p);","\tfloat a = atan(p.y, p.x) + angle;","\tfloat tau = 2. * 3.1416 ;","\ta = mod(a, tau/sides);","\ta = abs(a - tau/sides/2.) ;","\tp = r * vec2(cos(a), sin(a));","\tvec4 color = texture2D(tDiffuse, p + 0.5);","\tgl_FragColor = color;","}"].join("\n")};t.KaleidoShader=r},78440:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={shaderID:"luminosityHighPass",uniforms:{tDiffuse:{value:null},luminosityThreshold:{value:1},smoothWidth:{value:1},defaultColor:{value:new(r(85232).Color)(0)},defaultOpacity:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform vec3 defaultColor;","uniform float defaultOpacity;","uniform float luminosityThreshold;","uniform float smoothWidth;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tvec3 luma = vec3( 0.299, 0.587, 0.114 );","\tfloat v = dot( texel.xyz, luma );","\tvec4 outputColor = vec4( defaultColor.rgb, defaultOpacity );","\tfloat alpha = smoothstep( luminosityThreshold, luminosityThreshold + smoothWidth, v );","\tgl_FragColor = mix( outputColor, texel, alpha );","}"].join("\n")};t.LuminosityHighPassShader=n},48123:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tfloat l = linearToRelativeLuminance( texel.rgb );","\tgl_FragColor = vec4( l, l, l, texel.w );","}"].join("\n")};t.LuminosityShader=r},69277:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},side:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform int side;","varying vec2 vUv;","void main() {","\tvec2 p = vUv;","\tif (side == 0){","\t\tif (p.x > 0.5) p.x = 1.0 - p.x;","\t}else if (side == 1){","\t\tif (p.x < 0.5) p.x = 1.0 - p.x;","\t}else if (side == 2){","\t\tif (p.y < 0.5) p.y = 1.0 - p.y;","\t}else if (side == 3){","\t\tif (p.y > 0.5) p.y = 1.0 - p.y;","\t} ","\tvec4 color = texture2D(tDiffuse, p);","\tgl_FragColor = color;","}"].join("\n")};t.MirrorShader=r},29176:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={uniforms:{heightMap:{value:null},resolution:{value:new n.Vector2(512,512)},scale:{value:new n.Vector2(1,1)},height:{value:.05}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float height;","uniform vec2 resolution;","uniform sampler2D heightMap;","varying vec2 vUv;","void main() {","\tfloat val = texture2D( heightMap, vUv ).x;","\tfloat valU = texture2D( heightMap, vUv + vec2( 1.0 / resolution.x, 0.0 ) ).x;","\tfloat valV = texture2D( heightMap, vUv + vec2( 0.0, 1.0 / resolution.y ) ).x;","\tgl_FragColor = vec4( ( 0.5 * normalize( vec3( val - valU, val - valV, height ) ) + 0.5 ), 1.0 );","}"].join("\n")};t.NormalMapShader=i},94640:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={modes:{none:"NO_PARALLAX",basic:"USE_BASIC_PARALLAX",steep:"USE_STEEP_PARALLAX",occlusion:"USE_OCLUSION_PARALLAX",relief:"USE_RELIEF_PARALLAX"},uniforms:{bumpMap:{value:null},map:{value:null},parallaxScale:{value:null},parallaxMinLayers:{value:null},parallaxMaxLayers:{value:null}},vertexShader:["varying vec2 vUv;","varying vec3 vViewPosition;","varying vec3 vNormal;","void main() {","\tvUv = uv;","\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );","\tvViewPosition = -mvPosition.xyz;","\tvNormal = normalize( normalMatrix * normal );","\tgl_Position = projectionMatrix * mvPosition;","}"].join("\n"),fragmentShader:["uniform sampler2D bumpMap;","uniform sampler2D map;","uniform float parallaxScale;","uniform float parallaxMinLayers;","uniform float parallaxMaxLayers;","varying vec2 vUv;","varying vec3 vViewPosition;","varying vec3 vNormal;","#ifdef USE_BASIC_PARALLAX","\tvec2 parallaxMap( in vec3 V ) {","\t\tfloat initialHeight = texture2D( bumpMap, vUv ).r;","\t\tvec2 texCoordOffset = parallaxScale * V.xy * initialHeight;","\t\treturn vUv - texCoordOffset;","\t}","#else","\tvec2 parallaxMap( in vec3 V ) {","\t\tfloat numLayers = mix( parallaxMaxLayers, parallaxMinLayers, abs( dot( vec3( 0.0, 0.0, 1.0 ), V ) ) );","\t\tfloat layerHeight = 1.0 / numLayers;","\t\tfloat currentLayerHeight = 0.0;","\t\tvec2 dtex = parallaxScale * V.xy / V.z / numLayers;","\t\tvec2 currentTextureCoords = vUv;","\t\tfloat heightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;","\t\tfor ( int i = 0; i < 30; i += 1 ) {","\t\t\tif ( heightFromTexture <= currentLayerHeight ) {","\t\t\t\tbreak;","\t\t\t}","\t\t\tcurrentLayerHeight += layerHeight;","\t\t\tcurrentTextureCoords -= dtex;","\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;","\t\t}","\t\t#ifdef USE_STEEP_PARALLAX","\t\t\treturn currentTextureCoords;","\t\t#elif defined( USE_RELIEF_PARALLAX )","\t\t\tvec2 deltaTexCoord = dtex / 2.0;","\t\t\tfloat deltaHeight = layerHeight / 2.0;","\t\t\tcurrentTextureCoords += deltaTexCoord;","\t\t\tcurrentLayerHeight -= deltaHeight;","\t\t\tconst int numSearches = 5;","\t\t\tfor ( int i = 0; i < numSearches; i += 1 ) {","\t\t\t\tdeltaTexCoord /= 2.0;","\t\t\t\tdeltaHeight /= 2.0;","\t\t\t\theightFromTexture = texture2D( bumpMap, currentTextureCoords ).r;","\t\t\t\tif( heightFromTexture > currentLayerHeight ) {","\t\t\t\t\tcurrentTextureCoords -= deltaTexCoord;","\t\t\t\t\tcurrentLayerHeight += deltaHeight;","\t\t\t\t} else {","\t\t\t\t\tcurrentTextureCoords += deltaTexCoord;","\t\t\t\t\tcurrentLayerHeight -= deltaHeight;","\t\t\t\t}","\t\t\t}","\t\t\treturn currentTextureCoords;","\t\t#elif defined( USE_OCLUSION_PARALLAX )","\t\t\tvec2 prevTCoords = currentTextureCoords + dtex;","\t\t\tfloat nextH = heightFromTexture - currentLayerHeight;","\t\t\tfloat prevH = texture2D( bumpMap, prevTCoords ).r - currentLayerHeight + layerHeight;","\t\t\tfloat weight = nextH / ( nextH - prevH );","\t\t\treturn prevTCoords * weight + currentTextureCoords * ( 1.0 - weight );","\t\t#else","\t\t\treturn vUv;","\t\t#endif","\t}","#endif","vec2 perturbUv( vec3 surfPosition, vec3 surfNormal, vec3 viewPosition ) {","\tvec2 texDx = dFdx( vUv );","\tvec2 texDy = dFdy( vUv );","\tvec3 vSigmaX = dFdx( surfPosition );","\tvec3 vSigmaY = dFdy( surfPosition );","\tvec3 vR1 = cross( vSigmaY, surfNormal );","\tvec3 vR2 = cross( surfNormal, vSigmaX );","\tfloat fDet = dot( vSigmaX, vR1 );","\tvec2 vProjVscr = ( 1.0 / fDet ) * vec2( dot( vR1, viewPosition ), dot( vR2, viewPosition ) );","\tvec3 vProjVtex;","\tvProjVtex.xy = texDx * vProjVscr.x + texDy * vProjVscr.y;","\tvProjVtex.z = dot( surfNormal, viewPosition );","\treturn parallaxMap( vProjVtex );","}","void main() {","\tvec2 mapUv = perturbUv( -vViewPosition, normalize( vNormal ), normalize( vViewPosition ) );","\tgl_FragColor = texture2D( map, mapUv );","}"].join("\n")};t.ParallaxShader=r},79203:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},resolution:{value:null},pixelSize:{value:1}},vertexShader:["varying highp vec2 vUv;","void main() {","vUv = uv;","gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float pixelSize;","uniform vec2 resolution;","varying highp vec2 vUv;","void main(){","vec2 dxy = pixelSize / resolution;","vec2 coord = dxy * floor( vUv / dxy );","gl_FragColor = texture2D(tDiffuse, coord);","}"].join("\n")};t.PixelShader=r},16025:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},amount:{value:.005},angle:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float amount;","uniform float angle;","varying vec2 vUv;","void main() {","\tvec2 offset = amount * vec2( cos(angle), sin(angle));","\tvec4 cr = texture2D(tDiffuse, vUv + offset);","\tvec4 cga = texture2D(tDiffuse, vUv);","\tvec4 cb = texture2D(tDiffuse, vUv - offset);","\tgl_FragColor = vec4(cr.r, cga.g, cb.b, cga.a);","}"].join("\n")};t.RGBShiftShader=r},24730:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={defines:{NUM_SAMPLES:7,NUM_RINGS:4,NORMAL_TEXTURE:0,DIFFUSE_TEXTURE:0,DEPTH_PACKING:1,PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},tDiffuse:{value:null},tNormal:{value:null},size:{value:new n.Vector2(512,512)},cameraNear:{value:1},cameraFar:{value:100},cameraProjectionMatrix:{value:new n.Matrix4},cameraInverseProjectionMatrix:{value:new n.Matrix4},scale:{value:1},intensity:{value:.1},bias:{value:.5},minResolution:{value:0},kernelRadius:{value:100},randomSeed:{value:0}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","varying vec2 vUv;","#if DIFFUSE_TEXTURE == 1","uniform sampler2D tDiffuse;","#endif","uniform sampler2D tDepth;","#if NORMAL_TEXTURE == 1","uniform sampler2D tNormal;","#endif","uniform float cameraNear;","uniform float cameraFar;","uniform mat4 cameraProjectionMatrix;","uniform mat4 cameraInverseProjectionMatrix;","uniform float scale;","uniform float intensity;","uniform float bias;","uniform float kernelRadius;","uniform float minResolution;","uniform vec2 size;","uniform float randomSeed;","// RGBA depth","#include ","vec4 getDefaultColor( const in vec2 screenPosition ) {","\t#if DIFFUSE_TEXTURE == 1","\treturn texture2D( tDiffuse, vUv );","\t#else","\treturn vec4( 1.0 );","\t#endif","}","float getDepth( const in vec2 screenPosition ) {","\t#if DEPTH_PACKING == 1","\treturn unpackRGBAToDepth( texture2D( tDepth, screenPosition ) );","\t#else","\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","float getViewZ( const in float depth ) {","\t#if PERSPECTIVE_CAMERA == 1","\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );","\t#else","\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );","\t#endif","}","vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {","\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];","\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );","\tclipPosition *= clipW; // unprojection.","\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;","}","vec3 getViewNormal( const in vec3 viewPosition, const in vec2 screenPosition ) {","\t#if NORMAL_TEXTURE == 1","\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );","\t#else","\treturn normalize( cross( dFdx( viewPosition ), dFdy( viewPosition ) ) );","\t#endif","}","float scaleDividedByCameraFar;","float minResolutionMultipliedByCameraFar;","float getOcclusion( const in vec3 centerViewPosition, const in vec3 centerViewNormal, const in vec3 sampleViewPosition ) {","\tvec3 viewDelta = sampleViewPosition - centerViewPosition;","\tfloat viewDistance = length( viewDelta );","\tfloat scaledScreenDistance = scaleDividedByCameraFar * viewDistance;","\treturn max(0.0, (dot(centerViewNormal, viewDelta) - minResolutionMultipliedByCameraFar) / scaledScreenDistance - bias) / (1.0 + pow2( scaledScreenDistance ) );","}","// moving costly divides into consts","const float ANGLE_STEP = PI2 * float( NUM_RINGS ) / float( NUM_SAMPLES );","const float INV_NUM_SAMPLES = 1.0 / float( NUM_SAMPLES );","float getAmbientOcclusion( const in vec3 centerViewPosition ) {","\t// precompute some variables require in getOcclusion.","\tscaleDividedByCameraFar = scale / cameraFar;","\tminResolutionMultipliedByCameraFar = minResolution * cameraFar;","\tvec3 centerViewNormal = getViewNormal( centerViewPosition, vUv );","\t// jsfiddle that shows sample pattern: https://jsfiddle.net/a16ff1p7/","\tfloat angle = rand( vUv + randomSeed ) * PI2;","\tvec2 radius = vec2( kernelRadius * INV_NUM_SAMPLES ) / size;","\tvec2 radiusStep = radius;","\tfloat occlusionSum = 0.0;","\tfloat weightSum = 0.0;","\tfor( int i = 0; i < NUM_SAMPLES; i ++ ) {","\t\tvec2 sampleUv = vUv + vec2( cos( angle ), sin( angle ) ) * radius;","\t\tradius += radiusStep;","\t\tangle += ANGLE_STEP;","\t\tfloat sampleDepth = getDepth( sampleUv );","\t\tif( sampleDepth >= ( 1.0 - EPSILON ) ) {","\t\t\tcontinue;","\t\t}","\t\tfloat sampleViewZ = getViewZ( sampleDepth );","\t\tvec3 sampleViewPosition = getViewPosition( sampleUv, sampleDepth, sampleViewZ );","\t\tocclusionSum += getOcclusion( centerViewPosition, centerViewNormal, sampleViewPosition );","\t\tweightSum += 1.0;","\t}","\tif( weightSum == 0.0 ) discard;","\treturn occlusionSum * ( intensity / weightSum );","}","void main() {","\tfloat centerDepth = getDepth( vUv );","\tif( centerDepth >= ( 1.0 - EPSILON ) ) {","\t\tdiscard;","\t}","\tfloat centerViewZ = getViewZ( centerDepth );","\tvec3 viewPosition = getViewPosition( vUv, centerDepth, centerViewZ );","\tfloat ambientOcclusion = getAmbientOcclusion( viewPosition );","\tgl_FragColor = getDefaultColor( vUv );","\tgl_FragColor.xyz *= 1.0 - ambientOcclusion;","}"].join("\n")};t.SAOShader=i},27407:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={defines:{SMAA_THRESHOLD:"0.1"},uniforms:{tDiffuse:{value:null},resolution:{value:new n.Vector2(1/1024,1/512)}},vertexShader:["uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[ 3 ];","void SMAAEdgeDetectionVS( vec2 texcoord ) {","\tvOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 );","\tvOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 );","\tvOffset[ 2 ] = texcoord.xyxy + resolution.xyxy * vec4( -2.0, 0.0, 0.0, 2.0 );","}","void main() {","\tvUv = uv;","\tSMAAEdgeDetectionVS( vUv );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","varying vec4 vOffset[ 3 ];","vec4 SMAAColorEdgeDetectionPS( vec2 texcoord, vec4 offset[3], sampler2D colorTex ) {","\tvec2 threshold = vec2( SMAA_THRESHOLD, SMAA_THRESHOLD );","\tvec4 delta;","\tvec3 C = texture2D( colorTex, texcoord ).rgb;","\tvec3 Cleft = texture2D( colorTex, offset[0].xy ).rgb;","\tvec3 t = abs( C - Cleft );","\tdelta.x = max( max( t.r, t.g ), t.b );","\tvec3 Ctop = texture2D( colorTex, offset[0].zw ).rgb;","\tt = abs( C - Ctop );","\tdelta.y = max( max( t.r, t.g ), t.b );","\tvec2 edges = step( threshold, delta.xy );","\tif ( dot( edges, vec2( 1.0, 1.0 ) ) == 0.0 )","\t\tdiscard;","\tvec3 Cright = texture2D( colorTex, offset[1].xy ).rgb;","\tt = abs( C - Cright );","\tdelta.z = max( max( t.r, t.g ), t.b );","\tvec3 Cbottom = texture2D( colorTex, offset[1].zw ).rgb;","\tt = abs( C - Cbottom );","\tdelta.w = max( max( t.r, t.g ), t.b );","\tfloat maxDelta = max( max( max( delta.x, delta.y ), delta.z ), delta.w );","\tvec3 Cleftleft = texture2D( colorTex, offset[2].xy ).rgb;","\tt = abs( C - Cleftleft );","\tdelta.z = max( max( t.r, t.g ), t.b );","\tvec3 Ctoptop = texture2D( colorTex, offset[2].zw ).rgb;","\tt = abs( C - Ctoptop );","\tdelta.w = max( max( t.r, t.g ), t.b );","\tmaxDelta = max( max( maxDelta, delta.z ), delta.w );","\tedges.xy *= step( 0.5 * maxDelta, delta.xy );","\treturn vec4( edges, 0.0, 0.0 );","}","void main() {","\tgl_FragColor = SMAAColorEdgeDetectionPS( vUv, vOffset, tDiffuse );","}"].join("\n")},s={defines:{SMAA_MAX_SEARCH_STEPS:"8",SMAA_AREATEX_MAX_DISTANCE:"16",SMAA_AREATEX_PIXEL_SIZE:"( 1.0 / vec2( 160.0, 560.0 ) )",SMAA_AREATEX_SUBTEX_SIZE:"( 1.0 / 7.0 )"},uniforms:{tDiffuse:{value:null},tArea:{value:null},tSearch:{value:null},resolution:{value:new n.Vector2(1/1024,1/512)}},vertexShader:["uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[ 3 ];","varying vec2 vPixcoord;","void SMAABlendingWeightCalculationVS( vec2 texcoord ) {","\tvPixcoord = texcoord / resolution;","\tvOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -0.25, 0.125, 1.25, 0.125 );","\tvOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( -0.125, 0.25, -0.125, -1.25 );","\tvOffset[ 2 ] = vec4( vOffset[ 0 ].xz, vOffset[ 1 ].yw ) + vec4( -2.0, 2.0, -2.0, 2.0 ) * resolution.xxyy * float( SMAA_MAX_SEARCH_STEPS );","}","void main() {","\tvUv = uv;","\tSMAABlendingWeightCalculationVS( vUv );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#define SMAASampleLevelZeroOffset( tex, coord, offset ) texture2D( tex, coord + float( offset ) * resolution, 0.0 )","uniform sampler2D tDiffuse;","uniform sampler2D tArea;","uniform sampler2D tSearch;","uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[3];","varying vec2 vPixcoord;","#if __VERSION__ == 100","vec2 round( vec2 x ) {","\treturn sign( x ) * floor( abs( x ) + 0.5 );","}","#endif","float SMAASearchLength( sampler2D searchTex, vec2 e, float bias, float scale ) {","\te.r = bias + e.r * scale;","\treturn 255.0 * texture2D( searchTex, e, 0.0 ).r;","}","float SMAASearchXLeft( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) {","\tvec2 e = vec2( 0.0, 1.0 );","\tfor ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) {","\t\te = texture2D( edgesTex, texcoord, 0.0 ).rg;","\t\ttexcoord -= vec2( 2.0, 0.0 ) * resolution;","\t\tif ( ! ( texcoord.x > end && e.g > 0.8281 && e.r == 0.0 ) ) break;","\t}","\ttexcoord.x += 0.25 * resolution.x;","\ttexcoord.x += resolution.x;","\ttexcoord.x += 2.0 * resolution.x;","\ttexcoord.x -= resolution.x * SMAASearchLength(searchTex, e, 0.0, 0.5);","\treturn texcoord.x;","}","float SMAASearchXRight( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) {","\tvec2 e = vec2( 0.0, 1.0 );","\tfor ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) {","\t\te = texture2D( edgesTex, texcoord, 0.0 ).rg;","\t\ttexcoord += vec2( 2.0, 0.0 ) * resolution;","\t\tif ( ! ( texcoord.x < end && e.g > 0.8281 && e.r == 0.0 ) ) break;","\t}","\ttexcoord.x -= 0.25 * resolution.x;","\ttexcoord.x -= resolution.x;","\ttexcoord.x -= 2.0 * resolution.x;","\ttexcoord.x += resolution.x * SMAASearchLength( searchTex, e, 0.5, 0.5 );","\treturn texcoord.x;","}","float SMAASearchYUp( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) {","\tvec2 e = vec2( 1.0, 0.0 );","\tfor ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) {","\t\te = texture2D( edgesTex, texcoord, 0.0 ).rg;","\t\ttexcoord += vec2( 0.0, 2.0 ) * resolution;","\t\tif ( ! ( texcoord.y > end && e.r > 0.8281 && e.g == 0.0 ) ) break;","\t}","\ttexcoord.y -= 0.25 * resolution.y;","\ttexcoord.y -= resolution.y;","\ttexcoord.y -= 2.0 * resolution.y;","\ttexcoord.y += resolution.y * SMAASearchLength( searchTex, e.gr, 0.0, 0.5 );","\treturn texcoord.y;","}","float SMAASearchYDown( sampler2D edgesTex, sampler2D searchTex, vec2 texcoord, float end ) {","\tvec2 e = vec2( 1.0, 0.0 );","\tfor ( int i = 0; i < SMAA_MAX_SEARCH_STEPS; i ++ ) {","\t\te = texture2D( edgesTex, texcoord, 0.0 ).rg;","\t\ttexcoord -= vec2( 0.0, 2.0 ) * resolution;","\t\tif ( ! ( texcoord.y < end && e.r > 0.8281 && e.g == 0.0 ) ) break;","\t}","\ttexcoord.y += 0.25 * resolution.y;","\ttexcoord.y += resolution.y;","\ttexcoord.y += 2.0 * resolution.y;","\ttexcoord.y -= resolution.y * SMAASearchLength( searchTex, e.gr, 0.5, 0.5 );","\treturn texcoord.y;","}","vec2 SMAAArea( sampler2D areaTex, vec2 dist, float e1, float e2, float offset ) {","\tvec2 texcoord = float( SMAA_AREATEX_MAX_DISTANCE ) * round( 4.0 * vec2( e1, e2 ) ) + dist;","\ttexcoord = SMAA_AREATEX_PIXEL_SIZE * texcoord + ( 0.5 * SMAA_AREATEX_PIXEL_SIZE );","\ttexcoord.y += SMAA_AREATEX_SUBTEX_SIZE * offset;","\treturn texture2D( areaTex, texcoord, 0.0 ).rg;","}","vec4 SMAABlendingWeightCalculationPS( vec2 texcoord, vec2 pixcoord, vec4 offset[ 3 ], sampler2D edgesTex, sampler2D areaTex, sampler2D searchTex, ivec4 subsampleIndices ) {","\tvec4 weights = vec4( 0.0, 0.0, 0.0, 0.0 );","\tvec2 e = texture2D( edgesTex, texcoord ).rg;","\tif ( e.g > 0.0 ) {","\t\tvec2 d;","\t\tvec2 coords;","\t\tcoords.x = SMAASearchXLeft( edgesTex, searchTex, offset[ 0 ].xy, offset[ 2 ].x );","\t\tcoords.y = offset[ 1 ].y;","\t\td.x = coords.x;","\t\tfloat e1 = texture2D( edgesTex, coords, 0.0 ).r;","\t\tcoords.x = SMAASearchXRight( edgesTex, searchTex, offset[ 0 ].zw, offset[ 2 ].y );","\t\td.y = coords.x;","\t\td = d / resolution.x - pixcoord.x;","\t\tvec2 sqrt_d = sqrt( abs( d ) );","\t\tcoords.y -= 1.0 * resolution.y;","\t\tfloat e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 1, 0 ) ).r;","\t\tweights.rg = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.y ) );","\t}","\tif ( e.r > 0.0 ) {","\t\tvec2 d;","\t\tvec2 coords;","\t\tcoords.y = SMAASearchYUp( edgesTex, searchTex, offset[ 1 ].xy, offset[ 2 ].z );","\t\tcoords.x = offset[ 0 ].x;","\t\td.x = coords.y;","\t\tfloat e1 = texture2D( edgesTex, coords, 0.0 ).g;","\t\tcoords.y = SMAASearchYDown( edgesTex, searchTex, offset[ 1 ].zw, offset[ 2 ].w );","\t\td.y = coords.y;","\t\td = d / resolution.y - pixcoord.y;","\t\tvec2 sqrt_d = sqrt( abs( d ) );","\t\tcoords.y -= 1.0 * resolution.y;","\t\tfloat e2 = SMAASampleLevelZeroOffset( edgesTex, coords, ivec2( 0, 1 ) ).g;","\t\tweights.ba = SMAAArea( areaTex, sqrt_d, e1, e2, float( subsampleIndices.x ) );","\t}","\treturn weights;","}","void main() {","\tgl_FragColor = SMAABlendingWeightCalculationPS( vUv, vPixcoord, vOffset, tDiffuse, tArea, tSearch, ivec4( 0.0 ) );","}"].join("\n")},a={uniforms:{tDiffuse:{value:null},tColor:{value:null},resolution:{value:new n.Vector2(1/1024,1/512)}},vertexShader:["uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[ 2 ];","void SMAANeighborhoodBlendingVS( vec2 texcoord ) {","\tvOffset[ 0 ] = texcoord.xyxy + resolution.xyxy * vec4( -1.0, 0.0, 0.0, 1.0 );","\tvOffset[ 1 ] = texcoord.xyxy + resolution.xyxy * vec4( 1.0, 0.0, 0.0, -1.0 );","}","void main() {","\tvUv = uv;","\tSMAANeighborhoodBlendingVS( vUv );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform sampler2D tColor;","uniform vec2 resolution;","varying vec2 vUv;","varying vec4 vOffset[ 2 ];","vec4 SMAANeighborhoodBlendingPS( vec2 texcoord, vec4 offset[ 2 ], sampler2D colorTex, sampler2D blendTex ) {","\tvec4 a;","\ta.xz = texture2D( blendTex, texcoord ).xz;","\ta.y = texture2D( blendTex, offset[ 1 ].zw ).g;","\ta.w = texture2D( blendTex, offset[ 1 ].xy ).a;","\tif ( dot(a, vec4( 1.0, 1.0, 1.0, 1.0 )) < 1e-5 ) {","\t\treturn texture2D( colorTex, texcoord, 0.0 );","\t} else {","\t\tvec2 offset;","\t\toffset.x = a.a > a.b ? a.a : -a.b;","\t\toffset.y = a.g > a.r ? -a.g : a.r;","\t\tif ( abs( offset.x ) > abs( offset.y )) {","\t\t\toffset.y = 0.0;","\t\t} else {","\t\t\toffset.x = 0.0;","\t\t}","\t\tvec4 C = texture2D( colorTex, texcoord, 0.0 );","\t\ttexcoord += sign( offset ) * resolution;","\t\tvec4 Cop = texture2D( colorTex, texcoord, 0.0 );","\t\tfloat s = abs( offset.x ) > abs( offset.y ) ? abs( offset.x ) : abs( offset.y );","\t\tC.xyz = pow(C.xyz, vec3(2.2));","\t\tCop.xyz = pow(Cop.xyz, vec3(2.2));","\t\tvec4 mixed = mix(C, Cop, s);","\t\tmixed.xyz = pow(mixed.xyz, vec3(1.0 / 2.2));","\t\treturn mixed;","\t}","}","void main() {","\tgl_FragColor = SMAANeighborhoodBlendingPS( vUv, vOffset, tColor, tDiffuse );","}"].join("\n")};t.SMAABlendShader=a,t.SMAAEdgesShader=i,t.SMAAWeightsShader=s},48463:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={defines:{PERSPECTIVE_CAMERA:1,KERNEL_SIZE:32},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tDepth:{value:null},tNoise:{value:null},kernel:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new n.Vector2},cameraProjectionMatrix:{value:new n.Matrix4},cameraInverseProjectionMatrix:{value:new n.Matrix4},kernelRadius:{value:8},minDistance:{value:.005},maxDistance:{value:.05}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform sampler2D tNormal;","uniform sampler2D tDepth;","uniform sampler2D tNoise;","uniform vec3 kernel[ KERNEL_SIZE ];","uniform vec2 resolution;","uniform float cameraNear;","uniform float cameraFar;","uniform mat4 cameraProjectionMatrix;","uniform mat4 cameraInverseProjectionMatrix;","uniform float kernelRadius;","uniform float minDistance;","uniform float maxDistance;","varying vec2 vUv;","#include ","float getDepth( const in vec2 screenPosition ) {","\treturn texture2D( tDepth, screenPosition ).x;","}","float getLinearDepth( const in vec2 screenPosition ) {","\t#if PERSPECTIVE_CAMERA == 1","\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;","\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );","\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );","\t#else","\t\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","float getViewZ( const in float depth ) {","\t#if PERSPECTIVE_CAMERA == 1","\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );","\t#else","\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );","\t#endif","}","vec3 getViewPosition( const in vec2 screenPosition, const in float depth, const in float viewZ ) {","\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ + cameraProjectionMatrix[3][3];","\tvec4 clipPosition = vec4( ( vec3( screenPosition, depth ) - 0.5 ) * 2.0, 1.0 );","\tclipPosition *= clipW; // unprojection.","\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;","}","vec3 getViewNormal( const in vec2 screenPosition ) {","\treturn unpackRGBToNormal( texture2D( tNormal, screenPosition ).xyz );","}","void main() {","\tfloat depth = getDepth( vUv );","\tfloat viewZ = getViewZ( depth );","\tvec3 viewPosition = getViewPosition( vUv, depth, viewZ );","\tvec3 viewNormal = getViewNormal( vUv );"," vec2 noiseScale = vec2( resolution.x / 4.0, resolution.y / 4.0 );","\tvec3 random = texture2D( tNoise, vUv * noiseScale ).xyz;","\tvec3 tangent = normalize( random - viewNormal * dot( random, viewNormal ) );","\tvec3 bitangent = cross( viewNormal, tangent );","\tmat3 kernelMatrix = mat3( tangent, bitangent, viewNormal );"," float occlusion = 0.0;"," for ( int i = 0; i < KERNEL_SIZE; i ++ ) {","\t\tvec3 sampleVector = kernelMatrix * kernel[ i ];","\t\tvec3 samplePoint = viewPosition + ( sampleVector * kernelRadius );","\t\tvec4 samplePointNDC = cameraProjectionMatrix * vec4( samplePoint, 1.0 );","\t\tsamplePointNDC /= samplePointNDC.w;","\t\tvec2 samplePointUv = samplePointNDC.xy * 0.5 + 0.5;","\t\tfloat realDepth = getLinearDepth( samplePointUv );","\t\tfloat sampleDepth = viewZToOrthographicDepth( samplePoint.z, cameraNear, cameraFar );","\t\tfloat delta = sampleDepth - realDepth;","\t\tif ( delta > minDistance && delta < maxDistance ) {","\t\t\tocclusion += 1.0;","\t\t}","\t}","\tocclusion = clamp( occlusion / float( KERNEL_SIZE ), 0.0, 1.0 );","\tgl_FragColor = vec4( vec3( 1.0 - occlusion ), 1.0 );","}"].join("\n")},s={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDepth;","uniform float cameraNear;","uniform float cameraFar;","varying vec2 vUv;","#include ","float getLinearDepth( const in vec2 screenPosition ) {","\t#if PERSPECTIVE_CAMERA == 1","\t\tfloat fragCoordZ = texture2D( tDepth, screenPosition ).x;","\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );","\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );","\t#else","\t\treturn texture2D( tDepth, screenPosition ).x;","\t#endif","}","void main() {","\tfloat depth = getLinearDepth( vUv );","\tgl_FragColor = vec4( vec3( 1.0 - depth ), 1.0 );","}"].join("\n")},a={uniforms:{tDiffuse:{value:null},resolution:{value:new n.Vector2}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform vec2 resolution;","varying vec2 vUv;","void main() {","\tvec2 texelSize = ( 1.0 / resolution );","\tfloat result = 0.0;","\tfor ( int i = - 2; i <= 2; i ++ ) {","\t\tfor ( int j = - 2; j <= 2; j ++ ) {","\t\t\tvec2 offset = ( vec2( float( i ), float( j ) ) ) * texelSize;","\t\t\tresult += texture2D( tDiffuse, vUv + offset ).r;","\t\t}","\t}","\tgl_FragColor = vec4( vec3( result / ( 5.0 * 5.0 ) ), 1.0 );","}"].join("\n")};t.SSAOBlurShader=a,t.SSAODepthShader=s,t.SSAOShader=i},30424:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={defines:{MAX_STEP:0,isPerspectiveCamera:!0,isDistanceAttenuation:!0,isFresnel:!0,isInfiniteThick:!1,isSelective:!1},uniforms:{tDiffuse:{value:null},tNormal:{value:null},tMetalness:{value:null},tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null},resolution:{value:new n.Vector2},cameraProjectionMatrix:{value:new n.Matrix4},cameraInverseProjectionMatrix:{value:new n.Matrix4},opacity:{value:.5},maxDistance:{value:180},cameraRange:{value:0},surfDist:{value:.007},thickTolerance:{value:.03}},vertexShader:"\n\n varying vec2 vUv;\n\n void main() {\n\n\t\t\tvUv = uv;\n\n\t\t\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n ",fragmentShader:"\n\t\t// precision highp float;\n\t\tprecision highp sampler2D;\n\t\tvarying vec2 vUv;\n\t\tuniform sampler2D tDepth;\n\t\tuniform sampler2D tNormal;\n\t\tuniform sampler2D tMetalness;\n\t\tuniform sampler2D tDiffuse;\n\t\tuniform float cameraRange;\n\t\tuniform vec2 resolution;\n\t\tuniform float opacity;\n\t\tuniform float cameraNear;\n\t\tuniform float cameraFar;\n\t\tuniform float maxDistance;\n\t\tuniform float surfDist;\n\t\tuniform mat4 cameraProjectionMatrix;\n\t\tuniform mat4 cameraInverseProjectionMatrix;\n\t\tuniform float thickTolerance;\n\t\t#include \n\t\tfloat pointToLineDistance(vec3 x0, vec3 x1, vec3 x2) {\n\t\t\t//x0: point, x1: linePointA, x2: linePointB\n\t\t\t//https://mathworld.wolfram.com/Point-LineDistance3-Dimensional.html\n\t\t\treturn length(cross(x0-x1,x0-x2))/length(x2-x1);\n\t\t}\n\t\tfloat pointPlaneDistance(vec3 point,vec3 planePoint,vec3 planeNormal){\n\t\t\t// https://mathworld.wolfram.com/Point-PlaneDistance.html\n\t\t\t//// https://en.wikipedia.org/wiki/Plane_(geometry)\n\t\t\t//// http://paulbourke.net/geometry/pointlineplane/\n\t\t\tfloat a=planeNormal.x,b=planeNormal.y,c=planeNormal.z;\n\t\t\tfloat x0=point.x,y0=point.y,z0=point.z;\n\t\t\tfloat x=planePoint.x,y=planePoint.y,z=planePoint.z;\n\t\t\tfloat d=-(a*x+b*y+c*z);\n\t\t\tfloat distance=(a*x0+b*y0+c*z0+d)/sqrt(a*a+b*b+c*c);\n\t\t\treturn distance;\n\t\t}\n\t\tfloat getDepth( const in vec2 uv ) {\n\t\t\treturn texture2D( tDepth, uv ).x;\n\t\t}\n\t\tfloat getViewZ( const in float depth ) {\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\treturn perspectiveDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#else\n\t\t\t\treturn orthographicDepthToViewZ( depth, cameraNear, cameraFar );\n\t\t\t#endif\n\t\t}\n\t\tvec3 getViewPosition( const in vec2 uv, const in float depth/*clip space*/, const in float clipW ) {\n\t\t\tvec4 clipPosition = vec4( ( vec3( uv, depth ) - 0.5 ) * 2.0, 1.0 );//ndc\n\t\t\tclipPosition *= clipW; //clip\n\t\t\treturn ( cameraInverseProjectionMatrix * clipPosition ).xyz;//view\n\t\t}\n\t\tvec3 getViewNormal( const in vec2 uv ) {\n\t\t\treturn unpackRGBToNormal( texture2D( tNormal, uv ).xyz );\n\t\t}\n\t\tvec2 viewPositionToXY(vec3 viewPosition){\n\t\t\tvec2 xy;\n\t\t\tvec4 clip=cameraProjectionMatrix*vec4(viewPosition,1);\n\t\t\txy=clip.xy;//clip\n\t\t\tfloat clipW=clip.w;\n\t\t\txy/=clipW;//NDC\n\t\t\txy=(xy+1.)/2.;//uv\n\t\t\txy*=resolution;//screen\n\t\t\treturn xy;\n\t\t}\n\t\tvoid main(){\n\t\t\t#ifdef isSelective\n\t\t\t\tfloat metalness=texture2D(tMetalness,vUv).r;\n\t\t\t\tif(metalness==0.) return;\n\t\t\t#endif\n\n\t\t\tfloat depth = getDepth( vUv );\n\t\t\tfloat viewZ = getViewZ( depth );\n\t\t\tif(-viewZ>=cameraFar) return;\n\n\t\t\tfloat clipW = cameraProjectionMatrix[2][3] * viewZ+cameraProjectionMatrix[3][3];\n\t\t\tvec3 viewPosition=getViewPosition( vUv, depth, clipW );\n\n\t\t\tvec2 d0=gl_FragCoord.xy;\n\t\t\tvec2 d1;\n\n\t\t\tvec3 viewNormal=getViewNormal( vUv );\n\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\tvec3 viewIncidenceDir=normalize(viewPosition);\n\t\t\t\tvec3 viewReflectDir=reflect(viewIncidenceDir,viewNormal);\n\t\t\t#else\n\t\t\t\tvec3 viewIncidenceDir=vec3(0,0,-1);\n\t\t\t\tvec3 viewReflectDir=reflect(viewIncidenceDir,viewNormal);\n\t\t\t#endif\n\n\t\t\tfloat maxReflectRayLen=maxDistance/dot(-viewIncidenceDir,viewNormal);\n\t\t\t// dot(a,b)==length(a)*length(b)*cos(theta) // https://www.mathsisfun.com/algebra/vectors-dot-product.html\n\t\t\t// if(a.isNormalized&&b.isNormalized) dot(a,b)==cos(theta)\n\t\t\t// maxDistance/maxReflectRayLen=cos(theta)\n\t\t\t// maxDistance/maxReflectRayLen==dot(a,b)\n\t\t\t// maxReflectRayLen==maxDistance/dot(a,b)\n\n\t\t\tvec3 d1viewPosition=viewPosition+viewReflectDir*maxReflectRayLen;\n\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\tif(d1viewPosition.z>-cameraNear){\n\t\t\t\t\t//https://tutorial.math.lamar.edu/Classes/CalcIII/EqnsOfLines.aspx\n\t\t\t\t\tfloat t=(-cameraNear-viewPosition.z)/viewReflectDir.z;\n\t\t\t\t\td1viewPosition=viewPosition+viewReflectDir*t;\n\t\t\t\t}\n\t\t\t#endif\n\t\t\td1=viewPositionToXY(d1viewPosition);\n\n\t\t\tfloat totalLen=length(d1-d0);\n\t\t\tfloat xLen=d1.x-d0.x;\n\t\t\tfloat yLen=d1.y-d0.y;\n\t\t\tfloat totalStep=max(abs(xLen),abs(yLen));\n\t\t\tfloat xSpan=xLen/totalStep;\n\t\t\tfloat ySpan=yLen/totalStep;\n\t\t\tfor(float i=0.;i=totalStep) break;\n\t\t\t\tvec2 xy=vec2(d0.x+i*xSpan,d0.y+i*ySpan);\n\t\t\t\tif(xy.x<0.||xy.x>resolution.x||xy.y<0.||xy.y>resolution.y) break;\n\t\t\t\tfloat s=length(xy-d0)/totalLen;\n\t\t\t\tvec2 uv=xy/resolution;\n\n\t\t\t\tfloat d = getDepth(uv);\n\t\t\t\tfloat vZ = getViewZ( d );\n\t\t\t\tif(-vZ>=cameraFar) continue;\n\t\t\t\tfloat cW = cameraProjectionMatrix[2][3] * vZ+cameraProjectionMatrix[3][3];\n\t\t\t\tvec3 vP=getViewPosition( uv, d, cW );\n\n\t\t\t\t#ifdef isPerspectiveCamera\n\t\t\t\t\t// https://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf\n\t\t\t\t\tfloat recipVPZ=1./viewPosition.z;\n\t\t\t\t\tfloat viewReflectRayZ=1./(recipVPZ+s*(1./d1viewPosition.z-recipVPZ));\n\t\t\t\t\tfloat sD=surfDist*cW;\n\t\t\t\t#else\n\t\t\t\t\tfloat viewReflectRayZ=viewPosition.z+s*(d1viewPosition.z-viewPosition.z);\n\t\t\t\t\tfloat sD=surfDist;\n\t\t\t\t#endif\n\t\t\t\tif(viewReflectRayZ-sD>vZ) continue;\n\n\t\t\t\t#ifdef isInfiniteThick\n\t\t\t\t\tif(viewReflectRayZ+thickTolerance*clipW=0.) continue;\n\t\t\t\t\tfloat distance=pointPlaneDistance(vP,viewPosition,viewNormal);\n\t\t\t\t\tif(distance>maxDistance) break;\n\t\t\t\t\t#ifdef isDistanceAttenuation\n\t\t\t\t\t\tfloat ratio=1.-(distance/maxDistance);\n\t\t\t\t\t\tfloat attenuation=ratio*ratio;\n\t\t\t\t\t\top=opacity*attenuation;\n\t\t\t\t\t#endif\n\t\t\t\t\t#ifdef isFresnel\n\t\t\t\t\t\tfloat fresnel=(dot(viewIncidenceDir,viewReflectDir)+1.)/2.;\n\t\t\t\t\t\top*=fresnel;\n\t\t\t\t\t#endif\n\t\t\t\t\tvec4 reflectColor=texture2D(tDiffuse,uv);\n\t\t\t\t\tgl_FragColor.xyz=reflectColor.xyz;\n\t\t\t\t\tgl_FragColor.a=op;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t"},s={defines:{PERSPECTIVE_CAMERA:1},uniforms:{tDepth:{value:null},cameraNear:{value:null},cameraFar:{value:null}},vertexShader:"\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n ",fragmentShader:"\n\n uniform sampler2D tDepth;\n\n uniform float cameraNear;\n uniform float cameraFar;\n\n varying vec2 vUv;\n\n #include \n\n\t\tfloat getLinearDepth( const in vec2 uv ) {\n\n\t\t\t#if PERSPECTIVE_CAMERA == 1\n\n\t\t\t\tfloat fragCoordZ = texture2D( tDepth, uv ).x;\n\t\t\t\tfloat viewZ = perspectiveDepthToViewZ( fragCoordZ, cameraNear, cameraFar );\n\t\t\t\treturn viewZToOrthographicDepth( viewZ, cameraNear, cameraFar );\n\n\t\t\t#else\n\n\t\t\t\treturn texture2D( tDepth, uv ).x;\n\n\t\t\t#endif\n\n\t\t}\n\n void main() {\n\n \tfloat depth = getLinearDepth( vUv );\n\t\t\tfloat d = 1.0 - depth;\n\t\t\t// d=(d-.999)*1000.;\n \tgl_FragColor = vec4( vec3( d ), 1.0 );\n\n }\n\n "},a={uniforms:{tDiffuse:{value:null},resolution:{value:new n.Vector2},opacity:{value:.5}},vertexShader:"\n\n varying vec2 vUv;\n\n void main() {\n\n \tvUv = uv;\n \tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n\n ",fragmentShader:"\n\n uniform sampler2D tDiffuse;\n uniform vec2 resolution;\n varying vec2 vUv;\n void main() {\n\t\t\t//reverse engineering from PhotoShop blur filter, then change coefficient\n\n \tvec2 texelSize = ( 1.0 / resolution );\n\n\t\t\tvec4 c=texture2D(tDiffuse,vUv);\n\n\t\t\tvec2 offset;\n\n\t\t\toffset=(vec2(-1,0))*texelSize;\n\t\t\tvec4 cl=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(1,0))*texelSize;\n\t\t\tvec4 cr=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(0,-1))*texelSize;\n\t\t\tvec4 cb=texture2D(tDiffuse,vUv+offset);\n\n\t\t\toffset=(vec2(0,1))*texelSize;\n\t\t\tvec4 ct=texture2D(tDiffuse,vUv+offset);\n\n\t\t\t// float coeCenter=.5;\n\t\t\t// float coeSide=.125;\n\t\t\tfloat coeCenter=.2;\n\t\t\tfloat coeSide=.2;\n\t\t\tfloat a=c.a*coeCenter+cl.a*coeSide+cr.a*coeSide+cb.a*coeSide+ct.a*coeSide;\n\t\t\tvec3 rgb=(c.rgb*c.a*coeCenter+cl.rgb*cl.a*coeSide+cr.rgb*cr.a*coeSide+cb.rgb*cb.a*coeSide+ct.rgb*ct.a*coeSide)/a;\n\t\t\tgl_FragColor=vec4(rgb,a);\n\n\t\t}\n\t"};t.SSRBlurShader=a,t.SSRDepthShader=s,t.SSRShader=i},83222:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},amount:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float amount;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 color = texture2D( tDiffuse, vUv );","\tvec3 c = color.rgb;","\tcolor.r = dot( c, vec3( 1.0 - 0.607 * amount, 0.769 * amount, 0.189 * amount ) );","\tcolor.g = dot( c, vec3( 0.349 * amount, 1.0 - 0.314 * amount, 0.168 * amount ) );","\tcolor.b = dot( c, vec3( 0.272 * amount, 0.534 * amount, 1.0 - 0.869 * amount ) );","\tgl_FragColor = vec4( min( vec3( 1.0 ), color.rgb ), color.a );","}"].join("\n")};t.SepiaShader=r},66155:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{tDiffuse:{value:null},resolution:{value:new(r(85232).Vector2)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform vec2 resolution;","varying vec2 vUv;","void main() {","\tvec2 texel = vec2( 1.0 / resolution.x, 1.0 / resolution.y );","\tconst mat3 Gx = mat3( -1, -2, -1, 0, 0, 0, 1, 2, 1 );","\tconst mat3 Gy = mat3( -1, 0, 1, -2, 0, 2, -1, 0, 1 );","\tfloat tx0y0 = texture2D( tDiffuse, vUv + texel * vec2( -1, -1 ) ).r;","\tfloat tx0y1 = texture2D( tDiffuse, vUv + texel * vec2( -1, 0 ) ).r;","\tfloat tx0y2 = texture2D( tDiffuse, vUv + texel * vec2( -1, 1 ) ).r;","\tfloat tx1y0 = texture2D( tDiffuse, vUv + texel * vec2( 0, -1 ) ).r;","\tfloat tx1y1 = texture2D( tDiffuse, vUv + texel * vec2( 0, 0 ) ).r;","\tfloat tx1y2 = texture2D( tDiffuse, vUv + texel * vec2( 0, 1 ) ).r;","\tfloat tx2y0 = texture2D( tDiffuse, vUv + texel * vec2( 1, -1 ) ).r;","\tfloat tx2y1 = texture2D( tDiffuse, vUv + texel * vec2( 1, 0 ) ).r;","\tfloat tx2y2 = texture2D( tDiffuse, vUv + texel * vec2( 1, 1 ) ).r;","\tfloat valueGx = Gx[0][0] * tx0y0 + Gx[1][0] * tx1y0 + Gx[2][0] * tx2y0 + ","\t\tGx[0][1] * tx0y1 + Gx[1][1] * tx1y1 + Gx[2][1] * tx2y1 + ","\t\tGx[0][2] * tx0y2 + Gx[1][2] * tx1y2 + Gx[2][2] * tx2y2; ","\tfloat valueGy = Gy[0][0] * tx0y0 + Gy[1][0] * tx1y0 + Gy[2][0] * tx2y0 + ","\t\tGy[0][1] * tx0y1 + Gy[1][1] * tx1y1 + Gy[2][1] * tx2y1 + ","\t\tGy[0][2] * tx0y2 + Gy[1][2] * tx1y2 + Gy[2][2] * tx2y2; ","\tfloat G = sqrt( ( valueGx * valueGx ) + ( valueGy * valueGy ) );","\tgl_FragColor = vec4( vec3( G ), 1 );","}"].join("\n")};t.SobelOperatorShader=n},61621:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);let i;function s(){if(i)return i;const e=n.ShaderChunk.meshphong_frag.slice(0,n.ShaderChunk.meshphong_frag.indexOf("void main() {")),t=n.ShaderChunk.meshphong_frag.slice(n.ShaderChunk.meshphong_frag.indexOf("void main() {"));return i={uniforms:n.UniformsUtils.merge([n.ShaderLib.phong.uniforms,{thicknessMap:{value:null},thicknessColor:{value:new n.Color(16777215)},thicknessDistortion:{value:.1},thicknessAmbient:{value:0},thicknessAttenuation:{value:.1},thicknessPower:{value:2},thicknessScale:{value:10}}]),vertexShader:`\n #define USE_UV\n ${n.ShaderChunk.meshphong_vert}\n `,fragmentShader:`\n #define USE_UV',\n #define SUBSURFACE',\n\n ${e}\n\n uniform sampler2D thicknessMap;\n uniform float thicknessPower;\n uniform float thicknessScale;\n uniform float thicknessDistortion;\n uniform float thicknessAmbient;\n uniform float thicknessAttenuation;\n uniform vec3 thicknessColor;\n\n void RE_Direct_Scattering(const in IncidentLight directLight, const in vec2 uv, const in GeometricContext geometry, inout ReflectedLight reflectedLight) {\n \tvec3 thickness = thicknessColor * texture2D(thicknessMap, uv).r;\n \tvec3 scatteringHalf = normalize(directLight.direction + (geometry.normal * thicknessDistortion));\n \tfloat scatteringDot = pow(saturate(dot(geometry.viewDir, -scatteringHalf)), thicknessPower) * thicknessScale;\n \tvec3 scatteringIllu = (scatteringDot + thicknessAmbient) * thickness;\n \treflectedLight.directDiffuse += scatteringIllu * thicknessAttenuation * directLight.color;\n }\n\n ${t.replace("#include ",n.ShaderChunk.lights_fragment_begin.replace(/RE_Direct\( directLight, geometry, material, reflectedLight \);/g,"\n RE_Direct( directLight, geometry, material, reflectedLight );\n\n #if defined( SUBSURFACE ) && defined( USE_UV )\n RE_Direct_Scattering(directLight, vUv, geometry, reflectedLight);\n #endif\n "))}\n `},i}const a={get uniforms(){return s().uniforms},set uniforms(e){s().uniforms=e},get vertexShader(){return s().vertexShader},set vertexShader(e){s().vertexShader=e},get fragmentShader(){return s().vertexShader},set fragmentShader(e){s().vertexShader=e}};t.SubsurfaceScatteringShader=a},60206:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 tex = texture2D( tDiffuse, vec2( vUv.x, vUv.y ) );","\tvec4 newTex = vec4(tex.r, (tex.g + tex.b) * .5, (tex.g + tex.b) * .5, 1.0);","\tgl_FragColor = newTex;","}"].join("\n")};t.TechnicolorShader=r},51867:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},averageLuminance:{value:1},luminanceMap:{value:null},maxLuminance:{value:16},minLuminance:{value:.01},middleGrey:{value:.6}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","uniform sampler2D tDiffuse;","varying vec2 vUv;","uniform float middleGrey;","uniform float minLuminance;","uniform float maxLuminance;","#ifdef ADAPTED_LUMINANCE","\tuniform sampler2D luminanceMap;","#else","\tuniform float averageLuminance;","#endif","vec3 ToneMap( vec3 vColor ) {","\t#ifdef ADAPTED_LUMINANCE","\t\tfloat fLumAvg = texture2D(luminanceMap, vec2(0.5, 0.5)).r;","\t#else","\t\tfloat fLumAvg = averageLuminance;","\t#endif","\tfloat fLumPixel = linearToRelativeLuminance( vColor );","\tfloat fLumScaled = (fLumPixel * middleGrey) / max( minLuminance, fLumAvg );","\tfloat fLumCompressed = (fLumScaled * (1.0 + (fLumScaled / (maxLuminance * maxLuminance)))) / (1.0 + fLumScaled);","\treturn fLumCompressed * vColor;","}","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tgl_FragColor = vec4( ToneMap( texel.xyz ), texel.w );","}"].join("\n")};t.ToneMapShader=r},55658:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={uniforms:{uDirLightPos:{value:new n.Vector3},uDirLightColor:{value:new n.Color(15658734)},uAmbientLightColor:{value:new n.Color(328965)},uBaseColor:{value:new n.Color(16777215)}},vertexShader:["varying vec3 vNormal;","varying vec3 vRefract;","void main() {","\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );","\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );","\tvec3 worldNormal = normalize ( mat3( modelMatrix[0].xyz, modelMatrix[1].xyz, modelMatrix[2].xyz ) * normal );","\tvNormal = normalize( normalMatrix * normal );","\tvec3 I = worldPosition.xyz - cameraPosition;","\tvRefract = refract( normalize( I ), worldNormal, 1.02 );","\tgl_Position = projectionMatrix * mvPosition;","}"].join("\n"),fragmentShader:["uniform vec3 uBaseColor;","uniform vec3 uDirLightPos;","uniform vec3 uDirLightColor;","uniform vec3 uAmbientLightColor;","varying vec3 vNormal;","varying vec3 vRefract;","void main() {","\tfloat directionalLightWeighting = max( dot( normalize( vNormal ), uDirLightPos ), 0.0);","\tvec3 lightWeighting = uAmbientLightColor + uDirLightColor * directionalLightWeighting;","\tfloat intensity = smoothstep( - 0.5, 1.0, pow( length(lightWeighting), 20.0 ) );","\tintensity += length(lightWeighting) * 0.2;","\tfloat cameraWeighting = dot( normalize( vNormal ), vRefract );","\tintensity += pow( 1.0 - length( cameraWeighting ), 6.0 );","\tintensity = intensity * 0.2 + 0.3;","\tif ( intensity < 0.50 ) {","\t\tgl_FragColor = vec4( 2.0 * intensity * uBaseColor, 1.0 );","\t} else {","\t\tgl_FragColor = vec4( 1.0 - 2.0 * ( 1.0 - intensity ) * ( 1.0 - uBaseColor ), 1.0 );","}","}"].join("\n")},s={uniforms:{uDirLightPos:{value:new n.Vector3},uDirLightColor:{value:new n.Color(15658734)},uAmbientLightColor:{value:new n.Color(328965)},uBaseColor:{value:new n.Color(15658734)},uLineColor1:{value:new n.Color(8421504)},uLineColor2:{value:new n.Color(0)},uLineColor3:{value:new n.Color(0)},uLineColor4:{value:new n.Color(0)}},vertexShader:["varying vec3 vNormal;","void main() {","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","\tvNormal = normalize( normalMatrix * normal );","}"].join("\n"),fragmentShader:["uniform vec3 uBaseColor;","uniform vec3 uLineColor1;","uniform vec3 uLineColor2;","uniform vec3 uLineColor3;","uniform vec3 uLineColor4;","uniform vec3 uDirLightPos;","uniform vec3 uDirLightColor;","uniform vec3 uAmbientLightColor;","varying vec3 vNormal;","void main() {","\tfloat camera = max( dot( normalize( vNormal ), vec3( 0.0, 0.0, 1.0 ) ), 0.4);","\tfloat light = max( dot( normalize( vNormal ), uDirLightPos ), 0.0);","\tgl_FragColor = vec4( uBaseColor, 1.0 );","\tif ( length(uAmbientLightColor + uDirLightColor * light) < 1.00 ) {","\t\tgl_FragColor *= vec4( uLineColor1, 1.0 );","\t}","\tif ( length(uAmbientLightColor + uDirLightColor * camera) < 0.50 ) {","\t\tgl_FragColor *= vec4( uLineColor2, 1.0 );","\t}","}"].join("\n")},a={uniforms:{uDirLightPos:{value:new n.Vector3},uDirLightColor:{value:new n.Color(15658734)},uAmbientLightColor:{value:new n.Color(328965)},uBaseColor:{value:new n.Color(16777215)},uLineColor1:{value:new n.Color(0)},uLineColor2:{value:new n.Color(0)},uLineColor3:{value:new n.Color(0)},uLineColor4:{value:new n.Color(0)}},vertexShader:["varying vec3 vNormal;","void main() {","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","\tvNormal = normalize( normalMatrix * normal );","}"].join("\n"),fragmentShader:["uniform vec3 uBaseColor;","uniform vec3 uLineColor1;","uniform vec3 uLineColor2;","uniform vec3 uLineColor3;","uniform vec3 uLineColor4;","uniform vec3 uDirLightPos;","uniform vec3 uDirLightColor;","uniform vec3 uAmbientLightColor;","varying vec3 vNormal;","void main() {","\tfloat directionalLightWeighting = max( dot( normalize(vNormal), uDirLightPos ), 0.0);","\tvec3 lightWeighting = uAmbientLightColor + uDirLightColor * directionalLightWeighting;","\tgl_FragColor = vec4( uBaseColor, 1.0 );","\tif ( length(lightWeighting) < 1.00 ) {","\t\tif ( mod(gl_FragCoord.x + gl_FragCoord.y, 10.0) == 0.0) {","\t\t\tgl_FragColor = vec4( uLineColor1, 1.0 );","\t\t}","\t}","\tif ( length(lightWeighting) < 0.75 ) {","\t\tif (mod(gl_FragCoord.x - gl_FragCoord.y, 10.0) == 0.0) {","\t\t\tgl_FragColor = vec4( uLineColor2, 1.0 );","\t\t}","\t}","\tif ( length(lightWeighting) < 0.50 ) {","\t\tif (mod(gl_FragCoord.x + gl_FragCoord.y - 5.0, 10.0) == 0.0) {","\t\t\tgl_FragColor = vec4( uLineColor3, 1.0 );","\t\t}","\t}","\tif ( length(lightWeighting) < 0.3465 ) {","\t\tif (mod(gl_FragCoord.x - gl_FragCoord.y - 5.0, 10.0) == 0.0) {","\t\t\tgl_FragColor = vec4( uLineColor4, 1.0 );","\t}","\t}","}"].join("\n")},o={uniforms:{uDirLightPos:{value:new n.Vector3},uDirLightColor:{value:new n.Color(15658734)},uAmbientLightColor:{value:new n.Color(328965)},uBaseColor:{value:new n.Color(16777215)},uLineColor1:{value:new n.Color(0)}},vertexShader:["varying vec3 vNormal;","void main() {","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","\tvNormal = normalize( normalMatrix * normal );","}"].join("\n"),fragmentShader:["uniform vec3 uBaseColor;","uniform vec3 uLineColor1;","uniform vec3 uLineColor2;","uniform vec3 uLineColor3;","uniform vec3 uLineColor4;","uniform vec3 uDirLightPos;","uniform vec3 uDirLightColor;","uniform vec3 uAmbientLightColor;","varying vec3 vNormal;","void main() {","float directionalLightWeighting = max( dot( normalize(vNormal), uDirLightPos ), 0.0);","vec3 lightWeighting = uAmbientLightColor + uDirLightColor * directionalLightWeighting;","gl_FragColor = vec4( uBaseColor, 1.0 );","if ( length(lightWeighting) < 1.00 ) {","\t\tif ( ( mod(gl_FragCoord.x, 4.001) + mod(gl_FragCoord.y, 4.0) ) > 6.00 ) {","\t\t\tgl_FragColor = vec4( uLineColor1, 1.0 );","\t\t}","\t}","\tif ( length(lightWeighting) < 0.50 ) {","\t\tif ( ( mod(gl_FragCoord.x + 2.0, 4.001) + mod(gl_FragCoord.y + 2.0, 4.0) ) > 6.00 ) {","\t\t\tgl_FragColor = vec4( uLineColor1, 1.0 );","\t\t}","\t}","}"].join("\n")};t.ToonShader1=i,t.ToonShader2=s,t.ToonShaderDotted=o,t.ToonShaderHatching=a},60310:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n={uniforms:{texture:{value:null},delta:{value:new(r(85232).Vector2)(1,1)}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["#include ","#define ITERATIONS 10.0","uniform sampler2D texture;","uniform vec2 delta;","varying vec2 vUv;","void main() {","\tvec4 color = vec4( 0.0 );","\tfloat total = 0.0;","\tfloat offset = rand( vUv );","\tfor ( float t = -ITERATIONS; t <= ITERATIONS; t ++ ) {","\t\tfloat percent = ( t + offset - 0.5 ) / ITERATIONS;","\t\tfloat weight = 1.0 - abs( percent );","\t\tcolor += texture2D( texture, vUv + delta * percent ) * weight;","\t\ttotal += weight;","\t}","\tgl_FragColor = color / total;","}"].join("\n")};t.TriangleBlurShader=n},65149:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},opacity:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float opacity;","uniform sampler2D tDiffuse;","varying vec2 vUv;","#include ","void main() {","\tfloat depth = 1.0 - unpackRGBAToDepth( texture2D( tDiffuse, vUv ) );","\tgl_FragColor = vec4( vec3( depth ), opacity );","}"].join("\n")};t.UnpackDepthRGBAShader=r},94989:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},v:{value:1/512}},vertexShader:"\n varying vec2 vUv;\n\n void main() {\n\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n\n }\n ",fragmentShader:"\n\n uniform sampler2D tDiffuse;\n uniform float v;\n\n varying vec2 vUv;\n\n void main() {\n\n vec4 sum = vec4( 0.0 );\n\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * v ) ) * 0.051;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * v ) ) * 0.0918;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * v ) ) * 0.12245;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * v ) ) * 0.1531;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * v ) ) * 0.1531;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * v ) ) * 0.12245;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * v ) ) * 0.0918;\n sum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * v ) ) * 0.051;\n\n gl_FragColor = sum;\n\n }\n "};t.VerticalBlurShader=r},19076:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},v:{value:1/512},r:{value:.35}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform sampler2D tDiffuse;","uniform float v;","uniform float r;","varying vec2 vUv;","void main() {","\tvec4 sum = vec4( 0.0 );","\tfloat vv = v * abs( r - vUv.y );","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 4.0 * vv ) ) * 0.051;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 3.0 * vv ) ) * 0.0918;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 2.0 * vv ) ) * 0.12245;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y - 1.0 * vv ) ) * 0.1531;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y ) ) * 0.1633;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 1.0 * vv ) ) * 0.1531;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 2.0 * vv ) ) * 0.12245;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 3.0 * vv ) ) * 0.0918;","\tsum += texture2D( tDiffuse, vec2( vUv.x, vUv.y + 4.0 * vv ) ) * 0.051;","\tgl_FragColor = sum;","}"].join("\n")};t.VerticalTiltShiftShader=r},74354:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{tDiffuse:{value:null},offset:{value:1},darkness:{value:1}},vertexShader:["varying vec2 vUv;","void main() {","\tvUv = uv;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform float offset;","uniform float darkness;","uniform sampler2D tDiffuse;","varying vec2 vUv;","void main() {","\tvec4 texel = texture2D( tDiffuse, vUv );","\tvec2 uv = ( vUv - vec2( 0.5 ) ) * vec2( offset );","\tgl_FragColor = vec4( mix( texel.rgb, vec3( 1.0 - darkness ), dot( uv, uv ) ), texel.a );","}"].join("\n")};t.VignetteShader=r},16832:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={uniforms:{u_size:{value:new n.Vector3(1,1,1)},u_renderstyle:{value:0},u_renderthreshold:{value:.5},u_clim:{value:new n.Vector2(1,1)},u_data:{value:null},u_cmdata:{value:null}},vertexShader:["\t\tvarying vec4 v_nearpos;","\t\tvarying vec4 v_farpos;","\t\tvarying vec3 v_position;","\t\tvoid main() {","\t\t\t\tmat4 viewtransformf = modelViewMatrix;","\t\t\t\tmat4 viewtransformi = inverse(modelViewMatrix);","\t\t\t\tvec4 position4 = vec4(position, 1.0);","\t\t\t\tvec4 pos_in_cam = viewtransformf * position4;","\t\t\t\tpos_in_cam.z = -pos_in_cam.w;","\t\t\t\tv_nearpos = viewtransformi * pos_in_cam;","\t\t\t\tpos_in_cam.z = pos_in_cam.w;","\t\t\t\tv_farpos = viewtransformi * pos_in_cam;","\t\t\t\tv_position = position;","\t\t\t\tgl_Position = projectionMatrix * viewMatrix * modelMatrix * position4;","\t\t}"].join("\n"),fragmentShader:["\t\tprecision highp float;","\t\tprecision mediump sampler3D;","\t\tuniform vec3 u_size;","\t\tuniform int u_renderstyle;","\t\tuniform float u_renderthreshold;","\t\tuniform vec2 u_clim;","\t\tuniform sampler3D u_data;","\t\tuniform sampler2D u_cmdata;","\t\tvarying vec3 v_position;","\t\tvarying vec4 v_nearpos;","\t\tvarying vec4 v_farpos;","\t\tconst int MAX_STEPS = 887;\t// 887 for 512^3, 1774 for 1024^3","\t\tconst int REFINEMENT_STEPS = 4;","\t\tconst float relative_step_size = 1.0;","\t\tconst vec4 ambient_color = vec4(0.2, 0.4, 0.2, 1.0);","\t\tconst vec4 diffuse_color = vec4(0.8, 0.2, 0.2, 1.0);","\t\tconst vec4 specular_color = vec4(1.0, 1.0, 1.0, 1.0);","\t\tconst float shininess = 40.0;","\t\tvoid cast_mip(vec3 start_loc, vec3 step, int nsteps, vec3 view_ray);","\t\tvoid cast_iso(vec3 start_loc, vec3 step, int nsteps, vec3 view_ray);","\t\tfloat sample1(vec3 texcoords);","\t\tvec4 apply_colormap(float val);","\t\tvec4 add_lighting(float val, vec3 loc, vec3 step, vec3 view_ray);","\t\tvoid main() {","\t\t\t\tvec3 farpos = v_farpos.xyz / v_farpos.w;","\t\t\t\tvec3 nearpos = v_nearpos.xyz / v_nearpos.w;","\t\t\t\tvec3 view_ray = normalize(nearpos.xyz - farpos.xyz);","\t\t\t\tfloat distance = dot(nearpos - v_position, view_ray);","\t\t\t\tdistance = max(distance, min((-0.5 - v_position.x) / view_ray.x,","\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(u_size.x - 0.5 - v_position.x) / view_ray.x));","\t\t\t\tdistance = max(distance, min((-0.5 - v_position.y) / view_ray.y,","\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(u_size.y - 0.5 - v_position.y) / view_ray.y));","\t\t\t\tdistance = max(distance, min((-0.5 - v_position.z) / view_ray.z,","\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(u_size.z - 0.5 - v_position.z) / view_ray.z));","\t\t\t\tvec3 front = v_position + view_ray * distance;","\t\t\t\tint nsteps = int(-distance / relative_step_size + 0.5);","\t\t\t\tif ( nsteps < 1 )","\t\t\t\t\t\tdiscard;","\t\t\t\tvec3 step = ((v_position - front) / u_size) / float(nsteps);","\t\t\t\tvec3 start_loc = front / u_size;","\t\t\t\tif (u_renderstyle == 0)","\t\t\t\t\t\tcast_mip(start_loc, step, nsteps, view_ray);","\t\t\t\telse if (u_renderstyle == 1)","\t\t\t\t\t\tcast_iso(start_loc, step, nsteps, view_ray);","\t\t\t\tif (gl_FragColor.a < 0.05)","\t\t\t\t\t\tdiscard;","\t\t}","\t\tfloat sample1(vec3 texcoords) {","\t\t\t\t/* Sample float value from a 3D texture. Assumes intensity data. */","\t\t\t\treturn texture(u_data, texcoords.xyz).r;","\t\t}","\t\tvec4 apply_colormap(float val) {","\t\t\t\tval = (val - u_clim[0]) / (u_clim[1] - u_clim[0]);","\t\t\t\treturn texture2D(u_cmdata, vec2(val, 0.5));","\t\t}","\t\tvoid cast_mip(vec3 start_loc, vec3 step, int nsteps, vec3 view_ray) {","\t\t\t\tfloat max_val = -1e6;","\t\t\t\tint max_i = 100;","\t\t\t\tvec3 loc = start_loc;","\t\t\t\tfor (int iter=0; iter= nsteps)","\t\t\t\t\t\t\t\tbreak;","\t\t\t\t\t\tfloat val = sample1(loc);","\t\t\t\t\t\tif (val > max_val) {","\t\t\t\t\t\t\t\tmax_val = val;","\t\t\t\t\t\t\t\tmax_i = iter;","\t\t\t\t\t\t}","\t\t\t\t\t\tloc += step;","\t\t\t\t}","\t\t\t\tvec3 iloc = start_loc + step * (float(max_i) - 0.5);","\t\t\t\tvec3 istep = step / float(REFINEMENT_STEPS);","\t\t\t\tfor (int i=0; i= nsteps)","\t\t\t\t\t\t\t\tbreak;","\t\t\t\t\t\tfloat val = sample1(loc);","\t\t\t\t\t\tif (val > low_threshold) {","\t\t\t\t\t\t\t\tvec3 iloc = loc - 0.5 * step;","\t\t\t\t\t\t\t\tvec3 istep = step / float(REFINEMENT_STEPS);","\t\t\t\t\t\t\t\tfor (int i=0; i u_renderthreshold) {","\t\t\t\t\t\t\t\t\t\t\t\tgl_FragColor = add_lighting(val, iloc, dstep, view_ray);","\t\t\t\t\t\t\t\t\t\t\t\treturn;","\t\t\t\t\t\t\t\t\t\t}","\t\t\t\t\t\t\t\t\t\tiloc += istep;","\t\t\t\t\t\t\t\t}","\t\t\t\t\t\t}","\t\t\t\t\t\tloc += step;","\t\t\t\t}","\t\t}","\t\tvec4 add_lighting(float val, vec3 loc, vec3 step, vec3 view_ray)","\t\t{","\t\t\t\tvec3 V = normalize(view_ray);","\t\t\t\tvec3 N;","\t\t\t\tfloat val1, val2;","\t\t\t\tval1 = sample1(loc + vec3(-step[0], 0.0, 0.0));","\t\t\t\tval2 = sample1(loc + vec3(+step[0], 0.0, 0.0));","\t\t\t\tN[0] = val1 - val2;","\t\t\t\tval = max(max(val1, val2), val);","\t\t\t\tval1 = sample1(loc + vec3(0.0, -step[1], 0.0));","\t\t\t\tval2 = sample1(loc + vec3(0.0, +step[1], 0.0));","\t\t\t\tN[1] = val1 - val2;","\t\t\t\tval = max(max(val1, val2), val);","\t\t\t\tval1 = sample1(loc + vec3(0.0, 0.0, -step[2]));","\t\t\t\tval2 = sample1(loc + vec3(0.0, 0.0, +step[2]));","\t\t\t\tN[2] = val1 - val2;","\t\t\t\tval = max(max(val1, val2), val);","\t\t\t\tfloat gm = length(N); // gradient magnitude","\t\t\t\tN = normalize(N);","\t\t\t\tfloat Nselect = float(dot(N, V) > 0.0);","\t\t\t\tN = (2.0 * Nselect - 1.0) * N;\t// ==\tNselect * N - (1.0-Nselect)*N;","\t\t\t\tvec4 ambient_color = vec4(0.0, 0.0, 0.0, 0.0);","\t\t\t\tvec4 diffuse_color = vec4(0.0, 0.0, 0.0, 0.0);","\t\t\t\tvec4 specular_color = vec4(0.0, 0.0, 0.0, 0.0);","\t\t\t\tfor (int i=0; i<1; i++)","\t\t\t\t{","\t\t\t\t\t\tvec3 L = normalize(view_ray);\t//lightDirs[i];","\t\t\t\t\t\tfloat lightEnabled = float( length(L) > 0.0 );","\t\t\t\t\t\tL = normalize(L + (1.0 - lightEnabled));","\t\t\t\t\t\tfloat lambertTerm = clamp(dot(N, L), 0.0, 1.0);","\t\t\t\t\t\tvec3 H = normalize(L+V); // Halfway vector","\t\t\t\t\t\tfloat specularTerm = pow(max(dot(H, N), 0.0), shininess);","\t\t\t\t\t\tfloat mask1 = lightEnabled;","\t\t\t\t\t\tambient_color +=\tmask1 * ambient_color;\t// * gl_LightSource[i].ambient;","\t\t\t\t\t\tdiffuse_color +=\tmask1 * lambertTerm;","\t\t\t\t\t\tspecular_color += mask1 * specularTerm * specular_color;","\t\t\t\t}","\t\t\t\tvec4 final_color;","\t\t\t\tvec4 color = apply_colormap(val);","\t\t\t\tfinal_color = color * (ambient_color + diffuse_color) + specular_color;","\t\t\t\tfinal_color.a = color.a;","\t\t\t\treturn final_color;","\t\t}"].join("\n")};t.VolumeRenderShader1=i},169:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r={uniforms:{color:{value:null},time:{value:0},tDiffuse:{value:null},tDudv:{value:null},textureMatrix:{value:null}},vertexShader:["uniform mat4 textureMatrix;","varying vec2 vUv;","varying vec4 vUvRefraction;","void main() {","\tvUv = uv;","\tvUvRefraction = textureMatrix * vec4( position, 1.0 );","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),fragmentShader:["uniform vec3 color;","uniform float time;","uniform sampler2D tDiffuse;","uniform sampler2D tDudv;","varying vec2 vUv;","varying vec4 vUvRefraction;","float blendOverlay( float base, float blend ) {","\treturn( base < 0.5 ? ( 2.0 * base * blend ) : ( 1.0 - 2.0 * ( 1.0 - base ) * ( 1.0 - blend ) ) );","}","vec3 blendOverlay( vec3 base, vec3 blend ) {","\treturn vec3( blendOverlay( base.r, blend.r ), blendOverlay( base.g, blend.g ),blendOverlay( base.b, blend.b ) );","}","void main() {"," float waveStrength = 0.1;"," float waveSpeed = 0.03;","\tvec2 distortedUv = texture2D( tDudv, vec2( vUv.x + time * waveSpeed, vUv.y ) ).rg * waveStrength;","\tdistortedUv = vUv.xy + vec2( distortedUv.x, distortedUv.y + time * waveSpeed );","\tvec2 distortion = ( texture2D( tDudv, distortedUv ).rg * 2.0 - 1.0 ) * waveStrength;"," vec4 uv = vec4( vUvRefraction );"," uv.xy += distortion;","\tvec4 base = texture2DProj( tDiffuse, uv );","\tgl_FragColor = vec4( blendOverlay( base.rgb, color ), 1.0 );","}"].join("\n")};t.WaterRefractionShader=r},99100:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.FlakesTexture=class{constructor(e=512,t=512){const r=document.createElement("canvas");r.width=e,r.height=t;const n=r.getContext("2d");n.fillStyle="rgb(127,127,255)",n.fillRect(0,0,e,t);for(let i=0;i<4e3;i++){const r=Math.random()*e,i=Math.random()*t,s=3*Math.random()+3;let a=2*Math.random()-1,o=2*Math.random()-1,l=1.5;const c=Math.sqrt(a*a+o*o+l*l);a/=c,o/=c,l/=c,n.fillStyle="rgb("+(127*a+127)+","+(127*o+127)+","+255*l+")",n.beginPath(),n.arc(r,i,s,0,2*Math.PI),n.fill()}return r}}},91455:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.getWithKey=(e,t)=>e[t]},66552:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(91455),s=e=>{let t,r,i,s=0;if(e.forEach((e=>(void 0===t&&(t=e.array.constructor),t!==e.array.constructor?(console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null):(void 0===r&&(r=e.itemSize),r!==e.itemSize?(console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null):(void 0===i&&(i=e.normalized),i!==e.normalized?(console.error("THREE.BufferGeometryUtils: .mergeBufferAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null):void(s+=e.array.length)))))),t&&r){const a=new t(s);let o=0;return e.forEach((e=>{a.set(e.array,o),o+=e.array.length})),new n.BufferAttribute(a,r,i)}};t.computeMorphedAttributes=function(e){if(!0!==e.geometry.isBufferGeometry)return console.error("THREE.BufferGeometryUtils: Geometry is not of type BufferGeometry."),null;const t=new n.Vector3,r=new n.Vector3,i=new n.Vector3,s=new n.Vector3,a=new n.Vector3,o=new n.Vector3,l=new n.Vector3,c=new n.Vector3,h=new n.Vector3;function u(e,n,u,d,p,f,m,g,A){t.fromBufferAttribute(u,f),r.fromBufferAttribute(u,m),i.fromBufferAttribute(u,g);const v=e.morphTargetInfluences;if(n.morphTargets&&d&&v){l.set(0,0,0),c.set(0,0,0),h.set(0,0,0);for(let e=0,n=d.length;e{let t,r=0,s=0;for(let n=0,i=e.length;n{const r=null!==e[0].index,i=new Set(Object.keys(e[0].attributes)),a=new Set(Object.keys(e[0].morphAttributes)),o={},l={},c=e[0].morphTargetsRelative,h=new n.BufferGeometry;let u=0;if(e.forEach(((e,n)=>{let s=0;if(r!==(null!==e.index))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+n+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(let t in e.attributes){if(!i.has(t))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+n+'. All geometries must have compatible attributes; make sure "'+t+'" attribute exists among all geometries, or in none of them.'),null;void 0===o[t]&&(o[t]=[]),o[t].push(e.attributes[t]),s++}if(s!==i.size)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+n+". Make sure all geometries have the same number of attributes."),null;if(c!==e.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+n+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(let t in e.morphAttributes){if(!a.has(t))return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+n+". .morphAttributes must be consistent throughout all geometries."),null;void 0===l[t]&&(l[t]=[]),l[t].push(e.morphAttributes[t])}if(h.userData.mergedUserData=h.userData.mergedUserData||[],h.userData.mergedUserData.push(e.userData),t){let t;if(e.index)t=e.index.count;else{if(void 0===e.attributes.position)return console.error("THREE.BufferGeometryUtils: .mergeBufferGeometries() failed with geometry at index "+n+". The geometry must have either an index or a position attribute"),null;t=e.attributes.position.count}h.addGroup(u,t,n),u+=t}})),r){let t=0;const r=[];e.forEach((e=>{const n=e.index;for(let i=0;i[])))}const p=Math.log10(1/t),f=Math.pow(10,p);for(let n=0;nr&&c.add(n)}c.normalize(),m.setXYZ(e+n,c.x,c.y,c.z)}}return u.setAttribute("normal",m),u},t.toTrianglesDrawMode=function(e,t){if(t===n.TrianglesDrawMode)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),e;if(t===n.TriangleFanDrawMode||t===n.TriangleStripDrawMode){let r=e.getIndex();if(null===r){const t=[],n=e.getAttribute("position");if(void 0===n)return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(let e=0;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);var i={compressNormals:function(e,t){e.geometry||console.error("Mesh must contain geometry. ");const r=e.geometry.attributes.normal;if(r||console.error("Geometry must contain normal attribute. "),r.isPacked)return;3!=r.itemSize&&console.error("normal.itemSize is not 3, which cannot be encoded. ");const i=r.array,a=r.count;let o;if("DEFAULT"==t){o=new Uint8Array(3*a);for(let e=0;e=-1&&r.max<=1){a=new Uint16Array(i.length);for(let e=0;el&&(a=i,l=o),s=h(i=c(e,t,r,"floor","ceil")),(o=u(e,t,r,s))>l&&(a=i,l=o),s=h(i=c(e,t,r,"ceil","ceil")),(o=u(e,t,r,s))>l&&(a=i),a;function c(e,t,i,s,a){var o=e/(Math.abs(e)+Math.abs(t)+Math.abs(i)),l=t/(Math.abs(e)+Math.abs(t)+Math.abs(i));if(r<0){var c=(1-Math.abs(l))*(o>=0?1:-1),h=(1-Math.abs(o))*(l>=0?1:-1);o=c,l=h;var u=1-Math.abs(o)-Math.abs(l);u>0&&(u+=.001,o+=o>0?u/2:-u/2,l+=l>0?u/2:-u/2)}return 1==n?new Int8Array([Math[s](127.5*o+(o<0?1:0)),Math[a](127.5*l+(l<0?1:0))]):2==n?new Int16Array([Math[s](32767.5*o+(o<0?1:0)),Math[a](32767.5*l+(l<0?1:0))]):void 0}function h(e){var t=e[0],r=e[1];1==n?(t/=t<0?127:128,r/=r<0?127:128):2==n&&(t/=t<0?32767:32768,r/=r<0?32767:32768);var i=1-Math.abs(t)-Math.abs(r);if(i<0){var s=t;t=(1-Math.abs(r))*(t>=0?1:-1),r=(1-Math.abs(s))*(r>=0?1:-1)}var a=Math.sqrt(t*t+r*r+i*i);return[t/a,r/a,i/a]}function u(e,t,r,n){return e*n[0]+t*n[1]+r*n[2]}},quantizedEncode:function(e,t){let r,i;1==t?(r=new Uint8Array(e.length),i=255):2==t?(r=new Uint16Array(e.length),i=65535):console.error("number of bytes error! ");const s=new n.Matrix4,a=new Float32Array(3),o=new Float32Array(3);a[0]=a[1]=a[2]=Number.MAX_VALUE,o[0]=o[1]=o[2]=-Number.MAX_VALUE;for(let n=0;n= 0.0) ? +1.0 : -1.0, (v.y >= 0.0) ? +1.0 : -1.0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn normalize(v);\n\t\t\t\t\t\t}\n\t\t\t\t\t#endif\n\n\t\t\t\t\t#if USE_PACKED_NORMAL == 2\n\t\t\t\t\t\tvec3 decodeNormal(vec3 packedNormal)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvec3 v = (packedNormal * 2.0) - 1.0;\n\t\t\t\t\t\t\treturn normalize(v);\n\t\t\t\t\t\t}\n\t\t\t\t\t#endif\n\t\t\t\t#endif","#ifdef USE_PACKED_POSITION\n\t\t\t\t\t#if USE_PACKED_POSITION == 0\n\t\t\t\t\t\tuniform mat4 quantizeMatPos;\n\t\t\t\t\t#endif\n\t\t\t\t#endif","#ifdef USE_PACKED_UV\n\t\t\t\t\t#if USE_PACKED_UV == 1\n\t\t\t\t\t\tuniform mat3 quantizeMatUV;\n\t\t\t\t\t#endif\n\t\t\t\t#endif","#ifdef USE_PACKED_UV\n\t\t\t\t\t#if USE_PACKED_UV == 0\n\t\t\t\t\t\tvec2 decodeUV(vec2 packedUV)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvec2 uv = (packedUV * 2.0) - 1.0;\n\t\t\t\t\t\t\treturn uv;\n\t\t\t\t\t\t}\n\t\t\t\t\t#endif\n\n\t\t\t\t\t#if USE_PACKED_UV == 1\n\t\t\t\t\t\tvec2 decodeUV(vec2 packedUV)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvec2 uv = ( vec3(packedUV, 1.0) * quantizeMatUV ).xy;\n\t\t\t\t\t\t\treturn uv;\n\t\t\t\t\t\t}\n\t\t\t\t\t#endif\n\t\t\t\t#endif","void main() {",n.ShaderChunk.uv_vertex,"#ifdef USE_UV\n\t\t\t\t\t#ifdef USE_PACKED_UV\n\t\t\t\t\t\tvUv = decodeUV(vUv);\n\t\t\t\t\t#endif\n\t\t\t\t#endif",n.ShaderChunk.uv2_vertex,n.ShaderChunk.color_vertex,n.ShaderChunk.beginnormal_vertex,"#ifdef USE_PACKED_NORMAL\n\t\t\t\t\tobjectNormal = decodeNormal(objectNormal);\n\t\t\t\t#endif\n\n\t\t\t\t#ifdef USE_TANGENT\n\t\t\t\t\tvec3 objectTangent = vec3( tangent.xyz );\n\t\t\t\t#endif\n\t\t\t\t",n.ShaderChunk.morphnormal_vertex,n.ShaderChunk.skinbase_vertex,n.ShaderChunk.skinnormal_vertex,n.ShaderChunk.defaultnormal_vertex,"#ifndef FLAT_SHADED","\tvNormal = normalize( transformedNormal );","#endif",n.ShaderChunk.begin_vertex,"#ifdef USE_PACKED_POSITION\n\t\t\t\t\t#if USE_PACKED_POSITION == 0\n\t\t\t\t\t\ttransformed = ( vec4(transformed, 1.0) * quantizeMatPos ).xyz;\n\t\t\t\t\t#endif\n\t\t\t\t#endif",n.ShaderChunk.morphtarget_vertex,n.ShaderChunk.skinning_vertex,n.ShaderChunk.displacementmap_vertex,n.ShaderChunk.project_vertex,n.ShaderChunk.logdepthbuf_vertex,n.ShaderChunk.clipping_planes_vertex,"vViewPosition = - mvPosition.xyz;",n.ShaderChunk.worldpos_vertex,n.ShaderChunk.envmap_vertex,n.ShaderChunk.shadowmap_vertex,n.ShaderChunk.fog_vertex,"}"].join("\n"),this.fragmentShader=["#define PHONG","uniform vec3 diffuse;","uniform vec3 emissive;","uniform vec3 specular;","uniform float shininess;","uniform float opacity;",n.ShaderChunk.common,n.ShaderChunk.packing,n.ShaderChunk.dithering_pars_fragment,n.ShaderChunk.color_pars_fragment,n.ShaderChunk.uv_pars_fragment,n.ShaderChunk.uv2_pars_fragment,n.ShaderChunk.map_pars_fragment,n.ShaderChunk.alphamap_pars_fragment,n.ShaderChunk.aomap_pars_fragment,n.ShaderChunk.lightmap_pars_fragment,n.ShaderChunk.emissivemap_pars_fragment,n.ShaderChunk.envmap_common_pars_fragment,n.ShaderChunk.envmap_pars_fragment,n.ShaderChunk.cube_uv_reflection_fragment,n.ShaderChunk.fog_pars_fragment,n.ShaderChunk.bsdfs,n.ShaderChunk.lights_pars_begin,n.ShaderChunk.lights_phong_pars_fragment,n.ShaderChunk.shadowmap_pars_fragment,n.ShaderChunk.bumpmap_pars_fragment,n.ShaderChunk.normalmap_pars_fragment,n.ShaderChunk.specularmap_pars_fragment,n.ShaderChunk.logdepthbuf_pars_fragment,n.ShaderChunk.clipping_planes_pars_fragment,"void main() {",n.ShaderChunk.clipping_planes_fragment,"vec4 diffuseColor = vec4( diffuse, opacity );","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );","vec3 totalEmissiveRadiance = emissive;",n.ShaderChunk.logdepthbuf_fragment,n.ShaderChunk.map_fragment,n.ShaderChunk.color_fragment,n.ShaderChunk.alphamap_fragment,n.ShaderChunk.alphatest_fragment,n.ShaderChunk.specularmap_fragment,n.ShaderChunk.normal_fragment_begin,n.ShaderChunk.normal_fragment_maps,n.ShaderChunk.emissivemap_fragment,n.ShaderChunk.lights_phong_fragment,n.ShaderChunk.lights_fragment_begin,n.ShaderChunk.lights_fragment_maps,n.ShaderChunk.lights_fragment_end,n.ShaderChunk.aomap_fragment,"vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;",n.ShaderChunk.envmap_fragment,"gl_FragColor = vec4( outgoingLight, diffuseColor.a );",n.ShaderChunk.tonemapping_fragment,parseInt(n.REVISION.replace(/\D+/g,""))>=154?n.ShaderChunk.colorspace_fragment:n.ShaderChunk.encodings_fragment,n.ShaderChunk.fog_fragment,n.ShaderChunk.premultiplied_alpha_fragment,n.ShaderChunk.dithering_fragment,"}"].join("\n"),this.setValues(e)}}t.GeometryCompressionUtils=i,t.PackedPhongMaterial=s},83912:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=(e=new n.Vector3(0,0,0),t=10,r=1,s=0,a=1,o=2,l=3)=>{const c=t/2,h=[new n.Vector3(e.x-c,e.y,e.z-c),new n.Vector3(e.x-c,e.y,e.z+c),new n.Vector3(e.x+c,e.y,e.z+c),new n.Vector3(e.x+c,e.y,e.z-c)],u=[h[s],h[a],h[o],h[l]];if(0<=--r){const e=[];return Array.prototype.push.apply(e,i(u[0],c,r,s,l,o,a)),Array.prototype.push.apply(e,i(u[1],c,r,s,a,o,l)),Array.prototype.push.apply(e,i(u[2],c,r,s,a,o,l)),Array.prototype.push.apply(e,i(u[3],c,r,o,a,s,l)),e}return u},s=(e=new n.Vector3(0,0,0),t=10,r=1,i=0,a=1,o=2,l=3,c=4,h=5,u=6,d=7)=>{const p=t/2,f=[new n.Vector3(e.x-p,e.y+p,e.z-p),new n.Vector3(e.x-p,e.y+p,e.z+p),new n.Vector3(e.x-p,e.y-p,e.z+p),new n.Vector3(e.x-p,e.y-p,e.z-p),new n.Vector3(e.x+p,e.y-p,e.z-p),new n.Vector3(e.x+p,e.y-p,e.z+p),new n.Vector3(e.x+p,e.y+p,e.z+p),new n.Vector3(e.x+p,e.y+p,e.z-p)],m=[f[i],f[a],f[o],f[l],f[c],f[h],f[u],f[d]];if(--r>=0){const e=[];return Array.prototype.push.apply(e,s(m[0],p,r,i,l,c,d,u,h,o,a)),Array.prototype.push.apply(e,s(m[1],p,r,i,d,u,a,o,h,c,l)),Array.prototype.push.apply(e,s(m[2],p,r,i,d,u,a,o,h,c,l)),Array.prototype.push.apply(e,s(m[3],p,r,o,l,i,a,u,d,c,h)),Array.prototype.push.apply(e,s(m[4],p,r,o,l,i,a,u,d,c,h)),Array.prototype.push.apply(e,s(m[5],p,r,c,l,o,h,u,a,i,d)),Array.prototype.push.apply(e,s(m[6],p,r,c,l,o,h,u,a,i,d)),Array.prototype.push.apply(e,s(m[7],p,r,u,h,o,a,i,l,c,d)),e}return m},a={hilbert3D:s,gosper:(e=1)=>function(e){let t=0,r=0,n=0;const i=[0,0,0],s=e.fractal;for(let a=0,o=s.length;ai;0<=i?n++:n--){t="";for(let n=0,i=r.length;n{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232);var a,o=((a=new s.RawShaderMaterial({uniforms:{roughnessMap:{value:null},normalMap:{value:null},texelSize:{value:new s.Vector2(1,1)}},vertexShader:"\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tattribute vec3 position;\n\t\t\tattribute vec2 uv;\n\n\t\t\tvarying vec2 vUv;\n\n\t\t\tvoid main() {\n\n\t\t\t\tvUv = uv;\n\n\t\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t\t}\n\t\t",fragmentShader:"\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec2 vUv;\n\n\t\t\tuniform sampler2D roughnessMap;\n\t\t\tuniform sampler2D normalMap;\n\t\t\tuniform vec2 texelSize;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\n\t\t\tvec4 envMapTexelToLinear( vec4 a ) { return a; }\n\n\t\t\t#include \n\n\t\t\tfloat roughnessToVariance( float roughness ) {\n\n\t\t\t\tfloat variance = 0.0;\n\n\t\t\t\tif ( roughness >= r1 ) {\n\n\t\t\t\t\tvariance = ( r0 - roughness ) * ( v1 - v0 ) / ( r0 - r1 ) + v0;\n\n\t\t\t\t} else if ( roughness >= r4 ) {\n\n\t\t\t\t\tvariance = ( r1 - roughness ) * ( v4 - v1 ) / ( r1 - r4 ) + v1;\n\n\t\t\t\t} else if ( roughness >= r5 ) {\n\n\t\t\t\t\tvariance = ( r4 - roughness ) * ( v5 - v4 ) / ( r4 - r5 ) + v4;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tfloat roughness2 = roughness * roughness;\n\n\t\t\t\t\tvariance = 1.79 * roughness2 * roughness2;\n\n\t\t\t\t}\n\n\t\t\t\treturn variance;\n\n\t\t\t}\n\n\t\t\tfloat varianceToRoughness( float variance ) {\n\n\t\t\t\tfloat roughness = 0.0;\n\n\t\t\t\tif ( variance >= v1 ) {\n\n\t\t\t\t\troughness = ( v0 - variance ) * ( r1 - r0 ) / ( v0 - v1 ) + r0;\n\n\t\t\t\t} else if ( variance >= v4 ) {\n\n\t\t\t\t\troughness = ( v1 - variance ) * ( r4 - r1 ) / ( v1 - v4 ) + r1;\n\n\t\t\t\t} else if ( variance >= v5 ) {\n\n\t\t\t\t\troughness = ( v4 - variance ) * ( r5 - r4 ) / ( v4 - v5 ) + r4;\n\n\t\t\t\t} else {\n\n\t\t\t\t\troughness = pow( 0.559 * variance, 0.25 ); // 0.559 = 1.0 / 1.79\n\n\t\t\t\t}\n\n\t\t\t\treturn roughness;\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = texture2D( roughnessMap, vUv, - 1.0 );\n\n\t\t\t\tif ( texelSize.x == 0.0 ) return;\n\n\t\t\t\tfloat roughness = gl_FragColor.g;\n\n\t\t\t\tfloat variance = roughnessToVariance( roughness );\n\n\t\t\t\tvec3 avgNormal;\n\n\t\t\t\tfor ( float x = - 1.0; x < 2.0; x += 2.0 ) {\n\n\t\t\t\t\tfor ( float y = - 1.0; y < 2.0; y += 2.0 ) {\n\n\t\t\t\t\t\tvec2 uv = vUv + vec2( x, y ) * 0.25 * texelSize;\n\n\t\t\t\t\t\tavgNormal += normalize( texture2D( normalMap, uv, - 1.0 ).xyz - 0.5 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tvariance += 1.0 - 0.25 * length( avgNormal );\n\n\t\t\t\tgl_FragColor.g = varianceToRoughness( variance );\n\n\t\t\t}\n\t\t",blending:s.NoBlending,depthTest:!1,depthWrite:!1})).type="RoughnessMipmapper",a),l=new s.Mesh(new s.PlaneGeometry(2,2),o),c=new s.OrthographicCamera(0,1,0,1,0,1),h=null;t.RoughnessMipmapper=class{constructor(e){i(this,"generateMipmaps",(function(e){if("roughnessMap"in e!=!1){var{roughnessMap:t,normalMap:r}=e;if(null!==t&&null!==r&&t.generateMipmaps&&!e.userData.roughnessUpdated){e.userData.roughnessUpdated=!0;var n=Math.max(t.image.width,r.image.width),i=Math.max(t.image.height,r.image.height);if(s.MathUtils.isPowerOfTwo(n)&&s.MathUtils.isPowerOfTwo(i)){var a=this._renderer.getRenderTarget(),u=this._renderer.autoClear;if(this._renderer.autoClear=!1,null!==h&&h.width===n&&h.height===i||(null!==h&&h.dispose(),(h=new s.WebGLRenderTarget(n,i,{depthBuffer:!1})).scissorTest=!0),n!==t.image.width||i!==t.image.height){var d={wrapS:t.wrapS,wrapT:t.wrapT,magFilter:t.magFilter,minFilter:t.minFilter,depthBuffer:!1},p=new s.WebGLRenderTarget(n,i,d);p.texture.generateMipmaps=!0,this._renderer.setRenderTarget(p),e.roughnessMap=p.texture,e.metalnessMap==t&&(e.metalnessMap=e.roughnessMap),e.aoMap==t&&(e.aoMap=e.roughnessMap)}o.uniforms.roughnessMap.value=t,o.uniforms.normalMap.value=r;var f=new s.Vector2(0,0),m=o.uniforms.texelSize.value;for(let t=0;n>=1&&i>=1;++t,n/=2,i/=2)m.set(1/n,1/i),0==t&&m.set(0,0),h.viewport.set(f.x,f.y,n,i),h.scissor.set(f.x,f.y,n,i),this._renderer.setRenderTarget(h),this._renderer.render(l,c),this._renderer.copyFramebufferToTexture(f,e.roughnessMap,t),o.uniforms.roughnessMap.value=e.roughnessMap;t!==e.roughnessMap&&t.dispose(),this._renderer.setRenderTarget(a),this._renderer.autoClear=u}}}})),i(this,"dispose",(function(){o.dispose(),l.geometry.dispose(),null!=h&&h.dispose()})),this._renderer=e,this._renderer.compile(l,c)}}},63833:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i={createMeshesFromInstancedMesh:function(e){const t=new n.Group,r=e.count,i=e.geometry,s=e.material;for(let a=0;a{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(65149);t.ShadowMapViewer=class{constructor(e){const t=this,r=void 0!==e.name&&""!==e.name;let s;const a=10,o=10,l=256,c=256,h=new n.OrthographicCamera(window.innerWidth/-2,window.innerWidth/2,window.innerHeight/2,window.innerHeight/-2,1,10);h.position.set(0,0,2);const u=new n.Scene,d=i.UnpackDepthRGBAShader,p=n.UniformsUtils.clone(d.uniforms),f=new n.ShaderMaterial({uniforms:p,vertexShader:d.vertexShader,fragmentShader:d.fragmentShader}),m=new n.PlaneGeometry(l,c),g=new n.Mesh(m,f);let A,v;if(u.add(g),r){A=document.createElement("canvas");const t=A.getContext("2d");t.font="Bold 20px Arial";const r=t.measureText(e.name).width;A.width=r,A.height=25,t.font="Bold 20px Arial",t.fillStyle="rgba( 255, 0, 0, 1 )",t.fillText(e.name,0,20);const i=new n.Texture(A);i.magFilter=n.LinearFilter,i.minFilter=n.LinearFilter,i.needsUpdate=!0;const s=new n.MeshBasicMaterial({map:i,side:n.DoubleSide});s.transparent=!0;const a=new n.PlaneGeometry(A.width,A.height);v=new n.Mesh(a,s),u.add(v)}this.enabled=!0,this.size={width:l,height:c,set:function(e,r){this.width=e,this.height=r,g.scale.set(this.width/l,this.height/c,1),t.position.set(t.position.x,t.position.y)}},this.position={x:a,y:o,set:function(e,n){this.x=e,this.y=n;const i=t.size.width,s=t.size.height;g.position.set(-window.innerWidth/2+i/2+this.x,window.innerHeight/2-s/2-this.y,0),r&&v.position.set(g.position.x,g.position.y-t.size.height/2+A.height/2,0)}},this.render=function(t){this.enabled&&(p.tDiffuse.value=e.shadow.map.texture,s=t.autoClear,t.autoClear=!1,t.clearDepth(),t.render(u,h),t.autoClear=s)},this.updateForWindowResize=function(){this.enabled&&(h.left=window.innerWidth/-2,h.right=window.innerWidth/2,h.top=window.innerHeight/2,h.bottom=window.innerHeight/-2,h.updateProjectionMatrix(),this.update())},this.update=function(){this.position.set(this.position.x,this.position.y),this.size.set(this.size.width,this.size.height)},this.update()}}},14024:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);function i(e,t,r={}){const i=new n.Vector3,o=new n.Quaternion,l=new n.Vector3,c=new n.Matrix4,h=new n.Matrix4,u=new n.Matrix4;r.preserveMatrix=void 0===r.preserveMatrix||r.preserveMatrix,r.preservePosition=void 0===r.preservePosition||r.preservePosition,r.preserveHipPosition=void 0!==r.preserveHipPosition&&r.preserveHipPosition,r.useTargetMatrix=void 0!==r.useTargetMatrix&&r.useTargetMatrix,r.hip=void 0!==r.hip?r.hip:"hip",r.names=r.names||{};const d=t.isObject3D?t.skeleton.bones:a(t),p=e.isObject3D?e.skeleton.bones:a(e);let f,m,g,A,v;if(e.isObject3D?e.skeleton.pose():(r.useTargetMatrix=!0,r.preserveMatrix=!1),r.preservePosition){v=[];for(let e=0;e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);t.UVsDebug=function(e,t=1024){const r=new n.Vector2,i=new n.Vector2,s=[new n.Vector2,new n.Vector2,new n.Vector2],a=[],o=document.createElement("canvas"),l=t,c=t;o.width=l,o.height=c;const h=o.getContext("2d");h.lineWidth=1,h.strokeStyle="rgb( 63, 63, 63 )",h.textAlign="center",h.fillStyle="rgb( 255, 255, 255 )",h.fillRect(0,0,l,c);const u=e.index,d=e.attributes.uv;if(u)for(let n=0,f=u.count;n.95&&h.fillText(n,r.x%1*l,(1-r.y)*c),h.font="12px Arial",h.fillStyle="rgb( 191, 191, 191 )";for(let s=0,a=t.length;s.95&&h.fillText("abc"[s]+a,i.x%1*l,(1-i.y)*c)}}}},83088:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.WorkerPool=class{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){const t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e{const n=this._getIdleWorker();-1!==n?(this._initWorker(n),this.workerStatus|=1<e.terminate())),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}}},57382:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.ARButton=class{static createButton(e,t={}){const r=document.createElement("button");function n(){r.style.display="",r.style.cursor="auto",r.style.left="calc(50% - 75px)",r.style.width="150px",r.onmouseenter=null,r.onmouseleave=null,r.onclick=null,r.textContent="AR NOT SUPPORTED"}function i(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return r.id="ARButton",r.style.display="none",i(r),navigator.xr.isSessionSupported("immersive-ar").then((function(i){i?function(){if(void 0===t.domOverlay){const e=document.createElement("div");e.style.display="none",document.body.appendChild(e);const r=document.createElementNS("http://www.w3.org/2000/svg","svg");r.setAttribute("width","38px"),r.setAttribute("height","38px"),r.style.position="absolute",r.style.right="20px",r.style.top="20px",r.addEventListener("click",(function(){null==n||n.end()})),e.appendChild(r);const i=document.createElementNS("http://www.w3.org/2000/svg","path");i.setAttribute("d","M 12,12 L 28,28 M 28,12 12,28"),i.setAttribute("stroke","#fff"),i.setAttribute("stroke-width","2px"),r.appendChild(i),void 0===t.optionalFeatures&&(t.optionalFeatures=[]),t.optionalFeatures.push("dom-overlay"),t.domOverlay={root:e}}let n=null;async function i(i){i.addEventListener("end",s),e.xr.setReferenceSpaceType("local"),await e.xr.setSession(i),r.textContent="STOP AR",t.domOverlay.root.style.display="",n=i}function s(){n.removeEventListener("end",s),r.textContent="START AR",t.domOverlay.root.style.display="none",n=null}r.style.display="",r.style.cursor="pointer",r.style.left="calc(50% - 50px)",r.style.width="100px",r.textContent="START AR",r.onmouseenter=()=>{r.style.opacity="1.0"},r.onmouseleave=()=>{r.style.opacity="0.5"},r.onclick=()=>{null===n?navigator.xr.requestSession("immersive-ar",t).then(i):n.end()}}():n()})).catch(n),r;{const e=document.createElement("a");return!1===window.isSecureContext?(e.href=document.location.href.replace(/^http:/,"https:"),e.innerHTML="WEBXR NEEDS HTTPS"):(e.href="https://immersiveweb.dev/",e.innerHTML="WEBXR NOT AVAILABLE"),e.style.left="calc(50% - 90px)",e.style.width="180px",e.style.textDecoration="none",i(e),e}}}},73162:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(19453);class o extends s.Object3D{constructor(e,t,r){super(),i(this,"controller"),i(this,"motionController"),i(this,"envMap"),i(this,"mesh"),i(this,"xrInputSource"),this.controller=e,this.motionController=null,this.envMap=null,this.mesh=null,this.xrInputSource=null,e.addEventListener("connected",(n=>{const i=n.data;i.hand&&!this.motionController&&(this.xrInputSource=i,this.motionController=new a.XRHandMeshModel(this,e,void 0,i.handedness,"left"===i.handedness?t:r))})),e.addEventListener("disconnected",(()=>{this.dispose()}))}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&this.motionController.updateMesh()}getPointerPosition(){const e=this.controller.joints["index-finger-tip"];return e?e.position:null}intersectBoxObject(e){const t=this.getPointerPosition();if(t){const r=new s.Sphere(t,.01),n=(new s.Box3).setFromObject(e);return r.intersectsBox(n)}return!1}checkButton(e){this.intersectBoxObject(e)?e.onPress():e.onClear(),e.isPressed()&&e.whilePressed()}dispose(){this.clear(),this.motionController=null}}t.OculusHandModel=o},65483:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function n(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)}const i=n(r(85232)),s=.01,a=.4,o=.01,l=.003,c=16,h=12,u=new i.Vector3(0,1,0),d=new i.Vector3(0,0,1);class p extends i.Object3D{constructor(e,t){super(),this.hand=e,this.controller=t,this.motionController=null,this.envMap=null,this.mesh=null,this.pointerGeometry=null,this.pointerMesh=null,this.pointerObject=null,this.pinched=!1,this.attached=!1,this.cursorObject=null,this.raycaster=null,this._onConnected=this._onConnected.bind(this),this._onDisconnected=this._onDisconnected.bind(this),this.hand.addEventListener("connected",this._onConnected),this.hand.addEventListener("disconnected",this._onDisconnected)}_onConnected(e){const t=e.data;t.hand&&(this.visible=!0,this.xrInputSource=t,this.createPointer())}_onDisconnected(){var e,t;this.visible=!1,this.xrInputSource=null,null==(e=this.pointerGeometry)||e.dispose(),null==(t=this.pointerMesh)||t.material.dispose(),this.clear()}_drawVerticesRing(e,t,r){const n=t.clone();for(var i=0;i1)this._updatePointerVertices(o),this.pointerMesh.position.set(0,0,-.01),this.pointerMesh.material.opacity=a;else if(i>0){const e=.007*i+l;this._updatePointerVertices(e),c<1?(this.pointerMesh.position.set(0,0,-1*e-.02*(1-c)),this.pointerMesh.material.opacity=a+.6*(1-c)):(this.pointerMesh.position.set(0,0,-1*e),this.pointerMesh.material.opacity=a)}else this._updatePointerVertices(l),this.pointerMesh.position.set(0,0,-.023),this.pointerMesh.material.opacity=1;this.cursorObject.material.opacity=this.pointerMesh.material.opacity}updateMatrixWorld(e){super.updateMatrixWorld(e),this.pointerGeometry&&(this._updatePointer(),this._updateRaycaster())}isPinched(){return this.pinched}setAttached(e){this.attached=e}isAttached(){return this.attached}intersectObject(e,t=!0){if(this.raycaster)return this.raycaster.intersectObject(e,t)}intersectObjects(e,t=!0){if(this.raycaster)return this.raycaster.intersectObjects(e,t)}checkIntersections(e,t=!1){if(this.raycaster&&!this.attached){const r=this.raycaster.intersectObjects(e,t),n=new i.Vector3(0,0,-1);if(r.length>0){const e=r[0].distance;this.cursorObject.position.copy(n.multiplyScalar(e))}else this.cursorObject.position.copy(n.multiplyScalar(1.5))}}setCursor(e){const t=new i.Vector3(0,0,-1);this.raycaster&&!this.attached&&this.cursorObject.position.copy(t.multiplyScalar(e))}dispose(){this._onDisconnected(),this.hand.removeEventListener("connected",this._onConnected),this.hand.removeEventListener("disconnected",this._onDisconnected)}}t.OculusHandPointerModel=p},79752:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function n(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)}const i=n(r(85232));t.createText=function(e,t){const r=document.createElement("canvas"),n=r.getContext("2d");let s=null;const a=100;n.font="normal 100px Arial",s=n.measureText(e);const o=s.width;r.width=o,r.height=a,n.font="normal 100px Arial",n.textAlign="center",n.textBaseline="middle",n.fillStyle="#ffffff",n.fillText(e,o/2,50);const l=new i.Texture(r);l.needsUpdate=!0;const c=new i.MeshBasicMaterial({color:16777215,side:i.DoubleSide,map:l,transparent:!0}),h=new i.PlaneGeometry(t*o/a,t);return new i.Mesh(h,c)}},93177:(e,t)=>{"use strict";var r=Object.defineProperty;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=class{static createButton(e,t={}){const r=document.createElement("button");function i(){r.style.display="",r.style.cursor="auto",r.style.left="calc(50% - 75px)",r.style.width="150px",r.onmouseenter=null,r.onmouseleave=null,r.onclick=null,r.textContent="VR NOT SUPPORTED"}function s(e){e.style.position="absolute",e.style.bottom="20px",e.style.padding="12px 6px",e.style.border="1px solid #fff",e.style.borderRadius="4px",e.style.background="rgba(0,0,0,0.1)",e.style.color="#fff",e.style.font="normal 13px sans-serif",e.style.textAlign="center",e.style.opacity="0.5",e.style.outline="none",e.style.zIndex="999"}if("xr"in navigator)return s(r),r.id="VRButton",r.style.display="none",navigator.xr.isSessionSupported("immersive-vr").then((s=>{s?function(){let n=null;async function i(t){t.addEventListener("end",s),await e.xr.setSession(t),r.textContent="EXIT VR",n=t}function s(){n.removeEventListener("end",s),r.textContent="ENTER VR",n=null}r.style.display="",r.style.cursor="pointer",r.style.left="calc(50% - 50px)",r.style.width="100px",r.textContent="ENTER VR",r.onmouseenter=()=>{r.style.opacity="1.0"},r.onmouseleave=()=>{r.style.opacity="0.5"},r.onclick=()=>{var e;if(null===n){const r=[t.optionalFeatures,"local-floor","bounded-floor","hand-tracking"].flat().filter(Boolean);null==(e=navigator.xr)||e.requestSession("immersive-vr",{...t,optionalFeatures:r}).then(i)}else n.end()}}():i(),s&&n.xrSessionIsGranted&&r.click()})),r;{const e=document.createElement("a");return!1===window.isSecureContext?(e.href=document.location.href.replace(/^http:/,"https:"),e.innerHTML="WEBXR NEEDS HTTPS"):(e.href="https://immersiveweb.dev/",e.innerHTML="WEBXR NOT AVAILABLE"),e.style.left="calc(50% - 90px)",e.style.width="180px",e.style.textDecoration="none",s(e),e}}static registerSessionGrantedListener(){"undefined"!=typeof navigator&&"xr"in navigator&&navigator.xr.addEventListener("sessiongranted",(()=>{n.xrSessionIsGranted=!0}))}};let i=n;var s;((e,t,n)=>{t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(i,"symbol"!=typeof(s="xrSessionIsGranted")?s+"":s,!1),i.registerSessionGrantedListener(),t.VRButton=i},28265:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(85232),a=r(20614),o=r(48490),l=(e,t)=>{t.traverse((t=>{t instanceof s.Mesh&&"envMap"in t.material&&(t.material.envMap=e,t.material.needsUpdate=!0)}))};class c extends s.Object3D{constructor(){super(),i(this,"envMap"),i(this,"motionController"),this.motionController=null,this.envMap=null}setEnvironmentMap(e){return this.envMap==e||(this.envMap=e,l(this.envMap,this)),this}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&(this.motionController.updateFromGamepad(),Object.values(this.motionController.components).forEach((e=>{Object.values(e.visualResponses).forEach((e=>{const{valueNode:t,minNode:r,maxNode:n,value:i,valueNodeProperty:s}=e;t&&(s===o.MotionControllerConstants.VisualResponseProperty.VISIBILITY&&"boolean"==typeof i?t.visible=i:s===o.MotionControllerConstants.VisualResponseProperty.TRANSFORM&&r&&n&&"number"==typeof i&&(t.quaternion.slerpQuaternions(r.quaternion,n.quaternion,i),t.position.lerpVectors(r.position,n.position,i)))}))})))}}function h(e,t){!function(e,t){Object.values(e.components).forEach((e=>{const{type:r,touchPointNodeName:n,visualResponses:i}=e;if(r===o.MotionControllerConstants.ComponentType.TOUCHPAD&&n)if(e.touchPointNode=t.getObjectByName(n),e.touchPointNode){const t=new s.SphereGeometry(.001),r=new s.MeshBasicMaterial({color:255}),n=new s.Mesh(t,r);e.touchPointNode.add(n)}else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);Object.values(i).forEach((e=>{const{valueNodeName:r,minNodeName:n,maxNodeName:i,valueNodeProperty:s}=e;if(s===o.MotionControllerConstants.VisualResponseProperty.TRANSFORM&&n&&i){if(e.minNode=t.getObjectByName(n),e.maxNode=t.getObjectByName(i),!e.minNode)return void console.warn(`Could not find ${n} in the model`);if(!e.maxNode)return void console.warn(`Could not find ${i} in the model`)}e.valueNode=t.getObjectByName(r),e.valueNode||console.warn(`Could not find ${r} in the model`)}))}))}(e.motionController,t),e.envMap&&l(e.envMap,t),e.add(t)}t.XRControllerModelFactory=class{constructor(e=null){i(this,"gltfLoader"),i(this,"path"),i(this,"_assetCache"),this.gltfLoader=e,this.path="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles",this._assetCache={},this.gltfLoader||(this.gltfLoader=new a.GLTFLoader)}createControllerModel(e){const t=new c;let r=null;const n=e=>{const n=e.data;"tracked-pointer"===n.targetRayMode&&n.gamepad&&o.fetchProfile(n,this.path,"generic-trigger").then((({profile:e,assetPath:i})=>{if(!i)throw new Error("no asset path");t.motionController=new o.MotionController(n,e,i);const s=t.motionController.assetUrl,a=this._assetCache[s];if(a)r=a.scene.clone(),h(t,r);else{if(!this.gltfLoader)throw new Error("GLTFLoader not set.");this.gltfLoader.setPath(""),this.gltfLoader.load(t.motionController.assetUrl,(e=>{t.motionController?(this._assetCache[s]=e,r=e.scene.clone(),h(t,r)):console.warn("motionController gone while gltf load, bailing...")}),(()=>{}),(()=>{throw new Error(`Asset ${s} missing or malformed.`)}))}})).catch((e=>{console.warn(e)}))};e.addEventListener("connected",n);const i=()=>{e.removeEventListener("connected",n),e.removeEventListener("disconnected",i),t.motionController=null,r&&t.remove(r),r=null};return e.addEventListener("disconnected",i),t}}},2327:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232);class i{constructor(e,t,r,i,s){this.xrLight=e,this.renderer=t,this.lightProbe=r,this.xrWebGLBinding=null,this.estimationStartCallback=s,this.frameCallback=this.onXRFrame.bind(this);const a=t.xr.getSession();if(i&&"XRWebGLBinding"in window){const r=new n.WebGLCubeRenderTarget(16);e.environment=r.texture;const i=t.getContext();switch(a.preferredReflectionFormat){case"srgba8":i.getExtension("EXT_sRGB");break;case"rgba16f":i.getExtension("OES_texture_half_float")}this.xrWebGLBinding=new XRWebGLBinding(a,i),this.lightProbe.addEventListener("reflectionchange",(()=>{this.updateReflection()}))}a.requestAnimationFrame(this.frameCallback)}updateReflection(){const e=this.renderer.properties.get(this.xrLight.environment);if(e){const t=this.xrWebGLBinding.getReflectionCubeMap(this.lightProbe);t&&(e.__webglTexture=t,this.xrLight.environment.needsPMREMUpdate=!0)}}onXRFrame(e,t){if(!this.xrLight)return;t.session.requestAnimationFrame(this.frameCallback);const r=t.getLightEstimate(this.lightProbe);if(r){this.xrLight.lightProbe.sh.fromArray(r.sphericalHarmonicsCoefficients),this.xrLight.lightProbe.intensity=1;const e=Math.max(1,Math.max(r.primaryLightIntensity.x,Math.max(r.primaryLightIntensity.y,r.primaryLightIntensity.z)));this.xrLight.directionalLight.color.setRGB(r.primaryLightIntensity.x/e,r.primaryLightIntensity.y/e,r.primaryLightIntensity.z/e),this.xrLight.directionalLight.intensity=e,this.xrLight.directionalLight.position.copy(r.primaryLightDirection),this.estimationStartCallback&&(this.estimationStartCallback(),this.estimationStartCallback=null)}}dispose(){this.xrLight=null,this.renderer=null,this.lightProbe=null,this.xrWebGLBinding=null}}class s extends n.Group{constructor(e,t=!0){super(),this.lightProbe=new n.LightProbe,this.lightProbe.intensity=0,this.add(this.lightProbe),this.directionalLight=new n.DirectionalLight,this.directionalLight.intensity=0,this.add(this.directionalLight),this.environment=null;let r=null,s=!1;e.xr.addEventListener("sessionstart",(()=>{const n=e.xr.getSession();"requestLightProbe"in n&&n.requestLightProbe({reflectionFormat:n.preferredReflectionFormat}).then((n=>{r=new i(this,e,n,t,(()=>{s=!0,this.dispatchEvent({type:"estimationstart"})}))}))})),e.xr.addEventListener("sessionend",(()=>{r&&(r.dispose(),r=null),s&&this.dispatchEvent({type:"estimationend"})})),this.dispose=()=>{r&&(r.dispose(),r=null),this.remove(this.lightProbe),this.lightProbe=null,this.remove(this.directionalLight),this.directionalLight=null,this.environment=null}}}t.XREstimatedLight=s},19453:(e,t,r)=>{"use strict";var n=Object.defineProperty,i=(e,t,r)=>(((e,t,r)=>{t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r})(e,"symbol"!=typeof t?t+"":t,r),r);Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const s=r(20614);t.XRHandMeshModel=class{constructor(e,t,r="https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles/generic-hand/",n,a){i(this,"controller"),i(this,"handModel"),i(this,"bones"),this.controller=t,this.handModel=e,this.bones=[];const o=new s.GLTFLoader;a||o.setPath(r),o.load(null!=a?a:`${n}.glb`,(e=>{const t=e.scene.children[0];this.handModel.add(t);const r=t.getObjectByProperty("type","SkinnedMesh");r.frustumCulled=!1,r.castShadow=!0,r.receiveShadow=!0;["wrist","thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip","index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip","middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip","ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip","pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"].forEach((e=>{const r=t.getObjectByName(e);void 0!==r?r.jointName=e:console.warn(`Couldn't find ${e} in ${n} hand mesh`),this.bones.push(r)}))}))}updateMesh(){const e=this.controller.joints;for(let t=0;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=r(12888),s=r(19453);class a extends n.Object3D{constructor(e){super(),this.controller=e,this.motionController=null,this.envMap=null,this.mesh=null}updateMatrixWorld(e){super.updateMatrixWorld(e),this.motionController&&this.motionController.updateMesh()}}t.XRHandModelFactory=class{constructor(){this.path=null}setPath(e){return this.path=e,this}createHandModel(e,t){const r=new a(e);return e.addEventListener("connected",(n=>{const a=n.data;a.hand&&!r.motionController&&(r.xrInputSource=a,void 0===t||"spheres"===t?r.motionController=new i.XRHandPrimitiveModel(r,e,this.path,a.handedness,{primitive:"sphere"}):"boxes"===t?r.motionController=new i.XRHandPrimitiveModel(r,e,this.path,a.handedness,{primitive:"box"}):"mesh"===t&&(r.motionController=new s.XRHandMeshModel(r,e,this.path,a.handedness)))})),e.addEventListener("disconnected",(()=>{})),r}}},12888:(e,t,r)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=r(85232),i=new n.Matrix4,s=new n.Vector3;t.XRHandPrimitiveModel=class{constructor(e,t,r,i,s){let a;this.controller=t,this.handModel=e,this.envMap=null,s&&s.primitive&&"sphere"!==s.primitive?"box"===s.primitive&&(a=new n.BoxGeometry(1,1,1)):a=new n.SphereGeometry(1,10,10);const o=new n.MeshStandardMaterial;this.handMesh=new n.InstancedMesh(a,o,30),this.handMesh.instanceMatrix.setUsage(n.DynamicDrawUsage),this.handMesh.castShadow=!0,this.handMesh.receiveShadow=!0,this.handModel.add(this.handMesh),this.joints=["wrist","thumb-metacarpal","thumb-phalanx-proximal","thumb-phalanx-distal","thumb-tip","index-finger-metacarpal","index-finger-phalanx-proximal","index-finger-phalanx-intermediate","index-finger-phalanx-distal","index-finger-tip","middle-finger-metacarpal","middle-finger-phalanx-proximal","middle-finger-phalanx-intermediate","middle-finger-phalanx-distal","middle-finger-tip","ring-finger-metacarpal","ring-finger-phalanx-proximal","ring-finger-phalanx-intermediate","ring-finger-phalanx-distal","ring-finger-tip","pinky-finger-metacarpal","pinky-finger-phalanx-proximal","pinky-finger-phalanx-intermediate","pinky-finger-phalanx-distal","pinky-finger-tip"]}updateMesh(){const e=this.controller.joints;let t=0;for(let r=0;r{"use strict";const r="152",n=1,i=2,s=3,a=0,o=1,l=100,c=0,h=1,u=2,d=0,p=1,f=2,m=3,g=4,A=5,v=300,y=301,x=302,b=303,E=304,_=306,S=1e3,M=1001,w=1002,C=1003,T=1004,I=1005,B=1006,R=1007,P=1008,D=1009,L=1012,F=1014,U=1015,O=1016,N=1020,k=1023,G=1026,z=1027,Q=33776,V=33777,H=33778,j=33779,W=35840,X=35841,Y=35842,q=35843,K=37492,J=37496,Z=37808,$=37809,ee=37810,te=37811,re=37812,ne=37813,ie=37814,se=37815,ae=37816,oe=37817,le=37818,ce=37819,he=37820,ue=37821,de=36492,pe=36284,fe=36285,me=36286,ge=2300,Ae=2301,ve=2302,ye=2400,xe=2401,be=2402,Ee=2500,_e=2501,Se=3e3,Me=3001,we="",Ce="srgb",Te="srgb-linear",Ie="display-p3",Be=7680,Re=35044,Pe="300 es",De=1035;class Le{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});const r=this._listeners;void 0===r[e]&&(r[e]=[]),-1===r[e].indexOf(t)&&r[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;const r=this._listeners;return void 0!==r[e]&&-1!==r[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;const r=this._listeners[e];if(void 0!==r){const e=r.indexOf(t);-1!==e&&r.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;const t=this._listeners[e.type];if(void 0!==t){e.target=this;const r=t.slice(0);for(let t=0,n=r.length;t>8&255]+Fe[e>>16&255]+Fe[e>>24&255]+"-"+Fe[255&t]+Fe[t>>8&255]+"-"+Fe[t>>16&15|64]+Fe[t>>24&255]+"-"+Fe[63&r|128]+Fe[r>>8&255]+"-"+Fe[r>>16&255]+Fe[r>>24&255]+Fe[255&n]+Fe[n>>8&255]+Fe[n>>16&255]+Fe[n>>24&255]).toLowerCase()}function Ge(e,t,r){return Math.max(t,Math.min(r,e))}function ze(e,t){return(e%t+t)%t}function Qe(e,t,r){return(1-r)*e+r*t}function Ve(e){return 0==(e&e-1)&&0!==e}function He(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function je(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function We(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}function Xe(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}}const Ye={DEG2RAD:Oe,RAD2DEG:Ne,generateUUID:ke,clamp:Ge,euclideanModulo:ze,mapLinear:function(e,t,r,n,i){return n+(e-t)*(i-n)/(r-t)},inverseLerp:function(e,t,r){return e!==t?(r-e)/(t-e):0},lerp:Qe,damp:function(e,t,r,n){return Qe(e,t,1-Math.exp(-r*n))},pingpong:function(e,t=1){return t-Math.abs(ze(e,2*t)-t)},smoothstep:function(e,t,r){return e<=t?0:e>=r?1:(e=(e-t)/(r-t))*e*(3-2*e)},smootherstep:function(e,t,r){return e<=t?0:e>=r?1:(e=(e-t)/(r-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){void 0!==e&&(Ue=e);let t=Ue+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},degToRad:function(e){return e*Oe},radToDeg:function(e){return e*Ne},isPowerOfTwo:Ve,ceilPowerOfTwo:He,floorPowerOfTwo:je,setQuaternionFromProperEuler:function(e,t,r,n,i){const s=Math.cos,a=Math.sin,o=s(r/2),l=a(r/2),c=s((t+n)/2),h=a((t+n)/2),u=s((t-n)/2),d=a((t-n)/2),p=s((n-t)/2),f=a((n-t)/2);switch(i){case"XYX":e.set(o*h,l*u,l*d,o*c);break;case"YZY":e.set(l*d,o*h,l*u,o*c);break;case"ZXZ":e.set(l*u,l*d,o*h,o*c);break;case"XZX":e.set(o*h,l*f,l*p,o*c);break;case"YXY":e.set(l*p,o*h,l*f,o*c);break;case"ZYZ":e.set(l*f,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}},normalize:Xe,denormalize:We};class qe{constructor(e=0,t=0){qe.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,r=this.y,n=e.elements;return this.x=n[0]*t+n[3]*r+n[6],this.y=n[1]*t+n[4]*r+n[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 r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))}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}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const r=this.dot(e)/t;return Math.acos(Ge(r,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,r=this.y-e.y;return t*t+r*r}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,r){return this.x=e.x+(t.x-e.x)*r,this.y=e.y+(t.y-e.y)*r,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const r=Math.cos(t),n=Math.sin(t),i=this.x-e.x,s=this.y-e.y;return this.x=i*r-s*n+e.x,this.y=i*n+s*r+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Ke{constructor(){Ke.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(e,t,r,n,i,s,a,o,l){const c=this.elements;return c[0]=e,c[1]=n,c[2]=a,c[3]=t,c[4]=i,c[5]=o,c[6]=r,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,r=e.elements;return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],t[6]=r[6],t[7]=r[7],t[8]=r[8],this}extractBasis(e,t,r){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),r.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 r=e.elements,n=t.elements,i=this.elements,s=r[0],a=r[3],o=r[6],l=r[1],c=r[4],h=r[7],u=r[2],d=r[5],p=r[8],f=n[0],m=n[3],g=n[6],A=n[1],v=n[4],y=n[7],x=n[2],b=n[5],E=n[8];return i[0]=s*f+a*A+o*x,i[3]=s*m+a*v+o*b,i[6]=s*g+a*y+o*E,i[1]=l*f+c*A+h*x,i[4]=l*m+c*v+h*b,i[7]=l*g+c*y+h*E,i[2]=u*f+d*A+p*x,i[5]=u*m+d*v+p*b,i[8]=u*g+d*y+p*E,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],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8];return t*s*c-t*a*l-r*i*c+r*a*o+n*i*l-n*s*o}invert(){const e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=c*s-a*l,u=a*o-c*i,d=l*i-s*o,p=t*h+r*u+n*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return e[0]=h*f,e[1]=(n*l-c*r)*f,e[2]=(a*r-n*s)*f,e[3]=u*f,e[4]=(c*t-n*o)*f,e[5]=(n*i-a*t)*f,e[6]=d*f,e[7]=(r*o-l*t)*f,e[8]=(s*t-r*i)*f,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,r,n,i,s,a){const o=Math.cos(i),l=Math.sin(i);return this.set(r*o,r*l,-r*(o*s+l*a)+s+e,-n*l,n*o,-n*(-l*s+o*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(Je.makeScale(e,t)),this}rotate(e){return this.premultiply(Je.makeRotation(-e)),this}translate(e,t){return this.premultiply(Je.makeTranslation(e,t)),this}makeTranslation(e,t){return this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),r=Math.sin(e);return this.set(t,-r,0,r,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,r=e.elements;for(let n=0;n<9;n++)if(t[n]!==r[n])return!1;return!0}fromArray(e,t=0){for(let r=0;r<9;r++)this.elements[r]=e[r+t];return this}toArray(e=[],t=0){const r=this.elements;return e[t]=r[0],e[t+1]=r[1],e[t+2]=r[2],e[t+3]=r[3],e[t+4]=r[4],e[t+5]=r[5],e[t+6]=r[6],e[t+7]=r[7],e[t+8]=r[8],e}clone(){return(new this.constructor).fromArray(this.elements)}}const Je=new Ke;function Ze(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}const $e={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function et(e,t){return new $e[e](t)}function tt(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}const rt={};function nt(e){e in rt||(rt[e]=!0,console.warn(e))}function it(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function st(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}const at=(new Ke).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),ot=(new Ke).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const lt={[Te]:e=>e,[Ce]:e=>e.convertSRGBToLinear(),[Ie]:function(e){return e.convertSRGBToLinear().applyMatrix3(ot)}},ct={[Te]:e=>e,[Ce]:e=>e.convertLinearToSRGB(),[Ie]:function(e){return e.applyMatrix3(at).convertLinearToSRGB()}},ht={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(e){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!e},get workingColorSpace(){return Te},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,r){if(!1===this.enabled||t===r||!t||!r)return e;const n=lt[t],i=ct[r];if(void 0===n||void 0===i)throw new Error(`Unsupported color space conversion, "${t}" to "${r}".`);return i(n(e))},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}};let ut;class dt{static getDataURL(e){if(/^data:/i.test(e.src))return e.src;if("undefined"==typeof HTMLCanvasElement)return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===ut&&(ut=tt("canvas")),ut.width=e.width,ut.height=e.height;const r=ut.getContext("2d");e instanceof ImageData?r.putImageData(e,0,0):r.drawImage(e,0,0,e.width,e.height),t=ut}return t.width>2048||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("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const t=tt("canvas");t.width=e.width,t.height=e.height;const r=t.getContext("2d");r.drawImage(e,0,0,e.width,e.height);const n=r.getImageData(0,0,e.width,e.height),i=n.data;for(let e=0;e0&&(r.userData=this.userData),t||(e.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==v)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case S:e.x=e.x-Math.floor(e.x);break;case M:e.x=e.x<0?0:1;break;case w:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case S:e.y=e.y-Math.floor(e.y);break;case M:e.y=e.y<0?0:1;break;case w:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return nt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Ce?Me:Se}set encoding(e){nt("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===Me?Ce:we}}gt.DEFAULT_IMAGE=null,gt.DEFAULT_MAPPING=v,gt.DEFAULT_ANISOTROPY=1;class At{constructor(e=0,t=0,r=0,n=1){At.prototype.isVector4=!0,this.x=e,this.y=t,this.z=r,this.w=n}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,r,n){return this.x=e,this.y=t,this.z=r,this.w=n,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=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,r=this.y,n=this.z,i=this.w,s=e.elements;return this.x=s[0]*t+s[4]*r+s[8]*n+s[12]*i,this.y=s[1]*t+s[5]*r+s[9]*n+s[13]*i,this.z=s[2]*t+s[6]*r+s[10]*n+s[14]*i,this.w=s[3]*t+s[7]*r+s[11]*n+s[15]*i,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,r,n,i;const s=.01,a=.1,o=e.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-u)o&&e>A?eA?o=0?1:-1,n=1-t*t;if(n>Number.EPSILON){const i=Math.sqrt(n),s=Math.atan2(i,t*r);e=Math.sin(e*s)/i,a=Math.sin(a*s)/i}const i=a*r;if(o=o*e+u*i,l=l*e+d*i,c=c*e+p*i,h=h*e+f*i,e===1-a){const e=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=e,l*=e,c*=e,h*=e}}e[t]=o,e[t+1]=l,e[t+2]=c,e[t+3]=h}static multiplyQuaternionsFlat(e,t,r,n,i,s){const a=r[n],o=r[n+1],l=r[n+2],c=r[n+3],h=i[s],u=i[s+1],d=i[s+2],p=i[s+3];return e[t]=a*p+c*h+o*d-l*u,e[t+1]=o*p+c*u+l*h-a*d,e[t+2]=l*p+c*d+a*u-o*h,e[t+3]=c*p-a*h-o*u-l*d,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,r,n){return this._x=e,this._y=t,this._z=r,this._w=n,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){const r=e._x,n=e._y,i=e._z,s=e._order,a=Math.cos,o=Math.sin,l=a(r/2),c=a(n/2),h=a(i/2),u=o(r/2),d=o(n/2),p=o(i/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const r=t/2,n=Math.sin(r);return this._x=e.x*n,this._y=e.y*n,this._z=e.z*n,this._w=Math.cos(r),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,r=t[0],n=t[4],i=t[8],s=t[1],a=t[5],o=t[9],l=t[2],c=t[6],h=t[10],u=r+a+h;if(u>0){const e=.5/Math.sqrt(u+1);this._w=.25/e,this._x=(c-o)*e,this._y=(i-l)*e,this._z=(s-n)*e}else if(r>a&&r>h){const e=2*Math.sqrt(1+r-a-h);this._w=(c-o)/e,this._x=.25*e,this._y=(n+s)/e,this._z=(i+l)/e}else if(a>h){const e=2*Math.sqrt(1+a-r-h);this._w=(i-l)/e,this._x=(n+s)/e,this._y=.25*e,this._z=(o+c)/e}else{const e=2*Math.sqrt(1+h-r-a);this._w=(s-n)/e,this._x=(i+l)/e,this._y=(o+c)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let r=e.dot(t)+1;return rMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=r):(this._x=0,this._y=-e.z,this._z=e.y,this._w=r)):(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=r),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Ge(this.dot(e),-1,1)))}rotateTowards(e,t){const r=this.angleTo(e);if(0===r)return this;const n=Math.min(1,t/r);return this.slerp(e,n),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(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 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const r=e._x,n=e._y,i=e._z,s=e._w,a=t._x,o=t._y,l=t._z,c=t._w;return this._x=r*c+s*a+n*l-i*o,this._y=n*c+s*o+i*a-r*l,this._z=i*c+s*l+r*o-n*a,this._w=s*c-r*a-n*o-i*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const r=this._x,n=this._y,i=this._z,s=this._w;let a=s*e._w+r*e._x+n*e._y+i*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=s,this._x=r,this._y=n,this._z=i,this;const o=1-a*a;if(o<=Number.EPSILON){const e=1-t;return this._w=e*s+t*this._w,this._x=e*r+t*this._x,this._y=e*n+t*this._y,this._z=e*i+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-t)*c)/l,u=Math.sin(t*c)/l;return this._w=s*h+this._w*u,this._x=r*h+this._x*u,this._y=n*h+this._y*u,this._z=i*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(e,t,r){return this.copy(e).slerp(t,r)}random(){const e=Math.random(),t=Math.sqrt(1-e),r=Math.sqrt(e),n=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(t*Math.cos(n),r*Math.sin(i),r*Math.cos(i),t*Math.sin(n))}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}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Et{constructor(e=0,t=0,r=0){Et.prototype.isVector3=!0,this.x=e,this.y=t,this.z=r}set(e,t,r){return void 0===r&&(r=this.z),this.x=e,this.y=t,this.z=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(St.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(St.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,r=this.y,n=this.z,i=e.elements;return this.x=i[0]*t+i[3]*r+i[6]*n,this.y=i[1]*t+i[4]*r+i[7]*n,this.z=i[2]*t+i[5]*r+i[8]*n,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,r=this.y,n=this.z,i=e.elements,s=1/(i[3]*t+i[7]*r+i[11]*n+i[15]);return this.x=(i[0]*t+i[4]*r+i[8]*n+i[12])*s,this.y=(i[1]*t+i[5]*r+i[9]*n+i[13])*s,this.z=(i[2]*t+i[6]*r+i[10]*n+i[14])*s,this}applyQuaternion(e){const t=this.x,r=this.y,n=this.z,i=e.x,s=e.y,a=e.z,o=e.w,l=o*t+s*n-a*r,c=o*r+a*t-i*n,h=o*n+i*r-s*t,u=-i*t-s*r-a*n;return this.x=l*o+u*-i+c*-a-h*-s,this.y=c*o+u*-s+h*-i-l*-a,this.z=h*o+u*-a+l*-s-c*-i,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,r=this.y,n=this.z,i=e.elements;return this.x=i[0]*t+i[4]*r+i[8]*n,this.y=i[1]*t+i[5]*r+i[9]*n,this.z=i[2]*t+i[6]*r+i[10]*n,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 r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))}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,r){return this.x=e.x+(t.x-e.x)*r,this.y=e.y+(t.y-e.y)*r,this.z=e.z+(t.z-e.z)*r,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const r=e.x,n=e.y,i=e.z,s=t.x,a=t.y,o=t.z;return this.x=n*o-i*a,this.y=i*s-r*o,this.z=r*a-n*s,this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const r=e.dot(this)/t;return this.copy(e).multiplyScalar(r)}projectOnPlane(e){return _t.copy(this).projectOnVector(e),this.sub(_t)}reflect(e){return this.sub(_t.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const r=this.dot(e)/t;return Math.acos(Ge(r,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,r=this.y-e.y,n=this.z-e.z;return t*t+r*r+n*n}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,r){const n=Math.sin(t)*e;return this.x=n*Math.sin(r),this.y=Math.cos(t)*e,this.z=n*Math.cos(r),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,r){return this.x=e*Math.sin(t),this.y=r,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(),r=this.setFromMatrixColumn(e,1).length(),n=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=r,this.z=n,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=2*(Math.random()-.5),t=Math.random()*Math.PI*2,r=Math.sqrt(1-e**2);return this.x=r*Math.cos(t),this.y=r*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _t=new Et,St=new bt;class Mt{constructor(e=new Et(1/0,1/0,1/0),t=new Et(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,r=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,Ct),Ct.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,r;return e.normal.x>0?(t=e.normal.x*this.min.x,r=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,r=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,r+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,r+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,r+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,r+=e.normal.z*this.min.z),t<=-e.constant&&r>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Ft),Ut.subVectors(this.max,Ft),It.subVectors(e.a,Ft),Bt.subVectors(e.b,Ft),Rt.subVectors(e.c,Ft),Pt.subVectors(Bt,It),Dt.subVectors(Rt,Bt),Lt.subVectors(It,Rt);let t=[0,-Pt.z,Pt.y,0,-Dt.z,Dt.y,0,-Lt.z,Lt.y,Pt.z,0,-Pt.x,Dt.z,0,-Dt.x,Lt.z,0,-Lt.x,-Pt.y,Pt.x,0,-Dt.y,Dt.x,0,-Lt.y,Lt.x,0];return!!kt(t,It,Bt,Rt,Ut)&&(t=[1,0,0,0,1,0,0,0,1],!!kt(t,It,Bt,Rt,Ut)&&(Ot.crossVectors(Pt,Dt),t=[Ot.x,Ot.y,Ot.z],kt(t,It,Bt,Rt,Ut)))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Ct).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(Ct).length()),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()||(wt[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),wt[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),wt[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),wt[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),wt[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),wt[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),wt[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),wt[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(wt)),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)}}const wt=[new Et,new Et,new Et,new Et,new Et,new Et,new Et,new Et],Ct=new Et,Tt=new Mt,It=new Et,Bt=new Et,Rt=new Et,Pt=new Et,Dt=new Et,Lt=new Et,Ft=new Et,Ut=new Et,Ot=new Et,Nt=new Et;function kt(e,t,r,n,i){for(let s=0,a=e.length-3;s<=a;s+=3){Nt.fromArray(e,s);const a=i.x*Math.abs(Nt.x)+i.y*Math.abs(Nt.y)+i.z*Math.abs(Nt.z),o=t.dot(Nt),l=r.dot(Nt),c=n.dot(Nt);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Gt=new Mt,zt=new Et,Qt=new Et;class Vt{constructor(e=new Et,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const r=this.center;void 0!==t?r.copy(t):Gt.setFromPoints(e).getCenter(r);let n=0;for(let i=0,s=e.length;ithis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;zt.subVectors(e,this.center);const t=zt.lengthSq();if(t>this.radius*this.radius){const e=Math.sqrt(t),r=.5*(e-this.radius);this.center.addScaledVector(zt,r/e),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(Qt.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(zt.copy(e.center).add(Qt)),this.expandByPoint(zt.copy(e.center).sub(Qt))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Ht=new Et,jt=new Et,Wt=new Et,Xt=new Et,Yt=new Et,qt=new Et,Kt=new Et;class Jt{constructor(e=new Et,t=new Et(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.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Ht)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const r=t.dot(this.direction);return r<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,r)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Ht.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Ht.copy(this.origin).addScaledVector(this.direction,t),Ht.distanceToSquared(e))}distanceSqToSegment(e,t,r,n){jt.copy(e).add(t).multiplyScalar(.5),Wt.copy(t).sub(e).normalize(),Xt.copy(this.origin).sub(jt);const i=.5*e.distanceTo(t),s=-this.direction.dot(Wt),a=Xt.dot(this.direction),o=-Xt.dot(Wt),l=Xt.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=i*c,h>=0)if(u>=-p)if(u<=p){const e=1/c;h*=e,u*=e,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*i+a)),u=h>0?-i:Math.min(Math.max(-i,-o),i),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-i,-o),i),d=u*(u+2*o)+l):(h=Math.max(0,-(s*i+a)),u=h>0?i:Math.min(Math.max(-i,-o),i),d=-h*h+u*(u+2*o)+l);else u=s>0?-i:i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return r&&r.copy(this.origin).addScaledVector(this.direction,h),n&&n.copy(jt).addScaledVector(Wt,u),d}intersectSphere(e,t){Ht.subVectors(e.center,this.origin);const r=Ht.dot(this.direction),n=Ht.dot(Ht)-r*r,i=e.radius*e.radius;if(n>i)return null;const s=Math.sqrt(i-n),a=r-s,o=r+s;return o<0?null:a<0?this.at(o,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(0===t)return 0===e.distanceToPoint(this.origin)?0:null;const r=-(this.origin.dot(e.normal)+e.constant)/t;return r>=0?r:null}intersectPlane(e,t){const r=this.distanceToPlane(e);return null===r?null:this.at(r,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);if(0===t)return!0;return e.normal.dot(this.direction)*t<0}intersectBox(e,t){let r,n,i,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(r=(e.min.x-u.x)*l,n=(e.max.x-u.x)*l):(r=(e.max.x-u.x)*l,n=(e.min.x-u.x)*l),c>=0?(i=(e.min.y-u.y)*c,s=(e.max.y-u.y)*c):(i=(e.max.y-u.y)*c,s=(e.min.y-u.y)*c),r>s||i>n?null:((i>r||isNaN(r))&&(r=i),(s=0?(a=(e.min.z-u.z)*h,o=(e.max.z-u.z)*h):(a=(e.max.z-u.z)*h,o=(e.min.z-u.z)*h),r>o||a>n?null:((a>r||r!=r)&&(r=a),(o=0?r:n,t)))}intersectsBox(e){return null!==this.intersectBox(e,Ht)}intersectTriangle(e,t,r,n,i){Yt.subVectors(t,e),qt.subVectors(r,e),Kt.crossVectors(Yt,qt);let s,a=this.direction.dot(Kt);if(a>0){if(n)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Xt.subVectors(this.origin,e);const o=s*this.direction.dot(qt.crossVectors(Xt,qt));if(o<0)return null;const l=s*this.direction.dot(Yt.cross(Xt));if(l<0)return null;if(o+l>a)return null;const c=-s*Xt.dot(Kt);return c<0?null:this.at(c/a,i)}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 Zt{constructor(){Zt.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(e,t,r,n,i,s,a,o,l,c,h,u,d,p,f,m){const g=this.elements;return g[0]=e,g[4]=t,g[8]=r,g[12]=n,g[1]=i,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Zt).fromArray(this.elements)}copy(e){const t=this.elements,r=e.elements;return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],t[6]=r[6],t[7]=r[7],t[8]=r[8],t[9]=r[9],t[10]=r[10],t[11]=r[11],t[12]=r[12],t[13]=r[13],t[14]=r[14],t[15]=r[15],this}copyPosition(e){const t=this.elements,r=e.elements;return t[12]=r[12],t[13]=r[13],t[14]=r[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,r){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),r.setFromMatrixColumn(this,2),this}makeBasis(e,t,r){return this.set(e.x,t.x,r.x,0,e.y,t.y,r.y,0,e.z,t.z,r.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,r=e.elements,n=1/$t.setFromMatrixColumn(e,0).length(),i=1/$t.setFromMatrixColumn(e,1).length(),s=1/$t.setFromMatrixColumn(e,2).length();return t[0]=r[0]*n,t[1]=r[1]*n,t[2]=r[2]*n,t[3]=0,t[4]=r[4]*i,t[5]=r[5]*i,t[6]=r[6]*i,t[7]=0,t[8]=r[8]*s,t[9]=r[9]*s,t[10]=r[10]*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,r=e.x,n=e.y,i=e.z,s=Math.cos(r),a=Math.sin(r),o=Math.cos(n),l=Math.sin(n),c=Math.cos(i),h=Math.sin(i);if("XYZ"===e.order){const e=s*c,r=s*h,n=a*c,i=a*h;t[0]=o*c,t[4]=-o*h,t[8]=l,t[1]=r+n*l,t[5]=e-i*l,t[9]=-a*o,t[2]=i-e*l,t[6]=n+r*l,t[10]=s*o}else if("YXZ"===e.order){const e=o*c,r=o*h,n=l*c,i=l*h;t[0]=e+i*a,t[4]=n*a-r,t[8]=s*l,t[1]=s*h,t[5]=s*c,t[9]=-a,t[2]=r*a-n,t[6]=i+e*a,t[10]=s*o}else if("ZXY"===e.order){const e=o*c,r=o*h,n=l*c,i=l*h;t[0]=e-i*a,t[4]=-s*h,t[8]=n+r*a,t[1]=r+n*a,t[5]=s*c,t[9]=i-e*a,t[2]=-s*l,t[6]=a,t[10]=s*o}else if("ZYX"===e.order){const e=s*c,r=s*h,n=a*c,i=a*h;t[0]=o*c,t[4]=n*l-r,t[8]=e*l+i,t[1]=o*h,t[5]=i*l+e,t[9]=r*l-n,t[2]=-l,t[6]=a*o,t[10]=s*o}else if("YZX"===e.order){const e=s*o,r=s*l,n=a*o,i=a*l;t[0]=o*c,t[4]=i-e*h,t[8]=n*h+r,t[1]=h,t[5]=s*c,t[9]=-a*c,t[2]=-l*c,t[6]=r*h+n,t[10]=e-i*h}else if("XZY"===e.order){const e=s*o,r=s*l,n=a*o,i=a*l;t[0]=o*c,t[4]=-h,t[8]=l*c,t[1]=e*h+i,t[5]=s*c,t[9]=r*h-n,t[2]=n*h-r,t[6]=a*c,t[10]=i*h+e}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(tr,e,rr)}lookAt(e,t,r){const n=this.elements;return sr.subVectors(e,t),0===sr.lengthSq()&&(sr.z=1),sr.normalize(),nr.crossVectors(r,sr),0===nr.lengthSq()&&(1===Math.abs(r.z)?sr.x+=1e-4:sr.z+=1e-4,sr.normalize(),nr.crossVectors(r,sr)),nr.normalize(),ir.crossVectors(sr,nr),n[0]=nr.x,n[4]=ir.x,n[8]=sr.x,n[1]=nr.y,n[5]=ir.y,n[9]=sr.y,n[2]=nr.z,n[6]=ir.z,n[10]=sr.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const r=e.elements,n=t.elements,i=this.elements,s=r[0],a=r[4],o=r[8],l=r[12],c=r[1],h=r[5],u=r[9],d=r[13],p=r[2],f=r[6],m=r[10],g=r[14],A=r[3],v=r[7],y=r[11],x=r[15],b=n[0],E=n[4],_=n[8],S=n[12],M=n[1],w=n[5],C=n[9],T=n[13],I=n[2],B=n[6],R=n[10],P=n[14],D=n[3],L=n[7],F=n[11],U=n[15];return i[0]=s*b+a*M+o*I+l*D,i[4]=s*E+a*w+o*B+l*L,i[8]=s*_+a*C+o*R+l*F,i[12]=s*S+a*T+o*P+l*U,i[1]=c*b+h*M+u*I+d*D,i[5]=c*E+h*w+u*B+d*L,i[9]=c*_+h*C+u*R+d*F,i[13]=c*S+h*T+u*P+d*U,i[2]=p*b+f*M+m*I+g*D,i[6]=p*E+f*w+m*B+g*L,i[10]=p*_+f*C+m*R+g*F,i[14]=p*S+f*T+m*P+g*U,i[3]=A*b+v*M+y*I+x*D,i[7]=A*E+v*w+y*B+x*L,i[11]=A*_+v*C+y*R+x*F,i[15]=A*S+v*T+y*P+x*U,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],r=e[4],n=e[8],i=e[12],s=e[1],a=e[5],o=e[9],l=e[13],c=e[2],h=e[6],u=e[10],d=e[14];return e[3]*(+i*o*h-n*l*h-i*a*u+r*l*u+n*a*d-r*o*d)+e[7]*(+t*o*d-t*l*u+i*s*u-n*s*d+n*l*c-i*o*c)+e[11]*(+t*l*h-t*a*d-i*s*h+r*s*d+i*a*c-r*l*c)+e[15]*(-n*a*c-t*o*h+t*a*u+n*s*h-r*s*u+r*o*c)}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,r){const n=this.elements;return e.isVector3?(n[12]=e.x,n[13]=e.y,n[14]=e.z):(n[12]=e,n[13]=t,n[14]=r),this}invert(){const e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=e[9],u=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],A=h*m*l-f*u*l+f*o*d-a*m*d-h*o*g+a*u*g,v=p*u*l-c*m*l-p*o*d+s*m*d+c*o*g-s*u*g,y=c*f*l-p*h*l+p*a*d-s*f*d-c*a*g+s*h*g,x=p*h*o-c*f*o-p*a*u+s*f*u+c*a*m-s*h*m,b=t*A+r*v+n*y+i*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const E=1/b;return e[0]=A*E,e[1]=(f*u*i-h*m*i-f*n*d+r*m*d+h*n*g-r*u*g)*E,e[2]=(a*m*i-f*o*i+f*n*l-r*m*l-a*n*g+r*o*g)*E,e[3]=(h*o*i-a*u*i-h*n*l+r*u*l+a*n*d-r*o*d)*E,e[4]=v*E,e[5]=(c*m*i-p*u*i+p*n*d-t*m*d-c*n*g+t*u*g)*E,e[6]=(p*o*i-s*m*i-p*n*l+t*m*l+s*n*g-t*o*g)*E,e[7]=(s*u*i-c*o*i+c*n*l-t*u*l-s*n*d+t*o*d)*E,e[8]=y*E,e[9]=(p*h*i-c*f*i-p*r*d+t*f*d+c*r*g-t*h*g)*E,e[10]=(s*f*i-p*a*i+p*r*l-t*f*l-s*r*g+t*a*g)*E,e[11]=(c*a*i-s*h*i-c*r*l+t*h*l+s*r*d-t*a*d)*E,e[12]=x*E,e[13]=(c*f*n-p*h*n+p*r*u-t*f*u-c*r*m+t*h*m)*E,e[14]=(p*a*n-s*f*n-p*r*o+t*f*o+s*r*m-t*a*m)*E,e[15]=(s*h*n-c*a*n+c*r*o-t*h*o-s*r*u+t*a*u)*E,this}scale(e){const t=this.elements,r=e.x,n=e.y,i=e.z;return t[0]*=r,t[4]*=n,t[8]*=i,t[1]*=r,t[5]*=n,t[9]*=i,t[2]*=r,t[6]*=n,t[10]*=i,t[3]*=r,t[7]*=n,t[11]*=i,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],r=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],n=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,r,n))}makeTranslation(e,t,r){return this.set(1,0,0,e,0,1,0,t,0,0,1,r,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),r=Math.sin(e);return this.set(1,0,0,0,0,t,-r,0,0,r,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),r=Math.sin(e);return this.set(t,0,r,0,0,1,0,0,-r,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),r=Math.sin(e);return this.set(t,-r,0,0,r,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const r=Math.cos(t),n=Math.sin(t),i=1-r,s=e.x,a=e.y,o=e.z,l=i*s,c=i*a;return this.set(l*s+r,l*a-n*o,l*o+n*a,0,l*a+n*o,c*a+r,c*o-n*s,0,l*o-n*a,c*o+n*s,i*o*o+r,0,0,0,0,1),this}makeScale(e,t,r){return this.set(e,0,0,0,0,t,0,0,0,0,r,0,0,0,0,1),this}makeShear(e,t,r,n,i,s){return this.set(1,r,i,0,e,1,s,0,t,n,1,0,0,0,0,1),this}compose(e,t,r){const n=this.elements,i=t._x,s=t._y,a=t._z,o=t._w,l=i+i,c=s+s,h=a+a,u=i*l,d=i*c,p=i*h,f=s*c,m=s*h,g=a*h,A=o*l,v=o*c,y=o*h,x=r.x,b=r.y,E=r.z;return n[0]=(1-(f+g))*x,n[1]=(d+y)*x,n[2]=(p-v)*x,n[3]=0,n[4]=(d-y)*b,n[5]=(1-(u+g))*b,n[6]=(m+A)*b,n[7]=0,n[8]=(p+v)*E,n[9]=(m-A)*E,n[10]=(1-(u+f))*E,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,this}decompose(e,t,r){const n=this.elements;let i=$t.set(n[0],n[1],n[2]).length();const s=$t.set(n[4],n[5],n[6]).length(),a=$t.set(n[8],n[9],n[10]).length();this.determinant()<0&&(i=-i),e.x=n[12],e.y=n[13],e.z=n[14],er.copy(this);const o=1/i,l=1/s,c=1/a;return er.elements[0]*=o,er.elements[1]*=o,er.elements[2]*=o,er.elements[4]*=l,er.elements[5]*=l,er.elements[6]*=l,er.elements[8]*=c,er.elements[9]*=c,er.elements[10]*=c,t.setFromRotationMatrix(er),r.x=i,r.y=s,r.z=a,this}makePerspective(e,t,r,n,i,s){const a=this.elements,o=2*i/(t-e),l=2*i/(r-n),c=(t+e)/(t-e),h=(r+n)/(r-n),u=-(s+i)/(s-i),d=-2*s*i/(s-i);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,t,r,n,i,s){const a=this.elements,o=1/(t-e),l=1/(r-n),c=1/(s-i),h=(t+e)*o,u=(r+n)*l,d=(s+i)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){const t=this.elements,r=e.elements;for(let n=0;n<16;n++)if(t[n]!==r[n])return!1;return!0}fromArray(e,t=0){for(let r=0;r<16;r++)this.elements[r]=e[r+t];return this}toArray(e=[],t=0){const r=this.elements;return e[t]=r[0],e[t+1]=r[1],e[t+2]=r[2],e[t+3]=r[3],e[t+4]=r[4],e[t+5]=r[5],e[t+6]=r[6],e[t+7]=r[7],e[t+8]=r[8],e[t+9]=r[9],e[t+10]=r[10],e[t+11]=r[11],e[t+12]=r[12],e[t+13]=r[13],e[t+14]=r[14],e[t+15]=r[15],e}}const $t=new Et,er=new Zt,tr=new Et(0,0,0),rr=new Et(1,1,1),nr=new Et,ir=new Et,sr=new Et,ar=new Zt,or=new bt;class lr{constructor(e=0,t=0,r=0,n=lr.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=r,this._order=n}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,r,n=this._order){return this._x=e,this._y=t,this._z=r,this._order=n,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,r=!0){const n=e.elements,i=n[0],s=n[4],a=n[8],o=n[1],l=n[5],c=n[9],h=n[2],u=n[6],d=n[10];switch(t){case"XYZ":this._y=Math.asin(Ge(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,i)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Ge(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,i),this._z=0);break;case"ZXY":this._x=Math.asin(Ge(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,i));break;case"ZYX":this._y=Math.asin(-Ge(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,i)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Ge(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,i)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Ge(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,i)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===r&&this._onChangeCallback(),this}setFromQuaternion(e,t,r){return ar.makeRotationFromQuaternion(e),this.setFromRotationMatrix(ar,t,r)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return or.setFromEuler(this),this.setFromQuaternion(or,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],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}lr.DEFAULT_ORDER="XYZ";class cr{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(r=r.concat(i))}return r}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(mr,e,gr),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(mr,Ar,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let r=0,n=t.length;r0&&(n.userData=this.userData),n.layers=this.layers.mask,n.matrix=this.matrix.toArray(),n.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(n.matrixAutoUpdate=!1),this.isInstancedMesh&&(n.type="InstancedMesh",n.count=this.count,n.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(n.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?n.background=this.background.toJSON():this.background.isTexture&&(n.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(n.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){n.geometry=i(e.geometries,this.geometry);const t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){const r=t.shapes;if(Array.isArray(r))for(let t=0,n=r.length;t0){n.children=[];for(let t=0;t0){n.animations=[];for(let t=0;t0&&(r.geometries=t),n.length>0&&(r.materials=n),i.length>0&&(r.textures=i),a.length>0&&(r.images=a),o.length>0&&(r.shapes=o),l.length>0&&(r.skeletons=l),c.length>0&&(r.animations=c),h.length>0&&(r.nodes=h)}return r.object=n,r;function s(e){const t=[];for(const r in e){const n=e[r];delete n.metadata,t.push(n)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let r=0;r0?n.multiplyScalar(1/Math.sqrt(i)):n.set(0,0,0)}static getBarycoord(e,t,r,n,i){Sr.subVectors(n,t),Mr.subVectors(r,t),wr.subVectors(e,t);const s=Sr.dot(Sr),a=Sr.dot(Mr),o=Sr.dot(wr),l=Mr.dot(Mr),c=Mr.dot(wr),h=s*l-a*a;if(0===h)return i.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return i.set(1-d-p,p,d)}static containsPoint(e,t,r,n){return this.getBarycoord(e,t,r,n,Cr),Cr.x>=0&&Cr.y>=0&&Cr.x+Cr.y<=1}static getUV(e,t,r,n,i,s,a,o){return!1===Lr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Lr=!0),this.getInterpolation(e,t,r,n,i,s,a,o)}static getInterpolation(e,t,r,n,i,s,a,o){return this.getBarycoord(e,t,r,n,Cr),o.setScalar(0),o.addScaledVector(i,Cr.x),o.addScaledVector(s,Cr.y),o.addScaledVector(a,Cr.z),o}static isFrontFacing(e,t,r,n){return Sr.subVectors(r,t),Mr.subVectors(e,t),Sr.cross(Mr).dot(n)<0}set(e,t,r){return this.a.copy(e),this.b.copy(t),this.c.copy(r),this}setFromPointsAndIndices(e,t,r,n){return this.a.copy(e[t]),this.b.copy(e[r]),this.c.copy(e[n]),this}setFromAttributeAndIndices(e,t,r,n){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,r),this.c.fromBufferAttribute(e,n),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 Sr.subVectors(this.c,this.b),Mr.subVectors(this.a,this.b),.5*Sr.cross(Mr).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Fr.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Fr.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,r,n,i){return!1===Lr&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Lr=!0),Fr.getInterpolation(e,this.a,this.b,this.c,t,r,n,i)}getInterpolation(e,t,r,n,i){return Fr.getInterpolation(e,this.a,this.b,this.c,t,r,n,i)}containsPoint(e){return Fr.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Fr.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const r=this.a,n=this.b,i=this.c;let s,a;Tr.subVectors(n,r),Ir.subVectors(i,r),Rr.subVectors(e,r);const o=Tr.dot(Rr),l=Ir.dot(Rr);if(o<=0&&l<=0)return t.copy(r);Pr.subVectors(e,n);const c=Tr.dot(Pr),h=Ir.dot(Pr);if(c>=0&&h<=c)return t.copy(n);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),t.copy(r).addScaledVector(Tr,s);Dr.subVectors(e,i);const d=Tr.dot(Dr),p=Ir.dot(Dr);if(p>=0&&d<=p)return t.copy(i);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return a=l/(l-p),t.copy(r).addScaledVector(Ir,a);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return Br.subVectors(i,n),a=(h-c)/(h-c+(d-p)),t.copy(n).addScaledVector(Br,a);const g=1/(m+f+u);return s=f*g,a=u*g,t.copy(r).addScaledVector(Tr,s).addScaledVector(Ir,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let Ur=0;class Or extends Le{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Ur++}),this.uuid=ke(),this.name="",this.type="Material",this.blending=1,this.side=a,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=l,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Be,this.stencilZFail=Be,this.stencilZPass=Be,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(const t in e){const r=e[t];if(void 0===r){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const n=this[t];void 0!==n?n&&n.isColor?n.set(r):n&&n.isVector3&&r&&r.isVector3?n.copy(r):this[t]=r:console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`)}}toJSON(e){const t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});const r={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function n(e){const t=[];for(const r in e){const n=e[r];delete n.metadata,t.push(n)}return t}if(r.uuid=this.uuid,r.type=this.type,""!==this.name&&(r.name=this.name),this.color&&this.color.isColor&&(r.color=this.color.getHex()),void 0!==this.roughness&&(r.roughness=this.roughness),void 0!==this.metalness&&(r.metalness=this.metalness),void 0!==this.sheen&&(r.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(r.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(r.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(r.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(r.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(r.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(r.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(r.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(r.shininess=this.shininess),void 0!==this.clearcoat&&(r.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(r.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(r.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(r.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(r.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,r.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(r.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(r.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(r.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(r.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(r.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(r.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(r.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(r.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(r.lightMap=this.lightMap.toJSON(e).uuid,r.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(r.aoMap=this.aoMap.toJSON(e).uuid,r.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(r.bumpMap=this.bumpMap.toJSON(e).uuid,r.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(r.normalMap=this.normalMap.toJSON(e).uuid,r.normalMapType=this.normalMapType,r.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(r.displacementMap=this.displacementMap.toJSON(e).uuid,r.displacementScale=this.displacementScale,r.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(r.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(r.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(r.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(r.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(r.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(r.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(r.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(r.combine=this.combine)),void 0!==this.envMapIntensity&&(r.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(r.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(r.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(r.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(r.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(r.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(r.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(r.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(r.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(r.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(r.size=this.size),null!==this.shadowSide&&(r.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(r.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(r.blending=this.blending),this.side!==a&&(r.side=this.side),this.vertexColors&&(r.vertexColors=!0),this.opacity<1&&(r.opacity=this.opacity),!0===this.transparent&&(r.transparent=this.transparent),r.depthFunc=this.depthFunc,r.depthTest=this.depthTest,r.depthWrite=this.depthWrite,r.colorWrite=this.colorWrite,r.stencilWrite=this.stencilWrite,r.stencilWriteMask=this.stencilWriteMask,r.stencilFunc=this.stencilFunc,r.stencilRef=this.stencilRef,r.stencilFuncMask=this.stencilFuncMask,r.stencilFail=this.stencilFail,r.stencilZFail=this.stencilZFail,r.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(r.rotation=this.rotation),!0===this.polygonOffset&&(r.polygonOffset=!0),0!==this.polygonOffsetFactor&&(r.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(r.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(r.linewidth=this.linewidth),void 0!==this.dashSize&&(r.dashSize=this.dashSize),void 0!==this.gapSize&&(r.gapSize=this.gapSize),void 0!==this.scale&&(r.scale=this.scale),!0===this.dithering&&(r.dithering=!0),this.alphaTest>0&&(r.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(r.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(r.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(r.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(r.wireframe=this.wireframe),this.wireframeLinewidth>1&&(r.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(r.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(r.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(r.flatShading=this.flatShading),!1===this.visible&&(r.visible=!1),!1===this.toneMapped&&(r.toneMapped=!1),!1===this.fog&&(r.fog=!1),Object.keys(this.userData).length>0&&(r.userData=this.userData),t){const t=n(e.textures),i=n(e.images);t.length>0&&(r.textures=t),i.length>0&&(r.images=i)}return r}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let r=null;if(null!==t){const e=t.length;r=new Array(e);for(let n=0;n!==e;++n)r[n]=t[n].clone()}return this.clippingPlanes=r,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.forceSinglePass=e.forceSinglePass,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){!0===e&&this.version++}}const Nr={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},kr={h:0,s:0,l:0},Gr={h:0,s:0,l:0};function zr(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+6*(t-e)*(2/3-r):e}class Qr{constructor(e,t,r){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===t&&void 0===r?this.set(e):this.setRGB(e,t,r)}set(e){return e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Ce){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,ht.toWorkingColorSpace(this,t),this}setRGB(e,t,r,n=ht.workingColorSpace){return this.r=e,this.g=t,this.b=r,ht.toWorkingColorSpace(this,n),this}setHSL(e,t,r,n=ht.workingColorSpace){if(e=ze(e,1),t=Ge(t,0,1),r=Ge(r,0,1),0===t)this.r=this.g=this.b=r;else{const n=r<=.5?r*(1+t):r+t-r*t,i=2*r-n;this.r=zr(i,n,e+1/3),this.g=zr(i,n,e),this.b=zr(i,n,e-1/3)}return ht.toWorkingColorSpace(this,n),this}setStyle(e,t=Ce){function r(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let n;if(n=/^(\w+)\(([^\)]*)\)/.exec(e)){let i;const s=n[1],a=n[2];switch(s){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return r(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,t);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return r(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,t);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return r(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){const r=n[1],i=r.length;if(3===i)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,t);if(6===i)return this.setHex(parseInt(r,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=Ce){const r=Nr[e.toLowerCase()];return void 0!==r?this.setHex(r,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=it(e.r),this.g=it(e.g),this.b=it(e.b),this}copyLinearToSRGB(e){return this.r=st(e.r),this.g=st(e.g),this.b=st(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Ce){return ht.fromWorkingColorSpace(Vr.copy(this),e),65536*Math.round(Ge(255*Vr.r,0,255))+256*Math.round(Ge(255*Vr.g,0,255))+Math.round(Ge(255*Vr.b,0,255))}getHexString(e=Ce){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=ht.workingColorSpace){ht.fromWorkingColorSpace(Vr.copy(this),t);const r=Vr.r,n=Vr.g,i=Vr.b,s=Math.max(r,n,i),a=Math.min(r,n,i);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const e=s-a;switch(l=c<=.5?e/(s+a):e/(2-s-a),s){case r:o=(n-i)/e+(n>-e-14,n[256|l]=1024>>-e-14|32768,i[l]=-e-1,i[256|l]=-e-1):e<=15?(n[l]=e+15<<10,n[256|l]=e+15<<10|32768,i[l]=13,i[256|l]=13):e<128?(n[l]=31744,n[256|l]=64512,i[l]=24,i[256|l]=24):(n[l]=31744,n[256|l]=64512,i[l]=13,i[256|l]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let e=l<<13,t=0;for(;0==(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,s[l]=e|t}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)a[l]=l<<23;a[31]=1199570944,a[32]=2147483648;for(let l=33;l<63;++l)a[l]=2147483648+(l-32<<23);a[63]=3347054592;for(let l=1;l<64;++l)32!==l&&(o[l]=1024);return{floatView:t,uint32View:r,baseTable:n,shiftTable:i,mantissaTable:s,exponentTable:a,offsetTable:o}}function Xr(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=Ge(e,-65504,65504),jr.floatView[0]=e;const t=jr.uint32View[0],r=t>>23&511;return jr.baseTable[r]+((8388607&t)>>jr.shiftTable[r])}function Yr(e){const t=e>>10;return jr.uint32View[0]=jr.mantissaTable[jr.offsetTable[t]+(1023&e)]+jr.exponentTable[t],jr.floatView[0]}const qr={toHalfFloat:Xr,fromHalfFloat:Yr},Kr=new Et,Jr=new qe;class Zr{constructor(e,t,r=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=r,this.usage=Re,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&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,r){e*=this.itemSize,r*=t.itemSize;for(let n=0,i=this.itemSize;n0&&(e.userData=this.userData),void 0!==this.parameters){const t=this.parameters;for(const r in t)void 0!==t[r]&&(e[r]=t[r]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const r=this.attributes;for(const o in r){const t=r[o];e.data.attributes[o]=t.toJSON(e.data)}const n={};let i=!1;for(const o in this.morphAttributes){const t=this.morphAttributes[o],r=[];for(let n=0,i=t.length;n0&&(n[o]=r,i=!0)}i&&(e.data.morphAttributes=n,e.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(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 r=e.index;null!==r&&this.setIndex(r.clone(t));const n=e.attributes;for(const l in n){const e=n[l];this.setAttribute(l,e.clone(t))}const i=e.morphAttributes;for(const l in i){const e=[],r=i[l];for(let n=0,i=r.length;n0){const r=e[t[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=r.length;e(e.far-e.near)**2)return}un.copy(i).invert(),dn.copy(e.ray).applyMatrix4(un),null!==r.boundingBox&&!1===dn.intersectsBox(r.boundingBox)||this._computeIntersections(e,t)}}_computeIntersections(e,t){let r;const n=this.geometry,i=this.material,s=n.index,a=n.attributes.position,o=n.attributes.uv,l=n.attributes.uv1,c=n.attributes.normal,h=n.groups,u=n.drawRange;if(null!==s)if(Array.isArray(i))for(let d=0,p=h.length;dr.far?null:{distance:u,point:Cn.clone(),object:e}}(e,t,r,n,mn,gn,An,wn);if(d){i&&(xn.fromBufferAttribute(i,c),bn.fromBufferAttribute(i,h),En.fromBufferAttribute(i,u),d.uv=Fr.getInterpolation(wn,mn,gn,An,xn,bn,En,new qe)),s&&(xn.fromBufferAttribute(s,c),bn.fromBufferAttribute(s,h),En.fromBufferAttribute(s,u),d.uv1=Fr.getInterpolation(wn,mn,gn,An,xn,bn,En,new qe),d.uv2=d.uv1),l&&(_n.fromBufferAttribute(l,c),Sn.fromBufferAttribute(l,h),Mn.fromBufferAttribute(l,u),d.normal=Fr.getInterpolation(wn,mn,gn,An,_n,Sn,Mn,new Et),d.normal.dot(n.direction)>0&&d.normal.multiplyScalar(-1));const e={a:c,b:h,c:u,normal:new Et,materialIndex:0};Fr.getNormal(mn,gn,An,e.normal),d.face=e}return d}class Bn extends hn{constructor(e=1,t=1,r=1,n=1,i=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:r,widthSegments:n,heightSegments:i,depthSegments:s};const a=this;n=Math.floor(n),i=Math.floor(i),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(e,t,r,n,i,s,p,f,m,g,A){const v=s/m,y=p/g,x=s/2,b=p/2,E=f/2,_=m+1,S=g+1;let M=0,w=0;const C=new Et;for(let a=0;a0?1:-1,c.push(C.x,C.y,C.z),h.push(o/m),h.push(1-a/g),M+=1}}for(let a=0;a0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const r={};for(const n in this.extensions)!0===this.extensions[n]&&(r[n]=!0);return Object.keys(r).length>0&&(t.extensions=r),t}}class Un extends _r{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Zt,this.projectionMatrix=new Zt,this.projectionMatrixInverse=new Zt}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)}}class On extends Un{constructor(e=50,t=1,r=.1,n=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=r,this.far=n,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=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*Ne*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*Oe*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*Ne*Math.atan(Math.tan(.5*Oe*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,r,n,i,s){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=r,this.view.offsetY=n,this.view.width=i,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*Oe*this.fov)/this.zoom,r=2*t,n=this.aspect*r,i=-.5*n;const s=this.view;if(null!==this.view&&this.view.enabled){const e=s.fullWidth,a=s.fullHeight;i+=s.offsetX*n/e,t-=s.offsetY*r/a,n*=s.width/e,r*=s.height/a}const a=this.filmOffset;0!==a&&(i+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+n,t,t-r,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,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Nn=-90;class kn extends _r{constructor(e,t,r){super(),this.type="CubeCamera",this.renderTarget=r;const n=new On(Nn,1,e,t);n.layers=this.layers,n.up.set(0,1,0),n.lookAt(1,0,0),this.add(n);const i=new On(Nn,1,e,t);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(-1,0,0),this.add(i);const s=new On(Nn,1,e,t);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new On(Nn,1,e,t);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new On(Nn,1,e,t);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new On(Nn,1,e,t);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(e,t){null===this.parent&&this.updateMatrixWorld();const r=this.renderTarget,[n,i,s,a,o,l]=this.children,c=e.getRenderTarget(),h=e.toneMapping,u=e.xr.enabled;e.toneMapping=d,e.xr.enabled=!1;const p=r.texture.generateMipmaps;r.texture.generateMipmaps=!1,e.setRenderTarget(r,0),e.render(t,n),e.setRenderTarget(r,1),e.render(t,i),e.setRenderTarget(r,2),e.render(t,s),e.setRenderTarget(r,3),e.render(t,a),e.setRenderTarget(r,4),e.render(t,o),r.texture.generateMipmaps=p,e.setRenderTarget(r,5),e.render(t,l),e.setRenderTarget(c),e.toneMapping=h,e.xr.enabled=u,r.texture.needsPMREMUpdate=!0}}class Gn extends gt{constructor(e,t,r,n,i,s,a,o,l,c){super(e=void 0!==e?e:[],t=void 0!==t?t:y,r,n,i,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class zn extends vt{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const r={width:e,height:e,depth:1},n=[r,r,r,r,r,r];void 0!==t.encoding&&(nt("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===Me?Ce:we),this.texture=new Gn(n,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:B}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const r={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},n=new Bn(5,5,5),i=new Fn({name:"CubemapFromEquirect",uniforms:Rn(r.uniforms),vertexShader:r.vertexShader,fragmentShader:r.fragmentShader,side:o,blending:0});i.uniforms.tEquirect.value=t;const s=new Tn(n,i),a=t.minFilter;t.minFilter===P&&(t.minFilter=B);return new kn(1,10,this).update(e,s),t.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(e,t,r,n){const i=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(t,r,n);e.setRenderTarget(i)}}const Qn=new Et,Vn=new Et,Hn=new Ke;class jn{constructor(e=new Et(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,r,n){return this.normal.set(e,t,r),this.constant=n,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,r){const n=Qn.subVectors(r,t).cross(Vn.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(n,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(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const r=e.delta(Qn),n=this.normal.dot(r);if(0===n)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const i=-(e.start.dot(this.normal)+this.constant)/n;return i<0||i>1?null:t.copy(e.start).addScaledVector(r,i)}intersectsLine(e){const t=this.distanceToPoint(e.start),r=this.distanceToPoint(e.end);return t<0&&r>0||r<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 r=t||Hn.getNormalMatrix(e),n=this.coplanarPoint(Qn).applyMatrix4(e),i=this.normal.applyMatrix3(r).normalize();return this.constant=-n.dot(i),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)}}const Wn=new Vt,Xn=new Et;class Yn{constructor(e=new jn,t=new jn,r=new jn,n=new jn,i=new jn,s=new jn){this.planes=[e,t,r,n,i,s]}set(e,t,r,n,i,s){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(r),a[3].copy(n),a[4].copy(i),a[5].copy(s),this}copy(e){const t=this.planes;for(let r=0;r<6;r++)t[r].copy(e.planes[r]);return this}setFromProjectionMatrix(e){const t=this.planes,r=e.elements,n=r[0],i=r[1],s=r[2],a=r[3],o=r[4],l=r[5],c=r[6],h=r[7],u=r[8],d=r[9],p=r[10],f=r[11],m=r[12],g=r[13],A=r[14],v=r[15];return t[0].setComponents(a-n,h-o,f-u,v-m).normalize(),t[1].setComponents(a+n,h+o,f+u,v+m).normalize(),t[2].setComponents(a+i,h+l,f+d,v+g).normalize(),t[3].setComponents(a-i,h-l,f-d,v-g).normalize(),t[4].setComponents(a-s,h-c,f-p,v-A).normalize(),t[5].setComponents(a+s,h+c,f+p,v+A).normalize(),this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),Wn.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),Wn.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Wn)}intersectsSprite(e){return Wn.center.set(0,0,0),Wn.radius=.7071067811865476,Wn.applyMatrix4(e.matrixWorld),this.intersectsSphere(Wn)}intersectsSphere(e){const t=this.planes,r=e.center,n=-e.radius;for(let i=0;i<6;i++){if(t[i].distanceToPoint(r)0?e.max.x:e.min.x,Xn.y=n.normal.y>0?e.max.y:e.min.y,Xn.z=n.normal.z>0?e.max.z:e.min.z,n.distanceToPoint(Xn)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let r=0;r<6;r++)if(t[r].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function qn(){let e=null,t=!1,r=null,n=null;function i(t,s){r(t,s),n=e.requestAnimationFrame(i)}return{start:function(){!0!==t&&null!==r&&(n=e.requestAnimationFrame(i),t=!0)},stop:function(){e.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(e){r=e},setContext:function(t){e=t}}}function Kn(e,t){const r=t.isWebGL2,n=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),n.get(e)},remove:function(t){t.isInterleavedBufferAttribute&&(t=t.data);const r=n.get(t);r&&(e.deleteBuffer(r.buffer),n.delete(t))},update:function(t,i){if(t.isGLBufferAttribute){const e=n.get(t);return void((!e||e.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},$n={common:{diffuse:{value:new Qr(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ke},alphaMap:{value:null},alphaMapTransform:{value:new Ke},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ke}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ke}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ke}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ke},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ke},normalScale:{value:new qe(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ke},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ke}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ke}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ke}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Qr(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Qr(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Ke}},sprite:{diffuse:{value:new Qr(16777215)},opacity:{value:1},center:{value:new qe(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ke},alphaMap:{value:null},alphaTest:{value:0}}},ei={basic:{uniforms:Pn([$n.common,$n.specularmap,$n.envmap,$n.aomap,$n.lightmap,$n.fog]),vertexShader:Zn.meshbasic_vert,fragmentShader:Zn.meshbasic_frag},lambert:{uniforms:Pn([$n.common,$n.specularmap,$n.envmap,$n.aomap,$n.lightmap,$n.emissivemap,$n.bumpmap,$n.normalmap,$n.displacementmap,$n.fog,$n.lights,{emissive:{value:new Qr(0)}}]),vertexShader:Zn.meshlambert_vert,fragmentShader:Zn.meshlambert_frag},phong:{uniforms:Pn([$n.common,$n.specularmap,$n.envmap,$n.aomap,$n.lightmap,$n.emissivemap,$n.bumpmap,$n.normalmap,$n.displacementmap,$n.fog,$n.lights,{emissive:{value:new Qr(0)},specular:{value:new Qr(1118481)},shininess:{value:30}}]),vertexShader:Zn.meshphong_vert,fragmentShader:Zn.meshphong_frag},standard:{uniforms:Pn([$n.common,$n.envmap,$n.aomap,$n.lightmap,$n.emissivemap,$n.bumpmap,$n.normalmap,$n.displacementmap,$n.roughnessmap,$n.metalnessmap,$n.fog,$n.lights,{emissive:{value:new Qr(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Zn.meshphysical_vert,fragmentShader:Zn.meshphysical_frag},toon:{uniforms:Pn([$n.common,$n.aomap,$n.lightmap,$n.emissivemap,$n.bumpmap,$n.normalmap,$n.displacementmap,$n.gradientmap,$n.fog,$n.lights,{emissive:{value:new Qr(0)}}]),vertexShader:Zn.meshtoon_vert,fragmentShader:Zn.meshtoon_frag},matcap:{uniforms:Pn([$n.common,$n.bumpmap,$n.normalmap,$n.displacementmap,$n.fog,{matcap:{value:null}}]),vertexShader:Zn.meshmatcap_vert,fragmentShader:Zn.meshmatcap_frag},points:{uniforms:Pn([$n.points,$n.fog]),vertexShader:Zn.points_vert,fragmentShader:Zn.points_frag},dashed:{uniforms:Pn([$n.common,$n.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Zn.linedashed_vert,fragmentShader:Zn.linedashed_frag},depth:{uniforms:Pn([$n.common,$n.displacementmap]),vertexShader:Zn.depth_vert,fragmentShader:Zn.depth_frag},normal:{uniforms:Pn([$n.common,$n.bumpmap,$n.normalmap,$n.displacementmap,{opacity:{value:1}}]),vertexShader:Zn.meshnormal_vert,fragmentShader:Zn.meshnormal_frag},sprite:{uniforms:Pn([$n.sprite,$n.fog]),vertexShader:Zn.sprite_vert,fragmentShader:Zn.sprite_frag},background:{uniforms:{uvTransform:{value:new Ke},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Zn.background_vert,fragmentShader:Zn.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Zn.backgroundCube_vert,fragmentShader:Zn.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Zn.cube_vert,fragmentShader:Zn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Zn.equirect_vert,fragmentShader:Zn.equirect_frag},distanceRGBA:{uniforms:Pn([$n.common,$n.displacementmap,{referencePosition:{value:new Et},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Zn.distanceRGBA_vert,fragmentShader:Zn.distanceRGBA_frag},shadow:{uniforms:Pn([$n.lights,$n.fog,{color:{value:new Qr(0)},opacity:{value:1}}]),vertexShader:Zn.shadow_vert,fragmentShader:Zn.shadow_frag}};ei.physical={uniforms:Pn([ei.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ke},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ke},clearcoatNormalScale:{value:new qe(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ke},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ke},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ke},sheen:{value:0},sheenColor:{value:new Qr(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ke},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ke},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ke},transmissionSamplerSize:{value:new qe},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ke},attenuationDistance:{value:0},attenuationColor:{value:new Qr(0)},specularColor:{value:new Qr(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ke},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ke}}]),vertexShader:Zn.meshphysical_vert,fragmentShader:Zn.meshphysical_frag};const ti={r:0,b:0,g:0};function ri(e,t,r,n,i,s,l){const c=new Qr(0);let h,u,d=!0===s?0:1,p=null,f=0,m=null;function g(t,r){t.getRGB(ti,Dn(e)),n.buffers.color.setClear(ti.r,ti.g,ti.b,r,l)}return{getClearColor:function(){return c},setClearColor:function(e,t=1){c.set(e),d=t,g(c,d)},getClearAlpha:function(){return d},setClearAlpha:function(e){d=e,g(c,d)},render:function(s,A){let v=!1,y=!0===A.isScene?A.background:null;if(y&&y.isTexture){y=(A.backgroundBlurriness>0?r:t).get(y)}switch(null===y?g(c,d):y&&y.isColor&&(g(y,1),v=!0),e.xr.getEnvironmentBlendMode()){case"opaque":v=!0;break;case"additive":n.buffers.color.setClear(0,0,0,1,l),v=!0;break;case"alpha-blend":n.buffers.color.setClear(0,0,0,0,l),v=!0}(e.autoClear||v)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),y&&(y.isCubeTexture||y.mapping===_)?(void 0===u&&(u=new Tn(new Bn(1,1,1),new Fn({name:"BackgroundCubeMaterial",uniforms:Rn(ei.backgroundCube.uniforms),vertexShader:ei.backgroundCube.vertexShader,fragmentShader:ei.backgroundCube.fragmentShader,side:o,depthTest:!1,depthWrite:!1,fog:!1})),u.geometry.deleteAttribute("normal"),u.geometry.deleteAttribute("uv"),u.onBeforeRender=function(e,t,r){this.matrixWorld.copyPosition(r.matrixWorld)},Object.defineProperty(u.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(u)),u.material.uniforms.envMap.value=y,u.material.uniforms.flipEnvMap.value=y.isCubeTexture&&!1===y.isRenderTargetTexture?-1:1,u.material.uniforms.backgroundBlurriness.value=A.backgroundBlurriness,u.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,u.material.toneMapped=y.colorSpace!==Ce,p===y&&f===y.version&&m===e.toneMapping||(u.material.needsUpdate=!0,p=y,f=y.version,m=e.toneMapping),u.layers.enableAll(),s.unshift(u,u.geometry,u.material,0,0,null)):y&&y.isTexture&&(void 0===h&&(h=new Tn(new Jn(2,2),new Fn({name:"BackgroundMaterial",uniforms:Rn(ei.background.uniforms),vertexShader:ei.background.vertexShader,fragmentShader:ei.background.fragmentShader,side:a,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(h)),h.material.uniforms.t2D.value=y,h.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,h.material.toneMapped=y.colorSpace!==Ce,!0===y.matrixAutoUpdate&&y.updateMatrix(),h.material.uniforms.uvTransform.value.copy(y.matrix),p===y&&f===y.version&&m===e.toneMapping||(h.material.needsUpdate=!0,p=y,f=y.version,m=e.toneMapping),h.layers.enableAll(),s.unshift(h,h.geometry,h.material,0,0,null))}}}function ni(e,t,r,n){const i=e.getParameter(e.MAX_VERTEX_ATTRIBS),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),a=n.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(t){return n.isWebGL2?e.bindVertexArray(t):s.bindVertexArrayOES(t)}function d(t){return n.isWebGL2?e.deleteVertexArray(t):s.deleteVertexArrayOES(t)}function p(e){const t=[],r=[],n=[];for(let s=0;s=0){const t=i[l];let r=s[l];if(void 0===r&&("instanceMatrix"===l&&e.instanceMatrix&&(r=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(r=e.instanceColor)),void 0===t)return!0;if(t.attribute!==r)return!0;if(r&&t.data!==r.data)return!0;a++}}return c.attributesNum!==a||c.index!==n}(i,y,d,x),b&&function(e,t,r,n){const i={},s=t.attributes;let a=0;const o=r.getAttributes();for(const l in o){if(o[l].location>=0){let t=s[l];void 0===t&&("instanceMatrix"===l&&e.instanceMatrix&&(t=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(t=e.instanceColor));const r={};r.attribute=t,t&&t.data&&(r.data=t.data),i[l]=r,a++}}c.attributes=i,c.attributesNum=a,c.index=n}(i,y,d,x)}else{const e=!0===l.wireframe;c.geometry===y.id&&c.program===d.id&&c.wireframe===e||(c.geometry=y.id,c.program=d.id,c.wireframe=e,b=!0)}null!==x&&r.update(x,e.ELEMENT_ARRAY_BUFFER),(b||h)&&(h=!1,function(i,s,a,o){if(!1===n.isWebGL2&&(i.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;f();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const t in c){const n=c[t];if(n.location>=0){let s=l[t];if(void 0===s&&("instanceMatrix"===t&&i.instanceMatrix&&(s=i.instanceMatrix),"instanceColor"===t&&i.instanceColor&&(s=i.instanceColor)),void 0!==s){const t=s.normalized,a=s.itemSize,l=r.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const r=s.data,l=r.stride,d=s.offset;if(r.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===e.constructor.name;let a=void 0!==r.precision?r.precision:"highp";const o=i(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||t.has("WEBGL_draw_buffers"),c=!0===r.logarithmicDepthBuffer,h=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),u=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=e.getParameter(e.MAX_TEXTURE_SIZE),p=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),f=e.getParameter(e.MAX_VERTEX_ATTRIBS),m=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),g=e.getParameter(e.MAX_VARYING_VECTORS),A=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),v=u>0,y=s||t.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==n)return n;if(!0===t.has("EXT_texture_filter_anisotropic")){const r=t.get("EXT_texture_filter_anisotropic");n=e.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n},getMaxPrecision:i,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:A,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:s?e.getParameter(e.MAX_SAMPLES):0}}function ai(e){const t=this;let r=null,n=0,i=!1,s=!1;const a=new jn,o=new Ke,l={value:null,needsUpdate:!1};function c(e,r,n,i){const s=null!==e?e.length:0;let c=null;if(0!==s){if(c=l.value,!0!==i||null===c){const t=n+4*s,i=r.matrixWorldInverse;o.getNormalMatrix(i),(null===c||c.length0);t.numPlanes=n,t.numIntersection=0}();else{const e=s?0:n,t=4*e;let i=f.clippingState||null;l.value=i,i=c(u,o,t,h);for(let n=0;n!==t;++n)i[n]=r[n];f.clippingState=i,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=e}}}function oi(e){let t=new WeakMap;function r(e,t){return t===b?e.mapping=y:t===E&&(e.mapping=x),e}function n(e){const r=e.target;r.removeEventListener("dispose",n);const i=t.get(r);void 0!==i&&(t.delete(r),i.dispose())}return{get:function(i){if(i&&i.isTexture&&!1===i.isRenderTargetTexture){const s=i.mapping;if(s===b||s===E){if(t.has(i)){return r(t.get(i).texture,i.mapping)}{const s=i.image;if(s&&s.height>0){const a=new zn(s.height/2);return a.fromEquirectangularTexture(e,i),t.set(i,a),i.addEventListener("dispose",n),r(a.texture,i.mapping)}return null}}}return i},dispose:function(){t=new WeakMap}}}class li extends Un{constructor(e=-1,t=1,r=1,n=-1,i=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=r,this.bottom=n,this.near=i,this.far=s,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=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,r,n,i,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=r,this.view.offsetY=n,this.view.width=i,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),r=(this.right+this.left)/2,n=(this.top+this.bottom)/2;let i=r-e,s=r+e,a=n+t,o=n-t;if(null!==this.view&&this.view.enabled){const e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=e*this.view.offsetX,s=i+e*this.view.width,a-=t*this.view.offsetY,o=a-t*this.view.height}this.projectionMatrix.makeOrthographic(i,s,a,o,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,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}const ci=[.125,.215,.35,.446,.526,.582],hi=20,ui=new li,di=new Qr;let pi=null;const fi=(1+Math.sqrt(5))/2,mi=1/fi,gi=[new Et(1,1,1),new Et(-1,1,1),new Et(1,1,-1),new Et(-1,1,-1),new Et(0,fi,mi),new Et(0,fi,-mi),new Et(mi,0,fi),new Et(-mi,0,fi),new Et(fi,mi,0),new Et(-fi,mi,0)];class Ai{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,r=.1,n=100){pi=this._renderer.getRenderTarget(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,r,n,i),t>0&&this._blur(i,0,0,t),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=bi(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=xi(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;ee-4?o=ci[a-e+4-1]:0===a&&(o=0),n.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,f=3,m=2,g=1,A=new Float32Array(f*p*d),v=new Float32Array(m*p*d),y=new Float32Array(g*p*d);for(let e=0;e2?0:-1,n=[t,r,0,t+2/3,r,0,t+2/3,r+1,0,t,r,0,t+2/3,r+1,0,t,r+1,0];A.set(n,f*p*e),v.set(u,m*p*e);const i=[e,e,e,e,e,e];y.set(i,g*p*e)}const x=new hn;x.setAttribute("position",new Zr(A,f)),x.setAttribute("uv",new Zr(v,m)),x.setAttribute("faceIndex",new Zr(y,g)),t.push(x),i>4&&i--}return{lodPlanes:t,sizeLods:r,sigmas:n}}(n)),this._blurMaterial=function(e,t,r){const n=new Float32Array(hi),i=new Et(0,1,0),s=new Fn({name:"SphericalGaussianBlur",defines:{n:hi,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/r,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:Ei(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1});return s}(n,e,t)}return n}_compileMaterial(e){const t=new Tn(this._lodPlanes[0],e);this._renderer.compile(t,ui)}_sceneToCubeUV(e,t,r,n){const i=new On(90,1,t,r),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],l=this._renderer,c=l.autoClear,h=l.toneMapping;l.getClearColor(di),l.toneMapping=d,l.autoClear=!1;const u=new Hr({name:"PMREM.Background",side:o,depthWrite:!1,depthTest:!1}),p=new Tn(new Bn,u);let f=!1;const m=e.background;m?m.isColor&&(u.color.copy(m),e.background=null,f=!0):(u.color.copy(di),f=!0);for(let o=0;o<6;o++){const t=o%3;0===t?(i.up.set(0,s[o],0),i.lookAt(a[o],0,0)):1===t?(i.up.set(0,0,s[o]),i.lookAt(0,a[o],0)):(i.up.set(0,s[o],0),i.lookAt(0,0,a[o]));const r=this._cubeSize;yi(n,t*r,o>2?r:0,r,r),l.setRenderTarget(n),f&&l.render(p,i),l.render(e,i)}p.geometry.dispose(),p.material.dispose(),l.toneMapping=h,l.autoClear=c,e.background=m}_textureToCubeUV(e,t){const r=this._renderer,n=e.mapping===y||e.mapping===x;n?(null===this._cubemapMaterial&&(this._cubemapMaterial=bi()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=xi());const i=n?this._cubemapMaterial:this._equirectMaterial,s=new Tn(this._lodPlanes[0],i);i.uniforms.envMap.value=e;const a=this._cubeSize;yi(t,0,0,3*a,2*a),r.setRenderTarget(t),r.render(s,ui)}_applyPMREM(e){const t=this._renderer,r=t.autoClear;t.autoClear=!1;for(let n=1;nhi&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);const m=[];let g=0;for(let y=0;yA-4?n-A+4:0),4*(this._cubeSize-v),3*v,2*v),o.setRenderTarget(t),o.render(c,ui)}}function vi(e,t,r){const n=new vt(e,t,r);return n.texture.mapping=_,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function yi(e,t,r,n,i){e.viewport.set(t,r,n,i),e.scissor.set(t,r,n,i)}function xi(){return new Fn({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:Ei(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function bi(){return new Fn({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:Ei(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:0,depthTest:!1,depthWrite:!1})}function Ei(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function _i(e){let t=new WeakMap,r=null;function n(e){const r=e.target;r.removeEventListener("dispose",n);const i=t.get(r);void 0!==i&&(t.delete(r),i.dispose())}return{get:function(i){if(i&&i.isTexture){const s=i.mapping,a=s===b||s===E,o=s===y||s===x;if(a||o){if(i.isRenderTargetTexture&&!0===i.needsPMREMUpdate){i.needsPMREMUpdate=!1;let n=t.get(i);return null===r&&(r=new Ai(e)),n=a?r.fromEquirectangular(i,n):r.fromCubemap(i,n),t.set(i,n),n.texture}if(t.has(i))return t.get(i).texture;{const s=i.image;if(a&&s&&s.height>0||o&&s&&function(e){let t=0;const r=6;for(let n=0;nt.maxTextureSize&&(M=Math.ceil(S/t.maxTextureSize),S=t.maxTextureSize);const w=new Float32Array(S*M*4*p),C=new yt(w,S,M,p);C.type=U,C.needsUpdate=!0;const T=4*_;for(let B=0;B0)return e;const i=t*r;let s=Ui[i];if(void 0===s&&(s=new Float32Array(i),Ui[i]=s),0!==t){n.toArray(s,0);for(let n=1,i=0;n!==t;++n)i+=r,e[n].toArray(s,i)}return s}function Qi(e,t){if(e.length!==t.length)return!1;for(let r=0,n=e.length;r":" "} ${e}: ${r[a]}`)}return n.join("\n")}(e.getShaderSource(t),n)}return i}function ks(e,t){const r=function(e){switch(e){case Te:return["Linear","( value )"];case Ce:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",e),["Linear","( value )"]}}(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+r[0]+r[1]+"; }"}function Gs(e,t){let r;switch(t){case p:r="Linear";break;case f:r="Reinhard";break;case m:r="OptimizedCineon";break;case g:r="ACESFilmic";break;case A:r="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),r="Linear"}return"vec3 "+e+"( vec3 color ) { return "+r+"ToneMapping( color ); }"}function zs(e){return""!==e}function Qs(e,t){const r=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,r).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function Vs(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const Hs=/^[ \t]*#include +<([\w\d./]+)>/gm;function js(e){return e.replace(Hs,Ws)}function Ws(e,t){const r=Zn[t];if(void 0===r)throw new Error("Can not resolve #include <"+t+">");return js(r)}const Xs=/#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 Ys(e){return e.replace(Xs,qs)}function qs(e,t,r,n){let i="";for(let s=parseInt(t);s0&&(w+="\n"),C=[E,S].filter(zs).join("\n"),C.length>0&&(C+="\n")):(w=[Ks(r),"#define SHADER_NAME "+r.shaderName,S,r.instancing?"#define USE_INSTANCING":"",r.instancingColor?"#define USE_INSTANCING_COLOR":"",r.useFog&&r.fog?"#define USE_FOG":"",r.useFog&&r.fogExp2?"#define FOG_EXP2":"",r.map?"#define USE_MAP":"",r.envMap?"#define USE_ENVMAP":"",r.envMap?"#define "+A:"",r.lightMap?"#define USE_LIGHTMAP":"",r.aoMap?"#define USE_AOMAP":"",r.bumpMap?"#define USE_BUMPMAP":"",r.normalMap?"#define USE_NORMALMAP":"",r.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",r.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",r.displacementMap?"#define USE_DISPLACEMENTMAP":"",r.emissiveMap?"#define USE_EMISSIVEMAP":"",r.clearcoatMap?"#define USE_CLEARCOATMAP":"",r.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",r.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",r.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",r.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",r.specularMap?"#define USE_SPECULARMAP":"",r.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",r.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",r.roughnessMap?"#define USE_ROUGHNESSMAP":"",r.metalnessMap?"#define USE_METALNESSMAP":"",r.alphaMap?"#define USE_ALPHAMAP":"",r.transmission?"#define USE_TRANSMISSION":"",r.transmissionMap?"#define USE_TRANSMISSIONMAP":"",r.thicknessMap?"#define USE_THICKNESSMAP":"",r.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",r.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",r.mapUv?"#define MAP_UV "+r.mapUv:"",r.alphaMapUv?"#define ALPHAMAP_UV "+r.alphaMapUv:"",r.lightMapUv?"#define LIGHTMAP_UV "+r.lightMapUv:"",r.aoMapUv?"#define AOMAP_UV "+r.aoMapUv:"",r.emissiveMapUv?"#define EMISSIVEMAP_UV "+r.emissiveMapUv:"",r.bumpMapUv?"#define BUMPMAP_UV "+r.bumpMapUv:"",r.normalMapUv?"#define NORMALMAP_UV "+r.normalMapUv:"",r.displacementMapUv?"#define DISPLACEMENTMAP_UV "+r.displacementMapUv:"",r.metalnessMapUv?"#define METALNESSMAP_UV "+r.metalnessMapUv:"",r.roughnessMapUv?"#define ROUGHNESSMAP_UV "+r.roughnessMapUv:"",r.clearcoatMapUv?"#define CLEARCOATMAP_UV "+r.clearcoatMapUv:"",r.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+r.clearcoatNormalMapUv:"",r.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+r.clearcoatRoughnessMapUv:"",r.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+r.iridescenceMapUv:"",r.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+r.iridescenceThicknessMapUv:"",r.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+r.sheenColorMapUv:"",r.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+r.sheenRoughnessMapUv:"",r.specularMapUv?"#define SPECULARMAP_UV "+r.specularMapUv:"",r.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+r.specularColorMapUv:"",r.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+r.specularIntensityMapUv:"",r.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+r.transmissionMapUv:"",r.thicknessMapUv?"#define THICKNESSMAP_UV "+r.thicknessMapUv:"",r.vertexTangents?"#define USE_TANGENT":"",r.vertexColors?"#define USE_COLOR":"",r.vertexAlphas?"#define USE_COLOR_ALPHA":"",r.vertexUv1s?"#define USE_UV1":"",r.vertexUv2s?"#define USE_UV2":"",r.vertexUv3s?"#define USE_UV3":"",r.pointsUvs?"#define USE_POINTS_UV":"",r.flatShading?"#define FLAT_SHADED":"",r.skinning?"#define USE_SKINNING":"",r.morphTargets?"#define USE_MORPHTARGETS":"",r.morphNormals&&!1===r.flatShading?"#define USE_MORPHNORMALS":"",r.morphColors&&r.isWebGL2?"#define USE_MORPHCOLORS":"",r.morphTargetsCount>0&&r.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",r.morphTargetsCount>0&&r.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+r.morphTextureStride:"",r.morphTargetsCount>0&&r.isWebGL2?"#define MORPHTARGETS_COUNT "+r.morphTargetsCount:"",r.doubleSided?"#define DOUBLE_SIDED":"",r.flipSided?"#define FLIP_SIDED":"",r.shadowMapEnabled?"#define USE_SHADOWMAP":"",r.shadowMapEnabled?"#define "+m:"",r.sizeAttenuation?"#define USE_SIZEATTENUATION":"",r.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",r.logarithmicDepthBuffer&&r.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(zs).join("\n"),C=[E,Ks(r),"#define SHADER_NAME "+r.shaderName,S,r.useFog&&r.fog?"#define USE_FOG":"",r.useFog&&r.fogExp2?"#define FOG_EXP2":"",r.map?"#define USE_MAP":"",r.matcap?"#define USE_MATCAP":"",r.envMap?"#define USE_ENVMAP":"",r.envMap?"#define "+g:"",r.envMap?"#define "+A:"",r.envMap?"#define "+v:"",b?"#define CUBEUV_TEXEL_WIDTH "+b.texelWidth:"",b?"#define CUBEUV_TEXEL_HEIGHT "+b.texelHeight:"",b?"#define CUBEUV_MAX_MIP "+b.maxMip+".0":"",r.lightMap?"#define USE_LIGHTMAP":"",r.aoMap?"#define USE_AOMAP":"",r.bumpMap?"#define USE_BUMPMAP":"",r.normalMap?"#define USE_NORMALMAP":"",r.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",r.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",r.emissiveMap?"#define USE_EMISSIVEMAP":"",r.clearcoat?"#define USE_CLEARCOAT":"",r.clearcoatMap?"#define USE_CLEARCOATMAP":"",r.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",r.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",r.iridescence?"#define USE_IRIDESCENCE":"",r.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",r.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",r.specularMap?"#define USE_SPECULARMAP":"",r.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",r.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",r.roughnessMap?"#define USE_ROUGHNESSMAP":"",r.metalnessMap?"#define USE_METALNESSMAP":"",r.alphaMap?"#define USE_ALPHAMAP":"",r.alphaTest?"#define USE_ALPHATEST":"",r.sheen?"#define USE_SHEEN":"",r.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",r.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",r.transmission?"#define USE_TRANSMISSION":"",r.transmissionMap?"#define USE_TRANSMISSIONMAP":"",r.thicknessMap?"#define USE_THICKNESSMAP":"",r.vertexTangents?"#define USE_TANGENT":"",r.vertexColors||r.instancingColor?"#define USE_COLOR":"",r.vertexAlphas?"#define USE_COLOR_ALPHA":"",r.vertexUv1s?"#define USE_UV1":"",r.vertexUv2s?"#define USE_UV2":"",r.vertexUv3s?"#define USE_UV3":"",r.pointsUvs?"#define USE_POINTS_UV":"",r.gradientMap?"#define USE_GRADIENTMAP":"",r.flatShading?"#define FLAT_SHADED":"",r.doubleSided?"#define DOUBLE_SIDED":"",r.flipSided?"#define FLIP_SIDED":"",r.shadowMapEnabled?"#define USE_SHADOWMAP":"",r.shadowMapEnabled?"#define "+m:"",r.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",r.useLegacyLights?"#define LEGACY_LIGHTS":"",r.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",r.logarithmicDepthBuffer&&r.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",r.toneMapping!==d?"#define TONE_MAPPING":"",r.toneMapping!==d?Zn.tonemapping_pars_fragment:"",r.toneMapping!==d?Gs("toneMapping",r.toneMapping):"",r.dithering?"#define DITHERING":"",r.opaque?"#define OPAQUE":"",Zn.encodings_pars_fragment,ks("linearToOutputTexel",r.outputColorSpace),r.useDepthPacking?"#define DEPTH_PACKING "+r.depthPacking:"","\n"].filter(zs).join("\n")),p=js(p),p=Qs(p,r),p=Vs(p,r),f=js(f),f=Qs(f,r),f=Vs(f,r),p=Ys(p),f=Ys(f),r.isWebGL2&&!0!==r.isRawShaderMaterial&&(T="#version 300 es\n",w=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+w,C=["#define varying in",r.glslVersion===Pe?"":"layout(location = 0) out highp vec4 pc_fragColor;",r.glslVersion===Pe?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+C);const I=T+w+p,B=T+C+f,R=Us(o,o.VERTEX_SHADER,I),P=Us(o,o.FRAGMENT_SHADER,B);if(o.attachShader(M,R),o.attachShader(M,P),void 0!==r.index0AttributeName?o.bindAttribLocation(M,0,r.index0AttributeName):!0===r.morphTargets&&o.bindAttribLocation(M,0,"position"),o.linkProgram(M),e.debug.checkShaderErrors){const t=o.getProgramInfoLog(M).trim(),r=o.getShaderInfoLog(R).trim(),n=o.getShaderInfoLog(P).trim();let i=!0,s=!0;if(!1===o.getProgramParameter(M,o.LINK_STATUS))if(i=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(o,M,R,P);else{const e=Ns(o,R,"vertex"),r=Ns(o,P,"fragment");console.error("THREE.WebGLProgram: Shader Error "+o.getError()+" - VALIDATE_STATUS "+o.getProgramParameter(M,o.VALIDATE_STATUS)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+r)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):""!==r&&""!==n||(s=!1);s&&(this.diagnostics={runnable:i,programLog:t,vertexShader:{log:r,prefix:w},fragmentShader:{log:n,prefix:C}})}let D,L;return o.deleteShader(R),o.deleteShader(P),this.getUniforms=function(){return void 0===D&&(D=new Fs(o,M)),D},this.getAttributes=function(){return void 0===L&&(L=function(e,t){const r={},n=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let i=0;i0,Y=s.iridescence>0,q=s.sheen>0,K=s.transmission>0,J=X&&!!s.clearcoatMap,Z=X&&!!s.clearcoatNormalMap,$=X&&!!s.clearcoatRoughnessMap,ee=Y&&!!s.iridescenceMap,te=Y&&!!s.iridescenceThicknessMap,re=q&&!!s.sheenColorMap,ne=q&&!!s.sheenRoughnessMap,ie=!!s.specularMap,se=!!s.specularColorMap,ae=!!s.specularIntensityMap,oe=K&&!!s.transmissionMap,le=K&&!!s.thicknessMap,ce=!!s.gradientMap,he=!!s.alphaMap,ue=s.alphaTest>0,de=!!s.extensions,pe=!!b.attributes.uv1,fe=!!b.attributes.uv2,me=!!b.attributes.uv3;return{isWebGL2:u,shaderID:w,shaderName:s.type,vertexShader:I,fragmentShader:B,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:P,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:m,instancing:F,instancingColor:F&&null!==y.instanceColor,supportsVertexTextures:f,outputColorSpace:null===L?e.outputColorSpace:!0===L.isXRRenderTarget?L.texture.colorSpace:Te,map:U,matcap:O,envMap:N,envMapMode:N&&S.mapping,envMapCubeUVHeight:M,aoMap:k,lightMap:G,bumpMap:z,normalMap:Q,displacementMap:f&&V,emissiveMap:H,normalMapObjectSpace:Q&&1===s.normalMapType,normalMapTangentSpace:Q&&0===s.normalMapType,metalnessMap:j,roughnessMap:W,clearcoat:X,clearcoatMap:J,clearcoatNormalMap:Z,clearcoatRoughnessMap:$,iridescence:Y,iridescenceMap:ee,iridescenceThicknessMap:te,sheen:q,sheenColorMap:re,sheenRoughnessMap:ne,specularMap:ie,specularColorMap:se,specularIntensityMap:ae,transmission:K,transmissionMap:oe,thicknessMap:le,gradientMap:ce,opaque:!1===s.transparent&&1===s.blending,alphaMap:he,alphaTest:ue,combine:s.combine,mapUv:U&&A(s.map.channel),aoMapUv:k&&A(s.aoMap.channel),lightMapUv:G&&A(s.lightMap.channel),bumpMapUv:z&&A(s.bumpMap.channel),normalMapUv:Q&&A(s.normalMap.channel),displacementMapUv:V&&A(s.displacementMap.channel),emissiveMapUv:H&&A(s.emissiveMap.channel),metalnessMapUv:j&&A(s.metalnessMap.channel),roughnessMapUv:W&&A(s.roughnessMap.channel),clearcoatMapUv:J&&A(s.clearcoatMap.channel),clearcoatNormalMapUv:Z&&A(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:$&&A(s.clearcoatRoughnessMap.channel),iridescenceMapUv:ee&&A(s.iridescenceMap.channel),iridescenceThicknessMapUv:te&&A(s.iridescenceThicknessMap.channel),sheenColorMapUv:re&&A(s.sheenColorMap.channel),sheenRoughnessMapUv:ne&&A(s.sheenRoughnessMap.channel),specularMapUv:ie&&A(s.specularMap.channel),specularColorMapUv:se&&A(s.specularColorMap.channel),specularIntensityMapUv:ae&&A(s.specularIntensityMap.channel),transmissionMapUv:oe&&A(s.transmissionMap.channel),thicknessMapUv:le&&A(s.thicknessMap.channel),alphaMapUv:he&&A(s.alphaMap.channel),vertexTangents:Q&&!!b.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!b.attributes.color&&4===b.attributes.color.itemSize,vertexUv1s:pe,vertexUv2s:fe,vertexUv3s:me,pointsUvs:!0===y.isPoints&&!!b.attributes.uv&&(U||he),fog:!!x,useFog:!0===s.fog,fogExp2:x&&x.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:p,skinning:!0===y.isSkinnedMesh,morphTargets:void 0!==b.morphAttributes.position,morphNormals:void 0!==b.morphAttributes.normal,morphColors:void 0!==b.morphAttributes.color,morphTargetsCount:T,morphTextureStride:D,numDirLights:l.directional.length,numPointLights:l.point.length,numSpotLights:l.spot.length,numSpotLightMaps:l.spotLightMap.length,numRectAreaLights:l.rectArea.length,numHemiLights:l.hemi.length,numDirLightShadows:l.directionalShadowMap.length,numPointLightShadows:l.pointShadowMap.length,numSpotLightShadows:l.spotShadowMap.length,numSpotLightShadowsWithMaps:l.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:e.shadowMap.enabled&&h.length>0,shadowMapType:e.shadowMap.type,toneMapping:s.toneMapped?e.toneMapping:d,useLegacyLights:e.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:2===s.side,flipSided:s.side===o,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:de&&!0===s.extensions.derivatives,extensionFragDepth:de&&!0===s.extensions.fragDepth,extensionDrawBuffers:de&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:de&&!0===s.extensions.shaderTextureLOD,rendererExtensionFragDepth:u||n.has("EXT_frag_depth"),rendererExtensionDrawBuffers:u||n.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:u||n.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function(t){const r=[];if(t.shaderID?r.push(t.shaderID):(r.push(t.customVertexShaderID),r.push(t.customFragmentShaderID)),void 0!==t.defines)for(const e in t.defines)r.push(e),r.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(!function(e,t){e.push(t.precision),e.push(t.outputColorSpace),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.mapUv),e.push(t.alphaMapUv),e.push(t.lightMapUv),e.push(t.aoMapUv),e.push(t.bumpMapUv),e.push(t.normalMapUv),e.push(t.displacementMapUv),e.push(t.emissiveMapUv),e.push(t.metalnessMapUv),e.push(t.roughnessMapUv),e.push(t.clearcoatMapUv),e.push(t.clearcoatNormalMapUv),e.push(t.clearcoatRoughnessMapUv),e.push(t.iridescenceMapUv),e.push(t.iridescenceThicknessMapUv),e.push(t.sheenColorMapUv),e.push(t.sheenRoughnessMapUv),e.push(t.specularMapUv),e.push(t.specularColorMapUv),e.push(t.specularIntensityMapUv),e.push(t.transmissionMapUv),e.push(t.thicknessMapUv),e.push(t.combine),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numSpotLightMaps),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.numSpotLightShadowsWithMaps),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(r,t),function(e,t){l.disableAll(),t.isWebGL2&&l.enable(0);t.supportsVertexTextures&&l.enable(1);t.instancing&&l.enable(2);t.instancingColor&&l.enable(3);t.matcap&&l.enable(4);t.envMap&&l.enable(5);t.normalMapObjectSpace&&l.enable(6);t.normalMapTangentSpace&&l.enable(7);t.clearcoat&&l.enable(8);t.iridescence&&l.enable(9);t.alphaTest&&l.enable(10);t.vertexColors&&l.enable(11);t.vertexAlphas&&l.enable(12);t.vertexUv1s&&l.enable(13);t.vertexUv2s&&l.enable(14);t.vertexUv3s&&l.enable(15);t.vertexTangents&&l.enable(16);e.push(l.mask),l.disableAll(),t.fog&&l.enable(0);t.useFog&&l.enable(1);t.flatShading&&l.enable(2);t.logarithmicDepthBuffer&&l.enable(3);t.skinning&&l.enable(4);t.morphTargets&&l.enable(5);t.morphNormals&&l.enable(6);t.morphColors&&l.enable(7);t.premultipliedAlpha&&l.enable(8);t.shadowMapEnabled&&l.enable(9);t.useLegacyLights&&l.enable(10);t.doubleSided&&l.enable(11);t.flipSided&&l.enable(12);t.useDepthPacking&&l.enable(13);t.dithering&&l.enable(14);t.transmission&&l.enable(15);t.sheen&&l.enable(16);t.opaque&&l.enable(17);t.pointsUvs&&l.enable(18);e.push(l.mask)}(r,t),r.push(e.outputColorSpace)),r.push(t.customProgramCacheKey),r.join()},getUniforms:function(e){const t=g[e.type];let r;if(t){const e=ei[t];r=Ln.clone(e.uniforms)}else r=e.uniforms;return r},acquireProgram:function(t,r){let n;for(let e=0,i=h.length;e0?n.push(h):!0===a.transparent?i.push(h):r.push(h)},unshift:function(e,t,a,o,l,c){const h=s(e,t,a,o,l,c);a.transmission>0?n.unshift(h):!0===a.transparent?i.unshift(h):r.unshift(h)},finish:function(){for(let r=t,n=e.length;r1&&r.sort(e||na),n.length>1&&n.sort(t||ia),i.length>1&&i.sort(t||ia)}}}function aa(){let e=new WeakMap;return{get:function(t,r){const n=e.get(t);let i;return void 0===n?(i=new sa,e.set(t,[i])):r>=n.length?(i=new sa,n.push(i)):i=n[r],i},dispose:function(){e=new WeakMap}}}function oa(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let r;switch(t.type){case"DirectionalLight":r={direction:new Et,color:new Qr};break;case"SpotLight":r={position:new Et,direction:new Et,color:new Qr,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":r={position:new Et,color:new Qr,distance:0,decay:0};break;case"HemisphereLight":r={direction:new Et,skyColor:new Qr,groundColor:new Qr};break;case"RectAreaLight":r={color:new Qr,position:new Et,halfWidth:new Et,halfHeight:new Et}}return e[t.id]=r,r}}}let la=0;function ca(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function ha(e,t){const r=new oa,n=function(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let r;switch(t.type){case"DirectionalLight":case"SpotLight":r={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qe};break;case"PointLight":r={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new qe,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=r,r}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let l=0;l<9;l++)i.probe.push(new Et);const s=new Et,a=new Zt,o=new Zt;return{setup:function(s,a){let o=0,l=0,c=0;for(let e=0;e<9;e++)i.probe[e].set(0,0,0);let h=0,u=0,d=0,p=0,f=0,m=0,g=0,A=0,v=0,y=0;s.sort(ca);const x=!0===a?Math.PI:1;for(let e=0,t=s.length;e0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(i.rectAreaLTC1=$n.LTC_FLOAT_1,i.rectAreaLTC2=$n.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(i.rectAreaLTC1=$n.LTC_HALF_1,i.rectAreaLTC2=$n.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=o,i.ambient[1]=l,i.ambient[2]=c;const b=i.hash;b.directionalLength===h&&b.pointLength===u&&b.spotLength===d&&b.rectAreaLength===p&&b.hemiLength===f&&b.numDirectionalShadows===m&&b.numPointShadows===g&&b.numSpotShadows===A&&b.numSpotMaps===v||(i.directional.length=h,i.spot.length=d,i.rectArea.length=p,i.point.length=u,i.hemi.length=f,i.directionalShadow.length=m,i.directionalShadowMap.length=m,i.pointShadow.length=g,i.pointShadowMap.length=g,i.spotShadow.length=A,i.spotShadowMap.length=A,i.directionalShadowMatrix.length=m,i.pointShadowMatrix.length=g,i.spotLightMatrix.length=A+v-y,i.spotLightMap.length=v,i.numSpotLightShadowsWithMaps=y,b.directionalLength=h,b.pointLength=u,b.spotLength=d,b.rectAreaLength=p,b.hemiLength=f,b.numDirectionalShadows=m,b.numPointShadows=g,b.numSpotShadows=A,b.numSpotMaps=v,i.version=la++)},setupView:function(e,t){let r=0,n=0,l=0,c=0,h=0;const u=t.matrixWorldInverse;for(let d=0,p=e.length;d=s.length?(a=new ua(e,t),s.push(a)):a=s[i],a},dispose:function(){r=new WeakMap}}}class pa extends Or{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class fa extends Or{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}function ma(e,t,r){let i=new Yn;const l=new qe,c=new qe,h=new At,u=new pa({depthPacking:3201}),d=new fa,p={},f=r.maxTextureSize,m={[a]:o,[o]:a,2:2},g=new Fn({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new qe},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),A=g.clone();A.defines.HORIZONTAL_PASS=1;const v=new hn;v.setAttribute("position",new Zr(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const y=new Tn(v,g),x=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=n;let b=this.type;function E(r,n){const i=t.update(y);g.defines.VSM_SAMPLES!==r.blurSamples&&(g.defines.VSM_SAMPLES=r.blurSamples,A.defines.VSM_SAMPLES=r.blurSamples,g.needsUpdate=!0,A.needsUpdate=!0),null===r.mapPass&&(r.mapPass=new vt(l.x,l.y)),g.uniforms.shadow_pass.value=r.map.texture,g.uniforms.resolution.value=r.mapSize,g.uniforms.radius.value=r.radius,e.setRenderTarget(r.mapPass),e.clear(),e.renderBufferDirect(n,null,i,g,y,null),A.uniforms.shadow_pass.value=r.mapPass.texture,A.uniforms.resolution.value=r.mapSize,A.uniforms.radius.value=r.radius,e.setRenderTarget(r.map),e.clear(),e.renderBufferDirect(n,null,i,A,y,null)}function _(t,r,n,i){let a=null;const o=!0===n.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==o)a=o;else if(a=!0===n.isPointLight?d:u,e.localClippingEnabled&&!0===r.clipShadows&&Array.isArray(r.clippingPlanes)&&0!==r.clippingPlanes.length||r.displacementMap&&0!==r.displacementScale||r.alphaMap&&r.alphaTest>0||r.map&&r.alphaTest>0){const e=a.uuid,t=r.uuid;let n=p[e];void 0===n&&(n={},p[e]=n);let i=n[t];void 0===i&&(i=a.clone(),n[t]=i),a=i}if(a.visible=r.visible,a.wireframe=r.wireframe,a.side=i===s?null!==r.shadowSide?r.shadowSide:r.side:null!==r.shadowSide?r.shadowSide:m[r.side],a.alphaMap=r.alphaMap,a.alphaTest=r.alphaTest,a.map=r.map,a.clipShadows=r.clipShadows,a.clippingPlanes=r.clippingPlanes,a.clipIntersection=r.clipIntersection,a.displacementMap=r.displacementMap,a.displacementScale=r.displacementScale,a.displacementBias=r.displacementBias,a.wireframeLinewidth=r.wireframeLinewidth,a.linewidth=r.linewidth,!0===n.isPointLight&&!0===a.isMeshDistanceMaterial){e.properties.get(a).light=n}return a}function S(r,n,a,o,l){if(!1===r.visible)return;if(r.layers.test(n.layers)&&(r.isMesh||r.isLine||r.isPoints)&&(r.castShadow||r.receiveShadow&&l===s)&&(!r.frustumCulled||i.intersectsObject(r))){r.modelViewMatrix.multiplyMatrices(a.matrixWorldInverse,r.matrixWorld);const n=t.update(r),i=r.material;if(Array.isArray(i)){const t=n.groups;for(let s=0,c=t.length;sf||l.y>f)&&(l.x>f&&(c.x=Math.floor(f/u.x),l.x=c.x*u.x,o.mapSize.x=c.x),l.y>f&&(c.y=Math.floor(f/u.y),l.y=c.y*u.y,o.mapSize.y=c.y)),null===o.map||!0===p||!0===m){const e=this.type!==s?{minFilter:C,magFilter:C}:{};null!==o.map&&o.map.dispose(),o.map=new vt(l.x,l.y,e),o.map.texture.name=a.name+".shadowMap",o.camera.updateProjectionMatrix()}e.setRenderTarget(o.map),e.clear();const A=o.getViewportCount();for(let e=0;e=1):-1!==D.indexOf("OpenGL ES")&&(P=parseFloat(/^OpenGL ES (\d)/.exec(D)[1]),R=P>=2);let L=null,F={};const U=e.getParameter(e.SCISSOR_BOX),O=e.getParameter(e.VIEWPORT),N=(new At).fromArray(U),k=(new At).fromArray(O);function G(t,r,i,s){const a=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let l=0;ln||e.height>n)&&(i=n/Math.max(e.width,e.height)),i<1||!0===t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const n=t?je:Math.floor,s=n(i*e.width),a=n(i*e.height);void 0===m&&(m=v(s,a));const o=r?v(s,a):m;o.width=s,o.height=a;return o.getContext("2d").drawImage(e,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+s+"x"+a+")."),o}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function x(e){return Ve(e.width)&&Ve(e.height)}function b(e,t){return e.generateMipmaps&&t&&e.minFilter!==C&&e.minFilter!==B}function E(t){e.generateMipmap(t)}function _(r,n,i,s,a=!1){if(!1===o)return n;if(null!==r){if(void 0!==e[r])return e[r];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+r+"'")}let l=n;return n===e.RED&&(i===e.FLOAT&&(l=e.R32F),i===e.HALF_FLOAT&&(l=e.R16F),i===e.UNSIGNED_BYTE&&(l=e.R8)),n===e.RG&&(i===e.FLOAT&&(l=e.RG32F),i===e.HALF_FLOAT&&(l=e.RG16F),i===e.UNSIGNED_BYTE&&(l=e.RG8)),n===e.RGBA&&(i===e.FLOAT&&(l=e.RGBA32F),i===e.HALF_FLOAT&&(l=e.RGBA16F),i===e.UNSIGNED_BYTE&&(l=s===Ce&&!1===a?e.SRGB8_ALPHA8:e.RGBA8),i===e.UNSIGNED_SHORT_4_4_4_4&&(l=e.RGBA4),i===e.UNSIGNED_SHORT_5_5_5_1&&(l=e.RGB5_A1)),l!==e.R16F&&l!==e.R32F&&l!==e.RG16F&&l!==e.RG32F&&l!==e.RGBA16F&&l!==e.RGBA32F||t.get("EXT_color_buffer_float"),l}function Q(e,t,r){return!0===b(e,r)||e.isFramebufferTexture&&e.minFilter!==C&&e.minFilter!==B?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function V(t){return t===C||t===T||t===I?e.NEAREST:e.LINEAR}function H(e){const t=e.target;t.removeEventListener("dispose",H),function(e){const t=n.get(e);if(void 0===t.__webglInit)return;const r=e.source,i=g.get(r);if(i){const n=i[t.__cacheKey];n.usedTimes--,0===n.usedTimes&&W(e),0===Object.keys(i).length&&g.delete(r)}n.remove(e)}(t),t.isVideoTexture&&f.delete(t)}function j(t){const r=t.target;r.removeEventListener("dispose",j),function(t){const r=t.texture,i=n.get(t),s=n.get(r);void 0!==s.__webglTexture&&(e.deleteTexture(s.__webglTexture),a.memory.textures--);t.depthTexture&&t.depthTexture.dispose();if(t.isWebGLCubeRenderTarget)for(let n=0;n<6;n++)e.deleteFramebuffer(i.__webglFramebuffer[n]),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer[n]);else{if(e.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer),i.__webglMultisampledFramebuffer&&e.deleteFramebuffer(i.__webglMultisampledFramebuffer),i.__webglColorRenderbuffer)for(let t=0;t0&&s.__version!==t.version){const e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void $(s,t,i);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}r.bindTexture(e.TEXTURE_2D,s.__webglTexture,e.TEXTURE0+i)}const q={[S]:e.REPEAT,[M]:e.CLAMP_TO_EDGE,[w]:e.MIRRORED_REPEAT},K={[C]:e.NEAREST,[T]:e.NEAREST_MIPMAP_NEAREST,[I]:e.NEAREST_MIPMAP_LINEAR,[B]:e.LINEAR,[R]:e.LINEAR_MIPMAP_NEAREST,[P]:e.LINEAR_MIPMAP_LINEAR};function J(r,s,a){if(a?(e.texParameteri(r,e.TEXTURE_WRAP_S,q[s.wrapS]),e.texParameteri(r,e.TEXTURE_WRAP_T,q[s.wrapT]),r!==e.TEXTURE_3D&&r!==e.TEXTURE_2D_ARRAY||e.texParameteri(r,e.TEXTURE_WRAP_R,q[s.wrapR]),e.texParameteri(r,e.TEXTURE_MAG_FILTER,K[s.magFilter]),e.texParameteri(r,e.TEXTURE_MIN_FILTER,K[s.minFilter])):(e.texParameteri(r,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(r,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),r!==e.TEXTURE_3D&&r!==e.TEXTURE_2D_ARRAY||e.texParameteri(r,e.TEXTURE_WRAP_R,e.CLAMP_TO_EDGE),s.wrapS===M&&s.wrapT===M||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(r,e.TEXTURE_MAG_FILTER,V(s.magFilter)),e.texParameteri(r,e.TEXTURE_MIN_FILTER,V(s.minFilter)),s.minFilter!==C&&s.minFilter!==B&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===t.has("EXT_texture_filter_anisotropic")){const a=t.get("EXT_texture_filter_anisotropic");if(s.magFilter===C)return;if(s.minFilter!==I&&s.minFilter!==P)return;if(s.type===U&&!1===t.has("OES_texture_float_linear"))return;if(!1===o&&s.type===O&&!1===t.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||n.get(s).__currentAnisotropy)&&(e.texParameterf(r,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,i.getMaxAnisotropy())),n.get(s).__currentAnisotropy=s.anisotropy)}}function Z(t,r){let n=!1;void 0===t.__webglInit&&(t.__webglInit=!0,r.addEventListener("dispose",H));const i=r.source;let s=g.get(i);void 0===s&&(s={},g.set(i,s));const o=function(e){const t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR||0),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.colorSpace),t.join()}(r);if(o!==t.__cacheKey){void 0===s[o]&&(s[o]={texture:e.createTexture(),usedTimes:0},a.memory.textures++,n=!0),s[o].usedTimes++;const i=s[t.__cacheKey];void 0!==i&&(s[t.__cacheKey].usedTimes--,0===i.usedTimes&&W(r)),t.__cacheKey=o,t.__webglTexture=s[o].texture}return n}function $(t,i,a){let l=e.TEXTURE_2D;(i.isDataArrayTexture||i.isCompressedArrayTexture)&&(l=e.TEXTURE_2D_ARRAY),i.isData3DTexture&&(l=e.TEXTURE_3D);const c=Z(t,i),u=i.source;r.bindTexture(l,t.__webglTexture,e.TEXTURE0+a);const d=n.get(u);if(u.version!==d.__version||!0===c){r.activeTexture(e.TEXTURE0+a),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);const t=function(e){return!o&&(e.wrapS!==M||e.wrapT!==M||e.minFilter!==C&&e.minFilter!==B)}(i)&&!1===x(i.image);let n=y(i.image,t,!1,h);n=se(i,n);const p=x(n)||o,f=s.convert(i.format,i.colorSpace);let m,g=s.convert(i.type),A=_(i.internalFormat,f,g,i.colorSpace);J(l,i,p);const v=i.mipmaps,S=o&&!0!==i.isVideoTexture,w=void 0===d.__version||!0===c,T=Q(i,n,p);if(i.isDepthTexture)A=e.DEPTH_COMPONENT,o?A=i.type===U?e.DEPTH_COMPONENT32F:i.type===F?e.DEPTH_COMPONENT24:i.type===N?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT16:i.type===U&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===G&&A===e.DEPTH_COMPONENT&&i.type!==L&&i.type!==F&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=F,g=s.convert(i.type)),i.format===z&&A===e.DEPTH_COMPONENT&&(A=e.DEPTH_STENCIL,i.type!==N&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=N,g=s.convert(i.type))),w&&(S?r.texStorage2D(e.TEXTURE_2D,1,A,n.width,n.height):r.texImage2D(e.TEXTURE_2D,0,A,n.width,n.height,0,f,g,null));else if(i.isDataTexture)if(v.length>0&&p){S&&w&&r.texStorage2D(e.TEXTURE_2D,T,A,v[0].width,v[0].height);for(let t=0,n=v.length;t>=1,i>>=1}}else if(v.length>0&&p){S&&w&&r.texStorage2D(e.TEXTURE_2D,T,A,v[0].width,v[0].height);for(let t=0,n=v.length;t=e.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,l,n.get(a).__webglTexture,0),r.bindFramebuffer(e.FRAMEBUFFER,null)}function te(t,r,n){if(e.bindRenderbuffer(e.RENDERBUFFER,t),r.depthBuffer&&!r.stencilBuffer){let i=e.DEPTH_COMPONENT16;if(n||ie(r)){const t=r.depthTexture;t&&t.isDepthTexture&&(t.type===U?i=e.DEPTH_COMPONENT32F:t.type===F&&(i=e.DEPTH_COMPONENT24));const n=ne(r);ie(r)?d.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,n,i,r.width,r.height):e.renderbufferStorageMultisample(e.RENDERBUFFER,n,i,r.width,r.height)}else e.renderbufferStorage(e.RENDERBUFFER,i,r.width,r.height);e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)}else if(r.depthBuffer&&r.stencilBuffer){const i=ne(r);n&&!1===ie(r)?e.renderbufferStorageMultisample(e.RENDERBUFFER,i,e.DEPTH24_STENCIL8,r.width,r.height):ie(r)?d.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,i,e.DEPTH24_STENCIL8,r.width,r.height):e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,r.width,r.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)}else{const t=!0===r.isWebGLMultipleRenderTargets?r.texture:[r.texture];for(let i=0;i0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==r.__useRenderToTexture}function se(e,r){const n=e.colorSpace,i=e.format,s=e.type;return!0===e.isCompressedTexture||e.format===De||n!==Te&&n!==we&&(n===Ce?!1===o?!0===t.has("EXT_sRGB")&&i===k?(e.format=De,e.minFilter=B,e.generateMipmaps=!1):r=dt.sRGBToLinear(r):i===k&&s===D||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),r}this.allocateTextureUnit=function(){const e=X;return e>=l&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+l),X+=1,e},this.resetTextureUnits=function(){X=0},this.setTexture2D=Y,this.setTexture2DArray=function(t,i){const s=n.get(t);t.version>0&&s.__version!==t.version?$(s,t,i):r.bindTexture(e.TEXTURE_2D_ARRAY,s.__webglTexture,e.TEXTURE0+i)},this.setTexture3D=function(t,i){const s=n.get(t);t.version>0&&s.__version!==t.version?$(s,t,i):r.bindTexture(e.TEXTURE_3D,s.__webglTexture,e.TEXTURE0+i)},this.setTextureCube=function(t,i){const a=n.get(t);t.version>0&&a.__version!==t.version?function(t,i,a){if(6!==i.image.length)return;const l=Z(t,i),h=i.source;r.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+a);const u=n.get(h);if(h.version!==u.__version||!0===l){r.activeTexture(e.TEXTURE0+a),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);const t=i.isCompressedTexture||i.image[0].isCompressedTexture,n=i.image[0]&&i.image[0].isDataTexture,d=[];for(let e=0;e<6;e++)d[e]=t||n?n?i.image[e].image:i.image[e]:y(i.image[e],!1,!0,c),d[e]=se(i,d[e]);const p=d[0],f=x(p)||o,m=s.convert(i.format,i.colorSpace),g=s.convert(i.type),A=_(i.internalFormat,m,g,i.colorSpace),v=o&&!0!==i.isVideoTexture,S=void 0===u.__version||!0===l;let M,w=Q(i,p,f);if(J(e.TEXTURE_CUBE_MAP,i,f),t){v&&S&&r.texStorage2D(e.TEXTURE_CUBE_MAP,w,A,p.width,p.height);for(let t=0;t<6;t++){M=d[t].mipmaps;for(let n=0;n0&&w++,r.texStorage2D(e.TEXTURE_CUBE_MAP,w,A,d[0].width,d[0].height));for(let t=0;t<6;t++)if(n){v?r.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,0,0,d[t].width,d[t].height,m,g,d[t].data):r.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,A,d[t].width,d[t].height,0,m,g,d[t].data);for(let n=0;n0&&!1===ie(t)){const n=d?l:[l];c.__webglMultisampledFramebuffer=e.createFramebuffer(),c.__webglColorRenderbuffer=[],r.bindFramebuffer(e.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let r=0;r0&&!1===ie(t)){const i=t.isWebGLMultipleRenderTargets?t.texture:[t.texture],s=t.width,a=t.height;let o=e.COLOR_BUFFER_BIT;const l=[],c=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,h=n.get(t),u=!0===t.isWebGLMultipleRenderTargets;if(u)for(let t=0;to+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&(i=t.getPose(e.gripSpace,r),null!==i&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(n=t.getPose(e.targetRaySpace,r),null===n&&null!==i&&(n=i),null!==n&&(a.matrix.fromArray(n.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,n.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(n.linearVelocity)):a.hasLinearVelocity=!1,n.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(n.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(ba)))}return null!==a&&(a.visible=null!==n),null!==o&&(o.visible=null!==i),null!==l&&(l.visible=null!==s),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){const r=new xa;r.matrixAutoUpdate=!1,r.visible=!1,e.joints[t.jointName]=r,e.add(r)}return e.joints[t.jointName]}}class _a extends gt{constructor(e,t,r,n,i,s,a,o,l,c){if((c=void 0!==c?c:G)!==G&&c!==z)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===r&&c===G&&(r=F),void 0===r&&c===z&&(r=N),super(null,n,i,s,a,o,c,r,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==a?a:C,this.minFilter=void 0!==o?o:C,this.flipY=!1,this.generateMipmaps=!1}}class Sa extends Le{constructor(e,t){super();const r=this;let n=null,i=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const f=t.getContextAttributes();let m=null,g=null;const A=[],v=[],y=new Set,x=new Map,b=new On;b.layers.enable(1),b.viewport=new At;const E=new On;E.layers.enable(2),E.viewport=new At;const _=[b,E],S=new ya;S.layers.enable(1),S.layers.enable(2);let M=null,w=null;function C(e){const t=v.indexOf(e.inputSource);if(-1===t)return;const r=A[t];void 0!==r&&(r.update(e.inputSource,e.frame,l||s),r.dispatchEvent({type:e.type,data:e.inputSource}))}function T(){n.removeEventListener("select",C),n.removeEventListener("selectstart",C),n.removeEventListener("selectend",C),n.removeEventListener("squeeze",C),n.removeEventListener("squeezestart",C),n.removeEventListener("squeezeend",C),n.removeEventListener("end",T),n.removeEventListener("inputsourceschange",I);for(let e=0;e=0&&(v[n]=null,A[n].disconnect(r))}for(let t=0;t=v.length){v.push(r),n=e;break}if(null===v[e]){v[e]=r,n=e;break}}if(-1===n)break}const i=A[n];i&&i.connect(r)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=A[e];return void 0===t&&(t=new Ea,A[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=A[e];return void 0===t&&(t=new Ea,A[e]=t),t.getGripSpace()},this.getHand=function(e){let t=A[e];return void 0===t&&(t=new Ea,A[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){i=e,!0===r.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){a=e,!0===r.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return n},this.setSession=async function(c){if(n=c,null!==n){if(m=e.getRenderTarget(),n.addEventListener("select",C),n.addEventListener("selectstart",C),n.addEventListener("selectend",C),n.addEventListener("squeeze",C),n.addEventListener("squeezestart",C),n.addEventListener("squeezeend",C),n.addEventListener("end",T),n.addEventListener("inputsourceschange",I),!0!==f.xrCompatible&&await t.makeXRCompatible(),void 0===n.renderState.layers||!1===e.capabilities.isWebGL2){const r={antialias:void 0!==n.renderState.layers||f.antialias,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:i};d=new XRWebGLLayer(n,t,r),n.updateRenderState({baseLayer:d}),g=new vt(d.framebufferWidth,d.framebufferHeight,{format:k,type:D,colorSpace:e.outputColorSpace,stencilBuffer:f.stencil})}else{let r=null,s=null,a=null;f.depth&&(a=f.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,r=f.stencil?z:G,s=f.stencil?N:F);const o={colorFormat:t.RGBA8,depthFormat:a,scaleFactor:i};h=new XRWebGLBinding(n,t),u=h.createProjectionLayer(o),n.updateRenderState({layers:[u]}),g=new vt(u.textureWidth,u.textureHeight,{format:k,type:D,depthTexture:new _a(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,r),stencilBuffer:f.stencil,colorSpace:e.outputColorSpace,samples:f.antialias?4:0});e.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await n.requestReferenceSpace(a),U.setContext(n),U.start(),r.isPresenting=!0,r.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==n)return n.environmentBlendMode};const B=new Et,R=new Et;function P(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===n)return;S.near=E.near=b.near=e.near,S.far=E.far=b.far=e.far,M===S.near&&w===S.far||(n.updateRenderState({depthNear:S.near,depthFar:S.far}),M=S.near,w=S.far);const t=e.parent,r=S.cameras;P(S,t);for(let n=0;ne&&(x.set(t,t.lastChangedTime),r.dispatchEvent({type:"planechanged",data:t}))}else y.add(t),x.set(t,n.lastChangedTime),r.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(e){L=e},this.dispose=function(){}}}function Ma(e,t){function r(e,t){!0===e.matrixAutoUpdate&&e.updateMatrix(),t.value.copy(e.matrix)}function n(n,i){n.opacity.value=i.opacity,i.color&&n.diffuse.value.copy(i.color),i.emissive&&n.emissive.value.copy(i.emissive).multiplyScalar(i.emissiveIntensity),i.map&&(n.map.value=i.map,r(i.map,n.mapTransform)),i.alphaMap&&(n.alphaMap.value=i.alphaMap,r(i.alphaMap,n.alphaMapTransform)),i.bumpMap&&(n.bumpMap.value=i.bumpMap,r(i.bumpMap,n.bumpMapTransform),n.bumpScale.value=i.bumpScale,i.side===o&&(n.bumpScale.value*=-1)),i.normalMap&&(n.normalMap.value=i.normalMap,r(i.normalMap,n.normalMapTransform),n.normalScale.value.copy(i.normalScale),i.side===o&&n.normalScale.value.negate()),i.displacementMap&&(n.displacementMap.value=i.displacementMap,r(i.displacementMap,n.displacementMapTransform),n.displacementScale.value=i.displacementScale,n.displacementBias.value=i.displacementBias),i.emissiveMap&&(n.emissiveMap.value=i.emissiveMap,r(i.emissiveMap,n.emissiveMapTransform)),i.specularMap&&(n.specularMap.value=i.specularMap,r(i.specularMap,n.specularMapTransform)),i.alphaTest>0&&(n.alphaTest.value=i.alphaTest);const s=t.get(i).envMap;if(s&&(n.envMap.value=s,n.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,n.reflectivity.value=i.reflectivity,n.ior.value=i.ior,n.refractionRatio.value=i.refractionRatio),i.lightMap){n.lightMap.value=i.lightMap;const t=!0===e.useLegacyLights?Math.PI:1;n.lightMapIntensity.value=i.lightMapIntensity*t,r(i.lightMap,n.lightMapTransform)}i.aoMap&&(n.aoMap.value=i.aoMap,n.aoMapIntensity.value=i.aoMapIntensity,r(i.aoMap,n.aoMapTransform))}return{refreshFogUniforms:function(t,r){r.color.getRGB(t.fogColor.value,Dn(e)),r.isFog?(t.fogNear.value=r.near,t.fogFar.value=r.far):r.isFogExp2&&(t.fogDensity.value=r.density)},refreshMaterialUniforms:function(e,i,s,a,l){i.isMeshBasicMaterial||i.isMeshLambertMaterial?n(e,i):i.isMeshToonMaterial?(n(e,i),function(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,i)):i.isMeshPhongMaterial?(n(e,i),function(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,i)):i.isMeshStandardMaterial?(n(e,i),function(e,n){e.metalness.value=n.metalness,n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap,r(n.metalnessMap,e.metalnessMapTransform));e.roughness.value=n.roughness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap,r(n.roughnessMap,e.roughnessMapTransform));const i=t.get(n).envMap;i&&(e.envMapIntensity.value=n.envMapIntensity)}(e,i),i.isMeshPhysicalMaterial&&function(e,t,n){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap,r(t.sheenColorMap,e.sheenColorMapTransform)),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap,r(t.sheenRoughnessMap,e.sheenRoughnessMapTransform)));t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap,r(t.clearcoatMap,e.clearcoatMapTransform)),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap,r(t.clearcoatRoughnessMap,e.clearcoatRoughnessMapTransform)),t.clearcoatNormalMap&&(e.clearcoatNormalMap.value=t.clearcoatNormalMap,r(t.clearcoatNormalMap,e.clearcoatNormalMapTransform),e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),t.side===o&&e.clearcoatNormalScale.value.negate()));t.iridescence>0&&(e.iridescence.value=t.iridescence,e.iridescenceIOR.value=t.iridescenceIOR,e.iridescenceThicknessMinimum.value=t.iridescenceThicknessRange[0],e.iridescenceThicknessMaximum.value=t.iridescenceThicknessRange[1],t.iridescenceMap&&(e.iridescenceMap.value=t.iridescenceMap,r(t.iridescenceMap,e.iridescenceMapTransform)),t.iridescenceThicknessMap&&(e.iridescenceThicknessMap.value=t.iridescenceThicknessMap,r(t.iridescenceThicknessMap,e.iridescenceThicknessMapTransform)));t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=n.texture,e.transmissionSamplerSize.value.set(n.width,n.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap,r(t.transmissionMap,e.transmissionMapTransform)),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap,r(t.thicknessMap,e.thicknessMapTransform)),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor));e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap,r(t.specularColorMap,e.specularColorMapTransform));t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap,r(t.specularIntensityMap,e.specularIntensityMapTransform))}(e,i,l)):i.isMeshMatcapMaterial?(n(e,i),function(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,i)):i.isMeshDepthMaterial?n(e,i):i.isMeshDistanceMaterial?(n(e,i),function(e,r){const n=t.get(r).light;e.referencePosition.value.setFromMatrixPosition(n.matrixWorld),e.nearDistance.value=n.shadow.camera.near,e.farDistance.value=n.shadow.camera.far}(e,i)):i.isMeshNormalMaterial?n(e,i):i.isLineBasicMaterial?(function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,t.map&&(e.map.value=t.map,r(t.map,e.mapTransform))}(e,i),i.isLineDashedMaterial&&function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,i)):i.isPointsMaterial?function(e,t,n,i){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*n,e.scale.value=.5*i,t.map&&(e.map.value=t.map,r(t.map,e.uvTransform));t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,i,s,a):i.isSpriteMaterial?function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map,r(t.map,e.mapTransform));t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,i):i.isShadowMaterial?(e.color.value.copy(i.color),e.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function wa(e,t,r,n){let i={},s={},a=[];const o=r.isWebGL2?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(e,t,r){const n=e.value;if(void 0===r[t]){if("number"==typeof n)r[t]=n;else{const e=Array.isArray(n)?n:[n],i=[];for(let t=0;t0){i=r%n;0!==i&&n-i-a.boundary<0&&(r+=n-i,e.__offset=r)}r+=a.storage}i=r%n,i>0&&(r+=n-i);e.__size=r,e.__cache={}}(r),d=function(t){const r=function(){for(let e=0;e0&&function(e,t,r,n){if(null===W){const e=Z.isWebGL2;W=new vt(1024,1024,{generateMipmaps:!0,type:J.has("EXT_color_buffer_half_float")?O:D,minFilter:P,samples:e&&!0===c?4:0})}const i=x.getRenderTarget();x.setRenderTarget(W),x.clear();const s=x.toneMapping;x.toneMapping=d,Oe(e,r,n),re.updateMultisampleRenderTarget(W),re.updateRenderTargetMipmap(W);let a=!1;for(let l=0,c=t.length;l0&&Oe(i,t,r),s.length>0&&Oe(s,t,r),a.length>0&&Oe(a,t,r),$.buffers.depth.setTest(!0),$.buffers.depth.setMask(!0),$.buffers.color.setMask(!0),$.setPolygonOffset(!1)}function Oe(e,t,r){const n=!0===t.isScene?t.overrideMaterial:null;for(let i=0,s=e.length;i0?y[y.length-1]:null,v.pop(),g=v.length>0?v[v.length-1]:null},this.getActiveCubeFace=function(){return E},this.getActiveMipmapLevel=function(){return _},this.getRenderTarget=function(){return S},this.setRenderTargetTextures=function(e,t,r){te.get(e.texture).__webglTexture=t,te.get(e.depthTexture).__webglTexture=r;const n=te.get(e);n.__hasExternalTextures=!0,n.__hasExternalTextures&&(n.__autoAllocateDepthBuffer=void 0===r,n.__autoAllocateDepthBuffer||!0===J.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),n.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){const r=te.get(e);r.__webglFramebuffer=t,r.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,r=0){S=e,E=t,_=r;let n=!0,i=null,s=!1,a=!1;if(e){const r=te.get(e);void 0!==r.__useDefaultFramebuffer?($.bindFramebuffer(be.FRAMEBUFFER,null),n=!1):void 0===r.__webglFramebuffer?re.setupRenderTarget(e):r.__hasExternalTextures&&re.rebindTextures(e,te.get(e.texture).__webglTexture,te.get(e.depthTexture).__webglTexture);const o=e.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=te.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(i=l[t],s=!0):i=Z.isWebGL2&&e.samples>0&&!1===re.useMultisampledRTT(e)?te.get(e).__webglMultisampledFramebuffer:l,C.copy(e.viewport),T.copy(e.scissor),I=e.scissorTest}else C.copy(G).multiplyScalar(L).floor(),T.copy(z).multiplyScalar(L).floor(),I=Q;if($.bindFramebuffer(be.FRAMEBUFFER,i)&&Z.drawBuffers&&n&&$.drawBuffers(e,i),$.viewport(C),$.scissor(T),$.setScissorTest(I),s){const n=te.get(e.texture);be.framebufferTexture2D(be.FRAMEBUFFER,be.COLOR_ATTACHMENT0,be.TEXTURE_CUBE_MAP_POSITIVE_X+t,n.__webglTexture,r)}else if(a){const n=te.get(e.texture),i=t||0;be.framebufferTextureLayer(be.FRAMEBUFFER,be.COLOR_ATTACHMENT0,n.__webglTexture,r||0,i)}M=-1},this.readRenderTargetPixels=function(e,t,r,n,i,s,a){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=te.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){$.bindFramebuffer(be.FRAMEBUFFER,o);try{const a=e.texture,o=a.format,l=a.type;if(o!==k&&ve.convert(o)!==be.getParameter(be.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===O&&(J.has("EXT_color_buffer_half_float")||Z.isWebGL2&&J.has("EXT_color_buffer_float"));if(!(l===D||ve.convert(l)===be.getParameter(be.IMPLEMENTATION_COLOR_READ_TYPE)||l===U&&(Z.isWebGL2||J.has("OES_texture_float")||J.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-n&&r>=0&&r<=e.height-i&&be.readPixels(t,r,n,i,ve.convert(o),ve.convert(l),s)}finally{const e=null!==S?te.get(S).__webglFramebuffer:null;$.bindFramebuffer(be.FRAMEBUFFER,e)}}},this.copyFramebufferToTexture=function(e,t,r=0){const n=Math.pow(2,-r),i=Math.floor(t.image.width*n),s=Math.floor(t.image.height*n);re.setTexture2D(t,0),be.copyTexSubImage2D(be.TEXTURE_2D,r,0,0,e.x,e.y,i,s),$.unbindTexture()},this.copyTextureToTexture=function(e,t,r,n=0){const i=t.image.width,s=t.image.height,a=ve.convert(r.format),o=ve.convert(r.type);re.setTexture2D(r,0),be.pixelStorei(be.UNPACK_FLIP_Y_WEBGL,r.flipY),be.pixelStorei(be.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),be.pixelStorei(be.UNPACK_ALIGNMENT,r.unpackAlignment),t.isDataTexture?be.texSubImage2D(be.TEXTURE_2D,n,e.x,e.y,i,s,a,o,t.image.data):t.isCompressedTexture?be.compressedTexSubImage2D(be.TEXTURE_2D,n,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,a,t.mipmaps[0].data):be.texSubImage2D(be.TEXTURE_2D,n,e.x,e.y,a,o,t.image),0===n&&r.generateMipmaps&&be.generateMipmap(be.TEXTURE_2D),$.unbindTexture()},this.copyTextureToTexture3D=function(e,t,r,n,i=0){if(x.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=e.max.x-e.min.x+1,a=e.max.y-e.min.y+1,o=e.max.z-e.min.z+1,l=ve.convert(n.format),c=ve.convert(n.type);let h;if(n.isData3DTexture)re.setTexture3D(n,0),h=be.TEXTURE_3D;else{if(!n.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");re.setTexture2DArray(n,0),h=be.TEXTURE_2D_ARRAY}be.pixelStorei(be.UNPACK_FLIP_Y_WEBGL,n.flipY),be.pixelStorei(be.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),be.pixelStorei(be.UNPACK_ALIGNMENT,n.unpackAlignment);const u=be.getParameter(be.UNPACK_ROW_LENGTH),d=be.getParameter(be.UNPACK_IMAGE_HEIGHT),p=be.getParameter(be.UNPACK_SKIP_PIXELS),f=be.getParameter(be.UNPACK_SKIP_ROWS),m=be.getParameter(be.UNPACK_SKIP_IMAGES),g=r.isCompressedTexture?r.mipmaps[0]:r.image;be.pixelStorei(be.UNPACK_ROW_LENGTH,g.width),be.pixelStorei(be.UNPACK_IMAGE_HEIGHT,g.height),be.pixelStorei(be.UNPACK_SKIP_PIXELS,e.min.x),be.pixelStorei(be.UNPACK_SKIP_ROWS,e.min.y),be.pixelStorei(be.UNPACK_SKIP_IMAGES,e.min.z),r.isDataTexture||r.isData3DTexture?be.texSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,c,g.data):r.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),be.compressedTexSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,g.data)):be.texSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,c,g),be.pixelStorei(be.UNPACK_ROW_LENGTH,u),be.pixelStorei(be.UNPACK_IMAGE_HEIGHT,d),be.pixelStorei(be.UNPACK_SKIP_PIXELS,p),be.pixelStorei(be.UNPACK_SKIP_ROWS,f),be.pixelStorei(be.UNPACK_SKIP_IMAGES,m),0===i&&n.generateMipmaps&&be.generateMipmap(h),$.unbindTexture()},this.initTexture=function(e){e.isCubeTexture?re.setTextureCube(e,0):e.isData3DTexture?re.setTexture3D(e,0):e.isDataArrayTexture||e.isCompressedArrayTexture?re.setTexture2DArray(e,0):re.setTexture2D(e,0),$.unbindTexture()},this.resetState=function(){E=0,_=0,S=null,$.reset(),ye.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Ce?Me:Se}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===Me?Ce:Te}}class Ia extends Ta{}Ia.prototype.isWebGL1Renderer=!0;class Ba{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Qr(e),this.density=t}clone(){return new Ba(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Ra{constructor(e,t=1,r=1e3){this.isFog=!0,this.name="",this.color=new Qr(e),this.near=t,this.far=r}clone(){return new Ra(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Pa extends _r{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(e){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=e}}class Da{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=Re,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=ke()}onUploadCallback(){}set needsUpdate(e){!0===e&&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,r){e*=this.stride,r*=t.stride;for(let n=0,i=this.stride;ne.far||t.push({distance:o,point:Na.clone(),uv:Fr.getInterpolation(Na,Ha,ja,Wa,Xa,Ya,qa,new qe),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function Ja(e,t,r,n,i,s){za.subVectors(e,r).addScalar(.5).multiply(n),void 0!==i?(Qa.x=s*za.x-i*za.y,Qa.y=i*za.x+s*za.y):Qa.copy(za),e.copy(t),e.x+=Qa.x,e.y+=Qa.y,e.applyMatrix4(Va)}const Za=new Et,$a=new Et;class eo extends _r{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let r=0,n=t.length;r0){let r,n;for(r=1,n=t.length;r0){Za.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Za);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Za.setFromMatrixPosition(e.matrixWorld),$a.setFromMatrixPosition(this.matrixWorld);const r=Za.distanceTo($a)/e.zoom;let n,i;for(t[0].object.visible=!0,n=1,i=t.length;n=e))break;t[n-1].object.visible=!1,t[n].object.visible=!0}for(this._currentLevel=n-1;no)continue;u.applyMatrix4(this.matrixWorld);const s=e.ray.origin.distanceTo(u);se.far||t.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:r,face:null,faceIndex:null,object:this})}}else{for(let r=Math.max(0,s.start),n=Math.min(f.count,s.start+s.count)-1;ro)continue;u.applyMatrix4(this.matrixWorld);const n=e.ray.origin.distanceTo(u);ne.far||t.push({distance:n,point:h.clone().applyMatrix4(this.matrixWorld),index:r,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const r=e[t[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=r.length;e0){const r=e[t[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=r.length;ei.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:r,index:t,face:null,object:a})}}class zo extends gt{constructor(e,t,r,n,i,s,a,o,l,c,h,u){super(null,s,a,o,l,c,n,i,h,u),this.isCompressedTexture=!0,this.image={width:t,height:r},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class Qo{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const r=this.getUtoTmapping(e);return this.getPoint(r,t)}getPoints(e=5){const t=[];for(let r=0;r<=e;r++)t.push(this.getPoint(r/e));return t}getSpacedPoints(e=5){const t=[];for(let r=0;r<=e;r++)t.push(this.getPointAt(r/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 r,n=this.getPoint(0),i=0;t.push(0);for(let s=1;s<=e;s++)r=this.getPoint(s/e),i+=r.distanceTo(n),t.push(i),n=r;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const r=this.getLengths();let n=0;const i=r.length;let s;s=t||e*r[i-1];let a,o=0,l=i-1;for(;o<=l;)if(n=Math.floor(o+(l-o)/2),a=r[n]-s,a<0)o=n+1;else{if(!(a>0)){l=n;break}l=n-1}if(n=l,r[n]===s)return n/(i-1);const c=r[n];return(n+(s-c)/(r[n+1]-c))/(i-1)}getTangent(e,t){const r=1e-4;let n=e-r,i=e+r;n<0&&(n=0),i>1&&(i=1);const s=this.getPoint(n),a=this.getPoint(i),o=t||(s.isVector2?new qe:new Et);return o.copy(a).sub(s).normalize(),o}getTangentAt(e,t){const r=this.getUtoTmapping(e);return this.getTangent(r,t)}computeFrenetFrames(e,t){const r=new Et,n=[],i=[],s=[],a=new Et,o=new Zt;for(let d=0;d<=e;d++){const t=d/e;n[d]=this.getTangentAt(t,new Et)}i[0]=new Et,s[0]=new Et;let l=Number.MAX_VALUE;const c=Math.abs(n[0].x),h=Math.abs(n[0].y),u=Math.abs(n[0].z);c<=l&&(l=c,r.set(1,0,0)),h<=l&&(l=h,r.set(0,1,0)),u<=l&&r.set(0,0,1),a.crossVectors(n[0],r).normalize(),i[0].crossVectors(n[0],a),s[0].crossVectors(n[0],i[0]);for(let d=1;d<=e;d++){if(i[d]=i[d-1].clone(),s[d]=s[d-1].clone(),a.crossVectors(n[d-1],n[d]),a.length()>Number.EPSILON){a.normalize();const e=Math.acos(Ge(n[d-1].dot(n[d]),-1,1));i[d].applyMatrix4(o.makeRotationAxis(a,e))}s[d].crossVectors(n[d],i[d])}if(!0===t){let t=Math.acos(Ge(i[0].dot(i[e]),-1,1));t/=e,n[0].dot(a.crossVectors(i[0],i[e]))>0&&(t=-t);for(let r=1;r<=e;r++)i[r].applyMatrix4(o.makeRotationAxis(n[r],t*r)),s[r].crossVectors(n[r],i[r])}return{tangents:n,normals:i,binormals:s}}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 Vo extends Qo{constructor(e=0,t=0,r=1,n=1,i=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=r,this.yRadius=n,this.aStartAngle=i,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(e,t){const r=t||new qe,n=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const s=Math.abs(i)n;)i-=n;i0?0:(Math.floor(Math.abs(l)/i)+1)*i:0===c&&l===i-1&&(l=i-2,c=1),this.closed||l>0?a=n[(l-1)%i]:(Wo.subVectors(n[0],n[1]).add(n[0]),a=Wo);const h=n[l%i],u=n[(l+1)%i];if(this.closed||l+2n.length-2?n.length-1:s+1],h=n[s>n.length-3?n.length-1:s+2];return r.set(Jo(a,o.x,l.x,c.x,h.x),Jo(a,o.y,l.y,c.y,h.y)),r}copy(e){super.copy(e),this.points=[];for(let t=0,r=e.points.length;t=r){const e=n[i]-r,s=this.curves[i],a=s.getLength(),o=0===a?0:1-e/a;return s.getPointAt(o,t)}i++}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 r=0,n=this.curves.length;r1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,r=e.curves.length;t0){const e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),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 hl extends hn{constructor(e=[new qe(0,-.5),new qe(.5,0),new qe(0,.5)],t=12,r=0,n=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:r,phiLength:n},t=Math.floor(t),n=Ge(n,0,2*Math.PI);const i=[],s=[],a=[],o=[],l=[],c=1/t,h=new Et,u=new qe,d=new Et,p=new Et,f=new Et;let m=0,g=0;for(let A=0;A<=e.length-1;A++)switch(A){case 0:m=e[A+1].x-e[A].x,g=e[A+1].y-e[A].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[A+1].x-e[A].x,g=e[A+1].y-e[A].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let A=0;A<=t;A++){const i=r+A*c*n,d=Math.sin(i),p=Math.cos(i);for(let r=0;r<=e.length-1;r++){h.x=e[r].x*d,h.y=e[r].y,h.z=e[r].x*p,s.push(h.x,h.y,h.z),u.x=A/t,u.y=r/(e.length-1),a.push(u.x,u.y);const n=o[3*r+0]*d,i=o[3*r+1],c=o[3*r+0]*p;l.push(n,i,c)}}for(let A=0;A0&&A(!0),t>0&&A(!1)),this.setIndex(c),this.setAttribute("position",new tn(h,3)),this.setAttribute("normal",new tn(u,3)),this.setAttribute("uv",new tn(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new pl(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class fl extends pl{constructor(e=1,t=1,r=32,n=1,i=!1,s=0,a=2*Math.PI){super(0,e,t,r,n,i,s,a),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:s,thetaLength:a}}static fromJSON(e){return new fl(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class ml extends hn{constructor(e=[],t=[],r=1,n=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:r,detail:n};const i=[],s=[];function a(e,t,r,n){const i=n+1,s=[];for(let a=0;a<=i;a++){s[a]=[];const n=e.clone().lerp(r,a/i),o=t.clone().lerp(r,a/i),l=i-a;for(let e=0;e<=l;e++)s[a][e]=0===e&&a===i?n:n.clone().lerp(o,e/l)}for(let a=0;a.9&&a<.1&&(t<.2&&(s[e+0]+=1),r<.2&&(s[e+2]+=1),n<.2&&(s[e+4]+=1))}}()}(),this.setAttribute("position",new tn(i,3)),this.setAttribute("normal",new tn(i.slice(),3)),this.setAttribute("uv",new tn(s,2)),0===n?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new ml(e.vertices,e.indices,e.radius,e.details)}}class gl extends ml{constructor(e=1,t=0){const r=(1+Math.sqrt(5))/2,n=1/r;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new gl(e.radius,e.detail)}}const Al=new Et,vl=new Et,yl=new Et,xl=new Fr;class bl extends hn{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const r=4,n=Math.pow(10,r),i=Math.cos(Oe*t),s=e.getIndex(),a=e.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let e=0;e80*r){o=c=e[0],l=h=e[1];for(let t=r;tc&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return wl(s,a,r,o,l,p,0),a};function Sl(e,t,r,n,i){let s,a;if(i===function(e,t,r,n){let i=0;for(let s=t,a=r-n;s0)for(s=t;s=t;s-=n)a=jl(s,e[s],e[s+1],a);return a&&kl(a,a.next)&&(Wl(a),a=a.next),a}function Ml(e,t){if(!e)return e;t||(t=e);let r,n=e;do{if(r=!1,n.steiner||!kl(n,n.next)&&0!==Nl(n.prev,n,n.next))n=n.next;else{if(Wl(n),n=t=n.prev,n===n.next)break;r=!0}}while(r||n!==t);return t}function wl(e,t,r,n,i,s,a){if(!e)return;!a&&s&&function(e,t,r,n){let i=e;do{0===i.z&&(i.z=Ll(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){let t,r,n,i,s,a,o,l,c=1;do{for(r=e,e=null,s=null,a=0;r;){for(a++,n=r,o=0,t=0;t0||l>0&&n;)0!==o&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,o--):(i=n,n=n.nextZ,l--),s?s.nextZ=i:e=i,i.prevZ=s,s=i;r=n}s.nextZ=null,c*=2}while(a>1)}(i)}(e,n,i,s);let o,l,c=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,s?Tl(e,n,i,s):Cl(e))t.push(o.i/r|0),t.push(e.i/r|0),t.push(l.i/r|0),Wl(e),e=l.next,c=l.next;else if((e=l)===c){a?1===a?wl(e=Il(Ml(e),t,r),t,r,n,i,s,2):2===a&&Bl(e,t,r,n,i,s):wl(Ml(e),t,r,n,i,s,1);break}}function Cl(e){const t=e.prev,r=e,n=e.next;if(Nl(t,r,n)>=0)return!1;const i=t.x,s=r.x,a=n.x,o=t.y,l=r.y,c=n.y,h=is?i>a?i:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let f=n.next;for(;f!==t;){if(f.x>=h&&f.x<=d&&f.y>=u&&f.y<=p&&Ul(i,o,s,l,a,c,f.x,f.y)&&Nl(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function Tl(e,t,r,n){const i=e.prev,s=e,a=e.next;if(Nl(i,s,a)>=0)return!1;const o=i.x,l=s.x,c=a.x,h=i.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,A=Ll(p,f,t,r,n),v=Ll(m,g,t,r,n);let y=e.prevZ,x=e.nextZ;for(;y&&y.z>=A&&x&&x.z<=v;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==i&&y!==a&&Ul(o,h,l,u,c,d,y.x,y.y)&&Nl(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==i&&x!==a&&Ul(o,h,l,u,c,d,x.x,x.y)&&Nl(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;y&&y.z>=A;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==i&&y!==a&&Ul(o,h,l,u,c,d,y.x,y.y)&&Nl(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;x&&x.z<=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==i&&x!==a&&Ul(o,h,l,u,c,d,x.x,x.y)&&Nl(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Il(e,t,r){let n=e;do{const i=n.prev,s=n.next.next;!kl(i,s)&&Gl(i,n,n.next,s)&&Vl(i,s)&&Vl(s,i)&&(t.push(i.i/r|0),t.push(n.i/r|0),t.push(s.i/r|0),Wl(n),Wl(n.next),n=e=s),n=n.next}while(n!==e);return Ml(n)}function Bl(e,t,r,n,i,s){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&Ol(a,e)){let o=Hl(a,e);return a=Ml(a,a.next),o=Ml(o,o.next),wl(a,t,r,n,i,s,0),void wl(o,t,r,n,i,s,0)}e=e.next}a=a.next}while(a!==e)}function Rl(e,t){return e.x-t.x}function Pl(e,t){const r=function(e,t){let r,n=t,i=-1/0;const s=e.x,a=e.y;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){const e=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=s&&e>i&&(i=e,r=n.x=n.x&&n.x>=l&&s!==n.x&&Ul(ar.x||n.x===r.x&&Dl(r,n)))&&(r=n,u=h)),n=n.next}while(n!==o);return r}(e,t);if(!r)return t;const n=Hl(r,e);return Ml(n,n.next),Ml(r,r.next)}function Dl(e,t){return Nl(e.prev,e,t.prev)<0&&Nl(t.next,e,e.next)<0}function Ll(e,t,r,n,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Fl(e){let t=e,r=e;do{(t.x=(e-a)*(s-o)&&(e-a)*(n-o)>=(r-a)*(t-o)&&(r-a)*(s-o)>=(i-a)*(n-o)}function Ol(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){let r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&Gl(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}(e,t)&&(Vl(e,t)&&Vl(t,e)&&function(e,t){let r=e,n=!1;const i=(e.x+t.x)/2,s=(e.y+t.y)/2;do{r.y>s!=r.next.y>s&&r.next.y!==r.y&&i<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}(e,t)&&(Nl(e.prev,e,t.prev)||Nl(e,t.prev,t))||kl(e,t)&&Nl(e.prev,e,e.next)>0&&Nl(t.prev,t,t.next)>0)}function Nl(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function kl(e,t){return e.x===t.x&&e.y===t.y}function Gl(e,t,r,n){const i=Ql(Nl(e,t,r)),s=Ql(Nl(e,t,n)),a=Ql(Nl(r,n,e)),o=Ql(Nl(r,n,t));return i!==s&&a!==o||(!(0!==i||!zl(e,r,t))||(!(0!==s||!zl(e,n,t))||(!(0!==a||!zl(r,e,n))||!(0!==o||!zl(r,t,n)))))}function zl(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function Ql(e){return e>0?1:e<0?-1:0}function Vl(e,t){return Nl(e.prev,e,e.next)<0?Nl(e,t,e.next)>=0&&Nl(e,e.prev,t)>=0:Nl(e,t,e.prev)<0||Nl(e,e.next,t)<0}function Hl(e,t){const r=new Xl(e.i,e.x,e.y),n=new Xl(t.i,t.x,t.y),i=e.next,s=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function jl(e,t,r,n){const i=new Xl(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Wl(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Xl(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Yl{static area(e){const t=e.length;let r=0;for(let n=t-1,i=0;i2&&e[t-1].equals(e[0])&&e.pop()}function Kl(e,t){for(let r=0;rNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=t.x-o/u,f=t.y+a/u,m=((r.x-c/d-p)*c-(r.y+l/d-f)*l)/(a*c-o*l);n=p+a*m-e.x,i=f+o*m-e.y;const g=n*n+i*i;if(g<=2)return new qe(n,i);s=Math.sqrt(g/2)}else{let e=!1;a>Number.EPSILON?l>Number.EPSILON&&(e=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(c)&&(e=!0),e?(n=-o,i=a,s=Math.sqrt(h)):(n=a,i=o,s=Math.sqrt(h/2))}return new qe(n/s,i/s)}const R=[];for(let t=0,r=w.length,n=r-1,i=t+1;t=0;t--){const e=t/p,r=h*Math.cos(e*Math.PI/2),n=u*Math.sin(e*Math.PI/2)+d;for(let t=0,i=w.length;t=0;){const n=r;let i=r-1;i<0&&(i=e.length-1);for(let e=0,r=o+2*p;e0)&&d.push(t,n,a),(g!==r-1||o0!=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 iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=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.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,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}}class mc extends Or{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Qr(16777215),this.specular=new Qr(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=c,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(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.fog=e.fog,this}}class gc extends Or{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Qr(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(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.fog=e.fog,this}}class Ac extends Or{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=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}}class vc extends Or{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Qr(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Qr(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=c,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(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.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.fog=e.fog,this}}class yc extends Or{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Qr(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new qe(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,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.fog=e.fog,this}}class xc extends _o{constructor(e){super(),this.isLineDashedMaterial=!0,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}}function bc(e,t,r){return _c(e)?new e.constructor(e.subarray(t,void 0!==r?r:e.length)):e.slice(t,r)}function Ec(e,t,r){return!e||!r&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)}function _c(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Sc(e){const t=e.length,r=new Array(t);for(let n=0;n!==t;++n)r[n]=n;return r.sort((function(t,r){return e[t]-e[r]})),r}function Mc(e,t,r){const n=e.length,i=new e.constructor(n);for(let s=0,a=0;a!==n;++s){const n=r[s]*t;for(let r=0;r!==t;++r)i[a++]=e[n+r]}return i}function wc(e,t,r,n){let i=1,s=e[0];for(;void 0!==s&&void 0===s[n];)s=e[i++];if(void 0===s)return;let a=s[n];if(void 0!==a)if(Array.isArray(a))do{a=s[n],void 0!==a&&(t.push(s.time),r.push.apply(r,a)),s=e[i++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[n],void 0!==a&&(t.push(s.time),a.toArray(r,r.length)),s=e[i++]}while(void 0!==s);else do{a=s[n],void 0!==a&&(t.push(s.time),r.push(a)),s=e[i++]}while(void 0!==s)}const Cc={arraySlice:bc,convertArray:Ec,isTypedArray:_c,getKeyframeOrder:Sc,sortedArray:Mc,flattenJSON:wc,subclip:function(e,t,r,n,i=30){const s=e.clone();s.name=t;const a=[];for(let l=0;l=n)){o.push(e.times[s]);for(let r=0;rs.tracks[l].times[0]&&(o=s.tracks[l].times[0]);for(let l=0;l=t.times[u]){const e=u*l+o,r=e+l-o;d=bc(t.values,e,r)}else{const e=t.createInterpolant(),r=o,n=l-o;e.evaluate(s),d=bc(e.resultBuffer,r,n)}if("quaternion"===n){(new bt).fromArray(d).normalize().conjugate().toArray(d)}const p=i.times.length;for(let e=0;e=i)break e;{const a=t[1];e=i)break t}s=r,r=0}}for(;r>>1;et;)--s;if(++s,0!==i||s!==n){i>=s&&(s=Math.max(s,1),i=s-1);const e=this.getValueSize();this.times=bc(r,i,s),this.values=bc(this.values,i*e,s*e)}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 r=this.times,n=this.values,i=r.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let a=0;a!==i;a++){const t=r[a];if("number"==typeof t&&isNaN(t)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,t),e=!1;break}if(null!==s&&s>t){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,t,s),e=!1;break}s=t}if(void 0!==n&&_c(n))for(let a=0,o=n.length;a!==o;++a){const t=n[a];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,t),e=!1;break}}return e}optimize(){const e=bc(this.times),t=bc(this.values),r=this.getValueSize(),n=this.getInterpolation()===ve,i=e.length-1;let s=1;for(let a=1;a0){e[s]=e[i];for(let e=i*r,n=s*r,a=0;a!==r;++a)t[n+a]=t[e+a];++s}return s!==e.length?(this.times=bc(e,0,s),this.values=bc(t,0,s*r)):(this.times=e,this.values=t),this}clone(){const e=bc(this.times,0),t=bc(this.values,0),r=new(0,this.constructor)(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}Pc.prototype.TimeBufferType=Float32Array,Pc.prototype.ValueBufferType=Float32Array,Pc.prototype.DefaultInterpolation=Ae;class Dc extends Pc{}Dc.prototype.ValueTypeName="bool",Dc.prototype.ValueBufferType=Array,Dc.prototype.DefaultInterpolation=ge,Dc.prototype.InterpolantFactoryMethodLinear=void 0,Dc.prototype.InterpolantFactoryMethodSmooth=void 0;class Lc extends Pc{}Lc.prototype.ValueTypeName="color";class Fc extends Pc{}Fc.prototype.ValueTypeName="number";class Uc extends Tc{constructor(e,t,r,n){super(e,t,r,n)}interpolate_(e,t,r,n){const i=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(r-t)/(n-t);let l=e*a;for(let c=l+a;l!==c;l+=4)bt.slerpFlat(i,0,s,l-a,s,l,o);return i}}class Oc extends Pc{InterpolantFactoryMethodLinear(e){return new Uc(this.times,this.values,this.getValueSize(),e)}}Oc.prototype.ValueTypeName="quaternion",Oc.prototype.DefaultInterpolation=Ae,Oc.prototype.InterpolantFactoryMethodSmooth=void 0;class Nc extends Pc{}Nc.prototype.ValueTypeName="string",Nc.prototype.ValueBufferType=Array,Nc.prototype.DefaultInterpolation=ge,Nc.prototype.InterpolantFactoryMethodLinear=void 0,Nc.prototype.InterpolantFactoryMethodSmooth=void 0;class kc extends Pc{}kc.prototype.ValueTypeName="vector";class Gc{constructor(e,t=-1,r,n=2500){this.name=e,this.tracks=r,this.duration=t,this.blendMode=n,this.uuid=ke(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],r=e.tracks,n=1/(e.fps||1);for(let s=0,a=r.length;s!==a;++s)t.push(zc(r[s]).scale(n));const i=new this(e.name,e.duration,t,e.blendMode);return i.uuid=e.uuid,i}static toJSON(e){const t=[],r=e.tracks,n={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let i=0,s=r.length;i!==s;++i)t.push(Pc.toJSON(r[i]));return n}static CreateFromMorphTargetSequence(e,t,r,n){const i=t.length,s=[];for(let a=0;a1){const e=r[1];let i=n[e];i||(n[e]=i=[]),i.push(t)}}const s=[];for(const a in n)s.push(this.CreateFromMorphTargetSequence(a,n[a],t,r));return s}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const r=function(e,t,r,n,i){if(0!==r.length){const s=[],a=[];wc(r,s,a,n),0!==s.length&&i.push(new e(t,s,a))}},n=[],i=e.name||"default",s=e.fps||30,a=e.blendMode;let o=e.length||-1;const l=e.hierarchy||[];for(let c=0;c{t&&t(i),this.manager.itemEnd(e)}),0),i;if(void 0!==Wc[e])return void Wc[e].push({onLoad:t,onProgress:r,onError:n});Wc[e]=[],Wc[e].push({onLoad:t,onProgress:r,onError:n});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;const r=Wc[e],n=t.body.getReader(),i=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),s=i?parseInt(i):0,a=0!==s;let o=0;const l=new ReadableStream({start(e){!function t(){n.read().then((({done:n,value:i})=>{if(n)e.close();else{o+=i.byteLength;const n=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let e=0,t=r.length;e{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,a)));case"json":return e.json();default:if(void 0===a)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(a),r=t&&t[1]?t[1].toLowerCase():void 0,n=new TextDecoder(r);return e.arrayBuffer().then((e=>n.decode(e)))}}})).then((t=>{Qc.add(e,t);const r=Wc[e];delete Wc[e];for(let e=0,n=r.length;e{const r=Wc[e];if(void 0===r)throw this.manager.itemError(e),t;delete Wc[e];for(let e=0,n=r.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class qc extends jc{constructor(e){super(e)}load(e,t,r,n){void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const i=this,s=Qc.get(e);if(void 0!==s)return i.manager.itemStart(e),setTimeout((function(){t&&t(s),i.manager.itemEnd(e)}),0),s;const a=tt("img");function o(){c(),Qc.add(e,this),t&&t(this),i.manager.itemEnd(e)}function l(t){c(),n&&n(t),i.manager.itemError(e),i.manager.itemEnd(e)}function c(){a.removeEventListener("load",o,!1),a.removeEventListener("error",l,!1)}return a.addEventListener("load",o,!1),a.addEventListener("error",l,!1),"data:"!==e.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),i.manager.itemStart(e),a.src=e,a}}class Kc extends _r{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Qr(e),this.intensity=t}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,void 0!==this.groundColor&&(t.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(t.object.distance=this.distance),void 0!==this.angle&&(t.object.angle=this.angle),void 0!==this.decay&&(t.object.decay=this.decay),void 0!==this.penumbra&&(t.object.penumbra=this.penumbra),void 0!==this.shadow&&(t.object.shadow=this.shadow.toJSON()),t}}class Jc extends Kc{constructor(e,t,r){super(e,r),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(_r.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Qr(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}}const Zc=new Zt,$c=new Et,eh=new Et;class th{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new qe(512,512),this.map=null,this.mapPass=null,this.matrix=new Zt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Yn,this._frameExtents=new qe(1,1),this._viewportCount=1,this._viewports=[new At(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const t=this.camera,r=this.matrix;$c.setFromMatrixPosition(e.matrixWorld),t.position.copy($c),eh.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(eh),t.updateMatrixWorld(),Zc.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Zc),r.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),r.multiply(Zc)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const e={};return 0!==this.bias&&(e.bias=this.bias),0!==this.normalBias&&(e.normalBias=this.normalBias),1!==this.radius&&(e.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}class rh extends th{constructor(){super(new On(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){const t=this.camera,r=2*Ne*e.angle*this.focus,n=this.mapSize.width/this.mapSize.height,i=e.distance||t.far;r===t.fov&&n===t.aspect&&i===t.far||(t.fov=r,t.aspect=n,t.far=i,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}}class nh extends Kc{constructor(e,t,r=0,n=Math.PI/3,i=0,s=2){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(_r.DEFAULT_UP),this.updateMatrix(),this.target=new _r,this.distance=r,this.angle=n,this.penumbra=i,this.decay=s,this.map=null,this.shadow=new rh}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}const ih=new Zt,sh=new Et,ah=new Et;class oh extends th{constructor(){super(new On(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new qe(4,2),this._viewportCount=6,this._viewports=[new At(2,1,1,1),new At(0,1,1,1),new At(3,1,1,1),new At(1,1,1,1),new At(3,0,1,1),new At(1,0,1,1)],this._cubeDirections=[new Et(1,0,0),new Et(-1,0,0),new Et(0,0,1),new Et(0,0,-1),new Et(0,1,0),new Et(0,-1,0)],this._cubeUps=[new Et(0,1,0),new Et(0,1,0),new Et(0,1,0),new Et(0,1,0),new Et(0,0,1),new Et(0,0,-1)]}updateMatrices(e,t=0){const r=this.camera,n=this.matrix,i=e.distance||r.far;i!==r.far&&(r.far=i,r.updateProjectionMatrix()),sh.setFromMatrixPosition(e.matrixWorld),r.position.copy(sh),ah.copy(r.position),ah.add(this._cubeDirections[t]),r.up.copy(this._cubeUps[t]),r.lookAt(ah),r.updateMatrixWorld(),n.makeTranslation(-sh.x,-sh.y,-sh.z),ih.multiplyMatrices(r.projectionMatrix,r.matrixWorldInverse),this._frustum.setFromProjectionMatrix(ih)}}class lh extends Kc{constructor(e,t,r=0,n=2){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=r,this.decay=n,this.shadow=new oh}get power(){return 4*this.intensity*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}class ch extends th{constructor(){super(new li(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class hh extends Kc{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(_r.DEFAULT_UP),this.updateMatrix(),this.target=new _r,this.shadow=new ch}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}class uh extends Kc{constructor(e,t){super(e,t),this.isAmbientLight=!0,this.type="AmbientLight"}}class dh extends Kc{constructor(e,t,r=10,n=10){super(e,t),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=r,this.height=n}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){return super.copy(e),this.width=e.width,this.height=e.height,this}toJSON(e){const t=super.toJSON(e);return t.object.width=this.width,t.object.height=this.height,t}}class ph{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new Et)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){const r=e.x,n=e.y,i=e.z,s=this.coefficients;return t.copy(s[0]).multiplyScalar(.282095),t.addScaledVector(s[1],.488603*n),t.addScaledVector(s[2],.488603*i),t.addScaledVector(s[3],.488603*r),t.addScaledVector(s[4],r*n*1.092548),t.addScaledVector(s[5],n*i*1.092548),t.addScaledVector(s[6],.315392*(3*i*i-1)),t.addScaledVector(s[7],r*i*1.092548),t.addScaledVector(s[8],.546274*(r*r-n*n)),t}getIrradianceAt(e,t){const r=e.x,n=e.y,i=e.z,s=this.coefficients;return t.copy(s[0]).multiplyScalar(.886227),t.addScaledVector(s[1],1.023328*n),t.addScaledVector(s[2],1.023328*i),t.addScaledVector(s[3],1.023328*r),t.addScaledVector(s[4],.858086*r*n),t.addScaledVector(s[5],.858086*n*i),t.addScaledVector(s[6],.743125*i*i-.247708),t.addScaledVector(s[7],.858086*r*i),t.addScaledVector(s[8],.429043*(r*r-n*n)),t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let r=0;r<9;r++)this.coefficients[r].addScaledVector(e.coefficients[r],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let r=0;r<9;r++)this.coefficients[r].lerp(e.coefficients[r],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0}copy(e){return this.set(e.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(e,t=0){const r=this.coefficients;for(let n=0;n<9;n++)r[n].fromArray(e,t+3*n);return this}toArray(e=[],t=0){const r=this.coefficients;for(let n=0;n<9;n++)r[n].toArray(e,t+3*n);return e}static getBasisAt(e,t){const r=e.x,n=e.y,i=e.z;t[0]=.282095,t[1]=.488603*n,t[2]=.488603*i,t[3]=.488603*r,t[4]=1.092548*r*n,t[5]=1.092548*n*i,t[6]=.315392*(3*i*i-1),t[7]=1.092548*r*i,t[8]=.546274*(r*r-n*n)}}class fh extends Kc{constructor(e=new ph,t=1){super(void 0,t),this.isLightProbe=!0,this.sh=e}copy(e){return super.copy(e),this.sh.copy(e.sh),this}fromJSON(e){return this.intensity=e.intensity,this.sh.fromArray(e.sh),this}toJSON(e){const t=super.toJSON(e);return t.object.sh=this.sh.toArray(),t}}class mh extends jc{constructor(e){super(e),this.textures={}}load(e,t,r,n){const i=this,s=new Yc(i.manager);s.setPath(i.path),s.setRequestHeader(i.requestHeader),s.setWithCredentials(i.withCredentials),s.load(e,(function(r){try{t(i.parse(JSON.parse(r)))}catch(s){n?n(s):console.error(s),i.manager.itemError(e)}}),r,n)}parse(e){const t=this.textures;function r(e){return void 0===t[e]&&console.warn("THREE.MaterialLoader: Undefined texture",e),t[e]}const n=mh.createMaterialFromType(e.type);if(void 0!==e.uuid&&(n.uuid=e.uuid),void 0!==e.name&&(n.name=e.name),void 0!==e.color&&void 0!==n.color&&n.color.setHex(e.color),void 0!==e.roughness&&(n.roughness=e.roughness),void 0!==e.metalness&&(n.metalness=e.metalness),void 0!==e.sheen&&(n.sheen=e.sheen),void 0!==e.sheenColor&&(n.sheenColor=(new Qr).setHex(e.sheenColor)),void 0!==e.sheenRoughness&&(n.sheenRoughness=e.sheenRoughness),void 0!==e.emissive&&void 0!==n.emissive&&n.emissive.setHex(e.emissive),void 0!==e.specular&&void 0!==n.specular&&n.specular.setHex(e.specular),void 0!==e.specularIntensity&&(n.specularIntensity=e.specularIntensity),void 0!==e.specularColor&&void 0!==n.specularColor&&n.specularColor.setHex(e.specularColor),void 0!==e.shininess&&(n.shininess=e.shininess),void 0!==e.clearcoat&&(n.clearcoat=e.clearcoat),void 0!==e.clearcoatRoughness&&(n.clearcoatRoughness=e.clearcoatRoughness),void 0!==e.iridescence&&(n.iridescence=e.iridescence),void 0!==e.iridescenceIOR&&(n.iridescenceIOR=e.iridescenceIOR),void 0!==e.iridescenceThicknessRange&&(n.iridescenceThicknessRange=e.iridescenceThicknessRange),void 0!==e.transmission&&(n.transmission=e.transmission),void 0!==e.thickness&&(n.thickness=e.thickness),void 0!==e.attenuationDistance&&(n.attenuationDistance=e.attenuationDistance),void 0!==e.attenuationColor&&void 0!==n.attenuationColor&&n.attenuationColor.setHex(e.attenuationColor),void 0!==e.fog&&(n.fog=e.fog),void 0!==e.flatShading&&(n.flatShading=e.flatShading),void 0!==e.blending&&(n.blending=e.blending),void 0!==e.combine&&(n.combine=e.combine),void 0!==e.side&&(n.side=e.side),void 0!==e.shadowSide&&(n.shadowSide=e.shadowSide),void 0!==e.opacity&&(n.opacity=e.opacity),void 0!==e.transparent&&(n.transparent=e.transparent),void 0!==e.alphaTest&&(n.alphaTest=e.alphaTest),void 0!==e.depthTest&&(n.depthTest=e.depthTest),void 0!==e.depthWrite&&(n.depthWrite=e.depthWrite),void 0!==e.colorWrite&&(n.colorWrite=e.colorWrite),void 0!==e.stencilWrite&&(n.stencilWrite=e.stencilWrite),void 0!==e.stencilWriteMask&&(n.stencilWriteMask=e.stencilWriteMask),void 0!==e.stencilFunc&&(n.stencilFunc=e.stencilFunc),void 0!==e.stencilRef&&(n.stencilRef=e.stencilRef),void 0!==e.stencilFuncMask&&(n.stencilFuncMask=e.stencilFuncMask),void 0!==e.stencilFail&&(n.stencilFail=e.stencilFail),void 0!==e.stencilZFail&&(n.stencilZFail=e.stencilZFail),void 0!==e.stencilZPass&&(n.stencilZPass=e.stencilZPass),void 0!==e.wireframe&&(n.wireframe=e.wireframe),void 0!==e.wireframeLinewidth&&(n.wireframeLinewidth=e.wireframeLinewidth),void 0!==e.wireframeLinecap&&(n.wireframeLinecap=e.wireframeLinecap),void 0!==e.wireframeLinejoin&&(n.wireframeLinejoin=e.wireframeLinejoin),void 0!==e.rotation&&(n.rotation=e.rotation),1!==e.linewidth&&(n.linewidth=e.linewidth),void 0!==e.dashSize&&(n.dashSize=e.dashSize),void 0!==e.gapSize&&(n.gapSize=e.gapSize),void 0!==e.scale&&(n.scale=e.scale),void 0!==e.polygonOffset&&(n.polygonOffset=e.polygonOffset),void 0!==e.polygonOffsetFactor&&(n.polygonOffsetFactor=e.polygonOffsetFactor),void 0!==e.polygonOffsetUnits&&(n.polygonOffsetUnits=e.polygonOffsetUnits),void 0!==e.dithering&&(n.dithering=e.dithering),void 0!==e.alphaToCoverage&&(n.alphaToCoverage=e.alphaToCoverage),void 0!==e.premultipliedAlpha&&(n.premultipliedAlpha=e.premultipliedAlpha),void 0!==e.forceSinglePass&&(n.forceSinglePass=e.forceSinglePass),void 0!==e.visible&&(n.visible=e.visible),void 0!==e.toneMapped&&(n.toneMapped=e.toneMapped),void 0!==e.userData&&(n.userData=e.userData),void 0!==e.vertexColors&&("number"==typeof e.vertexColors?n.vertexColors=e.vertexColors>0:n.vertexColors=e.vertexColors),void 0!==e.uniforms)for(const i in e.uniforms){const t=e.uniforms[i];switch(n.uniforms[i]={},t.type){case"t":n.uniforms[i].value=r(t.value);break;case"c":n.uniforms[i].value=(new Qr).setHex(t.value);break;case"v2":n.uniforms[i].value=(new qe).fromArray(t.value);break;case"v3":n.uniforms[i].value=(new Et).fromArray(t.value);break;case"v4":n.uniforms[i].value=(new At).fromArray(t.value);break;case"m3":n.uniforms[i].value=(new Ke).fromArray(t.value);break;case"m4":n.uniforms[i].value=(new Zt).fromArray(t.value);break;default:n.uniforms[i].value=t.value}}if(void 0!==e.defines&&(n.defines=e.defines),void 0!==e.vertexShader&&(n.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(n.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(n.glslVersion=e.glslVersion),void 0!==e.extensions)for(const i in e.extensions)n.extensions[i]=e.extensions[i];if(void 0!==e.lights&&(n.lights=e.lights),void 0!==e.clipping&&(n.clipping=e.clipping),void 0!==e.size&&(n.size=e.size),void 0!==e.sizeAttenuation&&(n.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(n.map=r(e.map)),void 0!==e.matcap&&(n.matcap=r(e.matcap)),void 0!==e.alphaMap&&(n.alphaMap=r(e.alphaMap)),void 0!==e.bumpMap&&(n.bumpMap=r(e.bumpMap)),void 0!==e.bumpScale&&(n.bumpScale=e.bumpScale),void 0!==e.normalMap&&(n.normalMap=r(e.normalMap)),void 0!==e.normalMapType&&(n.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),n.normalScale=(new qe).fromArray(t)}return void 0!==e.displacementMap&&(n.displacementMap=r(e.displacementMap)),void 0!==e.displacementScale&&(n.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(n.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(n.roughnessMap=r(e.roughnessMap)),void 0!==e.metalnessMap&&(n.metalnessMap=r(e.metalnessMap)),void 0!==e.emissiveMap&&(n.emissiveMap=r(e.emissiveMap)),void 0!==e.emissiveIntensity&&(n.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(n.specularMap=r(e.specularMap)),void 0!==e.specularIntensityMap&&(n.specularIntensityMap=r(e.specularIntensityMap)),void 0!==e.specularColorMap&&(n.specularColorMap=r(e.specularColorMap)),void 0!==e.envMap&&(n.envMap=r(e.envMap)),void 0!==e.envMapIntensity&&(n.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(n.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(n.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(n.lightMap=r(e.lightMap)),void 0!==e.lightMapIntensity&&(n.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(n.aoMap=r(e.aoMap)),void 0!==e.aoMapIntensity&&(n.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(n.gradientMap=r(e.gradientMap)),void 0!==e.clearcoatMap&&(n.clearcoatMap=r(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(n.clearcoatRoughnessMap=r(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(n.clearcoatNormalMap=r(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(n.clearcoatNormalScale=(new qe).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(n.iridescenceMap=r(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(n.iridescenceThicknessMap=r(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(n.transmissionMap=r(e.transmissionMap)),void 0!==e.thicknessMap&&(n.thicknessMap=r(e.thicknessMap)),void 0!==e.sheenColorMap&&(n.sheenColorMap=r(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(n.sheenRoughnessMap=r(e.sheenRoughnessMap)),n}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:uc,SpriteMaterial:Ua,RawShaderMaterial:dc,ShaderMaterial:Fn,PointsMaterial:Lo,MeshPhysicalMaterial:fc,MeshStandardMaterial:pc,MeshPhongMaterial:mc,MeshToonMaterial:gc,MeshNormalMaterial:Ac,MeshLambertMaterial:vc,MeshDepthMaterial:pa,MeshDistanceMaterial:fa,MeshBasicMaterial:Hr,MeshMatcapMaterial:yc,LineDashedMaterial:xc,LineBasicMaterial:_o,Material:Or}[e]}}class gh{static decodeText(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let n=0,i=e.length;n0){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(r,n,this._addIndex*t,1,t);for(let o=t,l=t+t;o!==l;++o)if(r[o]!==r[o+t]){a.setValue(r,n);break}}saveOriginalState(){const e=this.binding,t=this.buffer,r=this.valueSize,n=r*this._origIndex;e.getValue(t,n);for(let i=r,s=n;i!==s;++i)t[i]=t[n+i%r];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let r=e;r=.5)for(let s=0;s!==i;++s)e[t+s]=e[r+s]}_slerp(e,t,r,n){bt.slerpFlat(e,t,e,t,e,r,n)}_slerpAdditive(e,t,r,n,i){const s=this._workIndex*i;bt.multiplyQuaternionsFlat(e,s,e,t,e,r),bt.slerpFlat(e,t,e,t,e,s,n)}_lerp(e,t,r,n,i){const s=1-n;for(let a=0;a!==i;++a){const i=t+a;e[i]=e[i]*s+e[r+a]*n}}_lerpAdditive(e,t,r,n,i){for(let s=0;s!==i;++s){const i=t+s;e[i]=e[i]+e[r+s]*n}}}const kh="\\[\\]\\.:\\/",Gh=new RegExp("["+kh+"]","g"),zh="[^"+kh+"]",Qh="[^"+kh.replace("\\.","")+"]",Vh=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",zh)+/(WCOD+)?/.source.replace("WCOD",Qh)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",zh)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",zh)+"$"),Hh=["material","materials","bones","map"];class jh{constructor(e,t,r){this.path=t,this.parsedPath=r||jh.parseTrackName(t),this.node=jh.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,r){return e&&e.isAnimationObjectGroup?new jh.Composite(e,t,r):new jh(e,t,r)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Gh,"")}static parseTrackName(e){const t=Vh.exec(e);if(null===t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const r={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},n=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==n&&-1!==n){const e=r.nodeName.substring(n+1);-1!==Hh.indexOf(e)&&(r.nodeName=r.nodeName.substring(0,n),r.objectName=e)}if(null===r.propertyName||0===r.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return r}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){const r=e.skeleton.getBoneByName(t);if(void 0!==r)return r}if(e.children){const r=function(e){for(let n=0;n0){const e=this._interpolants,t=this._propertyBindings;if(this.blendMode===_e)for(let r=0,n=e.length;r!==n;++r)e[r].evaluate(s),t[r].accumulateAdditive(a);else for(let r=0,i=e.length;r!==i;++r)e[r].evaluate(s),t[r].accumulate(n,a)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const r=this._weightInterpolant;if(null!==r){const n=r.evaluate(e)[0];t*=n,e>r.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const r=this._timeScaleInterpolant;if(null!==r){t*=r.evaluate(e)[0],e>r.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,r=this.loop;let n=this.time+e,i=this._loopCount;const s=2202===r;if(0===e)return-1===i?n:s&&1==(1&i)?t-n:n;if(2200===r){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(n>=t)n=t;else{if(!(n<0)){this.time=n;break e}n=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=n,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===i&&(e>=0?(i=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),n>=t||n<0){const r=Math.floor(n/t);n-=t*r,i+=Math.abs(r);const a=this.repetitions-i;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,n=e>0?t:0,this.time=n,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===a){const t=e<0;this._setEndings(t,!t,s)}else this._setEndings(!1,!1,s);this._loopCount=i,this.time=n,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:r})}}else this.time=n;if(s&&1==(1&i))return t-n}return n}_setEndings(e,t,r){const n=this._interpolantSettings;r?(n.endingStart=xe,n.endingEnd=xe):(n.endingStart=e?this.zeroSlopeAtStart?xe:ye:be,n.endingEnd=t?this.zeroSlopeAtEnd?xe:ye:be)}_scheduleFading(e,t,r){const n=this._mixer,i=n.time;let s=this._weightInterpolant;null===s&&(s=n._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=i,o[0]=t,a[1]=i+e,o[1]=r,this}}const Xh=new Float32Array(1);class Yh{constructor(e){this.value=e}clone(){return new Yh(void 0===this.value.clone?this.value:this.value.clone())}}let qh=0;function Kh(e,t){return e.distance-t.distance}function Jh(e,t,r,n){if(e.layers.test(t.layers)&&e.raycast(t,r),!0===n){const n=e.children;for(let e=0,i=n.length;e=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;const t=this._actions,r=this._nActiveActions,n=this.time+=e,i=Math.sign(e),s=this._accuIndex^=1;for(let l=0;l!==r;++l){t[l]._update(n,e,i,s)}const a=this._bindings,o=this._nActiveBindings;for(let l=0;l!==o;++l)a[l].apply(s);return this}setTime(e){this.time=0;for(let t=0;t=i){const s=i++,c=e[s];t[c.uuid]=l,e[l]=c,t[o]=s,e[s]=a;for(let e=0,t=n;e!==t;++e){const t=r[e],n=t[s],i=t[l];t[l]=n,t[s]=i}}}this.nCachedObjects_=i}uncache(){const e=this._objects,t=this._indicesByUUID,r=this._bindings,n=r.length;let i=this.nCachedObjects_,s=e.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=t[o];if(void 0!==l)if(delete t[o],l0&&(t[a.uuid]=l),e[l]=a,e.pop();for(let e=0,t=n;e!==t;++e){const t=r[e];t[l]=t[i],t.pop()}}}this.nCachedObjects_=i}subscribe_(e,t){const r=this._bindingsIndicesByPath;let n=r[e];const i=this._bindings;if(void 0!==n)return i[n];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);n=i.length,r[e]=n,s.push(e),a.push(t),i.push(h);for(let u=c,d=o.length;u!==d;++u){const r=o[u];h[u]=new jh(r,e,t)}return h}unsubscribe_(e){const t=this._bindingsIndicesByPath,r=t[e];if(void 0!==r){const n=this._paths,i=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];t[e[a]]=r,s[r]=o,s.pop(),i[r]=i[a],i.pop(),n[r]=n[a],n.pop()}}},t.AnimationUtils=Cc,t.ArcCurve=Ho,t.ArrayCamera=ya,t.ArrowHelper=class extends _r{constructor(e=new Et(0,0,1),t=new Et(0,0,0),r=1,n=16776960,i=.2*r,s=.2*i){super(),this.type="ArrowHelper",void 0===Au&&(Au=new hn,Au.setAttribute("position",new tn([0,0,0,0,1,0],3)),vu=new pl(0,.5,1,5,1),vu.translate(0,-.5,0)),this.position.copy(t),this.line=new Io(Au,new _o({color:n,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Tn(vu,new Hr({color:n,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(e),this.setLength(r,i,s)}setDirection(e){if(e.y>.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{gu.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(gu,t)}}setLength(e,t=.2*e,r=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(r,t,r),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},t.Audio=Dh,t.AudioAnalyser=class{constructor(e,t=2048){this.analyser=e.context.createAnalyser(),this.analyser.fftSize=t,this.data=new Uint8Array(this.analyser.frequencyBinCount),e.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let e=0;const t=this.getFrequencyData();for(let r=0;rthis.max.x||e.ythis.max.y)}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}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))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Zh).distanceTo(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}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)}},t.Box3=Mt,t.Box3Helper=class extends Po{constructor(e,t=16776960){const r=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),n=new hn;n.setIndex(new Zr(r,1)),n.setAttribute("position",new tn([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(n,new _o({color:t,toneMapped:!1})),this.box=e,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(e){const t=this.box;t.isEmpty()||(t.getCenter(this.position),t.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(e))}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BoxBufferGeometry=class extends Bn{constructor(e,t,r,n,i,s){console.warn("THREE.BoxBufferGeometry has been renamed to THREE.BoxGeometry."),super(e,t,r,n,i,s)}},t.BoxGeometry=Bn,t.BoxHelper=class extends Po{constructor(e,t=16776960){const r=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),n=new Float32Array(24),i=new hn;i.setIndex(new Zr(r,1)),i.setAttribute("position",new Zr(n,3)),super(i,new _o({color:t,toneMapped:!1})),this.object=e,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(e){if(void 0!==e&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&mu.setFromObject(this.object),mu.isEmpty())return;const t=mu.min,r=mu.max,n=this.geometry.attributes.position,i=n.array;i[0]=r.x,i[1]=r.y,i[2]=r.z,i[3]=t.x,i[4]=r.y,i[5]=r.z,i[6]=t.x,i[7]=t.y,i[8]=r.z,i[9]=r.x,i[10]=t.y,i[11]=r.z,i[12]=r.x,i[13]=r.y,i[14]=t.z,i[15]=t.x,i[16]=r.y,i[17]=t.z,i[18]=t.x,i[19]=t.y,i[20]=t.z,i[21]=r.x,i[22]=t.y,i[23]=t.z,n.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(e){return this.object=e,this.update(),this}copy(e,t){return super.copy(e,t),this.object=e.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}},t.BufferAttribute=Zr,t.BufferGeometry=hn,t.BufferGeometryLoader=vh,t.ByteType=1010,t.Cache=Qc,t.Camera=Un,t.CameraHelper=class extends Po{constructor(e){const t=new hn,r=new _o({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],i=[],s={};function a(e,t){o(e),o(t)}function o(e){n.push(0,0,0),i.push(0,0,0),void 0===s[e]&&(s[e]=[]),s[e].push(n.length/3-1)}a("n1","n2"),a("n2","n4"),a("n4","n3"),a("n3","n1"),a("f1","f2"),a("f2","f4"),a("f4","f3"),a("f3","f1"),a("n1","f1"),a("n2","f2"),a("n3","f3"),a("n4","f4"),a("p","n1"),a("p","n2"),a("p","n3"),a("p","n4"),a("u1","u2"),a("u2","u3"),a("u3","u1"),a("c","t"),a("p","c"),a("cn1","cn2"),a("cn3","cn4"),a("cf1","cf2"),a("cf3","cf4"),t.setAttribute("position",new tn(n,3)),t.setAttribute("color",new tn(i,3)),super(t,r),this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const l=new Qr(16755200),c=new Qr(16711680),h=new Qr(43775),u=new Qr(16777215),d=new Qr(3355443);this.setColors(l,c,h,u,d)}setColors(e,t,r,n,i){const s=this.geometry.getAttribute("color");s.setXYZ(0,e.r,e.g,e.b),s.setXYZ(1,e.r,e.g,e.b),s.setXYZ(2,e.r,e.g,e.b),s.setXYZ(3,e.r,e.g,e.b),s.setXYZ(4,e.r,e.g,e.b),s.setXYZ(5,e.r,e.g,e.b),s.setXYZ(6,e.r,e.g,e.b),s.setXYZ(7,e.r,e.g,e.b),s.setXYZ(8,e.r,e.g,e.b),s.setXYZ(9,e.r,e.g,e.b),s.setXYZ(10,e.r,e.g,e.b),s.setXYZ(11,e.r,e.g,e.b),s.setXYZ(12,e.r,e.g,e.b),s.setXYZ(13,e.r,e.g,e.b),s.setXYZ(14,e.r,e.g,e.b),s.setXYZ(15,e.r,e.g,e.b),s.setXYZ(16,e.r,e.g,e.b),s.setXYZ(17,e.r,e.g,e.b),s.setXYZ(18,e.r,e.g,e.b),s.setXYZ(19,e.r,e.g,e.b),s.setXYZ(20,e.r,e.g,e.b),s.setXYZ(21,e.r,e.g,e.b),s.setXYZ(22,e.r,e.g,e.b),s.setXYZ(23,e.r,e.g,e.b),s.setXYZ(24,t.r,t.g,t.b),s.setXYZ(25,t.r,t.g,t.b),s.setXYZ(26,t.r,t.g,t.b),s.setXYZ(27,t.r,t.g,t.b),s.setXYZ(28,t.r,t.g,t.b),s.setXYZ(29,t.r,t.g,t.b),s.setXYZ(30,t.r,t.g,t.b),s.setXYZ(31,t.r,t.g,t.b),s.setXYZ(32,r.r,r.g,r.b),s.setXYZ(33,r.r,r.g,r.b),s.setXYZ(34,r.r,r.g,r.b),s.setXYZ(35,r.r,r.g,r.b),s.setXYZ(36,r.r,r.g,r.b),s.setXYZ(37,r.r,r.g,r.b),s.setXYZ(38,n.r,n.g,n.b),s.setXYZ(39,n.r,n.g,n.b),s.setXYZ(40,i.r,i.g,i.b),s.setXYZ(41,i.r,i.g,i.b),s.setXYZ(42,i.r,i.g,i.b),s.setXYZ(43,i.r,i.g,i.b),s.setXYZ(44,i.r,i.g,i.b),s.setXYZ(45,i.r,i.g,i.b),s.setXYZ(46,i.r,i.g,i.b),s.setXYZ(47,i.r,i.g,i.b),s.setXYZ(48,i.r,i.g,i.b),s.setXYZ(49,i.r,i.g,i.b),s.needsUpdate=!0}update(){const e=this.geometry,t=this.pointMap;pu.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),fu("c",t,e,pu,0,0,-1),fu("t",t,e,pu,0,0,1),fu("n1",t,e,pu,-1,-1,-1),fu("n2",t,e,pu,1,-1,-1),fu("n3",t,e,pu,-1,1,-1),fu("n4",t,e,pu,1,1,-1),fu("f1",t,e,pu,-1,-1,1),fu("f2",t,e,pu,1,-1,1),fu("f3",t,e,pu,-1,1,1),fu("f4",t,e,pu,1,1,1),fu("u1",t,e,pu,.7,1.1,-1),fu("u2",t,e,pu,-.7,1.1,-1),fu("u3",t,e,pu,0,2,-1),fu("cf1",t,e,pu,-1,0,1),fu("cf2",t,e,pu,1,0,1),fu("cf3",t,e,pu,0,-1,1),fu("cf4",t,e,pu,0,1,1),fu("cn1",t,e,pu,-1,0,-1),fu("cn2",t,e,pu,1,0,-1),fu("cn3",t,e,pu,0,-1,-1),fu("cn4",t,e,pu,0,1,-1),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}},t.CanvasTexture=class extends gt{constructor(e,t,r,n,i,s,a,o,l){super(e,t,r,n,i,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}},t.CapsuleBufferGeometry=class extends ul{constructor(e,t,r,n){console.warn("THREE.CapsuleBufferGeometry has been renamed to THREE.CapsuleGeometry."),super(e,t,r,n)}},t.CapsuleGeometry=ul,t.CatmullRomCurve3=Ko,t.CineonToneMapping=m,t.CircleBufferGeometry=class extends dl{constructor(e,t,r,n){console.warn("THREE.CircleBufferGeometry has been renamed to THREE.CircleGeometry."),super(e,t,r,n)}},t.CircleGeometry=dl,t.ClampToEdgeWrapping=M,t.Clock=Ch,t.Color=Qr,t.ColorKeyframeTrack=Lc,t.ColorManagement=ht,t.CompressedArrayTexture=class extends zo{constructor(e,t,r,n,i,s){super(e,t,r,i,s),this.isCompressedArrayTexture=!0,this.image.depth=n,this.wrapR=M}},t.CompressedTexture=zo,t.CompressedTextureLoader=class extends jc{constructor(e){super(e)}load(e,t,r,n){const i=this,s=[],a=new zo,o=new Yc(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(i.withCredentials);let l=0;function c(c){o.load(e[c],(function(e){const r=i.parse(e,!0);s[c]={width:r.width,height:r.height,format:r.format,mipmaps:r.mipmaps},l+=1,6===l&&(1===r.mipmapCount&&(a.minFilter=B),a.image=s,a.format=r.format,a.needsUpdate=!0,t&&t(a))}),r,n)}if(Array.isArray(e))for(let h=0,u=e.length;h0){const r=new Vc(t);i=new qc(r),i.setCrossOrigin(this.crossOrigin);for(let t=0,i=e.length;t0){n=new qc(this.manager),n.setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t1)for(let c=0;cNumber.EPSILON){if(l<0&&(r=t[s],o=-o,a=t[i],l=-l),e.ya.y)continue;if(e.y===r.y){if(e.x===r.x)return!0}else{const t=l*(e.x-r.x)-o*(e.y-r.y);if(0===t)return!0;if(t<0)continue;n=!n}}else{if(e.y!==r.y)continue;if(a.x<=e.x&&e.x<=r.x||r.x<=e.x&&e.x<=a.x)return!0}}return n}const r=Yl.isClockWise,n=this.subPaths;if(0===n.length)return[];let i,s,a;const o=[];if(1===n.length)return s=n[0],a=new El,a.curves=s.curves,o.push(a),o;let l=!r(n[0].getPoints());l=e?!l:l;const c=[],h=[];let u,d,p=[],f=0;h[f]=void 0,p[f]=[];for(let m=0,g=n.length;m1){let e=!1,r=0;for(let t=0,n=h.length;t0&&!1===e&&(p=c)}for(let m=0,g=h.length;m=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}},t.WebGL1Renderer=Ia,t.WebGL3DRenderTarget=class extends vt{constructor(e=1,t=1,r=1){super(e,t),this.isWebGL3DRenderTarget=!0,this.depth=r,this.texture=new xt(null,e,t,r),this.texture.isRenderTargetTexture=!0}},t.WebGLArrayRenderTarget=class extends vt{constructor(e=1,t=1,r=1){super(e,t),this.isWebGLArrayRenderTarget=!0,this.depth=r,this.texture=new yt(null,e,t,r),this.texture.isRenderTargetTexture=!0}},t.WebGLCubeRenderTarget=zn,t.WebGLMultipleRenderTargets=class extends vt{constructor(e=1,t=1,r=1,n={}){super(e,t,n),this.isWebGLMultipleRenderTargets=!0;const i=this.texture;this.texture=[];for(let s=0;s{"use strict";function n(e){let t=0,r=0;for(const a of e)t+=a.w*a.h,r=Math.max(r,a.w);e.sort(((e,t)=>t.h-e.h));const n=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),r),h:1/0}];let i=0,s=0;for(const a of e)for(let e=n.length-1;e>=0;e--){const t=n[e];if(!(a.w>t.w||a.h>t.h)){if(a.x=t.x,a.y=t.y,s=Math.max(s,a.y+a.h),i=Math.max(i,a.x+a.w),a.w===t.w&&a.h===t.h){const t=n.pop();en})},99477:(e,t,r)=>{"use strict";r.r(t),r.d(t,{ACESFilmicToneMapping:()=>te,AddEquation:()=>S,AddOperation:()=>K,AdditiveAnimationBlendMode:()=>Bt,AdditiveBlending:()=>x,AlphaFormat:()=>De,AlwaysDepth:()=>z,AlwaysStencilFunc:()=>sr,AmbientLight:()=>fd,AmbientLightProbe:()=>Rd,AnimationAction:()=>sp,AnimationClip:()=>Nu,AnimationLoader:()=>Xu,AnimationMixer:()=>op,AnimationObjectGroup:()=>ip,AnimationUtils:()=>Mu,ArcCurve:()=>Qc,ArrayCamera:()=>fl,ArrowHelper:()=>Zp,Audio:()=>Vd,AudioAnalyser:()=>qd,AudioContext:()=>Td,AudioListener:()=>Qd,AudioLoader:()=>Id,AxesHelper:()=>$p,BackSide:()=>m,BasicDepthPacking:()=>Ut,BasicShadowMap:()=>h,Bone:()=>nc,BooleanKeyframeTrack:()=>Ru,Box2:()=>yp,Box3:()=>pn,Box3Helper:()=>Xp,BoxBufferGeometry:()=>tf,BoxGeometry:()=>Ss,BoxHelper:()=>Wp,BufferAttribute:()=>Gi,BufferGeometry:()=>is,BufferGeometryLoader:()=>bd,ByteType:()=>_e,Cache:()=>Gu,Camera:()=>Bs,CameraHelper:()=>Vp,CanvasTexture:()=>kc,CapsuleBufferGeometry:()=>rf,CapsuleGeometry:()=>ch,CatmullRomCurve3:()=>Yc,CineonToneMapping:()=>ee,CircleBufferGeometry:()=>nf,CircleGeometry:()=>hh,ClampToEdgeWrapping:()=>he,Clock:()=>Ud,Color:()=>Bi,ColorKeyframeTrack:()=>Pu,ColorManagement:()=>Yr,CompressedArrayTexture:()=>Nc,CompressedTexture:()=>Oc,CompressedTextureLoader:()=>Yu,ConeBufferGeometry:()=>sf,ConeGeometry:()=>dh,CubeCamera:()=>Ds,CubeReflectionMapping:()=>ie,CubeRefractionMapping:()=>se,CubeTexture:()=>Ls,CubeTextureLoader:()=>Ku,CubeUVReflectionMapping:()=>le,CubicBezierCurve:()=>Zc,CubicBezierCurve3:()=>$c,CubicInterpolant:()=>Cu,CullFaceBack:()=>o,CullFaceFront:()=>l,CullFaceFrontBack:()=>c,CullFaceNone:()=>a,Curve:()=>Gc,CurvePath:()=>ah,CustomBlending:()=>_,CustomToneMapping:()=>re,CylinderBufferGeometry:()=>af,CylinderGeometry:()=>uh,Cylindrical:()=>Ap,Data3DTexture:()=>an,DataArrayTexture:()=>nn,DataTexture:()=>ic,DataTextureLoader:()=>Ju,DataUtils:()=>Oi,DecrementStencilOp:()=>Yt,DecrementWrapStencilOp:()=>Kt,DefaultLoadingManager:()=>Qu,DepthFormat:()=>Oe,DepthStencilFormat:()=>Ne,DepthTexture:()=>vl,DirectionalLight:()=>pd,DirectionalLightHelper:()=>Gp,DiscreteInterpolant:()=>Iu,DisplayP3ColorSpace:()=>Vt,DodecahedronBufferGeometry:()=>of,DodecahedronGeometry:()=>fh,DoubleSide:()=>g,DstAlphaFactor:()=>F,DstColorFactor:()=>O,DynamicCopyUsage:()=>pr,DynamicDrawUsage:()=>or,DynamicReadUsage:()=>hr,EdgesGeometry:()=>yh,EllipseCurve:()=>zc,EqualDepth:()=>H,EqualStencilFunc:()=>er,EquirectangularReflectionMapping:()=>ae,EquirectangularRefractionMapping:()=>oe,Euler:()=>Kn,EventDispatcher:()=>vr,ExtrudeBufferGeometry:()=>lf,ExtrudeGeometry:()=>qh,FileLoader:()=>Wu,Float16BufferAttribute:()=>Yi,Float32BufferAttribute:()=>qi,Float64BufferAttribute:()=>Ki,FloatType:()=>Te,Fog:()=>wl,FogExp2:()=>Ml,FramebufferTexture:()=>Uc,FrontSide:()=>f,Frustum:()=>Qs,GLBufferAttribute:()=>dp,GLSL1:()=>mr,GLSL3:()=>gr,GreaterDepth:()=>W,GreaterEqualDepth:()=>j,GreaterEqualStencilFunc:()=>ir,GreaterStencilFunc:()=>rr,GridHelper:()=>Fp,Group:()=>ml,HalfFloatType:()=>Ie,HemisphereLight:()=>ed,HemisphereLightHelper:()=>Lp,HemisphereLightProbe:()=>Bd,IcosahedronBufferGeometry:()=>cf,IcosahedronGeometry:()=>Jh,ImageBitmapLoader:()=>wd,ImageLoader:()=>qu,ImageUtils:()=>Kr,IncrementStencilOp:()=>Xt,IncrementWrapStencilOp:()=>qt,InstancedBufferAttribute:()=>lc,InstancedBufferGeometry:()=>xd,InstancedInterleavedBuffer:()=>up,InstancedMesh:()=>gc,Int16BufferAttribute:()=>Hi,Int32BufferAttribute:()=>Wi,Int8BufferAttribute:()=>zi,IntType:()=>we,InterleavedBuffer:()=>Tl,InterleavedBufferAttribute:()=>Bl,Interpolant:()=>wu,InterpolateDiscrete:()=>_t,InterpolateLinear:()=>St,InterpolateSmooth:()=>Mt,InvertStencilOp:()=>Jt,KeepStencilOp:()=>jt,KeyframeTrack:()=>Bu,LOD:()=>ql,LatheBufferGeometry:()=>hf,LatheGeometry:()=>lh,Layers:()=>Jn,LessDepth:()=>Q,LessEqualDepth:()=>V,LessEqualStencilFunc:()=>tr,LessStencilFunc:()=>$t,Light:()=>$u,LightProbe:()=>Ad,Line:()=>_c,Line3:()=>Ep,LineBasicMaterial:()=>Ac,LineCurve:()=>eh,LineCurve3:()=>th,LineDashedMaterial:()=>vu,LineLoop:()=>Cc,LineSegments:()=>wc,LinearEncoding:()=>Lt,LinearFilter:()=>Ae,LinearInterpolant:()=>Tu,LinearMipMapLinearFilter:()=>be,LinearMipMapNearestFilter:()=>ye,LinearMipmapLinearFilter:()=>xe,LinearMipmapNearestFilter:()=>ve,LinearSRGBColorSpace:()=>Qt,LinearToneMapping:()=>Z,Loader:()=>Vu,LoaderUtils:()=>yd,LoadingManager:()=>zu,LoopOnce:()=>xt,LoopPingPong:()=>Et,LoopRepeat:()=>bt,LuminanceAlphaFormat:()=>Ue,LuminanceFormat:()=>Fe,MOUSE:()=>i,Material:()=>Mi,MaterialLoader:()=>vd,MathUtils:()=>Pr,Matrix3:()=>Lr,Matrix4:()=>Gn,MaxEquation:()=>T,Mesh:()=>Es,MeshBasicMaterial:()=>Pi,MeshDepthMaterial:()=>ll,MeshDistanceMaterial:()=>cl,MeshLambertMaterial:()=>gu,MeshMatcapMaterial:()=>Au,MeshNormalMaterial:()=>mu,MeshPhongMaterial:()=>pu,MeshPhysicalMaterial:()=>du,MeshStandardMaterial:()=>uu,MeshToonMaterial:()=>fu,MinEquation:()=>C,MirroredRepeatWrapping:()=>ue,MixOperation:()=>q,MultiplyBlending:()=>E,MultiplyOperation:()=>Y,NearestFilter:()=>de,NearestMipMapLinearFilter:()=>ge,NearestMipMapNearestFilter:()=>fe,NearestMipmapLinearFilter:()=>me,NearestMipmapNearestFilter:()=>pe,NeverDepth:()=>G,NeverStencilFunc:()=>Zt,NoBlending:()=>v,NoColorSpace:()=>Gt,NoToneMapping:()=>J,NormalAnimationBlendMode:()=>It,NormalBlending:()=>y,NotEqualDepth:()=>X,NotEqualStencilFunc:()=>nr,NumberKeyframeTrack:()=>Du,Object3D:()=>ui,ObjectLoader:()=>Ed,ObjectSpaceNormalMap:()=>kt,OctahedronBufferGeometry:()=>uf,OctahedronGeometry:()=>Zh,OneFactor:()=>B,OneMinusDstAlphaFactor:()=>U,OneMinusDstColorFactor:()=>N,OneMinusSrcAlphaFactor:()=>L,OneMinusSrcColorFactor:()=>P,OrthographicCamera:()=>ra,PCFShadowMap:()=>u,PCFSoftShadowMap:()=>d,PMREMGenerator:()=>ua,Path:()=>oh,PerspectiveCamera:()=>Rs,Plane:()=>ks,PlaneBufferGeometry:()=>df,PlaneGeometry:()=>js,PlaneHelper:()=>Yp,PointLight:()=>ud,PointLightHelper:()=>Bp,Points:()=>Dc,PointsMaterial:()=>Tc,PolarGridHelper:()=>Up,PolyhedronBufferGeometry:()=>pf,PolyhedronGeometry:()=>ph,PositionalAudio:()=>Yd,PropertyBinding:()=>np,PropertyMixer:()=>Kd,QuadraticBezierCurve:()=>rh,QuadraticBezierCurve3:()=>nh,Quaternion:()=>cn,QuaternionKeyframeTrack:()=>Fu,QuaternionLinearInterpolant:()=>Lu,RED_GREEN_RGTC2_Format:()=>vt,RED_RGTC1_Format:()=>gt,REVISION:()=>n,RGBADepthPacking:()=>Ot,RGBAFormat:()=>Le,RGBAIntegerFormat:()=>Ve,RGBA_ASTC_10x10_Format:()=>dt,RGBA_ASTC_10x5_Format:()=>ct,RGBA_ASTC_10x6_Format:()=>ht,RGBA_ASTC_10x8_Format:()=>ut,RGBA_ASTC_12x10_Format:()=>pt,RGBA_ASTC_12x12_Format:()=>ft,RGBA_ASTC_4x4_Format:()=>tt,RGBA_ASTC_5x4_Format:()=>rt,RGBA_ASTC_5x5_Format:()=>nt,RGBA_ASTC_6x5_Format:()=>it,RGBA_ASTC_6x6_Format:()=>st,RGBA_ASTC_8x5_Format:()=>at,RGBA_ASTC_8x6_Format:()=>ot,RGBA_ASTC_8x8_Format:()=>lt,RGBA_BPTC_Format:()=>mt,RGBA_ETC2_EAC_Format:()=>et,RGBA_PVRTC_2BPPV1_Format:()=>Je,RGBA_PVRTC_4BPPV1_Format:()=>Ke,RGBA_S3TC_DXT1_Format:()=>je,RGBA_S3TC_DXT3_Format:()=>We,RGBA_S3TC_DXT5_Format:()=>Xe,RGB_ETC1_Format:()=>Ze,RGB_ETC2_Format:()=>$e,RGB_PVRTC_2BPPV1_Format:()=>qe,RGB_PVRTC_4BPPV1_Format:()=>Ye,RGB_S3TC_DXT1_Format:()=>He,RGFormat:()=>ze,RGIntegerFormat:()=>Qe,RawShaderMaterial:()=>hu,Ray:()=>kn,Raycaster:()=>pp,RectAreaLight:()=>md,RedFormat:()=>ke,RedIntegerFormat:()=>Ge,ReinhardToneMapping:()=>$,RepeatWrapping:()=>ce,ReplaceStencilOp:()=>Wt,ReverseSubtractEquation:()=>w,RingBufferGeometry:()=>ff,RingGeometry:()=>$h,SIGNED_RED_GREEN_RGTC2_Format:()=>yt,SIGNED_RED_RGTC1_Format:()=>At,SRGBColorSpace:()=>zt,Scene:()=>Cl,ShaderChunk:()=>Ws,ShaderLib:()=>Ys,ShaderMaterial:()=>Is,ShadowMaterial:()=>cu,Shape:()=>xh,ShapeBufferGeometry:()=>mf,ShapeGeometry:()=>eu,ShapePath:()=>ef,ShapeUtils:()=>Wh,ShortType:()=>Se,Skeleton:()=>oc,SkeletonHelper:()=>Tp,SkinnedMesh:()=>rc,Source:()=>Jr,Sphere:()=>Rn,SphereBufferGeometry:()=>gf,SphereGeometry:()=>tu,Spherical:()=>gp,SphericalHarmonics3:()=>gd,SplineCurve:()=>ih,SpotLight:()=>ad,SpotLightHelper:()=>Sp,Sprite:()=>jl,SpriteMaterial:()=>Rl,SrcAlphaFactor:()=>D,SrcAlphaSaturateFactor:()=>k,SrcColorFactor:()=>R,StaticCopyUsage:()=>dr,StaticDrawUsage:()=>ar,StaticReadUsage:()=>cr,StereoCamera:()=>Fd,StreamCopyUsage:()=>fr,StreamDrawUsage:()=>lr,StreamReadUsage:()=>ur,StringKeyframeTrack:()=>Uu,SubtractEquation:()=>M,SubtractiveBlending:()=>b,TOUCH:()=>s,TangentSpaceNormalMap:()=>Nt,TetrahedronBufferGeometry:()=>Af,TetrahedronGeometry:()=>ru,Texture:()=>en,TextureLoader:()=>Zu,TorusBufferGeometry:()=>vf,TorusGeometry:()=>nu,TorusKnotBufferGeometry:()=>yf,TorusKnotGeometry:()=>iu,Triangle:()=>_i,TriangleFanDrawMode:()=>Dt,TriangleStripDrawMode:()=>Pt,TrianglesDrawMode:()=>Rt,TubeBufferGeometry:()=>xf,TubeGeometry:()=>su,TwoPassDoubleSide:()=>A,UVMapping:()=>ne,Uint16BufferAttribute:()=>ji,Uint32BufferAttribute:()=>Xi,Uint8BufferAttribute:()=>Qi,Uint8ClampedBufferAttribute:()=>Vi,Uniform:()=>lp,UniformsGroup:()=>hp,UniformsLib:()=>Xs,UniformsUtils:()=>Ts,UnsignedByteType:()=>Ee,UnsignedInt248Type:()=>Pe,UnsignedIntType:()=>Ce,UnsignedShort4444Type:()=>Be,UnsignedShort5551Type:()=>Re,UnsignedShortType:()=>Me,VSMShadowMap:()=>p,Vector2:()=>Dr,Vector3:()=>hn,Vector4:()=>tn,VectorKeyframeTrack:()=>Ou,VideoTexture:()=>Fc,WebGL1Renderer:()=>Sl,WebGL3DRenderTarget:()=>on,WebGLArrayRenderTarget:()=>sn,WebGLCubeRenderTarget:()=>Fs,WebGLMultipleRenderTargets:()=>ln,WebGLRenderTarget:()=>rn,WebGLRenderer:()=>_l,WebGLUtils:()=>pl,WireframeGeometry:()=>au,WrapAroundEnding:()=>Tt,ZeroCurvatureEnding:()=>wt,ZeroFactor:()=>I,ZeroSlopeEnding:()=>Ct,ZeroStencilOp:()=>Ht,_SRGBAFormat:()=>Ar,sRGBEncoding:()=>Ft});const n="152",i={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},s={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},a=0,o=1,l=2,c=3,h=0,u=1,d=2,p=3,f=0,m=1,g=2,A=2,v=0,y=1,x=2,b=3,E=4,_=5,S=100,M=101,w=102,C=103,T=104,I=200,B=201,R=202,P=203,D=204,L=205,F=206,U=207,O=208,N=209,k=210,G=0,z=1,Q=2,V=3,H=4,j=5,W=6,X=7,Y=0,q=1,K=2,J=0,Z=1,$=2,ee=3,te=4,re=5,ne=300,ie=301,se=302,ae=303,oe=304,le=306,ce=1e3,he=1001,ue=1002,de=1003,pe=1004,fe=1004,me=1005,ge=1005,Ae=1006,ve=1007,ye=1007,xe=1008,be=1008,Ee=1009,_e=1010,Se=1011,Me=1012,we=1013,Ce=1014,Te=1015,Ie=1016,Be=1017,Re=1018,Pe=1020,De=1021,Le=1023,Fe=1024,Ue=1025,Oe=1026,Ne=1027,ke=1028,Ge=1029,ze=1030,Qe=1031,Ve=1033,He=33776,je=33777,We=33778,Xe=33779,Ye=35840,qe=35841,Ke=35842,Je=35843,Ze=36196,$e=37492,et=37496,tt=37808,rt=37809,nt=37810,it=37811,st=37812,at=37813,ot=37814,lt=37815,ct=37816,ht=37817,ut=37818,dt=37819,pt=37820,ft=37821,mt=36492,gt=36283,At=36284,vt=36285,yt=36286,xt=2200,bt=2201,Et=2202,_t=2300,St=2301,Mt=2302,wt=2400,Ct=2401,Tt=2402,It=2500,Bt=2501,Rt=0,Pt=1,Dt=2,Lt=3e3,Ft=3001,Ut=3200,Ot=3201,Nt=0,kt=1,Gt="",zt="srgb",Qt="srgb-linear",Vt="display-p3",Ht=0,jt=7680,Wt=7681,Xt=7682,Yt=7683,qt=34055,Kt=34056,Jt=5386,Zt=512,$t=513,er=514,tr=515,rr=516,nr=517,ir=518,sr=519,ar=35044,or=35048,lr=35040,cr=35045,hr=35049,ur=35041,dr=35046,pr=35050,fr=35042,mr="100",gr="300 es",Ar=1035;class vr{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});const r=this._listeners;void 0===r[e]&&(r[e]=[]),-1===r[e].indexOf(t)&&r[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;const r=this._listeners;return void 0!==r[e]&&-1!==r[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;const r=this._listeners[e];if(void 0!==r){const e=r.indexOf(t);-1!==e&&r.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;const t=this._listeners[e.type];if(void 0!==t){e.target=this;const r=t.slice(0);for(let t=0,n=r.length;t>8&255]+yr[e>>16&255]+yr[e>>24&255]+"-"+yr[255&t]+yr[t>>8&255]+"-"+yr[t>>16&15|64]+yr[t>>24&255]+"-"+yr[63&r|128]+yr[r>>8&255]+"-"+yr[r>>16&255]+yr[r>>24&255]+yr[255&n]+yr[n>>8&255]+yr[n>>16&255]+yr[n>>24&255]).toLowerCase()}function Sr(e,t,r){return Math.max(t,Math.min(r,e))}function Mr(e,t){return(e%t+t)%t}function wr(e,t,r){return(1-r)*e+r*t}function Cr(e){return 0==(e&e-1)&&0!==e}function Tr(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function Ir(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}function Br(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}function Rr(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}}const Pr={DEG2RAD:br,RAD2DEG:Er,generateUUID:_r,clamp:Sr,euclideanModulo:Mr,mapLinear:function(e,t,r,n,i){return n+(e-t)*(i-n)/(r-t)},inverseLerp:function(e,t,r){return e!==t?(r-e)/(t-e):0},lerp:wr,damp:function(e,t,r,n){return wr(e,t,1-Math.exp(-r*n))},pingpong:function(e,t=1){return t-Math.abs(Mr(e,2*t)-t)},smoothstep:function(e,t,r){return e<=t?0:e>=r?1:(e=(e-t)/(r-t))*e*(3-2*e)},smootherstep:function(e,t,r){return e<=t?0:e>=r?1:(e=(e-t)/(r-t))*e*e*(e*(6*e-15)+10)},randInt:function(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function(e,t){return e+Math.random()*(t-e)},randFloatSpread:function(e){return e*(.5-Math.random())},seededRandom:function(e){void 0!==e&&(xr=e);let t=xr+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},degToRad:function(e){return e*br},radToDeg:function(e){return e*Er},isPowerOfTwo:Cr,ceilPowerOfTwo:Tr,floorPowerOfTwo:Ir,setQuaternionFromProperEuler:function(e,t,r,n,i){const s=Math.cos,a=Math.sin,o=s(r/2),l=a(r/2),c=s((t+n)/2),h=a((t+n)/2),u=s((t-n)/2),d=a((t-n)/2),p=s((n-t)/2),f=a((n-t)/2);switch(i){case"XYX":e.set(o*h,l*u,l*d,o*c);break;case"YZY":e.set(l*d,o*h,l*u,o*c);break;case"ZXZ":e.set(l*u,l*d,o*h,o*c);break;case"XZX":e.set(o*h,l*f,l*p,o*c);break;case"YXY":e.set(l*p,o*h,l*f,o*c);break;case"ZYZ":e.set(l*f,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+i)}},normalize:Rr,denormalize:Br};class Dr{constructor(e=0,t=0){Dr.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const t=this.x,r=this.y,n=e.elements;return this.x=n[0]*t+n[3]*r+n[6],this.y=n[1]*t+n[4]*r+n[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 r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))}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}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const r=this.dot(e)/t;return Math.acos(Sr(r,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,r=this.y-e.y;return t*t+r*r}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,r){return this.x=e.x+(t.x-e.x)*r,this.y=e.y+(t.y-e.y)*r,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const r=Math.cos(t),n=Math.sin(t),i=this.x-e.x,s=this.y-e.y;return this.x=i*r-s*n+e.x,this.y=i*n+s*r+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Lr{constructor(){Lr.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(e,t,r,n,i,s,a,o,l){const c=this.elements;return c[0]=e,c[1]=n,c[2]=a,c[3]=t,c[4]=i,c[5]=o,c[6]=r,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,r=e.elements;return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],t[6]=r[6],t[7]=r[7],t[8]=r[8],this}extractBasis(e,t,r){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),r.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 r=e.elements,n=t.elements,i=this.elements,s=r[0],a=r[3],o=r[6],l=r[1],c=r[4],h=r[7],u=r[2],d=r[5],p=r[8],f=n[0],m=n[3],g=n[6],A=n[1],v=n[4],y=n[7],x=n[2],b=n[5],E=n[8];return i[0]=s*f+a*A+o*x,i[3]=s*m+a*v+o*b,i[6]=s*g+a*y+o*E,i[1]=l*f+c*A+h*x,i[4]=l*m+c*v+h*b,i[7]=l*g+c*y+h*E,i[2]=u*f+d*A+p*x,i[5]=u*m+d*v+p*b,i[8]=u*g+d*y+p*E,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],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8];return t*s*c-t*a*l-r*i*c+r*a*o+n*i*l-n*s*o}invert(){const e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=c*s-a*l,u=a*o-c*i,d=l*i-s*o,p=t*h+r*u+n*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const f=1/p;return e[0]=h*f,e[1]=(n*l-c*r)*f,e[2]=(a*r-n*s)*f,e[3]=u*f,e[4]=(c*t-n*o)*f,e[5]=(n*i-a*t)*f,e[6]=d*f,e[7]=(r*o-l*t)*f,e[8]=(s*t-r*i)*f,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,r,n,i,s,a){const o=Math.cos(i),l=Math.sin(i);return this.set(r*o,r*l,-r*(o*s+l*a)+s+e,-n*l,n*o,-n*(-l*s+o*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(Fr.makeScale(e,t)),this}rotate(e){return this.premultiply(Fr.makeRotation(-e)),this}translate(e,t){return this.premultiply(Fr.makeTranslation(e,t)),this}makeTranslation(e,t){return this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){const t=Math.cos(e),r=Math.sin(e);return this.set(t,-r,0,r,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){const t=this.elements,r=e.elements;for(let n=0;n<9;n++)if(t[n]!==r[n])return!1;return!0}fromArray(e,t=0){for(let r=0;r<9;r++)this.elements[r]=e[r+t];return this}toArray(e=[],t=0){const r=this.elements;return e[t]=r[0],e[t+1]=r[1],e[t+2]=r[2],e[t+3]=r[3],e[t+4]=r[4],e[t+5]=r[5],e[t+6]=r[6],e[t+7]=r[7],e[t+8]=r[8],e}clone(){return(new this.constructor).fromArray(this.elements)}}const Fr=new Lr;function Ur(e){for(let t=e.length-1;t>=0;--t)if(e[t]>=65535)return!0;return!1}const Or={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function Nr(e,t){return new Or[e](t)}function kr(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}const Gr={};function zr(e){e in Gr||(Gr[e]=!0,console.warn(e))}function Qr(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function Vr(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}const Hr=(new Lr).fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),jr=(new Lr).fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);const Wr={[Qt]:e=>e,[zt]:e=>e.convertSRGBToLinear(),[Vt]:function(e){return e.convertSRGBToLinear().applyMatrix3(jr)}},Xr={[Qt]:e=>e,[zt]:e=>e.convertLinearToSRGB(),[Vt]:function(e){return e.applyMatrix3(Hr).convertLinearToSRGB()}},Yr={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(e){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!e},get workingColorSpace(){return Qt},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,r){if(!1===this.enabled||t===r||!t||!r)return e;const n=Wr[t],i=Xr[r];if(void 0===n||void 0===i)throw new Error(`Unsupported color space conversion, "${t}" to "${r}".`);return i(n(e))},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}};let qr;class Kr{static getDataURL(e){if(/^data:/i.test(e.src))return e.src;if("undefined"==typeof HTMLCanvasElement)return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===qr&&(qr=kr("canvas")),qr.width=e.width,qr.height=e.height;const r=qr.getContext("2d");e instanceof ImageData?r.putImageData(e,0,0):r.drawImage(e,0,0,e.width,e.height),t=qr}return t.width>2048||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("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const t=kr("canvas");t.width=e.width,t.height=e.height;const r=t.getContext("2d");r.drawImage(e,0,0,e.width,e.height);const n=r.getImageData(0,0,e.width,e.height),i=n.data;for(let e=0;e0&&(r.userData=this.userData),t||(e.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==ne)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case ce:e.x=e.x-Math.floor(e.x);break;case he:e.x=e.x<0?0:1;break;case ue:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case ce:e.y=e.y-Math.floor(e.y);break;case he:e.y=e.y<0?0:1;break;case ue:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return zr("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===zt?Ft:Lt}set encoding(e){zr("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===Ft?zt:Gt}}en.DEFAULT_IMAGE=null,en.DEFAULT_MAPPING=ne,en.DEFAULT_ANISOTROPY=1;class tn{constructor(e=0,t=0,r=0,n=1){tn.prototype.isVector4=!0,this.x=e,this.y=t,this.z=r,this.w=n}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,r,n){return this.x=e,this.y=t,this.z=r,this.w=n,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=void 0!==e.w?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const t=this.x,r=this.y,n=this.z,i=this.w,s=e.elements;return this.x=s[0]*t+s[4]*r+s[8]*n+s[12]*i,this.y=s[1]*t+s[5]*r+s[9]*n+s[13]*i,this.z=s[2]*t+s[6]*r+s[10]*n+s[14]*i,this.w=s[3]*t+s[7]*r+s[11]*n+s[15]*i,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,r,n,i;const s=.01,a=.1,o=e.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],f=o[2],m=o[6],g=o[10];if(Math.abs(c-u)o&&e>A?eA?o=0?1:-1,n=1-t*t;if(n>Number.EPSILON){const i=Math.sqrt(n),s=Math.atan2(i,t*r);e=Math.sin(e*s)/i,a=Math.sin(a*s)/i}const i=a*r;if(o=o*e+u*i,l=l*e+d*i,c=c*e+p*i,h=h*e+f*i,e===1-a){const e=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=e,l*=e,c*=e,h*=e}}e[t]=o,e[t+1]=l,e[t+2]=c,e[t+3]=h}static multiplyQuaternionsFlat(e,t,r,n,i,s){const a=r[n],o=r[n+1],l=r[n+2],c=r[n+3],h=i[s],u=i[s+1],d=i[s+2],p=i[s+3];return e[t]=a*p+c*h+o*d-l*u,e[t+1]=o*p+c*u+l*h-a*d,e[t+2]=l*p+c*d+a*u-o*h,e[t+3]=c*p-a*h-o*u-l*d,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,r,n){return this._x=e,this._y=t,this._z=r,this._w=n,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){const r=e._x,n=e._y,i=e._z,s=e._order,a=Math.cos,o=Math.sin,l=a(r/2),c=a(n/2),h=a(i/2),u=o(r/2),d=o(n/2),p=o(i/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const r=t/2,n=Math.sin(r);return this._x=e.x*n,this._y=e.y*n,this._z=e.z*n,this._w=Math.cos(r),this._onChangeCallback(),this}setFromRotationMatrix(e){const t=e.elements,r=t[0],n=t[4],i=t[8],s=t[1],a=t[5],o=t[9],l=t[2],c=t[6],h=t[10],u=r+a+h;if(u>0){const e=.5/Math.sqrt(u+1);this._w=.25/e,this._x=(c-o)*e,this._y=(i-l)*e,this._z=(s-n)*e}else if(r>a&&r>h){const e=2*Math.sqrt(1+r-a-h);this._w=(c-o)/e,this._x=.25*e,this._y=(n+s)/e,this._z=(i+l)/e}else if(a>h){const e=2*Math.sqrt(1+a-r-h);this._w=(i-l)/e,this._x=(n+s)/e,this._y=.25*e,this._z=(o+c)/e}else{const e=2*Math.sqrt(1+h-r-a);this._w=(s-n)/e,this._x=(i+l)/e,this._y=(o+c)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let r=e.dot(t)+1;return rMath.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=r):(this._x=0,this._y=-e.z,this._z=e.y,this._w=r)):(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=r),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Sr(this.dot(e),-1,1)))}rotateTowards(e,t){const r=this.angleTo(e);if(0===r)return this;const n=Math.min(1,t/r);return this.slerp(e,n),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(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 0===e?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){const r=e._x,n=e._y,i=e._z,s=e._w,a=t._x,o=t._y,l=t._z,c=t._w;return this._x=r*c+s*a+n*l-i*o,this._y=n*c+s*o+i*a-r*l,this._z=i*c+s*l+r*o-n*a,this._w=s*c-r*a-n*o-i*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const r=this._x,n=this._y,i=this._z,s=this._w;let a=s*e._w+r*e._x+n*e._y+i*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=s,this._x=r,this._y=n,this._z=i,this;const o=1-a*a;if(o<=Number.EPSILON){const e=1-t;return this._w=e*s+t*this._w,this._x=e*r+t*this._x,this._y=e*n+t*this._y,this._z=e*i+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-t)*c)/l,u=Math.sin(t*c)/l;return this._w=s*h+this._w*u,this._x=r*h+this._x*u,this._y=n*h+this._y*u,this._z=i*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(e,t,r){return this.copy(e).slerp(t,r)}random(){const e=Math.random(),t=Math.sqrt(1-e),r=Math.sqrt(e),n=2*Math.PI*Math.random(),i=2*Math.PI*Math.random();return this.set(t*Math.cos(n),r*Math.sin(i),r*Math.cos(i),t*Math.sin(n))}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}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class hn{constructor(e=0,t=0,r=0){hn.prototype.isVector3=!0,this.x=e,this.y=t,this.z=r}set(e,t,r){return void 0===r&&(r=this.z),this.x=e,this.y=t,this.z=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(dn.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(dn.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,r=this.y,n=this.z,i=e.elements;return this.x=i[0]*t+i[3]*r+i[6]*n,this.y=i[1]*t+i[4]*r+i[7]*n,this.z=i[2]*t+i[5]*r+i[8]*n,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,r=this.y,n=this.z,i=e.elements,s=1/(i[3]*t+i[7]*r+i[11]*n+i[15]);return this.x=(i[0]*t+i[4]*r+i[8]*n+i[12])*s,this.y=(i[1]*t+i[5]*r+i[9]*n+i[13])*s,this.z=(i[2]*t+i[6]*r+i[10]*n+i[14])*s,this}applyQuaternion(e){const t=this.x,r=this.y,n=this.z,i=e.x,s=e.y,a=e.z,o=e.w,l=o*t+s*n-a*r,c=o*r+a*t-i*n,h=o*n+i*r-s*t,u=-i*t-s*r-a*n;return this.x=l*o+u*-i+c*-a-h*-s,this.y=c*o+u*-s+h*-i-l*-a,this.z=h*o+u*-a+l*-s-c*-i,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,r=this.y,n=this.z,i=e.elements;return this.x=i[0]*t+i[4]*r+i[8]*n,this.y=i[1]*t+i[5]*r+i[9]*n,this.z=i[2]*t+i[6]*r+i[10]*n,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 r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(e,Math.min(t,r)))}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,r){return this.x=e.x+(t.x-e.x)*r,this.y=e.y+(t.y-e.y)*r,this.z=e.z+(t.z-e.z)*r,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const r=e.x,n=e.y,i=e.z,s=t.x,a=t.y,o=t.z;return this.x=n*o-i*a,this.y=i*s-r*o,this.z=r*a-n*s,this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const r=e.dot(this)/t;return this.copy(e).multiplyScalar(r)}projectOnPlane(e){return un.copy(this).projectOnVector(e),this.sub(un)}reflect(e){return this.sub(un.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const r=this.dot(e)/t;return Math.acos(Sr(r,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,r=this.y-e.y,n=this.z-e.z;return t*t+r*r+n*n}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,r){const n=Math.sin(t)*e;return this.x=n*Math.sin(r),this.y=Math.cos(t)*e,this.z=n*Math.cos(r),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,r){return this.x=e*Math.sin(t),this.y=r,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(),r=this.setFromMatrixColumn(e,1).length(),n=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=r,this.z=n,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=2*(Math.random()-.5),t=Math.random()*Math.PI*2,r=Math.sqrt(1-e**2);return this.x=r*Math.cos(t),this.y=r*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const un=new hn,dn=new cn;class pn{constructor(e=new hn(1/0,1/0,1/0),t=new hn(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,r=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,mn),mn.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,r;return e.normal.x>0?(t=e.normal.x*this.min.x,r=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,r=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,r+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,r+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,r+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,r+=e.normal.z*this.min.z),t<=-e.constant&&r>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(_n),Sn.subVectors(this.max,_n),An.subVectors(e.a,_n),vn.subVectors(e.b,_n),yn.subVectors(e.c,_n),xn.subVectors(vn,An),bn.subVectors(yn,vn),En.subVectors(An,yn);let t=[0,-xn.z,xn.y,0,-bn.z,bn.y,0,-En.z,En.y,xn.z,0,-xn.x,bn.z,0,-bn.x,En.z,0,-En.x,-xn.y,xn.x,0,-bn.y,bn.x,0,-En.y,En.x,0];return!!Cn(t,An,vn,yn,Sn)&&(t=[1,0,0,0,1,0,0,0,1],!!Cn(t,An,vn,yn,Sn)&&(Mn.crossVectors(xn,bn),t=[Mn.x,Mn.y,Mn.z],Cn(t,An,vn,yn,Sn)))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,mn).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=.5*this.getSize(mn).length()),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()||(fn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),fn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),fn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),fn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),fn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),fn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),fn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),fn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(fn)),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)}}const fn=[new hn,new hn,new hn,new hn,new hn,new hn,new hn,new hn],mn=new hn,gn=new pn,An=new hn,vn=new hn,yn=new hn,xn=new hn,bn=new hn,En=new hn,_n=new hn,Sn=new hn,Mn=new hn,wn=new hn;function Cn(e,t,r,n,i){for(let s=0,a=e.length-3;s<=a;s+=3){wn.fromArray(e,s);const a=i.x*Math.abs(wn.x)+i.y*Math.abs(wn.y)+i.z*Math.abs(wn.z),o=t.dot(wn),l=r.dot(wn),c=n.dot(wn);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Tn=new pn,In=new hn,Bn=new hn;class Rn{constructor(e=new hn,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const r=this.center;void 0!==t?r.copy(t):Tn.setFromPoints(e).getCenter(r);let n=0;for(let i=0,s=e.length;ithis.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;In.subVectors(e,this.center);const t=In.lengthSq();if(t>this.radius*this.radius){const e=Math.sqrt(t),r=.5*(e-this.radius);this.center.addScaledVector(In,r/e),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(!0===this.center.equals(e.center)?this.radius=Math.max(this.radius,e.radius):(Bn.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(In.copy(e.center).add(Bn)),this.expandByPoint(In.copy(e.center).sub(Bn))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Pn=new hn,Dn=new hn,Ln=new hn,Fn=new hn,Un=new hn,On=new hn,Nn=new hn;class kn{constructor(e=new hn,t=new hn(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.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Pn)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const r=t.dot(this.direction);return r<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,r)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Pn.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Pn.copy(this.origin).addScaledVector(this.direction,t),Pn.distanceToSquared(e))}distanceSqToSegment(e,t,r,n){Dn.copy(e).add(t).multiplyScalar(.5),Ln.copy(t).sub(e).normalize(),Fn.copy(this.origin).sub(Dn);const i=.5*e.distanceTo(t),s=-this.direction.dot(Ln),a=Fn.dot(this.direction),o=-Fn.dot(Ln),l=Fn.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=i*c,h>=0)if(u>=-p)if(u<=p){const e=1/c;h*=e,u*=e,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*i+a)),u=h>0?-i:Math.min(Math.max(-i,-o),i),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-i,-o),i),d=u*(u+2*o)+l):(h=Math.max(0,-(s*i+a)),u=h>0?i:Math.min(Math.max(-i,-o),i),d=-h*h+u*(u+2*o)+l);else u=s>0?-i:i,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return r&&r.copy(this.origin).addScaledVector(this.direction,h),n&&n.copy(Dn).addScaledVector(Ln,u),d}intersectSphere(e,t){Pn.subVectors(e.center,this.origin);const r=Pn.dot(this.direction),n=Pn.dot(Pn)-r*r,i=e.radius*e.radius;if(n>i)return null;const s=Math.sqrt(i-n),a=r-s,o=r+s;return o<0?null:a<0?this.at(o,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(0===t)return 0===e.distanceToPoint(this.origin)?0:null;const r=-(this.origin.dot(e.normal)+e.constant)/t;return r>=0?r:null}intersectPlane(e,t){const r=this.distanceToPlane(e);return null===r?null:this.at(r,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);if(0===t)return!0;return e.normal.dot(this.direction)*t<0}intersectBox(e,t){let r,n,i,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(r=(e.min.x-u.x)*l,n=(e.max.x-u.x)*l):(r=(e.max.x-u.x)*l,n=(e.min.x-u.x)*l),c>=0?(i=(e.min.y-u.y)*c,s=(e.max.y-u.y)*c):(i=(e.max.y-u.y)*c,s=(e.min.y-u.y)*c),r>s||i>n?null:((i>r||isNaN(r))&&(r=i),(s=0?(a=(e.min.z-u.z)*h,o=(e.max.z-u.z)*h):(a=(e.max.z-u.z)*h,o=(e.min.z-u.z)*h),r>o||a>n?null:((a>r||r!=r)&&(r=a),(o=0?r:n,t)))}intersectsBox(e){return null!==this.intersectBox(e,Pn)}intersectTriangle(e,t,r,n,i){Un.subVectors(t,e),On.subVectors(r,e),Nn.crossVectors(Un,On);let s,a=this.direction.dot(Nn);if(a>0){if(n)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Fn.subVectors(this.origin,e);const o=s*this.direction.dot(On.crossVectors(Fn,On));if(o<0)return null;const l=s*this.direction.dot(Un.cross(Fn));if(l<0)return null;if(o+l>a)return null;const c=-s*Fn.dot(Nn);return c<0?null:this.at(c/a,i)}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 Gn{constructor(){Gn.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(e,t,r,n,i,s,a,o,l,c,h,u,d,p,f,m){const g=this.elements;return g[0]=e,g[4]=t,g[8]=r,g[12]=n,g[1]=i,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=f,g[15]=m,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 Gn).fromArray(this.elements)}copy(e){const t=this.elements,r=e.elements;return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],t[6]=r[6],t[7]=r[7],t[8]=r[8],t[9]=r[9],t[10]=r[10],t[11]=r[11],t[12]=r[12],t[13]=r[13],t[14]=r[14],t[15]=r[15],this}copyPosition(e){const t=this.elements,r=e.elements;return t[12]=r[12],t[13]=r[13],t[14]=r[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,r){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),r.setFromMatrixColumn(this,2),this}makeBasis(e,t,r){return this.set(e.x,t.x,r.x,0,e.y,t.y,r.y,0,e.z,t.z,r.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,r=e.elements,n=1/zn.setFromMatrixColumn(e,0).length(),i=1/zn.setFromMatrixColumn(e,1).length(),s=1/zn.setFromMatrixColumn(e,2).length();return t[0]=r[0]*n,t[1]=r[1]*n,t[2]=r[2]*n,t[3]=0,t[4]=r[4]*i,t[5]=r[5]*i,t[6]=r[6]*i,t[7]=0,t[8]=r[8]*s,t[9]=r[9]*s,t[10]=r[10]*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,r=e.x,n=e.y,i=e.z,s=Math.cos(r),a=Math.sin(r),o=Math.cos(n),l=Math.sin(n),c=Math.cos(i),h=Math.sin(i);if("XYZ"===e.order){const e=s*c,r=s*h,n=a*c,i=a*h;t[0]=o*c,t[4]=-o*h,t[8]=l,t[1]=r+n*l,t[5]=e-i*l,t[9]=-a*o,t[2]=i-e*l,t[6]=n+r*l,t[10]=s*o}else if("YXZ"===e.order){const e=o*c,r=o*h,n=l*c,i=l*h;t[0]=e+i*a,t[4]=n*a-r,t[8]=s*l,t[1]=s*h,t[5]=s*c,t[9]=-a,t[2]=r*a-n,t[6]=i+e*a,t[10]=s*o}else if("ZXY"===e.order){const e=o*c,r=o*h,n=l*c,i=l*h;t[0]=e-i*a,t[4]=-s*h,t[8]=n+r*a,t[1]=r+n*a,t[5]=s*c,t[9]=i-e*a,t[2]=-s*l,t[6]=a,t[10]=s*o}else if("ZYX"===e.order){const e=s*c,r=s*h,n=a*c,i=a*h;t[0]=o*c,t[4]=n*l-r,t[8]=e*l+i,t[1]=o*h,t[5]=i*l+e,t[9]=r*l-n,t[2]=-l,t[6]=a*o,t[10]=s*o}else if("YZX"===e.order){const e=s*o,r=s*l,n=a*o,i=a*l;t[0]=o*c,t[4]=i-e*h,t[8]=n*h+r,t[1]=h,t[5]=s*c,t[9]=-a*c,t[2]=-l*c,t[6]=r*h+n,t[10]=e-i*h}else if("XZY"===e.order){const e=s*o,r=s*l,n=a*o,i=a*l;t[0]=o*c,t[4]=-h,t[8]=l*c,t[1]=e*h+i,t[5]=s*c,t[9]=r*h-n,t[2]=n*h-r,t[6]=a*c,t[10]=i*h+e}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(Vn,e,Hn)}lookAt(e,t,r){const n=this.elements;return Xn.subVectors(e,t),0===Xn.lengthSq()&&(Xn.z=1),Xn.normalize(),jn.crossVectors(r,Xn),0===jn.lengthSq()&&(1===Math.abs(r.z)?Xn.x+=1e-4:Xn.z+=1e-4,Xn.normalize(),jn.crossVectors(r,Xn)),jn.normalize(),Wn.crossVectors(Xn,jn),n[0]=jn.x,n[4]=Wn.x,n[8]=Xn.x,n[1]=jn.y,n[5]=Wn.y,n[9]=Xn.y,n[2]=jn.z,n[6]=Wn.z,n[10]=Xn.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const r=e.elements,n=t.elements,i=this.elements,s=r[0],a=r[4],o=r[8],l=r[12],c=r[1],h=r[5],u=r[9],d=r[13],p=r[2],f=r[6],m=r[10],g=r[14],A=r[3],v=r[7],y=r[11],x=r[15],b=n[0],E=n[4],_=n[8],S=n[12],M=n[1],w=n[5],C=n[9],T=n[13],I=n[2],B=n[6],R=n[10],P=n[14],D=n[3],L=n[7],F=n[11],U=n[15];return i[0]=s*b+a*M+o*I+l*D,i[4]=s*E+a*w+o*B+l*L,i[8]=s*_+a*C+o*R+l*F,i[12]=s*S+a*T+o*P+l*U,i[1]=c*b+h*M+u*I+d*D,i[5]=c*E+h*w+u*B+d*L,i[9]=c*_+h*C+u*R+d*F,i[13]=c*S+h*T+u*P+d*U,i[2]=p*b+f*M+m*I+g*D,i[6]=p*E+f*w+m*B+g*L,i[10]=p*_+f*C+m*R+g*F,i[14]=p*S+f*T+m*P+g*U,i[3]=A*b+v*M+y*I+x*D,i[7]=A*E+v*w+y*B+x*L,i[11]=A*_+v*C+y*R+x*F,i[15]=A*S+v*T+y*P+x*U,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],r=e[4],n=e[8],i=e[12],s=e[1],a=e[5],o=e[9],l=e[13],c=e[2],h=e[6],u=e[10],d=e[14];return e[3]*(+i*o*h-n*l*h-i*a*u+r*l*u+n*a*d-r*o*d)+e[7]*(+t*o*d-t*l*u+i*s*u-n*s*d+n*l*c-i*o*c)+e[11]*(+t*l*h-t*a*d-i*s*h+r*s*d+i*a*c-r*l*c)+e[15]*(-n*a*c-t*o*h+t*a*u+n*s*h-r*s*u+r*o*c)}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,r){const n=this.elements;return e.isVector3?(n[12]=e.x,n[13]=e.y,n[14]=e.z):(n[12]=e,n[13]=t,n[14]=r),this}invert(){const e=this.elements,t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=e[9],u=e[10],d=e[11],p=e[12],f=e[13],m=e[14],g=e[15],A=h*m*l-f*u*l+f*o*d-a*m*d-h*o*g+a*u*g,v=p*u*l-c*m*l-p*o*d+s*m*d+c*o*g-s*u*g,y=c*f*l-p*h*l+p*a*d-s*f*d-c*a*g+s*h*g,x=p*h*o-c*f*o-p*a*u+s*f*u+c*a*m-s*h*m,b=t*A+r*v+n*y+i*x;if(0===b)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const E=1/b;return e[0]=A*E,e[1]=(f*u*i-h*m*i-f*n*d+r*m*d+h*n*g-r*u*g)*E,e[2]=(a*m*i-f*o*i+f*n*l-r*m*l-a*n*g+r*o*g)*E,e[3]=(h*o*i-a*u*i-h*n*l+r*u*l+a*n*d-r*o*d)*E,e[4]=v*E,e[5]=(c*m*i-p*u*i+p*n*d-t*m*d-c*n*g+t*u*g)*E,e[6]=(p*o*i-s*m*i-p*n*l+t*m*l+s*n*g-t*o*g)*E,e[7]=(s*u*i-c*o*i+c*n*l-t*u*l-s*n*d+t*o*d)*E,e[8]=y*E,e[9]=(p*h*i-c*f*i-p*r*d+t*f*d+c*r*g-t*h*g)*E,e[10]=(s*f*i-p*a*i+p*r*l-t*f*l-s*r*g+t*a*g)*E,e[11]=(c*a*i-s*h*i-c*r*l+t*h*l+s*r*d-t*a*d)*E,e[12]=x*E,e[13]=(c*f*n-p*h*n+p*r*u-t*f*u-c*r*m+t*h*m)*E,e[14]=(p*a*n-s*f*n-p*r*o+t*f*o+s*r*m-t*a*m)*E,e[15]=(s*h*n-c*a*n+c*r*o-t*h*o-s*r*u+t*a*u)*E,this}scale(e){const t=this.elements,r=e.x,n=e.y,i=e.z;return t[0]*=r,t[4]*=n,t[8]*=i,t[1]*=r,t[5]*=n,t[9]*=i,t[2]*=r,t[6]*=n,t[10]*=i,t[3]*=r,t[7]*=n,t[11]*=i,this}getMaxScaleOnAxis(){const e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],r=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],n=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,r,n))}makeTranslation(e,t,r){return this.set(1,0,0,e,0,1,0,t,0,0,1,r,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),r=Math.sin(e);return this.set(1,0,0,0,0,t,-r,0,0,r,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),r=Math.sin(e);return this.set(t,0,r,0,0,1,0,0,-r,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),r=Math.sin(e);return this.set(t,-r,0,0,r,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const r=Math.cos(t),n=Math.sin(t),i=1-r,s=e.x,a=e.y,o=e.z,l=i*s,c=i*a;return this.set(l*s+r,l*a-n*o,l*o+n*a,0,l*a+n*o,c*a+r,c*o-n*s,0,l*o-n*a,c*o+n*s,i*o*o+r,0,0,0,0,1),this}makeScale(e,t,r){return this.set(e,0,0,0,0,t,0,0,0,0,r,0,0,0,0,1),this}makeShear(e,t,r,n,i,s){return this.set(1,r,i,0,e,1,s,0,t,n,1,0,0,0,0,1),this}compose(e,t,r){const n=this.elements,i=t._x,s=t._y,a=t._z,o=t._w,l=i+i,c=s+s,h=a+a,u=i*l,d=i*c,p=i*h,f=s*c,m=s*h,g=a*h,A=o*l,v=o*c,y=o*h,x=r.x,b=r.y,E=r.z;return n[0]=(1-(f+g))*x,n[1]=(d+y)*x,n[2]=(p-v)*x,n[3]=0,n[4]=(d-y)*b,n[5]=(1-(u+g))*b,n[6]=(m+A)*b,n[7]=0,n[8]=(p+v)*E,n[9]=(m-A)*E,n[10]=(1-(u+f))*E,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,this}decompose(e,t,r){const n=this.elements;let i=zn.set(n[0],n[1],n[2]).length();const s=zn.set(n[4],n[5],n[6]).length(),a=zn.set(n[8],n[9],n[10]).length();this.determinant()<0&&(i=-i),e.x=n[12],e.y=n[13],e.z=n[14],Qn.copy(this);const o=1/i,l=1/s,c=1/a;return Qn.elements[0]*=o,Qn.elements[1]*=o,Qn.elements[2]*=o,Qn.elements[4]*=l,Qn.elements[5]*=l,Qn.elements[6]*=l,Qn.elements[8]*=c,Qn.elements[9]*=c,Qn.elements[10]*=c,t.setFromRotationMatrix(Qn),r.x=i,r.y=s,r.z=a,this}makePerspective(e,t,r,n,i,s){const a=this.elements,o=2*i/(t-e),l=2*i/(r-n),c=(t+e)/(t-e),h=(r+n)/(r-n),u=-(s+i)/(s-i),d=-2*s*i/(s-i);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,t,r,n,i,s){const a=this.elements,o=1/(t-e),l=1/(r-n),c=1/(s-i),h=(t+e)*o,u=(r+n)*l,d=(s+i)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){const t=this.elements,r=e.elements;for(let n=0;n<16;n++)if(t[n]!==r[n])return!1;return!0}fromArray(e,t=0){for(let r=0;r<16;r++)this.elements[r]=e[r+t];return this}toArray(e=[],t=0){const r=this.elements;return e[t]=r[0],e[t+1]=r[1],e[t+2]=r[2],e[t+3]=r[3],e[t+4]=r[4],e[t+5]=r[5],e[t+6]=r[6],e[t+7]=r[7],e[t+8]=r[8],e[t+9]=r[9],e[t+10]=r[10],e[t+11]=r[11],e[t+12]=r[12],e[t+13]=r[13],e[t+14]=r[14],e[t+15]=r[15],e}}const zn=new hn,Qn=new Gn,Vn=new hn(0,0,0),Hn=new hn(1,1,1),jn=new hn,Wn=new hn,Xn=new hn,Yn=new Gn,qn=new cn;class Kn{constructor(e=0,t=0,r=0,n=Kn.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=r,this._order=n}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,r,n=this._order){return this._x=e,this._y=t,this._z=r,this._order=n,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,r=!0){const n=e.elements,i=n[0],s=n[4],a=n[8],o=n[1],l=n[5],c=n[9],h=n[2],u=n[6],d=n[10];switch(t){case"XYZ":this._y=Math.asin(Sr(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,i)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-Sr(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,i),this._z=0);break;case"ZXY":this._x=Math.asin(Sr(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,i));break;case"ZYX":this._y=Math.asin(-Sr(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,i)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(Sr(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,i)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Sr(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,i)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===r&&this._onChangeCallback(),this}setFromQuaternion(e,t,r){return Yn.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Yn,t,r)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return qn.setFromEuler(this),this.setFromQuaternion(qn,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],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Kn.DEFAULT_ORDER="XYZ";class Jn{constructor(){this.mask=1}set(e){this.mask=(1<>>0}enable(e){this.mask|=1<1){for(let e=0;e1){for(let e=0;e0&&(r=r.concat(i))}return r}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ni,e,ii),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(ni,si,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let r=0,n=t.length;r0&&(n.userData=this.userData),n.layers=this.layers.mask,n.matrix=this.matrix.toArray(),n.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(n.matrixAutoUpdate=!1),this.isInstancedMesh&&(n.type="InstancedMesh",n.count=this.count,n.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(n.instanceColor=this.instanceColor.toJSON())),this.isScene)this.background&&(this.background.isColor?n.background=this.background.toJSON():this.background.isTexture&&(n.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(n.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){n.geometry=i(e.geometries,this.geometry);const t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){const r=t.shapes;if(Array.isArray(r))for(let t=0,n=r.length;t0){n.children=[];for(let t=0;t0){n.animations=[];for(let t=0;t0&&(r.geometries=t),n.length>0&&(r.materials=n),i.length>0&&(r.textures=i),a.length>0&&(r.images=a),o.length>0&&(r.shapes=o),l.length>0&&(r.skeletons=l),c.length>0&&(r.animations=c),h.length>0&&(r.nodes=h)}return r.object=n,r;function s(e){const t=[];for(const r in e){const n=e[r];delete n.metadata,t.push(n)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations,this.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let r=0;r0?n.multiplyScalar(1/Math.sqrt(i)):n.set(0,0,0)}static getBarycoord(e,t,r,n,i){di.subVectors(n,t),pi.subVectors(r,t),fi.subVectors(e,t);const s=di.dot(di),a=di.dot(pi),o=di.dot(fi),l=pi.dot(pi),c=pi.dot(fi),h=s*l-a*a;if(0===h)return i.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return i.set(1-d-p,p,d)}static containsPoint(e,t,r,n){return this.getBarycoord(e,t,r,n,mi),mi.x>=0&&mi.y>=0&&mi.x+mi.y<=1}static getUV(e,t,r,n,i,s,a,o){return!1===Ei&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ei=!0),this.getInterpolation(e,t,r,n,i,s,a,o)}static getInterpolation(e,t,r,n,i,s,a,o){return this.getBarycoord(e,t,r,n,mi),o.setScalar(0),o.addScaledVector(i,mi.x),o.addScaledVector(s,mi.y),o.addScaledVector(a,mi.z),o}static isFrontFacing(e,t,r,n){return di.subVectors(r,t),pi.subVectors(e,t),di.cross(pi).dot(n)<0}set(e,t,r){return this.a.copy(e),this.b.copy(t),this.c.copy(r),this}setFromPointsAndIndices(e,t,r,n){return this.a.copy(e[t]),this.b.copy(e[r]),this.c.copy(e[n]),this}setFromAttributeAndIndices(e,t,r,n){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,r),this.c.fromBufferAttribute(e,n),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 di.subVectors(this.c,this.b),pi.subVectors(this.a,this.b),.5*di.cross(pi).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return _i.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return _i.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,r,n,i){return!1===Ei&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ei=!0),_i.getInterpolation(e,this.a,this.b,this.c,t,r,n,i)}getInterpolation(e,t,r,n,i){return _i.getInterpolation(e,this.a,this.b,this.c,t,r,n,i)}containsPoint(e){return _i.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return _i.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const r=this.a,n=this.b,i=this.c;let s,a;gi.subVectors(n,r),Ai.subVectors(i,r),yi.subVectors(e,r);const o=gi.dot(yi),l=Ai.dot(yi);if(o<=0&&l<=0)return t.copy(r);xi.subVectors(e,n);const c=gi.dot(xi),h=Ai.dot(xi);if(c>=0&&h<=c)return t.copy(n);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),t.copy(r).addScaledVector(gi,s);bi.subVectors(e,i);const d=gi.dot(bi),p=Ai.dot(bi);if(p>=0&&d<=p)return t.copy(i);const f=d*l-o*p;if(f<=0&&l>=0&&p<=0)return a=l/(l-p),t.copy(r).addScaledVector(Ai,a);const m=c*p-d*h;if(m<=0&&h-c>=0&&d-p>=0)return vi.subVectors(i,n),a=(h-c)/(h-c+(d-p)),t.copy(n).addScaledVector(vi,a);const g=1/(m+f+u);return s=f*g,a=u*g,t.copy(r).addScaledVector(gi,s).addScaledVector(Ai,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let Si=0;class Mi extends vr{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Si++}),this.uuid=_r(),this.name="",this.type="Material",this.blending=y,this.side=f,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=D,this.blendDst=L,this.blendEquation=S,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=V,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=sr,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=jt,this.stencilZFail=jt,this.stencilZPass=jt,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(void 0!==e)for(const t in e){const r=e[t];if(void 0===r){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}const n=this[t];void 0!==n?n&&n.isColor?n.set(r):n&&n.isVector3&&r&&r.isVector3?n.copy(r):this[t]=r:console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`)}}toJSON(e){const t=void 0===e||"string"==typeof e;t&&(e={textures:{},images:{}});const r={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function n(e){const t=[];for(const r in e){const n=e[r];delete n.metadata,t.push(n)}return t}if(r.uuid=this.uuid,r.type=this.type,""!==this.name&&(r.name=this.name),this.color&&this.color.isColor&&(r.color=this.color.getHex()),void 0!==this.roughness&&(r.roughness=this.roughness),void 0!==this.metalness&&(r.metalness=this.metalness),void 0!==this.sheen&&(r.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(r.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(r.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(r.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(r.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(r.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(r.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(r.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(r.shininess=this.shininess),void 0!==this.clearcoat&&(r.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(r.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(r.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(r.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(r.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,r.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),void 0!==this.iridescence&&(r.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(r.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(r.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(r.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(r.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(r.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(r.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(r.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(r.lightMap=this.lightMap.toJSON(e).uuid,r.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(r.aoMap=this.aoMap.toJSON(e).uuid,r.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(r.bumpMap=this.bumpMap.toJSON(e).uuid,r.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(r.normalMap=this.normalMap.toJSON(e).uuid,r.normalMapType=this.normalMapType,r.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(r.displacementMap=this.displacementMap.toJSON(e).uuid,r.displacementScale=this.displacementScale,r.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(r.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(r.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(r.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(r.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(r.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(r.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(r.envMap=this.envMap.toJSON(e).uuid,void 0!==this.combine&&(r.combine=this.combine)),void 0!==this.envMapIntensity&&(r.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(r.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(r.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(r.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(r.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(r.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(r.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(r.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(r.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(r.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(r.size=this.size),null!==this.shadowSide&&(r.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(r.sizeAttenuation=this.sizeAttenuation),this.blending!==y&&(r.blending=this.blending),this.side!==f&&(r.side=this.side),this.vertexColors&&(r.vertexColors=!0),this.opacity<1&&(r.opacity=this.opacity),!0===this.transparent&&(r.transparent=this.transparent),r.depthFunc=this.depthFunc,r.depthTest=this.depthTest,r.depthWrite=this.depthWrite,r.colorWrite=this.colorWrite,r.stencilWrite=this.stencilWrite,r.stencilWriteMask=this.stencilWriteMask,r.stencilFunc=this.stencilFunc,r.stencilRef=this.stencilRef,r.stencilFuncMask=this.stencilFuncMask,r.stencilFail=this.stencilFail,r.stencilZFail=this.stencilZFail,r.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(r.rotation=this.rotation),!0===this.polygonOffset&&(r.polygonOffset=!0),0!==this.polygonOffsetFactor&&(r.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(r.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(r.linewidth=this.linewidth),void 0!==this.dashSize&&(r.dashSize=this.dashSize),void 0!==this.gapSize&&(r.gapSize=this.gapSize),void 0!==this.scale&&(r.scale=this.scale),!0===this.dithering&&(r.dithering=!0),this.alphaTest>0&&(r.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(r.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(r.premultipliedAlpha=this.premultipliedAlpha),!0===this.forceSinglePass&&(r.forceSinglePass=this.forceSinglePass),!0===this.wireframe&&(r.wireframe=this.wireframe),this.wireframeLinewidth>1&&(r.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(r.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(r.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(r.flatShading=this.flatShading),!1===this.visible&&(r.visible=!1),!1===this.toneMapped&&(r.toneMapped=!1),!1===this.fog&&(r.fog=!1),Object.keys(this.userData).length>0&&(r.userData=this.userData),t){const t=n(e.textures),i=n(e.images);t.length>0&&(r.textures=t),i.length>0&&(r.images=i)}return r}clone(){return(new this.constructor).copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const t=e.clippingPlanes;let r=null;if(null!==t){const e=t.length;r=new Array(e);for(let n=0;n!==e;++n)r[n]=t[n].clone()}return this.clippingPlanes=r,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.forceSinglePass=e.forceSinglePass,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){!0===e&&this.version++}}const wi={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},Ci={h:0,s:0,l:0},Ti={h:0,s:0,l:0};function Ii(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+6*(t-e)*(2/3-r):e}class Bi{constructor(e,t,r){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===t&&void 0===r?this.set(e):this.setRGB(e,t,r)}set(e){return e&&e.isColor?this.copy(e):"number"==typeof e?this.setHex(e):"string"==typeof e&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=zt){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,Yr.toWorkingColorSpace(this,t),this}setRGB(e,t,r,n=Yr.workingColorSpace){return this.r=e,this.g=t,this.b=r,Yr.toWorkingColorSpace(this,n),this}setHSL(e,t,r,n=Yr.workingColorSpace){if(e=Mr(e,1),t=Sr(t,0,1),r=Sr(r,0,1),0===t)this.r=this.g=this.b=r;else{const n=r<=.5?r*(1+t):r+t-r*t,i=2*r-n;this.r=Ii(i,n,e+1/3),this.g=Ii(i,n,e),this.b=Ii(i,n,e-1/3)}return Yr.toWorkingColorSpace(this,n),this}setStyle(e,t=zt){function r(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let n;if(n=/^(\w+)\(([^\)]*)\)/.exec(e)){let i;const s=n[1],a=n[2];switch(s){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return r(i[4]),this.setRGB(Math.min(255,parseInt(i[1],10))/255,Math.min(255,parseInt(i[2],10))/255,Math.min(255,parseInt(i[3],10))/255,t);if(i=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return r(i[4]),this.setRGB(Math.min(100,parseInt(i[1],10))/100,Math.min(100,parseInt(i[2],10))/100,Math.min(100,parseInt(i[3],10))/100,t);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return r(i[4]),this.setHSL(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(n=/^\#([A-Fa-f\d]+)$/.exec(e)){const r=n[1],i=r.length;if(3===i)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,t);if(6===i)return this.setHex(parseInt(r,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=zt){const r=wi[e.toLowerCase()];return void 0!==r?this.setHex(r,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=Qr(e.r),this.g=Qr(e.g),this.b=Qr(e.b),this}copyLinearToSRGB(e){return this.r=Vr(e.r),this.g=Vr(e.g),this.b=Vr(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=zt){return Yr.fromWorkingColorSpace(Ri.copy(this),e),65536*Math.round(Sr(255*Ri.r,0,255))+256*Math.round(Sr(255*Ri.g,0,255))+Math.round(Sr(255*Ri.b,0,255))}getHexString(e=zt){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Yr.workingColorSpace){Yr.fromWorkingColorSpace(Ri.copy(this),t);const r=Ri.r,n=Ri.g,i=Ri.b,s=Math.max(r,n,i),a=Math.min(r,n,i);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const e=s-a;switch(l=c<=.5?e/(s+a):e/(2-s-a),s){case r:o=(n-i)/e+(n>-e-14,n[256|l]=1024>>-e-14|32768,i[l]=-e-1,i[256|l]=-e-1):e<=15?(n[l]=e+15<<10,n[256|l]=e+15<<10|32768,i[l]=13,i[256|l]=13):e<128?(n[l]=31744,n[256|l]=64512,i[l]=24,i[256|l]=24):(n[l]=31744,n[256|l]=64512,i[l]=13,i[256|l]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let e=l<<13,t=0;for(;0==(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,s[l]=e|t}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)a[l]=l<<23;a[31]=1199570944,a[32]=2147483648;for(let l=33;l<63;++l)a[l]=2147483648+(l-32<<23);a[63]=3347054592;for(let l=1;l<64;++l)32!==l&&(o[l]=1024);return{floatView:t,uint32View:r,baseTable:n,shiftTable:i,mantissaTable:s,exponentTable:a,offsetTable:o}}function Fi(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=Sr(e,-65504,65504),Di.floatView[0]=e;const t=Di.uint32View[0],r=t>>23&511;return Di.baseTable[r]+((8388607&t)>>Di.shiftTable[r])}function Ui(e){const t=e>>10;return Di.uint32View[0]=Di.mantissaTable[Di.offsetTable[t]+(1023&e)]+Di.exponentTable[t],Di.floatView[0]}const Oi={toHalfFloat:Fi,fromHalfFloat:Ui},Ni=new hn,ki=new Dr;class Gi{constructor(e,t,r=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=void 0!==e?e.length/t:0,this.normalized=r,this.usage=ar,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&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,r){e*=this.itemSize,r*=t.itemSize;for(let n=0,i=this.itemSize;n0&&(e.userData=this.userData),void 0!==this.parameters){const t=this.parameters;for(const r in t)void 0!==t[r]&&(e[r]=t[r]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const r=this.attributes;for(const o in r){const t=r[o];e.data.attributes[o]=t.toJSON(e.data)}const n={};let i=!1;for(const o in this.morphAttributes){const t=this.morphAttributes[o],r=[];for(let n=0,i=t.length;n0&&(n[o]=r,i=!0)}i&&(e.data.morphAttributes=n,e.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const a=this.boundingSphere;return null!==a&&(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 r=e.index;null!==r&&this.setIndex(r.clone(t));const n=e.attributes;for(const l in n){const e=n[l];this.setAttribute(l,e.clone(t))}const i=e.morphAttributes;for(const l in i){const e=[],r=i[l];for(let n=0,i=r.length;n0){const r=e[t[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=r.length;e(e.far-e.near)**2)return}ss.copy(i).invert(),as.copy(e.ray).applyMatrix4(ss),null!==r.boundingBox&&!1===as.intersectsBox(r.boundingBox)||this._computeIntersections(e,t)}}_computeIntersections(e,t){let r;const n=this.geometry,i=this.material,s=n.index,a=n.attributes.position,o=n.attributes.uv,l=n.attributes.uv1,c=n.attributes.normal,h=n.groups,u=n.drawRange;if(null!==s)if(Array.isArray(i))for(let d=0,p=h.length;dr.far?null:{distance:c,point:bs.clone(),object:e}}(e,t,r,n,cs,hs,us,xs);if(h){i&&(fs.fromBufferAttribute(i,o),ms.fromBufferAttribute(i,l),gs.fromBufferAttribute(i,c),h.uv=_i.getInterpolation(xs,cs,hs,us,fs,ms,gs,new Dr)),s&&(fs.fromBufferAttribute(s,o),ms.fromBufferAttribute(s,l),gs.fromBufferAttribute(s,c),h.uv1=_i.getInterpolation(xs,cs,hs,us,fs,ms,gs,new Dr),h.uv2=h.uv1),a&&(As.fromBufferAttribute(a,o),vs.fromBufferAttribute(a,l),ys.fromBufferAttribute(a,c),h.normal=_i.getInterpolation(xs,cs,hs,us,As,vs,ys,new hn),h.normal.dot(n.direction)>0&&h.normal.multiplyScalar(-1));const e={a:o,b:l,c:c,normal:new hn,materialIndex:0};_i.getNormal(cs,hs,us,e.normal),h.face=e}return h}class Ss extends is{constructor(e=1,t=1,r=1,n=1,i=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:r,widthSegments:n,heightSegments:i,depthSegments:s};const a=this;n=Math.floor(n),i=Math.floor(i),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function p(e,t,r,n,i,s,p,f,m,g,A){const v=s/m,y=p/g,x=s/2,b=p/2,E=f/2,_=m+1,S=g+1;let M=0,w=0;const C=new hn;for(let a=0;a0?1:-1,c.push(C.x,C.y,C.z),h.push(o/m),h.push(1-a/g),M+=1}}for(let a=0;a0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;const r={};for(const n in this.extensions)!0===this.extensions[n]&&(r[n]=!0);return Object.keys(r).length>0&&(t.extensions=r),t}}class Bs extends ui{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Gn,this.projectionMatrix=new Gn,this.projectionMatrixInverse=new Gn}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)}}class Rs extends Bs{constructor(e=50,t=1,r=.1,n=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=r,this.far=n,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=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*Er*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*br*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*Er*Math.atan(Math.tan(.5*br*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,r,n,i,s){this.aspect=e/t,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=r,this.view.offsetY=n,this.view.width=i,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*br*this.fov)/this.zoom,r=2*t,n=this.aspect*r,i=-.5*n;const s=this.view;if(null!==this.view&&this.view.enabled){const e=s.fullWidth,a=s.fullHeight;i+=s.offsetX*n/e,t-=s.offsetY*r/a,n*=s.width/e,r*=s.height/a}const a=this.filmOffset;0!==a&&(i+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(i,i+n,t,t-r,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,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const Ps=-90;class Ds extends ui{constructor(e,t,r){super(),this.type="CubeCamera",this.renderTarget=r;const n=new Rs(Ps,1,e,t);n.layers=this.layers,n.up.set(0,1,0),n.lookAt(1,0,0),this.add(n);const i=new Rs(Ps,1,e,t);i.layers=this.layers,i.up.set(0,1,0),i.lookAt(-1,0,0),this.add(i);const s=new Rs(Ps,1,e,t);s.layers=this.layers,s.up.set(0,0,-1),s.lookAt(0,1,0),this.add(s);const a=new Rs(Ps,1,e,t);a.layers=this.layers,a.up.set(0,0,1),a.lookAt(0,-1,0),this.add(a);const o=new Rs(Ps,1,e,t);o.layers=this.layers,o.up.set(0,1,0),o.lookAt(0,0,1),this.add(o);const l=new Rs(Ps,1,e,t);l.layers=this.layers,l.up.set(0,1,0),l.lookAt(0,0,-1),this.add(l)}update(e,t){null===this.parent&&this.updateMatrixWorld();const r=this.renderTarget,[n,i,s,a,o,l]=this.children,c=e.getRenderTarget(),h=e.toneMapping,u=e.xr.enabled;e.toneMapping=J,e.xr.enabled=!1;const d=r.texture.generateMipmaps;r.texture.generateMipmaps=!1,e.setRenderTarget(r,0),e.render(t,n),e.setRenderTarget(r,1),e.render(t,i),e.setRenderTarget(r,2),e.render(t,s),e.setRenderTarget(r,3),e.render(t,a),e.setRenderTarget(r,4),e.render(t,o),r.texture.generateMipmaps=d,e.setRenderTarget(r,5),e.render(t,l),e.setRenderTarget(c),e.toneMapping=h,e.xr.enabled=u,r.texture.needsPMREMUpdate=!0}}class Ls extends en{constructor(e,t,r,n,i,s,a,o,l,c){super(e=void 0!==e?e:[],t=void 0!==t?t:ie,r,n,i,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class Fs extends rn{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const r={width:e,height:e,depth:1},n=[r,r,r,r,r,r];void 0!==t.encoding&&(zr("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===Ft?zt:Gt),this.texture=new Ls(n,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:Ae}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const r={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},n=new Ss(5,5,5),i=new Is({name:"CubemapFromEquirect",uniforms:Ms(r.uniforms),vertexShader:r.vertexShader,fragmentShader:r.fragmentShader,side:m,blending:v});i.uniforms.tEquirect.value=t;const s=new Es(n,i),a=t.minFilter;t.minFilter===xe&&(t.minFilter=Ae);return new Ds(1,10,this).update(e,s),t.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(e,t,r,n){const i=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(t,r,n);e.setRenderTarget(i)}}const Us=new hn,Os=new hn,Ns=new Lr;class ks{constructor(e=new hn(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,r,n){return this.normal.set(e,t,r),this.constant=n,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,r){const n=Us.subVectors(r,t).cross(Os.subVectors(e,t)).normalize();return this.setFromNormalAndCoplanarPoint(n,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(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,t){const r=e.delta(Us),n=this.normal.dot(r);if(0===n)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const i=-(e.start.dot(this.normal)+this.constant)/n;return i<0||i>1?null:t.copy(e.start).addScaledVector(r,i)}intersectsLine(e){const t=this.distanceToPoint(e.start),r=this.distanceToPoint(e.end);return t<0&&r>0||r<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 r=t||Ns.getNormalMatrix(e),n=this.coplanarPoint(Us).applyMatrix4(e),i=this.normal.applyMatrix3(r).normalize();return this.constant=-n.dot(i),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)}}const Gs=new Rn,zs=new hn;class Qs{constructor(e=new ks,t=new ks,r=new ks,n=new ks,i=new ks,s=new ks){this.planes=[e,t,r,n,i,s]}set(e,t,r,n,i,s){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(r),a[3].copy(n),a[4].copy(i),a[5].copy(s),this}copy(e){const t=this.planes;for(let r=0;r<6;r++)t[r].copy(e.planes[r]);return this}setFromProjectionMatrix(e){const t=this.planes,r=e.elements,n=r[0],i=r[1],s=r[2],a=r[3],o=r[4],l=r[5],c=r[6],h=r[7],u=r[8],d=r[9],p=r[10],f=r[11],m=r[12],g=r[13],A=r[14],v=r[15];return t[0].setComponents(a-n,h-o,f-u,v-m).normalize(),t[1].setComponents(a+n,h+o,f+u,v+m).normalize(),t[2].setComponents(a+i,h+l,f+d,v+g).normalize(),t[3].setComponents(a-i,h-l,f-d,v-g).normalize(),t[4].setComponents(a-s,h-c,f-p,v-A).normalize(),t[5].setComponents(a+s,h+c,f+p,v+A).normalize(),this}intersectsObject(e){if(void 0!==e.boundingSphere)null===e.boundingSphere&&e.computeBoundingSphere(),Gs.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const t=e.geometry;null===t.boundingSphere&&t.computeBoundingSphere(),Gs.copy(t.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Gs)}intersectsSprite(e){return Gs.center.set(0,0,0),Gs.radius=.7071067811865476,Gs.applyMatrix4(e.matrixWorld),this.intersectsSphere(Gs)}intersectsSphere(e){const t=this.planes,r=e.center,n=-e.radius;for(let i=0;i<6;i++){if(t[i].distanceToPoint(r)0?e.max.x:e.min.x,zs.y=n.normal.y>0?e.max.y:e.min.y,zs.z=n.normal.z>0?e.max.z:e.min.z,n.distanceToPoint(zs)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let r=0;r<6;r++)if(t[r].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function Vs(){let e=null,t=!1,r=null,n=null;function i(t,s){r(t,s),n=e.requestAnimationFrame(i)}return{start:function(){!0!==t&&null!==r&&(n=e.requestAnimationFrame(i),t=!0)},stop:function(){e.cancelAnimationFrame(n),t=!1},setAnimationLoop:function(e){r=e},setContext:function(t){e=t}}}function Hs(e,t){const r=t.isWebGL2,n=new WeakMap;return{get:function(e){return e.isInterleavedBufferAttribute&&(e=e.data),n.get(e)},remove:function(t){t.isInterleavedBufferAttribute&&(t=t.data);const r=n.get(t);r&&(e.deleteBuffer(r.buffer),n.delete(t))},update:function(t,i){if(t.isGLBufferAttribute){const e=n.get(t);return void((!e||e.version 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}\nvec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n} // validated",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\thighp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define cubeUV_r0 1.0\n\t#define cubeUV_v0 0.339\n\t#define cubeUV_m0 - 2.0\n\t#define cubeUV_r1 0.8\n\t#define cubeUV_v1 0.276\n\t#define cubeUV_m1 - 1.0\n\t#define cubeUV_r4 0.4\n\t#define cubeUV_v4 0.046\n\t#define cubeUV_m4 2.0\n\t#define cubeUV_r5 0.305\n\t#define cubeUV_v5 0.016\n\t#define cubeUV_m5 3.0\n\t#define cubeUV_r6 0.21\n\t#define cubeUV_v6 0.0038\n\t#define cubeUV_m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= cubeUV_r1 ) {\n\t\t\tmip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;\n\t\t} else if ( roughness >= cubeUV_r4 ) {\n\t\t\tmip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;\n\t\t} else if ( roughness >= cubeUV_r5 ) {\n\t\t\tmip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;\n\t\t} else if ( roughness >= cubeUV_r6 ) {\n\t\t\tmip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\tvec2 fw = fwidth( coord ) * 0.5;\n\t\treturn mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_fragment:"LambertMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularStrength = specularStrength;",lights_lambert_pars_fragment:"varying vec3 vViewPosition;\nstruct LambertMaterial {\n\tvec3 diffuseColor;\n\tfloat specularStrength;\n};\nvoid RE_Direct_Lambert( const in IncidentLight directLight, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in GeometricContext geometry, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Lambert\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Lambert",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( LEGACY_LIGHTS )\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#else\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\tmaterial.ior = ior;\n\t#ifdef USE_SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULAR_COLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;\n\t\t#endif\n\t\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n\t#ifdef IOR\n\t\tfloat ior;\n\t#endif\n\t#ifdef USE_TRANSMISSION\n\t\tfloat transmission;\n\t\tfloat transmissionAlpha;\n\t\tfloat thickness;\n\t\tfloat attenuationDistance;\n\t\tvec3 attenuationColor;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\n#ifdef USE_CLEARCOAT\n\tvec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {\n\t\tvec3 f0 = material.clearcoatF0;\n\t\tfloat f90 = material.clearcoatF90;\n\t\tfloat roughness = material.clearcoatRoughness;\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {\n\tvec3 f0 = material.specularColor;\n\tfloat f90 = material.specularF90;\n\tfloat roughness = material.roughness;\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\t#ifdef USE_IRIDESCENCE\n\t\tF = mix( F, material.iridescenceFresnel, material.iridescence );\n\t#endif\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#else\nvoid computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material );\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\tvec4 spotColor;\n\tvec3 spotLightCoord;\n\tbool inSpotLightMap;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX\n\t\t#elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS\n\t\t#else\n\t\t#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )\n\t\t#endif\n\t\t#if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )\n\t\t\tspotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;\n\t\t\tinSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );\n\t\t\tspotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );\n\t\t\tdirectLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;\n\t\t#endif\n\t\t#undef SPOT_LIGHT_MAP_INDEX\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, vMapUv );\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t#if defined( USE_POINTS_UV )\n\t\tvec2 uv = vUv;\n\t#else\n\t\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_POINTS_UV )\n\tvarying vec2 vUv;\n#else\n\t#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\t\tuniform mat3 uvTransform;\n\t#endif\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_NORMALMAP_TANGENTSPACE\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn = getTangentFrame( - vViewPosition, normal, vNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn[0] *= faceDirection;\n\t\ttbn[1] *= faceDirection;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\t#ifdef USE_TANGENT\n\t\tmat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );\n\t#else\n\t\tmat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );\n\t#endif\n\t#if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )\n\t\ttbn2[0] *= faceDirection;\n\t\ttbn2[1] *= faceDirection;\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef USE_NORMALMAP_OBJECTSPACE\n\tnormal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( USE_NORMALMAP_TANGENTSPACE )\n\tvec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\tnormal = normalize( tbn * mapN );\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef USE_NORMALMAP_OBJECTSPACE\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tmat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( uv.st );\n\t\tvec2 st1 = dFdy( uv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );\n\t\treturn mat3( T * scale, B * scale, N );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\tclearcoatNormal = normalize( tbn2 * clearcoatMapN );\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= material.transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec2 packDepthToRG( in highp float v ) {\n\treturn packDepthToRGBA( v ).yx;\n}\nfloat unpackRGToDepth( const in highp vec2 v ) {\n\treturn unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn depth * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * depth - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#if NUM_SPOT_LIGHT_MAPS > 0\n\tuniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;\n\t\tbool frustumTest = inFrustum && shadowCoord.z <= 1.0;\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#if NUM_SPOT_LIGHT_COORDS > 0\n\tuniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];\n\tvarying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];\n#endif\n#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )\n\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\tvec4 shadowWorldPosition;\n#endif\n#if defined( USE_SHADOWMAP )\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if NUM_SPOT_LIGHT_COORDS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition;\n\t\t#if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\t\tshadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;\n\t\t#endif\n\t\tvSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tmaterial.transmission = transmission;\n\tmaterial.transmissionAlpha = 1.0;\n\tmaterial.thickness = thickness;\n\tmaterial.attenuationDistance = attenuationDistance;\n\tmaterial.attenuationColor = attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tmaterial.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tmaterial.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,\n\t\tmaterial.attenuationColor, material.attenuationDistance );\n\tmaterial.transmissionAlpha = mix( material.transmissionAlpha, transmission.a, material.transmission );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, material.transmission );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tfloat w0( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );\n\t}\n\tfloat w1( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );\n\t}\n\tfloat w2( float a ){\n\t\treturn ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );\n\t}\n\tfloat w3( float a ) {\n\t\treturn ( 1.0 / 6.0 ) * ( a * a * a );\n\t}\n\tfloat g0( float a ) {\n\t\treturn w0( a ) + w1( a );\n\t}\n\tfloat g1( float a ) {\n\t\treturn w2( a ) + w3( a );\n\t}\n\tfloat h0( float a ) {\n\t\treturn - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );\n\t}\n\tfloat h1( float a ) {\n\t\treturn 1.0 + w3( a ) / ( w2( a ) + w3( a ) );\n\t}\n\tvec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {\n\t\tuv = uv * texelSize.zw + 0.5;\n\t\tvec2 iuv = floor( uv );\n\t\tvec2 fuv = fract( uv );\n\t\tfloat g0x = g0( fuv.x );\n\t\tfloat g1x = g1( fuv.x );\n\t\tfloat h0x = h0( fuv.x );\n\t\tfloat h1x = h1( fuv.x );\n\t\tfloat h0y = h0( fuv.y );\n\t\tfloat h1y = h1( fuv.y );\n\t\tvec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\tvec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;\n\t\treturn g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +\n\t\t\tg1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );\n\t}\n\tvec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {\n\t\tvec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );\n\t\tvec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );\n\t\tvec2 fLodSizeInv = 1.0 / fLodSize;\n\t\tvec2 cLodSizeInv = 1.0 / cLodSize;\n\t\tvec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );\n\t\tvec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );\n\t\treturn mix( fSample, cSample, fract( lod ) );\n\t}\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\treturn textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( isinf( attenuationDistance ) ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\tvarying vec2 vUv;\n#endif\n#ifdef USE_MAP\n\tuniform mat3 mapTransform;\n\tvarying vec2 vMapUv;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform mat3 alphaMapTransform;\n\tvarying vec2 vAlphaMapUv;\n#endif\n#ifdef USE_LIGHTMAP\n\tuniform mat3 lightMapTransform;\n\tvarying vec2 vLightMapUv;\n#endif\n#ifdef USE_AOMAP\n\tuniform mat3 aoMapTransform;\n\tvarying vec2 vAoMapUv;\n#endif\n#ifdef USE_BUMPMAP\n\tuniform mat3 bumpMapTransform;\n\tvarying vec2 vBumpMapUv;\n#endif\n#ifdef USE_NORMALMAP\n\tuniform mat3 normalMapTransform;\n\tvarying vec2 vNormalMapUv;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tuniform mat3 displacementMapTransform;\n\tvarying vec2 vDisplacementMapUv;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tuniform mat3 emissiveMapTransform;\n\tvarying vec2 vEmissiveMapUv;\n#endif\n#ifdef USE_METALNESSMAP\n\tuniform mat3 metalnessMapTransform;\n\tvarying vec2 vMetalnessMapUv;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tuniform mat3 roughnessMapTransform;\n\tvarying vec2 vRoughnessMapUv;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tuniform mat3 clearcoatMapTransform;\n\tvarying vec2 vClearcoatMapUv;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform mat3 clearcoatNormalMapTransform;\n\tvarying vec2 vClearcoatNormalMapUv;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform mat3 clearcoatRoughnessMapTransform;\n\tvarying vec2 vClearcoatRoughnessMapUv;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tuniform mat3 sheenColorMapTransform;\n\tvarying vec2 vSheenColorMapUv;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tuniform mat3 sheenRoughnessMapTransform;\n\tvarying vec2 vSheenRoughnessMapUv;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tuniform mat3 iridescenceMapTransform;\n\tvarying vec2 vIridescenceMapUv;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform mat3 iridescenceThicknessMapTransform;\n\tvarying vec2 vIridescenceThicknessMapUv;\n#endif\n#ifdef USE_SPECULARMAP\n\tuniform mat3 specularMapTransform;\n\tvarying vec2 vSpecularMapUv;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tuniform mat3 specularColorMapTransform;\n\tvarying vec2 vSpecularColorMapUv;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tuniform mat3 specularIntensityMapTransform;\n\tvarying vec2 vSpecularIntensityMapUv;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tuniform mat3 transmissionMapTransform;\n\tvarying vec2 vTransmissionMapUv;\n#endif\n#ifdef USE_THICKNESSMAP\n\tuniform mat3 thicknessMapTransform;\n\tvarying vec2 vThicknessMapUv;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = vec3( uv, 1 ).xy;\n#endif\n#ifdef USE_MAP\n\tvMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ALPHAMAP\n\tvAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_LIGHTMAP\n\tvLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_AOMAP\n\tvAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_BUMPMAP\n\tvBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_NORMALMAP\n\tvNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_DISPLACEMENTMAP\n\tvDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_EMISSIVEMAP\n\tvEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_METALNESSMAP\n\tvMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_ROUGHNESSMAP\n\tvRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOATMAP\n\tvClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tvClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tvClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCEMAP\n\tvIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tvIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_COLORMAP\n\tvSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SHEEN_ROUGHNESSMAP\n\tvSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULARMAP\n\tvSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_COLORMAP\n\tvSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_SPECULAR_INTENSITYMAP\n\tvSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_TRANSMISSIONMAP\n\tvTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;\n#endif\n#ifdef USE_THICKNESSMAP\n\tvThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nuniform float backgroundIntensity;\nvarying vec2 vUv;\nvoid main() {\n\tvec4 texColor = texture2D( t2D, vUv );\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",backgroundCube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",backgroundCube_frag:"#ifdef ENVMAP_TYPE_CUBE\n\tuniform samplerCube envMap;\n#elif defined( ENVMAP_TYPE_CUBE_UV )\n\tuniform sampler2D envMap;\n#endif\nuniform float flipEnvMap;\nuniform float backgroundBlurriness;\nuniform float backgroundIntensity;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );\n\t#else\n\t\tvec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t#endif\n\ttexColor.rgb *= backgroundIntensity;\n\tgl_FragColor = texColor;\n\t#include \n\t#include \n}",cube_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"uniform samplerCube tCube;\nuniform float tFlip;\nuniform float opacity;\nvarying vec3 vWorldDirection;\nvoid main() {\n\tvec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );\n\tgl_FragColor = texColor;\n\tgl_FragColor.a *= opacity;\n\t#include \n\t#include \n}",depth_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main () {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include \n\t#include \n\t#include \n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include \n\t#include \n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include \nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include \n\t#include \n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_vert:"#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t\t#include \n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vLightMapUv );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include \n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshlambert_frag:"#define LAMBERT\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )\n\tvarying vec3 vViewPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define USE_SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef USE_SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULAR_COLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n\t#ifdef USE_SPECULAR_INTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEEN_COLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEEN_ROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include \n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvViewPosition = - mvPosition.xyz;\n\t#include \n\t#include \n\t#include \n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",points_vert:"uniform float size;\nuniform float scale;\n#include \n#include \n#include \n#include \n#include \n#include \n#ifdef USE_POINTS_UV\n\tvarying vec2 vUv;\n\tuniform mat3 uvTransform;\n#endif\nvoid main() {\n\t#ifdef USE_POINTS_UV\n\t\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include \n\t#include \n\t#include \n\t#include \n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_vert:"#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n\t#include \n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include \n\t#include \n\t#include \n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include \n\t#include \n\t#include \n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvoid main() {\n\t#include \n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include \n\t#include \n\t#include \n\t#include \n\toutgoingLight = diffuseColor.rgb;\n\t#include \n\t#include \n\t#include \n\t#include \n}"},Xs={common:{diffuse:{value:new Bi(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Lr},alphaMap:{value:null},alphaMapTransform:{value:new Lr},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Lr}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Lr}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Lr}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Lr},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Lr},normalScale:{value:new Dr(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Lr},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Lr}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Lr}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Lr}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Bi(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Bi(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Lr}},sprite:{diffuse:{value:new Bi(16777215)},opacity:{value:1},center:{value:new Dr(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Lr},alphaMap:{value:null},alphaTest:{value:0}}},Ys={basic:{uniforms:ws([Xs.common,Xs.specularmap,Xs.envmap,Xs.aomap,Xs.lightmap,Xs.fog]),vertexShader:Ws.meshbasic_vert,fragmentShader:Ws.meshbasic_frag},lambert:{uniforms:ws([Xs.common,Xs.specularmap,Xs.envmap,Xs.aomap,Xs.lightmap,Xs.emissivemap,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.fog,Xs.lights,{emissive:{value:new Bi(0)}}]),vertexShader:Ws.meshlambert_vert,fragmentShader:Ws.meshlambert_frag},phong:{uniforms:ws([Xs.common,Xs.specularmap,Xs.envmap,Xs.aomap,Xs.lightmap,Xs.emissivemap,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.fog,Xs.lights,{emissive:{value:new Bi(0)},specular:{value:new Bi(1118481)},shininess:{value:30}}]),vertexShader:Ws.meshphong_vert,fragmentShader:Ws.meshphong_frag},standard:{uniforms:ws([Xs.common,Xs.envmap,Xs.aomap,Xs.lightmap,Xs.emissivemap,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.roughnessmap,Xs.metalnessmap,Xs.fog,Xs.lights,{emissive:{value:new Bi(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ws.meshphysical_vert,fragmentShader:Ws.meshphysical_frag},toon:{uniforms:ws([Xs.common,Xs.aomap,Xs.lightmap,Xs.emissivemap,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.gradientmap,Xs.fog,Xs.lights,{emissive:{value:new Bi(0)}}]),vertexShader:Ws.meshtoon_vert,fragmentShader:Ws.meshtoon_frag},matcap:{uniforms:ws([Xs.common,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,Xs.fog,{matcap:{value:null}}]),vertexShader:Ws.meshmatcap_vert,fragmentShader:Ws.meshmatcap_frag},points:{uniforms:ws([Xs.points,Xs.fog]),vertexShader:Ws.points_vert,fragmentShader:Ws.points_frag},dashed:{uniforms:ws([Xs.common,Xs.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ws.linedashed_vert,fragmentShader:Ws.linedashed_frag},depth:{uniforms:ws([Xs.common,Xs.displacementmap]),vertexShader:Ws.depth_vert,fragmentShader:Ws.depth_frag},normal:{uniforms:ws([Xs.common,Xs.bumpmap,Xs.normalmap,Xs.displacementmap,{opacity:{value:1}}]),vertexShader:Ws.meshnormal_vert,fragmentShader:Ws.meshnormal_frag},sprite:{uniforms:ws([Xs.sprite,Xs.fog]),vertexShader:Ws.sprite_vert,fragmentShader:Ws.sprite_frag},background:{uniforms:{uvTransform:{value:new Lr},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ws.background_vert,fragmentShader:Ws.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Ws.backgroundCube_vert,fragmentShader:Ws.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ws.cube_vert,fragmentShader:Ws.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ws.equirect_vert,fragmentShader:Ws.equirect_frag},distanceRGBA:{uniforms:ws([Xs.common,Xs.displacementmap,{referencePosition:{value:new hn},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ws.distanceRGBA_vert,fragmentShader:Ws.distanceRGBA_frag},shadow:{uniforms:ws([Xs.lights,Xs.fog,{color:{value:new Bi(0)},opacity:{value:1}}]),vertexShader:Ws.shadow_vert,fragmentShader:Ws.shadow_frag}};Ys.physical={uniforms:ws([Ys.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Lr},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Lr},clearcoatNormalScale:{value:new Dr(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Lr},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Lr},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Lr},sheen:{value:0},sheenColor:{value:new Bi(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Lr},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Lr},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Lr},transmissionSamplerSize:{value:new Dr},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Lr},attenuationDistance:{value:0},attenuationColor:{value:new Bi(0)},specularColor:{value:new Bi(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Lr},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Lr}}]),vertexShader:Ws.meshphysical_vert,fragmentShader:Ws.meshphysical_frag};const qs={r:0,b:0,g:0};function Ks(e,t,r,n,i,s,a){const o=new Bi(0);let l,c,h=!0===s?0:1,u=null,d=0,p=null;function g(t,r){t.getRGB(qs,Cs(e)),n.buffers.color.setClear(qs.r,qs.g,qs.b,r,a)}return{getClearColor:function(){return o},setClearColor:function(e,t=1){o.set(e),h=t,g(o,h)},getClearAlpha:function(){return h},setClearAlpha:function(e){h=e,g(o,h)},render:function(s,A){let v=!1,y=!0===A.isScene?A.background:null;if(y&&y.isTexture){y=(A.backgroundBlurriness>0?r:t).get(y)}switch(null===y?g(o,h):y&&y.isColor&&(g(y,1),v=!0),e.xr.getEnvironmentBlendMode()){case"opaque":v=!0;break;case"additive":n.buffers.color.setClear(0,0,0,1,a),v=!0;break;case"alpha-blend":n.buffers.color.setClear(0,0,0,0,a),v=!0}(e.autoClear||v)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),y&&(y.isCubeTexture||y.mapping===le)?(void 0===c&&(c=new Es(new Ss(1,1,1),new Is({name:"BackgroundCubeMaterial",uniforms:Ms(Ys.backgroundCube.uniforms),vertexShader:Ys.backgroundCube.vertexShader,fragmentShader:Ys.backgroundCube.fragmentShader,side:m,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),c.geometry.deleteAttribute("uv"),c.onBeforeRender=function(e,t,r){this.matrixWorld.copyPosition(r.matrixWorld)},Object.defineProperty(c.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),i.update(c)),c.material.uniforms.envMap.value=y,c.material.uniforms.flipEnvMap.value=y.isCubeTexture&&!1===y.isRenderTargetTexture?-1:1,c.material.uniforms.backgroundBlurriness.value=A.backgroundBlurriness,c.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,c.material.toneMapped=y.colorSpace!==zt,u===y&&d===y.version&&p===e.toneMapping||(c.material.needsUpdate=!0,u=y,d=y.version,p=e.toneMapping),c.layers.enableAll(),s.unshift(c,c.geometry,c.material,0,0,null)):y&&y.isTexture&&(void 0===l&&(l=new Es(new js(2,2),new Is({name:"BackgroundMaterial",uniforms:Ms(Ys.background.uniforms),vertexShader:Ys.background.vertexShader,fragmentShader:Ys.background.fragmentShader,side:f,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),Object.defineProperty(l.material,"map",{get:function(){return this.uniforms.t2D.value}}),i.update(l)),l.material.uniforms.t2D.value=y,l.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,l.material.toneMapped=y.colorSpace!==zt,!0===y.matrixAutoUpdate&&y.updateMatrix(),l.material.uniforms.uvTransform.value.copy(y.matrix),u===y&&d===y.version&&p===e.toneMapping||(l.material.needsUpdate=!0,u=y,d=y.version,p=e.toneMapping),l.layers.enableAll(),s.unshift(l,l.geometry,l.material,0,0,null))}}}function Js(e,t,r,n){const i=e.getParameter(e.MAX_VERTEX_ATTRIBS),s=n.isWebGL2?null:t.get("OES_vertex_array_object"),a=n.isWebGL2||null!==s,o={},l=p(null);let c=l,h=!1;function u(t){return n.isWebGL2?e.bindVertexArray(t):s.bindVertexArrayOES(t)}function d(t){return n.isWebGL2?e.deleteVertexArray(t):s.deleteVertexArrayOES(t)}function p(e){const t=[],r=[],n=[];for(let s=0;s=0){const t=i[l];let r=s[l];if(void 0===r&&("instanceMatrix"===l&&e.instanceMatrix&&(r=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(r=e.instanceColor)),void 0===t)return!0;if(t.attribute!==r)return!0;if(r&&t.data!==r.data)return!0;a++}}return c.attributesNum!==a||c.index!==n}(i,y,d,x),b&&function(e,t,r,n){const i={},s=t.attributes;let a=0;const o=r.getAttributes();for(const l in o){if(o[l].location>=0){let t=s[l];void 0===t&&("instanceMatrix"===l&&e.instanceMatrix&&(t=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(t=e.instanceColor));const r={};r.attribute=t,t&&t.data&&(r.data=t.data),i[l]=r,a++}}c.attributes=i,c.attributesNum=a,c.index=n}(i,y,d,x)}else{const e=!0===l.wireframe;c.geometry===y.id&&c.program===d.id&&c.wireframe===e||(c.geometry=y.id,c.program=d.id,c.wireframe=e,b=!0)}null!==x&&r.update(x,e.ELEMENT_ARRAY_BUFFER),(b||h)&&(h=!1,function(i,s,a,o){if(!1===n.isWebGL2&&(i.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;f();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const t in c){const n=c[t];if(n.location>=0){let s=l[t];if(void 0===s&&("instanceMatrix"===t&&i.instanceMatrix&&(s=i.instanceMatrix),"instanceColor"===t&&i.instanceColor&&(s=i.instanceColor)),void 0!==s){const t=s.normalized,a=s.itemSize,l=r.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const r=s.data,l=r.stride,d=s.offset;if(r.isInstancedInterleavedBuffer){for(let e=0;e0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.HIGH_FLOAT).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(e.VERTEX_SHADER,e.MEDIUM_FLOAT).precision>0&&e.getShaderPrecisionFormat(e.FRAGMENT_SHADER,e.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s="undefined"!=typeof WebGL2RenderingContext&&"WebGL2RenderingContext"===e.constructor.name;let a=void 0!==r.precision?r.precision:"highp";const o=i(a);o!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",o,"instead."),a=o);const l=s||t.has("WEBGL_draw_buffers"),c=!0===r.logarithmicDepthBuffer,h=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),u=e.getParameter(e.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=e.getParameter(e.MAX_TEXTURE_SIZE),p=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),f=e.getParameter(e.MAX_VERTEX_ATTRIBS),m=e.getParameter(e.MAX_VERTEX_UNIFORM_VECTORS),g=e.getParameter(e.MAX_VARYING_VECTORS),A=e.getParameter(e.MAX_FRAGMENT_UNIFORM_VECTORS),v=u>0,y=s||t.has("OES_texture_float");return{isWebGL2:s,drawBuffers:l,getMaxAnisotropy:function(){if(void 0!==n)return n;if(!0===t.has("EXT_texture_filter_anisotropic")){const r=t.get("EXT_texture_filter_anisotropic");n=e.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else n=0;return n},getMaxPrecision:i,precision:a,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:p,maxAttributes:f,maxVertexUniforms:m,maxVaryings:g,maxFragmentUniforms:A,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:v&&y,maxSamples:s?e.getParameter(e.MAX_SAMPLES):0}}function ea(e){const t=this;let r=null,n=0,i=!1,s=!1;const a=new ks,o=new Lr,l={value:null,needsUpdate:!1};function c(e,r,n,i){const s=null!==e?e.length:0;let c=null;if(0!==s){if(c=l.value,!0!==i||null===c){const t=n+4*s,i=r.matrixWorldInverse;o.getNormalMatrix(i),(null===c||c.length0);t.numPlanes=n,t.numIntersection=0}();else{const e=s?0:n,t=4*e;let i=f.clippingState||null;l.value=i,i=c(u,o,t,h);for(let n=0;n!==t;++n)i[n]=r[n];f.clippingState=i,this.numIntersection=d?this.numPlanes:0,this.numPlanes+=e}}}function ta(e){let t=new WeakMap;function r(e,t){return t===ae?e.mapping=ie:t===oe&&(e.mapping=se),e}function n(e){const r=e.target;r.removeEventListener("dispose",n);const i=t.get(r);void 0!==i&&(t.delete(r),i.dispose())}return{get:function(i){if(i&&i.isTexture&&!1===i.isRenderTargetTexture){const s=i.mapping;if(s===ae||s===oe){if(t.has(i)){return r(t.get(i).texture,i.mapping)}{const s=i.image;if(s&&s.height>0){const a=new Fs(s.height/2);return a.fromEquirectangularTexture(e,i),t.set(i,a),i.addEventListener("dispose",n),r(a.texture,i.mapping)}return null}}}return i},dispose:function(){t=new WeakMap}}}class ra extends Bs{constructor(e=-1,t=1,r=1,n=-1,i=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=r,this.bottom=n,this.near=i,this.far=s,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=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,r,n,i,s){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=r,this.view.offsetY=n,this.view.width=i,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),r=(this.right+this.left)/2,n=(this.top+this.bottom)/2;let i=r-e,s=r+e,a=n+t,o=n-t;if(null!==this.view&&this.view.enabled){const e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;i+=e*this.view.offsetX,s=i+e*this.view.width,a-=t*this.view.offsetY,o=a-t*this.view.height}this.projectionMatrix.makeOrthographic(i,s,a,o,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,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}const na=[.125,.215,.35,.446,.526,.582],ia=20,sa=new ra,aa=new Bi;let oa=null;const la=(1+Math.sqrt(5))/2,ca=1/la,ha=[new hn(1,1,1),new hn(-1,1,1),new hn(1,1,-1),new hn(-1,1,-1),new hn(0,la,ca),new hn(0,la,-ca),new hn(ca,0,la),new hn(-ca,0,la),new hn(la,ca,0),new hn(-la,ca,0)];class ua{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,r=.1,n=100){oa=this._renderer.getRenderTarget(),this._setSize(256);const i=this._allocateTargets();return i.depthBuffer=!0,this._sceneToCubeUV(e,r,n,i),t>0&&this._blur(i,0,0,t),this._applyPMREM(i),this._cleanup(i),i}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=ma(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=fa(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;ee-4?o=na[a-e+4-1]:0===a&&(o=0),n.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,f=3,m=2,g=1,A=new Float32Array(f*p*d),v=new Float32Array(m*p*d),y=new Float32Array(g*p*d);for(let e=0;e2?0:-1,n=[t,r,0,t+2/3,r,0,t+2/3,r+1,0,t,r,0,t+2/3,r+1,0,t,r+1,0];A.set(n,f*p*e),v.set(u,m*p*e);const i=[e,e,e,e,e,e];y.set(i,g*p*e)}const x=new is;x.setAttribute("position",new Gi(A,f)),x.setAttribute("uv",new Gi(v,m)),x.setAttribute("faceIndex",new Gi(y,g)),t.push(x),i>4&&i--}return{lodPlanes:t,sizeLods:r,sigmas:n}}(n)),this._blurMaterial=function(e,t,r){const n=new Float32Array(ia),i=new hn(0,1,0),s=new Is({name:"SphericalGaussianBlur",defines:{n:ia,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/r,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:n},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:i}},vertexShader:ga(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include \n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:v,depthTest:!1,depthWrite:!1});return s}(n,e,t)}return n}_compileMaterial(e){const t=new Es(this._lodPlanes[0],e);this._renderer.compile(t,sa)}_sceneToCubeUV(e,t,r,n){const i=new Rs(90,1,t,r),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(aa),o.toneMapping=J,o.autoClear=!1;const h=new Pi({name:"PMREM.Background",side:m,depthWrite:!1,depthTest:!1}),u=new Es(new Ss,h);let d=!1;const p=e.background;p?p.isColor&&(h.color.copy(p),e.background=null,d=!0):(h.color.copy(aa),d=!0);for(let f=0;f<6;f++){const t=f%3;0===t?(i.up.set(0,s[f],0),i.lookAt(a[f],0,0)):1===t?(i.up.set(0,0,s[f]),i.lookAt(0,a[f],0)):(i.up.set(0,s[f],0),i.lookAt(0,0,a[f]));const r=this._cubeSize;pa(n,t*r,f>2?r:0,r,r),o.setRenderTarget(n),d&&o.render(u,i),o.render(e,i)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,e.background=p}_textureToCubeUV(e,t){const r=this._renderer,n=e.mapping===ie||e.mapping===se;n?(null===this._cubemapMaterial&&(this._cubemapMaterial=ma()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=fa());const i=n?this._cubemapMaterial:this._equirectMaterial,s=new Es(this._lodPlanes[0],i);i.uniforms.envMap.value=e;const a=this._cubeSize;pa(t,0,0,3*a,2*a),r.setRenderTarget(t),r.render(s,sa)}_applyPMREM(e){const t=this._renderer,r=t.autoClear;t.autoClear=!1;for(let n=1;nia&&console.warn(`sigmaRadians, ${i}, is too large and will clip, as it requested ${f} samples when the maximum is set to 20`);const m=[];let g=0;for(let y=0;yA-4?n-A+4:0),4*(this._cubeSize-v),3*v,2*v),o.setRenderTarget(t),o.render(c,sa)}}function da(e,t,r){const n=new rn(e,t,r);return n.texture.mapping=le,n.texture.name="PMREM.cubeUv",n.scissorTest=!0,n}function pa(e,t,r,n,i){e.viewport.set(t,r,n,i),e.scissor.set(t,r,n,i)}function fa(){return new Is({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ga(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include \n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:v,depthTest:!1,depthWrite:!1})}function ma(){return new Is({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ga(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:v,depthTest:!1,depthWrite:!1})}function ga(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function Aa(e){let t=new WeakMap,r=null;function n(e){const r=e.target;r.removeEventListener("dispose",n);const i=t.get(r);void 0!==i&&(t.delete(r),i.dispose())}return{get:function(i){if(i&&i.isTexture){const s=i.mapping,a=s===ae||s===oe,o=s===ie||s===se;if(a||o){if(i.isRenderTargetTexture&&!0===i.needsPMREMUpdate){i.needsPMREMUpdate=!1;let n=t.get(i);return null===r&&(r=new ua(e)),n=a?r.fromEquirectangular(i,n):r.fromCubemap(i,n),t.set(i,n),n.texture}if(t.has(i))return t.get(i).texture;{const s=i.image;if(a&&s&&s.height>0||o&&s&&function(e){let t=0;const r=6;for(let n=0;nt.maxTextureSize&&(M=Math.ceil(S/t.maxTextureSize),S=t.maxTextureSize);const w=new Float32Array(S*M*4*p),C=new nn(w,S,M,p);C.type=Te,C.needsUpdate=!0;const T=4*_;for(let B=0;B0)return e;const i=t*r;let s=Ba[i];if(void 0===s&&(s=new Float32Array(i),Ba[i]=s),0!==t){n.toArray(s,0);for(let n=1,i=0;n!==t;++n)i+=r,e[n].toArray(s,i)}return s}function Ua(e,t){if(e.length!==t.length)return!1;for(let r=0,n=e.length;r":" "} ${e}: ${r[a]}`)}return n.join("\n")}(e.getShaderSource(t),n)}return i}function Lo(e,t){const r=function(e){switch(e){case Qt:return["Linear","( value )"];case zt:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",e),["Linear","( value )"]}}(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+r[0]+r[1]+"; }"}function Fo(e,t){let r;switch(t){case Z:r="Linear";break;case $:r="Reinhard";break;case ee:r="OptimizedCineon";break;case te:r="ACESFilmic";break;case re:r="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),r="Linear"}return"vec3 "+e+"( vec3 color ) { return "+r+"ToneMapping( color ); }"}function Uo(e){return""!==e}function Oo(e,t){const r=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,r).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function No(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const ko=/^[ \t]*#include +<([\w\d./]+)>/gm;function Go(e){return e.replace(ko,zo)}function zo(e,t){const r=Ws[t];if(void 0===r)throw new Error("Can not resolve #include <"+t+">");return Go(r)}const Qo=/#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 Vo(e){return e.replace(Qo,Ho)}function Ho(e,t,r,n){let i="";for(let s=parseInt(t);s0&&(y+="\n"),x=[g,A].filter(Uo).join("\n"),x.length>0&&(x+="\n")):(y=[jo(r),"#define SHADER_NAME "+r.shaderName,A,r.instancing?"#define USE_INSTANCING":"",r.instancingColor?"#define USE_INSTANCING_COLOR":"",r.useFog&&r.fog?"#define USE_FOG":"",r.useFog&&r.fogExp2?"#define FOG_EXP2":"",r.map?"#define USE_MAP":"",r.envMap?"#define USE_ENVMAP":"",r.envMap?"#define "+h:"",r.lightMap?"#define USE_LIGHTMAP":"",r.aoMap?"#define USE_AOMAP":"",r.bumpMap?"#define USE_BUMPMAP":"",r.normalMap?"#define USE_NORMALMAP":"",r.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",r.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",r.displacementMap?"#define USE_DISPLACEMENTMAP":"",r.emissiveMap?"#define USE_EMISSIVEMAP":"",r.clearcoatMap?"#define USE_CLEARCOATMAP":"",r.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",r.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",r.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",r.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",r.specularMap?"#define USE_SPECULARMAP":"",r.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",r.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",r.roughnessMap?"#define USE_ROUGHNESSMAP":"",r.metalnessMap?"#define USE_METALNESSMAP":"",r.alphaMap?"#define USE_ALPHAMAP":"",r.transmission?"#define USE_TRANSMISSION":"",r.transmissionMap?"#define USE_TRANSMISSIONMAP":"",r.thicknessMap?"#define USE_THICKNESSMAP":"",r.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",r.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",r.mapUv?"#define MAP_UV "+r.mapUv:"",r.alphaMapUv?"#define ALPHAMAP_UV "+r.alphaMapUv:"",r.lightMapUv?"#define LIGHTMAP_UV "+r.lightMapUv:"",r.aoMapUv?"#define AOMAP_UV "+r.aoMapUv:"",r.emissiveMapUv?"#define EMISSIVEMAP_UV "+r.emissiveMapUv:"",r.bumpMapUv?"#define BUMPMAP_UV "+r.bumpMapUv:"",r.normalMapUv?"#define NORMALMAP_UV "+r.normalMapUv:"",r.displacementMapUv?"#define DISPLACEMENTMAP_UV "+r.displacementMapUv:"",r.metalnessMapUv?"#define METALNESSMAP_UV "+r.metalnessMapUv:"",r.roughnessMapUv?"#define ROUGHNESSMAP_UV "+r.roughnessMapUv:"",r.clearcoatMapUv?"#define CLEARCOATMAP_UV "+r.clearcoatMapUv:"",r.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+r.clearcoatNormalMapUv:"",r.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+r.clearcoatRoughnessMapUv:"",r.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+r.iridescenceMapUv:"",r.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+r.iridescenceThicknessMapUv:"",r.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+r.sheenColorMapUv:"",r.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+r.sheenRoughnessMapUv:"",r.specularMapUv?"#define SPECULARMAP_UV "+r.specularMapUv:"",r.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+r.specularColorMapUv:"",r.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+r.specularIntensityMapUv:"",r.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+r.transmissionMapUv:"",r.thicknessMapUv?"#define THICKNESSMAP_UV "+r.thicknessMapUv:"",r.vertexTangents?"#define USE_TANGENT":"",r.vertexColors?"#define USE_COLOR":"",r.vertexAlphas?"#define USE_COLOR_ALPHA":"",r.vertexUv1s?"#define USE_UV1":"",r.vertexUv2s?"#define USE_UV2":"",r.vertexUv3s?"#define USE_UV3":"",r.pointsUvs?"#define USE_POINTS_UV":"",r.flatShading?"#define FLAT_SHADED":"",r.skinning?"#define USE_SKINNING":"",r.morphTargets?"#define USE_MORPHTARGETS":"",r.morphNormals&&!1===r.flatShading?"#define USE_MORPHNORMALS":"",r.morphColors&&r.isWebGL2?"#define USE_MORPHCOLORS":"",r.morphTargetsCount>0&&r.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",r.morphTargetsCount>0&&r.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+r.morphTextureStride:"",r.morphTargetsCount>0&&r.isWebGL2?"#define MORPHTARGETS_COUNT "+r.morphTargetsCount:"",r.doubleSided?"#define DOUBLE_SIDED":"",r.flipSided?"#define FLIP_SIDED":"",r.shadowMapEnabled?"#define USE_SHADOWMAP":"",r.shadowMapEnabled?"#define "+l:"",r.sizeAttenuation?"#define USE_SIZEATTENUATION":"",r.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",r.logarithmicDepthBuffer&&r.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1","\tattribute vec2 uv1;","#endif","#ifdef USE_UV2","\tattribute vec2 uv2;","#endif","#ifdef USE_UV3","\tattribute vec2 uv3;","#endif","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(Uo).join("\n"),x=[g,jo(r),"#define SHADER_NAME "+r.shaderName,A,r.useFog&&r.fog?"#define USE_FOG":"",r.useFog&&r.fogExp2?"#define FOG_EXP2":"",r.map?"#define USE_MAP":"",r.matcap?"#define USE_MATCAP":"",r.envMap?"#define USE_ENVMAP":"",r.envMap?"#define "+c:"",r.envMap?"#define "+h:"",r.envMap?"#define "+f:"",m?"#define CUBEUV_TEXEL_WIDTH "+m.texelWidth:"",m?"#define CUBEUV_TEXEL_HEIGHT "+m.texelHeight:"",m?"#define CUBEUV_MAX_MIP "+m.maxMip+".0":"",r.lightMap?"#define USE_LIGHTMAP":"",r.aoMap?"#define USE_AOMAP":"",r.bumpMap?"#define USE_BUMPMAP":"",r.normalMap?"#define USE_NORMALMAP":"",r.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",r.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",r.emissiveMap?"#define USE_EMISSIVEMAP":"",r.clearcoat?"#define USE_CLEARCOAT":"",r.clearcoatMap?"#define USE_CLEARCOATMAP":"",r.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",r.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",r.iridescence?"#define USE_IRIDESCENCE":"",r.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",r.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",r.specularMap?"#define USE_SPECULARMAP":"",r.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",r.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",r.roughnessMap?"#define USE_ROUGHNESSMAP":"",r.metalnessMap?"#define USE_METALNESSMAP":"",r.alphaMap?"#define USE_ALPHAMAP":"",r.alphaTest?"#define USE_ALPHATEST":"",r.sheen?"#define USE_SHEEN":"",r.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",r.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",r.transmission?"#define USE_TRANSMISSION":"",r.transmissionMap?"#define USE_TRANSMISSIONMAP":"",r.thicknessMap?"#define USE_THICKNESSMAP":"",r.vertexTangents?"#define USE_TANGENT":"",r.vertexColors||r.instancingColor?"#define USE_COLOR":"",r.vertexAlphas?"#define USE_COLOR_ALPHA":"",r.vertexUv1s?"#define USE_UV1":"",r.vertexUv2s?"#define USE_UV2":"",r.vertexUv3s?"#define USE_UV3":"",r.pointsUvs?"#define USE_POINTS_UV":"",r.gradientMap?"#define USE_GRADIENTMAP":"",r.flatShading?"#define FLAT_SHADED":"",r.doubleSided?"#define DOUBLE_SIDED":"",r.flipSided?"#define FLIP_SIDED":"",r.shadowMapEnabled?"#define USE_SHADOWMAP":"",r.shadowMapEnabled?"#define "+l:"",r.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",r.useLegacyLights?"#define LEGACY_LIGHTS":"",r.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",r.logarithmicDepthBuffer&&r.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",r.toneMapping!==J?"#define TONE_MAPPING":"",r.toneMapping!==J?Ws.tonemapping_pars_fragment:"",r.toneMapping!==J?Fo("toneMapping",r.toneMapping):"",r.dithering?"#define DITHERING":"",r.opaque?"#define OPAQUE":"",Ws.encodings_pars_fragment,Lo("linearToOutputTexel",r.outputColorSpace),r.useDepthPacking?"#define DEPTH_PACKING "+r.depthPacking:"","\n"].filter(Uo).join("\n")),a=Go(a),a=Oo(a,r),a=No(a,r),o=Go(o),o=Oo(o,r),o=No(o,r),a=Vo(a),o=Vo(o),r.isWebGL2&&!0!==r.isRawShaderMaterial&&(b="#version 300 es\n",y=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+y,x=["#define varying in",r.glslVersion===gr?"":"layout(location = 0) out highp vec4 pc_fragColor;",r.glslVersion===gr?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join("\n")+"\n"+x);const E=b+y+a,_=b+x+o,S=Ro(i,i.VERTEX_SHADER,E),M=Ro(i,i.FRAGMENT_SHADER,_);if(i.attachShader(v,S),i.attachShader(v,M),void 0!==r.index0AttributeName?i.bindAttribLocation(v,0,r.index0AttributeName):!0===r.morphTargets&&i.bindAttribLocation(v,0,"position"),i.linkProgram(v),e.debug.checkShaderErrors){const t=i.getProgramInfoLog(v).trim(),r=i.getShaderInfoLog(S).trim(),n=i.getShaderInfoLog(M).trim();let s=!0,a=!0;if(!1===i.getProgramParameter(v,i.LINK_STATUS))if(s=!1,"function"==typeof e.debug.onShaderError)e.debug.onShaderError(i,v,S,M);else{const e=Do(i,S,"vertex"),r=Do(i,M,"fragment");console.error("THREE.WebGLProgram: Shader Error "+i.getError()+" - VALIDATE_STATUS "+i.getProgramParameter(v,i.VALIDATE_STATUS)+"\n\nProgram Info Log: "+t+"\n"+e+"\n"+r)}else""!==t?console.warn("THREE.WebGLProgram: Program Info Log:",t):""!==r&&""!==n||(a=!1);a&&(this.diagnostics={runnable:s,programLog:t,vertexShader:{log:r,prefix:y},fragmentShader:{log:n,prefix:x}})}let w,C;return i.deleteShader(S),i.deleteShader(M),this.getUniforms=function(){return void 0===w&&(w=new Bo(i,v)),w},this.getAttributes=function(){return void 0===C&&(C=function(e,t){const r={},n=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let i=0;i0,Y=s.iridescence>0,q=s.sheen>0,K=s.transmission>0,Z=X&&!!s.clearcoatMap,$=X&&!!s.clearcoatNormalMap,ee=X&&!!s.clearcoatRoughnessMap,te=Y&&!!s.iridescenceMap,re=Y&&!!s.iridescenceThicknessMap,ne=q&&!!s.sheenColorMap,ie=q&&!!s.sheenRoughnessMap,se=!!s.specularMap,ae=!!s.specularColorMap,oe=!!s.specularIntensityMap,ce=K&&!!s.transmissionMap,he=K&&!!s.thicknessMap,ue=!!s.gradientMap,de=!!s.alphaMap,pe=s.alphaTest>0,fe=!!s.extensions,me=!!E.attributes.uv1,ge=!!E.attributes.uv2,Ae=!!E.attributes.uv3;return{isWebGL2:h,shaderID:w,shaderName:s.type,vertexShader:I,fragmentShader:B,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:P,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:p,instancing:F,instancingColor:F&&null!==x.instanceColor,supportsVertexTextures:d,outputColorSpace:null===L?e.outputColorSpace:!0===L.isXRRenderTarget?L.texture.colorSpace:Qt,map:U,matcap:O,envMap:N,envMapMode:N&&S.mapping,envMapCubeUVHeight:M,aoMap:k,lightMap:G,bumpMap:z,normalMap:Q,displacementMap:d&&V,emissiveMap:H,normalMapObjectSpace:Q&&s.normalMapType===kt,normalMapTangentSpace:Q&&s.normalMapType===Nt,metalnessMap:j,roughnessMap:W,clearcoat:X,clearcoatMap:Z,clearcoatNormalMap:$,clearcoatRoughnessMap:ee,iridescence:Y,iridescenceMap:te,iridescenceThicknessMap:re,sheen:q,sheenColorMap:ne,sheenRoughnessMap:ie,specularMap:se,specularColorMap:ae,specularIntensityMap:oe,transmission:K,transmissionMap:ce,thicknessMap:he,gradientMap:ue,opaque:!1===s.transparent&&s.blending===y,alphaMap:de,alphaTest:pe,combine:s.combine,mapUv:U&&A(s.map.channel),aoMapUv:k&&A(s.aoMap.channel),lightMapUv:G&&A(s.lightMap.channel),bumpMapUv:z&&A(s.bumpMap.channel),normalMapUv:Q&&A(s.normalMap.channel),displacementMapUv:V&&A(s.displacementMap.channel),emissiveMapUv:H&&A(s.emissiveMap.channel),metalnessMapUv:j&&A(s.metalnessMap.channel),roughnessMapUv:W&&A(s.roughnessMap.channel),clearcoatMapUv:Z&&A(s.clearcoatMap.channel),clearcoatNormalMapUv:$&&A(s.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ee&&A(s.clearcoatRoughnessMap.channel),iridescenceMapUv:te&&A(s.iridescenceMap.channel),iridescenceThicknessMapUv:re&&A(s.iridescenceThicknessMap.channel),sheenColorMapUv:ne&&A(s.sheenColorMap.channel),sheenRoughnessMapUv:ie&&A(s.sheenRoughnessMap.channel),specularMapUv:se&&A(s.specularMap.channel),specularColorMapUv:ae&&A(s.specularColorMap.channel),specularIntensityMapUv:oe&&A(s.specularIntensityMap.channel),transmissionMapUv:ce&&A(s.transmissionMap.channel),thicknessMapUv:he&&A(s.thicknessMap.channel),alphaMapUv:de&&A(s.alphaMap.channel),vertexTangents:Q&&!!E.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!E.attributes.color&&4===E.attributes.color.itemSize,vertexUv1s:me,vertexUv2s:ge,vertexUv3s:Ae,pointsUvs:!0===x.isPoints&&!!E.attributes.uv&&(U||de),fog:!!b,useFog:!0===s.fog,fogExp2:b&&b.isFogExp2,flatShading:!0===s.flatShading,sizeAttenuation:!0===s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===x.isSkinnedMesh,morphTargets:void 0!==E.morphAttributes.position,morphNormals:void 0!==E.morphAttributes.normal,morphColors:void 0!==E.morphAttributes.color,morphTargetsCount:T,morphTextureStride:D,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numSpotLightMaps:o.spotLightMap.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numSpotLightShadowsWithMaps:o.numSpotLightShadowsWithMaps,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:e.shadowMap.enabled&&c.length>0,shadowMapType:e.shadowMap.type,toneMapping:s.toneMapped?e.toneMapping:J,useLegacyLights:e.useLegacyLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===g,flipSided:s.side===m,useDepthPacking:s.depthPacking>=0,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:fe&&!0===s.extensions.derivatives,extensionFragDepth:fe&&!0===s.extensions.fragDepth,extensionDrawBuffers:fe&&!0===s.extensions.drawBuffers,extensionShaderTextureLOD:fe&&!0===s.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:s.customProgramCacheKey()}},getProgramCacheKey:function(t){const r=[];if(t.shaderID?r.push(t.shaderID):(r.push(t.customVertexShaderID),r.push(t.customFragmentShaderID)),void 0!==t.defines)for(const e in t.defines)r.push(e),r.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(!function(e,t){e.push(t.precision),e.push(t.outputColorSpace),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.mapUv),e.push(t.alphaMapUv),e.push(t.lightMapUv),e.push(t.aoMapUv),e.push(t.bumpMapUv),e.push(t.normalMapUv),e.push(t.displacementMapUv),e.push(t.emissiveMapUv),e.push(t.metalnessMapUv),e.push(t.roughnessMapUv),e.push(t.clearcoatMapUv),e.push(t.clearcoatNormalMapUv),e.push(t.clearcoatRoughnessMapUv),e.push(t.iridescenceMapUv),e.push(t.iridescenceThicknessMapUv),e.push(t.sheenColorMapUv),e.push(t.sheenRoughnessMapUv),e.push(t.specularMapUv),e.push(t.specularColorMapUv),e.push(t.specularIntensityMapUv),e.push(t.transmissionMapUv),e.push(t.thicknessMapUv),e.push(t.combine),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numSpotLightMaps),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.numSpotLightShadowsWithMaps),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(r,t),function(e,t){o.disableAll(),t.isWebGL2&&o.enable(0);t.supportsVertexTextures&&o.enable(1);t.instancing&&o.enable(2);t.instancingColor&&o.enable(3);t.matcap&&o.enable(4);t.envMap&&o.enable(5);t.normalMapObjectSpace&&o.enable(6);t.normalMapTangentSpace&&o.enable(7);t.clearcoat&&o.enable(8);t.iridescence&&o.enable(9);t.alphaTest&&o.enable(10);t.vertexColors&&o.enable(11);t.vertexAlphas&&o.enable(12);t.vertexUv1s&&o.enable(13);t.vertexUv2s&&o.enable(14);t.vertexUv3s&&o.enable(15);t.vertexTangents&&o.enable(16);e.push(o.mask),o.disableAll(),t.fog&&o.enable(0);t.useFog&&o.enable(1);t.flatShading&&o.enable(2);t.logarithmicDepthBuffer&&o.enable(3);t.skinning&&o.enable(4);t.morphTargets&&o.enable(5);t.morphNormals&&o.enable(6);t.morphColors&&o.enable(7);t.premultipliedAlpha&&o.enable(8);t.shadowMapEnabled&&o.enable(9);t.useLegacyLights&&o.enable(10);t.doubleSided&&o.enable(11);t.flipSided&&o.enable(12);t.useDepthPacking&&o.enable(13);t.dithering&&o.enable(14);t.transmission&&o.enable(15);t.sheen&&o.enable(16);t.opaque&&o.enable(17);t.pointsUvs&&o.enable(18);e.push(o.mask)}(r,t),r.push(e.outputColorSpace)),r.push(t.customProgramCacheKey),r.join()},getUniforms:function(e){const t=f[e.type];let r;if(t){const e=Ys[t];r=Ts.clone(e.uniforms)}else r=e.uniforms;return r},acquireProgram:function(t,r){let n;for(let e=0,i=c.length;e0?n.push(h):!0===a.transparent?i.push(h):r.push(h)},unshift:function(e,t,a,o,l,c){const h=s(e,t,a,o,l,c);a.transmission>0?n.unshift(h):!0===a.transparent?i.unshift(h):r.unshift(h)},finish:function(){for(let r=t,n=e.length;r1&&r.sort(e||Zo),n.length>1&&n.sort(t||$o),i.length>1&&i.sort(t||$o)}}}function tl(){let e=new WeakMap;return{get:function(t,r){const n=e.get(t);let i;return void 0===n?(i=new el,e.set(t,[i])):r>=n.length?(i=new el,n.push(i)):i=n[r],i},dispose:function(){e=new WeakMap}}}function rl(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let r;switch(t.type){case"DirectionalLight":r={direction:new hn,color:new Bi};break;case"SpotLight":r={position:new hn,direction:new hn,color:new Bi,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":r={position:new hn,color:new Bi,distance:0,decay:0};break;case"HemisphereLight":r={direction:new hn,skyColor:new Bi,groundColor:new Bi};break;case"RectAreaLight":r={color:new Bi,position:new hn,halfWidth:new hn,halfHeight:new hn}}return e[t.id]=r,r}}}let nl=0;function il(e,t){return(t.castShadow?2:0)-(e.castShadow?2:0)+(t.map?1:0)-(e.map?1:0)}function sl(e,t){const r=new rl,n=function(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let r;switch(t.type){case"DirectionalLight":case"SpotLight":r={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Dr};break;case"PointLight":r={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Dr,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=r,r}}}(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let l=0;l<9;l++)i.probe.push(new hn);const s=new hn,a=new Gn,o=new Gn;return{setup:function(s,a){let o=0,l=0,c=0;for(let e=0;e<9;e++)i.probe[e].set(0,0,0);let h=0,u=0,d=0,p=0,f=0,m=0,g=0,A=0,v=0,y=0;s.sort(il);const x=!0===a?Math.PI:1;for(let e=0,t=s.length;e0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(i.rectAreaLTC1=Xs.LTC_FLOAT_1,i.rectAreaLTC2=Xs.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(i.rectAreaLTC1=Xs.LTC_HALF_1,i.rectAreaLTC2=Xs.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),i.ambient[0]=o,i.ambient[1]=l,i.ambient[2]=c;const b=i.hash;b.directionalLength===h&&b.pointLength===u&&b.spotLength===d&&b.rectAreaLength===p&&b.hemiLength===f&&b.numDirectionalShadows===m&&b.numPointShadows===g&&b.numSpotShadows===A&&b.numSpotMaps===v||(i.directional.length=h,i.spot.length=d,i.rectArea.length=p,i.point.length=u,i.hemi.length=f,i.directionalShadow.length=m,i.directionalShadowMap.length=m,i.pointShadow.length=g,i.pointShadowMap.length=g,i.spotShadow.length=A,i.spotShadowMap.length=A,i.directionalShadowMatrix.length=m,i.pointShadowMatrix.length=g,i.spotLightMatrix.length=A+v-y,i.spotLightMap.length=v,i.numSpotLightShadowsWithMaps=y,b.directionalLength=h,b.pointLength=u,b.spotLength=d,b.rectAreaLength=p,b.hemiLength=f,b.numDirectionalShadows=m,b.numPointShadows=g,b.numSpotShadows=A,b.numSpotMaps=v,i.version=nl++)},setupView:function(e,t){let r=0,n=0,l=0,c=0,h=0;const u=t.matrixWorldInverse;for(let d=0,p=e.length;d=s.length?(a=new al(e,t),s.push(a)):a=s[i],a},dispose:function(){r=new WeakMap}}}class ll extends Mi{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Ut,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class cl extends Mi{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}function hl(e,t,r){let n=new Qs;const i=new Dr,s=new Dr,a=new tn,o=new ll({depthPacking:Ot}),l=new cl,c={},h=r.maxTextureSize,d={[f]:m,[m]:f,[g]:g},A=new Is({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Dr},radius:{value:4}},vertexShader:"void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include \nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}"}),y=A.clone();y.defines.HORIZONTAL_PASS=1;const x=new is;x.setAttribute("position",new Gi(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const b=new Es(x,A),E=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=u;let _=this.type;function S(r,n){const s=t.update(b);A.defines.VSM_SAMPLES!==r.blurSamples&&(A.defines.VSM_SAMPLES=r.blurSamples,y.defines.VSM_SAMPLES=r.blurSamples,A.needsUpdate=!0,y.needsUpdate=!0),null===r.mapPass&&(r.mapPass=new rn(i.x,i.y)),A.uniforms.shadow_pass.value=r.map.texture,A.uniforms.resolution.value=r.mapSize,A.uniforms.radius.value=r.radius,e.setRenderTarget(r.mapPass),e.clear(),e.renderBufferDirect(n,null,s,A,b,null),y.uniforms.shadow_pass.value=r.mapPass.texture,y.uniforms.resolution.value=r.mapSize,y.uniforms.radius.value=r.radius,e.setRenderTarget(r.map),e.clear(),e.renderBufferDirect(n,null,s,y,b,null)}function M(t,r,n,i){let s=null;const a=!0===n.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(void 0!==a)s=a;else if(s=!0===n.isPointLight?l:o,e.localClippingEnabled&&!0===r.clipShadows&&Array.isArray(r.clippingPlanes)&&0!==r.clippingPlanes.length||r.displacementMap&&0!==r.displacementScale||r.alphaMap&&r.alphaTest>0||r.map&&r.alphaTest>0){const e=s.uuid,t=r.uuid;let n=c[e];void 0===n&&(n={},c[e]=n);let i=n[t];void 0===i&&(i=s.clone(),n[t]=i),s=i}if(s.visible=r.visible,s.wireframe=r.wireframe,s.side=i===p?null!==r.shadowSide?r.shadowSide:r.side:null!==r.shadowSide?r.shadowSide:d[r.side],s.alphaMap=r.alphaMap,s.alphaTest=r.alphaTest,s.map=r.map,s.clipShadows=r.clipShadows,s.clippingPlanes=r.clippingPlanes,s.clipIntersection=r.clipIntersection,s.displacementMap=r.displacementMap,s.displacementScale=r.displacementScale,s.displacementBias=r.displacementBias,s.wireframeLinewidth=r.wireframeLinewidth,s.linewidth=r.linewidth,!0===n.isPointLight&&!0===s.isMeshDistanceMaterial){e.properties.get(s).light=n}return s}function w(r,i,s,a,o){if(!1===r.visible)return;if(r.layers.test(i.layers)&&(r.isMesh||r.isLine||r.isPoints)&&(r.castShadow||r.receiveShadow&&o===p)&&(!r.frustumCulled||n.intersectsObject(r))){r.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,r.matrixWorld);const n=t.update(r),i=r.material;if(Array.isArray(i)){const t=n.groups;for(let l=0,c=t.length;lh||i.y>h)&&(i.x>h&&(s.x=Math.floor(h/u.x),i.x=s.x*u.x,c.mapSize.x=s.x),i.y>h&&(s.y=Math.floor(h/u.y),i.y=s.y*u.y,c.mapSize.y=s.y)),null===c.map||!0===f||!0===m){const e=this.type!==p?{minFilter:de,magFilter:de}:{};null!==c.map&&c.map.dispose(),c.map=new rn(i.x,i.y,e),c.map.texture.name=l.name+".shadowMap",c.camera.updateProjectionMatrix()}e.setRenderTarget(c.map),e.clear();const A=c.getViewportCount();for(let e=0;e=1):-1!==de.indexOf("OpenGL ES")&&(ue=parseFloat(/^OpenGL ES (\d)/.exec(de)[1]),he=ue>=2);let pe=null,fe={};const me=e.getParameter(e.SCISSOR_BOX),ge=e.getParameter(e.VIEWPORT),Ae=(new tn).fromArray(me),ve=(new tn).fromArray(ge);function ye(t,r,i,s){const a=new Uint8Array(4),o=e.createTexture();e.bindTexture(t,o),e.texParameteri(t,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(t,e.TEXTURE_MAG_FILTER,e.NEAREST);for(let l=0;ln||e.height>n)&&(i=n/Math.max(e.width,e.height)),i<1||!0===t){if("undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap){const n=t?Ir:Math.floor,s=n(i*e.width),a=n(i*e.height);void 0===m&&(m=v(s,a));const o=r?v(s,a):m;o.width=s,o.height=a;return o.getContext("2d").drawImage(e,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+s+"x"+a+")."),o}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function x(e){return Cr(e.width)&&Cr(e.height)}function b(e,t){return e.generateMipmaps&&t&&e.minFilter!==de&&e.minFilter!==Ae}function E(t){e.generateMipmap(t)}function _(r,n,i,s,a=!1){if(!1===o)return n;if(null!==r){if(void 0!==e[r])return e[r];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+r+"'")}let l=n;return n===e.RED&&(i===e.FLOAT&&(l=e.R32F),i===e.HALF_FLOAT&&(l=e.R16F),i===e.UNSIGNED_BYTE&&(l=e.R8)),n===e.RG&&(i===e.FLOAT&&(l=e.RG32F),i===e.HALF_FLOAT&&(l=e.RG16F),i===e.UNSIGNED_BYTE&&(l=e.RG8)),n===e.RGBA&&(i===e.FLOAT&&(l=e.RGBA32F),i===e.HALF_FLOAT&&(l=e.RGBA16F),i===e.UNSIGNED_BYTE&&(l=s===zt&&!1===a?e.SRGB8_ALPHA8:e.RGBA8),i===e.UNSIGNED_SHORT_4_4_4_4&&(l=e.RGBA4),i===e.UNSIGNED_SHORT_5_5_5_1&&(l=e.RGB5_A1)),l!==e.R16F&&l!==e.R32F&&l!==e.RG16F&&l!==e.RG32F&&l!==e.RGBA16F&&l!==e.RGBA32F||t.get("EXT_color_buffer_float"),l}function S(e,t,r){return!0===b(e,r)||e.isFramebufferTexture&&e.minFilter!==de&&e.minFilter!==Ae?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function M(t){return t===de||t===pe||t===me?e.NEAREST:e.LINEAR}function w(e){const t=e.target;t.removeEventListener("dispose",w),function(e){const t=n.get(e);if(void 0===t.__webglInit)return;const r=e.source,i=g.get(r);if(i){const n=i[t.__cacheKey];n.usedTimes--,0===n.usedTimes&&T(e),0===Object.keys(i).length&&g.delete(r)}n.remove(e)}(t),t.isVideoTexture&&f.delete(t)}function C(t){const r=t.target;r.removeEventListener("dispose",C),function(t){const r=t.texture,i=n.get(t),s=n.get(r);void 0!==s.__webglTexture&&(e.deleteTexture(s.__webglTexture),a.memory.textures--);t.depthTexture&&t.depthTexture.dispose();if(t.isWebGLCubeRenderTarget)for(let n=0;n<6;n++)e.deleteFramebuffer(i.__webglFramebuffer[n]),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer[n]);else{if(e.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&e.deleteRenderbuffer(i.__webglDepthbuffer),i.__webglMultisampledFramebuffer&&e.deleteFramebuffer(i.__webglMultisampledFramebuffer),i.__webglColorRenderbuffer)for(let t=0;t0&&s.__version!==t.version){const e=t.image;if(null===e)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==e.complete)return void F(s,t,i);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}r.bindTexture(e.TEXTURE_2D,s.__webglTexture,e.TEXTURE0+i)}const R={[ce]:e.REPEAT,[he]:e.CLAMP_TO_EDGE,[ue]:e.MIRRORED_REPEAT},P={[de]:e.NEAREST,[pe]:e.NEAREST_MIPMAP_NEAREST,[me]:e.NEAREST_MIPMAP_LINEAR,[Ae]:e.LINEAR,[ve]:e.LINEAR_MIPMAP_NEAREST,[xe]:e.LINEAR_MIPMAP_LINEAR};function D(r,s,a){if(a?(e.texParameteri(r,e.TEXTURE_WRAP_S,R[s.wrapS]),e.texParameteri(r,e.TEXTURE_WRAP_T,R[s.wrapT]),r!==e.TEXTURE_3D&&r!==e.TEXTURE_2D_ARRAY||e.texParameteri(r,e.TEXTURE_WRAP_R,R[s.wrapR]),e.texParameteri(r,e.TEXTURE_MAG_FILTER,P[s.magFilter]),e.texParameteri(r,e.TEXTURE_MIN_FILTER,P[s.minFilter])):(e.texParameteri(r,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(r,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),r!==e.TEXTURE_3D&&r!==e.TEXTURE_2D_ARRAY||e.texParameteri(r,e.TEXTURE_WRAP_R,e.CLAMP_TO_EDGE),s.wrapS===he&&s.wrapT===he||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(r,e.TEXTURE_MAG_FILTER,M(s.magFilter)),e.texParameteri(r,e.TEXTURE_MIN_FILTER,M(s.minFilter)),s.minFilter!==de&&s.minFilter!==Ae&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===t.has("EXT_texture_filter_anisotropic")){const a=t.get("EXT_texture_filter_anisotropic");if(s.magFilter===de)return;if(s.minFilter!==me&&s.minFilter!==xe)return;if(s.type===Te&&!1===t.has("OES_texture_float_linear"))return;if(!1===o&&s.type===Ie&&!1===t.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||n.get(s).__currentAnisotropy)&&(e.texParameterf(r,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,i.getMaxAnisotropy())),n.get(s).__currentAnisotropy=s.anisotropy)}}function L(t,r){let n=!1;void 0===t.__webglInit&&(t.__webglInit=!0,r.addEventListener("dispose",w));const i=r.source;let s=g.get(i);void 0===s&&(s={},g.set(i,s));const o=function(e){const t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.wrapR||0),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.colorSpace),t.join()}(r);if(o!==t.__cacheKey){void 0===s[o]&&(s[o]={texture:e.createTexture(),usedTimes:0},a.memory.textures++,n=!0),s[o].usedTimes++;const i=s[t.__cacheKey];void 0!==i&&(s[t.__cacheKey].usedTimes--,0===i.usedTimes&&T(r)),t.__cacheKey=o,t.__webglTexture=s[o].texture}return n}function F(t,i,a){let l=e.TEXTURE_2D;(i.isDataArrayTexture||i.isCompressedArrayTexture)&&(l=e.TEXTURE_2D_ARRAY),i.isData3DTexture&&(l=e.TEXTURE_3D);const c=L(t,i),u=i.source;r.bindTexture(l,t.__webglTexture,e.TEXTURE0+a);const d=n.get(u);if(u.version!==d.__version||!0===c){r.activeTexture(e.TEXTURE0+a),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);const t=function(e){return!o&&(e.wrapS!==he||e.wrapT!==he||e.minFilter!==de&&e.minFilter!==Ae)}(i)&&!1===x(i.image);let n=y(i.image,t,!1,h);n=z(i,n);const p=x(n)||o,f=s.convert(i.format,i.colorSpace);let m,g=s.convert(i.type),A=_(i.internalFormat,f,g,i.colorSpace);D(l,i,p);const v=i.mipmaps,M=o&&!0!==i.isVideoTexture,w=void 0===d.__version||!0===c,C=S(i,n,p);if(i.isDepthTexture)A=e.DEPTH_COMPONENT,o?A=i.type===Te?e.DEPTH_COMPONENT32F:i.type===Ce?e.DEPTH_COMPONENT24:i.type===Pe?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT16:i.type===Te&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),i.format===Oe&&A===e.DEPTH_COMPONENT&&i.type!==Me&&i.type!==Ce&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),i.type=Ce,g=s.convert(i.type)),i.format===Ne&&A===e.DEPTH_COMPONENT&&(A=e.DEPTH_STENCIL,i.type!==Pe&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),i.type=Pe,g=s.convert(i.type))),w&&(M?r.texStorage2D(e.TEXTURE_2D,1,A,n.width,n.height):r.texImage2D(e.TEXTURE_2D,0,A,n.width,n.height,0,f,g,null));else if(i.isDataTexture)if(v.length>0&&p){M&&w&&r.texStorage2D(e.TEXTURE_2D,C,A,v[0].width,v[0].height);for(let t=0,n=v.length;t>=1,i>>=1}}else if(v.length>0&&p){M&&w&&r.texStorage2D(e.TEXTURE_2D,C,A,v[0].width,v[0].height);for(let t=0,n=v.length;t=e.TEXTURE_CUBE_MAP_POSITIVE_X&&l<=e.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&e.framebufferTexture2D(e.FRAMEBUFFER,o,l,n.get(a).__webglTexture,0),r.bindFramebuffer(e.FRAMEBUFFER,null)}function O(t,r,n){if(e.bindRenderbuffer(e.RENDERBUFFER,t),r.depthBuffer&&!r.stencilBuffer){let i=e.DEPTH_COMPONENT16;if(n||G(r)){const t=r.depthTexture;t&&t.isDepthTexture&&(t.type===Te?i=e.DEPTH_COMPONENT32F:t.type===Ce&&(i=e.DEPTH_COMPONENT24));const n=k(r);G(r)?d.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,n,i,r.width,r.height):e.renderbufferStorageMultisample(e.RENDERBUFFER,n,i,r.width,r.height)}else e.renderbufferStorage(e.RENDERBUFFER,i,r.width,r.height);e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t)}else if(r.depthBuffer&&r.stencilBuffer){const i=k(r);n&&!1===G(r)?e.renderbufferStorageMultisample(e.RENDERBUFFER,i,e.DEPTH24_STENCIL8,r.width,r.height):G(r)?d.renderbufferStorageMultisampleEXT(e.RENDERBUFFER,i,e.DEPTH24_STENCIL8,r.width,r.height):e.renderbufferStorage(e.RENDERBUFFER,e.DEPTH_STENCIL,r.width,r.height),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,t)}else{const t=!0===r.isWebGLMultipleRenderTargets?r.texture:[r.texture];for(let i=0;i0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==r.__useRenderToTexture}function z(e,r){const n=e.colorSpace,i=e.format,s=e.type;return!0===e.isCompressedTexture||e.format===Ar||n!==Qt&&n!==Gt&&(n===zt?!1===o?!0===t.has("EXT_sRGB")&&i===Le?(e.format=Ar,e.minFilter=Ae,e.generateMipmaps=!1):r=Kr.sRGBToLinear(r):i===Le&&s===Ee||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",n)),r}this.allocateTextureUnit=function(){const e=I;return e>=l&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+l),I+=1,e},this.resetTextureUnits=function(){I=0},this.setTexture2D=B,this.setTexture2DArray=function(t,i){const s=n.get(t);t.version>0&&s.__version!==t.version?F(s,t,i):r.bindTexture(e.TEXTURE_2D_ARRAY,s.__webglTexture,e.TEXTURE0+i)},this.setTexture3D=function(t,i){const s=n.get(t);t.version>0&&s.__version!==t.version?F(s,t,i):r.bindTexture(e.TEXTURE_3D,s.__webglTexture,e.TEXTURE0+i)},this.setTextureCube=function(t,i){const a=n.get(t);t.version>0&&a.__version!==t.version?function(t,i,a){if(6!==i.image.length)return;const l=L(t,i),h=i.source;r.bindTexture(e.TEXTURE_CUBE_MAP,t.__webglTexture,e.TEXTURE0+a);const u=n.get(h);if(h.version!==u.__version||!0===l){r.activeTexture(e.TEXTURE0+a),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,i.flipY),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i.premultiplyAlpha),e.pixelStorei(e.UNPACK_ALIGNMENT,i.unpackAlignment),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE);const t=i.isCompressedTexture||i.image[0].isCompressedTexture,n=i.image[0]&&i.image[0].isDataTexture,d=[];for(let e=0;e<6;e++)d[e]=t||n?n?i.image[e].image:i.image[e]:y(i.image[e],!1,!0,c),d[e]=z(i,d[e]);const p=d[0],f=x(p)||o,m=s.convert(i.format,i.colorSpace),g=s.convert(i.type),A=_(i.internalFormat,m,g,i.colorSpace),v=o&&!0!==i.isVideoTexture,M=void 0===u.__version||!0===l;let w,C=S(i,p,f);if(D(e.TEXTURE_CUBE_MAP,i,f),t){v&&M&&r.texStorage2D(e.TEXTURE_CUBE_MAP,C,A,p.width,p.height);for(let t=0;t<6;t++){w=d[t].mipmaps;for(let n=0;n0&&C++,r.texStorage2D(e.TEXTURE_CUBE_MAP,C,A,d[0].width,d[0].height));for(let t=0;t<6;t++)if(n){v?r.texSubImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,0,0,d[t].width,d[t].height,m,g,d[t].data):r.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+t,0,A,d[t].width,d[t].height,0,m,g,d[t].data);for(let n=0;n0&&!1===G(t)){const n=d?l:[l];c.__webglMultisampledFramebuffer=e.createFramebuffer(),c.__webglColorRenderbuffer=[],r.bindFramebuffer(e.FRAMEBUFFER,c.__webglMultisampledFramebuffer);for(let r=0;r0&&!1===G(t)){const i=t.isWebGLMultipleRenderTargets?t.texture:[t.texture],s=t.width,a=t.height;let o=e.COLOR_BUFFER_BIT;const l=[],c=t.stencilBuffer?e.DEPTH_STENCIL_ATTACHMENT:e.DEPTH_ATTACHMENT,h=n.get(t),u=!0===t.isWebGLMultipleRenderTargets;if(u)for(let t=0;to+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&(i=t.getPose(e.gripSpace,r),null!==i&&(o.matrix.fromArray(i.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,i.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(i.linearVelocity)):o.hasLinearVelocity=!1,i.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(i.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(n=t.getPose(e.targetRaySpace,r),null===n&&null!==i&&(n=i),null!==n&&(a.matrix.fromArray(n.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,n.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(n.linearVelocity)):a.hasLinearVelocity=!1,n.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(n.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(gl)))}return null!==a&&(a.visible=null!==n),null!==o&&(o.visible=null!==i),null!==l&&(l.visible=null!==s),this}_getHandJoint(e,t){if(void 0===e.joints[t.jointName]){const r=new ml;r.matrixAutoUpdate=!1,r.visible=!1,e.joints[t.jointName]=r,e.add(r)}return e.joints[t.jointName]}}class vl extends en{constructor(e,t,r,n,i,s,a,o,l,c){if((c=void 0!==c?c:Oe)!==Oe&&c!==Ne)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===r&&c===Oe&&(r=Ce),void 0===r&&c===Ne&&(r=Pe),super(null,n,i,s,a,o,c,r,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==a?a:de,this.minFilter=void 0!==o?o:de,this.flipY=!1,this.generateMipmaps=!1}}class yl extends vr{constructor(e,t){super();const r=this;let n=null,i=1,s=null,a="local-floor",o=1,l=null,c=null,h=null,u=null,d=null,p=null;const f=t.getContextAttributes();let m=null,g=null;const A=[],v=[],y=new Set,x=new Map,b=new Rs;b.layers.enable(1),b.viewport=new tn;const E=new Rs;E.layers.enable(2),E.viewport=new tn;const _=[b,E],S=new fl;S.layers.enable(1),S.layers.enable(2);let M=null,w=null;function C(e){const t=v.indexOf(e.inputSource);if(-1===t)return;const r=A[t];void 0!==r&&(r.update(e.inputSource,e.frame,l||s),r.dispatchEvent({type:e.type,data:e.inputSource}))}function T(){n.removeEventListener("select",C),n.removeEventListener("selectstart",C),n.removeEventListener("selectend",C),n.removeEventListener("squeeze",C),n.removeEventListener("squeezestart",C),n.removeEventListener("squeezeend",C),n.removeEventListener("end",T),n.removeEventListener("inputsourceschange",I);for(let e=0;e=0&&(v[n]=null,A[n].disconnect(r))}for(let t=0;t=v.length){v.push(r),n=e;break}if(null===v[e]){v[e]=r,n=e;break}}if(-1===n)break}const i=A[n];i&&i.connect(r)}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=A[e];return void 0===t&&(t=new Al,A[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=A[e];return void 0===t&&(t=new Al,A[e]=t),t.getGripSpace()},this.getHand=function(e){let t=A[e];return void 0===t&&(t=new Al,A[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){i=e,!0===r.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){a=e,!0===r.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return l||s},this.setReferenceSpace=function(e){l=e},this.getBaseLayer=function(){return null!==u?u:d},this.getBinding=function(){return h},this.getFrame=function(){return p},this.getSession=function(){return n},this.setSession=async function(c){if(n=c,null!==n){if(m=e.getRenderTarget(),n.addEventListener("select",C),n.addEventListener("selectstart",C),n.addEventListener("selectend",C),n.addEventListener("squeeze",C),n.addEventListener("squeezestart",C),n.addEventListener("squeezeend",C),n.addEventListener("end",T),n.addEventListener("inputsourceschange",I),!0!==f.xrCompatible&&await t.makeXRCompatible(),void 0===n.renderState.layers||!1===e.capabilities.isWebGL2){const r={antialias:void 0!==n.renderState.layers||f.antialias,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:i};d=new XRWebGLLayer(n,t,r),n.updateRenderState({baseLayer:d}),g=new rn(d.framebufferWidth,d.framebufferHeight,{format:Le,type:Ee,colorSpace:e.outputColorSpace,stencilBuffer:f.stencil})}else{let r=null,s=null,a=null;f.depth&&(a=f.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,r=f.stencil?Ne:Oe,s=f.stencil?Pe:Ce);const o={colorFormat:t.RGBA8,depthFormat:a,scaleFactor:i};h=new XRWebGLBinding(n,t),u=h.createProjectionLayer(o),n.updateRenderState({layers:[u]}),g=new rn(u.textureWidth,u.textureHeight,{format:Le,type:Ee,depthTexture:new vl(u.textureWidth,u.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,r),stencilBuffer:f.stencil,colorSpace:e.outputColorSpace,samples:f.antialias?4:0});e.properties.get(g).__ignoreDepthValues=u.ignoreDepthValues}g.isXRRenderTarget=!0,this.setFoveation(o),l=null,s=await n.requestReferenceSpace(a),L.setContext(n),L.start(),r.isPresenting=!0,r.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(null!==n)return n.environmentBlendMode};const B=new hn,R=new hn;function P(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===n)return;S.near=E.near=b.near=e.near,S.far=E.far=b.far=e.far,M===S.near&&w===S.far||(n.updateRenderState({depthNear:S.near,depthFar:S.far}),M=S.near,w=S.far);const t=e.parent,r=S.cameras;P(S,t);for(let n=0;ne&&(x.set(t,t.lastChangedTime),r.dispatchEvent({type:"planechanged",data:t}))}else y.add(t),x.set(t,n.lastChangedTime),r.dispatchEvent({type:"planeadded",data:t})}p=null})),this.setAnimationLoop=function(e){D=e},this.dispose=function(){}}}function xl(e,t){function r(e,t){!0===e.matrixAutoUpdate&&e.updateMatrix(),t.value.copy(e.matrix)}function n(n,i){n.opacity.value=i.opacity,i.color&&n.diffuse.value.copy(i.color),i.emissive&&n.emissive.value.copy(i.emissive).multiplyScalar(i.emissiveIntensity),i.map&&(n.map.value=i.map,r(i.map,n.mapTransform)),i.alphaMap&&(n.alphaMap.value=i.alphaMap,r(i.alphaMap,n.alphaMapTransform)),i.bumpMap&&(n.bumpMap.value=i.bumpMap,r(i.bumpMap,n.bumpMapTransform),n.bumpScale.value=i.bumpScale,i.side===m&&(n.bumpScale.value*=-1)),i.normalMap&&(n.normalMap.value=i.normalMap,r(i.normalMap,n.normalMapTransform),n.normalScale.value.copy(i.normalScale),i.side===m&&n.normalScale.value.negate()),i.displacementMap&&(n.displacementMap.value=i.displacementMap,r(i.displacementMap,n.displacementMapTransform),n.displacementScale.value=i.displacementScale,n.displacementBias.value=i.displacementBias),i.emissiveMap&&(n.emissiveMap.value=i.emissiveMap,r(i.emissiveMap,n.emissiveMapTransform)),i.specularMap&&(n.specularMap.value=i.specularMap,r(i.specularMap,n.specularMapTransform)),i.alphaTest>0&&(n.alphaTest.value=i.alphaTest);const s=t.get(i).envMap;if(s&&(n.envMap.value=s,n.flipEnvMap.value=s.isCubeTexture&&!1===s.isRenderTargetTexture?-1:1,n.reflectivity.value=i.reflectivity,n.ior.value=i.ior,n.refractionRatio.value=i.refractionRatio),i.lightMap){n.lightMap.value=i.lightMap;const t=!0===e.useLegacyLights?Math.PI:1;n.lightMapIntensity.value=i.lightMapIntensity*t,r(i.lightMap,n.lightMapTransform)}i.aoMap&&(n.aoMap.value=i.aoMap,n.aoMapIntensity.value=i.aoMapIntensity,r(i.aoMap,n.aoMapTransform))}return{refreshFogUniforms:function(t,r){r.color.getRGB(t.fogColor.value,Cs(e)),r.isFog?(t.fogNear.value=r.near,t.fogFar.value=r.far):r.isFogExp2&&(t.fogDensity.value=r.density)},refreshMaterialUniforms:function(e,i,s,a,o){i.isMeshBasicMaterial||i.isMeshLambertMaterial?n(e,i):i.isMeshToonMaterial?(n(e,i),function(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,i)):i.isMeshPhongMaterial?(n(e,i),function(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,i)):i.isMeshStandardMaterial?(n(e,i),function(e,n){e.metalness.value=n.metalness,n.metalnessMap&&(e.metalnessMap.value=n.metalnessMap,r(n.metalnessMap,e.metalnessMapTransform));e.roughness.value=n.roughness,n.roughnessMap&&(e.roughnessMap.value=n.roughnessMap,r(n.roughnessMap,e.roughnessMapTransform));const i=t.get(n).envMap;i&&(e.envMapIntensity.value=n.envMapIntensity)}(e,i),i.isMeshPhysicalMaterial&&function(e,t,n){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap,r(t.sheenColorMap,e.sheenColorMapTransform)),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap,r(t.sheenRoughnessMap,e.sheenRoughnessMapTransform)));t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap,r(t.clearcoatMap,e.clearcoatMapTransform)),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap,r(t.clearcoatRoughnessMap,e.clearcoatRoughnessMapTransform)),t.clearcoatNormalMap&&(e.clearcoatNormalMap.value=t.clearcoatNormalMap,r(t.clearcoatNormalMap,e.clearcoatNormalMapTransform),e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),t.side===m&&e.clearcoatNormalScale.value.negate()));t.iridescence>0&&(e.iridescence.value=t.iridescence,e.iridescenceIOR.value=t.iridescenceIOR,e.iridescenceThicknessMinimum.value=t.iridescenceThicknessRange[0],e.iridescenceThicknessMaximum.value=t.iridescenceThicknessRange[1],t.iridescenceMap&&(e.iridescenceMap.value=t.iridescenceMap,r(t.iridescenceMap,e.iridescenceMapTransform)),t.iridescenceThicknessMap&&(e.iridescenceThicknessMap.value=t.iridescenceThicknessMap,r(t.iridescenceThicknessMap,e.iridescenceThicknessMapTransform)));t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=n.texture,e.transmissionSamplerSize.value.set(n.width,n.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap,r(t.transmissionMap,e.transmissionMapTransform)),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap,r(t.thicknessMap,e.thicknessMapTransform)),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor));e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap,r(t.specularColorMap,e.specularColorMapTransform));t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap,r(t.specularIntensityMap,e.specularIntensityMapTransform))}(e,i,o)):i.isMeshMatcapMaterial?(n(e,i),function(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,i)):i.isMeshDepthMaterial?n(e,i):i.isMeshDistanceMaterial?(n(e,i),function(e,r){const n=t.get(r).light;e.referencePosition.value.setFromMatrixPosition(n.matrixWorld),e.nearDistance.value=n.shadow.camera.near,e.farDistance.value=n.shadow.camera.far}(e,i)):i.isMeshNormalMaterial?n(e,i):i.isLineBasicMaterial?(function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,t.map&&(e.map.value=t.map,r(t.map,e.mapTransform))}(e,i),i.isLineDashedMaterial&&function(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,i)):i.isPointsMaterial?function(e,t,n,i){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*n,e.scale.value=.5*i,t.map&&(e.map.value=t.map,r(t.map,e.uvTransform));t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,i,s,a):i.isSpriteMaterial?function(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map,r(t.map,e.mapTransform));t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest)}(e,i):i.isShadowMaterial?(e.color.value.copy(i.color),e.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function bl(e,t,r,n){let i={},s={},a=[];const o=r.isWebGL2?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(e,t,r){const n=e.value;if(void 0===r[t]){if("number"==typeof n)r[t]=n;else{const e=Array.isArray(n)?n:[n],i=[];for(let t=0;t0){i=r%n;0!==i&&n-i-a.boundary<0&&(r+=n-i,e.__offset=r)}r+=a.storage}i=r%n,i>0&&(r+=n-i);e.__size=r,e.__cache={}}(r),d=function(t){const r=function(){for(let e=0;e0&&function(e,t,r,n){if(null===z){const e=X.isWebGL2;z=new rn(1024,1024,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Ie:Ee,minFilter:xe,samples:e&&!0===o?4:0})}const i=x.getRenderTarget();x.setRenderTarget(z),x.clear();const s=x.toneMapping;x.toneMapping=J,Ue(e,r,n),Z.updateMultisampleRenderTarget(z),Z.updateRenderTargetMipmap(z);let a=!1;for(let o=0,l=t.length;o0&&Ue(i,t,r),s.length>0&&Ue(s,t,r),a.length>0&&Ue(a,t,r),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function Ue(e,t,r){const n=!0===t.isScene?t.overrideMaterial:null;for(let i=0,s=e.length;i0?y[y.length-1]:null,v.pop(),p=v.length>0?v[v.length-1]:null},this.getActiveCubeFace=function(){return E},this.getActiveMipmapLevel=function(){return _},this.getRenderTarget=function(){return S},this.setRenderTargetTextures=function(e,t,r){K.get(e.texture).__webglTexture=t,K.get(e.depthTexture).__webglTexture=r;const n=K.get(e);n.__hasExternalTextures=!0,n.__hasExternalTextures&&(n.__autoAllocateDepthBuffer=void 0===r,n.__autoAllocateDepthBuffer||!0===W.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),n.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){const r=K.get(e);r.__webglFramebuffer=t,r.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,r=0){S=e,E=t,_=r;let n=!0,i=null,s=!1,a=!1;if(e){const r=K.get(e);void 0!==r.__useDefaultFramebuffer?(Y.bindFramebuffer(Ae.FRAMEBUFFER,null),n=!1):void 0===r.__webglFramebuffer?Z.setupRenderTarget(e):r.__hasExternalTextures&&Z.rebindTextures(e,K.get(e.texture).__webglTexture,K.get(e.depthTexture).__webglTexture);const o=e.texture;(o.isData3DTexture||o.isDataArrayTexture||o.isCompressedArrayTexture)&&(a=!0);const l=K.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(i=l[t],s=!0):i=X.isWebGL2&&e.samples>0&&!1===Z.useMultisampledRTT(e)?K.get(e).__webglMultisampledFramebuffer:l,C.copy(e.viewport),T.copy(e.scissor),I=e.scissorTest}else C.copy(F).multiplyScalar(P).floor(),T.copy(U).multiplyScalar(P).floor(),I=O;if(Y.bindFramebuffer(Ae.FRAMEBUFFER,i)&&X.drawBuffers&&n&&Y.drawBuffers(e,i),Y.viewport(C),Y.scissor(T),Y.setScissorTest(I),s){const n=K.get(e.texture);Ae.framebufferTexture2D(Ae.FRAMEBUFFER,Ae.COLOR_ATTACHMENT0,Ae.TEXTURE_CUBE_MAP_POSITIVE_X+t,n.__webglTexture,r)}else if(a){const n=K.get(e.texture),i=t||0;Ae.framebufferTextureLayer(Ae.FRAMEBUFFER,Ae.COLOR_ATTACHMENT0,n.__webglTexture,r||0,i)}M=-1},this.readRenderTargetPixels=function(e,t,r,n,i,s,a){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=K.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Y.bindFramebuffer(Ae.FRAMEBUFFER,o);try{const a=e.texture,o=a.format,l=a.type;if(o!==Le&&fe.convert(o)!==Ae.getParameter(Ae.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===Ie&&(W.has("EXT_color_buffer_half_float")||X.isWebGL2&&W.has("EXT_color_buffer_float"));if(!(l===Ee||fe.convert(l)===Ae.getParameter(Ae.IMPLEMENTATION_COLOR_READ_TYPE)||l===Te&&(X.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float"))||c))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-n&&r>=0&&r<=e.height-i&&Ae.readPixels(t,r,n,i,fe.convert(o),fe.convert(l),s)}finally{const e=null!==S?K.get(S).__webglFramebuffer:null;Y.bindFramebuffer(Ae.FRAMEBUFFER,e)}}},this.copyFramebufferToTexture=function(e,t,r=0){const n=Math.pow(2,-r),i=Math.floor(t.image.width*n),s=Math.floor(t.image.height*n);Z.setTexture2D(t,0),Ae.copyTexSubImage2D(Ae.TEXTURE_2D,r,0,0,e.x,e.y,i,s),Y.unbindTexture()},this.copyTextureToTexture=function(e,t,r,n=0){const i=t.image.width,s=t.image.height,a=fe.convert(r.format),o=fe.convert(r.type);Z.setTexture2D(r,0),Ae.pixelStorei(Ae.UNPACK_FLIP_Y_WEBGL,r.flipY),Ae.pixelStorei(Ae.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r.premultiplyAlpha),Ae.pixelStorei(Ae.UNPACK_ALIGNMENT,r.unpackAlignment),t.isDataTexture?Ae.texSubImage2D(Ae.TEXTURE_2D,n,e.x,e.y,i,s,a,o,t.image.data):t.isCompressedTexture?Ae.compressedTexSubImage2D(Ae.TEXTURE_2D,n,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,a,t.mipmaps[0].data):Ae.texSubImage2D(Ae.TEXTURE_2D,n,e.x,e.y,a,o,t.image),0===n&&r.generateMipmaps&&Ae.generateMipmap(Ae.TEXTURE_2D),Y.unbindTexture()},this.copyTextureToTexture3D=function(e,t,r,n,i=0){if(x.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=e.max.x-e.min.x+1,a=e.max.y-e.min.y+1,o=e.max.z-e.min.z+1,l=fe.convert(n.format),c=fe.convert(n.type);let h;if(n.isData3DTexture)Z.setTexture3D(n,0),h=Ae.TEXTURE_3D;else{if(!n.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");Z.setTexture2DArray(n,0),h=Ae.TEXTURE_2D_ARRAY}Ae.pixelStorei(Ae.UNPACK_FLIP_Y_WEBGL,n.flipY),Ae.pixelStorei(Ae.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),Ae.pixelStorei(Ae.UNPACK_ALIGNMENT,n.unpackAlignment);const u=Ae.getParameter(Ae.UNPACK_ROW_LENGTH),d=Ae.getParameter(Ae.UNPACK_IMAGE_HEIGHT),p=Ae.getParameter(Ae.UNPACK_SKIP_PIXELS),f=Ae.getParameter(Ae.UNPACK_SKIP_ROWS),m=Ae.getParameter(Ae.UNPACK_SKIP_IMAGES),g=r.isCompressedTexture?r.mipmaps[0]:r.image;Ae.pixelStorei(Ae.UNPACK_ROW_LENGTH,g.width),Ae.pixelStorei(Ae.UNPACK_IMAGE_HEIGHT,g.height),Ae.pixelStorei(Ae.UNPACK_SKIP_PIXELS,e.min.x),Ae.pixelStorei(Ae.UNPACK_SKIP_ROWS,e.min.y),Ae.pixelStorei(Ae.UNPACK_SKIP_IMAGES,e.min.z),r.isDataTexture||r.isData3DTexture?Ae.texSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,c,g.data):r.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),Ae.compressedTexSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,g.data)):Ae.texSubImage3D(h,i,t.x,t.y,t.z,s,a,o,l,c,g),Ae.pixelStorei(Ae.UNPACK_ROW_LENGTH,u),Ae.pixelStorei(Ae.UNPACK_IMAGE_HEIGHT,d),Ae.pixelStorei(Ae.UNPACK_SKIP_PIXELS,p),Ae.pixelStorei(Ae.UNPACK_SKIP_ROWS,f),Ae.pixelStorei(Ae.UNPACK_SKIP_IMAGES,m),0===i&&n.generateMipmaps&&Ae.generateMipmap(h),Y.unbindTexture()},this.initTexture=function(e){e.isCubeTexture?Z.setTextureCube(e,0):e.isData3DTexture?Z.setTexture3D(e,0):e.isDataArrayTexture||e.isCompressedArrayTexture?Z.setTexture2DArray(e,0):Z.setTexture2D(e,0),Y.unbindTexture()},this.resetState=function(){E=0,_=0,S=null,Y.reset(),me.reset()},"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: the property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===zt?Ft:Lt}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===Ft?zt:Qt}}class Sl extends _l{}Sl.prototype.isWebGL1Renderer=!0;class Ml{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Bi(e),this.density=t}clone(){return new Ml(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class wl{constructor(e,t=1,r=1e3){this.isFog=!0,this.name="",this.color=new Bi(e),this.near=t,this.far=r}clone(){return new wl(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Cl extends ui{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(t.object.backgroundIntensity=this.backgroundIntensity),t}get autoUpdate(){return console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate}set autoUpdate(e){console.warn("THREE.Scene: autoUpdate was renamed to matrixWorldAutoUpdate in r144."),this.matrixWorldAutoUpdate=e}}class Tl{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=ar,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=_r()}onUploadCallback(){}set needsUpdate(e){!0===e&&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,r){e*=this.stride,r*=t.stride;for(let n=0,i=this.stride;ne.far||t.push({distance:o,point:Dl.clone(),uv:_i.getInterpolation(Dl,kl,Gl,zl,Ql,Vl,Hl,new Dr),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function Wl(e,t,r,n,i,s){Ul.subVectors(e,r).addScalar(.5).multiply(n),void 0!==i?(Ol.x=s*Ul.x-i*Ul.y,Ol.y=i*Ul.x+s*Ul.y):Ol.copy(Ul),e.copy(t),e.x+=Ol.x,e.y+=Ol.y,e.applyMatrix4(Nl)}const Xl=new hn,Yl=new hn;class ql extends ui{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let r=0,n=t.length;r0){let r,n;for(r=1,n=t.length;r0){Xl.setFromMatrixPosition(this.matrixWorld);const r=e.ray.origin.distanceTo(Xl);this.getObjectForDistance(r).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){Xl.setFromMatrixPosition(e.matrixWorld),Yl.setFromMatrixPosition(this.matrixWorld);const r=Xl.distanceTo(Yl)/e.zoom;let n,i;for(t[0].object.visible=!0,n=1,i=t.length;n=e))break;t[n-1].object.visible=!1,t[n].object.visible=!0}for(this._currentLevel=n-1;no)continue;u.applyMatrix4(this.matrixWorld);const s=e.ray.origin.distanceTo(u);se.far||t.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:r,face:null,faceIndex:null,object:this})}}else{for(let r=Math.max(0,s.start),n=Math.min(f.count,s.start+s.count)-1;ro)continue;u.applyMatrix4(this.matrixWorld);const n=e.ray.origin.distanceTo(u);ne.far||t.push({distance:n,point:h.clone().applyMatrix4(this.matrixWorld),index:r,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const r=e[t[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=r.length;e0){const r=e[t[0]];if(void 0!==r){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=r.length;ei.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:r,index:t,face:null,object:a})}}class Fc extends en{constructor(e,t,r,n,i,s,a,o,l){super(e,t,r,n,i,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:Ae,this.magFilter=void 0!==i?i:Ae,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback((function t(){c.needsUpdate=!0,e.requestVideoFrameCallback(t)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;!1==="requestVideoFrameCallback"in e&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class Uc extends en{constructor(e,t,r){super({width:e,height:t}),this.isFramebufferTexture=!0,this.format=r,this.magFilter=de,this.minFilter=de,this.generateMipmaps=!1,this.needsUpdate=!0}}class Oc extends en{constructor(e,t,r,n,i,s,a,o,l,c,h,u){super(null,s,a,o,l,c,n,i,h,u),this.isCompressedTexture=!0,this.image={width:t,height:r},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class Nc extends Oc{constructor(e,t,r,n,i,s){super(e,t,r,i,s),this.isCompressedArrayTexture=!0,this.image.depth=n,this.wrapR=he}}class kc extends en{constructor(e,t,r,n,i,s,a,o,l){super(e,t,r,n,i,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Gc{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const r=this.getUtoTmapping(e);return this.getPoint(r,t)}getPoints(e=5){const t=[];for(let r=0;r<=e;r++)t.push(this.getPoint(r/e));return t}getSpacedPoints(e=5){const t=[];for(let r=0;r<=e;r++)t.push(this.getPointAt(r/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 r,n=this.getPoint(0),i=0;t.push(0);for(let s=1;s<=e;s++)r=this.getPoint(s/e),i+=r.distanceTo(n),t.push(i),n=r;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const r=this.getLengths();let n=0;const i=r.length;let s;s=t||e*r[i-1];let a,o=0,l=i-1;for(;o<=l;)if(n=Math.floor(o+(l-o)/2),a=r[n]-s,a<0)o=n+1;else{if(!(a>0)){l=n;break}l=n-1}if(n=l,r[n]===s)return n/(i-1);const c=r[n];return(n+(s-c)/(r[n+1]-c))/(i-1)}getTangent(e,t){const r=1e-4;let n=e-r,i=e+r;n<0&&(n=0),i>1&&(i=1);const s=this.getPoint(n),a=this.getPoint(i),o=t||(s.isVector2?new Dr:new hn);return o.copy(a).sub(s).normalize(),o}getTangentAt(e,t){const r=this.getUtoTmapping(e);return this.getTangent(r,t)}computeFrenetFrames(e,t){const r=new hn,n=[],i=[],s=[],a=new hn,o=new Gn;for(let d=0;d<=e;d++){const t=d/e;n[d]=this.getTangentAt(t,new hn)}i[0]=new hn,s[0]=new hn;let l=Number.MAX_VALUE;const c=Math.abs(n[0].x),h=Math.abs(n[0].y),u=Math.abs(n[0].z);c<=l&&(l=c,r.set(1,0,0)),h<=l&&(l=h,r.set(0,1,0)),u<=l&&r.set(0,0,1),a.crossVectors(n[0],r).normalize(),i[0].crossVectors(n[0],a),s[0].crossVectors(n[0],i[0]);for(let d=1;d<=e;d++){if(i[d]=i[d-1].clone(),s[d]=s[d-1].clone(),a.crossVectors(n[d-1],n[d]),a.length()>Number.EPSILON){a.normalize();const e=Math.acos(Sr(n[d-1].dot(n[d]),-1,1));i[d].applyMatrix4(o.makeRotationAxis(a,e))}s[d].crossVectors(n[d],i[d])}if(!0===t){let t=Math.acos(Sr(i[0].dot(i[e]),-1,1));t/=e,n[0].dot(a.crossVectors(i[0],i[e]))>0&&(t=-t);for(let r=1;r<=e;r++)i[r].applyMatrix4(o.makeRotationAxis(n[r],t*r)),s[r].crossVectors(n[r],i[r])}return{tangents:n,normals:i,binormals:s}}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 zc extends Gc{constructor(e=0,t=0,r=1,n=1,i=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=r,this.yRadius=n,this.aStartAngle=i,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(e,t){const r=t||new Dr,n=2*Math.PI;let i=this.aEndAngle-this.aStartAngle;const s=Math.abs(i)n;)i-=n;i0?0:(Math.floor(Math.abs(l)/i)+1)*i:0===c&&l===i-1&&(l=i-2,c=1),this.closed||l>0?a=n[(l-1)%i]:(Hc.subVectors(n[0],n[1]).add(n[0]),a=Hc);const h=n[l%i],u=n[(l+1)%i];if(this.closed||l+2n.length-2?n.length-1:s+1],h=n[s>n.length-3?n.length-1:s+2];return r.set(qc(a,o.x,l.x,c.x,h.x),qc(a,o.y,l.y,c.y,h.y)),r}copy(e){super.copy(e),this.points=[];for(let t=0,r=e.points.length;t=r){const e=n[i]-r,s=this.curves[i],a=s.getLength(),o=0===a?0:1-e/a;return s.getPointAt(o,t)}i++}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 r=0,n=this.curves.length;r1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,r=e.curves.length;t0){const e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),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 lh extends is{constructor(e=[new Dr(0,-.5),new Dr(.5,0),new Dr(0,.5)],t=12,r=0,n=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:r,phiLength:n},t=Math.floor(t),n=Sr(n,0,2*Math.PI);const i=[],s=[],a=[],o=[],l=[],c=1/t,h=new hn,u=new Dr,d=new hn,p=new hn,f=new hn;let m=0,g=0;for(let A=0;A<=e.length-1;A++)switch(A){case 0:m=e[A+1].x-e[A].x,g=e[A+1].y-e[A].y,d.x=1*g,d.y=-m,d.z=0*g,f.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(f.x,f.y,f.z);break;default:m=e[A+1].x-e[A].x,g=e[A+1].y-e[A].y,d.x=1*g,d.y=-m,d.z=0*g,p.copy(d),d.x+=f.x,d.y+=f.y,d.z+=f.z,d.normalize(),o.push(d.x,d.y,d.z),f.copy(p)}for(let A=0;A<=t;A++){const i=r+A*c*n,d=Math.sin(i),p=Math.cos(i);for(let r=0;r<=e.length-1;r++){h.x=e[r].x*d,h.y=e[r].y,h.z=e[r].x*p,s.push(h.x,h.y,h.z),u.x=A/t,u.y=r/(e.length-1),a.push(u.x,u.y);const n=o[3*r+0]*d,i=o[3*r+1],c=o[3*r+0]*p;l.push(n,i,c)}}for(let A=0;A0&&A(!0),t>0&&A(!1)),this.setIndex(c),this.setAttribute("position",new qi(h,3)),this.setAttribute("normal",new qi(u,3)),this.setAttribute("uv",new qi(d,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new uh(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class dh extends uh{constructor(e=1,t=1,r=32,n=1,i=!1,s=0,a=2*Math.PI){super(0,e,t,r,n,i,s,a),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:s,thetaLength:a}}static fromJSON(e){return new dh(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class ph extends is{constructor(e=[],t=[],r=1,n=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:r,detail:n};const i=[],s=[];function a(e,t,r,n){const i=n+1,s=[];for(let a=0;a<=i;a++){s[a]=[];const n=e.clone().lerp(r,a/i),o=t.clone().lerp(r,a/i),l=i-a;for(let e=0;e<=l;e++)s[a][e]=0===e&&a===i?n:n.clone().lerp(o,e/l)}for(let a=0;a.9&&a<.1&&(t<.2&&(s[e+0]+=1),r<.2&&(s[e+2]+=1),n<.2&&(s[e+4]+=1))}}()}(),this.setAttribute("position",new qi(i,3)),this.setAttribute("normal",new qi(i.slice(),3)),this.setAttribute("uv",new qi(s,2)),0===n?this.computeVertexNormals():this.normalizeNormals()}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new ph(e.vertices,e.indices,e.radius,e.details)}}class fh extends ph{constructor(e=1,t=0){const r=(1+Math.sqrt(5))/2,n=1/r;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new fh(e.radius,e.detail)}}const mh=new hn,gh=new hn,Ah=new hn,vh=new _i;class yh extends is{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const r=4,n=Math.pow(10,r),i=Math.cos(br*t),s=e.getIndex(),a=e.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let e=0;e80*r){o=c=e[0],l=h=e[1];for(let t=r;tc&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?32767/p:0}return Sh(s,a,r,o,l,p,0),a};function Eh(e,t,r,n,i){let s,a;if(i===function(e,t,r,n){let i=0;for(let s=t,a=r-n;s0)for(s=t;s=t;s-=n)a=Vh(s,e[s],e[s+1],a);return a&&Oh(a,a.next)&&(Hh(a),a=a.next),a}function _h(e,t){if(!e)return e;t||(t=e);let r,n=e;do{if(r=!1,n.steiner||!Oh(n,n.next)&&0!==Uh(n.prev,n,n.next))n=n.next;else{if(Hh(n),n=t=n.prev,n===n.next)break;r=!0}}while(r||n!==t);return t}function Sh(e,t,r,n,i,s,a){if(!e)return;!a&&s&&function(e,t,r,n){let i=e;do{0===i.z&&(i.z=Ph(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,function(e){let t,r,n,i,s,a,o,l,c=1;do{for(r=e,e=null,s=null,a=0;r;){for(a++,n=r,o=0,t=0;t0||l>0&&n;)0!==o&&(0===l||!n||r.z<=n.z)?(i=r,r=r.nextZ,o--):(i=n,n=n.nextZ,l--),s?s.nextZ=i:e=i,i.prevZ=s,s=i;r=n}s.nextZ=null,c*=2}while(a>1)}(i)}(e,n,i,s);let o,l,c=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,s?wh(e,n,i,s):Mh(e))t.push(o.i/r|0),t.push(e.i/r|0),t.push(l.i/r|0),Hh(e),e=l.next,c=l.next;else if((e=l)===c){a?1===a?Sh(e=Ch(_h(e),t,r),t,r,n,i,s,2):2===a&&Th(e,t,r,n,i,s):Sh(_h(e),t,r,n,i,s,1);break}}function Mh(e){const t=e.prev,r=e,n=e.next;if(Uh(t,r,n)>=0)return!1;const i=t.x,s=r.x,a=n.x,o=t.y,l=r.y,c=n.y,h=is?i>a?i:a:s>a?s:a,p=o>l?o>c?o:c:l>c?l:c;let f=n.next;for(;f!==t;){if(f.x>=h&&f.x<=d&&f.y>=u&&f.y<=p&&Lh(i,o,s,l,a,c,f.x,f.y)&&Uh(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function wh(e,t,r,n){const i=e.prev,s=e,a=e.next;if(Uh(i,s,a)>=0)return!1;const o=i.x,l=s.x,c=a.x,h=i.y,u=s.y,d=a.y,p=ol?o>c?o:c:l>c?l:c,g=h>u?h>d?h:d:u>d?u:d,A=Ph(p,f,t,r,n),v=Ph(m,g,t,r,n);let y=e.prevZ,x=e.nextZ;for(;y&&y.z>=A&&x&&x.z<=v;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==i&&y!==a&&Lh(o,h,l,u,c,d,y.x,y.y)&&Uh(y.prev,y,y.next)>=0)return!1;if(y=y.prevZ,x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==i&&x!==a&&Lh(o,h,l,u,c,d,x.x,x.y)&&Uh(x.prev,x,x.next)>=0)return!1;x=x.nextZ}for(;y&&y.z>=A;){if(y.x>=p&&y.x<=m&&y.y>=f&&y.y<=g&&y!==i&&y!==a&&Lh(o,h,l,u,c,d,y.x,y.y)&&Uh(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;x&&x.z<=v;){if(x.x>=p&&x.x<=m&&x.y>=f&&x.y<=g&&x!==i&&x!==a&&Lh(o,h,l,u,c,d,x.x,x.y)&&Uh(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function Ch(e,t,r){let n=e;do{const i=n.prev,s=n.next.next;!Oh(i,s)&&Nh(i,n,n.next,s)&&zh(i,s)&&zh(s,i)&&(t.push(i.i/r|0),t.push(n.i/r|0),t.push(s.i/r|0),Hh(n),Hh(n.next),n=e=s),n=n.next}while(n!==e);return _h(n)}function Th(e,t,r,n,i,s){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&Fh(a,e)){let o=Qh(a,e);return a=_h(a,a.next),o=_h(o,o.next),Sh(a,t,r,n,i,s,0),void Sh(o,t,r,n,i,s,0)}e=e.next}a=a.next}while(a!==e)}function Ih(e,t){return e.x-t.x}function Bh(e,t){const r=function(e,t){let r,n=t,i=-1/0;const s=e.x,a=e.y;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){const e=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=s&&e>i&&(i=e,r=n.x=n.x&&n.x>=l&&s!==n.x&&Lh(ar.x||n.x===r.x&&Rh(r,n)))&&(r=n,u=h)),n=n.next}while(n!==o);return r}(e,t);if(!r)return t;const n=Qh(r,e);return _h(n,n.next),_h(r,r.next)}function Rh(e,t){return Uh(e.prev,e,t.prev)<0&&Uh(t.next,e,e.next)<0}function Ph(e,t,r,n,i){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*i|0)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function Dh(e){let t=e,r=e;do{(t.x=(e-a)*(s-o)&&(e-a)*(n-o)>=(r-a)*(t-o)&&(r-a)*(s-o)>=(i-a)*(n-o)}function Fh(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function(e,t){let r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&Nh(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}(e,t)&&(zh(e,t)&&zh(t,e)&&function(e,t){let r=e,n=!1;const i=(e.x+t.x)/2,s=(e.y+t.y)/2;do{r.y>s!=r.next.y>s&&r.next.y!==r.y&&i<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}(e,t)&&(Uh(e.prev,e,t.prev)||Uh(e,t.prev,t))||Oh(e,t)&&Uh(e.prev,e,e.next)>0&&Uh(t.prev,t,t.next)>0)}function Uh(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function Oh(e,t){return e.x===t.x&&e.y===t.y}function Nh(e,t,r,n){const i=Gh(Uh(e,t,r)),s=Gh(Uh(e,t,n)),a=Gh(Uh(r,n,e)),o=Gh(Uh(r,n,t));return i!==s&&a!==o||(!(0!==i||!kh(e,r,t))||(!(0!==s||!kh(e,n,t))||(!(0!==a||!kh(r,e,n))||!(0!==o||!kh(r,t,n)))))}function kh(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function Gh(e){return e>0?1:e<0?-1:0}function zh(e,t){return Uh(e.prev,e,e.next)<0?Uh(e,t,e.next)>=0&&Uh(e,e.prev,t)>=0:Uh(e,t,e.prev)<0||Uh(e,e.next,t)<0}function Qh(e,t){const r=new jh(e.i,e.x,e.y),n=new jh(t.i,t.x,t.y),i=e.next,s=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function Vh(e,t,r,n){const i=new jh(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function Hh(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function jh(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}class Wh{static area(e){const t=e.length;let r=0;for(let n=t-1,i=0;i2&&e[t-1].equals(e[0])&&e.pop()}function Yh(e,t){for(let r=0;rNumber.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=t.x-o/u,f=t.y+a/u,m=((r.x-c/d-p)*c-(r.y+l/d-f)*l)/(a*c-o*l);n=p+a*m-e.x,i=f+o*m-e.y;const g=n*n+i*i;if(g<=2)return new Dr(n,i);s=Math.sqrt(g/2)}else{let e=!1;a>Number.EPSILON?l>Number.EPSILON&&(e=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(c)&&(e=!0),e?(n=-o,i=a,s=Math.sqrt(h)):(n=a,i=o,s=Math.sqrt(h/2))}return new Dr(n/s,i/s)}const R=[];for(let t=0,r=w.length,n=r-1,i=t+1;t=0;t--){const e=t/p,r=h*Math.cos(e*Math.PI/2),n=u*Math.sin(e*Math.PI/2)+d;for(let t=0,i=w.length;t=0;){const n=r;let i=r-1;i<0&&(i=e.length-1);for(let e=0,r=o+2*p;e0)&&d.push(t,n,a),(g!==r-1||o0!=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 iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=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.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,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}}class pu extends Mi{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Bi(16777215),this.specular=new Bi(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Dr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Y,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(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.fog=e.fog,this}}class fu extends Mi{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Bi(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Dr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(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.fog=e.fog,this}}class mu extends Mi{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Dr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=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}}class gu extends Mi{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Bi(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bi(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Dr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Y,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(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.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.fog=e.fog,this}}class Au extends Mi{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Bi(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Dr(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,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.fog=e.fog,this}}class vu extends Ac{constructor(e){super(),this.isLineDashedMaterial=!0,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}}function yu(e,t,r){return bu(e)?new e.constructor(e.subarray(t,void 0!==r?r:e.length)):e.slice(t,r)}function xu(e,t,r){return!e||!r&&e.constructor===t?e:"number"==typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)}function bu(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Eu(e){const t=e.length,r=new Array(t);for(let n=0;n!==t;++n)r[n]=n;return r.sort((function(t,r){return e[t]-e[r]})),r}function _u(e,t,r){const n=e.length,i=new e.constructor(n);for(let s=0,a=0;a!==n;++s){const n=r[s]*t;for(let r=0;r!==t;++r)i[a++]=e[n+r]}return i}function Su(e,t,r,n){let i=1,s=e[0];for(;void 0!==s&&void 0===s[n];)s=e[i++];if(void 0===s)return;let a=s[n];if(void 0!==a)if(Array.isArray(a))do{a=s[n],void 0!==a&&(t.push(s.time),r.push.apply(r,a)),s=e[i++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[n],void 0!==a&&(t.push(s.time),a.toArray(r,r.length)),s=e[i++]}while(void 0!==s);else do{a=s[n],void 0!==a&&(t.push(s.time),r.push(a)),s=e[i++]}while(void 0!==s)}const Mu={arraySlice:yu,convertArray:xu,isTypedArray:bu,getKeyframeOrder:Eu,sortedArray:_u,flattenJSON:Su,subclip:function(e,t,r,n,i=30){const s=e.clone();s.name=t;const a=[];for(let l=0;l=n)){o.push(e.times[s]);for(let r=0;rs.tracks[l].times[0]&&(o=s.tracks[l].times[0]);for(let l=0;l=t.times[u]){const e=u*l+o,r=e+l-o;d=yu(t.values,e,r)}else{const e=t.createInterpolant(),r=o,n=l-o;e.evaluate(s),d=yu(e.resultBuffer,r,n)}if("quaternion"===n){(new cn).fromArray(d).normalize().conjugate().toArray(d)}const p=i.times.length;for(let e=0;e=i)break e;{const a=t[1];e=i)break t}s=r,r=0}}for(;r>>1;et;)--s;if(++s,0!==i||s!==n){i>=s&&(s=Math.max(s,1),i=s-1);const e=this.getValueSize();this.times=yu(r,i,s),this.values=yu(this.values,i*e,s*e)}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 r=this.times,n=this.values,i=r.length;0===i&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let a=0;a!==i;a++){const t=r[a];if("number"==typeof t&&isNaN(t)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,t),e=!1;break}if(null!==s&&s>t){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,t,s),e=!1;break}s=t}if(void 0!==n&&bu(n))for(let a=0,o=n.length;a!==o;++a){const t=n[a];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,t),e=!1;break}}return e}optimize(){const e=yu(this.times),t=yu(this.values),r=this.getValueSize(),n=this.getInterpolation()===Mt,i=e.length-1;let s=1;for(let a=1;a0){e[s]=e[i];for(let e=i*r,n=s*r,a=0;a!==r;++a)t[n+a]=t[e+a];++s}return s!==e.length?(this.times=yu(e,0,s),this.values=yu(t,0,s*r)):(this.times=e,this.values=t),this}clone(){const e=yu(this.times,0),t=yu(this.values,0),r=new(0,this.constructor)(this.name,e,t);return r.createInterpolant=this.createInterpolant,r}}Bu.prototype.TimeBufferType=Float32Array,Bu.prototype.ValueBufferType=Float32Array,Bu.prototype.DefaultInterpolation=St;class Ru extends Bu{}Ru.prototype.ValueTypeName="bool",Ru.prototype.ValueBufferType=Array,Ru.prototype.DefaultInterpolation=_t,Ru.prototype.InterpolantFactoryMethodLinear=void 0,Ru.prototype.InterpolantFactoryMethodSmooth=void 0;class Pu extends Bu{}Pu.prototype.ValueTypeName="color";class Du extends Bu{}Du.prototype.ValueTypeName="number";class Lu extends wu{constructor(e,t,r,n){super(e,t,r,n)}interpolate_(e,t,r,n){const i=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(r-t)/(n-t);let l=e*a;for(let c=l+a;l!==c;l+=4)cn.slerpFlat(i,0,s,l-a,s,l,o);return i}}class Fu extends Bu{InterpolantFactoryMethodLinear(e){return new Lu(this.times,this.values,this.getValueSize(),e)}}Fu.prototype.ValueTypeName="quaternion",Fu.prototype.DefaultInterpolation=St,Fu.prototype.InterpolantFactoryMethodSmooth=void 0;class Uu extends Bu{}Uu.prototype.ValueTypeName="string",Uu.prototype.ValueBufferType=Array,Uu.prototype.DefaultInterpolation=_t,Uu.prototype.InterpolantFactoryMethodLinear=void 0,Uu.prototype.InterpolantFactoryMethodSmooth=void 0;class Ou extends Bu{}Ou.prototype.ValueTypeName="vector";class Nu{constructor(e,t=-1,r,n=It){this.name=e,this.tracks=r,this.duration=t,this.blendMode=n,this.uuid=_r(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],r=e.tracks,n=1/(e.fps||1);for(let s=0,a=r.length;s!==a;++s)t.push(ku(r[s]).scale(n));const i=new this(e.name,e.duration,t,e.blendMode);return i.uuid=e.uuid,i}static toJSON(e){const t=[],r=e.tracks,n={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let i=0,s=r.length;i!==s;++i)t.push(Bu.toJSON(r[i]));return n}static CreateFromMorphTargetSequence(e,t,r,n){const i=t.length,s=[];for(let a=0;a1){const e=r[1];let i=n[e];i||(n[e]=i=[]),i.push(t)}}const s=[];for(const a in n)s.push(this.CreateFromMorphTargetSequence(a,n[a],t,r));return s}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const r=function(e,t,r,n,i){if(0!==r.length){const s=[],a=[];Su(r,s,a,n),0!==s.length&&i.push(new e(t,s,a))}},n=[],i=e.name||"default",s=e.fps||30,a=e.blendMode;let o=e.length||-1;const l=e.hierarchy||[];for(let c=0;c{t&&t(i),this.manager.itemEnd(e)}),0),i;if(void 0!==Hu[e])return void Hu[e].push({onLoad:t,onProgress:r,onError:n});Hu[e]=[],Hu[e].push({onLoad:t,onProgress:r,onError:n});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;const r=Hu[e],n=t.body.getReader(),i=t.headers.get("Content-Length")||t.headers.get("X-File-Size"),s=i?parseInt(i):0,a=0!==s;let o=0;const l=new ReadableStream({start(e){!function t(){n.read().then((({done:n,value:i})=>{if(n)e.close();else{o+=i.byteLength;const n=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let e=0,t=r.length;e{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,a)));case"json":return e.json();default:if(void 0===a)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(a),r=t&&t[1]?t[1].toLowerCase():void 0,n=new TextDecoder(r);return e.arrayBuffer().then((e=>n.decode(e)))}}})).then((t=>{Gu.add(e,t);const r=Hu[e];delete Hu[e];for(let e=0,n=r.length;e{const r=Hu[e];if(void 0===r)throw this.manager.itemError(e),t;delete Hu[e];for(let e=0,n=r.length;e{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class Xu extends Vu{constructor(e){super(e)}load(e,t,r,n){const i=this,s=new Wu(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,(function(r){try{t(i.parse(JSON.parse(r)))}catch(s){n?n(s):console.error(s),i.manager.itemError(e)}}),r,n)}parse(e){const t=[];for(let r=0;r0:n.vertexColors=e.vertexColors),void 0!==e.uniforms)for(const i in e.uniforms){const t=e.uniforms[i];switch(n.uniforms[i]={},t.type){case"t":n.uniforms[i].value=r(t.value);break;case"c":n.uniforms[i].value=(new Bi).setHex(t.value);break;case"v2":n.uniforms[i].value=(new Dr).fromArray(t.value);break;case"v3":n.uniforms[i].value=(new hn).fromArray(t.value);break;case"v4":n.uniforms[i].value=(new tn).fromArray(t.value);break;case"m3":n.uniforms[i].value=(new Lr).fromArray(t.value);break;case"m4":n.uniforms[i].value=(new Gn).fromArray(t.value);break;default:n.uniforms[i].value=t.value}}if(void 0!==e.defines&&(n.defines=e.defines),void 0!==e.vertexShader&&(n.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(n.fragmentShader=e.fragmentShader),void 0!==e.glslVersion&&(n.glslVersion=e.glslVersion),void 0!==e.extensions)for(const i in e.extensions)n.extensions[i]=e.extensions[i];if(void 0!==e.lights&&(n.lights=e.lights),void 0!==e.clipping&&(n.clipping=e.clipping),void 0!==e.size&&(n.size=e.size),void 0!==e.sizeAttenuation&&(n.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(n.map=r(e.map)),void 0!==e.matcap&&(n.matcap=r(e.matcap)),void 0!==e.alphaMap&&(n.alphaMap=r(e.alphaMap)),void 0!==e.bumpMap&&(n.bumpMap=r(e.bumpMap)),void 0!==e.bumpScale&&(n.bumpScale=e.bumpScale),void 0!==e.normalMap&&(n.normalMap=r(e.normalMap)),void 0!==e.normalMapType&&(n.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),n.normalScale=(new Dr).fromArray(t)}return void 0!==e.displacementMap&&(n.displacementMap=r(e.displacementMap)),void 0!==e.displacementScale&&(n.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(n.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(n.roughnessMap=r(e.roughnessMap)),void 0!==e.metalnessMap&&(n.metalnessMap=r(e.metalnessMap)),void 0!==e.emissiveMap&&(n.emissiveMap=r(e.emissiveMap)),void 0!==e.emissiveIntensity&&(n.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(n.specularMap=r(e.specularMap)),void 0!==e.specularIntensityMap&&(n.specularIntensityMap=r(e.specularIntensityMap)),void 0!==e.specularColorMap&&(n.specularColorMap=r(e.specularColorMap)),void 0!==e.envMap&&(n.envMap=r(e.envMap)),void 0!==e.envMapIntensity&&(n.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(n.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(n.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(n.lightMap=r(e.lightMap)),void 0!==e.lightMapIntensity&&(n.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(n.aoMap=r(e.aoMap)),void 0!==e.aoMapIntensity&&(n.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(n.gradientMap=r(e.gradientMap)),void 0!==e.clearcoatMap&&(n.clearcoatMap=r(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(n.clearcoatRoughnessMap=r(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(n.clearcoatNormalMap=r(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(n.clearcoatNormalScale=(new Dr).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(n.iridescenceMap=r(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(n.iridescenceThicknessMap=r(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(n.transmissionMap=r(e.transmissionMap)),void 0!==e.thicknessMap&&(n.thicknessMap=r(e.thicknessMap)),void 0!==e.sheenColorMap&&(n.sheenColorMap=r(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(n.sheenRoughnessMap=r(e.sheenRoughnessMap)),n}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:cu,SpriteMaterial:Rl,RawShaderMaterial:hu,ShaderMaterial:Is,PointsMaterial:Tc,MeshPhysicalMaterial:du,MeshStandardMaterial:uu,MeshPhongMaterial:pu,MeshToonMaterial:fu,MeshNormalMaterial:mu,MeshLambertMaterial:gu,MeshDepthMaterial:ll,MeshDistanceMaterial:cl,MeshBasicMaterial:Pi,MeshMatcapMaterial:Au,LineDashedMaterial:vu,LineBasicMaterial:Ac,Material:Mi}[e]}}class yd{static decodeText(e){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let n=0,i=e.length;n0){const r=new zu(t);i=new qu(r),i.setCrossOrigin(this.crossOrigin);for(let t=0,i=e.length;t0){n=new qu(this.manager),n.setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t0){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(r,n,this._addIndex*t,1,t);for(let o=t,l=t+t;o!==l;++o)if(r[o]!==r[o+t]){a.setValue(r,n);break}}saveOriginalState(){const e=this.binding,t=this.buffer,r=this.valueSize,n=r*this._origIndex;e.getValue(t,n);for(let i=r,s=n;i!==s;++i)t[i]=t[n+i%r];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let r=e;r=.5)for(let s=0;s!==i;++s)e[t+s]=e[r+s]}_slerp(e,t,r,n){cn.slerpFlat(e,t,e,t,e,r,n)}_slerpAdditive(e,t,r,n,i){const s=this._workIndex*i;cn.multiplyQuaternionsFlat(e,s,e,t,e,r),cn.slerpFlat(e,t,e,t,e,s,n)}_lerp(e,t,r,n,i){const s=1-n;for(let a=0;a!==i;++a){const i=t+a;e[i]=e[i]*s+e[r+a]*n}}_lerpAdditive(e,t,r,n,i){for(let s=0;s!==i;++s){const i=t+s;e[i]=e[i]+e[r+s]*n}}}const Jd="\\[\\]\\.:\\/",Zd=new RegExp("["+Jd+"]","g"),$d="[^"+Jd+"]",ep="[^"+Jd.replace("\\.","")+"]",tp=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",$d)+/(WCOD+)?/.source.replace("WCOD",ep)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",$d)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",$d)+"$"),rp=["material","materials","bones","map"];class np{constructor(e,t,r){this.path=t,this.parsedPath=r||np.parseTrackName(t),this.node=np.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,r){return e&&e.isAnimationObjectGroup?new np.Composite(e,t,r):new np(e,t,r)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(Zd,"")}static parseTrackName(e){const t=tp.exec(e);if(null===t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const r={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},n=r.nodeName&&r.nodeName.lastIndexOf(".");if(void 0!==n&&-1!==n){const e=r.nodeName.substring(n+1);-1!==rp.indexOf(e)&&(r.nodeName=r.nodeName.substring(0,n),r.objectName=e)}if(null===r.propertyName||0===r.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return r}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){const r=e.skeleton.getBoneByName(t);if(void 0!==r)return r}if(e.children){const r=function(e){for(let n=0;n=i){const s=i++,c=e[s];t[c.uuid]=l,e[l]=c,t[o]=s,e[s]=a;for(let e=0,t=n;e!==t;++e){const t=r[e],n=t[s],i=t[l];t[l]=n,t[s]=i}}}this.nCachedObjects_=i}uncache(){const e=this._objects,t=this._indicesByUUID,r=this._bindings,n=r.length;let i=this.nCachedObjects_,s=e.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=t[o];if(void 0!==l)if(delete t[o],l0&&(t[a.uuid]=l),e[l]=a,e.pop();for(let e=0,t=n;e!==t;++e){const t=r[e];t[l]=t[i],t.pop()}}}this.nCachedObjects_=i}subscribe_(e,t){const r=this._bindingsIndicesByPath;let n=r[e];const i=this._bindings;if(void 0!==n)return i[n];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);n=i.length,r[e]=n,s.push(e),a.push(t),i.push(h);for(let u=c,d=o.length;u!==d;++u){const r=o[u];h[u]=new np(r,e,t)}return h}unsubscribe_(e){const t=this._bindingsIndicesByPath,r=t[e];if(void 0!==r){const n=this._paths,i=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];t[e[a]]=r,s[r]=o,s.pop(),i[r]=i[a],i.pop(),n[r]=n[a],n.pop()}}}class sp{constructor(e,t,r=null,n=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=r,this.blendMode=n;const i=t.tracks,s=i.length,a=new Array(s),o={endingStart:wt,endingEnd:wt};for(let l=0;l!==s;++l){const e=i[l].createInterpolant(null);a[l]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=bt,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,r){if(e.fadeOut(t),this.fadeIn(t),r){const r=this._clip.duration,n=e._clip.duration,i=n/r,s=r/n;e.warp(1,i,t),this.warp(s,1,t)}return this}crossFadeTo(e,t,r){return e.crossFadeFrom(this,t,r)}stopFading(){const e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,r){const n=this._mixer,i=n.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=n._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=i,o[1]=i+r,l[0]=e/s,l[1]=t/s,this}stopWarping(){const e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,r,n){if(!this.enabled)return void this._updateWeight(e);const i=this._startTime;if(null!==i){const n=(e-i)*r;n<0||0===r?t=0:(this._startTime=null,t=r*n)}t*=this._updateTimeScale(e);const s=this._updateTime(t),a=this._updateWeight(e);if(a>0){const e=this._interpolants,t=this._propertyBindings;if(this.blendMode===Bt)for(let r=0,n=e.length;r!==n;++r)e[r].evaluate(s),t[r].accumulateAdditive(a);else for(let r=0,i=e.length;r!==i;++r)e[r].evaluate(s),t[r].accumulate(n,a)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const r=this._weightInterpolant;if(null!==r){const n=r.evaluate(e)[0];t*=n,e>r.parameterPositions[1]&&(this.stopFading(),0===n&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const r=this._timeScaleInterpolant;if(null!==r){t*=r.evaluate(e)[0],e>r.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,r=this.loop;let n=this.time+e,i=this._loopCount;const s=r===Et;if(0===e)return-1===i?n:s&&1==(1&i)?t-n:n;if(r===xt){-1===i&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(n>=t)n=t;else{if(!(n<0)){this.time=n;break e}n=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=n,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===i&&(e>=0?(i=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),n>=t||n<0){const r=Math.floor(n/t);n-=t*r,i+=Math.abs(r);const a=this.repetitions-i;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,n=e>0?t:0,this.time=n,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===a){const t=e<0;this._setEndings(t,!t,s)}else this._setEndings(!1,!1,s);this._loopCount=i,this.time=n,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:r})}}else this.time=n;if(s&&1==(1&i))return t-n}return n}_setEndings(e,t,r){const n=this._interpolantSettings;r?(n.endingStart=Ct,n.endingEnd=Ct):(n.endingStart=e?this.zeroSlopeAtStart?Ct:wt:Tt,n.endingEnd=t?this.zeroSlopeAtEnd?Ct:wt:Tt)}_scheduleFading(e,t,r){const n=this._mixer,i=n.time;let s=this._weightInterpolant;null===s&&(s=n._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=i,o[0]=t,a[1]=i+e,o[1]=r,this}}const ap=new Float32Array(1);class op extends vr{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const r=e._localRoot||this._root,n=e._clip.tracks,i=n.length,s=e._propertyBindings,a=e._interpolants,o=r.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let h=0;h!==i;++h){const e=n[h],i=e.name;let l=c[i];if(void 0!==l)++l.referenceCount,s[h]=l;else{if(l=s[h],void 0!==l){null===l._cacheIndex&&(++l.referenceCount,this._addInactiveBinding(l,o,i));continue}const n=t&&t._propertyBindings[h].binding.parsedPath;l=new Kd(np.create(r,i,n),e.ValueTypeName,e.getValueSize()),++l.referenceCount,this._addInactiveBinding(l,o,i),s[h]=l}a[h].resultBuffer=l.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){const t=(e._localRoot||this._root).uuid,r=e._clip.uuid,n=this._actionsByClip[r];this._bindAction(e,n&&n.knownActions[0]),this._addInactiveAction(e,r,t)}const t=e._propertyBindings;for(let e=0,r=t.length;e!==r;++e){const r=t[e];0==r.useCount++&&(this._lendBinding(r),r.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let e=0,r=t.length;e!==r;++e){const r=t[e];0==--r.useCount&&(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 null!==t&&t=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;const t=this._actions,r=this._nActiveActions,n=this.time+=e,i=Math.sign(e),s=this._accuIndex^=1;for(let l=0;l!==r;++l){t[l]._update(n,e,i,s)}const a=this._bindings,o=this._nActiveBindings;for(let l=0;l!==o;++l)a[l].apply(s);return this}setTime(e){this.time=0;for(let t=0;tthis.max.x||e.ythis.max.y)}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}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))}intersectsBox(e){return!(e.max.xthis.max.x||e.max.ythis.max.y)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,vp).distanceTo(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}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)}}const xp=new hn,bp=new hn;class Ep{constructor(e=new hn,t=new hn){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){xp.subVectors(e,this.start),bp.subVectors(this.end,this.start);const r=bp.dot(bp);let n=bp.dot(xp)/r;return t&&(n=Sr(n,0,1)),n}closestPointToPoint(e,t,r){const n=this.closestPointToPointParameter(e,t);return this.delta(r).multiplyScalar(n).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}const _p=new hn;class Sp extends ui{constructor(e,t){super(),this.light=e,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t,this.type="SpotLightHelper";const r=new is,n=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,a=1,o=32;s1)for(let c=0;c.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{qp.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(qp,t)}}setLength(e,t=.2*e,r=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(r,t,r),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}}class $p extends wc{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],r=new is;r.setAttribute("position",new qi(t,3)),r.setAttribute("color",new qi([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(r,new Ac({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,r){const n=new Bi,i=this.geometry.attributes.color.array;return n.set(e),n.toArray(i,0),n.toArray(i,3),n.set(t),n.toArray(i,6),n.toArray(i,9),n.set(r),n.toArray(i,12),n.toArray(i,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ef{constructor(){this.type="ShapePath",this.color=new Bi,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new oh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,r,n){return this.currentPath.quadraticCurveTo(e,t,r,n),this}bezierCurveTo(e,t,r,n,i,s){return this.currentPath.bezierCurveTo(e,t,r,n,i,s),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e){function t(e,t){const r=t.length;let n=!1;for(let i=r-1,s=0;sNumber.EPSILON){if(l<0&&(r=t[s],o=-o,a=t[i],l=-l),e.ya.y)continue;if(e.y===r.y){if(e.x===r.x)return!0}else{const t=l*(e.x-r.x)-o*(e.y-r.y);if(0===t)return!0;if(t<0)continue;n=!n}}else{if(e.y!==r.y)continue;if(a.x<=e.x&&e.x<=r.x||r.x<=e.x&&e.x<=a.x)return!0}}return n}const r=Wh.isClockWise,n=this.subPaths;if(0===n.length)return[];let i,s,a;const o=[];if(1===n.length)return s=n[0],a=new xh,a.curves=s.curves,o.push(a),o;let l=!r(n[0].getPoints());l=e?!l:l;const c=[],h=[];let u,d,p=[],f=0;h[f]=void 0,p[f]=[];for(let m=0,g=n.length;m1){let e=!1,r=0;for(let t=0,n=h.length;t0&&!1===e&&(p=c)}for(let m=0,g=h.length;m{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"link","label":"Join the community","href":"/community","className":"hidden","docId":"community"},{"type":"link","label":"Join Us","href":"/join-us","docId":"join-us"},{"type":"link","label":"Privacy Policy","href":"/privacy-policy","className":"hidden","docId":"privacy-policy"},{"type":"link","label":"Terms of Use","href":"/terms","className":"hidden","docId":"terms"}]},"docs":{"community":{"id":"community","title":"Join the community","description":"Welcome to the Waku Community!"},"join-us":{"id":"join-us","title":"Join Us","description":""},"privacy-policy":{"id":"privacy-policy","title":"Privacy Policy","description":"This Privacy Policy is intended to inform users of our approach to privacy in respect of this website (\\"Website\\"). In this regard, if you are visiting our Website, this Privacy Policy applies to you."},"terms":{"id":"terms","title":"Terms of Use","description":"These website terms of use (\'Website Terms of Use\') are entered into by you and us, and they govern your access and use of this Website, including any content and functionality contained in the Website."}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.fa75d838.js b/assets/js/935f2afb.fa75d838.js new file mode 100644 index 00000000..e5cb1c08 --- /dev/null +++ b/assets/js/935f2afb.fa75d838.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"defaultSidebar":[{"type":"link","label":"Join the community","href":"/community","className":"hidden","docId":"community"},{"type":"category","label":"Events","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Meet Waku","href":"/events/eth-denver","docId":"events/eth-denver"}],"href":"/events/"},{"type":"link","label":"Join Us","href":"/join-us","docId":"join-us"},{"type":"link","label":"Privacy Policy","href":"/privacy-policy","className":"hidden","docId":"privacy-policy"},{"type":"link","label":"Terms of Use","href":"/terms","className":"hidden","docId":"terms"}]},"docs":{"community":{"id":"community","title":"Join the community","description":"Welcome to the Waku Community!"},"events/eth-denver":{"id":"events/eth-denver","title":"Meet Waku","description":"Uncompromising Web3 Communication at Scale","sidebar":"defaultSidebar"},"events/index":{"id":"events/index","title":"Events","description":"List of all Waku events","sidebar":"defaultSidebar"},"join-us":{"id":"join-us","title":"Join Us","description":""},"privacy-policy":{"id":"privacy-policy","title":"Privacy Policy","description":"This Privacy Policy is intended to inform users of our approach to privacy in respect of this website (\\"Website\\"). In this regard, if you are visiting our Website, this Privacy Policy applies to you."},"terms":{"id":"terms","title":"Terms of Use","description":"These website terms of use (\'Website Terms of Use\') are entered into by you and us, and they govern your access and use of this Website, including any content and functionality contained in the Website."}}}')}}]); \ No newline at end of file diff --git a/assets/js/bc55d770.a3c1d235.js b/assets/js/bc55d770.a3c1d235.js new file mode 100644 index 00000000..9605411b --- /dev/null +++ b/assets/js/bc55d770.a3c1d235.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[78],{53958:(e,t,n)=>{var o=n(83639);n.o(o,"Box")&&n.d(t,{Box:function(){return o.Box}}),n.o(o,"CallToActionButton")&&n.d(t,{CallToActionButton:function(){return o.CallToActionButton}}),n.o(o,"CallToActionSection")&&n.d(t,{CallToActionSection:function(){return o.CallToActionSection}}),n.o(o,"EventAbout")&&n.d(t,{EventAbout:function(){return o.EventAbout}}),n.o(o,"EventBanner")&&n.d(t,{EventBanner:function(){return o.EventBanner}}),n.o(o,"EventCTASection")&&n.d(t,{EventCTASection:function(){return o.EventCTASection}}),n.o(o,"EventCardList")&&n.d(t,{EventCardList:function(){return o.EventCardList}}),n.o(o,"EventHeader")&&n.d(t,{EventHeader:function(){return o.EventHeader}}),n.o(o,"EventInfo")&&n.d(t,{EventInfo:function(){return o.EventInfo}}),n.o(o,"EventProfileList")&&n.d(t,{EventProfileList:function(){return o.EventProfileList}}),n.o(o,"FeatureList")&&n.d(t,{FeatureList:function(){return o.FeatureList}}),n.o(o,"Grid")&&n.d(t,{Grid:function(){return o.Grid}}),n.o(o,"Hero")&&n.d(t,{Hero:function(){return o.Hero}}),n.o(o,"HeroAction")&&n.d(t,{HeroAction:function(){return o.HeroAction}}),n.o(o,"HeroActions")&&n.d(t,{HeroActions:function(){return o.HeroActions}}),n.o(o,"HeroDescription")&&n.d(t,{HeroDescription:function(){return o.HeroDescription}}),n.o(o,"HeroInfo")&&n.d(t,{HeroInfo:function(){return o.HeroInfo}}),n.o(o,"HeroTitle")&&n.d(t,{HeroTitle:function(){return o.HeroTitle}}),n.o(o,"HeroVideo")&&n.d(t,{HeroVideo:function(){return o.HeroVideo}}),n.o(o,"JobsPerDepartment")&&n.d(t,{JobsPerDepartment:function(){return o.JobsPerDepartment}}),n.o(o,"NewsletterSubscription")&&n.d(t,{NewsletterSubscription:function(){return o.NewsletterSubscription}}),n.o(o,"Roadmap")&&n.d(t,{Roadmap:function(){return o.Roadmap}}),n.o(o,"ShowcaseCard")&&n.d(t,{ShowcaseCard:function(){return o.ShowcaseCard}}),n.o(o,"SocialCard")&&n.d(t,{SocialCard:function(){return o.SocialCard}})},32592:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>m,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var o=n(87462),r=(n(67294),n(3905)),i=n(53958);const a={title:"Events",description:"List of all Waku events",hide_table_of_contents:!0,hude_title:!0},s="Events",u={unversionedId:"events/index",id:"events/index",title:"Events",description:"List of all Waku events",source:"@site/root-pages/events/index.mdx",sourceDirName:"events",slug:"/events/",permalink:"/events/",draft:!1,tags:[],version:"current",frontMatter:{title:"Events",description:"List of all Waku events",hide_table_of_contents:!0,hude_title:!0},sidebar:"defaultSidebar",previous:{title:"Join the community",permalink:"/community"},next:{title:"Meet Waku",permalink:"/events/eth-denver"}},d={},c=[],l={toc:c},v="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(v,(0,o.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"events"},"Events"),(0,r.kt)("p",null,"List of all Waku events"),(0,r.kt)("head",null,(0,r.kt)("body",{className:"events"})),(0,r.kt)(i.EventCardList,{data:[{thumbnail:"/events/eth-denver.png",title:"Meet Waku: Uncompromising Web3 Communication at Scale",date:"Feb 23 - Mar 3\n2024",location:"Denver, Colorado\nUSA",href:"/events/eth-denver"}],mdxType:"EventCardList"}),(0,r.kt)(i.Box,{top:{xs:152},mdxType:"Box"},(0,r.kt)(i.Grid,{xs:{cols:1,gap:"1rem"},md:{cols:2},className:"events-cta-sections",mdxType:"Grid"},(0,r.kt)(i.Grid.Item,{xs:1},(0,r.kt)(i.EventCTASection,{title:"Logos Network State",description:"Want to get involved with Waku?\nJoin the Discord community.",link:"https://discord.waku.org/",label:"Get Involved",mdxType:"EventCTASection"})),(0,r.kt)(i.Grid.Item,{xs:1},(0,r.kt)(i.EventCTASection,{title:"Newsletter",description:"Subscribe\nto our newsletter",label:"Subscribe",formInput:[{label:"Name",placeholder:"Name",type:"text",name:"name",required:!0},{label:"Email",placeholder:"Enter your email",type:"email",name:"email",required:!0}],mdxType:"EventCTASection"})))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bfcde7ef.39e8d4e4.js b/assets/js/bfcde7ef.39e8d4e4.js new file mode 100644 index 00000000..3a3a585d --- /dev/null +++ b/assets/js/bfcde7ef.39e8d4e4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[191],{53958:(e,t,n)=>{var o=n(83639);n.o(o,"Box")&&n.d(t,{Box:function(){return o.Box}}),n.o(o,"CallToActionButton")&&n.d(t,{CallToActionButton:function(){return o.CallToActionButton}}),n.o(o,"CallToActionSection")&&n.d(t,{CallToActionSection:function(){return o.CallToActionSection}}),n.o(o,"EventAbout")&&n.d(t,{EventAbout:function(){return o.EventAbout}}),n.o(o,"EventBanner")&&n.d(t,{EventBanner:function(){return o.EventBanner}}),n.o(o,"EventCTASection")&&n.d(t,{EventCTASection:function(){return o.EventCTASection}}),n.o(o,"EventCardList")&&n.d(t,{EventCardList:function(){return o.EventCardList}}),n.o(o,"EventHeader")&&n.d(t,{EventHeader:function(){return o.EventHeader}}),n.o(o,"EventInfo")&&n.d(t,{EventInfo:function(){return o.EventInfo}}),n.o(o,"EventProfileList")&&n.d(t,{EventProfileList:function(){return o.EventProfileList}}),n.o(o,"FeatureList")&&n.d(t,{FeatureList:function(){return o.FeatureList}}),n.o(o,"Grid")&&n.d(t,{Grid:function(){return o.Grid}}),n.o(o,"Hero")&&n.d(t,{Hero:function(){return o.Hero}}),n.o(o,"HeroAction")&&n.d(t,{HeroAction:function(){return o.HeroAction}}),n.o(o,"HeroActions")&&n.d(t,{HeroActions:function(){return o.HeroActions}}),n.o(o,"HeroDescription")&&n.d(t,{HeroDescription:function(){return o.HeroDescription}}),n.o(o,"HeroInfo")&&n.d(t,{HeroInfo:function(){return o.HeroInfo}}),n.o(o,"HeroTitle")&&n.d(t,{HeroTitle:function(){return o.HeroTitle}}),n.o(o,"HeroVideo")&&n.d(t,{HeroVideo:function(){return o.HeroVideo}}),n.o(o,"JobsPerDepartment")&&n.d(t,{JobsPerDepartment:function(){return o.JobsPerDepartment}}),n.o(o,"NewsletterSubscription")&&n.d(t,{NewsletterSubscription:function(){return o.NewsletterSubscription}}),n.o(o,"Roadmap")&&n.d(t,{Roadmap:function(){return o.Roadmap}}),n.o(o,"ShowcaseCard")&&n.d(t,{ShowcaseCard:function(){return o.ShowcaseCard}}),n.o(o,"SocialCard")&&n.d(t,{SocialCard:function(){return o.SocialCard}})},60821:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var o=n(87462),i=(n(67294),n(3905)),r=n(53958);const a={title:"Meet Waku",description:"Uncompromising Web3 Communication at Scale",hide_table_of_contents:!0,hide_title:!0},s=void 0,c={unversionedId:"events/eth-denver",id:"events/eth-denver",title:"Meet Waku",description:"Uncompromising Web3 Communication at Scale",source:"@site/root-pages/events/eth-denver.mdx",sourceDirName:"events",slug:"/events/eth-denver",permalink:"/events/eth-denver",draft:!1,tags:[],version:"current",frontMatter:{title:"Meet Waku",description:"Uncompromising Web3 Communication at Scale",hide_table_of_contents:!0,hide_title:!0},sidebar:"defaultSidebar",previous:{title:"Events",permalink:"/events/"},next:{title:"Join Us",permalink:"/join-us"}},d={},l=[],u={toc:l},m="wrapper";function p(e){let{components:t,...n}=e;return(0,i.kt)(m,(0,o.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("head",null,(0,i.kt)("body",{className:"events"})),(0,i.kt)(r.Box,{top:{xs:8},mdxType:"Box"},(0,i.kt)(r.EventBanner,{src:"/events/eth-denver.png",mdxType:"EventBanner"}),(0,i.kt)(r.EventHeader,{title:"Meet Waku: Uncompromising Web3 Communication at Scale",description:"We are a family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps.",mdxType:"EventHeader"}),(0,i.kt)(r.Box,{top:{xs:32},mdxType:"Box"},(0,i.kt)(r.Grid,{xs:{cols:2,gap:"1rem"},md:{cols:2},mdxType:"Grid"},(0,i.kt)(r.Grid.Item,{xs:1},(0,i.kt)(r.EventInfo,{label:"Date",content:"Feb 23 \u2013 Mar 3\n2024",mdxType:"EventInfo"})),(0,i.kt)(r.Grid.Item,{xs:1},(0,i.kt)(r.EventInfo,{label:"Location",content:"Denver, Colorado\nUSA",mdxType:"EventInfo"}))))),(0,i.kt)(r.Box,{top:{xs:120},mdxType:"Box"},(0,i.kt)(r.EventAbout,{mdxType:"EventAbout"},"Waku is a suite of generalised messaging protocols aiming to be the communication standard for the decentralised web. It enables private and secure human-to-human, machine-to-machine, and human-to-machine communication without reliance on centralised intermediaries. Messaging through Waku is possible from one-to-one to many-to-many.",(0,i.kt)("br",null),(0,i.kt)("p",null,"Waku serves as the communications layer of the Logos tech stack. Alongside the trustless agreement layer, Nomos, and the storage layer, Codex, it is one of the Logos Collective's foundational projects."),(0,i.kt)("br",null),(0,i.kt)("p",null,"Motive:\nToday's internet is increasingly controlled by a small number of tech giants. Google, Amazon, Meta, and a few others dictate what we see and with whom we can communicate. Their influence is almost limitless, and their actions shape global public opinion and even geopolitics."),(0,i.kt)("br",null),(0,i.kt)("p",null,"To anyone that understands the internet's present architecture, this outcome should be expected. The centralised entities through which we communicate have privileged access to reams of data that we, as internet users, produce daily, presenting an opportunity for the kind of surveillance that was once confined to the pages of science-fiction literature. Thinking that the most powerful commercial and political institutions would not leverage this would be naive."),(0,i.kt)("br",null),(0,i.kt)("p",null,"Yet, it doesn't have to be this way. Advances in cryptography, peer-to-peer networking, and decentralised technologies provide an alternate path forward."))),(0,i.kt)(r.Box,{top:{xs:120},mdxType:"Box"},(0,i.kt)(r.EventProfileList,{title:"Our Delegation",description:"Reach out for the appointment.",data:[{image:"/events/guru.png",name:"Kumaraguru T",role:"Developer relations engineer",email:"guru@status.im",linkedin:"https://linkedin.com/in/kumaraguru7"},{image:"/events/aaron.png",name:"Aaron Bendersky",role:"Program Manager",email:"aaron@status.im",linkedin:"https://www.linkedin.com/in/aaronbendersky/"},{image:"/events/pedro.png",name:"Pedro Lains",role:"Business Development Lead",email:"pedrolains@status.im",linkedin:"https://www.linkedin.com/in/pedro-la%C3%ADns-14526183/"}],mdxType:"EventProfileList"})),(0,i.kt)(r.Box,{top:{xs:120},mdxType:"Box"},(0,i.kt)(r.Grid,{xs:{cols:1,gap:"1rem"},md:{cols:2},className:"events-cta-sections",mdxType:"Grid"},(0,i.kt)(r.Grid.Item,{xs:1},(0,i.kt)(r.EventCTASection,{title:"Logos Network State",description:"Want to get involved with Waku?\nJoin the Discord community.",link:"https://discord.waku.org/",label:"Get Involved",mdxType:"EventCTASection"})),(0,i.kt)(r.Grid.Item,{xs:1},(0,i.kt)(r.EventCTASection,{title:"Newsletter",description:"Subscribe\nto our newsletter",label:"Subscribe",formInput:[{label:"Name",placeholder:"Name",type:"text",name:"name",required:!0},{label:"Email",placeholder:"Enter your email",type:"email",name:"email",required:!0}],mdxType:"EventCTASection"})))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e7ce6630.9e069d6f.js b/assets/js/e7ce6630.d6ddfb48.js similarity index 50% rename from assets/js/e7ce6630.9e069d6f.js rename to assets/js/e7ce6630.d6ddfb48.js index 0f67f72b..539478b5 100644 --- a/assets/js/e7ce6630.9e069d6f.js +++ b/assets/js/e7ce6630.d6ddfb48.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[668],{5765:(e,o,t)=>{t.r(o),t.d(o,{contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>l,toc:()=>u});var i=t(87462),r=t(67294),n=t(3905),a=t(53958);const s={title:"Waku is Uncompromising Web3 Communication at Scale",description:"A family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps."},c=void 0,l={type:"mdx",permalink:"/",source:"@site/src/pages/index.mdx",title:"Waku is Uncompromising Web3 Communication at Scale",description:"A family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps.",frontMatter:{title:"Waku is Uncompromising Web3 Communication at Scale",description:"A family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps."}},u=[],p={toc:u},d="wrapper";function m(e){let{components:o,...t}=e;return(0,n.kt)(d,(0,i.Z)({},p,t,{components:o,mdxType:"MDXLayout"}),(0,n.kt)(a.Hero,{size:"large",mdxType:"Hero"},(0,n.kt)(a.HeroInfo,{mdxType:"HeroInfo"},(0,n.kt)(a.HeroTitle,{mdxType:"HeroTitle"},"Waku is Uncompromising Web3 Communication at Scale"),(0,n.kt)(a.HeroDescription,{mdxType:"HeroDescription"},"A family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps."),(0,n.kt)(a.HeroActions,{mdxType:"HeroActions"},(0,n.kt)(a.HeroAction,{href:"https://docs.waku.org/",target:"_blank",mdxType:"HeroAction"},"Learn more"))),(0,n.kt)(a.HeroVideo,{placeholderSrc:"/hero/prome01-1080x1080-placeholder.png",desktop:{scale:"1.43",height:"160%",offsetY:"-220px"},mobile:{scale:"1.43",offsetY:"-70px",height:"200%"},mdxType:"HeroVideo"},(0,n.kt)("source",{src:"/hero/prome01-2048x2048-24fps-1M.mov",type:'video/mp4; codecs="hvc1"'}),(0,n.kt)("source",{src:"/hero/prome01-2048x2048-24fps-1M.webm",type:"video/webm"}))),(0,n.kt)(a.FeatureList,{id:"Waku attributes",alignment:"top",features:[{title:"Private",description:"Waku uses cutting-edge zero-knowledge technology to protect applications from Denial of Service attacks. Tailor your application's privacy settings to suit your needs."},{title:"Censorship resistant",description:"Decentralised human-to-human, machine-to-human, and machine-to-machine communication, with no single point of failure. Waku's native incentivization mechanism stimulates an expanding node distribution, promoting an increasingly secure network."},{title:"Modular",description:"Waku protocols are adaptive and platform agnostic, and can be customised based on an application's unique demands. Waku is built to flourish even in resource-restricted environments like browsers and mobile devices."},{title:"Scalable",description:"Waku employs message sharding for efficient throughput, while its discovery protocol ensures a user connects to nodes serving messages they are interested in."}],mdxType:"FeatureList"}),(0,n.kt)(a.Box,{top:{xs:144,lg:216},mdxType:"Box"},(0,n.kt)(a.CallToActionSection,{title:"Logos Collective",columns:1,description:(0,n.kt)(r.Fragment,null,"Waku is powering the communication layer of the Logos technology stack. Logos is a grassroots movement, building the infrastructure for trust-minimised, corruption-resistant governing services and social institutions for peaceful people worldwide.",(0,n.kt)("br",null),(0,n.kt)("br",null),"Learn more about our ambitious vision."),label:"Explore Logos",href:"https://logos.co/",target:"_blank",mdxType:"CallToActionSection"})),(0,n.kt)(a.Box,{top:{xs:144,lg:216},mdxType:"Box"},(0,n.kt)(a.CallToActionSection,{title:"User Endorsements",mdxType:"CallToActionSection"})),(0,n.kt)(a.Box,{top:{xs:64,lg:100},mdxType:"Box"},(0,n.kt)(a.Grid,{id:"showcase",xs:{cols:2,wrap:!0,gap:"1.5rem 1em"},lg:{cols:3,gap:"1rem"},mdxType:"Grid"},(0,n.kt)(a.Grid.Item,{xs:1},(0,n.kt)(a.ShowcaseCard,{name:"Status",logoSrc:"/showcase/status-mark-black.svg",logoSrcDark:"/showcase/status-mark-white.svg",description:'"Waku v2 has been instrumental in helping us scale the Status application securely while maintaining the decentralised nature of our network. The Waku team has been invaluable in providing practical solutions during the development of the Waku v2 protocol, enabling us to deliver essential Status Communities features.\u201d',mdxType:"ShowcaseCard"})),(0,n.kt)(a.Grid.Item,{xs:1},(0,n.kt)(a.ShowcaseCard,{name:"Railgun",logoSrc:"/showcase/railgun-mark-black.svg",logoSrcDark:"/showcase/railgun-mark-white.svg",description:(0,n.kt)(r.Fragment,null,'"RAILGUN contributors selected Waku to run its relayer network as an early-stage but promising product of the privacy-centric ',(0,n.kt)("a",{href:"https://status.im",target:"_blank"},"status.im"),' ecosystem. We have not been disappointed. The developers are extremely professional and responsive, and continue to strive to understand and meet our needs as a communication layer for relaying private transactions."'),mdxType:"ShowcaseCard"})),(0,n.kt)(a.Grid.Item,{xs:1},(0,n.kt)(a.ShowcaseCard,{name:"The Graph",logoSrc:"/showcase/the-graph-mark-black.svg",logoSrcDark:"/showcase/the-graph-mark-white.svg",description:'"Our experience with Waku has been transformative, proving to be a valuable tool that reveals the potential of peer-to-peer communication technologies. We are excited to continue using Waku\'s advanced features and contribute to the growth of Graphcast and the broader Graph ecosystem."',mdxType:"ShowcaseCard"}),(0,n.kt)(r.Fragment,null,"Want to learn more about Waku? ",(0,n.kt)("br",null),"Join the Discord community."))),(0,n.kt)(a.Box,{top:32,mdxType:"Box"},(0,n.kt)(a.CallToActionButton,{href:"https://docs.waku.org/",variant:"outlined",mdxType:"CallToActionButton"},"Build on Waku"))),(0,n.kt)(a.Box,{top:{xs:144,lg:216},mdxType:"Box"},(0,n.kt)(a.Roadmap,{title:"Roadmap",description:"Waku aims to support tens of millions of simultaneous users, truly serving as the communications standard across web3",timeline:[{period:[2013],description:"Ethereum's Whisper unveiled as web3 messaging protocol"},{period:[2018],description:"Status establishes Vac to R&D Whisper improvements"},{period:[2020],description:"Waku v1 replaces Whisper in Status app"},{period:[2021,"Q1"],description:"Waku v2 specs and PoC released with RLN Relay"},{period:[2021,"Q2"],description:"JS-Waku (for browsers) and Go-Waku released"},{period:[2022,"Q3"],description:"DNS Discovery added, plus availability in more languages"},{period:[2022,"Q4"],description:"SQLite for Waku Store, RLN Relay testnet debuts at DevCon"},{period:[2023,"Q2"],description:"Relay sharding, opt-in spam-protected topic"},{period:[2023,"Q4"],description:"Auto-sharding, DoS protection, bandwidth capping"},{period:[2024,"+"],description:"Operator Incentivization, use-case specific SDKs"}],mdxType:"Roadmap"},(0,n.kt)(a.CallToActionButton,{style:{marginTop:0},size:"large",variant:"outlined",href:"/about",mdxType:"CallToActionButton"},"Read more"))),(0,n.kt)(a.Box,{top:{xs:144,lg:336},mdxType:"Box"},(0,n.kt)(a.NewsletterSubscription,{mdxType:"NewsletterSubscription"})),(0,n.kt)(a.Box,{top:{xs:144,lg:96},mdxType:"Box"},(0,n.kt)(a.CallToActionSection,{title:(0,n.kt)(r.Fragment,null,"Want to learn more about Waku? ",(0,n.kt)("br",null),"Join the Discord community."),label:"Join us on Discord",target:"_blank",href:"https://discord.waku.org/",mdxType:"CallToActionSection"})))}m.isMDXComponent=!0},53958:(e,o,t)=>{var i=t(83639);t.o(i,"Box")&&t.d(o,{Box:function(){return i.Box}}),t.o(i,"CallToActionButton")&&t.d(o,{CallToActionButton:function(){return i.CallToActionButton}}),t.o(i,"CallToActionSection")&&t.d(o,{CallToActionSection:function(){return i.CallToActionSection}}),t.o(i,"FeatureList")&&t.d(o,{FeatureList:function(){return i.FeatureList}}),t.o(i,"Grid")&&t.d(o,{Grid:function(){return i.Grid}}),t.o(i,"Hero")&&t.d(o,{Hero:function(){return i.Hero}}),t.o(i,"HeroAction")&&t.d(o,{HeroAction:function(){return i.HeroAction}}),t.o(i,"HeroActions")&&t.d(o,{HeroActions:function(){return i.HeroActions}}),t.o(i,"HeroDescription")&&t.d(o,{HeroDescription:function(){return i.HeroDescription}}),t.o(i,"HeroInfo")&&t.d(o,{HeroInfo:function(){return i.HeroInfo}}),t.o(i,"HeroTitle")&&t.d(o,{HeroTitle:function(){return i.HeroTitle}}),t.o(i,"HeroVideo")&&t.d(o,{HeroVideo:function(){return i.HeroVideo}}),t.o(i,"JobsPerDepartment")&&t.d(o,{JobsPerDepartment:function(){return i.JobsPerDepartment}}),t.o(i,"NewsletterSubscription")&&t.d(o,{NewsletterSubscription:function(){return i.NewsletterSubscription}}),t.o(i,"Roadmap")&&t.d(o,{Roadmap:function(){return i.Roadmap}}),t.o(i,"ShowcaseCard")&&t.d(o,{ShowcaseCard:function(){return i.ShowcaseCard}}),t.o(i,"SocialCard")&&t.d(o,{SocialCard:function(){return i.SocialCard}})}}]); \ No newline at end of file +"use strict";(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[668],{5765:(e,t,o)=>{o.r(t),o.d(t,{contentTitle:()=>c,default:()=>m,frontMatter:()=>s,metadata:()=>u,toc:()=>d});var n=o(87462),i=o(67294),r=o(3905),a=o(53958);const s={title:"Waku is Uncompromising Web3 Communication at Scale",description:"A family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps."},c=void 0,u={type:"mdx",permalink:"/",source:"@site/src/pages/index.mdx",title:"Waku is Uncompromising Web3 Communication at Scale",description:"A family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps.",frontMatter:{title:"Waku is Uncompromising Web3 Communication at Scale",description:"A family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps."}},d=[],l={toc:d},p="wrapper";function m(e){let{components:t,...o}=e;return(0,r.kt)(p,(0,n.Z)({},l,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)(a.Hero,{size:"large",mdxType:"Hero"},(0,r.kt)(a.HeroInfo,{mdxType:"HeroInfo"},(0,r.kt)(a.HeroTitle,{mdxType:"HeroTitle"},"Waku is Uncompromising Web3 Communication at Scale"),(0,r.kt)(a.HeroDescription,{mdxType:"HeroDescription"},"A family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps."),(0,r.kt)(a.HeroActions,{mdxType:"HeroActions"},(0,r.kt)(a.HeroAction,{href:"https://docs.waku.org/",target:"_blank",mdxType:"HeroAction"},"Learn more"))),(0,r.kt)(a.HeroVideo,{placeholderSrc:"/hero/prome01-1080x1080-placeholder.png",desktop:{scale:"1.43",height:"160%",offsetY:"-220px"},mobile:{scale:"1.43",offsetY:"-70px",height:"200%"},mdxType:"HeroVideo"},(0,r.kt)("source",{src:"/hero/prome01-2048x2048-24fps-1M.mov",type:'video/mp4; codecs="hvc1"'}),(0,r.kt)("source",{src:"/hero/prome01-2048x2048-24fps-1M.webm",type:"video/webm"}))),(0,r.kt)(a.FeatureList,{id:"Waku attributes",alignment:"top",features:[{title:"Private",description:"Waku uses cutting-edge zero-knowledge technology to protect applications from Denial of Service attacks. Tailor your application's privacy settings to suit your needs."},{title:"Censorship resistant",description:"Decentralised human-to-human, machine-to-human, and machine-to-machine communication, with no single point of failure. Waku's native incentivization mechanism stimulates an expanding node distribution, promoting an increasingly secure network."},{title:"Modular",description:"Waku protocols are adaptive and platform agnostic, and can be customised based on an application's unique demands. Waku is built to flourish even in resource-restricted environments like browsers and mobile devices."},{title:"Scalable",description:"Waku employs message sharding for efficient throughput, while its discovery protocol ensures a user connects to nodes serving messages they are interested in."}],mdxType:"FeatureList"}),(0,r.kt)(a.Box,{top:{xs:144,lg:216},mdxType:"Box"},(0,r.kt)(a.CallToActionSection,{title:"Logos Collective",columns:1,description:(0,r.kt)(i.Fragment,null,"Waku is powering the communication layer of the Logos technology stack. Logos is a grassroots movement, building the infrastructure for trust-minimised, corruption-resistant governing services and social institutions for peaceful people worldwide.",(0,r.kt)("br",null),(0,r.kt)("br",null),"Learn more about our ambitious vision."),label:"Explore Logos",href:"https://logos.co/",target:"_blank",mdxType:"CallToActionSection"})),(0,r.kt)(a.Box,{top:{xs:144,lg:216},mdxType:"Box"},(0,r.kt)(a.CallToActionSection,{title:"User Endorsements",mdxType:"CallToActionSection"})),(0,r.kt)(a.Box,{top:{xs:64,lg:100},mdxType:"Box"},(0,r.kt)(a.Grid,{id:"showcase",xs:{cols:2,wrap:!0,gap:"1.5rem 1em"},lg:{cols:3,gap:"1rem"},mdxType:"Grid"},(0,r.kt)(a.Grid.Item,{xs:1},(0,r.kt)(a.ShowcaseCard,{name:"Status",logoSrc:"/showcase/status-mark-black.svg",logoSrcDark:"/showcase/status-mark-white.svg",description:'"Waku v2 has been instrumental in helping us scale the Status application securely while maintaining the decentralised nature of our network. The Waku team has been invaluable in providing practical solutions during the development of the Waku v2 protocol, enabling us to deliver essential Status Communities features.\u201d',mdxType:"ShowcaseCard"})),(0,r.kt)(a.Grid.Item,{xs:1},(0,r.kt)(a.ShowcaseCard,{name:"Railgun",logoSrc:"/showcase/railgun-mark-black.svg",logoSrcDark:"/showcase/railgun-mark-white.svg",description:(0,r.kt)(i.Fragment,null,'"RAILGUN contributors selected Waku to run its relayer network as an early-stage but promising product of the privacy-centric ',(0,r.kt)("a",{href:"https://status.im",target:"_blank"},"status.im"),' ecosystem. We have not been disappointed. The developers are extremely professional and responsive, and continue to strive to understand and meet our needs as a communication layer for relaying private transactions."'),mdxType:"ShowcaseCard"})),(0,r.kt)(a.Grid.Item,{xs:1},(0,r.kt)(a.ShowcaseCard,{name:"The Graph",logoSrc:"/showcase/the-graph-mark-black.svg",logoSrcDark:"/showcase/the-graph-mark-white.svg",description:'"Our experience with Waku has been transformative, proving to be a valuable tool that reveals the potential of peer-to-peer communication technologies. We are excited to continue using Waku\'s advanced features and contribute to the growth of Graphcast and the broader Graph ecosystem."',mdxType:"ShowcaseCard"}),(0,r.kt)(i.Fragment,null,"Want to learn more about Waku? ",(0,r.kt)("br",null),"Join the Discord community."))),(0,r.kt)(a.Box,{top:32,mdxType:"Box"},(0,r.kt)(a.CallToActionButton,{href:"https://docs.waku.org/",variant:"outlined",mdxType:"CallToActionButton"},"Build on Waku"))),(0,r.kt)(a.Box,{top:{xs:144,lg:216},mdxType:"Box"},(0,r.kt)(a.Roadmap,{title:"Roadmap",description:"Waku aims to support tens of millions of simultaneous users, truly serving as the communications standard across web3",timeline:[{period:[2013],description:"Ethereum's Whisper unveiled as web3 messaging protocol"},{period:[2018],description:"Status establishes Vac to R&D Whisper improvements"},{period:[2020],description:"Waku v1 replaces Whisper in Status app"},{period:[2021,"Q1"],description:"Waku v2 specs and PoC released with RLN Relay"},{period:[2021,"Q2"],description:"JS-Waku (for browsers) and Go-Waku released"},{period:[2022,"Q3"],description:"DNS Discovery added, plus availability in more languages"},{period:[2022,"Q4"],description:"SQLite for Waku Store, RLN Relay testnet debuts at DevCon"},{period:[2023,"Q2"],description:"Relay sharding, opt-in spam-protected topic"},{period:[2023,"Q4"],description:"Auto-sharding, DoS protection, bandwidth capping"},{period:[2024,"+"],description:"Operator Incentivization, use-case specific SDKs"}],mdxType:"Roadmap"},(0,r.kt)(a.CallToActionButton,{style:{marginTop:0},size:"large",variant:"outlined",href:"/about",mdxType:"CallToActionButton"},"Read more"))),(0,r.kt)(a.Box,{top:{xs:144,lg:336},mdxType:"Box"},(0,r.kt)(a.NewsletterSubscription,{mdxType:"NewsletterSubscription"})),(0,r.kt)(a.Box,{top:{xs:144,lg:96},mdxType:"Box"},(0,r.kt)(a.CallToActionSection,{title:(0,r.kt)(i.Fragment,null,"Want to learn more about Waku? ",(0,r.kt)("br",null),"Join the Discord community."),label:"Join us on Discord",target:"_blank",href:"https://discord.waku.org/",mdxType:"CallToActionSection"})))}m.isMDXComponent=!0},53958:(e,t,o)=>{var n=o(83639);o.o(n,"Box")&&o.d(t,{Box:function(){return n.Box}}),o.o(n,"CallToActionButton")&&o.d(t,{CallToActionButton:function(){return n.CallToActionButton}}),o.o(n,"CallToActionSection")&&o.d(t,{CallToActionSection:function(){return n.CallToActionSection}}),o.o(n,"EventAbout")&&o.d(t,{EventAbout:function(){return n.EventAbout}}),o.o(n,"EventBanner")&&o.d(t,{EventBanner:function(){return n.EventBanner}}),o.o(n,"EventCTASection")&&o.d(t,{EventCTASection:function(){return n.EventCTASection}}),o.o(n,"EventCardList")&&o.d(t,{EventCardList:function(){return n.EventCardList}}),o.o(n,"EventHeader")&&o.d(t,{EventHeader:function(){return n.EventHeader}}),o.o(n,"EventInfo")&&o.d(t,{EventInfo:function(){return n.EventInfo}}),o.o(n,"EventProfileList")&&o.d(t,{EventProfileList:function(){return n.EventProfileList}}),o.o(n,"FeatureList")&&o.d(t,{FeatureList:function(){return n.FeatureList}}),o.o(n,"Grid")&&o.d(t,{Grid:function(){return n.Grid}}),o.o(n,"Hero")&&o.d(t,{Hero:function(){return n.Hero}}),o.o(n,"HeroAction")&&o.d(t,{HeroAction:function(){return n.HeroAction}}),o.o(n,"HeroActions")&&o.d(t,{HeroActions:function(){return n.HeroActions}}),o.o(n,"HeroDescription")&&o.d(t,{HeroDescription:function(){return n.HeroDescription}}),o.o(n,"HeroInfo")&&o.d(t,{HeroInfo:function(){return n.HeroInfo}}),o.o(n,"HeroTitle")&&o.d(t,{HeroTitle:function(){return n.HeroTitle}}),o.o(n,"HeroVideo")&&o.d(t,{HeroVideo:function(){return n.HeroVideo}}),o.o(n,"JobsPerDepartment")&&o.d(t,{JobsPerDepartment:function(){return n.JobsPerDepartment}}),o.o(n,"NewsletterSubscription")&&o.d(t,{NewsletterSubscription:function(){return n.NewsletterSubscription}}),o.o(n,"Roadmap")&&o.d(t,{Roadmap:function(){return n.Roadmap}}),o.o(n,"ShowcaseCard")&&o.d(t,{ShowcaseCard:function(){return n.ShowcaseCard}}),o.o(n,"SocialCard")&&o.d(t,{SocialCard:function(){return n.SocialCard}})}}]); \ No newline at end of file diff --git a/assets/js/main.22fac347.js b/assets/js/main.22fac347.js deleted file mode 100644 index 2464ffab..00000000 --- a/assets/js/main.22fac347.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! For license information please see main.22fac347.js.LICENSE.txt */ -(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[179],{31665:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(67294),o=n(73935),a=n(70917);function i(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const l=i(r);var s=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t2||B(N)>3?"":" "}function V(e,t){for(;--t&&R()&&!(N<48||N>102||N>57&&N<65||N>70&&N<97););return F(e,M()+(t<6&&32==j()&&32==R()))}function q(e){for(;R();)switch(N){case e:return P;case 34:case 39:34!==e&&39!==e&&q(N);break;case 40:41===e&&q(e);break;case 92:R()}return P}function W(e,t){for(;R()&&e+N!==57&&(e+N!==84||47!==j()););return"/*"+F(t,P-1)+"*"+v(47===e?e:R())}function G(e){for(;!B(j());)R();return F(e,P)}function Z(e){return $(Q("",null,null,null,[""],e=z(e),0,[0],e))}function Q(e,t,n,r,o,a,i,l,s){for(var u=0,c=0,d=i,f=0,p=0,h=0,m=1,g=1,b=1,y=0,k="",S=o,D=a,A=r,L=k;g;)switch(h=y,y=R()){case 40:if(108!=h&&58==_(L,d-1)){-1!=x(L+=w(U(y),"&","&\f"),"&\f")&&(b=-1);break}case 34:case 39:case 91:L+=U(y);break;case 9:case 10:case 13:case 32:L+=H(h);break;case 92:L+=V(M()-1,7);continue;case 47:switch(j()){case 42:case 47:C(X(W(R(),M()),t,n),s);break;default:L+="/"}break;case 123*m:l[u++]=E(L)*b;case 125*m:case 59:case 0:switch(y){case 0:case 125:g=0;case 59+c:p>0&&E(L)-d&&C(p>32?K(L+";",r,n,d-1):K(w(L," ","")+";",r,n,d-2),s);break;case 59:L+=";";default:if(C(A=Y(L,t,n,u,c,o,l,k,S=[],D=[],d),a),123===y)if(0===c)Q(L,t,A,A,S,a,d,l,D);else switch(99===f&&110===_(L,3)?100:f){case 100:case 109:case 115:Q(e,A,A,r&&C(Y(e,A,A,0,0,o,l,k,o,S=[],d),D),o,D,d,l,r?S:D);break;default:Q(L,A,A,A,[""],D,0,l,D)}}u=c=p=0,m=b=1,k=L="",d=i;break;case 58:d=1+E(L),p=h;default:if(m<1)if(123==y)--m;else if(125==y&&0==m++&&125==(N=P>0?_(I,--P):0,O--,10===N&&(O=1,T--),N))continue;switch(L+=v(y),y*m){case 38:b=c>0?1:(L+="\f",-1);break;case 44:l[u++]=(E(L)-1)*b,b=1;break;case 64:45===j()&&(L+=U(R())),f=j(),c=d=E(k=L+=G(M())),y++;break;case 45:45===h&&2==E(L)&&(m=0)}}return a}function Y(e,t,n,r,o,a,i,l,s,u,c){for(var d=o-1,f=0===o?a:[""],h=S(f),m=0,v=0,b=0;m0?f[x]+" "+_:w(_,/&\f/g,f[x])))&&(s[b++]=E);return A(e,t,n,0===o?p:l,s,u,c)}function X(e,t,n){return A(e,t,n,f,v(N),k(e,2,-2),0)}function K(e,t,n,r){return A(e,t,n,h,k(e,0,r),k(e,r+1,-1),r)}function J(e,t){for(var n="",r=S(e),o=0;o6)switch(_(e,t+1)){case 109:if(45!==_(e,t+4))break;case 102:return w(e,/(.+:)(.+)-([^]+)/,"$1"+d+"$2-$3$1"+c+(108==_(e,t+3)?"$3":"$2-$3"))+e;case 115:return~x(e,"stretch")?le(w(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==_(e,t+1))break;case 6444:switch(_(e,E(e)-3-(~x(e,"!important")&&10))){case 107:return w(e,":",":"+d)+e;case 101:return w(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+d+(45===_(e,14)?"inline-":"")+"box$3$1"+d+"$2$3$1"+u+"$2box$3")+e}break;case 5936:switch(_(e,t+11)){case 114:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return d+e+u+e+e}return e}var se,ue=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case h:e.return=le(e.value,e.length);break;case m:return J([L(e,{value:w(e.value,"@","@"+d)})],r);case p:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return J([L(e,{props:[w(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return J([L(e,{props:[w(t,/:(plac\w+)/,":"+d+"input-$1")]}),L(e,{props:[w(t,/:(plac\w+)/,":-moz-$1")]}),L(e,{props:[w(t,/:(plac\w+)/,u+"input-$1")]})],r)}return""}))}}],ce=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r=e.stylisPlugins||ue;var o,a,i={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+s,styles:o,next:Se}}(i,void 0,r.useContext(Ne));l+=t.key+"-"+s.name;var u={};for(var c in e)Oe.call(e,c)&&"css"!==c&&c!==Ie&&(u[c]=e[c]);return u.ref=n,u.className=l,r.createElement(r.Fragment,null,r.createElement(Le,{cache:t,serialized:s,isStringTag:"string"==typeof a}),r.createElement(a,u))}));var je,Me,Fe,Be={},ze={};function $e(){if(Me)return je;Me=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;return je=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(r,o){for(var a,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(r),s=1;s{const[t,n]=r.useState(e.value??e.defaultValue),o=void 0===e.value,a=void 0!==t&&("string"==typeof t?t.length>0:t.toString().length>0);return r.useEffect((()=>{!o&&n(e.value)}),[o,e.value]),{value:t,filled:a,onChange:t=>{if(o){const e=t.target.type,r=t.target["checkbox"===e||"radio"===e?"checked":"value"];n(r)}e.onChange&&e.onChange(t)},setValue:t=>{var n,r,o,a;const i=(null==(n=null==e?void 0:e.ref)?void 0:n.current)??("function"==typeof e.getInput&&e.getInput());if(!i)return;const l=new Event("input",{bubbles:!0});null==(a=null==(o=null==(r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))?void 0:r.set)?void 0:o.call)||a.call(o,i,t),i.dispatchEvent(l)}}};var Xe=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n-1},dt=function(e,t){var n=this.__data__,r=it(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function ft(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991},kr=Lt,Er=_r,Sr=sr,Cr={};Cr["[object Float32Array]"]=Cr["[object Float64Array]"]=Cr["[object Int8Array]"]=Cr["[object Int16Array]"]=Cr["[object Int32Array]"]=Cr["[object Uint8Array]"]=Cr["[object Uint8ClampedArray]"]=Cr["[object Uint16Array]"]=Cr["[object Uint32Array]"]=!0,Cr["[object Arguments]"]=Cr["[object Array]"]=Cr["[object ArrayBuffer]"]=Cr["[object Boolean]"]=Cr["[object DataView]"]=Cr["[object Date]"]=Cr["[object Error]"]=Cr["[object Function]"]=Cr["[object Map]"]=Cr["[object Number]"]=Cr["[object Object]"]=Cr["[object RegExp]"]=Cr["[object Set]"]=Cr["[object String]"]=Cr["[object WeakMap]"]=!1;var Tr=function(e){return Sr(e)&&Er(e.length)&&!!Cr[kr(e)]};var Or=function(e){return function(t){return e(t)}},Dr={};!function(e,t){var n=yt,r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r&&n.process,i=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=i}({get exports(){return Dr},set exports(e){Dr=e}},Dr);var Pr=Tr,Nr=Or,Ir=Dr&&Dr.isTypedArray,Ar=Ir?Nr(Ir):Pr,Lr=lr,Rr=gr,jr=vr,Mr=br,Fr=xr,Br=Ar,zr=Object.prototype.hasOwnProperty;var $r=function(e,t){var n=jr(e),r=!n&&Rr(e),o=!n&&!r&&Mr(e),a=!n&&!r&&!o&&Br(e),i=n||r||o||a,l=i?Lr(e.length,String):[],s=l.length;for(var u in e)!t&&!zr.call(e,u)||i&&("length"==u||o&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Fr(u,s))||l.push(u);return l},Ur=Object.prototype;var Hr=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ur)};var Vr=function(e,t){return function(n){return e(t(n))}},qr=Vr(Object.keys,Object),Wr=Hr,Gr=qr,Zr=Object.prototype.hasOwnProperty;var Qr=Bt,Yr=_r;var Xr=function(e){return null!=e&&Yr(e.length)&&!Qr(e)},Kr=$r,Jr=function(e){if(!Wr(e))return Gr(e);var t=[];for(var n in Object(e))Zr.call(e,n)&&"constructor"!=n&&t.push(n);return t},eo=Xr;var to=function(e){return eo(e)?Kr(e):Jr(e)},no=ir,ro=to;var oo=function(e,t){return e&&no(t,ro(t),e)};var ao=Rt,io=Hr,lo=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t},so=Object.prototype.hasOwnProperty;var uo=$r,co=function(e){if(!ao(e))return lo(e);var t=io(e),n=[];for(var r in e)("constructor"!=r||!t&&so.call(e,r))&&n.push(r);return n},fo=Xr;var po=function(e){return fo(e)?uo(e,!0):co(e)},ho=ir,mo=po;var go=function(e,t){return e&&ho(t,mo(t),e)},vo={};!function(e,t){var n=_t,r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r?n.Buffer:void 0,i=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=i?i(n):new e.constructor(n);return e.copy(r),r}}({get exports(){return vo},set exports(e){vo=e}},vo);var bo=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++no?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r0&&r(s)?n>1?e(s,n-1,r,o,a):wl(a,s):o||(a[a.length]=s)}return a},kl=_l;var El=function(e){return(null==e?0:e.length)?kl(e,1):[]};var Sl=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)},Cl=Math.max;var Tl=function(e,t,n){return t=Cl(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=Cl(r.length-t,0),i=Array(a);++o0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Pl),Al=El,Ll=Tl,Rl=Il;var jl=function(e){return Rl(Ll(e,void 0,Al),e+"")},Ml=Xe,Fl=xi,Bl=il,zl=Zi,$l=ir,Ul=gl,Hl=Zo,Vl=jl((function(e,t){var n={};if(null==e)return n;var r=!1;t=Ml(t,(function(t){return t=zl(t,e),r||(r=t.length>1),t})),$l(e,Hl(e),n),r&&(n=Fl(n,7,Ul));for(var o=t.length;o--;)Bl(n,t[o]);return n})),ql=rr,Wl=Zi,Gl=xr,Zl=Rt,Ql=Yi;var Yl=Ji,Xl=function(e,t,n,r){if(!Zl(e))return e;for(var o=-1,a=(t=Wl(t,e)).length,i=a-1,l=e;null!=l&&++oObject.fromEntries((Array.isArray(e)?e:Object.keys(e)).map(((e,n)=>[e,t(e,n)]))),fs=["xs","sm","md","lg","xl"],ps=["display1","display2","display3","display4","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","subtitle3","subtitle4","body1","body2","body3","label1","label2"],hs={h1:["h1"],h2:["h2"],h3:["h3"],h4:["h4"],h5:["h5"],h6:["h6"],body1:["body"],label1:["label"]},ms=["fontSize","fontWeight","lineHeight"],gs={...ds(ps,(e=>`lsd-typography--${e}`)),root:"lsd-typography",primary:"lsd-typography--primary",secondary:"lsd-typography--secondary",serif:"lsd-typography--serif",sansSerif:"lsd-typography--sans-serif",monospace:"lsd-typography--monospace"},vs=["genericFontFamily"],bs=({genericFontFamily:e})=>({className:Qe("serif"===e&&gs.serif,"monospace"===e&&gs.monospace,"sans-serif"===e&&gs.sansSerif)}),ys=e=>cs(e,vs),ws=e=>Vl(e,vs),xs={root:"lsd-icon",small:"lsd-icon--small",filled:"lsd-icon--filled",stroked:"lsd-icon--stroked",primary:"lsd-icon--primary",secondary:"lsd-icon--secondary"},_s=(e,t)=>{const n=({color:n,size:r="small",className:o,...a})=>{const i=bs(a);return We(e,{className:Qe(i.className,o,xs.root,xs[r],n&&xs[n],(null==t?void 0:t.filled)&&xs.filled,(null==t?void 0:t.stroked)&&xs.stroked),...ws(a)})};return n.displayName=e.displayName,n.classes=xs,n},ks=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.6666 7.58334H7.58325V11.6667H6.41659V7.58334H2.33325V6.41668H6.41659V2.33334H7.58325V6.41668H11.6666V7.58334Z",fill:"black"})})),{filled:!0}),Es=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M10.5 5.66125L9.6775 4.83875L7 7.51041L4.3225 4.83874L3.5 5.66125L7 9.16125L10.5 5.66125Z",fill:"black"})})),{filled:!0}),Ss=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M6.99992 2.33334L6.17742 3.15584L9.43242 6.41668H2.33325V7.58334H9.43242L6.17742 10.8442L6.99992 11.6667L11.6666 7.00001L6.99992 2.33334Z",fill:"black"})})),{filled:!0}),Cs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M3.5 8.33875L4.3225 9.16125L7 6.48959L9.6775 9.16125L10.5 8.33875L7 4.83875L3.5 8.33875Z",fill:"black"})})),{filled:!0}),Ts=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.91667 1.75H11.0833C11.725 1.75 12.25 2.275 12.25 2.91667V11.0833C12.25 11.725 11.725 12.25 11.0833 12.25H2.91667C2.275 12.25 1.75 11.725 1.75 11.0833V2.91667C1.75 2.275 2.275 1.75 2.91667 1.75ZM9.68333 4.43333L10.5 5.25L5.83333 9.91667L3.5 7.58333L4.31667 6.76667L5.83333 8.28333L9.68333 4.43333Z",fill:"black"})})),{filled:!0}),Os=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0833 2.91667V11.0833H2.91667V2.91667H11.0833ZM11.0833 1.75H2.91667C2.275 1.75 1.75 2.275 1.75 2.91667V11.0833C1.75 11.725 2.275 12.25 2.91667 12.25H11.0833C11.725 12.25 12.25 11.725 12.25 11.0833V2.91667C12.25 2.275 11.725 1.75 11.0833 1.75Z",fill:"black"})})),{filled:!0}),Ds=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.25009 9.43247L2.81759 6.99997L1.98926 7.82247L5.25009 11.0833L12.2501 4.0833L11.4276 3.2608L5.25009 9.43247Z",fill:"black"})})),{filled:!0}),Ps=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0834 3.73916L10.2609 2.91666L7.00008 6.17749L3.73925 2.91666L2.91675 3.73916L6.17758 6.99999L2.91675 10.2608L3.73925 11.0833L7.00008 7.82249L10.2609 11.0833L11.0834 10.2608L7.82258 6.99999L11.0834 3.73916Z",fill:"black"})})),{filled:!0}),Ns=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.00008 1.16666C3.78008 1.16666 1.16675 3.77999 1.16675 6.99999C1.16675 10.22 3.78008 12.8333 7.00008 12.8333C10.2201 12.8333 12.8334 10.22 12.8334 6.99999C12.8334 3.77999 10.2201 1.16666 7.00008 1.16666ZM6.41675 9.91666V8.74999H7.58342V9.91666H6.41675ZM6.41675 4.08332V7.58332H7.58342V4.08332H6.41675Z",fill:"black"})})),{filled:!0}),Is=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.34925 3.50001L6.51591 4.66668H11.6667V10.5H2.33341V3.50001H5.34925ZM5.83341 2.33334H2.33341C1.69175 2.33334 1.17258 2.85834 1.17258 3.50001L1.16675 10.5C1.16675 11.1417 1.69175 11.6667 2.33341 11.6667H11.6667C12.3084 11.6667 12.8334 11.1417 12.8334 10.5V4.66668C12.8334 4.02501 12.3084 3.50001 11.6667 3.50001H7.00008L5.83341 2.33334Z",fill:"black"})})),{filled:!0}),As=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0833 4.08333V6.41667H3.98417L6.0725 4.3225L5.25 3.5L1.75 7L5.25 10.5L6.0725 9.6775L3.98417 7.58333H12.25V4.08333H11.0833Z",fill:"black"})})),{filled:!0}),Ls=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.75 4.66667V3.5H12.25V4.66667H1.75ZM1.75 7.58333H12.25V6.41667H1.75V7.58333ZM1.75 10.5H12.25V9.33333H1.75V10.5Z",fill:"black"})})),{filled:!0}),Rs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.49992 5.83334C2.85825 5.83334 2.33325 6.35834 2.33325 7.00001C2.33325 7.64168 2.85825 8.16668 3.49992 8.16668C4.14159 8.16668 4.66659 7.64168 4.66659 7.00001C4.66659 6.35834 4.14159 5.83334 3.49992 5.83334ZM10.4999 5.83334C9.85825 5.83334 9.33325 6.35834 9.33325 7.00001C9.33325 7.64168 9.85825 8.16668 10.4999 8.16668C11.1416 8.16668 11.6666 7.64168 11.6666 7.00001C11.6666 6.35834 11.1416 5.83334 10.4999 5.83334ZM5.83325 7.00001C5.83325 6.35834 6.35825 5.83334 6.99992 5.83334C7.64159 5.83334 8.16659 6.35834 8.16659 7.00001C8.16659 7.64168 7.64159 8.16668 6.99992 8.16668C6.35825 8.16668 5.83325 7.64168 5.83325 7.00001Z",fill:"black"})})),{filled:!0}),js=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M9.16137 4.3225L8.33887 3.5L4.83887 7L8.33887 10.5L9.16137 9.6775L6.4897 7L9.16137 4.3225Z",fill:"black"})})),{filled:!0}),Ms=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.66137 3.5L4.83887 4.3225L7.51053 7L4.83887 9.6775L5.66137 10.5L9.16137 7L5.66137 3.5Z",fill:"black"})})),{filled:!0}),Fs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.61 7.74083L11.9525 11.0833L11.0833 11.9525L7.74083 8.61C7.11667 9.05917 6.36417 9.33333 5.54167 9.33333C3.4475 9.33333 1.75 7.63583 1.75 5.54167C1.75 3.4475 3.4475 1.75 5.54167 1.75C7.63583 1.75 9.33333 3.4475 9.33333 5.54167C9.33333 6.36417 9.05917 7.11667 8.61 7.74083ZM5.54167 2.91667C4.08917 2.91667 2.91667 4.08917 2.91667 5.54167C2.91667 6.99417 4.08917 8.16667 5.54167 8.16667C6.99417 8.16667 8.16667 6.99417 8.16667 5.54167C8.16667 4.08917 6.99417 2.91667 5.54167 2.91667Z",fill:"black"})})),{filled:!0}),Bs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.79287 3.5H2.99998V2.5H11.5V11H10.5V4.20711L3.35353 11.3536L2.64642 10.6464L9.79287 3.5Z",fill:"black"})})),{filled:!0}),zs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M7.0013 1.16669C3.7813 1.16669 1.16797 3.78002 1.16797 7.00002C1.16797 10.22 3.7813 12.8334 7.0013 12.8334C10.2213 12.8334 12.8346 10.22 12.8346 7.00002C12.8346 3.78002 10.2213 1.16669 7.0013 1.16669ZM7.0013 11.6667C4.42297 11.6667 2.33464 9.57835 2.33464 7.00002C2.33464 4.42169 4.42297 2.33335 7.0013 2.33335C9.57964 2.33335 11.668 4.42169 11.668 7.00002C11.668 9.57835 9.57964 11.6667 7.0013 11.6667Z",fill:"black"})})),{filled:!0}),$s=_s((e=>Ge("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[We("path",{d:"M7.0013 1.16669C3.7813 1.16669 1.16797 3.78002 1.16797 7.00002C1.16797 10.22 3.7813 12.8334 7.0013 12.8334C10.2213 12.8334 12.8346 10.22 12.8346 7.00002C12.8346 3.78002 10.2213 1.16669 7.0013 1.16669ZM7.0013 11.6667C4.42297 11.6667 2.33464 9.57835 2.33464 7.00002C2.33464 4.42169 4.42297 2.33335 7.0013 2.33335C9.57964 2.33335 11.668 4.42169 11.668 7.00002C11.668 9.57835 9.57964 11.6667 7.0013 11.6667Z",fill:"black"}),We("path",{d:"M7.0013 9.91669C8.61213 9.91669 9.91797 8.61085 9.91797 7.00002C9.91797 5.38919 8.61213 4.08335 7.0013 4.08335C5.39047 4.08335 4.08464 5.38919 4.08464 7.00002C4.08464 8.61085 5.39047 9.91669 7.0013 9.91669Z",fill:"black"})]})),{filled:!0}),Us=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.0833 2.33332H10.5V1.16666H9.33333V2.33332H4.66667V1.16666H3.5V2.33332H2.91667C2.26917 2.33332 1.75 2.85832 1.75 3.49999V11.6667C1.75 12.3083 2.26917 12.8333 2.91667 12.8333H11.0833C11.725 12.8333 12.25 12.3083 12.25 11.6667V3.49999C12.25 2.85832 11.725 2.33332 11.0833 2.33332ZM11.0833 11.6667H2.91667V5.24999H11.0833V11.6667ZM3.79167 7.58332C3.79167 6.77832 4.445 6.12499 5.25 6.12499C6.055 6.12499 6.70833 6.77832 6.70833 7.58332C6.70833 8.38832 6.055 9.04166 5.25 9.04166C4.445 9.04166 3.79167 8.38832 3.79167 7.58332Z",fill:"black"})})),{filled:!0}),Hs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M2.32812 7.58329V6.41663H11.6581V7.58329H2.32812Z",fill:"black"})})),{filled:!0}),Vs=({color:e,variant:t="body1",component:n,className:r,children:o,...a})=>{const i=bs(a);return We(n??{h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",label1:"label",label2:"label"}[t]??"span",{className:Qe(i.className,gs.root,gs[t],e&&gs[e],r),...ws(a),children:o})};Vs.classes=gs;const qs={root:"lsd-dropdown-item",icon:"lsd-dropdown-item__icon",label:"lsd-dropdown-item__label",error:"lsd-dropdown-item--error",disabled:"lsd-dropdown-item--disabled",selected:"lsd-dropdown-item--selected",withIcon:"lsd-dropdown-item--with-icon",small:"lsd-dropdown-item--small",medium:"lsd-dropdown-item--medium",large:"lsd-dropdown-item--large"},Ws=({label:e,size:t="large",withIcon:n,selected:r,disabled:o,className:a,...i})=>{const l=bs(i),s={color:"primary",className:qs.icon};return Ge("div",{role:"option","aria-selected":r?"true":"false",...ws(i),className:Qe(l.className,a,qs.root,qs[t],n&&qs.withIcon,o&&qs.disabled),children:[n&&We(r?Ts:Os,{...s}),We(Vs,{variant:"large"===t?"label1":"label2",component:"span",className:qs.label,children:e})]})};function Gs(e){for(var t=[],n=1;n{const[n,o]=r.useState({});return r.useEffect((()=>{const{width:t,height:n,top:r,left:a}=e.current.getBoundingClientRect();o({left:a+window.scrollX,width:t,top:r+n+window.scrollY})}),[t]),n},ru=({size:e="large",open:t,label:n,handleRef:o,onClose:a,children:i,...l})=>{const s=bs(l),u=r.useRef(null);Ys(u,(e=>{t&&!e.composedPath().includes(o.current)&&a&&a()}));const c=nu(o,t);return We("ul",{...ws(l),ref:u,role:"listbox","aria-label":n,style:{...c,...l.style??{}},className:Qe(s.className,l.className,tu.root,tu[e],t&&tu.open),children:i})};ru.classes=tu;const ou=r.createContext({initialized:!1}),au=({id:e,children:t})=>{var n;return(null==(n=r.useContext(ou))?void 0:n.initialized)??!1?We(iu,{id:e,children:t}):We(qe,{})},iu=({id:e,children:t})=>{const n=(({parentId:e})=>{const t=r.useRef();return"undefined"==typeof window||t.current||(t.current=document.createElement("div")),r.useEffect((()=>{var n;if("undefined"==typeof window||!t.current)return;const r=document.querySelectorAll(`#${e}`);return null==(n=r[r.length-1])||n.appendChild(t.current),()=>{var n;try{null==(n=document.getElementById(e))||n.removeChild(t.current)}catch(r){}}}),[e,t.current]),t.current})({parentId:"lsd-presentation"});return n?o.createPortal(t,n,e):We(qe,{})},lu={root:"lsd-autocomplete",label:"lsd-autocomplete__label",inputContainer:"lsd-autocomplete__input-container",input:"lsd-autocomplete__input",icon:"lsd-autocomplete__icon",dropdownItemPlaceholder:"lsd-autocomplete__dropdown-item-placeholder",disabled:"lsd-autocomplete--disabled",error:"lsd-autocomplete--error",large:"lsd-autocomplete--large",medium:"lsd-autocomplete--medium",small:"lsd-autocomplete--small",withIcon:"lsd-autocomplete--with-icon",outlined:"lsd-autocomplete--outlined",underlined:"lsd-autocomplete--underlined"},su=({label:e,size:t="large",withIcon:n=!1,error:o=!1,disabled:a=!1,children:i,value:l,defaultValue:s,placeholder:u,onChange:c,options:d=[],inputProps:f={},variant:p="outlined",...h})=>{const m=bs(h),g=r.useRef(null),v=r.useRef(null),b=Ye({defaultValue:s,value:l,onChange:c,ref:g}),y=b.value,[w,x]=r.useState(!1),[_,k]=r.useState(),E=e=>{x(!1),k(e),b.setValue(e)},S=r.useMemo((()=>b.filled?d.filter((e=>new RegExp(`^${b.value}.+`,"i").test(e))).map((e=>[e,e.slice(0,y.length),e.slice(y.length)])):d),[b.value,d]);r.useEffect((()=>{!_&&b.filled&&!w&&x(!0)}),[b.value,_,w]);const C=!a&&w&&S.length>0&&b.filled,T=(null==f?void 0:f.id)??(h.id||"autocomplete")+"-input";return Ge("div",{ref:v,...ws(h),className:Qe(h.className,m.className,lu.root,lu[t],a&&lu.disabled,n&&lu.withIcon,"outlined"===p?lu.outlined:lu.underlined),children:[e&&We(Vs,{htmlFor:T,className:lu.label,variant:"label2",component:"label",children:e}),Ge("div",{className:lu.inputContainer,children:[We("input",{id:T,ref:g,value:b.value,placeholder:u,onChange:b.onChange,disabled:a,onFocus:()=>x(!0),...f,className:Qe(f.className,lu.input,o&&lu.error)}),n&&b.value?We("span",{className:lu.icon,onClick:()=>b.setValue(""),children:We(Ps,{color:"primary"})}):n&&!b.value?We("span",{className:lu.icon,children:We(Fs,{color:"primary"})}):null]}),We(au,{id:"autocomplete",children:We(ru,{handleRef:v,open:C,onClose:()=>x(!1),size:t,...ys(h),children:S.map(((e,n)=>We(Ws,{size:t,tabIndex:0,label:Ge(qe,{children:[e[1],We("span",{className:lu.dropdownItemPlaceholder,children:e[2]})]}),onClick:()=>E(e[0]),onKeyDown:t=>"Enter"===t.key&&E(e[0])},n)))})})]})};su.classes=lu;const uu={root:"lsd-badge",label:"lsd-badge__label",outlined:"lsd-badge--outlined",filled:"lsd-badge--filled",disabled:"lsd-badge--disabled",small:"lsd-badge--small",large:"lsd-badge--large"},cu=({variant:e="outlined",disabled:t,size:n="large",icon:r,iconDirection:o="left",children:a,...i})=>{const l=bs(i);return Ge("div",{"aria-label":a,...ws(i),className:Qe(i.className,l.className,uu.root,uu[e],t&&uu.disabled,uu[n]),children:["left"===o&&r,We(Vs,{component:"span",variant:"small"===n?"label2":"label1",className:uu.label,children:a}),"right"===o&&r]})};cu.classes=uu;const du={root:"lsd-breadcrumb-item",outlined:"lsd-breadcrumb-item--outlined",itemLink:"lsd-breadcrumb-item__link",large:"lsd-breadcrumb-item--large",small:"lsd-breadcrumb-item--small"},fu=({size:e="large",label:t,link:n,linkComponent:r=(e=>We("a",{...e,children:e.children})),outlined:o,selected:a,ellipsisRef:i,onClick:l,className:s,...u})=>{const c=bs(u);return We("li",{...ws(u),className:Qe(c.className,du.root,du[e],s),"aria-selected":a?"true":"false",onClick:l,ref:i,children:We(r,{href:n,className:Qe(du.itemLink,o&&du.outlined),children:We(Vs,{color:"primary",component:"span",variant:"large"===e?"label1":"label2",children:t})})})};fu.classes=du;const pu={root:"lsd-breadcrumb",list:"lsd-breadcrumb__list",listBox:"lsd-breadcrumb__dropdown-menu",open:"lsd-breadcrumb--open",disabled:"lsd-breadcrumb--disabled"},hu=({size:e="large",disabled:t=!1,ellipsis:n=!1,maxItems:o,value:a=[],onChange:i,options:l=[],...s})=>{const u=bs(s),c=r.useRef(null),[d,f]=r.useState(!1);o=Math.max(2,Math.min(o||2,l.length));const[p,...h]=l,[m,g]=n?[h.slice(0,h.length-o+1),h.slice(h.length-o+1)]:[[],h],v=t=>t.map(((t,n)=>We(fu,{outlined:n===g.length-1&&t!==p,label:t.value,link:t.link,linkComponent:null==t?void 0:t.linkComponent,size:e},n)));return r.useEffect((()=>{t&&d&&f(!1)}),[d,t]),Ge("div",{...ws(s),className:Qe(s.className,u.className,pu.root,t&&pu.disabled,d&&pu.open),children:[Ge("ul",{className:pu.list,children:[p&&v([p]),m.length>0&&We(fu,{ellipsisRef:c,label:"...",onClick:()=>{!t&&f((e=>!e))},size:e,...ys(s)}),v(g)]}),null!=(null==c?void 0:c.current)&&n&&o&&We(au,{id:"breadcrumb",children:We(ru,{handleRef:c,open:d,onClose:()=>f(!1),className:Qe(pu.listBox),size:e,genericFontFamily:s.genericFontFamily,...ys(s),children:m.map(((e,t)=>We(fu,{label:e.value,link:e.link,className:du.itemLink,linkComponent:null==e?void 0:e.linkComponent},t)))})})]})};hu.classes=pu;const mu=r.createContext(null),gu={root:"lsd-button",disabled:"lsd-button--disabled",large:"lsd-button--large",medium:"lsd-button--medium",small:"lsd-button--small",withIcon:"lsd-button--with-icon",outlined:"lsd-button--outlined",filled:"lsd-button--filled",text:"lsd-button__text",icon:"lsd-button__icon"},vu=({size:e,variant:t,disabled:n,icon:o,children:a,...i})=>{const l=r.useContext(mu),s=bs(i),u=bs(l||{}),c=s.className||u.className,d=e??(null==l?void 0:l.size)??"medium",f=t??(null==l?void 0:l.variant)??"outlined",p=n??(null==l?void 0:l.disabled)??!1;return We(qe,{children:Ge("button",{...ws(i),className:Qe(c,i.className,gu.root,gu[d],gu[f],p&&gu.disabled,o&&gu.withIcon),children:[We(Vs,{component:"span",className:gu.text,variant:"small"===d?"label2":"label1",children:a}),o&&We("span",{className:gu.icon,children:o})]})})};vu.classes=gu;const bu={root:"lsd-card",small:"lsd-card--small",medium:"lsd-card--medium",large:"lsd-card--large"},yu=r.createContext(null),wu=({size:e="large",children:t,...n})=>{const r=bs(n);return We(yu.Provider,{value:{size:e},children:We("div",{...ws(n),className:Qe(r.className,bu.root,bu[e]),children:t})})};wu.classes=bu;const xu={root:"lsd-card-body"},_u=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,t.className,xu.root),children:e})};_u.classes=xu;const ku={root:"lsd-card-header",title:"lsd-card-header__title",small:"lsd-card-header--small",medium:"lsd-card-header--medium",large:"lsd-card-header--large"},Eu=({size:e="large",children:t,...n})=>{const o=bs(n),a=r.useContext(yu),i=(null==a?void 0:a.size)??e;return We("div",{...ws(n),className:Qe(o.className,n.className,ku.root,ku[i]),children:We(Vs,{className:ku.title,component:"div",variant:"large"===i?"label1":"label2",children:t})})};Eu.classes=ku;const Su=r.createContext(null),Cu=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.91667 1.75C2.27233 1.75 1.75 2.27233 1.75 2.91667V11.0833C1.75 11.7277 2.27233 12.25 2.91667 12.25H11.0833C11.7277 12.25 12.25 11.7277 12.25 11.0833V2.91667C12.25 2.27233 11.7277 1.75 11.0833 1.75H2.91667ZM9.91667 6.41667H4.08333V7.58333H9.91667V6.41667Z",fill:"black"})})),{filled:!0}),Tu={root:"lsd-checkbox",input:"lsd-checkbox__input",icon:"lsd-checkbox__icon",label:"lsd-checkbox__label",focused:"lsd-checkbox--focused",disabled:"lsd-checkbox--disabled",indeterminate:"lsd-checkbox--indeterminate",large:"lsd-checkbox--large",medium:"lsd-checkbox--medium",small:"lsd-checkbox--small"},Ou=({name:e,size:t="large",onChange:n,checked:o,defaultChecked:a,disabled:i=!1,indeterminate:l=!1,inputProps:s={},children:u,...c})=>{const d=bs(c),f=r.useRef(null),[p,h]=r.useState(!1),m=Ye({value:o,defaultValue:a??!1,onChange:n,ref:f}),g=r.useContext(Su),v=(null==g?void 0:g.size)??t;return r.useEffect((()=>{if(!f.current)return;const e=()=>h(!0),t=()=>h(!1);return f.current.addEventListener("focus",e),f.current.addEventListener("blur",t),()=>{var n,r;null==(n=f.current)||n.removeEventListener("focus",e),null==(r=f.current)||r.removeEventListener("blur",t)}}),[f.current]),Ge(Vs,{color:"primary",variant:"large"===v?"label1":"label2",component:"label","aria-disabled":i?"true":"false",...ws(c),className:Qe(d.className,c.className,Tu.root,Tu[v],p&&Tu.focused,i&&Tu.disabled,l&&Tu.indeterminate),children:[We("input",{ref:f,name:e,type:"checkbox",disabled:i,checked:m.value,onChange:m.onChange,defaultChecked:a,className:Qe(s.className,Tu.input),...s}),l?We(Cu,{color:"primary",focusable:!1}):m.value?We(Ts,{color:"primary",focusable:!1}):We(Os,{color:"primary",focusable:!1}),We("span",{className:Tu.label,children:u})]})};Ou.classes=Tu;const Du={root:"lsd-checkbox-group",label:"lsd-checkbox-group__label"},Pu=({size:e="large",label:t,children:n,...r})=>{const o=bs(r);return We(Su.Provider,{value:{size:e},children:Ge("div",{...ws(r),className:Qe(o.className,r.className,Du.root),children:[We(Vs,{component:"span",variant:"small"===e?"label2":"label1",className:Du.label,...ys(r),children:t}),n]})})};Pu.classes=Du;const Nu={root:"lsd-collapse-header",trigger:"lsd-collapse-header__trigger",label:"lsd-collapse-header__label",icons:"lsd-collapse-header__icons",icon:"lsd-collapse-header__icon",menuIcon:"lsd-collapse-header__menu-icon",open:"lsd-collapse-header--open",disabled:"lsd-collapse-header--disabled",small:"lsd-collapse-header--small",medium:"lsd-collapse-header--medium",large:"lsd-collapse-header--large"},Iu=({label:e,disabled:t=!1,open:n,setOpen:r,size:o="large",onTrigger:a,...i})=>{const l=bs(i);return We("div",{...ws(i),className:Qe(l.className,i.className,Nu.root,Nu[o],t&&Nu.disabled,n&&Nu.open),children:Ge("button",{className:Qe(Nu.trigger),onClick:a,children:[We(Vs,{color:"primary",component:"label",variant:"small"===o?"label2":"label1",className:Nu.label,children:e}),We("div",{className:Nu.icons,children:We(n?Cs:Es,{color:"primary",className:Nu.menuIcon})})]})})};Iu.classes=Nu;const Au={root:"lsd-collapse",content:"lsd-collapse__content",open:"lsd-collapse--open",disabled:"lsd-collapse--disabled"},Lu=({label:e,disabled:t=!1,size:n="large",open:o,children:a,...i})=>{const l=bs(i),s=r.useRef(null),[u,c]=r.useState(o??!1),d=e=>{if(void 0===o)return c(e);i.onChange&&i.onChange(e)};return r.useEffect((()=>{t&&u&&d(!1)}),[t,u,d]),r.useEffect((()=>{void 0!==o&&c(o)}),[o]),Ge("div",{...ws(i),ref:s,className:Qe(l.className,i.className,Au.root,t&&Au.disabled,u&&Au.open),children:[We(Iu,{label:e,open:u,setOpen:c,size:n,onTrigger:()=>!t&&d(!u),disabled:t,...ys(i)}),u&&We("div",{className:Au.content,children:a})]})};Lu.classes=Au;const Ru={root:"lsd-dropdown",label:"lsd-dropdown__label",buttonContainer:"lsd-dropdown__button-container",trigger:"lsd-dropdown__trigger",optionLabel:"lsd-dropdown__option-label",icons:"lsd-dropdown__icons",icon:"lsd-dropdown__icon",menuIcon:"lsd-dropdown__menu-icon",supportingText:"lsd-dropdown__supporting-text",open:"lsd-dropdown--open",error:"lsd-dropdown--error",disabled:"lsd-dropdown--disabled",small:"lsd-dropdown--small",medium:"lsd-dropdown--medium",large:"lsd-dropdown--large",outlined:"lsd-dropdown--outlined",underlined:"lsd-dropdown--underlined"},ju=({label:e,size:t="large",error:n=!1,disabled:o=!1,supportingText:a,triggerLabel:i,value:l=[],onChange:s,options:u=[],multi:c=!1,variant:d="outlined",isOpen:f,onToggle:p,menuProps:h={},...m})=>{const g=bs(m),v=r.useRef(null),b=void 0!==f,[y,w]=r.useState(!1);b&&f!==y&&w(f);const{select:x,isSelected:_,selected:k}=((e,t,{onDone:n,onChange:o,multi:a=!1}={})=>{const i=r.useMemo((()=>Object.fromEntries(e.map((e=>[e.value,e])))),[e]),[l,s]=r.useState(Array.isArray(t)?t:t?[t]:[]),u=r.useMemo((()=>ds(l,(()=>!0))),[l]),c=r.useMemo((()=>l.map((e=>i[e]))),[l,i]);r.useEffect((()=>{o&&s(Array.isArray(t)?t:t?[t]:[])}),[t,o]);const d=e=>"string"==typeof e?e:e.value;return{selected:c,isSelected:e=>!!u[d(e)],select:e=>{const t=d(e),r=a?u[t]?l.filter((e=>e!==t)):[...l,t]:[t];o?o(a?r:r[0]):s(r),!a&&n&&n(a?r:r[0])}}})(u,l,{multi:c,onChange:s,onDone:()=>{w(!1)}}),E=e=>{b?p&&p(e):w(e)};r.useEffect((()=>{o&&y&&!b&&w(!1)}),[y,o,b]);const S=(null==m?void 0:m.id)??(m.id||"dropdown")+"-input";return Ge("div",{ref:v,...ws(m),className:Qe(g.className,m.className,Ru.root,Ru[t],n&&Ru.error,o&&Ru.disabled,y&&Ru.open,"outlined"===d?Ru.outlined:Ru.underlined),children:[e&&We(Vs,{htmlFor:S,className:Ru.label,variant:"label2",component:"label",children:e}),We("div",{className:Ru.buttonContainer,children:Ge("button",{id:S,className:Qe(Ru.trigger),onClick:()=>{o||E(!y)},children:[We(Vs,{color:"primary",component:"label",variant:"large"===t?"label1":"label2",className:Ru.optionLabel,children:k.length>0?k.map((e=>e.name)).join(", "):i}),Ge("div",{className:Ru.icons,children:[n&&We(Ns,{color:"primary",className:Ru.icon}),We(y?Cs:Es,{color:"primary",className:Ru.menuIcon})]})]})}),a&&We(Vs,{variant:"large"===t?"label1":"label2",component:"p",className:Ru.supportingText,children:a}),We(au,{id:"dropdown",children:We(ru,{handleRef:v,open:y,onClose:()=>E(!1),size:t,genericFontFamily:m.genericFontFamily,...h,children:u.map((e=>We(Ws,{size:t,tabIndex:0,onClick:x.bind(null,e),withIcon:c,label:e.name,selected:_(e),onKeyDown:t=>"Enter"===t.key&&x(e)},e.value)))})})]})};ju.classes=Ru;const Mu=r.createContext(null),Fu={root:"lsd-icon-button",outlined:"lsd-icon-button--outlined",filled:"lsd-icon-button--filled",disabled:"lsd-icon-button--disabled",small:"lsd-icon-button--small",medium:"lsd-icon-button--medium",large:"lsd-icon-button--large"},Bu=({size:e,disabled:t,variant:n,children:o,...a})=>{const i=bs(a),l=r.useContext(Mu),s=e??(null==l?void 0:l.size)??"large",u=n??(null==l?void 0:l.variant)??"outlined",c=t??(null==l?void 0:l.disabled)??!1;return We("button",{...ws(a),className:Qe(i.className,a.className,Fu.root,Fu[s],Fu[u],c&&Fu.disabled),children:o})};Bu.classes=Fu;const zu={root:"lsd-icon-button-group",outlined:"lsd-icon-button-group--outlined",filled:"lsd-icon-button-group--filled",disabled:"lsd-icon-button-group--disabled",small:"lsd-icon-button-group--small",medium:"lsd-icon-button-group--medium",large:"lsd-icon-button-group--large"},$u=({size:e="large",disabled:t,variant:n="outlined",children:r,...o})=>{const a=bs(o);return We("div",{...ws(o),className:Qe(a.className,o.className,zu.root,zu[e],zu[n],t&&zu.disabled),children:We(Mu.Provider,{value:{size:e,variant:n,disabled:t},children:r})})};$u.classes=zu;const Uu={root:"lsd-quote",indentedInline:"lsd-quote--indented-inline",parentheses:"lsd-quote--parentheses",text:"lsd-quote__text"},Hu=({mode:e="indented-line",children:t,...n})=>{const r=bs(n);return We(qe,{children:We("div",{...ws(n),className:Qe(r.className,n.className,Uu.root,e&&"parentheses"===e?Uu.parentheses:Uu.indentedInline),children:We(Vs,{color:"primary",component:"label",variant:"label1",children:t})})})};Hu.classes=Uu;const Vu=r.createContext(null),qu={root:"lsd-radio-button",input:"lsd-radio-button__input",label:"lsd-radio-button__label",disabled:"lsd-radio-button--disabled",large:"lsd-radio-button--large",medium:"lsd-radio-button--medium",small:"lsd-radio-button--small"},Wu=({size:e="large",onChange:t,checked:n,defaultChecked:o,disabled:a=!1,value:i,name:l,inputProps:s={},children:u,...c})=>{const d=bs(c),f=r.useRef(null),p=r.useContext(Vu),h=(null==p?void 0:p.size)??e,m=(null==p?void 0:p.name)??l??"",g=p?p.value===i:n,v=Ye({value:g,defaultValue:o??!1,onChange:t,ref:f});return Ge(Vs,{color:"primary",variant:"large"===h?"label1":"label2",component:"label","aria-disabled":a?"true":"false",...ws(c),className:Qe(d.className,c.className,qu.root,qu[h],a&&qu.disabled),children:[We("input",{ref:f,name:m,value:i,type:"radio",checked:v.value,onChange:e=>{p?p.setActiveRadioButton(e.target.value):v.onChange(e)},defaultChecked:o,className:Qe(s.className,qu.input),...s}),v.value?We($s,{color:"primary",focusable:!1}):We(zs,{color:"primary",focusable:!1}),We("span",{className:qu.label,children:u})]})};Wu.classes=qu;const Gu={root:"lsd-radio-button-group",label:"lsd-radio-button-group__label"},Zu=({size:e="large",label:t,value:n,name:o,onChange:a,children:i,...l})=>{const s=bs(l),u=r.useRef(null),[c,d]=r.useState(n);return r.useEffect((()=>d(n)),[n]),We(Vu.Provider,{value:{value:c,setActiveRadioButton:e=>{a?a(e):d(e)},name:o,size:e},children:Ge("div",{ref:u,...ws(l),className:Qe(s.className,l.className,Gu.root),children:[We(Vs,{component:"span",variant:"small"===e?"label2":"label1",className:Gu.label,children:t&&t}),i]})})};Zu.classes=Gu;const Qu=r.createContext(null),Yu={root:"lsd-tab-item",text:"lsd-tab-item--text",icon:"lsd-tab-item--icon",disabled:"lsd-tab-item--disabled",selected:"lsd-tab-item--selected",small:"lsd-tab-item--small",medium:"lsd-tab-item--medium",large:"lsd-tab-item--large",withIcon:"lsd-tab-item--with-icon"},Xu=({name:e,size:t="large",selected:n=!1,inactive:o=!1,icon:a,children:i,...l})=>{const s=bs(l),u=r.useContext(Qu),c=(null==u?void 0:u.size)??t,d=u?u.activeTab===e:n;return Ge("button",{...ws(l),className:Qe(s.className,l.className,Yu.root,Yu[c],d&&Yu.selected,l.disabled&&Yu.disabled,!!a&&Yu.withIcon),onClick:t=>{l.onClick&&l.onClick(t),o||(null==u?void 0:u.setActiveTab)&&u.setActiveTab(e)},children:[We(Vs,{component:"span",className:Yu.text,variant:"small"===c?"label2":"label1",children:i}),a&&We("span",{className:Yu.icon,children:a})]})};Xu.classes=Yu;const Ku={root:"lsd-table-body",toolbar:"lsd-table-body__toolbar",row:"lsd-table-body__row"},Ju=({options:e=[],size:t="large",buttonLabel:n="Button",toolbar:r,children:o,...a})=>{const i=bs(a);return Ge("div",{...ws(a),className:Qe(i.className,a.className,Ku.root),children:[r&&We("div",{className:Qe(Ku.toolbar),children:r}),We("table",{children:o})]})};Ju.classes=Ku;const ec={root:"lsd-table-header"},tc=({size:e="large",children:t,...n})=>{const r=bs(n);return We("div",{...ws(n),className:Qe(r.className,n.className,ec.root),children:t})};tc.classes=ec;const nc={root:"lsd-table",small:"lsd-table--small",medium:"lsd-table--medium",large:"lsd-table--large"},rc=r.createContext(null),oc=()=>r.useContext(rc),ac=({size:e="large",type:t="default",headerOptions:n,header:r,toolbar:o,children:a,...i})=>{const l=bs(i);return We(rc.Provider,{value:{size:e,type:t,headerOptions:n},children:Ge("div",{...ws(i),className:Qe(l.className,nc.root,nc[e]),children:[We(tc,{children:r}),We(Ju,{toolbar:o,options:n,children:a})]})})};ac.classes=nc;const ic={root:"lsd-table-item",large:"lsd-table-item--large",medium:"lsd-table-item--medium",small:"lsd-table-item--small"},lc=({size:e="large",children:t,...n})=>{const r=bs(n),o=oc(),a=(null==o?void 0:o.size)??e;return We("td",{...ws(n),className:Qe(r.className,n.className,ic.root,ic[a]),children:t})};lc.classes=ic;const sc={root:"lsd-table-row"},uc=({size:e="large",type:t="default",children:n,...r})=>{const o=bs(r),a=oc(),i=(null==a?void 0:a.type)??t;return Ge("tr",{...ws(r),className:Qe(o.className,r.className,sc.root),children:["checkbox"===i&&We("td",{className:ic.root,children:We(Ou,{})}),"radio"===i&&We("td",{className:ic.root,children:We(Wu,{value:"1"})}),n]})};uc.classes=sc;const cc=r.createContext(null),dc=(e=0)=>{let t=e-1;return()=>(t++,t)},fc="undefined"==typeof DOMRectReadOnly?null:new DOMRectReadOnly(0,0,0,0),pc=dc(),hc=(e,t)=>{const n=(()=>{const{observe:e,unobserve:t,ready:n}=r.useContext(cc)??{};return r.useMemo((()=>({observe:e,unobserve:t,ready:n})),[e,t,n])})(),o=r.useMemo((()=>t??pc().toString()),[t]),a=((e,t)=>{var n;const o=r.useContext(cc);return(null==(n=null==o?void 0:o.rect)?void 0:n[e])??t})(o)??fc;return r.useEffect((()=>{if(n&&n.ready)return e.current&&n.observe(o,e),()=>{n.unobserve(o)}}),[n.ready,e.current]),a},mc=(e,t,n,r)=>-1===e?t:n-(r+t),gc=(e,t)=>{var n;const o=hc(e),[a,i]=r.useState((null==(n=null==e?void 0:e.current)?void 0:n.scrollLeft)??0),[l,s]=r.useState(0),[u,c]=r.useState(0),d=r.useRef(null);((e,t,n,o,a)=>{const i=r.useMemo((()=>"string"==typeof e?e:e()),[]),l=r.useMemo((()=>"function"==typeof t?t():t),[t]);r.useEffect((()=>{if((null==l?void 0:l.addEventListener)&&(null==l?void 0:l.removeEventListener))return l.addEventListener(i,n,o),()=>{l.removeEventListener(i,n,o)}}),[i,l])})("scroll",e.current,(e=>{i(e.target.scrollLeft)}),{passive:!0});r.useEffect((()=>{if(d.current&&clearTimeout(d.current),!e.current)return;const{scrollLeft:t,scrollWidth:n,clientWidth:r}=e.current;c(mc(1,t,n,r)),s(mc(-1,t,n,r))}),[o,a,null==t?void 0:t.deps]);const f=(n,r)=>{const{clientWidth:o,scrollLeft:a}=e.current,i=Array.from(e.current.childNodes).find((e=>e.getBoundingClientRect().x>=0)),l=Math.max(r??o/3,i?i.clientWidth:0);e.current.scrollTo({behavior:(null==t?void 0:t.scrollBehavior)??"smooth",left:a+l*n})};return r.useMemo((()=>({right:u,left:l,toRight:f.bind(null,1),toLeft:f.bind(null,-1)})),[u,l])},vc={root:"lsd-tabs",fullWidth:"lsd-tabs--full-width",withScrollControls:"lsd-tabs--with-scroll-controls",leftScrollControl:"lsd-tabs__left-scroll-control",rightScrollControl:"lsd-tabs__right-scroll-control"},bc=({size:e="large",fullWidth:t=!1,scrollControls:n=!1,onChange:o,activeTab:a,children:i,...l})=>{const s=bs(l),u=r.useRef(null),[c,d]=r.useState(a);r.useEffect((()=>d(a)),[a]);const f=gc(u,{scrollBehavior:"smooth",deps:[i]}),p=0!==f.left||0!==f.right;return We(Qu.Provider,{value:{activeTab:c,setActiveTab:e=>{o?o(e):d(e)},size:e},children:Ge("div",{ref:u,...ws(l),className:Qe(s.className,l.className,vc.root,t&&vc.fullWidth,n&&p&&vc.withScrollControls),children:[n&&p&&We(Xu,{inactive:!0,name:"Prev",disabled:0===f.left,onClick:()=>f.toLeft(),className:vc.leftScrollControl,children:We(js,{color:"primary"})}),i,n&&p&&We(Xu,{inactive:!0,name:"Next",disabled:0===f.right,onClick:()=>f.toRight(),className:vc.rightScrollControl,children:We(Ms,{color:"primary"})})]})})};bc.classes=vc;const yc={root:"lsd-tag",label:"lsd-tag__label",outlined:"lsd-tag--outlined",filled:"lsd-tag--filled",disabled:"lsd-tag--disabled",small:"lsd-badge--small",large:"lsd-badge--large"},wc=({variant:e="outlined",disabled:t,icon:n,iconDirection:r="left",children:o,size:a="large",...i})=>{const l=bs(i);return Ge("div",{"aria-label":o,...ws(i),className:Qe(l.className,i.className,yc.root,yc[e],t&&yc.disabled,yc[a]),children:["left"===r&&n,We(Vs,{variant:"small"===a?"label2":"label1",className:yc.label,component:"span",children:o}),"right"===r&&n]})};wc.classes=yc;var xc=Hi,_c=0;var kc=function(e){var t=++_c;return xc(e)+t};const Ec={root:"lsd-text-field",inputContainer:"lsd-text-field__input-container",label:"lsd-text-field__label",input:"lsd-text-field__input",icon:"lsd-text-field__icon",clearButton:"lsd-text-field__clear-button",supportingText:"lsd-text-field__supporting-text",disabled:"lsd-text-field--disabled",error:"lsd-text-field--error",large:"lsd-text-field--large",medium:"lsd-text-field--medium",small:"lsd-text-field--small",outlined:"lsd-text-field--outlined",underlined:"lsd-text-field--underlined"},Sc=({size:e="large",label:t,icon:n,error:o=!1,errorIcon:a=!1,clearButton:i,supportingText:l,children:s,value:u,placeholder:c,defaultValue:d,disabled:f,onChange:p,inputProps:h={},labelProps:m={},variant:g="underlined",...v})=>{const b=bs(v),y=r.useRef(null),w=Ye({defaultValue:d,value:u,onChange:p,ref:y}),x=h.id||kc("TextField-");return Ge("div",{"aria-disabled":f?"true":"false",...ws(v),className:Qe(b.className,v.className,Ec.root,Ec[e],f&&Ec.disabled,o&&Ec.error,"outlined"===g?Ec.outlined:Ec.underlined),children:[t&&We(Vs,{variant:"label2",component:"label",htmlFor:x,...m,className:Qe(Ec.label,m.className),children:t}),Ge("div",{className:Ec.inputContainer,children:[We("input",{id:x,placeholder:c,ref:y,value:w.value,onChange:w.onChange,...h,className:Qe(h.className,Ec.input)}),o&&a?We(Ns,{color:"primary",className:Ec.icon}):i&&w.filled?We(Bu,{disabled:f,onClick:()=>!f&&w.setValue(""),"aria-label":"clear",className:Ec.clearButton,children:We(Ps,{color:"primary",className:Ec.icon})}):n]}),l&&We("div",{className:Qe(Ec.supportingText),children:We(Vs,{variant:"large"===e?"label1":"label2",component:"p",children:l})})]})};Sc.classes=Ec;const Cc={vars:{lsd:(...e)=>`--${["lsd",...e].join("-")}`,typography:(e,t)=>Cc.vars.lsd(e,t),color:(e,t)=>Cc.vars.lsd(e,t),wrap:e=>`var(${e})`},define:(e,t)=>`${e}: ${t};`},Tc=(()=>{const e={};return t=>{const n=t.name;return e[n]&&"undefined"!=typeof window||(e[n]=(e=>{const t=[],n=[],r=fs.map((()=>[])),o=fs.map((()=>[]));ps.forEach((n=>{ms.forEach((r=>{var o;const a=(null==(o=e.typography[n][r])?void 0:o.toString())??"unset";t.push(Cc.define(Cc.vars.typography(n,r),a))}))})),t.push(Cc.define(Cc.vars.lsd("typography","generic-font-family"),e.typographyGlobal.genericFontFamily)),fs.forEach(((t,n)=>{ps.forEach((r=>{ms.forEach((a=>{var i,l,s,u;const c=e.breakpoints[t].typography[r][a],d=n>0?null==(u=null==(s=null==(l=null==(i=e.breakpoints)?void 0:i[fs[n-1]])?void 0:l.typography)?void 0:s[r])?void 0:u[a]:e.typography[r][a];c&&c!==d&&o[n].push(Cc.define(Cc.vars.typography(r,a),c.toString()))}))}))}));{const{primary:n,secondary:r,...o}=e.palette,a=o;t.push(Cc.define(Cc.vars.color("theme","primary"),n),Cc.define(Cc.vars.color("theme","secondary"),r),...Object.keys(a).flatMap((e=>Object.keys(a[e]).map((t=>Cc.define(Cc.vars.color(e,t),a[e][t]))))))}e.spacing.map((e=>{const n=Cc.vars.lsd("spacing",e.toString());t.push(Cc.define(n,`${e}px`))})),fs.map(((t,a)=>{n.push(`@media (min-width: ${e.breakpoints[t].width}px) {\n :root {\n ${o[a].join("\n")}\n }\n\n ${r[a]}\n }`)}));const i=`\n ${t.join("\n")} \n\n ${n.join("\n")}\n `;return{cssVars:i,globalStyles:a.css(":root{",i,";}","")}})(t)),e[n]}})(),Oc={name:"LSD",breakpoints:{xs:{width:0,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},label2:{},subtitle1:{},subtitle2:{},subtitle3:{},subtitle4:{}}},sm:{width:400,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},md:{width:768,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},lg:{width:1024,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},xl:{width:1205,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}}},typography:{display1:{fontSize:"5.5rem",fontWeight:"normal",lineHeight:"6rem"},display2:{fontSize:"4rem",fontWeight:"normal",lineHeight:"4.5rem"},display3:{fontSize:"3.5rem",fontWeight:"normal",lineHeight:"4rem"},display4:{fontSize:"3rem",fontWeight:"normal",lineHeight:"3.5rem"},h1:{fontSize:"2.5rem",fontWeight:"normal",lineHeight:"3rem"},h2:{fontSize:"2rem",fontWeight:"normal",lineHeight:"2.5rem"},h3:{fontSize:"1.75rem",fontWeight:"normal",lineHeight:"2.25rem"},h4:{fontSize:"1.5rem",fontWeight:"normal",lineHeight:"2rem"},h5:{fontSize:"1.25rem",fontWeight:"normal",lineHeight:"1.75rem"},h6:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle1:{fontSize:"1.125rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle2:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle3:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},subtitle4:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"},body1:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},body2:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},body3:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"},label1:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},label2:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"}},typographyGlobal:{genericFontFamily:"sans-serif"},palette:{primary:"0, 0, 0",secondary:"255, 255, 255",surface:{primary:"255, 255, 255",secondary:"0, 0, 0"},text:{primary:"0, 0, 0",secondary:"255, 255, 255",tertiary:"0, 0, 0, 0.34"},border:{primary:"0, 0, 0",secondary:"255, 255, 255"},icon:{primary:"0, 0, 0",secondary:"255, 255, 255"}},spacing:[4,8,16,24,32,40,64,80,96,120],globalStyles:a.css("",""),cssVars:""},{cssVars:Dc,globalStyles:Pc}=Tc(Oc);Oc.cssVars=Dc,Oc.globalStyles=Pc;const Nc=dc(),Ic=(e,t)=>ds(ps,(n=>({...t.typography[n],...e.typography[n]??{}}))),Ac=(e,t)=>({...t.typographyGlobal,...e.typographyGlobal}),Lc=(e,t)=>{const n=new Map;return Object.fromEntries(fs.reduce(((r,o,a)=>[...r,{...t.breakpoints[o],...e.breakpoints[o],...ds(["typography"],(o=>((e,t,n,r,o,a)=>"typography"===e?ds(o[e],(i=>{var l,s,u,c,d,f,p,h,m,g,v;const b=`${e}.${i}`,y=!0===a.get(b);return Object.keys((null==(u=null==(s=null==(l=r.breakpoints)?void 0:l[fs[n]])?void 0:s[e])?void 0:u[i])??{}).length>0&&a.set(b,!0),{...o[e][i],...r[e][i],...y?(null==(d=null==(c=null==t?void 0:t[n-1])?void 0:c[e])?void 0:d[i])??{}:null==(h=null==(p=null==(f=o.breakpoints)?void 0:f[fs[n]])?void 0:p[e])?void 0:h[i],...(null==(v=null==(g=null==(m=r.breakpoints)?void 0:m[fs[n]])?void 0:g[e])?void 0:v[i])??{}}})):{})(o,r,a,e,t,n)))}]),[]).map(((e,t)=>[fs[t],e])))},Rc=(e,t)=>{var n,r,o,a,i,l,s,u,c;const d=e.palette.primary??t.palette.primary,f=e.palette.secondary??t.palette.secondary;return{primary:d,secondary:f,surface:{primary:(null==(n=e.palette.surface)?void 0:n.primary)??f,secondary:(null==(r=e.palette.surface)?void 0:r.secondary)??d},border:{primary:(null==(o=e.palette.border)?void 0:o.primary)??d,secondary:(null==(a=e.palette.border)?void 0:a.secondary)??f},icon:{primary:(null==(i=e.palette.icon)?void 0:i.primary)??d,secondary:(null==(l=e.palette.icon)?void 0:l.secondary)??f},text:{primary:(null==(s=e.palette.text)?void 0:s.primary)??d,secondary:(null==(u=e.palette.text)?void 0:u.secondary)??f,tertiary:(null==(c=e.palette.text)?void 0:c.tertiary)??`${d}, 0.34`}}},jc=(e,t=Oc)=>{const n={name:e.name??(r=t.name,`${r}-${Nc()}`),typography:Ic(e,t),typographyGlobal:Ac(e,t),breakpoints:Lc(e,t),palette:Rc(e,t),globalStyles:a.css("",""),cssVars:"",spacing:e.spacing.length?e.spacing:t.spacing};var r;const{cssVars:o,globalStyles:i}=Tc(n);return n.cssVars=o,n.globalStyles=i,n},Mc=jc({name:"Light",breakpoints:{},typography:{},typographyGlobal:{},palette:{},spacing:[]},Oc),Fc={light:Mc,dark:jc({name:"Dark",breakpoints:{},typography:{},typographyGlobal:{},palette:{primary:"255, 255, 255",secondary:"0, 0, 0"},spacing:[]},Mc)},Bc=a.css(".",lu.root,"{box-sizing:border-box;}.",lu.label,"{display:block;}.",lu.inputContainer,"{display:flex;justify-content:space-between;}.",lu.disabled,"{opacity:0.34;}.",lu.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;}.",lu.input,":hover{outline:none;}.",lu.input,"::placeholder{color:rgb(var(--lsd-text-primary));opacity:0.3;}.",lu.icon,"{cursor:pointer;display:flex;align-items:center;}.",lu.error,"{text-decoration:line-through;}.",lu.large,"{width:208px;.",lu.label,"{margin:0 0 6px 18px;}.",lu.inputContainer,"{height:40px;}.",lu.input,"{padding:9px 17px;}.",lu.icon,"{padding:12px 13px;}}.",lu.medium,"{width:188px;.",lu.label,"{margin:0 0 6px 14px;}.",lu.inputContainer,"{height:32px;}.",lu.input,"{padding:5px 13px;}.",lu.icon,"{padding:8px 11px;}}.",lu.small,"{width:164px;.",lu.label,"{margin:0 0 6px 12px;}.",lu.inputContainer,"{height:28px;}.",lu.input,"{padding:5px 11px;}.",lu.icon,"{padding:6px 9px;}}.",lu.withIcon,"{}.",lu.outlined," .",lu.inputContainer,"{border:1px solid rgb(var(--lsd-border-primary));}.",lu.underlined," .",lu.inputContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}.",lu.dropdownItemPlaceholder,"{opacity:0.5;white-space:pre;}",""),zc=a.css(".",uu.root,"{width:fit-content;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;justify-content:center;border:1px solid rgb(var(--lsd-icon-primary));border-radius:20px;&:hover,&:focus{text-decoration:underline;cursor:pointer;}}.",uu.large,"{padding:3px 11px;gap:12px;height:28px;}.",uu.small,"{padding:3px 7px;gap:8px;height:24px;}.",uu.filled,"{background-color:rgb(var(--lsd-icon-primary));.",uu.label,"{color:rgb(var(--lsd-text-secondary));}svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",uu.outlined,"{color:rgb(var(--lsd-text-primary));}.",uu.disabled,"{opacity:0.3;cursor:initial;pointer-events:none;}",""),$c=a.css(".",pu.root,"{}.",pu.list,"{display:flex;flex-direction:row;align-items:center;list-style-type:none;margin:0;padding:0;}.",pu.disabled,"{.",pu.list,"{opacity:0.34;cursor:initial;pointer-events:none;}}.",pu.listBox,"{display:flex;flex-direction:column;overflow:auto;border:1px solid rgb(var(--lsd-border-primary));margin-top:10px;position:absolute;width:auto!important;}.",pu.listBox,">li{cursor:pointer;&:not(:last-child){border-bottom:1px solid rgb(var(--lsd-border-primary));}&:hover,&:focus{text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}}.",pu.listBox," li>a{width:164px;padding:5px 11px;}",""),Uc=a.css(".",du.root,"{list-style-type:none;display:flex;align-items:center;}.",pu.list,">li:not(:last-child)::after{display:inline-block;margin-inline:12px;content:'/';}.",du.itemLink,"{text-decoration:none;cursor:pointer;}.",du.outlined,"{padding:3px 11px;border:1px solid rgb(var(--lsd-border-primary));}",du.large,"{}",du.small,"{}.",pu.root,":not(.",pu.disabled,"){.",du.itemLink,"{&:hover,&:focus{text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}}}",""),Hc=a.css(".",gu.root,"{width:auto;cursor:pointer;padding:6px 24px;}.",gu.disabled,"{cursor:default;opacity:0.34;}.",gu.large,"{padding:10px 40px;}.",gu.medium,"{padding:6px 24px;}.",gu.small,"{padding:6px 12px;}.",gu.root,":hover{&:not(.",gu.disabled,"){.",gu.text,"{text-decoration:underline;}}}.",gu.withIcon,"{display:flex;align-items:center;}.",gu.icon,"{display:flex;justify-content:center;align-items:center;height:100%;}.",gu.large,".",gu.withIcon,"{padding:10px 0px 10px 18px;.",gu.icon,"{width:42px;}}.",gu.medium,".",gu.withIcon,"{padding:6px 0px 6px 14px;.",gu.icon,"{width:38px;}}.",gu.small,".",gu.withIcon,"{padding:6px 0px 6px 12px;.",gu.icon,"{width:34px;}}.",gu.outlined,"{background:none;border:1px solid rgb(var(--lsd-border-primary));.",gu.text,"{color:rgb(var(--lsd-text-primary));}}.",gu.filled,"{background:rgb(var(--lsd-surface-secondary));border:1px solid rgb(var(--lsd-border-primary));.",gu.text,"{color:rgb(var(--lsd-text-secondary));}}",""),Vc={root:"lsd-calendar",container:"lsd-calendar-container",small:"lsd-calendar--small",medium:"lsd-calendar--medium",large:"lsd-calendar--large",open:"lsd-calendar--open",disabled:"lsd-calendar--disabled",header:"lsd-calendar-header",weekDay:"lsd-calendar__week_day",button:"lsd-calendar__button",changeYear:"lsd-calendar__change-year",changeYearActive:"lsd-calendar__change-year--active",changeYearIconContainer:"lsd-calendar__change-year-icon-container",year:"lsd-calendar-year",month:"lsd-calendar-month",day:"lsd-calendar-day",yearAndIcon:"lsd-calendar__year-and-icon",monthAndYear:"lsd-calendar__month-and-year",dayContainer:"lsd-calendar-day__container",dayRange:"lsd-calendar-day--range",daySelected:"lsd-calendar-day--selected",dayDisabled:"lsd-calendar-day--disabled",dayIsToday:"lsd-calendar-day--today",dayBorderLeft:"lsd-calendar-day--border-left",dayBorderRight:"lsd-calendar-day--border-right",dayBorderLeftAndRight:"lsd-calendar-day--border-left-and-right",dayBorderTopAndBottom:"lsd-calendar-day--border-top-and-bottom",todayIndicator:"lsd-calendar-day__today_indicator",monthTable:"lsd-calendar__month-table",nextMonthButton:"lsd-calendar__next-month-button",previousMonthButton:"lsd-calendar__previous-month-button",yearDropdown:"lsd-calendar__year-dropdown",yearDropdownHidden:"lsd-calendar__year-dropdown--hidden"},qc=a.css(".",Vc.root,"{border:1px solid rgb(var(--lsd-border-primary));visibility:hidden;position:absolute!important;top:0;left:0;opacity:0;visibility:hidden;margin:0;padding:0;box-sizing:border-box;background:rgb(var(--lsd-surface-primary));user-select:none;}.",Vc.container,"{display:flex;flex-direction:column;padding:8px;}.",Vc.open,"{opacity:1;visibility:visible;}.",Vc.header,"{display:flex;justify-content:center;align-items:center;height:32px;margin-bottom:8px;}.",Vc.weekDay,"{display:flex;justify-content:center;align-items:center;aspect-ratio:1/1;margin-bottom:4px;}.",Vc.changeYear,"{position:relative;display:flex;justify-content:center;align-items:center;padding:2px 0xp 2px 8px;gap:6px;border:1px solid transparent;}.",Vc.changeYearActive,"{.",Vc.yearAndIcon,"{border:1px solid rgb(var(--lsd-border-primary));}}.",Vc.changeYearIconContainer,"{display:flex;justify-content:center;align-items:center;cursor:pointer;border:none;}.",Vc.month,"{margin-right:8px;}.",Vc.monthAndYear,"{display:flex;align-items:center;justify-content:center;}.",Vc.dayContainer,"{cursor:pointer;background:transparent;position:relative;box-sizing:border-box;border:1px solid transparent;}.",Vc.day,"{aspect-ratio:1/1;display:flex;justify-content:center;align-items:center;}.",Vc.day,":hover{cursor:pointer;text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}.",Vc.day," label:hover{cursor:pointer;}.",Vc.daySelected,"{border:1px solid rgb(var(--lsd-border-primary));}.",Vc.dayDisabled,"{opacity:0.3;cursor:default;}.",Vc.todayIndicator,"{position:absolute;left:50%;transform:translateX(-50%);bottom:2px;}.",Vc.disabled,"{pointer-events:none;border:1px solid rgba(var(--lsd-border-primary), 0.3);label{opacity:0.3;}.",Vc.button,"{opacity:0.3;}.",Vc.daySelected,"{opacity:0.3;}}.",Vc.button,"{border:1px solid rgb(var(--lsd-border-primary));cursor:pointer;background:transparent;width:32px;height:32px;display:flex;align-items:center;justify-content:center;position:absolute;}.",Vc.nextMonthButton,"{top:8px;right:8px;}.",Vc.previousMonthButton,"{top:8px;left:8px;}.",Vc.dayBorderLeft,"{border-left:1px double rgb(var(--lsd-border-primary));}.",Vc.dayBorderRight,"{border-right:1px double rgb(var(--lsd-border-primary));}.",Vc.dayBorderLeftAndRight,"{border-left:1px double rgb(var(--lsd-border-primary));border-right:1px double rgb(var(--lsd-border-primary));}.",Vc.dayBorderTopAndBottom,"{border-top:1px double rgb(var(--lsd-border-primary));border-bottom:1px double rgb(var(--lsd-border-primary));}.",Vc.monthTable,"{border-collapse:collapse;}.",Vc.yearDropdown,"{box-sizing:border-box;position:absolute;top:100%;left:0;max-height:200px;overflow-y:auto;width:100%;border:1px solid rgb(var(--lsd-border-primary));border-top:none;z-index:1;.",Vc.year,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Vc.yearDropdownHidden,"{visibility:hidden;}.",Vc.year,"{display:flex;cursor:pointer;transition:background-color 0.2s;align-items:center;background:rgb(var(--lsd-surface-primary));:hover{text-decoration:underline;}}.",Vc.yearAndIcon,"{border:1px solid rgb(var(--lsd-border-primary));}.",Vc.large,"{.",Vc.year,"{padding:6px 0px 6px 14px;}.",Vc.changeYearIconContainer,"{width:32px;}}.",Vc.medium,"{.",Vc.year,"{padding:6px 0px 6px 12px;}.",Vc.changeYearIconContainer,"{width:28px;}}.",Vc.small,"{.",Vc.year,"{padding:6px 0px 6px 12px;}.",Vc.changeYearIconContainer,"{width:28px;}}",""),Wc=a.css(".",bu.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",bu.root,">.",ku.root,"{margin-bottom:-1px;}.",bu.large,"{}.",bu.medium,"{}.",bu.small,"{}",""),Gc=a.css(".",xu.root,"{box-sizing:border-box;padding:14px 22px;border:1px solid rgb(var(--lsd-border-primary));}",""),Zc=a.css(".",ku.root,"{box-sizing:border-box;padding:10px 18px;text-align:center;border:1px solid rgb(var(--lsd-border-primary));}.",ku.title,"{overflow:hidden;word-break:break-all;}.",ku.large,"{padding:10px 18px;}.",ku.medium,"{padding:6px 14px;}.",ku.small,"{padding:6px 12px;}",""),Qc=a.css(".",Tu.root,"{position:relative;display:flex;flex-direction:row;align-items:center;}.",Tu.input,"{opacity:0;position:absolute;left:0;top:0;padding:0;margin:0;width:100%;height:100%;}.",Tu.root,":not(.",Tu.disabled,"){&:hover,&.",Tu.focused,"{text-decoration:underline;}.",Tu.input,"{cursor:pointer;}}.",Tu.disabled,"{opacity:0.34;}.",Tu.label,"{margin-left:18px;}.",Tu.large,"{.",Tu.label,"{margin-left:18px;}}.",Tu.medium,"{.",Tu.label,"{margin-left:14px;}}.",Tu.small,"{.",Tu.label,"{margin-left:12px;}}",""),Yc=a.css(".",Du.root,"{display:flex;flex-direction:column;gap:6px;width:fit-content;}.",Du.label,"{margin-bottom:6px;}",""),Xc=a.css(".",Au.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",Au.open,"{.",Au.content,"{border-top:1px solid transparent;}}.",Au.content,"{border:1px solid rgb(var(--lsd-border-primary));}",""),Kc=a.css(".",Nu.root,"{box-sizing:border-box;}.",Nu.root,":not(.",Nu.disabled,"){.",Nu.trigger,"{&:hover{.",Nu.label,"{text-decoration:underline;}}}}.",Nu.trigger,"{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer;background:none;border:1px solid rgb(var(--lsd-border-primary));&:focus{outline:none;}}.",Nu.label,"{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:auto;}.",Nu.icons,"{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;}.",Nu.icon,"{margin-right:8px;}.",Nu.menuIcon,"{}.",Nu.disabled,"{.",Nu.trigger,"{opacity:0.34;cursor:initial;}}.",Nu.large,"{.",Nu.trigger,"{width:299px;height:40px;padding:9px 17px;}}.",Nu.medium,"{.",Nu.trigger,"{width:270px;height:32px;padding:5px 13px;}}.",Nu.small,"{.",Nu.trigger,"{width:235px;height:28px;padding:5px 11px;}}",""),Jc={root:"lsd-date-field",label:"lsd-date-field__label",inputContainer:"lsd-date-field__input-container",input:"lsd-date-field__input-container__input",inputFilled:"lsd-date-field__input-container__input--filled",icon:"lsd-date-field__input-container__icon",noIcon:"lsd-date-field__input-container__no-icon",iconButton:"lsd-date-field__input-container__icon-button",supportingText:"lsd-date-field__supporting-text",disabled:"lsd-date-field--disabled",error:"lsd-date-field--error",large:"lsd-date-field--large",medium:"lsd-date-field--medium",small:"lsd-date-field--small",outlined:"lsd-date-field--outlined",underlined:"lsd-date-field--underlined"},ed=a.css(".",Jc.root,"{width:auto;box-sizing:border-box;}.",Jc.label,"{display:block;}.",Jc.icon,"{position:absolute;right:0;cursor:pointer;display:flex;align-items:center;background-color:rgb(var(--lsd-surface-primary));}.",Jc.icon,":focus{background:blue;background-color:pink;border:1px solid rgb(var(--lsd-border-primary));}.",Jc.noIcon,"{position:absolute;right:0;background-color:rgb(var(--lsd-surface-primary));padding:12px;}.",Jc.outlined,"{border:1px solid rgb(var(--lsd-border-primary));}.",Jc.underlined,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}.",Jc.inputContainer,"{position:relative;display:flex;align-items:center;justify-content:space-between;}.",Jc.disabled,"{opacity:0.34;}.",Jc.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;opacity:0.4;transition:opacity 0.2s ease-in-out;}.",Jc.input,"::-webkit-inner-spin-button,.",Jc.input,"::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none;}.",Jc.input,":hover{outline:none;}.",Jc.supportingText,"{position:absolute;}.",Jc.large,"{width:208px;.",Jc.label,"{margin:0 0 6px 18px;}.",Jc.inputContainer,"{height:40px;}.",Jc.input,"{padding:9px 0px 9px 17px;}.",Jc.icon,"{padding:12px 13px;}.",Jc.supportingText,"{margin:6px 18px 0 18px;}}.",Jc.medium,"{width:188px;.",Jc.label,"{margin:0 0 6px 14px;}.",Jc.inputContainer,"{height:32px;}.",Jc.input,"{padding:5px 11px 5px 13px;}.",Jc.icon,"{padding:8px 11px;}.",Jc.supportingText,"{margin:6px 14px 0 14px;}}.",Jc.small,"{width:164px;.",Jc.label,"{margin:0 0 6px 12px;}.",Jc.inputContainer,"{height:28px;}.",Jc.input,"{padding:5px 9px 5px 11px;font-size:12px;}.",Jc.icon,"{padding:6px 9px;}.",Jc.supportingText,"{margin:6px 12px 0 12px;}}.",Jc.input,":invalid,.",Jc.inputFilled,"{color:rgb(var(--lsd-border-primary));opacity:1;}.",Jc.error," .",Jc.input,"::-webkit-datetime-edit-year-field,.",Jc.error," .",Jc.input,"::-webkit-datetime-edit-month-field,.",Jc.error," .",Jc.input,"::-webkit-datetime-edit-day-field{text-decoration:line-through;}@supports not selector(::-webkit-datetime-edit-day-field){.",Jc.error," .",Jc.input,"{text-decoration:line-through;}}",""),td={root:"lsd-date-picker",calendar:"lsd-date-picker__calendar",large:"lsd-date-picker--large",medium:"lsd-date-picker--medium",small:"lsd-date-picker--small"},nd=a.css(".",td.root,"{width:fit-content;}.",td.calendar,"{border-top:none!important;}.",td.large,"{.",Jc.large,"{width:318px;}}.",td.medium,"{.",Jc.medium,"{width:290px;}}.",td.small,"{.",Jc.small,"{width:262px;}}",""),rd=a.css(".",Ru.root,"{}.",Ru.root,":not(.",Ru.disabled,"):not(\n .",Ru.error,"\n ){.",Ru.trigger,"{&:hover,&:focus{.",Ru.optionLabel,"{text-decoration:underline;}}}}.",Ru.label,"{display:block;}.",Ru.buttonContainer,"{display:flex;justify-content:space-between;}.",Ru.trigger,"{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border:none;cursor:pointer;background:none;&:focus{outline:none;}}.",Ru.optionLabel,"{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.",Ru.icons,"{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;}.",Ru.icon,"{display:flex;align-items:center;}.",Ru.menuIcon,"{}.",Ru.supportingText,"{margin:6px 14px;}.",Ru.error,"{.",Ru.optionLabel,"{text-decoration:line-through;}}.",Ru.disabled,"{opacity:0.34;cursor:initial;}.",Ru.large,"{width:208px;&.",Ru.error,"{width:230px;}.",Ru.label,"{margin:0 0 6px 18px;}.",Ru.buttonContainer,"{height:40px;}.",Ru.trigger,"{padding:10px 0px 10px 18px;}.",Ru.icons,"{padding:0px 14px;}}.",Ru.medium,"{width:188px;&.",Ru.error,"{width:210px;}.",Ru.label,"{margin:0 0 6px 14px;}.",Ru.buttonContainer,"{height:32px;}.",Ru.trigger,"{padding:6px 0px 6px 14px;}.",Ru.icons,"{padding:0px 12px;}}.",Ru.small,"{width:164px;&.",Ru.error,"{width:186px;}.",Ru.label,"{margin:0 0 6px 12px;}.",Ru.buttonContainer,"{height:28px;}.",Ru.trigger,"{padding:6px 0px 6px 12px;}.",Ru.icons,"{padding:0px 10px;}}.",Ru.outlined,"{.",Ru.buttonContainer,"{border:1px solid rgb(var(--lsd-border-primary));}}.",Ru.underlined,"{.",Ru.buttonContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}}",""),od=a.css(".",qs.root,"{width:100%;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;border:1px solid rgb(var(--lsd-border-primary));:not(.",qs.disabled,"){cursor:pointer;&:hover,&:focus{outline:none;.",qs.label,"{text-decoration:underline;}}}}.",qs.label,"{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.",qs.disabled,"{opacity:0.34;}.",qs.icon,"{margin-right:18px;flex-shrink:0;}.",qs.small,"{padding:5px 9px;height:28px;}.",qs.medium,"{padding:5px 11px;height:32px;}.",qs.large,"{padding:5px 13px;height:40px;}",""),ad=a.css(".",Fu.root,"{display:flex;flex-direction:row;align-items:center;justify-content:center;cursor:pointer;background:none;padding:0;border:1px solid rgb(var(--lsd-border-primary));}.",Fu.filled,"{background-color:rgb(var(--lsd-icon-primary));svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",Fu.outlined,"{}.",Fu.disabled,"{opacity:0.34;cursor:default;}.",Fu.large,"{width:40px;height:40px;}.",Fu.medium,"{width:32px;height:32px;}.",Fu.small,"{width:28px;height:28px;}",""),id=a.css(".",zu.root,"{display:flex;flex-direction:row;}.",zu.outlined," .",Fu.root,":not(:last-child){border-right:none;}",""),ld=a.css(".",xs.root,"{}.",xs.primary,"{&.",xs.filled,"{&,*{fill:rgb(var(--lsd-icon-primary));}}$.",xs.stroked,"{&,*{fill:rgb(var(--lsd-icon-primary));}}}.",xs.secondary,"{&.",xs.filled,"{&,*{fill:rgb(var(--lsd-icon-secondary));}}$.",xs.stroked,"{&,*{fill:rgb(var(--lsd-icon-secondary));}}}",""),sd=a.css(".",tu.root,"{position:absolute;top:0;left:0;opacity:0;visibility:hidden;margin:0;padding:0;box-sizing:border-box;background:rgb(var(--lsd-surface-primary));overflow:auto;border:1px solid rgb(var(--lsd-border-primary));border-top:0;}.",tu.root,">div{border:0;&:not(:last-child){border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",tu.open,"{opacity:1;visibility:visible;}.",tu.large,"{max-height:220px;}.",tu.medium,"{max-height:176px;}.",tu.small,"{max-height:154px;}",""),ud=a.css(".",Uu.root,"{color:rgb(var(--lsd-text-primary));white-space:pre-wrap;}.",Uu.indentedInline,"{border-left:1px solid rgb(var(--lsd-border-primary));padding:4px 8px 4px 28px;}.",Uu.parentheses,"{padding:0px;text-align:center;}.",Uu.parentheses,"::before{content:'***';}.",Uu.parentheses,"::after{content:'***';}",""),cd=a.css(".",qu.root,"{position:relative;display:flex;flex-direction:row;align-items:center;}.",qu.input,"{opacity:0;position:absolute;left:0;top:0;padding:0;margin:0;width:100%;height:100%;}.",qu.root,":not(.",qu.disabled,"){&:hover{text-decoration:underline;}.",qu.input,"{cursor:pointer;}}.",qu.disabled,"{opacity:0.34;}.",qu.label,"{margin-left:18px;}.",qu.large,"{.",qu.label,"{margin-left:18px;}}.",qu.medium,"{.",qu.label,"{margin-left:14px;}}.",qu.small,"{.",qu.label,"{margin-left:12px;}}",""),dd=a.css(".",Gu.root,"{display:flex;flex-direction:column;gap:6px;width:fit-content;}.",Gu.label,"{margin-bottom:6px;}",""),fd=a.css(".",Yu.root,"{background:rgb(var(--lsd-surface-primary));border:1px solid transparent;cursor:pointer;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;&:hover{text-decoration:underline;}&:not(",Yu.selected,"){border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Yu.text,"{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.",Yu.icon,"{margin-left:14px;}.",Yu.selected,"{border:1px solid rgb(var(--lsd-border-primary));&:hover{text-decoration:none;}}.",Yu.withIcon,"{justify-content:space-between;}.",Yu.disabled,"{cursor:default;opacity:0.34;&:hover{text-decoration:none;}}.",Yu.small,"{padding:6px 12px;.",Yu.icon,"{margin-left:10px;}}.",Yu.medium,"{padding:6px 14px;.",Yu.icon,"{margin-left:12px;}}.",Yu.large,"{padding:10px 18px;.",Yu.icon,"{margin-left:14px;}}",""),pd=a.css(".",nc.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",nc.root,">.",ec.root,"{margin-bottom:-1px;}.",nc.large,"{}.",nc.medium,"{}.",nc.small,"{}",""),hd=a.css(".",Ku.root,"{table{border-collapse:collapse;text-align:center;table-layout:fixed;width:100%;height:auto;}table tr:first-of-type td label:has(input[type='radio']){display:none;}}.",Ku.toolbar,"{box-sizing:border-box;padding:10px;border:1px solid rgb(var(--lsd-border-primary));border-bottom:none;display:flex;justify-content:space-between;}",""),md=a.css(".",ec.root,"{box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));}",""),gd=a.css(".",ic.root,"{border:1px solid rgb(var(--lsd-border-primary));}.",ic.root,":has(> label){width:40px;input{position:relative;width:14px;height:14px;margin:auto;}span{margin-left:14px!important;}}.",ic.large,"{padding:10px;}.",ic.medium,"{padding:6px 8px;}.",ic.small,"{padding:6px;}",""),vd=a.css(".",sc.root,"{align-items:center;}",""),bd=a.css(".",vc.root,"{display:flex;flex-direction:row;overflow:auto;width:fit-content;max-width:100%;border-bottom:1px solid rgb(var(--lsd-border-primary));&>*{flex-shrink:0;}.",Yu.root,"{border-bottom:none;}}.",vc.fullWidth,"{width:100%;justify-content:stretch;&>*{width:100%;flex:1 0;}}.",vc.root,"{-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none;}}.",vc.leftScrollControl,"{left:0;}.",vc.rightScrollControl,"{right:0;}.",vc.rightScrollControl,",.",vc.leftScrollControl,"{top:0;flex:0 1;position:sticky;}",""),yd=a.css(".",yc.root,"{width:fit-content;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid rgb(var(--lsd-icon-primary));&:hover,&:focus{text-decoration:underline;cursor:pointer;}}.",yc.large,"{padding:3px 11px;gap:12px;height:28px;}.",yc.small,"{padding:3px 7px;gap:8px;height:24px;}.",yc.filled,"{background-color:rgb(var(--lsd-icon-primary));.",yc.label,"{color:rgb(var(--lsd-text-secondary));}svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",yc.outlined,"{color:rgb(var(--lsd-text-primary));}.",yc.disabled,"{opacity:0.3;cursor:initial;pointer-events:none;}",""),wd=a.css(".",Ec.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",Ec.inputContainer,"{display:flex;align-items:center;justify-content:space-between;}.",Ec.disabled,"{opacity:0.34;}.",Ec.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;}.",Ec.input,":hover{outline:none;}.",Ec.input,"::placeholder{color:rgb(var(--lsd-text-primary));opacity:0.3;}.",Ec.error," .",Ec.input,"{text-decoration:line-through;}.",Ec.supportingText,"{width:fit-content;}.",Ec.large,"{width:208px;&>*{padding:10px 14px 10px 18px;}}.",Ec.medium,"{width:188px;&>*{padding:6px 12px 6px 14px;}}.",Ec.small,"{width:164px;&>*{padding:6px 10px 6px 12px;}}.",Ec.label,"{padding-top:0;padding-bottom:6px;}.",Ec.supportingText,"{padding-bottom:0;padding-top:6px;}.",Ec.outlined," .",Ec.inputContainer,"{border:1px solid rgb(var(--lsd-border-primary));}.",Ec.underlined," .",Ec.inputContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}.",Ec.clearButton,"{padding:0;width:auto;height:auto;margin:0;border:0;}.",Ec.icon,"{}",""),xd=a.css("body *{font-family:var(--lsd-typography-generic-font-family);}.",gs.root,"{color:rgb(var(--lsd-text-primary));}.",gs.sansSerif,"{&,*{font-family:sans-serif;}}.",gs.serif,"{&,*{font-family:serif;}}.",gs.monospace,"{&,*{font-family:monospace;}}",ps.map((e=>a.css((e=>[...hs[e]??[],`.${gs[e]}`].join(", "))(e),"{color:rgb(var(--lsd-text-primary));font-weight:var(--lsd-",e,"-fontWeight);font-size:var(--lsd-",e,"-fontSize);line-height:var(--lsd-",e,"-lineHeight);}","")))," .",gs.primary,"{color:rgb(var(--lsd-text-primary));}.",gs.secondary,"{color:rgb(var(--lsd-text-secondary));}input{color:rgb(var(--lsd-text-primary));font-size:var(--lsd-body1-fontSize);font-weight:var(--lsd-body1-fontWeight);}h1,h2,h3,h4,h5,h6,p,span{margin:0;}",""),_d={root:"lsd-number-input",label:"lsd-number-input__label",mainContainer:"lsd-number-input__main-container",inputContainer:"lsd-number-input__input-container",input:"lsd-number-input__input",errorIcon:"lsd-number-input__error-icon",plusMinusIcons:"lsd-number-input__plus-minus-icons",supportingText:"lsd-number-input__supporting-text",disabled:"lsd-number-input--disabled",error:"lsd-number-input--error",large:"lsd-number-input--large",medium:"lsd-number-input--medium",small:"lsd-number-input--small"},kd={root:"lsd-modal",small:"lsd-modal--small",medium:"lsd-modal--medium",large:"lsd-modal--large",xsmall:"lsd-modal--extra-small",modalContainer:"lsd-modal__container",header:"lsd-modal__header",title:"lsd-modal__title",subtitle:"lsd-modal__subtitle",titleAndSubtitleContainer:"lsd-modal__title-and-subtitle-container",closeIcon:"lsd-modal__close-icon"},Ed={root:"lsd-modal-footer"},Sd={root:"lsd-modal-body"},Cd={root:"lsd-toast",inlineContainer:"lsd-toast__inline-container",columnContainer:"lsd-toast__column-container",large:"lsd-toast--large",medium:"lsd-toast--medium",small:"lsd-toast--small",icon:"lsd-toast__icon",textContainer:"lsd-toast__text-container",columnIconContainer:"lsd-toast__column-icon-container",inlineIconContainer:"lsd-toast__inline-icon-container",title:"lsd-toast__title",information:"lsd-toast__information",inlineButtonContainer:"lsd-toast__inline-button-container",columnButtonContainer:"lsd-toast__column-button-container",buttonContainer:"lsd-toast__button-container",closeButton:"lsd-toast__close-button"},Td={toastContainer:"lsd-toast-provider__toast-container",topLeft:"lsd-toast-provider__toast--top-left",topCenter:"lsd-toast-provider__toast--top-center",topRight:"lsd-toast-provider__toast--top-right",bottomLeft:"lsd-toast-provider__toast--bottom-left",bottomCenter:"lsd-toast-provider__toast--bottom-center",bottomRight:"lsd-toast-provider__toast--bottom-right"},Od={root:"lsd-button-group",outlined:"lsd-button-group--outlined",filled:"lsd-button-group--filled",disabled:"lsd-button-group--disabled",small:"lsd-button-group--small",medium:"lsd-button-group--medium",large:"lsd-button-group--large"},Dd={root:"lsd-date-range-picker",calendar:"lsd-date-picker__calendar",withCalendar:"lsd-date-range-picker--with-calendar",openCalendar:"lsd-date-range-picker--calendar-open",disabled:"lsd-date-range-picker--disabled",inputContainer:"lsd-date-range-picker__input-container",icon:"lsd-date-range-picker__icon",large:"lsd-date-range-picker--large",medium:"lsd-date-range-picker--medium",small:"lsd-date-range-picker--small",label:"lsd-date-range-picker__label",supportingText:"lsd-date-range-picker__supporting-text",outlined:"lsd-date-range-picker--outlined",separator:"lsd-date-range-picker__separator"},Pd={root:"lsd-tooltip-base",arrowTip:"lsd-tooltip-base__arrow-tip",content:"lsd-tooltip-base__content"},Nd=[Hc,ad,id,xd,ld,fd,bd,sd,rd,od,$c,Uc,Wc,Zc,Gc,yd,wd,Qc,Bc,ud,Xc,Kc,Yc,zc,cd,dd,pd,md,hd,gd,vd,a.css(".",_d.root,"{width:auto;box-sizing:border-box;}.",_d.mainContainer,":hover{text-decoration:underline;}.",_d.error,"{.",_d.mainContainer,"{text-decoration:line-through;}}.",_d.label,"{display:block;}.",_d.plusMinusIcons,"{display:flex;flex-shrink:0;}.",_d.inputContainer,"{box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));border-left:0px;border-right:0px;}.",_d.errorIcon,"{cursor:pointer;display:flex;align-items:center;padding:10px 8px;}.",_d.inputContainer,"{display:flex;align-items:center;justify-content:space-between;}.",_d.disabled,"{opacity:0.34;}.",_d.mainContainer,"{display:flex;align-items:center;}.",_d.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;text-align:center;padding:0 4px;}.",_d.input,"::-webkit-inner-spin-button{display:none;-webkit-appearance:none;}.",_d.input,":hover{outline:none;}.",_d.supportingText,"{position:absolute;}.",_d.large,"{.",_d.label,"{margin:0 0 6px 18px;}.",_d.inputContainer,"{height:40px;}.",_d.input,"{width:62px;}.",_d.plusMinusIcons,"{height:40px;width:40px;}.",_d.supportingText,"{margin:6px 18px 0 18px;}}.",_d.medium,"{.",_d.label,"{margin:0 0 6px 14px;}.",_d.inputContainer,"{height:32px;}.",_d.input,"{width:58px;}.",_d.plusMinusIcons,"{height:32px;width:32px;}.",_d.supportingText,"{margin:6px 14px 0 14px;}}.",_d.small,"{.",_d.label,"{margin:0 0 6px 12px;}.",_d.inputContainer,"{height:28px;}.",_d.input,"{width:50px;}.",_d.plusMinusIcons,"{height:28px;width:28px;}.",_d.supportingText,"{margin:6px 12px 0 12px;}}",""),a.css(".",kd.root,"{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0, 0, 0, 0.5);display:flex;justify-content:center;align-items:center;z-index:9999;}.",kd.modalContainer,"{position:relative;background:rgb(var(--lsd-surface-primary));padding:20px;max-width:90%;box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));}.",kd.header,"{display:flex;justify-content:space-between;align-items:center;}.",kd.title,"{}.",kd.subtitle,"{}.",kd.closeIcon,"{position:absolute;top:8px;right:8px;cursor:pointer;}.",kd.titleAndSubtitleContainer,"{display:flex;flex-direction:column;}.",kd.large,"{.",kd.modalContainer,"{min-width:960px;}}.",kd.medium,"{.",kd.modalContainer,"{min-width:768px;}}.",kd.small,"{.",kd.modalContainer,"{min-width:614px;}}.",kd.xsmall,"{.",kd.modalContainer,"{min-width:490px;}}",""),a.css(".",Ed.root,"{display:flex;}",""),a.css(".",Sd.root,"{margin:18px 0;}",""),nd,ed,qc,a.css(".",Cd.root,"{box-sizing:border-box;display:inline-flex;align-items:center;background:rgb(var(--lsd-surface-primary));border:1px solid rgb(var(--lsd-border-primary));padding:8px;height:fit-content;}.",Cd.inlineButtonContainer,"{flex-shrink:0;}.",Cd.columnButtonContainer,"{margin-top:18px;margin-bottom:6px;}.",Cd.inlineContainer,"{display:flex;align-items:center;justify-content:space-between;flex-grow:1;}.",Cd.columnContainer,"{display:flex;flex-direction:column;justify-content:space-between;}.",Cd.textContainer,"{display:flex;flex-direction:column;color:rgb(var(--lsd-text-secondary));padding-left:12px;}.",Cd.title,"{position:relative;}.",Cd.information,"{margin-top:4px;}.",Cd.buttonContainer,"{min-height:28px;min-width:60px;width:fit-content;padding:0px 12px;}.",Cd.closeButton,"{margin-bottom:auto;flex-shrink:0;height:28px;width:28px;margin-left:auto;}.",Cd.columnIconContainer,"{display:flex;justify-content:center;margin-bottom:auto;position:relative;top:4px;padding-left:4px;}.",Cd.inlineIconContainer,"{display:flex;align-items:center;justify-content:center;padding-left:4px;}.",Cd.icon,"{position:relative;}.",Cd.large,"{width:364px;}.",Cd.medium,"{width:336px;}.",Cd.small,"{width:296px;.",Cd.icon,"{top:0px;}}",""),a.css(".",Td.toastContainer,"{position:fixed;transition:all 230ms cubic-bezier(0.21, 1.02, 0.73, 1);z-index:9999;}.",Td.topLeft,",.",Td.topCenter,",.",Td.topRight,"{top:0;}.",Td.bottomLeft,",.",Td.bottomCenter,",.",Td.bottomRight,"{bottom:0;}.",Td.topCenter,",.",Td.bottomCenter,"{left:50%;}.",Td.topRight,",.",Td.bottomRight,"{right:0;}",""),a.css(".",Od.root,"{display:flex;flex-direction:row;>*:not(:last-child){&.",gu.outlined,",.",gu.outlined,"{border-right:none;}}}",""),a.css(".",Dd.root,"{box-sizing:border-box;.",Jc.outlined,"{border:none;}.",Jc.icon,"{padding:8px;}}.",Dd.label,"{display:block;}.",Dd.inputContainer,"{box-sizing:border-box;display:flex;align-items:center;border:1px solid transparent;}.",Dd.calendar,"{border-top:none!important;.",Pd.arrowTip,"{transition:left 0.2s ease-in-out;}}.",Dd.openCalendar,"{.",Dd.inputContainer,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Dd.icon,"{cursor:pointer;display:flex;align-items:center;justify-content:center;flex-grow:1;padding:0 10px;}.",Dd.disabled,"{opacity:0.3;}.",Dd.supportingText,"{position:absolute;}.",Dd.large,"{width:318px;.",Jc.large,"{width:156px;}.",Jc.input,"{padding-right:0;}.",Jc.icon,"{padding:11px 12px;}.",Dd.label,"{margin:0 0 6px 18px;}.",Dd.inputContainer,"{height:40px;}.",Dd.supportingText,"{margin:6px 18px 0 18px;}}.",Dd.medium,"{width:290px;.",Jc.medium,"{width:142px;}.",Jc.input,"{padding-right:0;}.",Jc.icon,"{padding:7px 8px;}.",Dd.label,"{margin:0 0 6px 14px;}.",Dd.inputContainer,"{height:32px;}.",Dd.supportingText,"{margin:6px 14px 0 14px;}}.",Dd.small,"{width:262px;.",Jc.small,"{width:128px;}.",Jc.input,"{padding-right:0;}.",Jc.icon,"{padding:5px 7px;}.",Dd.label,"{margin:0 0 6px 12px;}.",Dd.inputContainer,"{height:28px;}.",Dd.supportingText,"{margin:6px 12px 0 12px;}}.",Dd.separator,"{margin-left:3px;width:1px;height:100%;}.",Dd.separator,"{border-left:1px solid transparent;}.",Dd.outlined,"{border:1px solid rgb(var(--lsd-border-primary));.",Dd.separator,"{border-left:1px solid rgb(var(--lsd-border-primary));}}",""),a.css(".",Pd.root,"{border:1px solid rgb(var(--lsd-border-primary));position:relative;}.",Pd.arrowTip,"{border:1px solid rgb(var(--lsd-border-primary));position:absolute;background:rgb(var(--lsd-surface-primary));}.",Pd.content,"{background:rgb(var(--lsd-surface-primary));width:100%;height:100%;position:relative;z-index:1;}","")],Id=({theme:e=Fc.light})=>{const t=r.useMemo((()=>Nd.map((t=>"function"==typeof t?t(e):t)).map((e=>We(a.Global,{styles:e},e.name)))),[e]);return We(qe,{children:t})},Ad=e=>{try{return[e(),void 0]}catch(t){return[void 0,t]}},Ld=({children:e})=>{const[t,n]=r.useState(!1);return r.useEffect((()=>{if("undefined"==typeof window)return;const e=document.querySelector("body");let t=e.querySelector("#lsd-presentation");return t||(t=document.createElement("div"),t.id="lsd-presentation"),e.appendChild(t),n(!0),()=>{Ad((()=>e.removeChild(t)))}}),[]),We(ou.Provider,{value:{initialized:t},children:e})},Rd=({children:e})=>{const t=r.useRef(),n=r.useRef({}),[o,a]=r.useState({}),[i,l]=r.useState(!1),s=e=>{const t=n.current[e];t&&t.current&&Ad((()=>{a((n=>({...n,[e]:t.current.getBoundingClientRect()})))}))};r.useEffect((()=>{if("undefined"!=typeof window&&"undefined"!=typeof ResizeObserver)return t.current=new ResizeObserver((e=>{Ad((()=>{const t=Object.entries(n.current);e.map((e=>t.find((([t,n])=>n.current===e.target)))).forEach((e=>{if(e&&2===e.length){const[t]=e;s(t)}}))}))})),l(!0),()=>{var e;null==(e=t.current)||e.disconnect()}}),[]);return We(cc.Provider,{value:{observe:(e,r)=>{t.current&&(n.current[e]=r,s(e),r.current instanceof Element&&t.current.observe(r.current))},unobserve:e=>{if(!t.current)return;const r=n.current[e];r&&(r.current instanceof Element&&t.current.unobserve(r.current),delete n.current[e],a((t=>Vl(t,e))))},rect:o,ready:i},children:e})},jd=r.createContext({theme:null}),Md=({label:e,size:t="large",error:n=!1,errorIcon:o=!1,supportingText:a,value:i,placeholder:l,defaultValue:s,disabled:u,onChange:c,icon:d,inputProps:f={},id:p="number-input",min:h=Number.MIN_SAFE_INTEGER,max:m=Number.MAX_SAFE_INTEGER,step:g=1,...v})=>{const b=r.useRef(null),y=bs(v),w=Ye({defaultValue:s,value:i,onChange:c,ref:b});return Ge("div",{"aria-disabled":u?"true":"false",...ws(v),className:Qe(v.className,y.className,_d.root,_d[t],u&&_d.disabled,n&&_d.error),children:[e&&We(Vs,{htmlFor:p,className:_d.label,variant:"label2",component:"label",children:e}),Ge("div",{className:_d.mainContainer,children:[We(Bu,{onClick:()=>{if(u)return;const e=Math.max(h,Number(w.value||"0")-g);w.setValue(e.toString())},className:_d.plusMinusIcons,children:We(Hs,{color:"primary"})}),Ge("div",{className:_d.inputContainer,children:[We("input",{id:p,type:"number",placeholder:l,ref:b,className:Qe(f.className,_d.input),value:w.value||"",onChange:w.onChange,min:h,max:m,step:g,disabled:u,...f}),n&&!!o&&We("span",{className:_d.errorIcon,children:We(Ns,{color:"primary"})})]}),We(Bu,{onClick:()=>{if(u)return;const e=Math.min(m,Number(w.value||"0")+g);w.setValue(e.toString())},className:_d.plusMinusIcons,children:We(ks,{color:"primary"})})]}),a&&We("div",{className:Qe(_d.supportingText),children:We(Vs,{variant:"label2",component:"p",children:a})})]})};Md.classes=_d;const Fd=({isOpen:e,size:t="large",title:n,subtitle:r,onClose:o,children:a,...i})=>{const l=bs(i);return e?We("div",{...ws(i),className:Qe(l.className,kd.root,kd[t]),onClick:e=>{e.target===e.currentTarget&&o&&o()},children:Ge("div",{className:Qe(kd.modalContainer),children:[Ge("div",{className:kd.header,children:[Ge("div",{className:kd.titleAndSubtitleContainer,children:[!!n&&We(Vs,{className:kd.title,component:"div",variant:"small"===t?"h6":"h5",children:n}),!!r&&We(Vs,{className:kd.subtitle,variant:"small"===t?"label2":"label1",component:"div",children:r})]}),We(Bu,{onClick:o,className:kd.closeIcon,size:"medium",children:We(Ps,{color:"primary"})})]}),a]})}):null};Fd.classes=kd;const Bd=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,Sd.root),children:e})};Bd.classes=Sd;const zd=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,Ed.root),children:e})};zd.classes=Ed;const $d=({label:e,size:t="large",error:n=!1,errorIcon:o=!1,clearButton:a,supportingText:i,children:l,value:s,placeholder:u,defaultValue:c,disabled:d,onChange:f,icon:p,onIconClick:h,inputProps:m={},calendarIconRef:g,variant:v="underlined",...b})=>{const y=bs(b),w=r.useRef(null),x=Ye({defaultValue:c,value:s,onChange:f,ref:w}),_=(null==m?void 0:m.id)??(b.id||"date-field")+"-input";return Ge("div",{"aria-disabled":d?"true":"false",...b,className:Qe({...ws(b)},b.className,y.className,Jc.root,Jc[t],d&&Jc.disabled,n&&Jc.error),children:[e&&We(Vs,{htmlFor:_,className:Jc.label,variant:"label2",component:"label",children:e}),Ge("div",{className:Qe(Jc.inputContainer,"outlined"===v?Jc.outlined:Jc.underlined),children:[We("input",{id:_,type:"date",placeholder:u,...m,ref:w,value:x.value||"",onChange:x.onChange,className:Qe(m.className,Jc.input,x.filled&&Jc.inputFilled),max:m.max||"9999-12-31"}),p?We("span",{className:Jc.icon,onClick:()=>!d&&h&&h(),ref:g,children:p}):n&&o?We("span",{className:Jc.icon,children:We(Ns,{color:"primary"})}):a&&x.filled?We("span",{onClick:()=>!d&&x.setValue(""),className:Jc.icon,children:We(Ps,{color:"primary"})}):We("span",{className:Jc.noIcon})]}),i&&We("div",{className:Qe(Jc.supportingText),children:We(Vs,{variant:"label2",component:"p",children:i})}),l]})};$d.classes=Jc;const Ud=(e,t,n)=>{if(!e)return{isValid:!1,date:null};const r=new Date(e+"T00:00:00");return{isValid:!Number.isNaN(+r)&&r>=t&&r<=n,date:r}},Hd=e=>new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().split("T")[0],Vd=e=>e.setHours(0,0,0,0),qd=(e,t,n)=>!!(e&&t&&n)&&(Vd(t)<=Vd(e)&&Vd(n)>=Vd(e)),Wd=(e,t)=>{if(!e||!t)return!1;return Hd(e)===Hd(t)},Gd=e=>{const t=(e=>{const t=e.find((e=>"number"!=typeof e));return t?new Date(t.date):new Date})(e),n=new Date(t);n.setDate(n.getDate()-t.getDay());const r=[];for(let o=0;o<42;o++){const e=new Date(n);e.setDate(e.getDate()+o),r.push(e)}return r},Zd=(e,t)=>e&&e===t?null:t;function Qd(e,t){if(!e||!t)return!0;let n=new Date(Hd(new Date(e)));return new Date(Hd(new Date(t)))>n}const Yd=(e,t)=>"large"===t?"startDate"===e?130:291:"medium"===t?"startDate"===e?120:267:"small"===t?"startDate"===e?107:239:0;var Xd={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Kd(e){return function(t){var n=t||{},r=n.width?String(n.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var Jd={date:Kd({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Kd({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Kd({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},ef={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function tf(e){return function(t,n){var r,o=n||{};if("formatting"===(o.context?String(o.context):"standalone")&&e.formattingValues){var a=e.defaultFormattingWidth||e.defaultWidth,i=o.width?String(o.width):a;r=e.formattingValues[i]||e.formattingValues[a]}else{var l=e.defaultWidth,s=o.width?String(o.width):e.defaultWidth;r=e.values[s]||e.values[l]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function nf(e){return function(t,n){var r=String(t),o=n||{},a=o.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],l=r.match(i);if(!l)return null;var s,u=l[0],c=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth];return s="[object Array]"===Object.prototype.toString.call(c)?function(e,t){for(var n=0;n0?"in "+r:r+" ago":r},formatLong:Jd,formatRelative:function(e,t,n,r){return ef[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:tf({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:tf({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:tf({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:tf({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:tf({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(rf={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e,t){var n=String(e),r=t||{},o=n.match(rf.matchPattern);if(!o)return null;var a=o[0],i=n.match(rf.parsePattern);if(!i)return null;var l=rf.valueCallback?rf.valueCallback(i[0]):i[0];return{value:l=r.valueCallback?r.valueCallback(l):l,rest:n.slice(a.length)}}),era:nf({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:nf({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:nf({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:nf({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:nf({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function af(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function lf(e,t){if(t.length1?"s":"")+" required, but only "+t.length+" present")}function sf(e){lf(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function uf(e,t){return lf(2,arguments),function(e,t){lf(2,arguments);var n=sf(e).getTime(),r=af(t);return new Date(n+r)}(e,-af(t))}function cf(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}}function df(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}}var ff={p:df,P:function(e,t){var n,r=e.match(/(P+)(p+)?/),o=r[1],a=r[2];if(!a)return cf(e,t);switch(o){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",cf(o,t)).replace("{{time}}",df(a,t))}};function pf(e){return e.getTime()%6e4}var hf=["D","DD"],mf=["YY","YYYY"];function gf(e){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr");if("YY"===e)throw new RangeError("Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr");if("D"===e)throw new RangeError("Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr");if("DD"===e)throw new RangeError("Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr")}function vf(e,t){lf(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.weekStartsOn,a=null==o?0:af(o),i=null==n.weekStartsOn?a:af(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=sf(e),s=l.getUTCDay(),u=(s=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var u=new Date(0);u.setUTCFullYear(r+1,0,s),u.setUTCHours(0,0,0,0);var c=vf(u,t),d=new Date(0);d.setUTCFullYear(r,0,s),d.setUTCHours(0,0,0,0);var f=vf(d,t);return n.getTime()>=c.getTime()?r+1:n.getTime()>=f.getTime()?r:r-1}function yf(e){lf(1,arguments);var t=sf(e),n=t.getUTCDay(),r=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t}function wf(e){lf(1,arguments);var t=sf(e),n=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var o=yf(r),a=new Date(0);a.setUTCFullYear(n,0,4),a.setUTCHours(0,0,0,0);var i=yf(a);return t.getTime()>=o.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function xf(e){lf(1,arguments);var t=sf(e),n=yf(t).getTime()-function(e){lf(1,arguments);var t=wf(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),yf(n)}(t).getTime();return Math.round(n/6048e5)+1}function _f(e,t){lf(1,arguments);var n=sf(e),r=vf(n,t).getTime()-function(e,t){lf(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.firstWeekContainsDate,a=null==o?1:af(o),i=null==n.firstWeekContainsDate?a:af(n.firstWeekContainsDate),l=bf(e,t),s=new Date(0);return s.setUTCFullYear(l,0,i),s.setUTCHours(0,0,0,0),vf(s,t)}(n,t).getTime();return Math.round(r/6048e5)+1}function kf(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),o=r>0?r:1-r;return n.ordinalNumber(o,{unit:"year"})}return function(e,t){var n=e.getUTCFullYear(),r=n>0?n:1-n;return kf("yy"===t?r%100:r,t.length)}(e,t)},Y:function(e,t,n,r){var o=bf(e,r),a=o>0?o:1-o;return"YY"===t?kf(a%100,2):"Yo"===t?n.ordinalNumber(a,{unit:"year"}):kf(a,t.length)},R:function(e,t){return kf(wf(e),t.length)},u:function(e,t){return kf(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return kf(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return kf(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):kf(n+1,2)}(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return kf(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var o=_f(e,r);return"wo"===t?n.ordinalNumber(o,{unit:"week"}):kf(o,t.length)},I:function(e,t,n){var r=xf(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):kf(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):function(e,t){return kf(e.getUTCDate(),t.length)}(e,t)},D:function(e,t,n){var r=function(e){lf(1,arguments);var t=sf(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=n-t.getTime();return Math.floor(r/864e5)+1}(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):kf(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var o=e.getUTCDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(a);case"ee":return kf(a,2);case"eo":return n.ordinalNumber(a,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var o=e.getUTCDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(a);case"cc":return kf(a,t.length);case"co":return n.ordinalNumber(a,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),o=0===r?7:r;switch(t){case"i":return String(o);case"ii":return kf(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,o=e.getUTCHours();switch(r=12===o?"noon":0===o?"midnight":o/12>=1?"pm":"am",t){case"b":case"bb":case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,o=e.getUTCHours();switch(r=o>=17?"evening":o>=12?"afternoon":o>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return function(e,t){return kf(e.getUTCHours()%12||12,t.length)}(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):function(e,t){return kf(e.getUTCHours(),t.length)}(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):kf(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):kf(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):function(e,t){return kf(e.getUTCMinutes(),t.length)}(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):function(e,t){return kf(e.getUTCSeconds(),t.length)}(e,t)},S:function(e,t){return function(e,t){var n=t.length,r=e.getUTCMilliseconds();return kf(Math.floor(r*Math.pow(10,n-3)),t.length)}(e,t)},X:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();if(0===o)return"Z";switch(t){case"X":return Cf(o);case"XXXX":case"XX":return Tf(o);default:return Tf(o,":")}},x:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return Cf(o);case"xxxx":case"xx":return Tf(o);default:return Tf(o,":")}},O:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Sf(o,":");default:return"GMT"+Tf(o,":")}},z:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Sf(o,":");default:return"GMT"+Tf(o,":")}},t:function(e,t,n,r){var o=r._originalDate||e;return kf(Math.floor(o.getTime()/1e3),t.length)},T:function(e,t,n,r){return kf((r._originalDate||e).getTime(),t.length)}};function Sf(e,t){var n=e>0?"-":"+",r=Math.abs(e),o=Math.floor(r/60),a=r%60;if(0===a)return n+String(o);var i=t||"";return n+String(o)+i+kf(a,2)}function Cf(e,t){return e%60==0?(e>0?"-":"+")+kf(Math.abs(e)/60,2):Tf(e,t)}function Tf(e,t){var n=t||"",r=e>0?"-":"+",o=Math.abs(e);return r+kf(Math.floor(o/60),2)+n+kf(o%60,2)}var Of=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Df=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Pf=/^'([^]*?)'?$/,Nf=/''/g,If=/[a-zA-Z]/;function Af(e,t,n){lf(2,arguments);var r=String(t),o=n||{},a=o.locale||of,i=a.options&&a.options.firstWeekContainsDate,l=null==i?1:af(i),s=null==o.firstWeekContainsDate?l:af(o.firstWeekContainsDate);if(!(s>=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var u=a.options&&a.options.weekStartsOn,c=null==u?0:af(u),d=null==o.weekStartsOn?c:af(o.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!a.localize)throw new RangeError("locale must contain localize property");if(!a.formatLong)throw new RangeError("locale must contain formatLong property");var f=sf(e);if(!function(e){lf(1,arguments);var t=sf(e);return!isNaN(t)}(f))throw new RangeError("Invalid time value");var p=function(e){var t=new Date(e.getTime()),n=Math.ceil(t.getTimezoneOffset());return t.setSeconds(0,0),6e4*n+(n>0?(6e4+pf(t))%6e4:pf(t))}(f),h=uf(f,p),m={firstWeekContainsDate:s,weekStartsOn:d,locale:a,_originalDate:f},g=r.match(Df).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,ff[t])(e,a.formatLong,m):e})).join("").match(Of).map((function(e){if("''"===e)return"'";var t=e[0];if("'"===t)return function(e){return e.match(Pf)[1].replace(Nf,"'")}(e);var n=Ef[t];if(n)return!o.useAdditionalWeekYearTokens&&function(e){return-1!==mf.indexOf(e)}(e)&&gf(e),!o.useAdditionalDayOfYearTokens&&function(e){return-1!==hf.indexOf(e)}(e)&&gf(e),n(h,e,a.localize,m);if(t.match(If))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return e})).join("");return g}function Lf(e,t){lf(2,arguments);var n=sf(e),r=af(t);return isNaN(r)?new Date(NaN):r?(n.setDate(n.getDate()+r),n):n}function Rf(e,t){lf(1,arguments);var n=e||{},r=sf(n.start),o=sf(n.end).getTime();if(!(r.getTime()<=o))throw new RangeError("Invalid interval");var a=[],i=r;i.setHours(0,0,0,0);var l=t&&"step"in t?Number(t.step):1;if(l<1||isNaN(l))throw new RangeError("`options.step` must be a number greater than 1");for(;i.getTime()<=o;)a.push(sf(i)),i.setDate(i.getDate()+l),i.setHours(0,0,0,0);return a}function jf(e,t){lf(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.weekStartsOn,a=null==o?0:af(o),i=null==n.weekStartsOn?a:af(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=sf(e),s=l.getDay(),u=6+(s=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=sf(e),s=l.getDay(),u=(s=o?u-o:6-o+u+1).keys()).fill(0),Rf({start:s,end:c}).map((function(e){return{date:e,dayLabel:i(e)}})))}({year:t,month:n,firstDayOfWeek:a,dayLabelFormat:l})}),[t,n,a,l]),weekdayLabels:r.useMemo((function(){return function(e){var t=void 0===e?{}:e,n=t.firstDayOfWeek,r=void 0===n?1:n,o=t.weekdayLabelFormat,a=void 0===o?function(e){return Af(e,"iiiiii")}:o,i=new Date;return Rf({start:Lf(Ff(i),r),end:Lf(jf(i),r)}).reduce((function(e,t){return e.push(a(t)),e}),[])}({firstDayOfWeek:a,weekdayLabelFormat:u})}),[a,u]),monthLabel:d(new Date(t,n))}}function Hf(e,t){lf(2,arguments);var n=sf(e),r=sf(t);return n.getTime()r.getTime()}function qf(e,t){lf(2,arguments);var n=t||{},r=sf(e).getTime(),o=sf(n.start).getTime(),a=sf(n.end).getTime();if(!(o<=a))throw new RangeError("Invalid interval");return r>=o&&r<=a}function Wf(e){lf(1,arguments);var t=sf(e);return t.setHours(0,0,0,0),t}function Gf(e,t){lf(2,arguments);var n=Wf(e),r=Wf(t);return n.getTime()===r.getTime()}function Zf(e,t){lf(2,arguments);var n=sf(e),r=af(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var o=n.getDate(),a=new Date(n.getTime());return a.setMonth(n.getMonth()+r+1,0),o>=a.getDate()?a:(n.setFullYear(a.getFullYear(),a.getMonth(),o),n)}var Qf=function(e,t){return void 0===e&&(e=[]),e.some((function(e){return Gf(t,e)}))};function Yf(e){var t=Mf(e);return{year:function(e){return lf(1,arguments),sf(e).getFullYear()}(t),month:function(e){return lf(1,arguments),sf(e).getMonth()}(t),date:t}}function Xf(e,t){var n=Yf(t||Wf(Date.now())),r=n.date,o=[n];return e>1&&(o=Array.from(Array(e-1).keys()).reduce((function(e){return r=Zf(e[e.length-1].date,1),e.concat([Yf(r)])}),o)),o}function Kf(e,t,n,r){var o=e[r?n>0?0:e.length-r:n>0?e.length-1:0].date;return Array.from(Array(t).keys()).reduce((function(e){return o=0===e.length?Zf(o,n):Zf(o,n>=0?1:-1),n>0?e.concat([Yf(o)]):[Yf(o)].concat(e)}),[])}function Jf(e){var t=e.startDate,n=e.endDate,r=e.isDateBlocked,o=e.minBookingDays,a=e.exactMinBookingDays,i=e.minBookingDate,l=e.maxBookingDate,s=!i||!Hf(t,Lf(i,-1)),u=!l||!Vf(Lf(t,o-1),l);return!((!t||1!==o||n||r(t))&&(t&&o>1&&!n&&!a||t&&o>0&&a&&s&&u||t&&o>0&&a&&!i&&!l?Rf({start:t,end:Lf(t,o-1)}).some((function(e){return r(e)})):!t||!n||a||Hf(n,Lf(t,o-1))||Rf({start:t,end:n}).some((function(e){return r(e)}))))}function ep(e){var t=e.startDate,n=e.endDate,o=e.focusedInput,a=e.minBookingDate,i=e.maxBookingDate,l=e.onDatesChange,s=e.initialVisibleMonth,u=e.exactMinBookingDays,c=void 0!==u&&u,d=e.minBookingDays,f=void 0===d?1:d,p=e.numberOfMonths,h=void 0===p?2:p,m=e.firstDayOfWeek,g=void 0===m?1:m,v=e.isDateBlocked,b=void 0===v?function(){return!1}:v,y=e.unavailableDates,w=void 0===y?[]:y,x=e.changeActiveMonthOnSelect,_=void 0===x||x,k=r.useState((function(){return Xf(h,t||s||null)})),E=k[0],S=k[1],C=r.useState(null),T=C[0],O=C[1],D=r.useState(t),P=D[0],N=D[1];r.useEffect((function(){return"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("keydown",R),function(){window.removeEventListener&&window.removeEventListener("keydown",R)}}));var I=function(e){return Qf(w,e)||b(e)},A=function(e){N(e),(!P||P&&!Gf(e,P))&&S(Xf(h,e))},L=function(e){return function(e){var t=e.date,n=e.minBookingDate,r=e.maxBookingDate,o=e.isDateBlockedFn,a=e.startDate,i=e.endDate,l=e.minBookingDays,s=void 0===l?1:l,u=e.unavailableDates,c=void 0===u?[]:u,d=n?new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0):n,f=r?new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0):r;return!!(Qf(c,t)||d&&Hf(t,d)||f&&Vf(t,f)||a&&!i&&s>1&&qf(t,{start:a,end:Lf(a,s-2)})||o&&o(t))}({date:e,minBookingDate:a,maxBookingDate:i,startDate:t,endDate:n,minBookingDays:f,isDateBlockedFn:I})};function R(e){if(("ArrowRight"===e.key||"ArrowLeft"===e.key||"ArrowDown"===e.key||"ArrowUp"===e.key)&&!P){var t=E[0];A(t.date),S(Xf(h,t.date))}}var j=r.useCallback((function(){S(Kf(E,h,-1)),N(null)}),[E,h]),M=r.useCallback((function(){S(Kf(E,h,-1,1)),N(null)}),[E,h]),F=r.useCallback((function(){S(Kf(E,h,1)),N(null)}),[E,h]),B=r.useCallback((function(){S(Kf(E,h,1,1)),N(null)}),[E,h]),z=r.useCallback((function(e){S(Xf(h,e)),N(null)}),[h]),$=r.useCallback((function(e){void 0===e&&(e=1),S(Kf(E,h,-(12*e-h+1))),N(null)}),[E,h]),U=r.useCallback((function(e){void 0===e&&(e=1),S(Kf(E,h,12*e-h+1)),N(null)}),[E,h]);return{firstDayOfWeek:g,activeMonths:E,isDateSelected:function(e){return function(e,t,n){return!(!t||!n)&&qf(e,{start:t,end:n})}(e,t,n)},isDateHovered:function(e){return o=(r={date:e,hoveredDate:T,startDate:t,endDate:n,minBookingDays:f,exactMinBookingDays:c,isDateBlocked:I}).date,a=r.startDate,i=r.endDate,l=r.isDateBlocked,u=r.minBookingDays,(s=r.hoveredDate)&&u>1&&r.exactMinBookingDays&&qf(o,{start:s,end:Lf(s,u-1)})?!Rf({start:s,end:Lf(s,u-1)}).some((function(e){return l(e)})):a&&!i&&s&&qf(o,{start:a,end:Lf(a,u-1)})&&Gf(a,s)&&u>1?!Rf({start:a,end:Lf(a,u-1)}).some((function(e){return l(e)})):!(!a||i||!s||Hf(s,a)||!qf(o,{start:a,end:s})||Rf({start:a,end:s}).some((function(e){return l(e)})));var r,o,a,i,l,s,u},isFirstOrLastSelectedDate:function(e){return function(e,t,n){return!!(t&&Gf(e,t)||n&&Gf(e,n))}(e,t,n)},isStartDate:function(e){return function(e,t){return!(!t||!Gf(e,t))}(e,t)},isEndDate:function(e){return function(e,t){return!(!t||!Gf(e,t))}(e,n)},isDateBlocked:L,numberOfMonths:h,isDateFocused:function(e){return!!P&&Gf(e,P)},focusedDate:P,hoveredDate:T,onResetDates:function(){l({startDate:null,endDate:null,focusedInput:"startDate"})},onDateHover:function(e){if(e){if(e){var r=!L(e)||t&&Gf(e,t),o=!a||!Hf(e,Lf(a,-1)),l=!i||!Vf(e,i),s=Lf(e,f-1),u=!a||!Hf(s,a),d=!i||!Vf(s,i),p=c&&f>1&&o&&l&&u&&d,h=t&&!n&&!c&&o&&l,m=!(f>1&&t)||qf(e,{start:t,end:Lf(t,f-2)}),g=t&&Gf(e,t)&&m;r&&(p||h||g)?O(e):null!==T&&O(null)}}else O(null)},onDateSelect:function(e){("endDate"===o||"startDate"===o)&&f>0&&c&&Jf({minBookingDays:f,exactMinBookingDays:c,minBookingDate:a,maxBookingDate:i,isDateBlocked:I,startDate:e,endDate:null})?l({startDate:e,endDate:Lf(e,f-1),focusedInput:null}):("endDate"===o&&t&&Hf(e,t)||"startDate"===o&&n&&Vf(e,n))&&!c&&Jf({minBookingDays:f,isDateBlocked:I,startDate:e,endDate:null})?l({endDate:null,startDate:e,focusedInput:"endDate"}):"startDate"===o&&!c&&Jf({minBookingDays:f,isDateBlocked:I,endDate:n,startDate:e})?l({endDate:n,startDate:e,focusedInput:"endDate"}):"startDate"===o&&!c&&Jf({minBookingDays:f,isDateBlocked:I,endDate:null,startDate:e})?l({endDate:null,startDate:e,focusedInput:"endDate"}):"endDate"===o&&t&&!Hf(e,t)&&!c&&Jf({minBookingDays:f,isDateBlocked:I,startDate:t,endDate:e})&&l({startDate:t,endDate:e,focusedInput:null}),"endDate"!==o&&(!P||P&&!Gf(e,P))&&_&&S(Xf(h,e))},onDateFocus:A,goToPreviousMonths:j,goToPreviousMonthsByOneMonth:M,goToNextMonths:F,goToNextMonthsByOneMonth:B,goToDate:z,goToPreviousYear:$,goToNextYear:U}}const tp=r.createContext(null),np=()=>r.useContext(tp),rp=({day:e,index:t,fullMonthDays:n,disabled:o=!1})=>{const a=n[t],{mode:i,startDate:l,endDate:s,onDateSelect:u}=np(),c=r.useRef(null),d=Vd(a)===Vd(new Date),f="range"===i&&qd(a,l,s),p=r.useCallback((()=>u(a)),[a,u]),h=Wd(a,l),m="range"===i&&Wd(a,s),g=h||m||f;if(!e)return null;const v=((e,t,n,r,o)=>{if(!n)return"";if(!r||!o)return Vc.dayBorderLeftAndRight;const{prevIndex:a,nextIndex:i}=((e,t)=>{const n=e-1,r=e+1;return{prevIndex:n>=0?n:null,nextIndex:r{const a=r.useRef(null),i=r.useRef(null),{goToDate:l,changeYearMode:s,setChangeYearMode:u}=np(),c=r.useRef(null),{y:d}=eu(c),[f,p]=r.useState((()=>parseInt(e)-o)),[h,m]=r.useState((()=>parseInt(e)+o)),g=Array.from({length:h-f+1},((e,t)=>f+t));Ys(a,(()=>{u(!1)}));return r.useEffect((()=>{if(s&&i.current&&c.current){const e=i.current.offsetTop,t=i.current.offsetHeight,n=e-c.current.clientHeight/2+t/2;c.current.scrollTop=n}}),[s]),r.useEffect((()=>{var e,t;const n=null==(e=null==c?void 0:c.current)?void 0:e.scrollHeight,r=null==(t=null==c?void 0:c.current)?void 0:t.clientHeight;if(!n||!r)return;const a=d/(n-r)*100;a>90&&m((e=>Math.min(e+o,fp))),a<10&&p((e=>Math.max(e-o,dp)))}),[d,o]),Ge("div",{ref:a,className:Qe(Vc.changeYear,s&&Vc.changeYearActive),onClick:()=>{u(!s)},children:[Ge("div",{className:Qe(Vc.year,Vc.yearAndIcon),children:[We(Vs,{component:"span",variant:"large"===n?"label1":"label2",children:e}),We("div",{className:Vc.changeYearIconContainer,children:We(s?Cs:Es,{color:"primary"})})]}),We("div",{className:Qe(Vc.yearDropdown,!s&&Vc.yearDropdownHidden),ref:c,children:g.map((r=>We("div",{className:Vc.year,onClick:()=>(e=>{const n=new Date(e,t,1);l(n),u(!1)})(r),ref:r===parseInt(e)?i:null,children:We(Vs,{component:"span",variant:"large"===n?"label1":"label2",children:r})},r)))})]})},ap=({direction:e,onClick:t,className:n})=>{const r="previous"===e?js:Ms;return We("button",{className:Qe(Vc.button,n),type:"button",onClick:t,children:We(r,{color:"primary"})})},ip=({monthLabel:e,monthNumber:t,size:n})=>{const{goToPreviousMonths:r,goToNextMonths:o}=np(),[a,i]=e.split(" ");return Ge("div",{className:Vc.header,children:[We(ap,{direction:"previous",onClick:r,className:Vc.previousMonthButton}),Ge("div",{className:Vc.monthAndYear,children:[We(Vs,{className:Vc.month,component:"span",variant:"large"===n?"label1":"label2",children:a}),We(op,{year:i,monthNumber:t,size:n})]}),We(ap,{direction:"next",onClick:o,className:Vc.nextMonthButton})]})},lp=({weekdayLabels:e})=>We("tr",{children:e.map(((e,t)=>We("th",{children:We("div",{className:Vc.weekDay,children:We(Vs,{variant:"label2",children:e[0]})})},t)))}),sp=({days:e})=>{const t=Gd(e),n=new Date(t[15]).getMonth();return We(qe,{children:Array.from({length:6}).map(((e,r)=>We("tr",{children:Array.from({length:7}).map(((e,o)=>{const a=7*r+o,i=t[a];return We(rp,{index:a,day:i.getDate().toString(),fullMonthDays:t,disabled:i.getMonth()!==n},`day-${a}`)}))},`week-${r}`)))})},up=({size:e="large",year:t,month:n,firstDayOfWeek:r})=>{const o=np(),a=(null==o?void 0:o.size)??e,{days:i,weekdayLabels:l,monthLabel:s}=Uf({year:t,month:n,firstDayOfWeek:r});return Ge(qe,{children:[We(ip,{monthLabel:s,monthNumber:n,size:a}),Ge("table",{className:Vc.monthTable,children:[We("thead",{children:We(lp,{weekdayLabels:l})}),We("tbody",{children:We(sp,{days:i})})]})]})},cp=({children:e,arrowOffset:t,arrowPosition:n="top",arrowSize:r=10,rootRef:o,...a})=>{const i=bs(a),l={width:`${r}px`,height:`${r}px`,transform:"rotate(45deg)"};return["top","bottom"].includes(n)?(l.left=`${t}px`,l[n]=`-${r/2}px`):(l.top=`${t}px`,l[n]=`-${r/2}px`),We("div",{ref:o,...ws(a),className:Qe(i.className,a.className,Pd.root),children:t?Ge(qe,{children:[We("div",{className:Pd.arrowTip,style:l}),We("div",{className:Pd.content,children:e})]}):e})};cp.classes=Pd;const dp=1850,fp=2100,pp=({open:e,handleRef:t,size:n="large",mode:o="date",disabled:a=!1,onStartDateChange:i,onEndDateChange:l,onClose:s,onCalendarClickaway:u,startDate:c,endDate:d,calendarType:f="startDate",minDate:p=new Date(dp,0,1),maxDate:h=new Date(fp,0,1),tooltipArrowOffset:m,...g})=>{const v=bs(g),b=r.useRef(null),[y,w]=r.useState(c?Ud(c,p,h).date:null),[x,_]=r.useState(d?Ud(d,p,h).date:null),[k,E]=r.useState(!1);Ys(b,(t=>{e&&(u&&u(t),void 0===e&&s&&s())}));const{activeMonths:S,onDateFocus:C,onDateSelect:T,goToPreviousMonths:O,goToNextMonths:D,goToDate:P}=ep({startDate:y,endDate:x,focusedInput:"startDate",onDatesChange:e=>{const t=((e,t,n,r)=>{let o=t,a=n;const i=r.startDate;return i?("startDate"===e?(!a||a&&i.getTime()<=a.getTime())&&(o=i):"endDate"===e&&(!o||o&&i.getTime()>=o.getTime())&&(a=i),{newStartDate:o,newEndDate:a}):{newStartDate:o,newEndDate:a}})(f,y,x,e),{newStartDate:n,newEndDate:r}=t;n!==y&&(null==i||i(n??new Date),w(n)),r!==x&&"range"===o&&(null==l||l(r??new Date),_(r))},numberOfMonths:1});r.useEffect((()=>{const e=Ud(c,p,h);if(Wd(e.date,y)||w(e.isValid?e.date:null),"range"===o){const e=Ud(d,p,h);Wd(e.date,x)||_(e.isValid?e.date:null)}}),[c,d,o,p,h,y,x]),r.useEffect((()=>{y&&C(y)}),[y]),r.useEffect((()=>{x&&C(x)}),[x]);const N=nu(t,e);return We(tp.Provider,{value:{size:n,mode:o,startDate:y,endDate:x,onDateFocus:C,onDateSelect:T,goToPreviousMonths:O,goToNextMonths:D,goToDate:P,changeYearMode:k,setChangeYearMode:E},children:We(cp,{...g,className:Qe({...ws(g)},v.className,g.className,Vc.root,Vc[n],e&&Vc.open,a&&Vc.disabled),rootRef:b,style:{...N,...g.style??{}},arrowOffset:m,children:We("div",{className:Qe(Vc.container),children:S.map(((e,t)=>We(up,{year:e.year,month:e.month,firstDayOfWeek:0,size:n},`${e.year}-${e.month}-${t}`)))})})})};pp.classes=Vc;const hp=(e,t)=>t&&(null==e?void 0:e.composedPath().includes(t))||!1,mp=({label:e,size:t="large",value:n,onChange:o,withCalendar:a=!0,variant:i="underlined",...l})=>{const s=bs(l),u=r.useRef(null),c=r.useRef(null),[d,f]=r.useState(!1),p=void 0!==n,h=Ye({value:n,defaultValue:"",onChange:o,getInput:()=>{var e;return null==(e=u.current)?void 0:e.querySelector(`input.${$d.classes.input}`)}});return We("div",{id:(l.id||"date-picker")+"-input",ref:u,className:Qe({...ws(l)},l.className,s.className,td.root,td[t]),children:We($d,{label:e,size:t,variant:i,icon:a&&We(Us,{color:"primary"}),onIconClick:()=>f((e=>!e)),value:p||d?h.value:void 0,onChange:h.onChange,calendarIconRef:c,...l,children:We(au,{id:"calendar",children:a&&We(pp,{...ys(l),onStartDateChange:e=>(e=>h.setValue(Hd(e)))(e),open:d,onCalendarClickaway:e=>{hp(e,c.current)||f(!1)},handleRef:u,startDate:h.value,disabled:l.disabled,className:td.calendar})})})})};mp.classes=td;const gp=({title:e,information:t,onClose:n,size:r="large",toastRef:o,children:a,icon:i,actions:l,...s})=>{const u=bs(s),c=!t,d=void 0===i?Ns:i;return Ge("div",{ref:o,...ws(s),className:Qe(s.className,u.className,Cd.root,Cd[r]),children:[We("div",{className:Qe(c?Cd.inlineIconContainer:Cd.columnIconContainer),children:d&&We(d,{color:"primary",className:Cd.icon})}),Ge("div",{className:c?Cd.inlineContainer:Cd.columnContainer,children:[Ge("div",{className:Qe(Cd.textContainer),children:[!!e&&We(Vs,{className:Cd.title,component:"div",variant:"small"===r?"label2":"label1",children:e}),!!t&&We(Vs,{className:Cd.information,component:"div",variant:"small"===r?"label2":"label1",children:t})]}),!!l&&We("div",{className:Qe(Cd.buttonContainer,c?Cd.inlineButtonContainer:Cd.columnButtonContainer),children:l})]}),We(Bu,{onClick:n,className:Cd.closeButton,size:"medium",children:We(Ps,{color:"primary"})})]})};gp.classes=Cd;var vp=(e,t)=>(e=>"function"==typeof e)(e)?e(t):e,bp=(()=>{let e=0;return()=>(++e).toString()})(),yp=new Map,wp=e=>{if(yp.has(e))return;let t=setTimeout((()=>{yp.delete(e),Ep({type:4,toastId:e})}),1e3);yp.set(e,t)},xp=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,20)};case 1:return t.toast.id&&(e=>{let t=yp.get(e);t&&clearTimeout(t)})(t.toast.id),{...e,toasts:e.toasts.map((e=>e.id===t.toast.id?{...e,...t.toast}:e))};case 2:let{toast:n}=t;return e.toasts.find((e=>e.id===n.id))?xp(e,{type:1,toast:n}):xp(e,{type:0,toast:n});case 3:let{toastId:r}=t;return r?wp(r):e.toasts.forEach((e=>{wp(e.id)})),{...e,toasts:e.toasts.map((e=>e.id===r||void 0===r?{...e,visible:!1}:e))};case 4:return void 0===t.toastId?{...e,toasts:[]}:{...e,toasts:e.toasts.filter((e=>e.id!==t.toastId))};case 5:return{...e,pausedAt:t.time};case 6:let o=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map((e=>({...e,pauseDuration:e.pauseDuration+o})))}}},_p=[],kp={toasts:[],pausedAt:void 0},Ep=e=>{kp=xp(kp,e),_p.forEach((e=>{e(kp)}))},Sp={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},Cp=e=>(t,n)=>{let r=((e,t="blank",n)=>({createdAt:Date.now(),visible:!0,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...n,id:(null==n?void 0:n.id)||bp()}))(t,e,n);return Ep({type:2,toast:r}),r.id},Tp=(e,t)=>Cp("blank")(e,t);Tp.error=Cp("error"),Tp.success=Cp("success"),Tp.loading=Cp("loading"),Tp.custom=Cp("custom"),Tp.dismiss=e=>{Ep({type:3,toastId:e})},Tp.remove=e=>Ep({type:4,toastId:e}),Tp.promise=(e,t,n)=>{let r=Tp.loading(t.loading,{...n,...null==n?void 0:n.loading});return e.then((e=>(Tp.success(vp(t.success,e),{id:r,...n,...null==n?void 0:n.success}),e))).catch((e=>{Tp.error(vp(t.error,e),{id:r,...n,...null==n?void 0:n.error})})),e};var Op=(e,t)=>{Ep({type:1,toast:{id:e,height:t}})},Dp=()=>{Ep({type:5,time:Date.now()})},Pp=e=>{let{toasts:t,pausedAt:n}=((e={})=>{let[t,n]=r.useState(kp);r.useEffect((()=>(_p.push(n),()=>{let e=_p.indexOf(n);e>-1&&_p.splice(e,1)})),[t]);let o=t.toasts.map((t=>{var n,r;return{...e,...e[t.type],...t,duration:t.duration||(null==(n=e[t.type])?void 0:n.duration)||(null==e?void 0:e.duration)||Sp[t.type],style:{...e.style,...null==(r=e[t.type])?void 0:r.style,...t.style}}}));return{...t,toasts:o}})(e);r.useEffect((()=>{if(n)return;let e=Date.now(),r=t.map((t=>{if(t.duration===1/0)return;let n=(t.duration||0)+t.pauseDuration-(e-t.createdAt);if(!(n<0))return setTimeout((()=>Tp.dismiss(t.id)),n);t.visible&&Tp.dismiss(t.id)}));return()=>{r.forEach((e=>e&&clearTimeout(e)))}}),[t,n]);let o=r.useCallback((()=>{n&&Ep({type:6,time:Date.now()})}),[n]),a=r.useCallback(((e,n)=>{let{reverseOrder:r=!1,gutter:o=8,defaultPosition:a}=n||{},i=t.filter((t=>(t.position||a)===(e.position||a)&&t.height)),l=i.findIndex((t=>t.id===e.id)),s=i.filter(((e,t)=>te.visible)).slice(...r?[s+1]:[0,s]).reduce(((e,t)=>e+(t.height||0)+o),0)}),[t]);return{toasts:t,handlers:{updateHeight:Op,startPause:Dp,endPause:o,calculateOffset:a}}};const Np=r.createContext(null),Ip=({toastsPropsMap:e,className:t,...n})=>{const{toasts:r,handlers:o}=Pp(),{startPause:a,endPause:i,calculateOffset:l,updateHeight:s}=o;return We(au,{id:"toast",children:r.map((r=>{const o=e.get(r.id);if(!o)return console.warn("Could not find toast with id",r.id),null;const{position:u,duration:c,...d}=o,f=l(r,{reverseOrder:!1,gutter:8,defaultPosition:u}),{transform:p,positionClassName:h}=((e,t)=>{if(!e)return{positionClassName:"",transform:`translateY(${t}px)`};let n="";const r=e.includes("center"),o=e.includes("bottom");return"top-left"===e?n=Td.topLeft:"top-center"===e?n=Td.topCenter:"top-right"===e?n=Td.topRight:"bottom-left"===e?n=Td.bottomLeft:"bottom-center"===e?n=Td.bottomCenter:"bottom-right"===e&&(n=Td.bottomRight),{positionClassName:n,transform:`translateY(${o?-t:t}px) translateX(${r?"-50%":"0"})`}})(u,f);return We("div",{onMouseEnter:a,onMouseLeave:i,...n,className:Qe(Td.toastContainer,h,t),style:{transform:p,...n.style},children:We(gp,{className:Qe(d.className),toastRef:e=>{if(e&&"number"!=typeof r.height){const t=e.getBoundingClientRect().height;s(r.id,t)}},...d,style:{opacity:r.visible?1:0,...d.style},onClose:()=>{var e;Tp.dismiss(r.id),null==(e=d.onClose)||e.call(d)}},r.id)},`container-${r.id}`)}))})};const Ap=({size:e="large",disabled:t,variant:n="outlined",children:r,...o})=>{const a=bs(o);return We("div",{...ws(o),className:Qe(a.className,o.className,Od.root,Od[e],Od[n],t&&Od.disabled),children:We(mu.Provider,{value:{size:e,variant:n,disabled:t},children:r})})};Ap.classes=Od;const Lp=({startValue:e,endValue:t,onStartDateChange:n,onEndDateChange:o,size:a="large",variant:i="underlined",withCalendar:l=!0,label:s,supportingText:u,disabled:c,...d})=>{const f=bs(d),p=r.useRef(null),h=r.useRef(null),m=r.useRef(null),[g,v]=r.useState(null),b=void 0!==e,y=void 0!==t,w=Ye({value:e,defaultValue:"",onChange:n,getInput:()=>{var e;return null==(e=p.current)?void 0:e.querySelectorAll(`input.${$d.classes.input}`)[0]}}),x=Ye({value:t,defaultValue:"",onChange:o,getInput:()=>{var e;return null==(e=p.current)?void 0:e.querySelectorAll(`input.${$d.classes.input}`)[1]}}),_={...d,size:a,label:void 0,supportingText:void 0},k="startDate"===g||"endDate"===g;return Ge("div",{ref:p,className:Qe({...ws(d)},f.className,d.className,Dd.root,Dd[a],l&&Dd.withCalendar,k&&Dd.openCalendar,c&&Dd.disabled),children:[s&&We(Vs,{className:Dd.label,variant:"label2",component:"label",children:s}),Ge("div",{className:Qe(d.className,Dd.inputContainer,"outlined"===i&&Dd.outlined),children:[We($d,{variant:i,calendarIconRef:m,icon:l&&We(Us,{color:"primary"}),value:b||k?w.value:void 0,onIconClick:()=>v((e=>Zd(e,"startDate"))),onChange:e=>{x.value&&!Qd(e.target.value,x.value)||w.onChange(e)},..._}),We("div",{className:Dd.separator}),We($d,{variant:i,calendarIconRef:h,icon:l&&We(Us,{color:"primary"}),value:y||k?x.value:void 0,onIconClick:()=>v((e=>Zd(e,"endDate"))),onChange:e=>{w.value&&!Qd(w.value,e.target.value)||x.onChange(e)},..._})]}),u&&We("div",{className:Qe(Dd.supportingText),children:We(Vs,{variant:"label2",component:"p",children:u})}),l&&We(au,{id:"calendar",children:We(pp,{...ys(d),onStartDateChange:e=>{w.setValue(Hd(e)),v("endDate")},onEndDateChange:e=>x.setValue(Hd(e)),onCalendarClickaway:e=>{hp(e,h.current)||hp(e,m.current)||v(null)},calendarType:g,open:k,onClose:()=>v(null),handleRef:p,mode:"range",disabled:c,startDate:w.value,endDate:x.value,className:Dd.calendar,tooltipArrowOffset:Yd(g,a),size:a})})]})};Lp.classes=Dd,t.AddIcon=ks,t.ArrowForwardIcon=Ss,t.Autocomplete=su,t.Badge=cu,t.Breadcrumb=hu,t.BreadcrumbItem=fu,t.Button=vu,t.ButtonGroup=Ap,t.CALENDAR_MAX_YEAR=fp,t.CALENDAR_MIN_YEAR=dp,t.Calendar=pp,t.CalendarIcon=Us,t.Card=wu,t.CardBody=_u,t.CardHeader=Eu,t.CheckIcon=Ds,t.Checkbox=Ou,t.CheckboxGroup=Pu,t.CheckboxIcon=Ts,t.CheckboxOutlineBlankIcon=Os,t.ChevronDownIcon=Es,t.ChevronLeftIcon=js,t.ChevronRightIcon=Ms,t.ChevronUpIcon=Cs,t.CloseIcon=Ps,t.Collapse=Lu,t.CollapseHeader=Iu,t.DateField=$d,t.DatePicker=mp,t.DateRangePicker=Lp,t.Dropdown=ju,t.DropdownItem=Ws,t.DropdownMenu=ru,t.ErrorIcon=Ns,t.FolderIcon=Is,t.IconButton=Bu,t.IconButtonGroup=$u,t.KeyboardReturnIcon=As,t.LSD_NAMESPACE="lsd",t.LsdIcon=_s,t.MenuIcon=Ls,t.Modal=Fd,t.ModalBody=Bd,t.ModalFooter=zd,t.MoreIcon=Rs,t.NumberInput=Md,t.PickIcon=Bs,t.Quote=Hu,t.RadioButton=Wu,t.RadioButtonCheckedIcon=$s,t.RadioButtonGroup=Zu,t.RadioButtonIcon=zs,t.RemoveIcon=Hs,t.SearchIcon=Fs,t.THEME_BREAKPOINTS=fs,t.THEME_TYPOGRAPHY_PROPERTIES=ms,t.THEME_TYPOGRAPHY_VARIANTS=ps,t.THEME_VARIANT_PROPERTIES=["typography"],t.TabItem=Xu,t.Table=ac,t.TableBody=Ju,t.TableHeader=tc,t.TableItem=lc,t.TableRow=uc,t.Tabs=bc,t.Tag=wc,t.TextField=Sc,t.ThemeProvider=({theme:e,children:t,injectCssVars:n=!0})=>We(Rd,{children:We(Ld,{children:Ge(jd.Provider,{value:{theme:e},children:[We(Id,{theme:e}),n&&We(a.Global,{styles:e.globalStyles}),We(a.ThemeProvider,{theme:e,children:t})]})})}),t.Toast=gp,t.ToastContext=Np,t.ToastProvider=({providerToastOptions:e,children:t,...n})=>{const[o,a]=r.useState(new Map);return Ge(Np.Provider,{value:(t,n)=>{const r={...e,...n},o=Tp("",{duration:null==r?void 0:r.duration});t&&a((e=>{const n=new Map(e);return n.set(o,{...t,...r}),n}))},children:[t,We(Ip,{toastsPropsMap:o,...n})]})},t.TooltipBase=cp,t.Typography=Vs,t.createTheme=jc,t.createThemeGlobalStyles=Tc,t.defaultThemes=Fc,t.useTheme=()=>r.useContext(jd).theme??Fc.light,t.useToast=function(){const e=r.useContext(Np);if(!e)throw new Error("useToast must be used within a ToastProvider");return e},t.withTheme=e=>t=>e(t)},8417:(e,t,n)=>{"use strict";n.d(t,{Z:()=>oe});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?c(w,--b):0,g--,10===y&&(g=1,m--),y}function E(){return y=b2||O(y)>3?"":" "}function A(e,t){for(;--t&&E()&&!(y<48||y>102||y>57&&y<65||y>70&&y<97););return T(e,C()+(t<6&&32==S()&&32==E()))}function L(e){for(;E();)switch(y){case e:return b;case 34:case 39:34!==e&&39!==e&&L(y);break;case 40:41===e&&L(e);break;case 92:E()}return b}function R(e,t){for(;E()&&e+y!==57&&(e+y!==84||47!==S()););return"/*"+T(t,b-1)+"*"+a(47===e?e:E())}function j(e){for(;!O(S());)E();return T(e,b)}var M="-ms-",F="-moz-",B="-webkit-",z="comm",$="rule",U="decl",H="@keyframes";function V(e,t){for(var n="",r=p(e),o=0;o0&&f(F)-v&&h(y>32?Y(F+";",r,n,v-1):Y(s(F," ","")+";",r,n,v-2),p);break;case 59:F+=";";default:if(h(M=Z(F,t,n,m,g,o,d,D,P=[],L=[],v),i),123===O)if(0===g)G(F,t,M,M,P,i,v,d,L);else switch(99===b&&110===c(F,3)?100:b){case 100:case 108:case 109:case 115:G(e,M,M,r&&h(Z(e,M,M,0,0,o,d,D,o,P=[],v),L),o,L,v,d,r?P:L);break;default:G(F,M,M,M,[""],L,0,d,L)}}m=g=y=0,x=T=1,D=F="",v=l;break;case 58:v=1+f(F),y=w;default:if(x<1)if(123==O)--x;else if(125==O&&0==x++&&125==k())continue;switch(F+=a(O),O*x){case 38:T=g>0?1:(F+="\f",-1);break;case 44:d[m++]=(f(F)-1)*T,T=1;break;case 64:45===S()&&(F+=N(E())),b=S(),g=v=f(D=F+=j(C())),O++;break;case 45:45===w&&2==f(F)&&(x=0)}}return i}function Z(e,t,n,r,a,i,u,c,f,h,m){for(var g=a-1,v=0===a?i:[""],b=p(v),y=0,w=0,_=0;y0?v[k]+" "+E:s(E,/&\f/g,v[k])))&&(f[_++]=S);return x(e,t,n,0===a?$:c,f,h,m)}function Q(e,t,n){return x(e,t,n,z,a(y),d(e,2,-2),0)}function Y(e,t,n,r){return x(e,t,n,U,d(e,0,r),d(e,r+1,-1),r)}var X=function(e,t,n){for(var r=0,o=0;r=o,o=S(),38===r&&12===o&&(t[n]=1),!O(o);)E();return T(e,b)},K=function(e,t){return P(function(e,t){var n=-1,r=44;do{switch(O(r)){case 0:38===r&&12===S()&&(t[n]=1),e[n]+=X(b-1,t,n);break;case 2:e[n]+=N(r);break;case 4:if(44===r){e[++n]=58===S()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=a(r)}}while(r=E());return e}(D(e),t))},J=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(n))&&!r){J.set(e,!0);for(var o=[],a=K(t,o),i=n.props,l=0,s=0;l6)switch(c(e,t+1)){case 109:if(45!==c(e,t+4))break;case 102:return s(e,/(.+:)(.+)-([^]+)/,"$1"+B+"$2-$3$1"+F+(108==c(e,t+3)?"$3":"$2-$3"))+e;case 115:return~u(e,"stretch")?ne(s(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==c(e,t+1))break;case 6444:switch(c(e,f(e)-3-(~u(e,"!important")&&10))){case 107:return s(e,":",":"+B)+e;case 101:return s(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+B+(45===c(e,14)?"inline-":"")+"box$3$1"+B+"$2$3$1"+M+"$2box$3")+e}break;case 5936:switch(c(e,t+11)){case 114:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return B+e+M+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case U:e.return=ne(e.value,e.length);break;case H:return V([_(e,{value:s(e.value,"@","@"+B)})],r);case $:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return V([_(e,{props:[s(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return V([_(e,{props:[s(t,/:(plac\w+)/,":"+B+"input-$1")]}),_(e,{props:[s(t,/:(plac\w+)/,":-moz-$1")]}),_(e,{props:[s(t,/:(plac\w+)/,M+"input-$1")]})],r)}return""}))}}],oe=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o=e.stylisPlugins||re;var a,i,l={},s=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n{"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{Z:()=>r})},79626:(e,t,n)=>{"use strict";n.d(t,{C:()=>g,E:()=>T,T:()=>y,_:()=>v,a:()=>_,b:()=>k,c:()=>S,h:()=>h,i:()=>p,u:()=>w,w:()=>b});var r=n(67294),o=n(8417),a=n(87462),i=function(e){var t=new WeakMap;return function(n){if(t.has(n))return t.get(n);var r=e(n);return t.set(n,r),r}},l=n(8679),s=n.n(l),u=function(e,t){return s()(e,t)},c=n(70444),d=n(48137),f=n(27278),p=!0,h={}.hasOwnProperty,m=r.createContext("undefined"!=typeof HTMLElement?(0,o.Z)({key:"css"}):null);var g=m.Provider,v=function(){return(0,r.useContext)(m)},b=function(e){return(0,r.forwardRef)((function(t,n){var o=(0,r.useContext)(m);return e(t,o,n)}))};p||(b=function(e){return function(t){var n=(0,r.useContext)(m);return null===n?(n=(0,o.Z)({key:"css"}),r.createElement(m.Provider,{value:n},e(t,n))):e(t,n)}});var y=r.createContext({});var w=function(){return r.useContext(y)},x=i((function(e){return i((function(t){return function(e,t){return"function"==typeof t?t(e):(0,a.Z)({},e,t)}(e,t)}))})),_=function(e){var t=r.useContext(y);return e.theme!==t&&(t=x(t)(e.theme)),r.createElement(y.Provider,{value:t},e.children)};function k(e){var t=e.displayName||e.name||"Component",n=function(t,n){var o=r.useContext(y);return r.createElement(e,(0,a.Z)({theme:o,ref:n},t))},o=r.forwardRef(n);return o.displayName="WithTheme("+t+")",u(o,e)}var E="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",S=function(e,t){var n={};for(var r in t)h.call(t,r)&&(n[r]=t[r]);return n[E]=e,n},C=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,c.hC)(t,n,r),(0,f.L)((function(){return(0,c.My)(t,n,r)})),null};var T=b((function(e,t,n){var o=e.css;"string"==typeof o&&void 0!==t.registered[o]&&(o=t.registered[o]);var a=e[E],i=[o],l="";"string"==typeof e.className?l=(0,c.fp)(t.registered,i,e.className):null!=e.className&&(l=e.className+" ");var s=(0,d.O)(i,void 0,r.useContext(y));l+=t.key+"-"+s.name;var u={};for(var f in e)h.call(e,f)&&"css"!==f&&f!==E&&(u[f]=e[f]);return u.ref=n,u.className=l,r.createElement(r.Fragment,null,r.createElement(C,{cache:t,serialized:s,isStringTag:"string"==typeof a}),r.createElement(a,u))}))},70917:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CacheProvider:()=>r.C,ClassNames:()=>h,Global:()=>u,ThemeContext:()=>r.T,ThemeProvider:()=>r.a,__unsafe_useEmotionCache:()=>r._,createElement:()=>s,css:()=>c,jsx:()=>s,keyframes:()=>d,useTheme:()=>r.u,withEmotionCache:()=>r.w,withTheme:()=>r.b});var r=n(79626),o=n(67294),a=n(70444),i=n(27278),l=n(48137),s=(n(8417),n(8679),function(e,t){var n=arguments;if(null==t||!r.h.call(t,"css"))return o.createElement.apply(void 0,n);var a=n.length,i=new Array(a);i[0]=r.E,i[1]=(0,r.c)(e,t);for(var l=2;l{"use strict";n.d(t,{O:()=>h});var r={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},o=n(45042),a=/[A-Z]|^ms/g,i=/_EMO_([^_]+?)_([^]*?)_EMO_/g,l=function(e){return 45===e.charCodeAt(1)},s=function(e){return null!=e&&"boolean"!=typeof e},u=(0,o.Z)((function(e){return l(e)?e:e.replace(a,"-$&").toLowerCase()})),c=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(i,(function(e,t,n){return f={name:t,styles:n,next:f},t}))}return 1===r[e]||l(e)||"number"!=typeof t||0===t?t:t+"px"};function d(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return f={name:n.name,styles:n.styles,next:f},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)f={name:r.name,styles:r.styles,next:f},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+s;return{name:u,styles:o,next:f}}},27278:(e,t,n)=>{"use strict";var r;n.d(t,{L:()=>i,j:()=>l});var o=n(67294),a=!!(r||(r=n.t(o,2))).useInsertionEffect&&(r||(r=n.t(o,2))).useInsertionEffect,i=a||function(e){return e()},l=a||o.useLayoutEffect},70444:(e,t,n)=>{"use strict";n.d(t,{My:()=>a,fp:()=>r,hC:()=>o});function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var o=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},a=function(e,t,n){o(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}},19044:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{stroke:"#fff",d:"M9 17.5V.5M.5 9h17"})))}},80255:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M11.764 5.294 7.06 10l4.705 4.706",stroke:"#000",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))}},67146:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M11.667 6.417h-7.1l3.261-3.261L7 2.333 2.333 7 7 11.667l.823-.823-3.255-3.26h7.099V6.417Z",fill:"#fff"})))}},68425:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("rect",{width:20,height:20,rx:10,fill:"#000"})),o||(o=a.createElement("path",{d:"m9 8 2 2-2 2",stroke:"#fff",strokeWidth:1.2,strokeLinecap:"round",strokeLinejoin:"round"})))}},88121:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"m7 2.333-.823.823 3.255 3.26H2.333v1.167h7.1l-3.256 3.261.823.823L11.667 7 7 2.333Z",fill:"#fff"})))}},62082:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M20 20a3.21 3.21 0 0 1-2.354-.98 3.21 3.21 0 0 1-.98-2.353c0-.917.327-1.702.98-2.355A3.21 3.21 0 0 1 20 13.333a3.21 3.21 0 0 1 2.354.98 3.21 3.21 0 0 1 .98 2.354 3.21 3.21 0 0 1-.98 2.354A3.21 3.21 0 0 1 20 20Zm-6.666 6.667v-2.334c0-.472.121-.906.364-1.302.244-.396.567-.698.969-.906.86-.43 1.736-.754 2.625-.97A11.418 11.418 0 0 1 20 20.834c.917 0 1.82.108 2.709.324.888.215 1.763.538 2.625.968.402.208.725.51.969.907.243.396.364.83.364 1.301v2.334H13.333ZM15 25h10v-.667a.817.817 0 0 0-.417-.708 10.844 10.844 0 0 0-2.27-.843 9.652 9.652 0 0 0-4.625 0c-.764.187-1.521.468-2.271.843a.815.815 0 0 0-.303.292.776.776 0 0 0-.114.416V25Zm5-6.667c.459 0 .851-.163 1.178-.49.326-.326.49-.719.489-1.176 0-.459-.164-.851-.49-1.178A1.602 1.602 0 0 0 20 15c-.458 0-.85.164-1.177.49-.327.328-.49.72-.49 1.178 0 .458.164.85.49 1.177.327.327.72.49 1.177.49Z",fill:"#fff"})),o||(o=a.createElement("rect",{x:.5,y:.5,width:39,height:39,rx:19.5,stroke:"#fff"})))}},80469:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"m12.667 4.273-.94-.94L8.001 7.06 4.274 3.333l-.94.94L7.061 8l-3.727 3.727.94.94L8.001 8.94l3.726 3.727.94-.94L8.941 8l3.726-3.727Z",fill:"#fff",opacity:.6})))}},94793:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M2.917 12.833c-.321 0-.596-.114-.825-.343a1.121 1.121 0 0 1-.342-.823V3.5h1.167v8.167h6.416v1.166H2.917ZM5.25 10.5c-.32 0-.596-.114-.824-.343a1.121 1.121 0 0 1-.343-.824v-7c0-.32.115-.595.343-.824.229-.229.504-.343.824-.342h5.25c.32 0 .596.114.824.343.229.228.343.503.343.823v7c0 .321-.115.596-.343.825a1.121 1.121 0 0 1-.824.342H5.25Zm0-1.167h5.25v-7H5.25v7Z",fill:"#fff"})))}},14607:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M14.2 23.077c-1.733 0-3.147-1.575-3.147-3.504 0-1.926 1.379-3.5 3.149-3.5 1.75 0 3.183 1.574 3.148 3.5 0 1.929-1.398 3.504-3.15 3.504Zm11.623 0c-1.733 0-3.15-1.575-3.15-3.504 0-1.926 1.382-3.5 3.15-3.5 1.75 0 3.184 1.574 3.15 3.5 0 1.929-1.381 3.504-3.15 3.504ZM16.875 7.205l-.513-.938-1.057.175a27.255 27.255 0 0 0-6.93 2.133l-.38.177-.237.348C3.403 15.523 2.208 21.847 2.8 28.06l.065.677.55.4a28.181 28.181 0 0 0 8.463 4.238l1.317.403 1.855-4.528c3.183.787 6.717.788 9.898 0l1.845 4.53 1.317-.405a28.033 28.033 0 0 0 8.467-4.24l.545-.397.066-.67c.727-7.2-1.161-13.473-4.93-18.975l-.236-.345-.38-.173a27.625 27.625 0 0 0-6.924-2.133l-1.03-.172-.523.902c-.155.27-.301.544-.438.823a26.463 26.463 0 0 0-5.439 0c-.133-.266-.27-.53-.413-.79Zm-5.683 20.478c.328.19.675.377 1.016.547l-.748 1.827a25.041 25.041 0 0 1-5.713-2.964c-.375-5.231.688-10.508 4.273-15.95a24.256 24.256 0 0 1 4.707-1.521c.1.208.193.411.27.593l.455 1.072 1.153-.169a23.508 23.508 0 0 1 6.817 0l1.15.167.453-1.07c.078-.187.17-.39.267-.593a24.71 24.71 0 0 1 4.713 1.525c3.125 4.7 4.702 9.943 4.243 15.945a24.841 24.841 0 0 1-5.716 2.963l-.742-1.823c.343-.172.69-.359 1.022-.549.816-.47 1.695-1.056 2.255-1.616l-2.134-2.134c-.271.274-.871.7-1.628 1.137-.74.427-1.475.772-1.945.927-3.338 1.105-7.38 1.105-10.72 0-.468-.155-1.203-.5-1.943-.927-.757-.435-1.357-.863-1.63-1.137l-2.134 2.134c.562.56 1.442 1.146 2.259 1.616Z",fill:"#fff"})))}},50437:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({width:71,height:55,viewBox:"0 0 71 55",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("g",{clipPath:"url(#a)"},a.createElement("path",{d:"M60.105 4.898A58.55 58.55 0 0 0 45.653.415a.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 18.73-.944 32.144.293 45.39a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378c.372-.279.744-.569 1.1-.862a.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.961a.228.228 0 0 0 .092-.164c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084Zm-36.38 32.427c-3.497 0-6.38-3.211-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156Zm23.593 0c-3.498 0-6.38-3.211-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156Z",fill:"#23272A"}))),o||(o=a.createElement("defs",null,a.createElement("clipPath",{id:"a"},a.createElement("path",{fill:"#fff",d:"M0 0h71v55H0z"})))))}},23179:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),void 0===t?o.createElement("title",{id:n},"Discourse"):t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563a7.395 7.395 0 0 0-6.337 3.57 7.247 7.247 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.424 7.424 0 0 0 8.136-1.39 7.256 7.256 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585h-.008z"})))}},7744:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M9.334 1.333H4c-.733 0-1.326.6-1.326 1.334l-.007 10.666c0 .734.593 1.334 1.327 1.334H12c.734 0 1.334-.6 1.334-1.334v-8l-4-4ZM4 13.333V2.667h4.667V6H12v7.333H4Z",fill:"#fff"})))}},19818:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("circle",{cx:10,cy:10,r:8.333,fill:"#fff"})))}},38981:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M7 9.333 4.083 6.417 4.9 5.57l1.517 1.517V2.333h1.166v4.755L9.1 5.57l.817.846L7 9.333Zm-3.5 2.334c-.32 0-.596-.115-.824-.343a1.121 1.121 0 0 1-.343-.824V8.75H3.5v1.75h7V8.75h1.167v1.75c0 .32-.115.596-.343.824a1.121 1.121 0 0 1-.824.343h-7Z",fill:"#fff"})))}},28487:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:12,height:12,viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"m2 4 4 4 4-4",stroke:"#909091",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round"})))}},94177:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.707 2.393.9.9c.526.52.526 1.367 0 1.887L4.787 14H2v-2.787l6.933-6.94 1.887-1.88c.52-.52 1.367-.52 1.887 0ZM3.333 12.667l.94.04 6.547-6.554-.94-.94-6.547 6.547v.907Z",fill:"#fff"})))}},58611:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.192 4H3.428V2.857h9.715v9.715H12V4.808l-8.167 8.168-.809-.808L11.192 4Z",fill:"#fff"})))}},13042:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M1.804 16.292a.836.836 0 0 0 .696.374H15a.832.832 0 0 0 .766-.505l2.5-5.833a.833.833 0 0 0-.766-1.162h-.833v-2.5C16.667 5.747 15.919 5 15 5H9.454l-2.13-1.667h-3.99c-.92 0-1.667.748-1.667 1.667v10.833h.006a.834.834 0 0 0 .131.46ZM15 6.666v2.5H5a.832.832 0 0 0-.766.505l-.9 2.103V6.666H15Z",fill:"#000"})))}},96367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M4.667 11.083v-1.75h-1.75V8.166h2.916v2.917H4.667Zm3.5 0V8.166h2.916v1.167h-1.75v1.75H8.167Zm-5.25-5.25V4.666h1.75v-1.75h1.166v2.917H2.917Zm5.25 0V2.916h1.166v1.75h1.75v1.167H8.167Z",fill:"#fff"})))}},6907:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M1.75 2.917V5.25h1.167V2.917H5.25V1.75H2.917A1.17 1.17 0 0 0 1.75 2.917ZM2.917 8.75H1.75v2.333a1.17 1.17 0 0 0 1.167 1.167H5.25v-1.167H2.917V8.75Zm8.166 2.333H8.75v1.167h2.333a1.17 1.17 0 0 0 1.167-1.167V8.75h-1.167v2.333Zm0-9.333H8.75v1.167h2.333V5.25h1.167V2.917a1.17 1.17 0 0 0-1.167-1.167Z",fill:"#fff"})))}},59570:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M20 4.4a16 16 0 0 0-16 16c0 7.072 4.592 13.072 10.944 15.2.8.128 1.056-.368 1.056-.8v-2.704c-4.432.96-5.376-2.144-5.376-2.144-.736-1.856-1.776-2.352-1.776-2.352-1.456-.992.112-.96.112-.96 1.6.112 2.448 1.648 2.448 1.648C12.8 30.72 15.152 30 16.064 29.616c.144-1.04.56-1.744 1.008-2.144-3.552-.4-7.28-1.776-7.28-7.872 0-1.776.608-3.2 1.648-4.336-.16-.4-.72-2.064.16-4.224 0 0 1.344-.432 4.4 1.632a15.075 15.075 0 0 1 4-.528c1.36 0 2.736.176 4 .528 3.056-2.064 4.4-1.632 4.4-1.632.88 2.16.32 3.824.16 4.224 1.04 1.136 1.648 2.56 1.648 4.336 0 6.112-3.744 7.456-7.312 7.856.576.496 1.104 1.472 1.104 2.96V34.8c0 .432.256.944 1.072.8C31.424 33.456 36 27.472 36 20.4a16.001 16.001 0 0 0-16-16Z",fill:"#fff"})))}},26890:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M256 411.12 0 202.667 256 0zM256 411.12l256-208.453L256 0z"})),o||(o=a.createElement("circle",{cx:256,cy:362.667,r:149.333})))}},42924:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"m4 13.333.667-2.666H2.333l.334-1.334H5l.667-2.666H3l.333-1.334H6l.667-2.666H8l-.667 2.666H10l.667-2.666H12l-.667 2.666h2.334l-.334 1.334H11l-.667 2.666H13l-.333 1.334H10l-.667 2.666H8l.667-2.666H6l-.667 2.666H4Zm2.333-4H9l.667-2.666H7l-.667 2.666Z",fill:"#fff"})))}},74297:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M8 14c-1.533 0-2.87-.508-4.009-1.525-1.139-1.017-1.791-2.287-1.958-3.808H3.4c.156 1.155.67 2.11 1.542 2.866.872.756 1.892 1.134 3.058 1.134 1.3 0 2.403-.453 3.309-1.359.905-.906 1.358-2.008 1.358-3.308 0-1.3-.453-2.403-1.359-3.309C10.402 3.786 9.3 3.333 8 3.333a4.5 4.5 0 0 0-2.15.534 4.954 4.954 0 0 0-1.683 1.466H6v1.334H2v-4h1.333v1.566A5.954 5.954 0 0 1 8 2c.833 0 1.614.158 2.342.475a6.107 6.107 0 0 1 1.9 1.283c.539.54.966 1.172 1.283 1.9C13.842 6.386 14 7.166 14 8c0 .833-.158 1.614-.475 2.342a6.108 6.108 0 0 1-1.283 1.9 6.11 6.11 0 0 1-1.9 1.283A5.793 5.793 0 0 1 8 14Zm1.867-3.2L7.333 8.267v-3.6h1.334v3.066L10.8 9.867l-.933.933Z",fill:"#fff"})))}},33336:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M0 1.337A1.337 1.337 0 0 1 1.337 0h13.325A1.336 1.336 0 0 1 16 1.337v13.325A1.338 1.338 0 0 1 14.662 16H1.338A1.337 1.337 0 0 1 0 14.662V1.338ZM6.333 6.1H8.5v1.088C8.812 6.563 9.612 6 10.815 6c2.304 0 2.85 1.246 2.85 3.532v4.234h-2.332v-3.714c0-1.301-.313-2.036-1.107-2.036-1.102 0-1.56.792-1.56 2.036v3.714H6.333V6.1Zm-4 7.566h2.333V6H2.333v7.666ZM5 3.5a1.5 1.5 0 1 1-3 .066A1.5 1.5 0 0 1 5 3.5Z",fill:"#000"})))}},78951:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{stroke:"#fff",d:"M.5 9h17"})))}},84629:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("g",{clipPath:"url(#a)"},a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.79 6.75a4.979 4.979 0 1 1 9.957 0 4.979 4.979 0 0 1-9.957 0ZM6.768.572a6.179 6.179 0 1 0 3.817 11.037l5.146 5.146a1 1 0 0 0 1.414-1.414l-5.207-5.207A6.179 6.179 0 0 0 6.768.571Z",fill:"#000"}))),o||(o=a.createElement("defs",null,a.createElement("clipPath",{id:"a"},a.createElement("path",{fill:"#fff",d:"M0 0h18v18H0z"})))))}},23816:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:179,height:178,viewBox:"0 0 179 178",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M104.512 88.178c-10.667.615-17.352-1.87-28.02-1.254a44.732 44.732 0 0 0-7.853 1.146c1.575-19.73 15.538-36.988 34.525-38.085 11.652-.672 23.298 6.522 23.93 18.2.621 11.479-8.131 19.158-22.58 19.992l-.002.001Zm-28.645 40.355c-11.162.631-22.317-6.104-22.923-17.033-.596-10.742 7.79-17.93 21.633-18.71 10.218-.575 16.623 1.751 26.84 1.174a43.776 43.776 0 0 0 7.522-1.073c-1.506 18.464-14.881 34.617-33.072 35.642ZM89.5.001C40.346 0 .5 39.846.5 89c0 49.154 39.846 89 89 89s89-39.847 89-89-39.846-89-89-89",fill:"#000"})))}},35245:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.906 17.987c9.395-4.094 15.66-6.792 18.795-8.096 8.95-3.723 10.81-4.37 12.022-4.39.267-.005.863.06 1.249.374.326.264.416.622.459.873.043.25.096.822.053 1.268-.485 5.097-2.583 17.463-3.65 23.171-.453 2.415-1.342 3.225-2.203 3.304-1.872.172-3.293-1.237-5.106-2.425-2.836-1.86-4.439-3.017-7.192-4.831-3.182-2.097-1.12-3.25.694-5.133.475-.493 8.72-7.993 8.88-8.674.02-.085.039-.402-.15-.57-.188-.167-.466-.11-.667-.064-.284.064-4.816 3.06-13.594 8.985-1.286.883-2.451 1.314-3.495 1.29-1.15-.024-3.364-.65-5.01-1.185-2.018-.656-3.622-1.003-3.483-2.117.073-.58.872-1.174 2.398-1.78Z",fill:"#fff"})))}},68902:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:24,height:24,xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421},"aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M12 0C5.374 0 0 5.372 0 12c0 6.627 5.374 12 12 12 6.627 0 12-5.373 12-12 0-6.628-5.373-12-12-12Zm3.224 17.871c.188.133.43.166.646.085a.678.678 0 0 0 .422-.491c.507-2.382 1.737-8.412 2.198-10.578a.457.457 0 0 0-.151-.443.47.47 0 0 0-.465-.082c-2.446.906-9.979 3.732-13.058 4.871a.484.484 0 0 0-.316.467.483.483 0 0 0 .346.445c1.381.413 3.193.988 3.193.988s.847 2.558 1.288 3.858a.512.512 0 0 0 .352.336.505.505 0 0 0 .474-.121l1.805-1.704s2.084 1.527 3.266 2.369Zm-6.423-5.062.98 3.231.218-2.046 5.941-5.358a.162.162 0 0 0 .019-.22.165.165 0 0 0-.219-.037l-6.939 4.43Z"})))}},86089:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:17,height:14,viewBox:"0 0 17 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M16.557 1.597a6.802 6.802 0 0 1-1.95.534A3.406 3.406 0 0 0 16.1.251a6.782 6.782 0 0 1-2.157.824 3.398 3.398 0 0 0-5.788 3.1A9.647 9.647 0 0 1 1.153.624a3.395 3.395 0 0 0-.059 3.31c.264.494.645.915 1.11 1.225a3.389 3.389 0 0 1-1.538-.425v.044a3.398 3.398 0 0 0 2.725 3.33c-.5.136-1.025.156-1.534.06a3.399 3.399 0 0 0 3.173 2.357A6.817 6.817 0 0 1 0 11.934a9.607 9.607 0 0 0 5.207 1.526c6.249 0 9.665-5.176 9.665-9.665 0-.146-.004-.293-.01-.439A6.905 6.905 0 0 0 16.556 1.6l.001-.002Z",fill:"#000"})))}},92358:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M22.62 19.134 32.63 7.5h-2.373l-8.69 10.102L14.627 7.5H6.62l10.496 15.275-10.496 12.2h2.372l9.177-10.668 7.33 10.668h8.005L22.62 19.134Zm-3.248 3.776-1.063-1.521L9.847 9.285h3.643l6.829 9.768 1.063 1.521 8.877 12.697h-3.643l-7.244-10.36v-.001Z",fill:"#fff"})))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),o=n(87462),a=n(68356),i=n.n(a),l=n(16887);const s={"13b4f215":[()=>n.e(452).then(n.bind(n,37939)),"@site/about/team.md",37939],17896441:[()=>Promise.all([n.e(532),n.e(210),n.e(918)]).then(n.bind(n,18652)),"@theme/DocItem",18652],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,93717)),"@theme/DocPage",93717],"1f391b9e":[()=>Promise.all([n.e(532),n.e(210),n.e(85)]).then(n.bind(n,14247)),"@theme/MDXPage",14247],"230402f8":[()=>n.e(156).then(n.bind(n,14466)),"@site/about/index.md",14466],"4c51782d":[()=>Promise.all([n.e(532),n.e(881),n.e(767)]).then(n.bind(n,90584)),"@site/root-pages/join-us.mdx",90584],"5086c83f":[()=>Promise.all([n.e(532),n.e(881),n.e(843)]).then(n.bind(n,23737)),"@site/root-pages/community.mdx",23737],"546e778e":[()=>Promise.all([n.e(532),n.e(759)]).then(n.bind(n,83869)),"@site/src/pages/subscribe.tsx",83869],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"7818b736":[()=>n.e(62).then(n.t.bind(n,75127,19)),"~docs/about/version-current-metadata-prop-751.json",75127],"79dc5662":[()=>n.e(339).then(n.bind(n,7875)),"@site/root-pages/terms.md",7875],"81bf376d":[()=>n.e(383).then(n.bind(n,50212)),"@site/root-pages/privacy-policy.md",50212],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],ba0da7bd:[()=>n.e(168).then(n.bind(n,21571)),"@site/about/roadmap.md",21571],d40faacd:[()=>n.e(894).then(n.bind(n,2916)),"@site/about/architect.md",2916],db77d2e4:[()=>n.e(257).then(n.t.bind(n,15745,19)),"/home/jenkins/workspace/website/waku.org/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],e68c6035:[()=>n.e(608).then(n.bind(n,47925)),"@site/about/waku-network.md",47925],e7ce6630:[()=>Promise.all([n.e(532),n.e(881),n.e(668)]).then(n.bind(n,5765)),"@site/src/pages/index.mdx",5765],f0fe3b85:[()=>n.e(153).then(n.t.bind(n,55866,19)),"/home/jenkins/workspace/website/waku.org/.docusaurus/docusaurus-plugin-content-docs/about/plugin-route-context-module-100.json",55866],f78498e9:[()=>n.e(772).then(n.t.bind(n,83769,19)),"/home/jenkins/workspace/website/waku.org/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769]};function u(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(99670),d=n(30226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>Promise.all([n.e(532),n.e(568)]).then(n.bind(n,92568)),modules:["@theme/NotFound"],webpack:()=>[92568],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=l[`${e}-${t}`],f={},p=[],h=[],m=(0,c.Z)(a);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),h.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>h,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{a=a[e]})),a[l[l.length-1]]=o}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,o.Z)({},i,n)))}})}const p=[{path:"/subscribe",component:f("/subscribe","60c"),exact:!0},{path:"/about",component:f("/about","8e0"),routes:[{path:"/about/",component:f("/about/","a82"),exact:!0,sidebar:"defaultSidebar"},{path:"/about/architect",component:f("/about/architect","7a3"),exact:!0,sidebar:"defaultSidebar"},{path:"/about/roadmap",component:f("/about/roadmap","b12"),exact:!0,sidebar:"defaultSidebar"},{path:"/about/team",component:f("/about/team","c35"),exact:!0,sidebar:"defaultSidebar"},{path:"/about/waku-network",component:f("/about/waku-network","4dc"),exact:!0,sidebar:"defaultSidebar"}]},{path:"/",component:f("/","ced"),exact:!0},{path:"/",component:f("/","e83"),routes:[{path:"/community",component:f("/community","dda"),exact:!0},{path:"/join-us",component:f("/join-us","3eb"),exact:!0},{path:"/privacy-policy",component:f("/privacy-policy","e92"),exact:!0},{path:"/terms",component:f("/terms","73e"),exact:!0}]},{path:"*",component:f("*")}]},85711:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createPromise=t.ResultType=void 0;const r=n(97582),o=n(90022),a=n(91073),i=n(67133),l=n(98202),s=r.__importStar(n(61029)),u=e=>{let{versionUrl:t,searchContextByPaths:n}=e,r=window.location.pathname;if(r=r.endsWith("/")?r:r+"/",!Array.isArray(n)||!r.startsWith(t))return"";const o=r.substring(t.length);return n.find((e=>o===e||o.startsWith(`${e}/`)))??""};class c{constructor(e){this.config=e,this.loading=!1,this.source=null,this.init=async()=>{this.loading=!0;const{wrappedIndexes:e,zhDictionary:t}=await(async e=>{const{wrappedIndexes:t,zhDictionary:n}=await(0,o.fetchIndexes)(e.versionUrl,e.searchContext);return{wrappedIndexes:t,zhDictionary:n}})({versionUrl:this.baseUrl,searchContext:u({versionUrl:this.baseUrl,searchContextByPaths:this.searchContextByPaths})});this.source=(0,l.SearchSourceFactory)(e,t,this.config.resultsLimit)},this.query=async e=>{if(!this.source)throw new Error("Not initialized");const{promise:n,callback:r}=(0,t.createPromise)();return this.source&&this.source(e,r),{results:(await n).map((e=>this.formatResult(e)))}},this.formatResult=e=>({...e,type:this.resultTypeToString(e.type),page:e.page?this.formatDocument(e.page):null,document:e.document?this.formatDocument(e.document):null,highlighted:(0,i.highlightStemmed)(e.document.t,(0,a.getStemmedPositions)(e.metadata,"t"),e.tokens)}),this.resultTypeToString=e=>({0:d.Title,1:d.Heading,2:d.Paragraph}[e]),this.formatDocument=e=>({id:e.i,title:e.t,url:e.u,hash:e.h,parentId:e.p,breadcrumb:e.b,sectionTitle:e.s}),this.baseUrl=e.preferredVersionPath,this.searchContextByPaths=e.searchContextByPaths??""}}var d;!function(e){e.Title="title",e.Heading="heading",e.Paragraph="paragraph"}(d=t.ResultType||(t.ResultType={}));t.createPromise=()=>{let e,t;const n=new Promise(((n,r)=>{e=n,t=r}));return{reject:t,resolve:e,promise:n,callback:(n,r)=>{r?t(r):e(n)}}};(async()=>{if("undefined"==typeof window)return;const e=window;e.getProxiedGeneratedData=()=>s,e.createSearchInstance=async e=>new c(e)})()},55061:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IconRemove=t.IconAdd=t.IconDownload=t.IconAvatar=t.IconX=t.IconTelegramWhite=t.IconDiscordWhite=t.IconExternalLink=t.IconFullscreenExit=t.IconFullscreen=t.IconEdit=t.IconClose=t.IconHistory=t.IconCopy=t.IconGScholar=t.IconDropdown=t.IconSearch=t.IconFolderFilled=t.IconDot=t.IconLinkedin=t.IconDiscourse=t.IconTelegram=t.IconTwitter=t.IconStatus=t.IconDiscord=t.IconGithub=t.IconFolder=t.IconArrowLeft=t.IconArrowRight=t.IconArrowLeftCircle=t.IconArrowRightCircle=t.Icon=void 0;const r=n(97582),o=n(86010),a=r.__importDefault(n(67294)),i=r.__importDefault(n(27861)),l=r.__importDefault(n(19044)),s=r.__importDefault(n(80255)),u=r.__importDefault(n(67146)),c=r.__importDefault(n(68425)),d=r.__importDefault(n(88121)),f=r.__importDefault(n(62082)),p=r.__importDefault(n(80469)),h=r.__importDefault(n(94793)),m=r.__importDefault(n(14607)),g=r.__importDefault(n(50437)),v=r.__importDefault(n(23179)),b=r.__importDefault(n(19818)),y=r.__importDefault(n(38981)),w=r.__importDefault(n(28487)),x=r.__importDefault(n(94177)),_=r.__importDefault(n(58611)),k=r.__importDefault(n(13042)),E=r.__importDefault(n(96367)),S=r.__importDefault(n(6907)),C=r.__importDefault(n(59570)),T=r.__importDefault(n(26890)),O=r.__importDefault(n(74297)),D=r.__importDefault(n(33336)),P=r.__importDefault(n(78951)),N=r.__importDefault(n(84629)),I=r.__importDefault(n(23816)),A=r.__importDefault(n(35245)),L=r.__importDefault(n(68902)),R=r.__importDefault(n(86089)),j=r.__importDefault(n(92358));t.Icon=e=>{const{children:t,size:n="m"}=e;return a.default.createElement("div",{className:(0,o.clsx)(i.default.icon,i.default[n],e.stroke&&i.default.stroke,e.fill&&i.default.fill,e.className&&e.className)},t)};t.IconArrowRightCircle=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(c.default,null));t.IconArrowLeftCircle=e=>a.default.createElement(t.Icon,null,a.default.createElement(s.default,null));t.IconArrowRight=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(d.default,null));t.IconArrowLeft=e=>a.default.createElement(t.Icon,null,a.default.createElement(u.default,null));t.IconFolder=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(k.default,null));t.IconGithub=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(C.default,null));t.IconDiscord=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(g.default,null));t.IconStatus=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(I.default,null));t.IconTwitter=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(R.default,null));t.IconTelegram=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(L.default,null));t.IconDiscourse=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(v.default,null));t.IconLinkedin=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(D.default,null));t.IconDot=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(b.default,null));t.IconFolderFilled=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(k.default,null));t.IconSearch=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(N.default,null));t.IconDropdown=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(w.default,null));t.IconGScholar=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(T.default,null));t.IconCopy=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(h.default,null));t.IconHistory=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(O.default,null));t.IconClose=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(p.default,null));t.IconEdit=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(x.default,null));t.IconFullscreen=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(S.default,null));t.IconFullscreenExit=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(E.default,null));t.IconExternalLink=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(_.default,null));t.IconDiscordWhite=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(m.default,null));t.IconTelegramWhite=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(A.default,null));t.IconX=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(j.default,null));t.IconAvatar=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(f.default,null));t.IconDownload=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(y.default,null));t.IconAdd=e=>a.default.createElement(t.Icon,{...e,stroke:!0},a.default.createElement(l.default,null));t.IconRemove=e=>a.default.createElement(t.Icon,{...e,stroke:!0},a.default.createElement(P.default,null))},78870:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(55061),t)},40466:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;const r=n(97582),o=r.__importDefault(n(86010)),a=r.__importDefault(n(67294)),i=n(89164),l=n(96507),s=n(38954);n(22473);t.Modal=e=>{let{open:t=!1,onClose:n,keepMounted:r=!1,className:u,children:c,...d}=e;const f=(0,l.useHydrated)(),p=()=>{n&&n()};return(0,i.useKeyPressEvent)((e=>"Escape"===e.code),(e=>{p()})),f&&(t||r)?a.default.createElement(s.Portal,{containerId:"lsd-presentation",id:d.id},a.default.createElement("div",{className:(0,o.default)(u,"l-modal",t&&"l-modal--open"),...d},a.default.createElement("div",{className:"l-modal__container"},a.default.createElement("div",{className:"l-modal__content"},c),a.default.createElement("div",{className:"l-modal__backdrop",onClick:p})))):a.default.createElement(a.default.Fragment,null)}},38954:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Portal=void 0;const r=n(97582).__importDefault(n(67294)),o=n(73935),a=n(40653);t.Portal=e=>{let{children:t,containerId:n,id:i}=e;if("undefined"==typeof window)return r.default.createElement(r.default.Fragment,null);const l=(0,a.usePortal)({parentId:n});return(0,o.createPortal)(t,l,i)}},40653:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePortal=void 0;const r=n(67294),o=n(89321);t.usePortal=e=>{let{parentId:t}=e;const n=(0,r.useRef)();return n.current||(n.current=document.createElement("div")),(0,r.useEffect)((()=>{if(n.current)return document.getElementById(t)?.appendChild(n.current),()=>{const e=n.current;e&&(0,o.settleSync)((()=>document.getElementById(t)?.removeChild(e)))}}),[t,n.current]),n.current}},19843:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LightBoxWrapper=t.useLightBox=t.LightBoxContext=t.LightBoxProvider=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(29785)),i=r.__importDefault(n(86010)),l=r.__importStar(n(67294)),s=r.__importStar(n(33052)),u=n(89164),c=n(55061),d=n(38954),f=n(96507),p=n(53708),h=r.__importDefault(n(10153));t.LightBoxProvider=e=>{let{children:n}=e;const r=(0,f.useHydrated)(),s=(0,u.useWindowScroll)(),[m,g]=(0,l.useState)(null),[v,b]=(0,l.useState)({opacity:"0.5"}),y=(0,p.useIsMobile)(),w=(0,l.useMemo)((()=>({opacity:1,transform:"scale(1) translate(0px, 0px)",transition:"0.3s"})),[m]),x=e=>{g(e);const t=document.body.clientWidth,n=window.innerHeight,r=window.innerWidth>768?.9375*t:t-32,o=n-128,a=e.getBoundingClientRect(),i=Math.min(o/a.height,r/a.width),l=[a.left+a.width/2,a.top+a.height/2],s=[t/2,n/2].map(((e,t)=>(e-l[t])/i));b({zIndex:202,transform:`scale(${i}) translate(${s[0]}px, ${s[1]}px)`,position:"relative"})},_=()=>{g(null)};return(0,l.useEffect)((()=>{m&&window.innerWidth>768&&_()}),[s]),(0,l.useEffect)((()=>{if(y&&m){document.querySelector("html").style.overflow="hidden"}else{document.querySelector("html").style.overflow="initial"}}),[y,m]),l.default.createElement(t.LightBoxContext.Provider,{value:{active:m,style:w,activeStyle:v,display:x,close:_,toggle:e=>{const t=m;_(),t!==e&&x(e)}}},n,r&&l.default.createElement(d.Portal,{containerId:"lsd-presentation"},l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,i.default)(h.default.backdrop,m&&h.default.visible)}),l.default.createElement("div",{className:(0,i.default)(h.default.navWrapper,m&&h.default.visible)},l.default.createElement("nav",{className:(0,i.default)(h.default.nav,"navbar",m&&h.default.visible)},l.default.createElement(a.default,null),l.default.createElement(o.IconButton,{size:"medium",onClick:_},l.default.createElement(c.IconFullscreenExit,null)))))))},t.LightBoxContext=l.default.createContext({style:{},activeStyle:{},active:null,close:null,toggle:null,display:null});t.useLightBox=()=>{const e=(0,l.useContext)(t.LightBoxContext);return{getStyle:t=>({...e.style,...t===e.active?e.activeStyle:{}}),style:e.style,activeStyle:e.activeStyle,active:e.active,isActive:!!e.active,close:e.close,toggle:e.toggle,display:e.display,isActiveElement:t=>e.active===t}};t.LightBoxWrapper=e=>{let{children:n}=e;const r=(0,l.useRef)(null),a=(0,l.useRef)(null),{getStyle:u,display:d,isActiveElement:f}=(0,t.useLightBox)(),m=(0,p.useIsMobile)(),g=(0,l.useCallback)((e=>{let{x:t,y:n,scale:r}=e;const{current:o}=a;if(o){const e=(0,s.make3dTransformValue)({x:t,y:n,scale:r});o.style.setProperty("transform",e)}}),[]),v=m&&r.current&&f(r.current)?l.default.createElement(s.default,{onUpdate:g,doubleTapZoomOutOnMaxScale:!0,maxZoom:3},l.default.createElement("div",{ref:a},n)):l.default.createElement(l.default.Fragment,null,n,l.default.createElement(o.IconButton,{className:h.default.fullscreenButton,size:"medium",onClick:()=>r.current&&d(r.current)},l.default.createElement(c.IconFullscreen,null)));return l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,i.default)(h.default.wrapper,f(r.current)&&h.default.active),ref:r,style:r.current?u(r.current):{}},v))}},78991:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeProvider=void 0;const r=n(97582),o=n(31665),a=n(70917),i=r.__importDefault(n(67294)),l=n(92198);t.ThemeProvider=e=>{let{children:t}=e;const n=(0,l.useTheme)();return i.default.createElement(o.ThemeProvider,{theme:n.current,injectCssVars:!1},i.default.createElement(a.Global,{styles:n.darkCssVars}),i.default.createElement(a.Global,{styles:n.lightCssVars}),t)}},27967:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(78991),t)},89321:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.settleSync=t.settle=void 0;t.settle=async e=>{try{return["function"==typeof e?await e():await e,void 0]}catch(t){return[void 0,t]}};t.settleSync=e=>{try{return[e(),void 0]}catch(t){return[void 0,t]}}},28097:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureTrailingSlash=t.ensureTrailingString=void 0;t.ensureTrailingString=(e,t)=>e.endsWith(t)?e:e+t;t.ensureTrailingSlash=e=>(0,t.ensureTrailingString)(e,"/")},92198:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useTheme=void 0;const r=n(31665),o=n(82818),a=n(70917),i=n(67294),l=n(54400),s=(e,t)=>(0,i.useMemo)((()=>a.css` - [data-theme=${t}] { - ${e.cssVars} - } - `),[e]);t.useTheme=()=>{const e=(0,o.useColorMode)(),{typography:t}=(0,l.useThemeOptions)(),n=t?.genericFontFamily??"sans-serif",a=r.defaultThemes,u=(0,i.useMemo)((()=>{const e={breakpoints:{},palette:{},typography:{},typographyGlobal:{genericFontFamily:n},spacing:[]};return{light:(0,r.createTheme)(e,a.light),dark:(0,r.createTheme)(e,a.dark)}}),[a,n]);return{dark:u.dark,light:u.light,current:u[e.colorMode],colorMode:e.colorMode,lightCssVars:s(u.light,"light"),darkCssVars:s(u.dark,"dark")}}},55873:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useEventListener=void 0;const r=n(67294);t.useEventListener=(e,t,n,o,a)=>{const i=(0,r.useMemo)((()=>"string"==typeof e?e:e()),[]),l=(0,r.useMemo)((()=>"function"==typeof t?t():t),[t]);(0,r.useEffect)((()=>{if(l?.addEventListener&&l?.removeEventListener)return l.addEventListener(i,n,o),()=>{l.removeEventListener(i,n,o)}}),[i,l])}},96507:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useHydrated=void 0;const r=n(67294);t.useHydrated=()=>{const[e,t]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{t(!0)}),[]),e}},53708:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useIsMobile=void 0;const r=n(89164);t.useIsMobile=()=>(0,r.useMedia)("(max-width: 1199px)")},81803:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePersistedHistory=void 0;const r=n(89164);t.usePersistedHistory=(e,t)=>{const n=t?.unique??!1,o=t?.equals??((e,t)=>e===t),a=t?.maxItems??null,[i,l]=(0,r.useLocalStorage)("logos-docusaurus-theme-"+e,[]),s=e=>{l((i??[]).filter(((t,n)=>!e(t,n))))};return{add:e=>{const t=i??[],r=[e,...n?t.filter((t=>!o(t,e))):t];l(a?r.slice(0,a):r)},clear:()=>{l([])},remove:s,removeByIndex:e=>{s(((t,n)=>n===e))},list:i}}},54400:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useDocThemeOptions=t.useThemeOptions=void 0;const r=n(97582),o=n(80143),a=r.__importDefault(n(52263));t.useThemeOptions=()=>{const{siteConfig:{customFields:e={}}}=(0,a.default)();return e["logos-docusaurus-theme"]??{}};t.useDocThemeOptions=()=>{const e=(0,o.useActivePlugin)(),n=(0,t.useThemeOptions)();return e?n?.docs?.[e?.pluginId]??{}:{}}},521:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useWindowEventListener=void 0;const r=n(55873);t.useWindowEventListener=function(e,t,n,o){void 0===o&&(o=[]),(0,r.useEventListener)(e,(()=>"undefined"!=typeof window&&window),t,n,o)}},66354:(e,t,n)=>{"use strict";const r=n(97582),o=n(31665),a=n(95999),i=r.__importDefault(n(72389)),l=r.__importDefault(n(55211)),s=r.__importDefault(n(67080)),u=r.__importDefault(n(86010)),c=r.__importDefault(n(67294)),d=r.__importDefault(n(8633));t.Z=c.default.memo((function(e){let{className:t,buttonClassName:n,value:r,onChange:f}=e;const p=(0,i.default)(),h=(0,a.translate)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,a.translate)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,a.translate)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return c.default.createElement(o.IconButton,{className:(0,u.default)("clean-btn",d.default.toggle,t,!p&&d.default.toggleButtonDisabled,n),type:"button",onClick:()=>f("dark"===r?"light":"dark"),disabled:!p,title:h,"aria-label":h,"aria-live":"polite"},c.default.createElement(s.default,{className:(0,u.default)(d.default.toggleIcon,d.default.lightToggleIcon)}),c.default.createElement(l.default,{className:(0,u.default)(d.default.toggleIcon,d.default.darkToggleIcon)}))}))},52601:(e,t,n)=>{"use strict";const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(79762));t.Z=function(e){let{style:t,links:n,logo:r,copyright:s}=e;const[u,c]=(e=>{const t=[],n=[];for(const r of e)"title"in r&&"string"==typeof r.title&&r.title.startsWith("shared:")?n.push({...r,title:r.title.slice(7)}):t.push(r);return[t,n]})(n.props.links);return i.default.createElement("footer",{className:(0,a.default)("footer",{"footer--dark":"dark"===t})},i.default.createElement("div",{className:(0,a.default)("container","container-fluid",l.default.firstRow)},(r||s)&&i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"footer__bottom text--center"},r&&i.default.createElement("div",{className:"margin-bottom--sm"},r),s)),i.default.cloneElement(n,{links:u})),i.default.createElement("div",{className:l.default.secondRow},i.default.createElement("div",{className:"footer__bottom text--center"},"Logos Collective"),i.default.cloneElement(n,{links:c})),i.default.createElement(o.Button,{className:l.default.backToTop,size:"small",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},"Back to top \u2191"))}},90988:(e,t,n)=>{"use strict";const r=n(97582).__importDefault(n(67294)),o=n(82818),a=n(53458),i=(0,o.composeProviders)([a.AnnouncementBarProvider,a.ScrollControllerProvider,a.DocsPreferredVersionContextProvider,a.PluginHtmlClassNameProvider,a.NavbarProvider]);t.Z=function(e){let{children:t}=e;return r.default.createElement(i,null,t)}},16853:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(39960)),i=r.__importDefault(n(44996)),l=r.__importDefault(n(52263)),s=n(82818),u=r.__importDefault(n(50941));function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.default)(t.src),dark:(0,i.default)(t.srcDark||t.src)},l=o.default.createElement(u.default,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.default.createElement("div",{className:r},l):l}t.default=function(e){const{siteConfig:{title:t}}=(0,l.default)(),{navbar:{title:n,logo:r}}=(0,s.useThemeConfig)(),{imageClassName:u,titleClassName:d,...f}=e,p=(0,i.default)(r?.href||"/"),h=n?"":t,m=r?.alt??h;return o.default.createElement(a.default,{to:p,...f,...r?.target&&{target:r.target}},r&&o.default.createElement(c,{logo:r,alt:m,imageClassName:u}),null!=n&&o.default.createElement("b",{className:d},n))}},10428:(e,t,n)=>{"use strict";const r=n(97582),o=n(31665),a=n(82818),i=n(53458),l=r.__importDefault(n(2101)),s=r.__importDefault(n(29785)),u=r.__importDefault(n(29865)),c=r.__importDefault(n(4710)),d=r.__importDefault(n(33760)),f=r.__importDefault(n(86010)),p=r.__importDefault(n(67294)),h=n(96507),m=r.__importDefault(n(90826));function g(e){let{items:t}=e;return p.default.createElement(p.default.Fragment,null,t.map(((e,t)=>p.default.createElement(a.ErrorCauseBoundary,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},p.default.createElement(c.default,{...e})))))}t.Z=function(){const e=(0,h.useHydrated)(),t=(0,i.useNavbarMobileSidebar)(),n=(0,a.useThemeConfig)().navbar.items,[r,c]=(0,i.splitNavbarItems)(n.filter((e=>!["search"].includes(e.type??"")))),v=n.find((e=>"search"===e.type));return p.default.createElement("div",{className:"navbar__inner"},p.default.createElement("div",{className:"navbar__left"},p.default.createElement(s.default,null)),p.default.createElement("div",{className:"navbar__left-items"},p.default.createElement(g,{items:r})),p.default.createElement("div",{className:"navbar__right-items"},p.default.createElement(g,{items:c}),p.default.createElement(o.IconButtonGroup,{className:m.default.iconButtonGroup,size:"medium"},p.default.createElement(l.default,{key:"color-toggle",className:(0,f.default)(m.default.colorModeToggle,"navbar__color-mode-toggle")}),e&&p.default.createElement(p.default.Fragment,{key:"search"},v&&p.default.createElement(d.default,null)),p.default.createElement(p.default.Fragment,{key:"mobile-sidebar-toggle"},!t.disabled&&p.default.createElement(u.default,null)))))}},4818:(e,t,n)=>{"use strict";const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(86010)),i=n(82818),l=n(53458),s=n(95999),u=r.__importDefault(n(2203)),c=r.__importDefault(n(97087));function d(e){return o.default.createElement("div",{role:"presentation",...e,className:(0,a.default)("navbar-sidebar__backdrop",e.className)})}t.Z=function(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:r}}=(0,i.useThemeConfig)(),f=(0,l.useNavbarMobileSidebar)(),{navbarRef:p,isNavbarVisible:h}=(0,l.useHideableNavbar)(n);return o.default.createElement("nav",{ref:p,"aria-label":(0,s.translate)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.default)("navbar","navbar--fixed-top",n&&[c.default.navbarHideable,!h&&c.default.navbarHidden],{"navbar--dark":"dark"===r,"navbar--primary":"primary"===r,"navbar-sidebar--show":f.shown})},t,o.default.createElement(d,{onClick:f.toggle}),o.default.createElement(u.default,null))}},29785:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(16853));t.default=function(){return o.default.createElement(a.default,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}},42977:(e,t,n)=>{"use strict";const r=n(97582),o=r.__importDefault(n(67294)),a=n(53458),i=n(95999),l=r.__importDefault(n(2101)),s=r.__importDefault(n(29785)),u=n(31665),c=r.__importDefault(n(33760));function d(){const e=(0,a.useNavbarMobileSidebar)();return o.default.createElement("button",{type:"button","aria-label":(0,i.translate)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},o.default.createElement(u.CloseIcon,null))}t.Z=function(){return o.default.createElement("div",{className:"navbar-sidebar__brand"},o.default.createElement(s.default,null),o.default.createElement(l.default,{className:"margin-right--md"}),o.default.createElement(c.default,null),o.default.createElement(d,null))}},82892:(e,t,n)=>{"use strict";const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(86010)),i=n(53458),l=r.__importDefault(n(88507));t.Z=function(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:s}=(0,i.useNavbarSecondaryMenu)();return o.default.createElement("div",{className:(0,a.default)("navbar-sidebar",s&&"navbar-sidebar--show-secondary")},t,o.default.createElement("div",{className:(0,a.default)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":s})},o.default.createElement("div",{className:"navbar-sidebar__item menu"},n,!s&&o.default.createElement(l.default,null)),o.default.createElement("div",{className:"navbar-sidebar__item menu"},r)))}},38732:(e,t,n)=>{"use strict";const r=n(97582),o=n(31665),a=n(82818),i=n(53458),l=r.__importDefault(n(95999)),s=n(78870),u=r.__importDefault(n(67294));function c(e){return u.default.createElement("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back"},u.default.createElement(s.IconArrowLeft,null),u.default.createElement(o.Typography,null,u.default.createElement(l.default,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"Back to main menu")))}t.Z=function(){const e=0===(0,a.useThemeConfig)().navbar.items.length,t=(0,i.useNavbarSecondaryMenu)();return u.default.createElement(u.default.Fragment,null,!e&&u.default.createElement(c,{onClick:()=>t.hide()}),t.content)}},27654:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=n(31665),a=n(82818),i=n(53458),l=r.__importDefault(n(4710)),s=r.__importDefault(n(51125)),u=r.__importDefault(n(86010)),c=r.__importStar(n(67294)),d=r.__importDefault(n(83244));function f(e,t){return e.some((e=>function(e,t){return!!(0,i.isSamePath)(e.to,t)||!!(0,a.isRegexpStringMatch)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function p(e){let{items:t,position:n,className:r,onClick:a,...i}=e;const f=(0,c.useRef)(null),[p,h]=(0,c.useState)(!1);return(0,c.useEffect)((()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&h(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[f]),c.default.createElement("div",{ref:f,className:(0,u.default)("navbar__item",d.default.dropdownNavbarItem,"dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":p})},c.default.createElement(s.default,{"aria-haspopup":"true","aria-expanded":p,role:"button",href:i.to?void 0:"#",className:(0,u.default)("navbar__link",r),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),h(!p))}},i.children??i.label),c.default.createElement(o.ChevronDownIcon,{className:(0,u.default)("margin-left-8","cursor-pointer")}),c.default.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>c.default.createElement(l.default,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))))}function h(e){let{items:t,className:n,position:r,onClick:d,...p}=e;const h=(0,i.useLocalPathname)(),m=f(t,h),{collapsed:g,toggleCollapsed:v,setCollapsed:b}=(0,a.useCollapsible)({initialState:()=>!m});return(0,c.useEffect)((()=>{m&&b(!m)}),[h,m,b]),c.default.createElement("li",{className:(0,u.default)("menu__list-item",{"menu__list-item--collapsed":g})},c.default.createElement(s.default,{role:"button",className:(0,u.default)("menu__link menu__link--sublist menu__link--sublist-caret",n),...p,onClick:e=>{e.preventDefault(),v()}},c.default.createElement(o.Typography,{variant:"body1"},p.children??p.label)),c.default.createElement(a.Collapsible,{lazy:!0,as:"ul",className:"menu__list",collapsed:g},t.map(((e,t)=>c.default.createElement(l.default,{mobile:!0,isDropdownItem:!0,onClick:d,activeClassName:"menu__link--active",...e,key:t})))))}t.default=function(e){let{mobile:t=!1,...n}=e;const r=t?h:p;return c.default.createElement(r,{...n})}},12197:(e,t,n)=>{"use strict";const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(52263)),i=n(53458),l=n(95999),s=n(28143),u=r.__importDefault(n(27654));t.Z=function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,...c}=e;const{i18n:{currentLocale:d,locales:f,localeConfigs:p}}=(0,a.default)(),h=(0,i.useAlternatePageUtils)(),{search:m,hash:g}=(0,s.useLocation)(),v=[...n,...f.map((e=>{const n=`${`pathname://${h.createUrl({locale:e,fullyQualified:!1})}`}${m}${g}`;return{label:p[e]?.label,lang:p[e]?.htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===d?t?"menu__link--active":"dropdown__link--active":""}})),...r],b=t?(0,l.translate)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):p[d]?.label.substring(0,2).toUpperCase();return o.default.createElement(u.default,{...c,mobile:t,label:o.default.createElement(o.default.Fragment,null,b),items:v})}},51125:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=n(31665),a=r.__importDefault(n(13919)),i=r.__importDefault(n(39960)),l=n(82818),s=r.__importDefault(n(44996)),u=r.__importDefault(n(67294)),c=n(55061),d=r.__importDefault(n(88822));t.default=function(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:f,label:p,html:h,isDropdownLink:m,prependBaseUrlToHref:g,...v}=e;const b=(0,s.default)(r),y=(0,s.default)(t),w=(0,s.default)(f,{forcePrependBaseUrl:!0}),x=p&&f&&!(0,a.default)(f),_=h?{dangerouslySetInnerHTML:{__html:h}}:{children:u.default.createElement(o.Typography,{component:"div",variant:"body2",className:d.default.linkContent},p,x&&u.default.createElement(c.IconExternalLink,{className:d.default.externalLinkIcon}))};return f?u.default.createElement(i.default,{href:g?w:f,...v,..._}):u.default.createElement(i.default,{to:b,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,l.isRegexpStringMatch)(n,t.pathname):t.pathname.startsWith(y)},...v,..._})}},85140:(e,t,n)=>{"use strict";const r=n(97582),o=n(53458),a=r.__importDefault(n(67294)),i=n(19843),l=n(27967),s=n(54400),u=r.__importDefault(n(36459));t.Z=function(e){let{children:t}=e;const n=(0,s.useDocThemeOptions)(),r=n?.sidebar?.hide;return a.default.createElement(o.ColorModeProvider,null,a.default.createElement(l.ThemeProvider,null,a.default.createElement(i.LightBoxProvider,null,a.default.createElement("div",{className:u.default.root,"data-hidden-doc-sidebar":r},t))))}},7020:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchBar=void 0;const r=n(97582),o=n(31665),a=r.__importStar(n(67294)),i=n(40466),l=n(81803),s=n(521),u=n(71044),c=r.__importDefault(n(31259)),d=n(19323),f=n(72997),p=n(43110);t.SearchBar=e=>{let{}=e;const t=(0,l.usePersistedHistory)("search",{unique:!0,equals:(e,t)=>e.title===t.title&&e.href===t.href,maxItems:10}),n=(0,u.useSearch)(),r=(0,a.useRef)(null),[h,m]=(0,a.useState)(""),[g,v]=(0,a.useState)([]),[b,y]=(0,a.useState)(!1);(0,a.useEffect)((()=>{h.length>0?(async e=>{const{results:t}=await n.query(e);v(t)})(h):v([])}),[h]),(0,a.useEffect)((()=>{b?(()=>{const e=r.current;if(!e)return;const t=e.querySelector("input");t&&setTimeout((()=>{t.focus()}),50)})():m("")}),[b]);return(0,s.useWindowEventListener)("keydown",(e=>{(e.ctrlKey||e.metaKey)&&"KeyK"===e.code&&(e.preventDefault(),y(!0))}),{},[]),a.default.createElement(a.default.Fragment,null,a.default.createElement(o.IconButton,{onClick:()=>y(!0),size:"medium"},a.default.createElement(o.SearchIcon,null)),a.default.createElement(i.Modal,{keepMounted:!0,id:"search-modal",open:b,onClose:()=>y(!1),className:c.default.modal},a.default.createElement("div",{className:c.default.header},a.default.createElement(f.SearchInput,{containerRef:r,onClear:()=>{m("")},value:h,onChange:e=>{m(e.target.value)}}),a.default.createElement(o.IconButton,{className:c.default.closeButton,size:"medium",onClick:()=>y(!1)},a.default.createElement(o.CloseIcon,{color:"primary"}))),h.length>0&&a.default.createElement(p.SearchResults,{results:g,onNavigate:(e,n)=>{e.preventDefault(),y(!1),t.add(n),window.location.href=n.href}}),0===h.length&&a.default.createElement(d.SearchHistory,{history:t.list??[],onRemove:t.removeByIndex,onClose:()=>y(!1)})))}},19323:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchHistory=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=n(55061),s=n(33493),u=r.__importDefault(n(61699));t.SearchHistory=e=>{let{history:t=[],onRemove:n,onClose:r,className:c,children:d,...f}=e;return i.default.createElement("div",{className:(0,a.default)(c,u.default.root,0===t.length&&u.default.empty),...f},0===t.length?i.default.createElement(s.SearchResultMessage,null,"No recent searches"):i.default.createElement(i.default.Fragment,null,i.default.createElement(o.Typography,{className:u.default.title,variant:"subtitle2",component:"div"},"Recent"),t.map(((e,t)=>i.default.createElement("div",{key:t,className:u.default.item},i.default.createElement(l.IconHistory,null),i.default.createElement(o.Typography,{variant:"subtitle2",component:"a",href:e.href,className:u.default.itemTitle,dangerouslySetInnerHTML:{__html:e.title},onClick:()=>r&&r()}),i.default.createElement("button",{className:"clean-btn",onClick:()=>n(t)},i.default.createElement(l.IconClose,null)))))))}},72997:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchInput=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=n(89164),s=r.__importDefault(n(9592));t.SearchInput=e=>{let{value:t="",active:n,onChange:r,onClear:u,onFocus:c,onCancel:d,className:f,inputProps:{ref:p,...h}={placeholder:""},containerRef:m,...g}=e;const v=(0,l.useMedia)("(max-width: 996px)"),b=n||t?.length>0;return i.default.createElement("div",{ref:m,className:(0,a.default)(s.default.root,b&&s.default.expanded,f),onKeyDown:e=>{"Escape"===e.code&&t.length>0&&(e.stopPropagation(),u&&u())},...g},i.default.createElement(o.TextField,{className:s.default.textField,value:t,placeholder:b||v?h.placeholder:"",onChange:r,onFocus:e=>{c&&c()},clearButton:!0,icon:i.default.createElement(o.SearchIcon,{color:"primary"}),...h}))}},49067:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultGroup=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(1443));t.SearchResultGroup=e=>{let{className:t,title:n="",children:r,...s}=e;return i.default.createElement("div",{className:(0,a.default)(l.default.root,t),...s},i.default.createElement("div",null,i.default.createElement(o.Typography,{variant:"subtitle2"},n)),i.default.createElement("ul",null,r))}},38594:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(49067),t)},51105:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultItem=void 0;const r=n(97582),o=r.__importDefault(n(39960)),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(7744)),s=r.__importDefault(n(42924)),u=n(95571),c=n(36301),d=r.__importDefault(n(18589)),f={[c.SearchDocumentType.Title]:i.default.createElement(l.default,{className:(0,a.default)(d.default.icon,d.default.fill)}),[c.SearchDocumentType.Heading]:i.default.createElement(s.default,{className:(0,a.default)(d.default.icon,d.default.fill)}),[c.SearchDocumentType.Paragraph]:i.default.createElement(s.default,{className:(0,a.default)(d.default.icon,d.default.fill)})};t.SearchResultItem=e=>{let{type:t,level:n=0,href:r,title:l,content:s,className:c,linkProps:{className:p,...h}={},...m}=e;const g=f[t];return i.default.createElement(o.default,{href:r,className:(0,a.default)(d.default.root,d.default[`level${n}`],p),...h},i.default.createElement(u.SearchResultItemBase,{title:l,content:s,icon:g,...m}))}},13383:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(51105),t)},86704:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultItemBase=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(86620));t.SearchResultItemBase=e=>{let{icon:t,title:n,content:r,className:s,...u}=e;return i.default.createElement("li",{className:(0,a.default)(l.default.root,s),...u},i.default.createElement("span",null,t),i.default.createElement("div",null,n&&i.default.createElement(o.Typography,{variant:"subtitle2",component:"span",dangerouslySetInnerHTML:{__html:n}})))}},95571:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(86704),t)},33493:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultMessage=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(38076));t.SearchResultMessage=e=>{let{className:t,children:n,...r}=e;return i.default.createElement(o.Typography,{className:(0,a.default)(t,l.default.root),variant:"subtitle2",component:"div",...r},i.default.createElement("span",null,n))}},43110:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResults=void 0;const r=n(97582),o=r.__importDefault(n(86010)),a=r.__importStar(n(67294)),i=n(38594),l=n(13383),s=n(33493),u=n(81104),c=r.__importDefault(n(20550));t.SearchResults=e=>{let{results:t,className:n,onNavigate:r,...d}=e;const f=t.length,p=(0,a.useMemo)((()=>(0,u.groupSearchResult)(t)),[t]);return a.default.createElement("div",{className:(0,o.default)(c.default.root,0===f&&c.default.noResults)},0===f&&a.default.createElement(s.SearchResultMessage,null,"No result."),a.default.createElement("div",{className:(0,o.default)(c.default.groups)},p.map(((e,t)=>{let[n,o]=e;return a.default.createElement(a.default.Fragment,{key:t},a.default.createElement(i.SearchResultGroup,{className:c.default.group,title:n},o.map(((e,t)=>a.default.createElement(l.SearchResultItem,{key:t,type:e.type,level:e.level,href:e.href,title:e.title,content:e.content,linkProps:r?{onClick:t=>r(t,e)}:{}})))))}))))}},71044:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSearch=void 0;const r=n(67294),o=n(36043);t.useSearch=()=>{const{createSearchInstance:e}=window,t=(0,o.useSearchContextPath)(),[n,a]=(0,r.useState)(!1),i=(0,r.useRef)(null);return(0,r.useEffect)((()=>{a(!1),(async()=>{i.current=await e({resultsLimit:50,preferredVersionPath:t[0],searchContextByPaths:t[1]}),await i.current.init(),a(!0)})()}),[t[0],t[1]]),{loaded:n,query:async e=>await i.current.query(e)}}},36043:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSearchContextPath=void 0;const r=n(80143),o=n(28097),a=()=>window.getProxiedGeneratedData().searchContextByPaths;t.useSearchContextPath=()=>{const e=a(),t=(0,r.useActivePluginAndVersion)();if(!t)return["/",""];const{activePlugin:{pluginData:{path:n}},activeVersion:i}=t;return i?[n!==i.path?(0,o.ensureTrailingSlash)(i.path):"/",e]:["/",""]}},33760:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=r.__importDefault(n(44763)),a=r.__importDefault(n(67294)),i=n(7020);t.default=()=>"undefined"==typeof window?a.default.createElement(a.default.Fragment,null):a.default.createElement(o.default,{fallback:()=>a.default.createElement(a.default.Fragment,null)},a.default.createElement(i.SearchBar,null))},36301:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchDocumentType=void 0,function(e){e.Title="title",e.Heading="heading",e.Paragraph="paragraph"}(t.SearchDocumentType||(t.SearchDocumentType={}))},81104:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.groupSearchResult=void 0;const r=n(97582),o=r.__importDefault(n(7739)),a=r.__importDefault(n(57557)),i=n(36301);t.groupSearchResult=e=>Object.entries((0,o.default)(e.map((e=>(e=>{const{type:t,document:n,page:r,highlighted:o,score:a}=e,{url:l,hash:s=""}=n,u=l+s;switch(t){case i.SearchDocumentType.Title:return{type:t,level:0,url:l,hash:s,href:u,score:a,title:o,content:"",category:n.breadcrumb?.[1]??n.title};case i.SearchDocumentType.Heading:{const e=r;return{type:t,level:1,url:l,hash:s,href:u,score:a,title:o,content:"",category:e?.breadcrumb?.[1]??e?.title??""}}case i.SearchDocumentType.Paragraph:{const e=r;return{type:t,level:2,url:l,hash:s,href:u,score:a,title:n.sectionTitle||n.title||"",content:o,category:e?.breadcrumb?.[1]??e?.title??""}}}})(e))),"category")).map((e=>{let[t,n]=e;return[t,n.map((e=>(0,a.default)(e,"category"))).sort(((e,t)=>e.score>t.score?-1:1))]})).sort(((e,t)=>(e[1][0]?.score??0)>(t[1][0]?.score??0)?-1:1)).map((e=>{let[t,n]=e;return[t,Object.entries((0,o.default)(n,"url")).map((e=>{let[t,n]=e,r=[...n].sort(((e,t)=>e.type===i.SearchDocumentType.Title||e.score>t.score?-1:1));const o=r[0]?.type===i.SearchDocumentType.Title;return r=o?r.filter((e=>!(e.type===i.SearchDocumentType.Heading&&""===e.hash))):r,r=r.map(((e,t)=>({...e,level:o?0===t?0:1:0}))),[t,r]})).sort(((e,t)=>(e[1][0]?.score??0)>(t[1][0]?.score??0)?-1:1)).flatMap((e=>{let[t,n]=e;return n}))]}))},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(67294);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},2691:(e,t,n)=>{"use strict";var r=n(67294),o=n(73935),a=n(73727),i=n(70405),l=n(10412);const s=[n(85711),n(32497),n(3310),n(18320),n(11057),n(93878)];var u=n(723),c=n(16550),d=n(18790),f=n(85140),p=n(87462),h=n(35742),m=n(52263),g=n(44996),v=n(86668),b=n(10833),y=n(94711),w=n(19727),x=n(43320),_=n(18780),k=n(90197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,m.default)(),n=(0,y.l)();return r.createElement(h.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function S(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.default)(),o=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.default)(),{pathname:r}=(0,c.TH)();return e+(0,_.applyTrailingSlash)((0,g.default)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:o;return r.createElement(h.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function C(){const{i18n:{currentLocale:e}}=(0,m.default)(),{metadata:t,image:n}=(0,v.L)();return r.createElement(r.Fragment,null,r.createElement(h.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(b.d,{image:n}),r.createElement(S,null),r.createElement(E,null),r.createElement(k.Z,{tag:x.HX,locale:e}),r.createElement(h.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const T=new Map;function O(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var D=n(98934),P=n(58940);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const I=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),N("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function A(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class L extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?N("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),A(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(I,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const R=L,j="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function z(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${j}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(h.Z,null,r.createElement("script",null,z(e))),r.createElement("div",{id:j}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.default)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement($,null):null}function H(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,m.default)(),i=(0,g.default)(e),{htmlLang:l,direction:s}=a[o];return r.createElement(h.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var V=n(44763),q=n(72389);function W(){const e=(0,q.default)();return r.createElement(h.Z,null,r.createElement("html",{"data-has-hydrated":e}))}function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(V.default,null,r.createElement(P.M,null,r.createElement(D.t,null,r.createElement(f.Z,null,r.createElement(H,null),r.createElement(C,null),r.createElement(U,null),r.createElement(R,{location:O(t)},e)),r.createElement(W,null))))}var Z=n(16887);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(99670);const X=new Set,K=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!K.has(e)&&!X.has(e))(e))return!1;X.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Z).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!K.has(e))(e)&&(K.add(e),A(e))},te=Object.freeze(ee);if(l.Z.canUseDOM){window.docusaurus=te;const e=o.hydrate;A(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(67294),o=n(36809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"community","docs":[{"id":"community","path":"/community"},{"id":"join-us","path":"/join-us"},{"id":"privacy-policy","path":"/privacy-policy"},{"id":"terms","path":"/terms"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/community","label":"community"}}}}],"breadcrumbs":true},"about":{"path":"/about","versions":[{"name":"current","label":"Next","isLast":true,"path":"/about","mainDocId":"index","docs":[{"id":"architect","path":"/about/architect","sidebar":"defaultSidebar"},{"id":"index","path":"/about/","sidebar":"defaultSidebar"},{"id":"roadmap","path":"/about/roadmap","sidebar":"defaultSidebar"},{"id":"team","path":"/about/team","sidebar":"defaultSidebar"},{"id":"waku-network","path":"/about/waku-network","sidebar":"defaultSidebar"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/about/","label":"index"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"},"logos-docusaurus-search-local":{"type":"package","name":"@acid-info/logos-docusaurus-search-local","version":"1.0.0-alpha.111"},"logos-data-plugin":{"type":"local"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.4.3"},"logos-docusaurus-theme":{"type":"package","name":"@acid-info/logos-docusaurus-theme","version":"1.0.0-alpha.132"},"docusaurus-og":{"type":"package","name":"@acid-info/docusaurus-og","version":"1.0.0-alpha.131"}}}'),u={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},44763:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(67294),o=n(10412),a=n(35742),i=n(18780),l=n(59351);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.default,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(70405);function a(e){return r.createElement(o.ql,e)}},39960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(87462),o=n(67294),a=n(73727),i=n(18780),l=n(52263),s=n(13919),u=n(10412);const c=o.createContext({collectLink:()=>{}});var d=n(44996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:v=!0,...b}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.default)(),{withBaseUrl:x}=(0,d.useBaseUrlUtils)(),_=(0,o.useContext)(c),k=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>k.current));const E=f||p;const S=(0,s.default)(E),C=E?.replace("pathname://","");let T=void 0!==C?(O=C,v&&(e=>e.startsWith("/"))(O)?x(O):O):void 0;var O;T&&S&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const D=(0,o.useRef)(!1),P=n?a.OL:a.rU,N=u.Z.canUseIntersectionObserver,I=(0,o.useRef)(),A=()=>{D.current||null==T||(window.docusaurus.preload(T),D.current=!0)};(0,o.useEffect)((()=>(!N&&S&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&I.current&&I.current.disconnect()})),[I,T,N,S]);const L=T?.startsWith("#")??!1,R=!T||!S||L;return R||g||_.collectLink(T),R?o.createElement("a",(0,r.Z)({ref:k,href:T},E&&!S&&{target:"_blank",rel:"noopener noreferrer"},b)):o.createElement(P,(0,r.Z)({},b,{onMouseEnter:A,onTouchStart:A,innerRef:e=>{k.current=e,N&&e&&S&&(I.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),I.current.observe(e))},to:T},n&&{isActive:m,activeClassName:h}))}const p=o.forwardRef(f)},95999:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,translate:()=>l});var r=n(67294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(57529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return a[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,o(l,a))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.r(t),n.d(t,{default:()=>o,hasProtocol:()=>r})},28143:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Redirect:()=>r.l_,matchPath:()=>r.LX,useHistory:()=>r.k6,useLocation:()=>r.TH});var r=n(16550)},44996:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useBaseUrlUtils:()=>i});var r=n(67294),o=n(52263),a=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.default)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.hasProtocol)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(67294),o=n(58940);function a(){return(0,r.useContext)(o._)}},72389:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(67294),o=n(98934);function a(){return(0,r.useContext)(o._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(67294);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},80143:(e,t,n)=>{"use strict";n.r(t),n.d(t,{useActiveDocContext:()=>b,useActivePlugin:()=>p,useActivePluginAndVersion:()=>h,useActiveVersion:()=>v,useAllDocsData:()=>d,useDocVersionSuggestions:()=>y,useDocsData:()=>f,useLatestVersion:()=>g,useVersions:()=>m});var r=n(16550),o=n(52263),a=n(29935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.default)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function h(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function m(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return s(t,n)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function y(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(74865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),o=n(36809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},88507:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>T});var r=n(67294),o=n(86668),a=n(42489),i=n(87462),l=n(39960),s=n(44996),u=n(13919),c=n(39471);function d(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:d,...f}=t,p=(0,s.default)(n),h=(0,s.default)(o,{forcePrependBaseUrl:!0});return r.createElement(l.default,(0,i.Z)({className:"footer__link-item"},o?{href:d?h:o}:{to:p},f),a,o&&!(0,u.default)(o)&&r.createElement(c.Z,null))}function f(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(d,{item:t}))}function p(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(f,{key:t,item:e})))))}function h(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(p,{key:t,column:e}))))}function m(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function g(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(d,{item:t})}function v(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(g,{item:e}),t.length!==n+1&&r.createElement(m,null))))))}function b(e){let{links:t}=e;return(0,a.a)(t)?r.createElement(h,{columns:t}):r.createElement(v,{links:t})}var y=n(86010),w=n(50941);const x={footerLogoLink:"footerLogoLink_BH7S"};function _(e){let{logo:t}=e;const{withBaseUrl:n}=(0,s.useBaseUrlUtils)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(w.default,{className:(0,y.default)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function k(e){let{logo:t}=e;return t.href?r.createElement(l.default,{href:t.href,className:x.footerLogoLink,target:t.target},r.createElement(_,{logo:t})):r.createElement(_,{logo:t})}function E(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}var S=n(52601);function C(){const{footer:e}=(0,o.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:i}=e;return r.createElement(S.Z,{style:i,links:n&&n.length>0&&r.createElement(b,{links:n}),logo:a&&r.createElement(k,{logo:a}),copyright:t&&r.createElement(E,{copyright:t})})}const T=r.memo(C)},55211:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(87462),o=n(67294);function a(e){return o.createElement("svg",(0,r.Z)({viewBox:"0 0 24 24",width:24,height:24},e),o.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294);const o={iconExternalLink:"iconExternalLink_nPIU"};function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},67080:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(87462),o=n(67294);function a(e){return o.createElement("svg",(0,r.Z)({viewBox:"0 0 24 24",width:24,height:24},e),o.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}},59351:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>N});var r=n(67294),o=n(86010),a=n(44763),i=n(10833),l=n(55225),s=n(35281),u=n(19727);const c={skipToContent:"skipToContent_fXgn"};function d(){return r.createElement(l.l,{className:c.skipToContent})}var f=n(86668),p=n(59689),h=n(87462),m=n(95999);function g(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...l}=e;return r.createElement("svg",(0,h.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const v={closeButton:"closeButton_CVFx"};function b(e){return r.createElement("button",(0,h.Z)({type:"button","aria-label":(0,m.translate)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.default)("clean-btn close",v.closeButton,e.className)}),r.createElement(g,{width:14,height:14,strokeWidth:3.1}))}const y={content:"content_knG7"};function w(e){const{announcementBar:t}=(0,f.L)(),{content:n}=t;return r.createElement("div",(0,h.Z)({},e,{className:(0,o.default)(y.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const x={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function _(){const{announcementBar:e}=(0,f.L)(),{isActive:t,close:n}=(0,p.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:x.announcementBar,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:x.announcementBarPlaceholder}),r.createElement(w,{className:x.announcementBarContent}),i&&r.createElement(b,{onClick:n,className:x.announcementBarClose}))}var k=n(4818),E=n(10428);function S(){return r.createElement(k.Z,null,r.createElement(E.Z,null))}var C=n(88507),T=n(90988),O=n(69690);function D(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(m.default,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(O.Cw,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(O.aG,{error:t})))))}const P={mainWrapper:"mainWrapper_z2l0"};function N(e){const{children:t,noFooter:n,wrapperClassName:c,title:f,description:p}=e;return(0,u.t)(),r.createElement(T.Z,null,r.createElement(i.d,{title:f,description:p}),r.createElement(d,null),r.createElement(_,null),r.createElement(S,null),r.createElement("div",{id:l.u,className:(0,o.default)(s.k.wrapper.main,P.mainWrapper,c)},r.createElement(a.default,{fallback:e=>r.createElement(D,e)},t)),!n&&r.createElement(C.default,null))}},2101:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(67294),o=n(86668),a=n(92949),i=n(66354);const l={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function s(e){let{className:t}=e;const n=(0,o.L)().navbar.style,s=(0,o.L)().colorMode.disableSwitch,{colorMode:u,setColorMode:c}=(0,a.I)();return s?null:r.createElement(i.Z,{className:t,buttonClassName:"dark"===n?l.darkNavbarColorModeToggle:void 0,value:u,onChange:c})}},29865:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(67294),o=n(93163),a=n(95999),i=n(87462);function l(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,i.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function s(){const{toggle:e,shown:t}=(0,o.e)();return r.createElement("button",{onClick:e,"aria-label":(0,a.translate)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(l,null))}},2203:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(67294),o=n(93163),a=n(69800),i=n(82892),l=n(42977),s=n(87462),u=n(86668),c=n(4710);function d(){const e=(0,o.e)(),t=(0,u.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(c.default,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}var f=n(38732);function p(){const e=(0,o.e)();return(0,a.N)(e.shown),e.shouldRender?r.createElement(i.Z,{header:r.createElement(l.Z,null),primaryMenu:r.createElement(d,null),secondaryMenu:r.createElement(f.Z,null)}):null}},4710:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>_});var r=n(67294),o=n(87462),a=n(86010),i=n(51125);function l(e){let{className:t,isDropdownItem:n=!1,...l}=e;const s=r.createElement(i.default,(0,o.Z)({className:(0,a.default)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},l));return n?r.createElement("li",null,s):s}function s(e){let{className:t,isDropdownItem:n,...l}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(i.default,(0,o.Z)({className:(0,a.default)("menu__link",t)},l)))}function u(e){let{mobile:t=!1,position:n,...a}=e;const i=t?s:l;return r.createElement(i,(0,o.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var c=n(27654),d=n(12197),f=n(33760);const p={searchBox:"searchBox_ZlJk"};function h(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.default)(n,p.searchBox)},t)}var m=n(80143),g=n(53438);var v=n(60373),b=n(95999),y=n(16550);const w=e=>e.docs.find((t=>t.id===e.mainDocId));const x={default:u,localeDropdown:d.Z,search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(h,{className:n},r.createElement(f.default,null))},dropdown:c.default,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.default)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,m.useActiveDocContext)(a),s=(0,g.vY)(t,a);return null===s?null:r.createElement(u,(0,o.Z)({exact:!0},i,{isActive:()=>l?.path===s.path||!!l?.sidebar&&l.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,m.useActiveDocContext)(a),s=(0,g.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(u,(0,o.Z)({exact:!0},i,{isActive:()=>l?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const l=(0,g.lO)(a)[0],s=t??l.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(l).path;return r.createElement(u,(0,o.Z)({},i,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:l,...s}=e;const{search:d,hash:f}=(0,y.TH)(),p=(0,m.useActiveDocContext)(n),h=(0,m.useVersions)(n),{savePreferredVersionName:x}=(0,v.J)(n),_=[...i,...h.map((e=>{const t=p.alternateDocVersions[e.name]??w(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>x(e.name)}})),...l],k=(0,g.lO)(n)[0],E=t&&_.length>1?(0,b.translate)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):k.label,S=t&&_.length>1?void 0:w(k).path;return _.length<=1?r.createElement(u,(0,o.Z)({},s,{mobile:t,label:E,to:S,isActive:a?()=>!1:void 0})):r.createElement(c.default,(0,o.Z)({},s,{mobile:t,label:E,to:S,items:_,isActive:a?()=>!1:void 0}))}};function _(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=x[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(35742);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},50941:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>u});var r=n(87462),o=n(67294),a=n(86010),i=n(72389),l=n(92949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.default)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,p.map((e=>o.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,a.default)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>p});var r=n(67294),o=n(72389),a=n(50012),i=n(902),l=n(86668);const s=(0,a.WA)("docusaurus.announcement.dismiss"),u=(0,a.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.default)(),[n,a]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{a(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>m});var r=n(67294),o=n(10412),a=n(902),i=n(50012),l=n(86668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{c.set(f(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,a]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&h(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[o,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},65130:(e,t,n)=>{"use strict";n.d(t,{b:()=>i,k:()=>l});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t,content:n}=e;const o=function(e){return(0,r.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return r.createElement(a.Provider,{value:o},t)}function l(){const e=(0,r.useContext)(a);if(null===e)throw new o.i6("DocProvider");return e}},14353:(e,t,n)=>{"use strict";n.d(t,{D:()=>l,f:()=>s});var r=n(67294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t}=e;const[n,o]=(0,r.useState)(null),a=(0,r.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocSidebarItemsExpandedStateProvider");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>b,L5:()=>g,Oh:()=>y});var r=n(67294),o=n(80143),a=n(29935),i=n(86668),l=n(53438),s=n(902),u=n(50012);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function h(){const e=(0,o.useAllDocsData)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=h();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(m,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=a.m);const t=(0,o.useDocsData)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,o.useAllDocsData)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(null===e)throw new o.i6("DocsVersionProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(67294),o=n(13102),a=n(87524),i=n(91980),l=n(86668),s=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},2730:(e,t,n)=>{"use strict";n.d(t,{a:()=>i});var r=n(67294),o=n(12466),a=n(85936);function i(e){let{threshold:t}=e;const[n,i]=(0,r.useState)(!1),l=(0,r.useRef)(!1),{startScroll:s,cancelScroll:u}=(0,o.Ct)();return(0,o.RF)(((e,n)=>{let{scrollY:r}=e;const o=n?.scrollY;o&&(l.current?l.current=!1:r>=o?(u(),i(!1)):r{e.location.hash&&(l.current=!0,i(!1))})),{shown:n,scrollToTop:()=>s(0)}}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(67294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},69800:(e,t,n)=>{"use strict";n.d(t,{N:()=>o});var r=n(67294);function o(e){void 0===e&&(e=!0),(0,r.useEffect)((()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[e])}},66412:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(92949),o=n(86668);function a(){const{prism:e}=(0,o.L)(),{colorMode:t}=(0,r.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}},96841:(e,t,n)=>{"use strict";n.d(t,{S:()=>s});var r=n(67294),o=n(86668);function a(e){const t=e.getBoundingClientRect();return t.top===t.bottom?a(e.parentNode):t}function i(e,t){let{anchorTopOffset:n}=t;const r=e.find((e=>a(e).top>=n));if(r){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function s(e){const t=(0,r.useRef)(void 0),n=l();(0,r.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:r,linkActiveClassName:o,minHeadingLevel:a,maxHeadingLevel:l}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(r),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const r=[];for(let o=t;o<=n;o+=1)r.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(r.join()))}({minHeadingLevel:a,maxHeadingLevel:l}),u=i(s,{anchorTopOffset:n.current}),c=e.find((e=>u&&u.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===c)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(67294),o=n(10412);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return o.Z.canUseDOM?window.innerWidth>i?a.desktop:a.mobile:a.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},82818:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Collapsible:()=>C,ErrorBoundaryError:()=>G.aG,ErrorBoundaryTryAgainButton:()=>G.Cw,ErrorCauseBoundary:()=>G.QW,HtmlClassNameProvider:()=>D.FG,NavbarSecondaryMenuFiller:()=>N.Zo,PageMetadata:()=>D.d,ReactContextError:()=>O.i6,SkipToContentFallbackId:()=>W.u,SkipToContentLink:()=>W.l,ThemeClassNames:()=>T.k,composeProviders:()=>O.Qc,createStorageSlot:()=>o.WA,duplicates:()=>U.l,filterDocCardListItems:()=>i.MN,isMultiColumnFooterLinks:()=>z.a,isRegexpStringMatch:()=>$,listStorageKeys:()=>o._f,listTagsByLetters:()=>R,prefersReducedMotion:()=>g.n,processAdmonitionProps:()=>q,translateTagsPageTitle:()=>L,uniq:()=>U.j,useCollapsible:()=>b,useColorMode:()=>P.I,useContextualSearchFilters:()=>a._q,useCurrentSidebarCategory:()=>i.jA,useDocsPreferredVersion:()=>V.J,useEvent:()=>O.zX,useIsomorphicLayoutEffect:()=>O.LI,usePluralForm:()=>p,usePrevious:()=>O.D9,usePrismTheme:()=>H.p,useSearchLinkCreator:()=>B,useSearchQueryString:()=>F,useStorageSlot:()=>o.Nk,useThemeConfig:()=>r.L,useWindowSize:()=>I.i});var r=n(86668),o=n(50012),a=n(43320),i=n(53438),l=n(67294),s=n(52263);const u=["zero","one","two","few","many","other"];function c(e){return u.filter((t=>e.includes(t)))}const d={locale:"en",pluralForms:c(["one","other"]),select:e=>1===e?"one":"other"};function f(){const{i18n:{currentLocale:e}}=(0,s.default)();return(0,l.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:c(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),d}}),[e])}function p(){const e=f();return{selectMessage:(t,n)=>function(e,t,n){const r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const o=n.select(t),a=n.pluralForms.indexOf(o);return r[Math.min(a,r.length-1)]}(n,t,e)}}var h=n(87462),m=n(10412),g=n(91442);const v="ease-in-out";function b(e){let{initialState:t}=e;const[n,r]=(0,l.useState)(t??!1),o=(0,l.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const y={display:"none",overflow:"hidden",height:"0px"},w={display:"block",overflow:"visible",height:"auto"};function x(e,t){const n=t?y:w;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function _(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,l.useRef)(!1);(0,l.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,g.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??v}`,height:`${t}px`}}function i(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return x(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=y.height,e.style.overflow=y.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function k(e){if(!m.Z.canUseDOM)return e?y:w}function E(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:a,className:i,disableSSRStyle:s}=e;const u=(0,l.useRef)(null);return _({collapsibleRef:u,collapsed:n,animation:o}),l.createElement(t,{ref:u,style:s?void 0:k(n),onTransitionEnd:e=>{"height"===e.propertyName&&(x(u.current,n),a?.(n))},className:i},r)}function S(e){let{collapsed:t,...n}=e;const[r,o]=(0,l.useState)(!t),[a,i]=(0,l.useState)(t);return(0,l.useLayoutEffect)((()=>{t||o(!0)}),[t]),(0,l.useLayoutEffect)((()=>{r&&i(t)}),[r,t]),r?l.createElement(E,(0,h.Z)({},n,{collapsed:a})):null}function C(e){let{lazy:t,...n}=e;const r=t?S:E;return l.createElement(r,n)}var T=n(35281),O=n(902),D=n(10833),P=n(92949),N=n(13102),I=n(87524),A=n(95999);const L=()=>(0,A.translate)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function R(e){const t={};return Object.values(e).forEach((e=>{const n=function(e){return e[0].toUpperCase()}(e.label);t[n]??=[],t[n].push(e)})),Object.entries(t).sort(((e,t)=>{let[n]=e,[r]=t;return n.localeCompare(r)})).map((e=>{let[t,n]=e;return{letter:t,tags:n.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}var j=n(91980);const M="q";function F(){return(0,j.Nc)(M)}function B(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,s.default)(),{algolia:{searchPagePath:n}}=t;return(0,l.useCallback)((t=>`${e}${n}?${M}=${encodeURIComponent(t)}`),[e,n])}var z=n(42489);function $(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var U=n(67392),H=n(66412),V=n(60373);function q(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=l.Children.toArray(e),n=t.find((e=>l.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),r=l.createElement(l.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n?.props.children,rest:r}}(e.children),r=e.title??t;return{...e,...r&&{title:r},children:n}}var W=n(55225),G=n(69690)},53458:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AnnouncementBarProvider:()=>h.pl,BlogPostProvider:()=>d,Collapsible:()=>r.Collapsible,ColorModeProvider:()=>P.S,DEFAULT_SEARCH_TAG:()=>A.HX,DocProvider:()=>l.b,DocSidebarItemsExpandedStateProvider:()=>o.D,DocsPreferredVersionContextProvider:()=>p.L5,DocsSidebarProvider:()=>i.b,DocsVersionProvider:()=>a.q,ErrorBoundaryError:()=>r.ErrorBoundaryError,ErrorBoundaryTryAgainButton:()=>r.ErrorBoundaryTryAgainButton,ErrorCauseBoundary:()=>r.ErrorCauseBoundary,HtmlClassNameProvider:()=>r.HtmlClassNameProvider,NavbarProvider:()=>q,NavbarSecondaryMenuFiller:()=>r.NavbarSecondaryMenuFiller,PageMetadata:()=>r.PageMetadata,PluginHtmlClassNameProvider:()=>U.VC,ReactContextError:()=>r.ReactContextError,ScrollControllerProvider:()=>z.OC,SkipToContentFallbackId:()=>r.SkipToContentFallbackId,SkipToContentLink:()=>r.SkipToContentLink,ThemeClassNames:()=>r.ThemeClassNames,composeProviders:()=>r.composeProviders,containsLineNumbers:()=>I.nt,createStorageSlot:()=>r.createStorageSlot,docVersionSearchTag:()=>A.os,duplicates:()=>r.duplicates,filterDocCardListItems:()=>r.filterDocCardListItems,findFirstCategoryLink:()=>L.Wl,findSidebarCategory:()=>L.em,getPrismCssVariables:()=>I.QC,isActiveSidebarItem:()=>L._F,isDocsPluginEnabled:()=>L.cE,isMultiColumnFooterLinks:()=>r.isMultiColumnFooterLinks,isRegexpStringMatch:()=>r.isRegexpStringMatch,isSamePath:()=>$.Mg,keyboardFocusedClassName:()=>Z.h,listStorageKeys:()=>r.listStorageKeys,listTagsByLetters:()=>r.listTagsByLetters,parseCodeBlockTitle:()=>I.bc,parseLanguage:()=>I.Vo,parseLines:()=>I.nZ,prefersReducedMotion:()=>r.prefersReducedMotion,processAdmonitionProps:()=>r.processAdmonitionProps,splitNavbarItems:()=>V,translateTagsPageTitle:()=>r.translateTagsPageTitle,uniq:()=>r.uniq,useAlternatePageUtils:()=>N.l,useAnnouncementBar:()=>h.nT,useBackToTopButton:()=>J.a,useBlogPost:()=>f,useCodeWordWrap:()=>K,useCollapsible:()=>r.useCollapsible,useColorMode:()=>r.useColorMode,useContextualSearchFilters:()=>r.useContextualSearchFilters,useCurrentSidebarCategory:()=>r.useCurrentSidebarCategory,useDoc:()=>l.k,useDocById:()=>L.xz,useDocRouteMetadata:()=>L.hI,useDocSidebarItemsExpandedState:()=>o.f,useDocsPreferredVersion:()=>r.useDocsPreferredVersion,useDocsPreferredVersionByPluginId:()=>p.Oh,useDocsSidebar:()=>i.V,useDocsVersion:()=>a.E,useDocsVersionCandidates:()=>L.lO,useEvent:()=>r.useEvent,useFilteredAndTreeifiedTOC:()=>B.b,useHideableNavbar:()=>G,useHistoryPopHandler:()=>g.Rb,useHistorySelector:()=>g.xL,useHomePageRoute:()=>$.Ns,useIsomorphicLayoutEffect:()=>r.useIsomorphicLayoutEffect,useKeyboardNavigation:()=>Z.t,useLayoutDoc:()=>L.vY,useLayoutDocsSidebar:()=>L.oz,useLocalPathname:()=>F,useLocationChange:()=>j.S,useLockBodyScroll:()=>Q.N,useNavbarMobileSidebar:()=>E.e,useNavbarSecondaryMenu:()=>D,usePluralForm:()=>r.usePluralForm,usePrevious:()=>r.usePrevious,usePrismTheme:()=>r.usePrismTheme,useQueryStringValue:()=>g._X,useScrollController:()=>z.sG,useScrollPosition:()=>z.RF,useScrollPositionBlocker:()=>z.o5,useSearchLinkCreator:()=>r.useSearchLinkCreator,useSearchQueryString:()=>r.useSearchQueryString,useSidebarBreadcrumbs:()=>L.s1,useSmoothScrollTo:()=>z.Ct,useStorageSlot:()=>r.useStorageSlot,useTOCHighlight:()=>W.S,useTabs:()=>k,useThemeConfig:()=>r.useThemeConfig,useTitleFormatter:()=>R.p,useTreeifiedTOC:()=>B.a,useWindowSize:()=>r.useWindowSize});var r=n(82818),o=n(14353),a=n(74477),i=n(1116),l=n(65130),s=n(67294),u=n(902);const c=s.createContext(null);function d(e){let{children:t,content:n,isBlogPostPage:r=!1}=e;const o=function(e){let{content:t,isBlogPostPage:n}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:n})),[t,n])}({content:n,isBlogPostPage:r});return s.createElement(c.Provider,{value:o},t)}function f(){const e=(0,s.useContext)(c);if(null===e)throw new u.i6("BlogPostProvider");return e}var p=n(60373),h=n(59689),m=n(16550),g=n(91980),v=n(67392),b=n(50012);function y(e){return function(e){return s.Children.map(e,(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:o}}=e;return{value:t,label:n,attributes:r,default:o}}))}function w(e){const{values:t,children:n}=e;return(0,s.useMemo)((()=>{const e=t??y(n);return function(e){const t=(0,v.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[t,n])}function x(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function _(e){let{queryString:t=!1,groupId:n}=e;const r=(0,m.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,g._X)(o),(0,s.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function k(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=w(e),[a,i]=(0,s.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the component requires at least one children component");if(t){if(!x({value:t,tabValues:n}))throw new Error(`Docusaurus error: The has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[l,u]=_({queryString:n,groupId:r}),[c,d]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,b.Nk)(n);return[r,(0,s.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),f=(()=>{const e=l??c;return x({value:e,tabValues:o})?e:null})();(0,s.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:a,selectValue:(0,s.useCallback)((e=>{if(!x({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),d(e)}),[u,d,o]),tabValues:o}}var E=n(93163),S=n(13102);const C=s.createContext(null);function T(e){let{children:t}=e;const n=function(){const e=(0,E.e)(),t=(0,S.HY)(),[n,r]=(0,s.useState)(!1),o=null!==t.component,a=(0,u.D9)(o);return(0,s.useEffect)((()=>{o&&!a&&r(!0)}),[o,a]),(0,s.useEffect)((()=>{o?e.shown||r(!0):r(!1)}),[e.shown,o]),(0,s.useMemo)((()=>[n,r]),[n])}();return s.createElement(C.Provider,{value:n},t)}function O(e){if(e.component){const t=e.component;return s.createElement(t,e.props)}}function D(){const e=(0,s.useContext)(C);if(!e)throw new u.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,r=(0,s.useCallback)((()=>n(!1)),[n]),o=(0,S.HY)();return(0,s.useMemo)((()=>({shown:t,hide:r,content:O(o)})),[r,o,t])}var P=n(92949),N=n(94711),I=n(37016),A=n(43320),L=n(53438),R=n(82128),j=n(85936),M=n(52263);function F(){const{siteConfig:{baseUrl:e}}=(0,M.default)(),{pathname:t}=(0,m.TH)();return t.replace(e,"/")}var B=n(39665),z=n(12466),$=n(48596),U=n(10833);const H="right";function V(e){function t(e){return"left"===(e.position??H)}return[e.filter(t),e.filter((e=>!t(e)))]}function q(e){let{children:t}=e;return s.createElement(S.n2,null,s.createElement(E.M,null,s.createElement(T,null,t)))}var W=n(96841);function G(e){const[t,n]=(0,s.useState)(e),r=(0,s.useRef)(!1),o=(0,s.useRef)(0),a=(0,s.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,z.RF)(((t,a)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const o=t.location.hash;if(o?document.getElementById(o.substring(1)):void 0)return r.current=!0,void n(!1);n(!0)})),{navbarRef:a,isNavbarVisible:t}}var Z=n(19727),Q=n(69800);const Y={attributes:!0,characterData:!0,childList:!0,subtree:!0};function X(e,t){const[n,r]=(0,s.useState)(),o=(0,s.useCallback)((()=>{r(e.current?.closest("[role=tabpanel][hidden]"))}),[e,r]);(0,s.useEffect)((()=>{o()}),[o]),function(e,t,n){void 0===n&&(n=Y);const r=(0,u.zX)(t),o=(0,u.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(r);return e&&t.observe(e,o),()=>t.disconnect()}),[e,r,o])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function K(){const[e,t]=(0,s.useState)(!1),[n,r]=(0,s.useState)(!1),o=(0,s.useRef)(null),a=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),i=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");r(n)}),[o]);return X(o,i),(0,s.useEffect)((()=>{i()}),[e,i]),(0,s.useEffect)((()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)})),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:a}}var J=n(2730)},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},91442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},37016:(e,t,n)=>{"use strict";n.d(t,{QC:()=>p,Vo:()=>d,bc:()=>u,nZ:()=>f,nt:()=>c});var r=n(87594),o=n.n(r);const a=/title=(?["'])(?.*?)\1/,i=/\{(?<range>[\d,-]+)\}/,l={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function s(e,t){const n=e.map((e=>{const{start:n,end:r}=l[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${r})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function u(e){return e?.match(a)?.groups.title??""}function c(e){return Boolean(e?.includes("showLineNumbers"))}function d(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}function f(e,t){let n=e.replace(/\n$/,"");const{language:r,magicComments:a,metastring:u}=t;if(u&&i.test(u)){const e=u.match(i).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${u}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,r=o()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(r),code:n}}if(void 0===r)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return s(["js","jsBlock"],t);case"jsx":case"tsx":return s(["js","jsBlock","jsx"],t);case"html":return s(["js","jsBlock","html"],t);case"python":case"py":case"bash":return s(["bash"],t);case"markdown":case"md":return s(["html","jsx","bash"],t);default:return s(Object.keys(l),t)}}(r,a),d=n.split("\n"),f=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),p=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),h=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let o=0;o<d.length;){const e=d[o].match(c);if(!e){o+=1;continue}const t=e.slice(1).find((e=>void 0!==e));p[t]?f[p[t]].range+=`${o},`:h[t]?f[h[t]].start=o:m[t]&&(f[m[t]].range+=`${f[m[t]].start}-${o-1},`),d.splice(o,1)}n=d.join("\n");const g={};return Object.entries(f).forEach((e=>{let[t,{range:n}]=e;o()(n).forEach((e=>{g[e]??=[],g[e].push(t)}))})),{lineClassNames:g,code:n}}function p(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[r,o]=e;const a=t[r];a&&"string"==typeof o&&(n[a]=o)})),n}},53438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>C,Wl:()=>m,_F:()=>y,cE:()=>f,em:()=>h,hI:()=>S,jA:()=>g,lO:()=>_,oz:()=>k,s1:()=>x,vY:()=>E,xz:()=>p});var r=n(67294),o=n(16550),a=n(18790),i=n(80143),l=n(60373),s=n(74477),u=n(1116),c=n(67392),d=n(48596);const f=!!i.useAllDocsData;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function h(e,t){for(const n of e)if("category"===n.type){if(t(n))return n;const e=h(n.items,t);if(e)return e}}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function g(){const{pathname:e}=(0,o.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=w({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const v=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?v(e.href,t):"category"===e.type&&(v(e.href,t)||b(e.items,t))}function w(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,u.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.useActivePlugin)()?.pluginData.breadcrumbs;return!1!==n&&e?w({sidebarItems:e.items,pathname:t}):null}function _(e){const{activeVersion:t}=(0,i.useActiveDocContext)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.useLatestVersion)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,o].filter(Boolean))),[t,n,o])}function k(e,t){const n=_(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=_(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function S(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,l=i.find((e=>(0,o.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,a.H)(i),sidebarName:s,sidebarItems:u}}function C(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},69690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>u,Cw:()=>s,QW:()=>c});var r=n(87462),o=n(67294),a=n(95999),i=n(18780);const l={errorBoundaryError:"errorBoundaryError_a6uf"};function s(e){return o.createElement("button",(0,r.Z)({type:"button"},e),o.createElement(a.default,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return o.createElement("p",{className:l.errorBoundaryError},n)}class c extends o.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},42489:(e,t,n)=>{"use strict";function r(e){return"title"in e[0]}n.d(t,{a:()=>r})},82128:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(52263);function o(e){const{siteConfig:t}=(0,r.default)(),{title:n,titleDelimiter:o}=t;return e?.trim().length?`${e.trim()} ${o} ${n}`:n}},91980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>l,_X:()=>u,xL:()=>s});var r=n(67294),o=n(16550),a=n(61688),i=n(902);function l(e){!function(e){const t=(0,o.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){const t=(0,o.k6)();return(0,a.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}function u(e){return s((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=u(e)??"",n=function(){const e=(0,o.k6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(r?.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{j:()=>o,l:()=>r})},10833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(67294),o=n(86010),a=n(35742),i=n(30226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),u=n(82128);function c(e){let{title:t,description:n,keywords:o,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.useBaseUrlUtils)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,o.default)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,o.default)(a,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,LI:()=>o,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>a});var r=n(67294);const o=n(10412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(67294),o=n(723),a=n(52263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.default)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d,o5:()=>f,sG:()=>u});var r=n(67294),o=n(10412),a=n(72389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(c()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:o}}function p(){const e=(0,r.useRef)(null),t=(0,a.default)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(80143),o=n(52263),a=n(60373);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,o.default)(),t=(0,r.useAllDocsData)(),n=(0,r.useActivePluginAndVersion)(),s=(0,a.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=s[e],a=t[e].versions.find((e=>e.isLast));return l(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:u}}},55225:(e,t,n)=>{"use strict";n.d(t,{l:()=>f,u:()=>s});var r=n(87462),o=n(67294),a=n(16550),i=n(95999),l=n(85936);const s="__docusaurus_skipToContent_fallback";function u(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function c(){const e=(0,o.useRef)(null),{action:t}=(0,a.k6)(),n=(0,o.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(s);t&&u(t)}),[]);return(0,l.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&u(e.current)})),{containerRef:e,onClick:n}}const d=(0,i.translate)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function f(e){const t=e.children??d,{containerRef:n,onClick:a}=c();return o.createElement("div",{ref:n,role:"region","aria-label":d},o.createElement("a",(0,r.Z)({},e,{href:`#${s}`,onClick:a}),t))}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c,_f:()=>f});var r=n(67294),o=n(61688);const a="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function l(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,o.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}function f(e){void 0===e&&(e=a);const t=l(e);if(!t)return[];const n=[];for(let r=0;r<t.length;r+=1){const e=t.key(r);null!==e&&n.push(e)}return n}},39665:(e,t,n)=>{"use strict";n.d(t,{a:()=>a,b:()=>l});var r=n(67294);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const r=n.slice(2,e.level);e.parentIndex=Math.max(...r),n[e.level]=t}));const r=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):r.push(o)})),r}function a(e){return(0,r.useMemo)((()=>o(e)),[e])}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:r}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:r});return function(e){return e.level>=n&&e.level<=r}(e)?[{...e,children:t}]:t}))}function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,r.useMemo)((()=>i({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(52263),o=n(16550),a=n(18780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.default)(),{pathname:s}=(0,o.TH)(),u=(0,a.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),o=n(16550),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(52263);function o(){return(0,r.default)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},90022:(e,t,n)=>{"use strict";n.r(t),n.d(t,{fetchIndexes:()=>l,legacyFetchIndexes:()=>s});var r=n(31336),o=n.n(r),a=n(61029);const i=new Map;function l(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=s(e,t),i.set(n,r)),r}async function s(e,t){{const n=`${e}${a.searchIndexUrl.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:o().Index.load(r)}})),l=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(l)}}}},98202:(e,t,n)=>{"use strict";n.r(t),n.d(t,{SearchSourceFactory:()=>s});var r=n(31336),o=n.n(r);var a=n(61029);function i(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:o().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?o().Query.wildcard.TRAILING:o().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return o()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,a.language);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,o){if(0===r.length)return void n.push(o);const a=r[0];if(/\p{Unified_Ideograph}/u.test(a)){const n=function(e,t){const n=[];return function e(r,o){let a=0,i=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:o.missed,term:o.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),i=!0}else for(let t=l.length-1;t>a;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){a=t;const l={missed:o.missed,term:o.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:o.missed+1,term:o.term}):o.term.length>0&&n.push(o))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(a,t);for(const t of n){const n=o.concat(...t);e(r.slice(1),n)}}else{const t=o.concat({value:a});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:o().Query.presence.REQUIRED,wildcard:o().Query.wildcard.LEADING|o().Query.wildcard.TRAILING})))}];for(const o of n)o[o.length-1].maybeTyping=!0;const r=[];for(const i of a.language)if("en"===i)a.removeDefaultStopWordFilter||r.unshift(o().stopWordFilter);else{const e=o()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length<r.length&&n.length>0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const o of l)if(o.length>2)for(let e=o.length-1;e>=0;e-=1)s.push(o.slice(0,e).concat(o.slice(e+1)));return i(n).concat(i(s))}(s,t),c=[];e:for(const{term:t,tokens:o}of u)for(const{documents:r,index:a,type:i}of e)if(c.push(...a.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:o,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,o=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===o&&(o=n.index),r===o?0===t.type?-1:0===n.type?1:t.index-n.index:r-o}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n<e.length-1&&e[n+1].page===t.page?t.isInterOfTree=!0:t.isLastOfTree=!0)}))}(c),l(c)}}},91073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.r(t),n.d(t,{getStemmedPositions:()=>r})},67133:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function o(e,t,n){const a=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&a.push(o(e.substr(0,n),t)),a.push(`<mark>${r(e.substr(n,i.length))}</mark>`);const l=n+i.length;l<e.length&&a.push(o(e.substr(l),t));break}}return 0===a.length?n?`<mark>${r(e)}</mark>`:r(e):a.join("")}n.r(t),n.d(t,{highlightStemmed:()=>s,splitIntoChunks:()=>u});const a=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const o=r.match(a);if(!o){t.push(r);break}o.index>0&&t.push(r.substring(0,o.index)),t.push(o[0]),n+=o.index+o[0].length,r=e.substring(n)}return t}var l=n(61029);function s(e,t,n,r){void 0===r&&(r=l.searchResultContextMaxLength);const{chunkIndex:o,chunks:a}=u(e,t,n),i=a.slice(0,o),s=a[o],c=[s.html],d=a.slice(o+1);let f=s.textLength,p=0,h=0,m=!1,g=!1;for(;f<r;)if((p<=h||0===d.length)&&i.length>0){const e=i.pop();f+e.textLength<=r?(c.unshift(e.html),p+=e.textLength,f+=e.textLength):(m=!0,i.length=0)}else{if(!(d.length>0))break;{const e=d.shift();f+e.textLength<=r?(c.push(e.html),h+=e.textLength,f+=e.textLength):(g=!0,d.length=0)}}return(m||i.length>0)&&c.unshift("\u2026"),(g||d.length>0)&&c.push("\u2026"),c.join("")}function u(e,t,n){const a=[];let l=0,s=0,u=-1;for(;l<t.length;){const[c,d]=t[l];if(l+=1,!(c<s)){if(c>s){const t=i(e.substring(s,c)).map((e=>({html:r(e),textLength:e.length})));for(const e of t)a.push(e)}-1===u&&(u=a.length),s=c+d,a.push({html:o(e.substring(c,s),n,!0),textLength:d})}}if(s<e.length){const t=i(e.substring(s)).map((e=>({html:r(e),textLength:e.length})));for(const e of t)a.push(e)}return{chunkIndex:u,chunks:a}}},61029:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Mark:()=>i,docsPluginIdForPreferredVersion:()=>h,explicitSearchResultPath:()=>c,hideSearchBarWithNoSearchContext:()=>v,indexDocs:()=>m,language:()=>r,removeDefaultStemmer:()=>a,removeDefaultStopWordFilter:()=>o,searchBarPosition:()=>p,searchBarShortcut:()=>d,searchBarShortcutHint:()=>f,searchContextByPaths:()=>g,searchIndexUrl:()=>l,searchResultContextMaxLength:()=>u,searchResultLimits:()=>s});n(31336);const r=["en"],o=!1,a=!1,i=null,l="search-index{dir}.json?_=21d6ab5a",s=8,u=50,c=!1,d=!0,f=!0,p="right",h=void 0,m=!0,g=null,v=!1},86010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}n.r(t),n.d(t,{clsx:()=>o,default:()=>a});const a=o},20640:(e,t,n)=>{"use strict";var r=n(11742),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,a,i,l,s,u,c=!1;t||(t={}),n=t.debug||!1;try{if(i=r(),l=document.createRange(),s=document.getSelection(),(u=document.createElement("span")).textContent=e,u.ariaHidden="true",u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var a=o[t.format]||o.default;window.clipboardData.setData(a,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(u),l.selectNodeContents(u),s.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");c=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),c=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{s&&("function"==typeof s.removeRange?s.removeRange(l):s.removeAllRanges()),u&&document.body.removeChild(u),i()}return c}},38252:e=>{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,o,a;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(a=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,a[o]))return!1;for(o=r;0!=o--;){var i=a[o];if(("_owner"!==i||!t.$$typeof)&&!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},99376:(e,t)=>{var n=Object.keys;t.D=function(e,t){if(e===t)return!0;if(!(e instanceof Object&&t instanceof Object))return!1;for(var r=n(e),o=r.length,a=0;a<o;a++)if(!(r[a]in t))return!1;for(a=0;a<o;a++)if(e[r[a]]!==t[r[a]])return!1;return o===n(t).length}},42358:(e,t,n)=>{"use strict";n.d(t,{lX:()=>k,q_:()=>D,ob:()=>m,PP:()=>N,Ep:()=>h,Hp:()=>g});var r=n(87462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&o(e),s=t&&o(t),u=l||s;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?a(i,f):".."===p?(a(i,f),d++):d&&(a(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&o(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const s=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),o=l(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var u=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function m(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&s(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var b=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}var w="popstate",x="hashchange";function _(){try{return window.history.state||{}}catch(e){return{}}}function k(e){void 0===e&&(e={}),b||(0,u.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,l=i.forceRefresh,s=void 0!==l&&l,d=i.getUserConfirmation,g=void 0===d?y:d,k=i.keyLength,E=void 0===k?6:k,S=e.basename?p(c(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return S&&(a=f(a,S)),m(a,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var O=v();function D(e){(0,r.Z)($,e),$.length=n.length,O.notifyListeners($.location,$.action)}function P(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||A(C(e.state))}function N(){A(C(_()))}var I=!1;function A(e){if(I)I=!1,D();else{O.confirmTransitionTo(e,"POP",g,(function(t){t?D({action:"POP",location:e}):function(e){var t=$.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(I=!0,M(o))}(e)}))}}var L=C(_()),R=[L.key];function j(e){return S+h(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(w,P),a&&window.addEventListener(x,N)):0===F&&(window.removeEventListener(w,P),a&&window.removeEventListener(x,N))}var z=!1;var $={length:n.length,action:"POP",location:L,createHref:j,push:function(e,t){var r="PUSH",a=m(e,t,T(),$.location);O.confirmTransitionTo(a,r,g,(function(e){if(e){var t=j(a),i=a.key,l=a.state;if(o)if(n.pushState({key:i,state:l},null,t),s)window.location.href=t;else{var u=R.indexOf($.location.key),c=R.slice(0,u+1);c.push(a.key),R=c,D({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=m(e,t,T(),$.location);O.confirmTransitionTo(a,r,g,(function(e){if(e){var t=j(a),i=a.key,l=a.state;if(o)if(n.replaceState({key:i,state:l},null,t),s)window.location.replace(t);else{var u=R.indexOf($.location.key);-1!==u&&(R[u]=a.key),D({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=O.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=O.appendListener(e);return B(1),function(){B(-1),t()}}};return $}var E="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:c},slash:{encodePath:c,decodePath:c}};function C(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function T(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function O(e){window.location.replace(C(window.location.href)+"#"+e)}function D(e){void 0===e&&(e={}),b||(0,u.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?y:o,i=n.hashType,l=void 0===i?"slash":i,s=e.basename?p(c(e.basename)):"",d=S[l],g=d.encodePath,w=d.decodePath;function x(){var e=w(T());return s&&(e=f(e,s)),m(e)}var _=v();function k(e){(0,r.Z)(z,e),z.length=t.length,_.notifyListeners(z.location,z.action)}var D=!1,P=null;function N(){var e,t,n=T(),r=g(n);if(n!==r)O(r);else{var o=x(),i=z.location;if(!D&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(P===h(o))return;P=null,function(e){if(D)D=!1,k();else{var t="POP";_.confirmTransitionTo(e,t,a,(function(n){n?k({action:t,location:e}):function(e){var t=z.location,n=R.lastIndexOf(h(t));-1===n&&(n=0);var r=R.lastIndexOf(h(e));-1===r&&(r=0);var o=n-r;o&&(D=!0,j(o))}(e)}))}}(o)}}var I=T(),A=g(I);I!==A&&O(A);var L=x(),R=[h(L)];function j(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(E,N):0===M&&window.removeEventListener(E,N)}var B=!1;var z={length:t.length,action:"POP",location:L,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=C(window.location.href)),n+"#"+g(s+h(e))},push:function(e,t){var n="PUSH",r=m(e,void 0,void 0,z.location);_.confirmTransitionTo(r,n,a,(function(e){if(e){var t=h(r),o=g(s+t);if(T()!==o){P=t,function(e){window.location.hash=e}(o);var a=R.lastIndexOf(h(z.location)),i=R.slice(0,a+1);i.push(t),R=i,k({action:n,location:r})}else k()}}))},replace:function(e,t){var n="REPLACE",r=m(e,void 0,void 0,z.location);_.confirmTransitionTo(r,n,a,(function(e){if(e){var t=h(r),o=g(s+t);T()!==o&&(P=t,O(o));var a=R.indexOf(h(z.location));-1!==a&&(R[a]=t),k({action:n,location:r})}}))},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(e){void 0===e&&(e=!1);var t=_.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=_.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function P(e,t,n){return Math.min(Math.max(e,t),n)}function N(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=v();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function f(){return Math.random().toString(36).substr(2,u)}var p=P(l,0,a.length-1),g=a.map((function(e){return m(e,void 0,"string"==typeof e?f():e.key||f())})),b=h;function y(e){var t=P(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:g.length,action:"POP",location:g[p],index:p,entries:g,createHref:b,push:function(e,t){var r="PUSH",o=m(e,t,f(),w.location);c.confirmTransitionTo(o,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=m(e,t,f(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g<i.length;++g){var v=i[g];if(!(a[v]||r&&r[v]||m&&m[v]||l&&l[v])){var b=f(n,v);try{u(t,v,b)}catch(y){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},36808:(e,t,n)=>{var r,o;!function(a){if(void 0===(o="function"==typeof(r=a)?r.call(t,n,t,e):r)||(e.exports=o),!0,e.exports=a(),!!0){var i=window.Cookies,l=window.Cookies=a();l.noConflict=function(){return window.Cookies=i,l}}}((function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function o(){}function a(t,n,a){if("undefined"!=typeof document){"number"==typeof(a=e({path:"/"},o.defaults,a)).expires&&(a.expires=new Date(1*new Date+864e5*a.expires)),a.expires=a.expires?a.expires.toUTCString():"";try{var i=JSON.stringify(n);/^[\{\[]/.test(i)&&(n=i)}catch(u){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var l="";for(var s in a)a[s]&&(l+="; "+s,!0!==a[s]&&(l+="="+a[s].split(";")[0]));return document.cookie=t+"="+n+l}}function i(e,n){if("undefined"!=typeof document){for(var o={},a=document.cookie?document.cookie.split("; "):[],i=0;i<a.length;i++){var l=a[i].split("="),s=l.slice(1).join("=");n||'"'!==s.charAt(0)||(s=s.slice(1,-1));try{var u=t(l[0]);if(s=(r.read||r)(s,u)||t(s),n)try{s=JSON.parse(s)}catch(c){}if(o[u]=s,e===u)break}catch(c){}}return e?o[e]:o}}return o.set=a,o.get=function(e){return i(e,!1)},o.getJSON=function(e){return i(e,!0)},o.remove=function(t,n){a(t,"",e(n,{expires:-1}))},o.defaults={},o.withConverter=n,o}((function(){}))}))},18552:(e,t,n)=>{var r=n(10852)(n(55639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(51789),o=n(80401),a=n(57667),i=n(21327),l=n(81866);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=l,e.exports=s},38407:(e,t,n)=>{var r=n(27040),o=n(14125),a=n(82117),i=n(67518),l=n(54705);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=l,e.exports=s},57071:(e,t,n)=>{var r=n(10852)(n(55639),"Map");e.exports=r},83369:(e,t,n)=>{var r=n(24785),o=n(11285),a=n(96e3),i=n(49916),l=n(95265);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=l,e.exports=s},53818:(e,t,n)=>{var r=n(10852)(n(55639),"Promise");e.exports=r},58525:(e,t,n)=>{var r=n(10852)(n(55639),"Set");e.exports=r},88668:(e,t,n)=>{var r=n(83369),o=n(90619),a=n(72385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}i.prototype.add=i.prototype.push=o,i.prototype.has=a,e.exports=i},46384:(e,t,n)=>{var r=n(38407),o=n(37465),a=n(63779),i=n(67599),l=n(44758),s=n(34309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=o,u.prototype.delete=a,u.prototype.get=i,u.prototype.has=l,u.prototype.set=s,e.exports=u},62705:(e,t,n)=>{var r=n(55639).Symbol;e.exports=r},11149:(e,t,n)=>{var r=n(55639).Uint8Array;e.exports=r},70577:(e,t,n)=>{var r=n(10852)(n(55639),"WeakMap");e.exports=r},96874:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},44174:e=>{e.exports=function(e,t,n,r){for(var o=-1,a=null==e?0:e.length;++o<a;){var i=e[o];t(r,i,n(i),e)}return r}},77412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},34963:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}},14636:(e,t,n)=>{var r=n(22545),o=n(35694),a=n(1469),i=n(44144),l=n(65776),s=n(36719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=a(e),c=!n&&o(e),d=!n&&!c&&i(e),f=!n&&!c&&!d&&s(e),p=n||c||d||f,h=p?r(e.length,String):[],m=h.length;for(var g in e)!t&&!u.call(e,g)||p&&("length"==g||d&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||l(g,m))||h.push(g);return h}},29932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},62488:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},82908:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},34865:(e,t,n)=>{var r=n(89465),o=n(77813),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];a.call(e,t)&&o(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},18470:(e,t,n)=>{var r=n(77813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},81119:(e,t,n)=>{var r=n(89881);e.exports=function(e,t,n,o){return r(e,(function(e,r,a){t(o,e,n(e),a)})),o}},44037:(e,t,n)=>{var r=n(98363),o=n(3674);e.exports=function(e,t){return e&&r(t,o(t),e)}},63886:(e,t,n)=>{var r=n(98363),o=n(81704);e.exports=function(e,t){return e&&r(t,o(t),e)}},89465:(e,t,n)=>{var r=n(38777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},85990:(e,t,n)=>{var r=n(46384),o=n(77412),a=n(34865),i=n(44037),l=n(63886),s=n(64626),u=n(278),c=n(18805),d=n(1911),f=n(58234),p=n(46904),h=n(64160),m=n(43824),g=n(29148),v=n(38517),b=n(1469),y=n(44144),w=n(56688),x=n(13218),_=n(72928),k=n(3674),E=n(81704),S="[object Arguments]",C="[object Function]",T="[object Object]",O={};O[S]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O[T]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O[C]=O["[object WeakMap]"]=!1,e.exports=function e(t,n,D,P,N,I){var A,L=1&n,R=2&n,j=4&n;if(D&&(A=N?D(t,P,N,I):D(t)),void 0!==A)return A;if(!x(t))return t;var M=b(t);if(M){if(A=m(t),!L)return u(t,A)}else{var F=h(t),B=F==C||"[object GeneratorFunction]"==F;if(y(t))return s(t,L);if(F==T||F==S||B&&!N){if(A=R||B?{}:v(t),!L)return R?d(t,l(A,t)):c(t,i(A,t))}else{if(!O[F])return N?t:{};A=g(t,F,L)}}I||(I=new r);var z=I.get(t);if(z)return z;I.set(t,A),_(t)?t.forEach((function(r){A.add(e(r,n,D,r,t,I))})):w(t)&&t.forEach((function(r,o){A.set(o,e(r,n,D,o,t,I))}));var $=M?void 0:(j?R?p:f:R?E:k)(t);return o($||t,(function(r,o){$&&(r=t[o=r]),a(A,o,e(r,n,D,o,t,I))})),A}},3118:(e,t,n)=>{var r=n(13218),o=Object.create,a=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=a},89881:(e,t,n)=>{var r=n(47816),o=n(99291)(r);e.exports=o},21078:(e,t,n)=>{var r=n(62488),o=n(37285);e.exports=function e(t,n,a,i,l){var s=-1,u=t.length;for(a||(a=o),l||(l=[]);++s<u;){var c=t[s];n>0&&a(c)?n>1?e(c,n-1,a,i,l):r(l,c):i||(l[l.length]=c)}return l}},28483:(e,t,n)=>{var r=n(25063)();e.exports=r},47816:(e,t,n)=>{var r=n(28483),o=n(3674);e.exports=function(e,t){return e&&r(e,t,o)}},97786:(e,t,n)=>{var r=n(71811),o=n(40327);e.exports=function(e,t){for(var n=0,a=(t=r(t,e)).length;null!=e&&n<a;)e=e[o(t[n++])];return n&&n==a?e:void 0}},68866:(e,t,n)=>{var r=n(62488),o=n(1469);e.exports=function(e,t,n){var a=t(e);return o(e)?a:r(a,n(e))}},44239:(e,t,n)=>{var r=n(62705),o=n(89607),a=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},9454:(e,t,n)=>{var r=n(44239),o=n(37005);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},90939:(e,t,n)=>{var r=n(2492),o=n(37005);e.exports=function e(t,n,a,i,l){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,a,i,e,l))}},2492:(e,t,n)=>{var r=n(46384),o=n(67114),a=n(18351),i=n(16096),l=n(64160),s=n(1469),u=n(44144),c=n(36719),d="[object Arguments]",f="[object Array]",p="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,v){var b=s(e),y=s(t),w=b?f:l(e),x=y?f:l(t),_=(w=w==d?p:w)==p,k=(x=x==d?p:x)==p,E=w==x;if(E&&u(e)){if(!u(t))return!1;b=!0,_=!1}if(E&&!_)return v||(v=new r),b||c(e)?o(e,t,n,m,g,v):a(e,t,w,n,m,g,v);if(!(1&n)){var S=_&&h.call(e,"__wrapped__"),C=k&&h.call(t,"__wrapped__");if(S||C){var T=S?e.value():e,O=C?t.value():t;return v||(v=new r),g(T,O,n,m,v)}}return!!E&&(v||(v=new r),i(e,t,n,m,g,v))}},25588:(e,t,n)=>{var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(46384),o=n(90939);e.exports=function(e,t,n,a){var i=n.length,l=i,s=!a;if(null==e)return!l;for(e=Object(e);i--;){var u=n[i];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<l;){var c=(u=n[i])[0],d=e[c],f=u[1];if(s&&u[2]){if(void 0===d&&!(c in e))return!1}else{var p=new r;if(a)var h=a(d,f,c,e,t,p);if(!(void 0===h?o(f,d,3,a,p):h))return!1}}return!0}},28458:(e,t,n)=>{var r=n(23560),o=n(15346),a=n(13218),i=n(80346),l=/^\[object .+?Constructor\]$/,s=Function.prototype,u=Object.prototype,c=s.toString,d=u.hasOwnProperty,f=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(r(e)?f:l).test(i(e))}},29221:(e,t,n)=>{var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Set]"==r(e)}},38749:(e,t,n)=>{var r=n(44239),o=n(41780),a=n(37005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return a(e)&&o(e.length)&&!!i[r(e)]}},67206:(e,t,n)=>{var r=n(91573),o=n(16432),a=n(6557),i=n(1469),l=n(39601);e.exports=function(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?i(e)?o(e[0],e[1]):r(e):l(e)}},280:(e,t,n)=>{var r=n(25726),o=n(86916),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))a.call(e,n)&&"constructor"!=n&&t.push(n);return t}},10313:(e,t,n)=>{var r=n(13218),o=n(25726),a=n(33498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=o(e),n=[];for(var l in e)("constructor"!=l||!t&&i.call(e,l))&&n.push(l);return n}},91573:(e,t,n)=>{var r=n(2958),o=n(1499),a=n(42634);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},16432:(e,t,n)=>{var r=n(90939),o=n(27361),a=n(79095),i=n(15403),l=n(89162),s=n(42634),u=n(40327);e.exports=function(e,t){return i(e)&&l(t)?s(u(e),t):function(n){var i=o(n,e);return void 0===i&&i===t?a(n,e):r(t,i,3)}}},40371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},79152:(e,t,n)=>{var r=n(97786);e.exports=function(e){return function(t){return r(t,e)}}},56560:(e,t,n)=>{var r=n(75703),o=n(38777),a=n(6557),i=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:a;e.exports=i},14259:e=>{e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r<o;)a[r]=e[r+t];return a}},22545:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},80531:(e,t,n)=>{var r=n(62705),o=n(29932),a=n(1469),i=n(33448),l=r?r.prototype:void 0,s=l?l.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(a(t))return o(t,e)+"";if(i(t))return s?s.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},57406:(e,t,n)=>{var r=n(71811),o=n(10928),a=n(40292),i=n(40327);e.exports=function(e,t){return t=r(t,e),null==(e=a(e,t))||delete e[i(o(t))]}},74757:e=>{e.exports=function(e,t){return e.has(t)}},71811:(e,t,n)=>{var r=n(1469),o=n(15403),a=n(55514),i=n(79833);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:a(i(e))}},74318:(e,t,n)=>{var r=n(11149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},64626:(e,t,n)=>{e=n.nmd(e);var r=n(55639),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o?r.Buffer:void 0,l=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}},57157:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},93147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},40419:(e,t,n)=>{var r=n(62705),o=r?r.prototype:void 0,a=o?o.valueOf:void 0;e.exports=function(e){return a?Object(a.call(e)):{}}},77133:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},98363:(e,t,n)=>{var r=n(34865),o=n(89465);e.exports=function(e,t,n,a){var i=!n;n||(n={});for(var l=-1,s=t.length;++l<s;){var u=t[l],c=a?a(n[u],e[u],u,n,e):void 0;void 0===c&&(c=e[u]),i?o(n,u,c):r(n,u,c)}return n}},18805:(e,t,n)=>{var r=n(98363),o=n(99551);e.exports=function(e,t){return r(e,o(e),t)}},1911:(e,t,n)=>{var r=n(98363),o=n(51442);e.exports=function(e,t){return r(e,o(e),t)}},14429:(e,t,n)=>{var r=n(55639)["__core-js_shared__"];e.exports=r},55189:(e,t,n)=>{var r=n(44174),o=n(81119),a=n(67206),i=n(1469);e.exports=function(e,t){return function(n,l){var s=i(n)?r:o,u=t?t():{};return s(n,e,a(l,2),u)}}},99291:(e,t,n)=>{var r=n(98612);e.exports=function(e,t){return function(n,o){if(null==n)return n;if(!r(n))return e(n,o);for(var a=n.length,i=t?a:-1,l=Object(n);(t?i--:++i<a)&&!1!==o(l[i],i,l););return n}}},25063:e=>{e.exports=function(e){return function(t,n,r){for(var o=-1,a=Object(t),i=r(t),l=i.length;l--;){var s=i[e?l:++o];if(!1===n(a[s],s,a))break}return t}}},60696:(e,t,n)=>{var r=n(68630);e.exports=function(e){return r(e)?void 0:e}},38777:(e,t,n)=>{var r=n(10852),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=o},67114:(e,t,n)=>{var r=n(88668),o=n(82908),a=n(74757);e.exports=function(e,t,n,i,l,s){var u=1&n,c=e.length,d=t.length;if(c!=d&&!(u&&d>c))return!1;var f=s.get(e),p=s.get(t);if(f&&p)return f==t&&p==e;var h=-1,m=!0,g=2&n?new r:void 0;for(s.set(e,t),s.set(t,e);++h<c;){var v=e[h],b=t[h];if(i)var y=u?i(b,v,h,t,e,s):i(v,b,h,e,t,s);if(void 0!==y){if(y)continue;m=!1;break}if(g){if(!o(t,(function(e,t){if(!a(g,t)&&(v===e||l(v,e,n,i,s)))return g.push(t)}))){m=!1;break}}else if(v!==b&&!l(v,b,n,i,s)){m=!1;break}}return s.delete(e),s.delete(t),m}},18351:(e,t,n)=>{var r=n(62705),o=n(11149),a=n(77813),i=n(67114),l=n(68776),s=n(21814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,d,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var p=l;case"[object Set]":var h=1&r;if(p||(p=s),e.size!=t.size&&!h)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var g=i(p(e),p(t),r,u,d,f);return f.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},16096:(e,t,n)=>{var r=n(58234),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,i,l){var s=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!s)return!1;for(var d=c;d--;){var f=u[d];if(!(s?f in t:o.call(t,f)))return!1}var p=l.get(e),h=l.get(t);if(p&&h)return p==t&&h==e;var m=!0;l.set(e,t),l.set(t,e);for(var g=s;++d<c;){var v=e[f=u[d]],b=t[f];if(a)var y=s?a(b,v,f,t,e,l):a(v,b,f,e,t,l);if(!(void 0===y?v===b||i(v,b,n,a,l):y)){m=!1;break}g||(g="constructor"==f)}if(m&&!g){var w=e.constructor,x=t.constructor;w==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof x&&x instanceof x||(m=!1)}return l.delete(e),l.delete(t),m}},99021:(e,t,n)=>{var r=n(85564),o=n(45357),a=n(30061);e.exports=function(e){return a(o(e,void 0,r),e+"")}},31957:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:(e,t,n)=>{var r=n(68866),o=n(99551),a=n(3674);e.exports=function(e){return r(e,a,o)}},46904:(e,t,n)=>{var r=n(68866),o=n(51442),a=n(81704);e.exports=function(e){return r(e,a,o)}},45050:(e,t,n)=>{var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(89162),o=n(3674);e.exports=function(e){for(var t=o(e),n=t.length;n--;){var a=t[n],i=e[a];t[n]=[a,i,r(i)]}return t}},10852:(e,t,n)=>{var r=n(28458),o=n(47801);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},85924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},89607:(e,t,n)=>{var r=n(62705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,l=r?r.toStringTag:void 0;e.exports=function(e){var t=a.call(e,l),n=e[l];try{e[l]=void 0;var r=!0}catch(s){}var o=i.call(e);return r&&(t?e[l]=n:delete e[l]),o}},99551:(e,t,n)=>{var r=n(34963),o=n(70479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,l=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return a.call(e,t)})))}:o;e.exports=l},51442:(e,t,n)=>{var r=n(62488),o=n(85924),a=n(99551),i=n(70479),l=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,a(e)),e=o(e);return t}:i;e.exports=l},64160:(e,t,n)=>{var r=n(18552),o=n(57071),a=n(53818),i=n(58525),l=n(70577),s=n(44239),u=n(80346),c="[object Map]",d="[object Promise]",f="[object Set]",p="[object WeakMap]",h="[object DataView]",m=u(r),g=u(o),v=u(a),b=u(i),y=u(l),w=s;(r&&w(new r(new ArrayBuffer(1)))!=h||o&&w(new o)!=c||a&&w(a.resolve())!=d||i&&w(new i)!=f||l&&w(new l)!=p)&&(w=function(e){var t=s(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return h;case g:return c;case v:return d;case b:return f;case y:return p}return t}),e.exports=w},47801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(71811),o=n(35694),a=n(1469),i=n(65776),l=n(41780),s=n(40327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,d=!1;++u<c;){var f=s(t[u]);if(!(d=null!=e&&n(e,f)))break;e=e[f]}return d||++u!=c?d:!!(c=null==e?0:e.length)&&l(c)&&i(f,c)&&(a(e)||o(e))}},51789:(e,t,n)=>{var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:(e,t,n)=>{var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},21327:(e,t,n)=>{var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},81866:(e,t,n)=>{var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},43824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},29148:(e,t,n)=>{var r=n(74318),o=n(57157),a=n(93147),i=n(40419),l=n(77133);e.exports=function(e,t,n){var s=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new s(+e);case"[object DataView]":return o(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return l(e,n);case"[object Map]":case"[object Set]":return new s;case"[object Number]":case"[object String]":return new s(e);case"[object RegExp]":return a(e);case"[object Symbol]":return i(e)}}},38517:(e,t,n)=>{var r=n(3118),o=n(85924),a=n(25726);e.exports=function(e){return"function"!=typeof e.constructor||a(e)?{}:r(o(e))}},37285:(e,t,n)=>{var r=n(62705),o=n(35694),a=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return a(e)||o(e)||!!(i&&e&&e[i])}},65776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},15403:(e,t,n)=>{var r=n(1469),o=n(33448),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(i.test(e)||!a.test(e)||null!=t&&e in Object(t))}},37019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15346:(e,t,n)=>{var r,o=n(14429),a=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!a&&a in e}},25726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},89162:(e,t,n)=>{var r=n(13218);e.exports=function(e){return e==e&&!r(e)}},27040:e=>{e.exports=function(){this.__data__=[],this.size=0}},14125:(e,t,n)=>{var r=n(18470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},82117:(e,t,n)=>{var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:(e,t,n)=>{var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},54705:(e,t,n)=>{var r=n(18470);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},24785:(e,t,n)=>{var r=n(1989),o=n(38407),a=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||o),string:new r}}},11285:(e,t,n)=>{var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:(e,t,n)=>{var r=n(45050);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},68776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},42634:e=>{e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},24523:(e,t,n)=>{var r=n(88306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},94536:(e,t,n)=>{var r=n(10852)(Object,"create");e.exports=r},86916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},33498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},31167:(e,t,n)=>{e=n.nmd(e);var r=n(31957),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o&&r.process,l=function(){try{var e=a&&a.require&&a.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(t){}}();e.exports=l},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},45357:(e,t,n)=>{var r=n(96874),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,l=o(a.length-t,0),s=Array(l);++i<l;)s[i]=a[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=a[i];return u[t]=n(s),r(e,this,u)}}},40292:(e,t,n)=>{var r=n(97786),o=n(14259);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},55639:(e,t,n)=>{var r=n(31957),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();e.exports=a},90619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:e=>{e.exports=function(e){return this.__data__.has(e)}},21814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},30061:(e,t,n)=>{var r=n(56560),o=n(21275)(r);e.exports=o},21275:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var o=t(),a=16-(o-r);if(r=o,a>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},37465:(e,t,n)=>{var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:e=>{e.exports=function(e){return this.__data__.get(e)}},44758:e=>{e.exports=function(e){return this.__data__.has(e)}},34309:(e,t,n)=>{var r=n(38407),o=n(57071),a=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new a(i)}return n.set(e,t),this.size=n.size,this}},55514:(e,t,n)=>{var r=n(24523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(a,"$1"):n||e)})),t}));e.exports=i},40327:(e,t,n)=>{var r=n(33448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},80346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},75703:e=>{e.exports=function(e){return function(){return e}}},77813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},85564:(e,t,n)=>{var r=n(21078);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},27361:(e,t,n)=>{var r=n(97786);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},7739:(e,t,n)=>{var r=n(89465),o=n(55189),a=Object.prototype.hasOwnProperty,i=o((function(e,t,n){a.call(e,n)?e[n].push(t):r(e,n,[t])}));e.exports=i},79095:(e,t,n)=>{var r=n(13),o=n(222);e.exports=function(e,t){return null!=e&&o(e,t,r)}},6557:e=>{e.exports=function(e){return e}},35694:(e,t,n)=>{var r=n(9454),o=n(37005),a=Object.prototype,i=a.hasOwnProperty,l=a.propertyIsEnumerable,s=r(function(){return arguments}())?r:function(e){return o(e)&&i.call(e,"callee")&&!l.call(e,"callee")};e.exports=s},1469:e=>{var t=Array.isArray;e.exports=t},98612:(e,t,n)=>{var r=n(23560),o=n(41780);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},44144:(e,t,n)=>{e=n.nmd(e);var r=n(55639),o=n(95062),a=t&&!t.nodeType&&t,i=a&&e&&!e.nodeType&&e,l=i&&i.exports===a?r.Buffer:void 0,s=(l?l.isBuffer:void 0)||o;e.exports=s},23560:(e,t,n)=>{var r=n(44239),o=n(13218);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},56688:(e,t,n)=>{var r=n(25588),o=n(7518),a=n(31167),i=a&&a.isMap,l=i?o(i):r;e.exports=l},13218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},68630:(e,t,n)=>{var r=n(44239),o=n(85924),a=n(37005),i=Function.prototype,l=Object.prototype,s=i.toString,u=l.hasOwnProperty,c=s.call(Object);e.exports=function(e){if(!a(e)||"[object Object]"!=r(e))return!1;var t=o(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&s.call(n)==c}},72928:(e,t,n)=>{var r=n(29221),o=n(7518),a=n(31167),i=a&&a.isSet,l=i?o(i):r;e.exports=l},33448:(e,t,n)=>{var r=n(44239),o=n(37005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},36719:(e,t,n)=>{var r=n(38749),o=n(7518),a=n(31167),i=a&&a.isTypedArray,l=i?o(i):r;e.exports=l},3674:(e,t,n)=>{var r=n(14636),o=n(280),a=n(98612);e.exports=function(e){return a(e)?r(e):o(e)}},81704:(e,t,n)=>{var r=n(14636),o=n(10313),a=n(98612);e.exports=function(e){return a(e)?r(e,!0):o(e)}},10928:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},88306:(e,t,n)=>{var r=n(83369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},57557:(e,t,n)=>{var r=n(29932),o=n(85990),a=n(57406),i=n(71811),l=n(98363),s=n(60696),u=n(99021),c=n(46904),d=u((function(e,t){var n={};if(null==e)return n;var u=!1;t=r(t,(function(t){return t=i(t,e),u||(u=t.length>1),t})),l(e,c(e),n),u&&(n=o(n,7,s));for(var d=t.length;d--;)a(n,t[d]);return n}));e.exports=d},39601:(e,t,n)=>{var r=n(40371),o=n(79152),a=n(15403),i=n(40327);e.exports=function(e){return a(e)?r(i(e)):o(e)}},70479:e=>{e.exports=function(){return[]}},95062:e=>{e.exports=function(){return!1}},79833:(e,t,n)=>{var r=n(80531);e.exports=function(e){return null==e?"":r(e)}},31336:(e,t,n)=>{var r,o;!function(){var a,i,l,s,u,c,d,f,p,h,m,g,v,b,y,w,x,_,k,E,S,C,T,O,D,P,N,I,A,L,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var o=n[r],a=e[o];if(Array.isArray(a))t[o]=a.slice();else{if("string"!=typeof a&&"number"!=typeof a&&"boolean"!=typeof a)throw new TypeError("clone is not deep and does not support nested objects");t[o]=a}}return t},R.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},R.FieldRef.joiner="/",R.FieldRef.fromString=function(e){var t=e.indexOf(R.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new R.FieldRef(r,n,e)},R.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+R.FieldRef.joiner+this.docRef),this._stringValue},R.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},R.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},R.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},R.Set.prototype.contains=function(e){return!!this.elements[e]},R.Set.prototype.intersect=function(e){var t,n,r,o=[];if(e===R.Set.complete)return this;if(e===R.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var a=0;a<r.length;a++){var i=r[a];i in n.elements&&o.push(i)}return new R.Set(o)},R.Set.prototype.union=function(e){return e===R.Set.complete?R.Set.complete:e===R.Set.empty?this:new R.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},R.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var o=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(o))},R.Token=function(e,t){this.str=e||"",this.metadata=t||{}},R.Token.prototype.toString=function(){return this.str},R.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},R.Token.prototype.clone=function(e){return e=e||function(e){return e},new R.Token(e(this.str,this.metadata),this.metadata)},R.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new R.Token(R.utils.asString(e).toLowerCase(),R.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,o=[],a=0,i=0;a<=r;a++){var l=a-i;if(n.charAt(a).match(R.tokenizer.separator)||a==r){if(l>0){var s=R.utils.clone(t)||{};s.position=[i,l],s.index=o.length,o.push(new R.Token(n.slice(i,a),s))}i=a+1}}return o},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],o=[],a=0;a<e.length;a++){var i=r(e[a],a,e);if(null!=i&&""!==i)if(Array.isArray(i))for(var l=0;l<i.length;l++)o.push(i[l]);else o.push(i)}e=o}return e},R.Pipeline.prototype.runString=function(e,t){var n=new R.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},R.Pipeline.prototype.reset=function(){this._stack=[]},R.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return R.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},R.Vector=function(e){this._magnitude=0,this.elements=e||[]},R.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,o=Math.floor(r/2),a=this.elements[2*o];r>1&&(a<e&&(t=o),a>e&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:a<e?2*(o+1):void 0},R.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},R.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},R.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},R.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,o=n.length,a=r.length,i=0,l=0,s=0,u=0;s<o&&u<a;)(i=n[s])<(l=r[u])?s+=2:i>l?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},R.Vector.prototype.toJSON=function(){return this.elements},R.stemmer=(i={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},l={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(u="[^aeiou][^aeiouy]*")+")?"+(c=(s="[aeiouy]")+"[aeiou]*")+u+"("+c+")?$",f="^("+u+")?"+c+u+c+u,p="^("+u+")?"+s,h=new RegExp("^("+u+")?"+c+u),m=new RegExp(f),g=new RegExp(d),v=new RegExp(p),b=/^(.+?)(ss|i)es$/,y=/^(.+?)([^s])s$/,w=/^(.+?)eed$/,x=/^(.+?)(ed|ing)$/,_=/.$/,k=/(at|bl|iz)$/,E=new RegExp("([^aeiouylsz])\\1$"),S=new RegExp("^"+u+s+"[^aeiouwxy]$"),C=/^(.+?[^aeiou])y$/,T=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,O=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,D=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,P=/^(.+?)(s|t)(ion)$/,N=/^(.+?)e$/,I=/ll$/,A=new RegExp("^"+u+s+"[^aeiouwxy]$"),L=function(e){var t,n,r,o,a,s,u;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),a=y,(o=b).test(e)?e=e.replace(o,"$1$2"):a.test(e)&&(e=e.replace(a,"$1$2")),a=x,(o=w).test(e)){var c=o.exec(e);(o=h).test(c[1])&&(o=_,e=e.replace(o,""))}else a.test(e)&&(t=(c=a.exec(e))[1],(a=v).test(t)&&(s=E,u=S,(a=k).test(e=t)?e+="e":s.test(e)?(o=_,e=e.replace(o,"")):u.test(e)&&(e+="e")));return(o=C).test(e)&&(e=(t=(c=o.exec(e))[1])+"i"),(o=T).test(e)&&(t=(c=o.exec(e))[1],n=c[2],(o=h).test(t)&&(e=t+i[n])),(o=O).test(e)&&(t=(c=o.exec(e))[1],n=c[2],(o=h).test(t)&&(e=t+l[n])),a=P,(o=D).test(e)?(t=(c=o.exec(e))[1],(o=m).test(t)&&(e=t)):a.test(e)&&(t=(c=a.exec(e))[1]+c[2],(a=m).test(t)&&(e=t)),(o=N).test(e)&&(t=(c=o.exec(e))[1],a=g,s=A,((o=m).test(t)||a.test(t)&&!s.test(t))&&(e=t)),a=m,(o=I).test(e)&&a.test(e)&&(o=_,e=e.replace(o,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(L)}),R.Pipeline.registerFunction(R.stemmer,"stemmer"),R.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},R.stopWordFilter=R.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),R.Pipeline.registerFunction(R.stopWordFilter,"stopWordFilter"),R.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},R.Pipeline.registerFunction(R.trimmer,"trimmer"),R.TokenSet=function(){this.final=!1,this.edges={},this.id=R.TokenSet._nextId,R.TokenSet._nextId+=1},R.TokenSet._nextId=1,R.TokenSet.fromArray=function(e){for(var t=new R.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},R.TokenSet.fromClause=function(e){return"editDistance"in e?R.TokenSet.fromFuzzyString(e.term,e.editDistance):R.TokenSet.fromString(e.term)},R.TokenSet.fromFuzzyString=function(e,t){for(var n=new R.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var o=r.pop();if(o.str.length>0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new R.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new R.TokenSet;o.node.edges["*"]=l}if(0==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new R.TokenSet;o.node.edges["*"]=s}1==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var u,c=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?u=o.node.edges[d]:(u=new R.TokenSet,o.node.edges[d]=u),1==o.str.length&&(u.final=!0),r.push({node:u,editsRemaining:o.editsRemaining-1,str:c+o.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,o=e.length;r<o;r++){var a=e[r],i=r==o-1;if("*"==a)t.edges[a]=t,t.final=i;else{var l=new R.TokenSet;l.final=i,t.edges[a]=l,t=l}}return n},R.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),o=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var a=0;a<o;a++){var i=r[a];t.push({prefix:n.prefix.concat(i),node:n.node.edges[i]})}}return e},R.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var o=t[r];e=e+o+this.edges[o].id}return e},R.TokenSet.prototype.intersect=function(e){for(var t=new R.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var o=Object.keys(n.qNode.edges),a=o.length,i=Object.keys(n.node.edges),l=i.length,s=0;s<a;s++)for(var u=o[s],c=0;c<l;c++){var d=i[c];if(d==u||"*"==u){var f=n.node.edges[d],p=n.qNode.edges[u],h=f.final&&p.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||h:((m=new R.TokenSet).final=h,n.output.edges[d]=m),r.push({qNode:p,output:m,node:f})}}}return t},R.TokenSet.Builder=function(){this.previousWord="",this.root=new R.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},R.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var o=new R.TokenSet,a=e[r];t.edges[a]=o,this.uncheckedNodes.push({parent:t,char:a,child:o}),t=o}t.final=!0,this.previousWord=e},R.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},R.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),l=0;l<this.fields.length;l++)r[this.fields[l]]=new R.Vector;e.call(t,t);for(l=0;l<t.clauses.length;l++){var s=t.clauses[l],u=null,c=R.Set.empty;u=s.usePipeline?this.pipeline.runString(s.term,{fields:s.fields}):[s.term];for(var d=0;d<u.length;d++){var f=u[d];s.term=f;var p=R.TokenSet.fromClause(s),h=this.tokenSet.intersect(p).toArray();if(0===h.length&&s.presence===R.Query.presence.REQUIRED){for(var m=0;m<s.fields.length;m++){a[N=s.fields[m]]=R.Set.empty}break}for(var g=0;g<h.length;g++){var v=h[g],b=this.invertedIndex[v],y=b._index;for(m=0;m<s.fields.length;m++){var w=b[N=s.fields[m]],x=Object.keys(w),_=v+"/"+N,k=new R.Set(x);if(s.presence==R.Query.presence.REQUIRED&&(c=c.union(k),void 0===a[N]&&(a[N]=R.Set.complete)),s.presence!=R.Query.presence.PROHIBITED){if(r[N].upsert(y,s.boost,(function(e,t){return e+t})),!o[_]){for(var E=0;E<x.length;E++){var S,C=x[E],T=new R.FieldRef(C,N),O=w[C];void 0===(S=n[T])?n[T]=new R.MatchData(v,N,O):S.add(v,N,O)}o[_]=!0}}else void 0===i[N]&&(i[N]=R.Set.empty),i[N]=i[N].union(k)}}}if(s.presence===R.Query.presence.REQUIRED)for(m=0;m<s.fields.length;m++){a[N=s.fields[m]]=a[N].intersect(c)}}var D=R.Set.complete,P=R.Set.empty;for(l=0;l<this.fields.length;l++){var N;a[N=this.fields[l]]&&(D=D.intersect(a[N])),i[N]&&(P=P.union(i[N]))}var I=Object.keys(n),A=[],L=Object.create(null);if(t.isNegated()){I=Object.keys(this.fieldVectors);for(l=0;l<I.length;l++){T=I[l];var j=R.FieldRef.fromString(T);n[T]=new R.MatchData}}for(l=0;l<I.length;l++){var M=(j=R.FieldRef.fromString(I[l])).docRef;if(D.contains(M)&&!P.contains(M)){var F,B=this.fieldVectors[j],z=r[j.fieldName].similarity(B);if(void 0!==(F=L[M]))F.score+=z,F.matchData.combine(n[j]);else{var $={ref:M,score:z,matchData:n[j]};L[M]=$,A.push($)}}}return A.sort((function(e,t){return t.score-e.score}))},R.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:R.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},R.Index.load=function(e){var t={},n={},r=e.fieldVectors,o=Object.create(null),a=e.invertedIndex,i=new R.TokenSet.Builder,l=R.Pipeline.load(e.pipeline);e.version!=R.version&&R.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+R.version+"' does not match serialized index '"+e.version+"'");for(var s=0;s<r.length;s++){var u=(d=r[s])[0],c=d[1];n[u]=new R.Vector(c)}for(s=0;s<a.length;s++){var d,f=(d=a[s])[0],p=d[1];i.insert(f),o[f]=p}return i.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=o,t.tokenSet=i.root,t.pipeline=l,new R.Index(t)},R.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=R.tokenizer,this.pipeline=new R.Pipeline,this.searchPipeline=new R.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},R.Builder.prototype.ref=function(e){this._ref=e},R.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},R.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o<r.length;o++){var a=r[o],i=this._fields[a].extractor,l=i?i(e):e[a],s=this.tokenizer(l,{fields:[a]}),u=this.pipeline.run(s),c=new R.FieldRef(n,a),d=Object.create(null);this.fieldTermFrequencies[c]=d,this.fieldLengths[c]=0,this.fieldLengths[c]+=u.length;for(var f=0;f<u.length;f++){var p=u[f];if(null==d[p]&&(d[p]=0),d[p]+=1,null==this.invertedIndex[p]){var h=Object.create(null);h._index=this.termIndex,this.termIndex+=1;for(var m=0;m<r.length;m++)h[r[m]]=Object.create(null);this.invertedIndex[p]=h}null==this.invertedIndex[p][a][n]&&(this.invertedIndex[p][a][n]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var v=this.metadataWhitelist[g],b=p.metadata[v];null==this.invertedIndex[p][a][n][v]&&(this.invertedIndex[p][a][n][v]=[]),this.invertedIndex[p][a][n][v].push(b)}}}},R.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},o=0;o<t;o++){var a=R.FieldRef.fromString(e[o]),i=a.fieldName;r[i]||(r[i]=0),r[i]+=1,n[i]||(n[i]=0),n[i]+=this.fieldLengths[a]}var l=Object.keys(this._fields);for(o=0;o<l.length;o++){var s=l[o];n[s]=n[s]/r[s]}this.averageFieldLength=n},R.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),o=0;o<n;o++){for(var a=R.FieldRef.fromString(t[o]),i=a.fieldName,l=this.fieldLengths[a],s=new R.Vector,u=this.fieldTermFrequencies[a],c=Object.keys(u),d=c.length,f=this._fields[i].boost||1,p=this._documents[a.docRef].boost||1,h=0;h<d;h++){var m,g,v,b=c[h],y=u[b],w=this.invertedIndex[b]._index;void 0===r[b]?(m=R.idf(this.invertedIndex[b],this.documentCount),r[b]=m):m=r[b],g=m*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[i]))+y),g*=f,g*=p,v=Math.round(1e3*g)/1e3,s.insert(w,v)}e[a]=s}this.fieldVectors=e},R.Builder.prototype.createTokenSet=function(){this.tokenSet=R.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},R.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new R.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},R.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},R.MatchData=function(e,t,n){for(var r=Object.create(null),o=Object.keys(n||{}),a=0;a<o.length;a++){var i=o[a];r[i]=n[i].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},R.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],o=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var a=0;a<o.length;a++){var i=o[a],l=Object.keys(e.metadata[r][i]);null==this.metadata[r][i]&&(this.metadata[r][i]=Object.create(null));for(var s=0;s<l.length;s++){var u=l[s];null==this.metadata[r][i][u]?this.metadata[r][i][u]=e.metadata[r][i][u]:this.metadata[r][i][u]=this.metadata[r][i][u].concat(e.metadata[r][i][u])}}}},R.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),o=0;o<r.length;o++){var a=r[o];a in this.metadata[e][t]?this.metadata[e][t][a]=this.metadata[e][t][a].concat(n[a]):this.metadata[e][t][a]=n[a]}else this.metadata[e][t]=n},R.Query=function(e){this.clauses=[],this.allFields=e},R.Query.wildcard=new String("*"),R.Query.wildcard.NONE=0,R.Query.wildcard.LEADING=1,R.Query.wildcard.TRAILING=2,R.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},R.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=R.Query.wildcard.NONE),e.wildcard&R.Query.wildcard.LEADING&&e.term.charAt(0)!=R.Query.wildcard&&(e.term="*"+e.term),e.wildcard&R.Query.wildcard.TRAILING&&e.term.slice(-1)!=R.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=R.Query.presence.OPTIONAL),this.clauses.push(e),this},R.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=R.Query.presence.PROHIBITED)return!1;return!0},R.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,R.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},R.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},R.QueryParseError.prototype=new Error,R.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},R.QueryLexer.prototype.run=function(){for(var e=R.QueryLexer.lexText;e;)e=e(this)},R.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},R.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},R.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},R.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos<this.length},R.QueryLexer.EOS="EOS",R.QueryLexer.FIELD="FIELD",R.QueryLexer.TERM="TERM",R.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",R.QueryLexer.BOOST="BOOST",R.QueryLexer.PRESENCE="PRESENCE",R.QueryLexer.lexField=function(e){return e.backup(),e.emit(R.QueryLexer.FIELD),e.ignore(),R.QueryLexer.lexText},R.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(o.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=o)}()},27861:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={icon:"icon_S7Kx",s:"s_AZDZ",m:"m_thRi",l:"l_WHPt",fill:"fill_hNhN",stroke:"stroke_N8dm"}},10153:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={backdrop:"backdrop_Ifvc",navWrapper:"navWrapper_ybYI",nav:"nav_cMpg",visible:"visible_ynAX",wrapper:"wrapper_SWrM",fullscreenButton:"fullscreenButton_Bocn",active:"active_qZD5"}},8633:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={toggle:"toggle_K23S",toggleButton:"toggleButton_dl49",darkToggleIcon:"darkToggleIcon_lKkA",lightToggleIcon:"lightToggleIcon_K4TL",toggleButtonDisabled:"toggleButtonDisabled_AAS_"}},79762:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={firstRow:"firstRow_ar1q",secondRow:"secondRow__ww3",backToTop:"backToTop_wDfN"}},90826:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={colorModeToggle:"colorModeToggle_GSaI",rightSection:"rightSection_CLeF",iconButtonGroup:"iconButtonGroup_ktNv"}},83244:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={dropdownNavbarItem:"dropdownNavbarItem_o23I"}},31259:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={modal:"modal_kLVz",closeButton:"closeButton_Rr0e",header:"header_QwCa"}},61699:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_ONDG",empty:"empty_a7qb",title:"title_uwS_",item:"item_RHYF",itemTitle:"itemTitle_jtAv"}},9592:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_xZfc",textField:"textField_af43"}},1443:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_N57j"}},18589:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_Ooa0",level1:"level1_fpUf",icon:"icon_sZn2",fill:"fill_fkan",stroke:"stroke_j3wH"}},86620:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_JWD1"}},38076:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_EFVO"}},20550:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_ltHz",noResults:"noResults_mD2O",groups:"groups_p1lF",divider:"divider_eGUz",topBar:"topBar_Dtew"}},22473:(e,t,n)=>{"use strict";n.r(t)},11057:(e,t,n)=>{"use strict";n.r(t)},93878:(e,t,n)=>{"use strict";n.r(t)},32497:(e,t,n)=>{"use strict";n.r(t)},97087:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={navbarHideable:"navbarHideable_OoEf",navbarHidden:"navbarHidden_zoxl"}},88822:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={linkContent:"linkContent__x3v",externalLinkIcon:"externalLinkIcon_Qfue"}},36459:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_QACb"}},97142:(e,t)=>{"use strict";t.I=function(e){e.client&&(document.head.appendChild(e.msh=document.createElement("style")),e.createRule=function(t,n){var r=t+"{}";n&&(r=n+"{"+r+"}");var o=n?e.msh.sheet:e.sh.sheet,a=o.insertRule(r,o.cssRules.length),i=(o.cssRules||o.rules)[a];if(i.index=a,n){var l=(i.cssRules||i.rules)[0];i.style=l.style,i.styleMap=l.styleMap}return i})}},52099:(e,t,n)=>{"use strict";var r=n(39662).D;t.I=function(e){if(e.client){0;var t=e.kebab;n.prototype.diff=function(e){var n,r=this.decl,o=this.rule.style;for(n in r)void 0===e[n]&&o.removeProperty(n);for(n in e)e[n]!==r[n]&&o.setProperty(t(n),e[n]);this.decl=e},n.prototype.del=function(){r(this.rule)},o.prototype.diff=function(e){var t=this.tree;for(var r in t)if(void 0===e[r]){var o=t[r];for(var a in o)o[a].del()}for(var r in e)if(void 0===t[r])for(var a in e[r]){(s=new n(a,r)).diff(e[r][a]),e[r][a]=s}else{var i=t[r],l=e[r];for(var a in i)l[a]||i[a].del();for(var a in l){var s;(s=i[a])?(s.diff(l[a]),l[a]=s):((s=new n(a,r)).diff(l[a]),l[a]=s)}}this.tree=e},e.VRule=n,e.VSheet=o}function n(t,n){this.rule=e.createRule(t,n),this.decl={}}function o(){this.tree={}}}},87749:(e,t)=>{t.z=function e(t,n,r,o){var a,i,l={},s=!1;for(a in n)"object"!=typeof(i=n[a])&&(s=!0,l[a]=i);for(a in s&&(t[o]||(t[o]={}),t[o][r]=l),n)if("object"==typeof(i=n[a]))if("@"===a[0])e(t,i,r,a);else{var u=a.indexOf("&")>-1,c=r.split(",");if(u)for(var d=0;d<c.length;d++)c[d]=a.replace(/&/g,c[d]);else for(d=0;d<c.length;d++)c[d]=c[d]+" "+a;e(t,i,c.join(","),o)}}},39662:(e,t)=>{t.D=function(e){var t=e.index,n=e.parentStyleSheet,r=n.cssRules||n.rules;for(t=Math.max(t,r.length-1);t>=0;){if(r[t]===e){n.deleteRule(t);break}t--}}},40818:(e,t)=>{"use strict";var n=/[A-Z]/g;t.U=function(e){var t=(e=e||{}).assign||Object.assign;var r=t({raw:"",pfx:"_",client:"object"==typeof window,assign:t,stringify:JSON.stringify,kebab:function(e){return e.replace(n,"-$&").toLowerCase()},decl:function(e,t){return(e=r.kebab(e))+":"+t+";"},hash:function(e){return function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return"_"+(t>>>0).toString(36)}(r.stringify(e))},selector:function(e,t){return e+(":"===t[0]?"":" ")+t},putRaw:function(e){r.raw+=e}},e);return r.client&&(r.sh||document.head.appendChild(r.sh=document.createElement("style")),r.putRaw=function(e){var t=r.sh.sheet;try{t.insertRule(e,t.cssRules.length)}catch(n){}}),r.put=function(e,t,n){var o,a,i="",l=[];for(o in t)(a=t[o])instanceof Object&&!(a instanceof Array)?l.push(o):i+=r.decl(o,a,e,n);i&&(i=e+"{"+i+"}",r.putRaw(n?n+"{"+i+"}":i));for(var s=0;s<l.length;s++)"@"===(o=l[s])[0]&&"@font-face"!==o?r.putAt(e,t[o],o):r.put(r.selector(e,o),t[o],n)},r.putAt=r.put,r}},74865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var a,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in a=Object(arguments[s]))n.call(a,u)&&(l[u]=a[u]);if(t){i=t(a);for(var c=0;c<i.length;c++)r.call(a,i[c])&&(l[i[c]]=a[i[c]])}}return l}},87594:(e,t)=>{function n(e){let t,n=[];for(let r of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,o,a]=t;if(r&&a){r=parseInt(r),a=parseInt(a);const e=r<a?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(a+=e);for(let t=r;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var l in a)if(a.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=a[l])}var u=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],o||l);var s=t[l],u=r.util.type(s);"Object"!==u||a[i(s)]?"Array"!==u||a[i(s)]||(a[i(s)]=!0,e(s,n,l,a)):(a[i(s)]=!0,e(s,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new l;return s(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var h=0;h<p.length;++h){if(d&&d.cause==f+","+h)return;var m=p[h],g=m.inside,v=!!m.lookbehind,b=!!m.greedy,y=m.alias;if(b&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var x=m.pattern||m,_=l.next,k=c;_!==t.tail&&!(d&&k>=d.reach);k+=_.value.length,_=_.next){var E=_.value;if(t.length>e.length)return;if(!(E instanceof o)){var S,C=1;if(b){if(!(S=a(x,k,e,v))||S.index>=e.length)break;var T=S.index,O=S.index+S[0].length,D=k;for(D+=_.value.length;T>=D;)D+=(_=_.next).value.length;if(k=D-=_.value.length,_.value instanceof o)continue;for(var P=_;P!==t.tail&&(D<O||"string"==typeof P.value);P=P.next)C++,D+=P.value.length;C--,E=e.slice(k,D),S.index-=k}else if(!(S=a(x,0,E,v)))continue;T=S.index;var N=S[0],I=E.slice(0,T),A=E.slice(T+N.length),L=k+E.length;d&&L>d.reach&&(d.reach=L);var R=_.prev;if(I&&(R=s(t,R,I),k+=I.length),u(t,R,C),_=s(t,R,new o(f,g?r.tokenize(N,g):N,y,N)),A&&s(t,_,A),C>1){var j={cause:f+","+h,reach:L};i(e,t,n,_.prev,k,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function u(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var l="";for(var s in a.attributes)l+=" "+s+'="'+(a.attributes[s]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+l+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var l=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],u=/language-(.+)/.exec(a);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var a=f(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),o.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&o.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))o++;else if(r.test(l)&&0===--o)return a}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function u(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,s(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function c(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,c={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=o,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=f[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var s=a.substring(0,l),d=u(c[o]),p=a.substring(l+o.length),h=[];if(s&&h.push(s),h.push(d),p){var m=[p];e(m),h.push.apply(h,m)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(h)),n+=h.length-1):r.content=h}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&l(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(o>=a.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[o],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),h=f.indexOf(p);if(h>-1){++o;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(h+p.length),b=[];m&&b.push.apply(b,i([m])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),o=n(39642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},16500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),h=c;o(h);){for(var m in f={},h){var g=s[m];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var b in p(v))if(b in c){f[v]=!0;break}for(var y in h=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var o,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)o=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));a?o=a(f,(function(){return r(e)})):r(e)}return l[e]=o}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),o=n(27418),a=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,h={},m={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var o=v.hasOwnProperty(t)?v[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!p.call(m,e)||!p.call(h,e)&&(f.test(e)?m[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_=60103,k=60106,E=60107,S=60108,C=60114,T=60109,O=60110,D=60112,P=60113,N=60120,I=60115,A=60116,L=60121,R=60128,j=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;_=B("react.element"),k=B("react.portal"),E=B("react.fragment"),S=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),O=B("react.context"),D=B("react.forward_ref"),P=B("react.suspense"),N=B("react.suspense_list"),I=B("react.memo"),A=B("react.lazy"),L=B("react.block"),B("react.scope"),R=B("react.opaque.id"),j=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var z,$="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=$&&e[$]||e["@@iterator"])?e:null}function H(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var V=!1;function q(e,t){if(!e||V)return"";V=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var o=s.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{V=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?H(e):""}function W(e){switch(e.tag){case 5:return H(e.type);case 16:return H("Lazy");case 13:return H("Suspense");case 19:return H("SuspenseList");case 0:case 2:case 15:return e=q(e.type,!1);case 11:return e=q(e.type.render,!1);case 22:return e=q(e.type._render,!1);case 1:return e=q(e.type,!0);default:return""}}function G(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case k:return"Portal";case C:return"Profiler";case S:return"StrictMode";case P:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case O:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case D:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case I:return G(e.type);case L:return G(e._render);case A:t=e._payload,e=e._init;try{return G(e(t))}catch(n){}}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Z(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Z(n)}}function ue(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,me,ge=(me=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return me(e,t)}))}:me);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function xe(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(be).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var _e=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ke(e,t){if(t){if(_e[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function Ee(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Oe=null;function De(e){if(e=no(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=oo(t),Ce(e.stateNode,e.type,t))}}function Pe(e){Te?Oe?Oe.push(e):Oe=[e]:Te=e}function Ne(){if(Te){var e=Te,t=Oe;if(Oe=Te=null,De(e),t)for(e=0;e<t.length;e++)De(t[e])}}function Ie(e,t){return e(t)}function Ae(e,t,n,r,o){return e(t,n,r,o)}function Le(){}var Re=Ie,je=!1,Me=!1;function Fe(){null===Te&&null===Oe||(Le(),Ne())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=oo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var $e={};Object.defineProperty($e,"passive",{get:function(){ze=!0}}),window.addEventListener("test",$e,$e),window.removeEventListener("test",$e,$e)}catch(me){ze=!1}function Ue(e,t,n,r,o,a,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var He=!1,Ve=null,qe=!1,We=null,Ge={onError:function(e){He=!0,Ve=e}};function Ze(e,t,n,r,o,a,i,l,s){He=!1,Ve=null,Ue.apply(Ge,arguments)}function Qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ye(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Qe(e)!==e)throw Error(i(188))}function Ke(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l){for(s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,at=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function mt(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=pt(t,n,r,o,a),null!==t&&(null!==(t=no(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function gt(e){var t=to(e.target);if(null!==t){var n=Qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ye(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function bt(e,t,n){vt(e)&&n.delete(t)}function yt(){for(ot=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==it&&vt(it)&&(it=null),null!==lt&&vt(lt)&&(lt=null),null!==st&&vt(st)&&(st=null),ut.forEach(bt),ct.forEach(bt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yt)))}function xt(e){function t(t){return wt(t,e)}if(0<at.length){wt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function _t(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kt={animationend:_t("Animation","AnimationEnd"),animationiteration:_t("Animation","AnimationIteration"),animationstart:_t("Animation","AnimationStart"),transitionend:_t("Transition","TransitionEnd")},Et={},St={};function Ct(e){if(Et[e])return Et[e];if(!kt[e])return e;var t,n=kt[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return Et[e]=n[t];return e}d&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete kt.animationend.animation,delete kt.animationiteration.animation,delete kt.animationstart.animation),"TransitionEvent"in window||delete kt.transitionend.transition);var Tt=Ct("animationend"),Ot=Ct("animationiteration"),Dt=Ct("animationstart"),Pt=Ct("transitionend"),Nt=new Map,It=new Map,At=["abort","abort",Tt,"animationEnd",Ot,"animationIteration",Dt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Pt,"transitionEnd","waiting","waiting"];function Lt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),It.set(r,t),Nt.set(r,o),u(o,[r])}}(0,a.unstable_now)();var Rt=8;function jt(e){if(0!=(1&e))return Rt=15,1;if(0!=(2&e))return Rt=14,2;if(0!=(4&e))return Rt=13,4;var t=24&e;return 0!==t?(Rt=12,t):0!=(32&e)?(Rt=11,32):0!==(t=192&e)?(Rt=10,t):0!=(256&e)?(Rt=9,256):0!==(t=3584&e)?(Rt=8,t):0!=(4096&e)?(Rt=7,4096):0!==(t=4186112&e)?(Rt=6,t):0!==(t=62914560&e)?(Rt=5,t):67108864&e?(Rt=4,67108864):0!=(134217728&e)?(Rt=3,134217728):0!==(t=805306368&e)?(Rt=2,t):0!=(1073741824&e)?(Rt=1,1073741824):(Rt=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return Rt=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==a)r=a,o=Rt=15;else if(0!==(a=134217727&n)){var s=a&~i;0!==s?(r=jt(s),o=Rt):0!==(l&=a)&&(r=jt(l),o=Rt)}else 0!==(a=n&~i)?(r=jt(a),o=Rt):0!==l&&(r=jt(l),o=Rt);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(jt(t),o<=Rt)return t;Rt=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-Ht(t)),r|=e[n],t&=~o;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Bt(10,t):e;case 10:return 0===(e=zt(192&~t))?Bt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function $t(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ut(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/qt|0)|0},Vt=Math.log,qt=Math.LN2;var Wt=a.unstable_UserBlockingPriority,Gt=a.unstable_runWithPriority,Zt=!0;function Qt(e,t,n,r){je||Le();var o=Xt,a=je;je=!0;try{Ae(o,e,t,n,r)}finally{(je=a)||Fe()}}function Yt(e,t,n,r){Gt(Wt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Zt)if((o=0==(4&t))&&0<at.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),at.push(e);else{var a=Kt(e,t,n,r);if(null===a)o&&ht(e,r);else{if(o){if(-1<ft.indexOf(e))return e=pt(a,e,t,n,r),void at.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return it=mt(it,e,t,n,r,o),!0;case"dragenter":return lt=mt(lt,e,t,n,r,o),!0;case"mouseover":return st=mt(st,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return ut.set(a,mt(ut.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,ct.set(a,mt(ct.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;ht(e,r)}Lr(e,t,r,null,n)}}}function Kt(e,t,n,r){var o=Se(r);if(null!==(o=to(o))){var a=Qe(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Ye(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Lr(e,t,r,o,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Jt?Jt.value:Jt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function ln(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=o({},dn,{view:0,detail:0}),hn=ln(pn),mn=o({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(mn),vn=ln(o({},mn,{dataTransfer:0})),bn=ln(o({},pn,{relatedTarget:0})),yn=ln(o({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=o({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),xn=ln(wn),_n=ln(o({},dn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},En={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Tn(){return Cn}var On=o({},pn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?En[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Dn=ln(On),Pn=ln(o({},mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=ln(o({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),In=ln(o({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),An=o({},mn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Ln=ln(An),Rn=[9,13,27,32],jn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Mn,Bn=d&&(!jn||Mn&&8<Mn&&11>=Mn),zn=String.fromCharCode(32),$n=!1;function Un(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Gn(e,t,n,r){Pe(r),0<(t=jr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Zn=null,Qn=null;function Yn(e){Or(e,0)}function Xn(e){if(X(ro(e)))return e}function Kn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Zn&&(Zn.detachEvent("onpropertychange",or),Qn=Zn=null)}function or(e){if("value"===e.propertyName&&Xn(Qn)){var t=[];if(Gn(t,Qn,e,Se(e)),e=Yn,je)e(t);else{je=!0;try{Ie(e,t)}finally{je=!1,Fe()}}}}function ar(e,t,n){"focusin"===e?(rr(),Qn=n,(Zn=t).attachEvent("onpropertychange",or)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Qn)}function lr(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function mr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,br=null,yr=null,wr=null,xr=!1;function _r(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;xr||null==br||br!==K(r)||("selectionStart"in(r=br)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=jr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=br)))}Lt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Lt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Lt(At,2);for(var kr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Er=0;Er<kr.length;Er++)It.set(kr[Er],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,l,s,u){if(Ze.apply(this,arguments),He){if(!He)throw Error(i(198));var c=Ve;He=!1,Ve=null,qe||(qe=!0,We=c)}}(r,t,void 0,e),e.currentTarget=null}function Or(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;Tr(o,l,u),a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;Tr(o,l,u),a=s}}}if(qe)throw e=We,qe=!1,We=null,e}function Dr(e,t){var n=ao(t),r=e+"__bubble";n.has(r)||(Ar(t,e,2,!1),n.add(r))}var Pr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[Pr]||(e[Pr]=!0,l.forEach((function(t){Cr.has(t)||Ir(t,!1,e,null),Ir(t,!0,e,null)})))}function Ir(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=ao(a),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(o|=4),Ar(a,e,o,t),i.add(l))}function Ar(e,t,n,r){var o=It.get(t);switch(void 0===o?2:o){case 0:o=Qt;break;case 1:o=Yt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Lr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===o||8===s.nodeType&&s.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=to(l)))return;if(5===(s=i.tag)||6===s){r=a=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Re(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=a,o=Se(n),i=[];e:{var l=Nt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Dn;break;case"focusin":u="focus",s=bn;break;case"focusout":u="blur",s=bn;break;case"beforeblur":case"afterblur":s=bn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Nn;break;case Tt:case Ot:case Dt:s=yn;break;case Pt:s=In;break;case"scroll":s=hn;break;case"wheel":s=Ln;break;case"copy":case"cut":case"paste":s=xn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Pn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,h=r;null!==h;){var m=(p=h).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==f&&(null!=(m=Be(h,f))&&c.push(Rr(h,m,p)))),d)break;h=h.return}0<c.length&&(l=new s(l,u,null,n,o),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!to(u)&&!u[Jr])&&(s||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?to(u):null)&&(u!==(d=Qe(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,m="onMouseLeave",f="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Pn,m="onPointerLeave",f="onPointerEnter",h="pointer"),d=null==s?l:ro(s),p=null==u?l:ro(u),(l=new c(m,h+"leave",s,n,o)).target=d,l.relatedTarget=p,m=null,to(o)===r&&((c=new c(f,h+"enter",u,n,o)).target=p,c.relatedTarget=d,m=c),d=m,s&&u)e:{for(f=u,h=0,p=c=s;p;p=Mr(p))h++;for(p=0,m=f;m;m=Mr(m))p++;for(;0<h-p;)c=Mr(c),h--;for(;0<p-h;)f=Mr(f),p--;for(;h--;){if(c===f||null!==f&&c===f.alternate)break e;c=Mr(c),f=Mr(f)}c=null}else c=null;null!==s&&Fr(i,l,s,c,!1),null!==u&&null!==d&&Fr(i,d,u,c,!0)}if("select"===(s=(l=r?ro(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Kn;else if(Wn(l))if(Jn)g=sr;else{g=ir;var v=ar}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Gn(i,g,n,o):(v&&v(e,l,r),"focusout"===e&&(v=l._wrapperState)&&v.controlled&&"number"===l.type&&oe(l,"number",l.value)),v=r?ro(r):window,e){case"focusin":(Wn(v)||"true"===v.contentEditable)&&(br=v,yr=r,wr=null);break;case"focusout":wr=yr=br=null;break;case"mousedown":xr=!0;break;case"contextmenu":case"mouseup":case"dragend":xr=!1,_r(i,n,o);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":_r(i,n,o)}var b;if(jn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?Un(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(b=nn()):(en="value"in(Jt=o)?Jt.value:Jt.textContent,Vn=!0)),0<(v=jr(r,y)).length&&(y=new _n(y,e,null,n,o),i.push({event:y,listeners:v}),b?y.data=b:null!==(b=Hn(n))&&(y.data=b))),(b=Fn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:($n=!0,zn);case"textInput":return(e=t.data)===zn&&$n?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!jn&&Un(e,t)?(e=nn(),tn=en=Jt=null,Vn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=jr(r,"onBeforeInput")).length&&(o=new _n("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=b))}Or(i,t)}))}function Rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function jr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Be(e,n))&&r.unshift(Rr(e,a,o)),null!=(a=Be(e,t))&&r.push(Rr(e,a,o))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,o?null!=(s=Be(n,a))&&i.unshift(Rr(n,s,l)):o||null!=(s=Be(n,a))&&i.push(Rr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var zr=null,$r=null;function Ur(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vr="function"==typeof setTimeout?setTimeout:void 0,qr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Gr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Zr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Qr=0;var Yr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Yr,Kr="__reactProps$"+Yr,Jr="__reactContainer$"+Yr,eo="__reactEvents$"+Yr;function to(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Zr(e);null!==e;){if(n=e[Xr])return n;e=Zr(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Xr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ro(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oo(e){return e[Kr]||null}function ao(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var io=[],lo=-1;function so(e){return{current:e}}function uo(e){0>lo||(e.current=io[lo],io[lo]=null,lo--)}function co(e,t){lo++,io[lo]=e.current,e.current=t}var fo={},po=so(fo),ho=so(!1),mo=fo;function go(e,t){var n=e.type.contextTypes;if(!n)return fo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function vo(e){return null!=(e=e.childContextTypes)}function bo(){uo(ho),uo(po)}function yo(e,t,n){if(po.current!==fo)throw Error(i(168));co(po,t),co(ho,n)}function wo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,G(t)||"Unknown",a));return o({},n,r)}function xo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fo,mo=po.current,co(po,e),co(ho,ho.current),!0}function _o(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wo(e,t,mo),r.__reactInternalMemoizedMergedChildContext=e,uo(ho),uo(po),co(po,e)):uo(ho),co(ho,n)}var ko=null,Eo=null,So=a.unstable_runWithPriority,Co=a.unstable_scheduleCallback,To=a.unstable_cancelCallback,Oo=a.unstable_shouldYield,Do=a.unstable_requestPaint,Po=a.unstable_now,No=a.unstable_getCurrentPriorityLevel,Io=a.unstable_ImmediatePriority,Ao=a.unstable_UserBlockingPriority,Lo=a.unstable_NormalPriority,Ro=a.unstable_LowPriority,jo=a.unstable_IdlePriority,Mo={},Fo=void 0!==Do?Do:function(){},Bo=null,zo=null,$o=!1,Uo=Po(),Ho=1e4>Uo?Po:function(){return Po()-Uo};function Vo(){switch(No()){case Io:return 99;case Ao:return 98;case Lo:return 97;case Ro:return 96;case jo:return 95;default:throw Error(i(332))}}function qo(e){switch(e){case 99:return Io;case 98:return Ao;case 97:return Lo;case 96:return Ro;case 95:return jo;default:throw Error(i(332))}}function Wo(e,t){return e=qo(e),So(e,t)}function Go(e,t,n){return e=qo(e),Co(e,t,n)}function Zo(){if(null!==zo){var e=zo;zo=null,To(e)}Qo()}function Qo(){if(!$o&&null!==Bo){$o=!0;var e=0;try{var t=Bo;Wo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Bo=null}catch(n){throw null!==Bo&&(Bo=Bo.slice(e+1)),Co(Io,Zo),n}finally{$o=!1}}}var Yo=x.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ko=so(null),Jo=null,ea=null,ta=null;function na(){ta=ea=Jo=null}function ra(e){var t=Ko.current;uo(Ko),e.type._context._currentValue=t}function oa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function aa(e,t){Jo=e,ta=ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ji=!0),e.firstContext=null)}function ia(e,t){if(ta!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ta=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ea){if(null===Jo)throw Error(i(308));ea=t,Jo.dependencies={lanes:0,firstContext:t,responders:null}}else ea=ea.next=t;return e._currentValue}var la=!1;function sa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ua(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ca(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function da(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function pa(e,t,n,r){var a=e.updateQueue;la=!1;var i=a.firstBaseUpdate,l=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=a.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var h=e,m=i;switch(s=t,p=n,m.tag){case 1:if("function"==typeof(h=m.payload)){f=h.call(p,f,s);break e}f=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null==(s="function"==typeof(h=m.payload)?h.call(p,f,s):h))break e;f=o({},f,s);break e;case 2:la=!0}}null!==i.callback&&(e.flags|=32,null===(s=a.effects)?a.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=a.shared.pending))break;i=s.next,s.next=null,a.lastBaseUpdate=s,a.shared.pending=null}}null===d&&(u=f),a.baseState=u,a.firstBaseUpdate=c,a.lastBaseUpdate=d,$l|=l,e.lanes=l,e.memoizedState=f}}function ha(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ma=(new r.Component).refs;function ga(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var va={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),o=ps(e),a=ca(r,o);a.payload=t,null!=n&&(a.callback=n),da(e,a),hs(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),o=ps(e),a=ca(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),da(e,a),hs(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),o=ca(n,r);o.tag=2,null!=t&&(o.callback=t),da(e,o),hs(e,r,n)}};function ba(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(o,a))}function ya(e,t,n){var r=!1,o=fo,a=t.contextType;return"object"==typeof a&&null!==a?a=ia(a):(o=vo(t)?mo:po.current,a=(r=null!=(r=t.contextTypes))?go(e,o):fo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=va,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function wa(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&va.enqueueReplaceState(t,t.state,null)}function xa(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ma,sa(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=ia(a):(a=vo(t)?mo:po.current,o.context=go(e,a)),pa(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ga(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&va.enqueueReplaceState(o,o.state,null),pa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var _a=Array.isArray;function ka(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ma&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Ea(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Sa(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Ws(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ys(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=ka(e,t,n),r.return=e,r):((r=Gs(n.type,n.key,n.props,null,e.mode,r)).ref=ka(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xs(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Zs(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ys(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case _:return(n=Gs(t.type,t.key,t.props,null,e.mode,n)).ref=ka(e,null,t),n.return=e,n;case k:return(t=Xs(t,e.mode,n)).return=e,t}if(_a(t)||U(t))return(t=Zs(t,e.mode,n,null)).return=e,t;Ea(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case _:return n.key===o?n.type===E?d(e,t,n.props.children,r,o):u(e,t,n,r):null;case k:return n.key===o?c(e,t,n,r):null}if(_a(n)||U(n))return null!==o?null:d(e,t,n,r,null);Ea(e,n)}return null}function h(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case _:return e=e.get(null===r.key?n:r.key)||null,r.type===E?d(t,e,r.props.children,o,r.key):u(t,e,r,o);case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(_a(r)||U(r))return d(t,e=e.get(n)||null,r,o,null);Ea(t,r)}return null}function m(o,i,l,s){for(var u=null,c=null,d=i,m=i=0,g=null;null!==d&&m<l.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var v=p(o,d,l[m],s);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(o,d),i=a(v,i,m),null===c?u=v:c.sibling=v,c=v,d=g}if(m===l.length)return n(o,d),u;if(null===d){for(;m<l.length;m++)null!==(d=f(o,l[m],s))&&(i=a(d,i,m),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(o,d);m<l.length;m++)null!==(g=h(d,o,m,l[m],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),i=a(g,i,m),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(o,e)})),u}function g(o,l,s,u){var c=U(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,m=l,g=l=0,v=null,b=s.next();null!==m&&!b.done;g++,b=s.next()){m.index>g?(v=m,m=null):v=m.sibling;var y=p(o,m,b.value,u);if(null===y){null===m&&(m=v);break}e&&m&&null===y.alternate&&t(o,m),l=a(y,l,g),null===d?c=y:d.sibling=y,d=y,m=v}if(b.done)return n(o,m),c;if(null===m){for(;!b.done;g++,b=s.next())null!==(b=f(o,b.value,u))&&(l=a(b,l,g),null===d?c=b:d.sibling=b,d=b);return c}for(m=r(o,m);!b.done;g++,b=s.next())null!==(b=h(m,o,g,b.value,u))&&(e&&null!==b.alternate&&m.delete(null===b.key?g:b.key),l=a(b,l,g),null===d?c=b:d.sibling=b,d=b);return e&&m.forEach((function(e){return t(o,e)})),c}return function(e,r,a,s){var u="object"==typeof a&&null!==a&&a.type===E&&null===a.key;u&&(a=a.props.children);var c="object"==typeof a&&null!==a;if(c)switch(a.$$typeof){case _:e:{for(c=a.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(a.type===E){n(e,u.sibling),(r=o(u,a.props.children)).return=e,e=r;break e}}else if(u.elementType===a.type){n(e,u.sibling),(r=o(u,a.props)).ref=ka(e,u,a),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}a.type===E?((r=Zs(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=Gs(a.type,a.key,a.props,null,e.mode,s)).ref=ka(e,r,a),s.return=e,e=s)}return l(e);case k:e:{for(u=a.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xs(a,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Ys(a,e.mode,s)).return=e,e=r),l(e);if(_a(a))return m(e,r,a,s);if(U(a))return g(e,r,a,s);if(c&&Ea(e,a),void 0===a&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,G(e.type)||"Component"))}return n(e,r)}}var Ca=Sa(!0),Ta=Sa(!1),Oa={},Da=so(Oa),Pa=so(Oa),Na=so(Oa);function Ia(e){if(e===Oa)throw Error(i(174));return e}function Aa(e,t){switch(co(Na,t),co(Pa,e),co(Da,Oa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}uo(Da),co(Da,t)}function La(){uo(Da),uo(Pa),uo(Na)}function Ra(e){Ia(Na.current);var t=Ia(Da.current),n=pe(t,e.type);t!==n&&(co(Pa,e),co(Da,n))}function ja(e){Pa.current===e&&(uo(Da),uo(Pa))}var Ma=so(0);function Fa(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ba=null,za=null,$a=!1;function Ua(e,t){var n=Vs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ha(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Va(e){if($a){var t=za;if(t){var n=t;if(!Ha(e,t)){if(!(t=Gr(n.nextSibling))||!Ha(e,t))return e.flags=-1025&e.flags|2,$a=!1,void(Ba=e);Ua(Ba,n)}Ba=e,za=Gr(t.firstChild)}else e.flags=-1025&e.flags|2,$a=!1,Ba=e}}function qa(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Ba=e}function Wa(e){if(e!==Ba)return!1;if(!$a)return qa(e),$a=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=za;t;)Ua(e,t),t=Gr(t.nextSibling);if(qa(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){za=Gr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}za=null}}else za=Ba?Gr(e.stateNode.nextSibling):null;return!0}function Ga(){za=Ba=null,$a=!1}var Za=[];function Qa(){for(var e=0;e<Za.length;e++)Za[e]._workInProgressVersionPrimary=null;Za.length=0}var Ya=x.ReactCurrentDispatcher,Xa=x.ReactCurrentBatchConfig,Ka=0,Ja=null,ei=null,ti=null,ni=!1,ri=!1;function oi(){throw Error(i(321))}function ai(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,o,a){if(Ka=a,Ja=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ya.current=null===e||null===e.memoizedState?Ii:Ai,e=n(r,o),ri){a=0;do{if(ri=!1,!(25>a))throw Error(i(301));a+=1,ti=ei=null,t.updateQueue=null,Ya.current=Li,e=n(r,o)}while(ri)}if(Ya.current=Ni,t=null!==ei&&null!==ei.next,Ka=0,ti=ei=Ja=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Ja.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Ja.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Ja.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Ja.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var l=o.next;o.next=a.next,a.next=l}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var s=l=a=null,u=o;do{var c=u.lane;if((Ka&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,a=r):s=s.next=d,Ja.lanes|=c,$l|=c}u=u.next}while(null!==u&&u!==o);null===s?a=r:s.next=l,ur(r,t.memoizedState)||(ji=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{a=e(a,l.action),l=l.next}while(l!==o);ur(a,t.memoizedState)||(ji=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Ka&e)===e)&&(t._workInProgressVersionPrimary=r,Za.push(t))),e)return n(t._source);throw Za.push(t),Error(i(350))}function pi(e,t,n,r){var o=Al;if(null===o)throw Error(i(349));var a=t._getVersion,l=a(t._source),s=Ya.current,u=s.useState((function(){return fi(o,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,h=p.getSnapshot,m=f.source;f=f.subscribe;var g=Ja;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=a(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var s=31-Ht(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),ur(h,n)&&ur(m,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Pi.bind(null,Ja,e),u.queue=e,u.baseQueue=null,d=fi(o,t,n),u.memoizedState=u.baseState=d),d}function hi(e,t,n){return pi(si(),e,t,n)}function mi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Pi.bind(null,Ja,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Ja.updateQueue)?(t={lastEffect:null},Ja.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},li().memoizedState=e}function bi(){return si().memoizedState}function yi(e,t,n,r){var o=li();Ja.flags|=e,o.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var o=si();r=void 0===r?null:r;var a=void 0;if(null!==ei){var i=ei.memoizedState;if(a=i.destroy,null!==r&&ai(r,i.deps))return void gi(t,n,a,r)}Ja.flags|=e,o.memoizedState=gi(1|t,n,a,r)}function xi(e,t){return yi(516,4,e,t)}function _i(e,t){return wi(516,4,e,t)}function ki(e,t){return wi(4,2,e,t)}function Ei(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Si(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,Ei.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Oi(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Di(e,t){var n=Vo();Wo(98>n?98:n,(function(){e(!0)})),Wo(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function Pi(e,t,n){var r=fs(),o=ps(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===Ja||null!==i&&i===Ja)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(a.eagerReducer=i,a.eagerState=s,ur(s,l))return}catch(u){}hs(e,o,r)}}var Ni={readContext:ia,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Ii={readContext:ia,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:ia,useEffect:xi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,Ei.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Pi.bind(null,Ja,e),[r.memoizedState,e]},useRef:vi,useState:mi,useDebugValue:Ci,useDeferredValue:function(e){var t=mi(e),n=t[0],r=t[1];return xi((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=mi(!1),t=e[0];return vi(e=Di.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if($a){var e=!1,t=function(e){return{$$typeof:R,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Qr++).toString(36))),Error(i(355))})),n=mi(t)[1];return 0==(2&Ja.mode)&&(Ja.flags|=516,gi(5,(function(){n("r:"+(Qr++).toString(36))}),void 0,null)),t}return mi(t="r:"+(Qr++).toString(36)),t},unstable_isNewReconciler:!1},Ai={readContext:ia,useCallback:Ti,useContext:ia,useEffect:_i,useImperativeHandle:Si,useLayoutEffect:ki,useMemo:Oi,useReducer:ci,useRef:bi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return _i((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[bi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Li={readContext:ia,useCallback:Ti,useContext:ia,useEffect:_i,useImperativeHandle:Si,useLayoutEffect:ki,useMemo:Oi,useReducer:di,useRef:bi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return _i((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[bi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Ri=x.ReactCurrentOwner,ji=!1;function Mi(e,t,n,r){t.child=null===e?Ta(t,null,n,r):Ca(t,e.child,n,r)}function Fi(e,t,n,r,o){n=n.render;var a=t.ref;return aa(t,o),r=ii(e,t,n,r,a,o),null===e||ji?(t.flags|=1,Mi(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Bi(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||qs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Gs(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(o,r)&&e.ref===t.ref)?al(e,t,a):(t.flags|=1,(e=Ws(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,o,a){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(ji=!1,0==(a&o))return t.lanes=e.lanes,al(e,t,a);0!=(16384&e.flags)&&(ji=!0)}return Hi(e,t,n,r,a)}function $i(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},_s(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},_s(t,e),null;t.memoizedState={baseLanes:0},_s(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,_s(t,r);return Mi(e,t,o,n),t.child}function Ui(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Hi(e,t,n,r,o){var a=vo(n)?mo:po.current;return a=go(t,a),aa(t,o),n=ii(e,t,n,r,a,o),null===e||ji?(t.flags|=1,Mi(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Vi(e,t,n,r,o){if(vo(n)){var a=!0;xo(t)}else a=!1;if(aa(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),ya(t,n,r),xa(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=ia(u):u=go(t,u=vo(n)?mo:po.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wa(t,i,r,u),la=!1;var f=t.memoizedState;i.state=f,pa(t,r,i,o),s=t.memoizedState,l!==r||f!==s||ho.current||la?("function"==typeof c&&(ga(t,n,c,r),s=t.memoizedState),(l=la||ba(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,ua(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Xo(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=ia(s):s=go(t,s=vo(n)?mo:po.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wa(t,i,r,s),la=!1,f=t.memoizedState,i.state=f,pa(t,r,i,o);var h=t.memoizedState;l!==d||f!==h||ho.current||la?("function"==typeof p&&(ga(t,n,p,r),h=t.memoizedState),(u=la||ba(t,n,u,r,f,h,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return qi(e,t,n,r,a,o)}function qi(e,t,n,r,o,a){Ui(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&_o(t,n,!1),al(e,t,a);r=t.stateNode,Ri.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ca(t,e.child,null,a),t.child=Ca(t,null,l,a)):Mi(e,t,l,a),t.memoizedState=r.state,o&&_o(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?yo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&yo(0,t.context,!1),Aa(e,t.containerInfo)}var Gi,Zi,Qi,Yi,Xi={dehydrated:null,retryLane:0};function Ki(e,t,n){var r,o=t.pendingProps,a=Ma.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),co(Ma,1&a),null===e?(void 0!==o.fallback&&Va(t),e=o.children,a=o.fallback,i?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Qs({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=tl(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,o):(n=el(e,t,o.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Qs(t,o,0,null),n=Zs(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function el(e,t,n,r){var o=e.child;return e=o.sibling,n=Ws(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Ws(i,l),null!==e?r=Ws(e,r):(r=Zs(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),oa(e.return,t)}function rl(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function ol(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Ma.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(co(Ma,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Fa(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rl(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Fa(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rl(t,!0,n,null,a,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function al(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),$l|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Ws(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ws(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!$a)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return vo(t.type)&&bo(),null;case 3:return La(),uo(ho),uo(po),Qa(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wa(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Zi(t),null;case 5:ja(t);var a=Ia(Na.current);if(n=t.type,null!==e&&null!=t.stateNode)Qi(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Ia(Da.current),Wa(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Kr]=l,n){case"dialog":Dr("cancel",r),Dr("close",r);break;case"iframe":case"object":case"embed":Dr("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)Dr(Sr[e],r);break;case"source":Dr("error",r);break;case"img":case"image":case"link":Dr("error",r),Dr("load",r);break;case"details":Dr("toggle",r);break;case"input":ee(r,l),Dr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Dr("invalid",r);break;case"textarea":se(r,l),Dr("invalid",r)}for(var u in ke(n,l),e=null,l)l.hasOwnProperty(u)&&(a=l[u],"children"===u?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):s.hasOwnProperty(u)&&null!=a&&"onScroll"===u&&Dr("scroll",r));switch(n){case"input":Y(r),re(r,l,!0);break;case"textarea":Y(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===a.nodeType?a:a.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Xr]=t,e[Kr]=r,Gi(e,t,!1,!1),t.stateNode=e,u=Ee(n,r),n){case"dialog":Dr("cancel",e),Dr("close",e),a=r;break;case"iframe":case"object":case"embed":Dr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Sr.length;a++)Dr(Sr[a],e);a=r;break;case"source":Dr("error",e),a=r;break;case"img":case"image":case"link":Dr("error",e),Dr("load",e),a=r;break;case"details":Dr("toggle",e),a=r;break;case"input":ee(e,r),a=J(e,r),Dr("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Dr("invalid",e);break;case"textarea":se(e,r),a=le(e,r),Dr("invalid",e);break;default:a=r}ke(n,a);var c=a;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?xe(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Dr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Z(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Br)}Ur(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yi(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Ia(Na.current),Ia(Da.current),Wa(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return uo(Ma),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wa(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Ma.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Al||0==(134217727&$l)&&0==(134217727&Ul)||bs(Al,Rl))),(r||n)&&(t.flags|=4),null);case 4:return La(),Zi(t),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return ra(t),null;case 19:if(uo(Ma),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Fa(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return co(Ma,1&Ma.current|2),t.child}e=e.sibling}null!==r.tail&&Ho()>Wl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Fa(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!$a)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ho()-r.renderingStartTime>Wl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ho(),n.sibling=null,t=Ma.current,co(Ma,l?1&t|2:1&t),n):null;case 23:case 24:return ks(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:vo(e.type)&&bo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(La(),uo(ho),uo(po),Qa(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return ja(e),null;case 13:return uo(Ma),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return uo(Ma),null;case 4:return La(),null;case 10:return ra(e),null;case 23:case 24:return ks(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=W(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Gi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Zi=function(){},Qi=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ia(Da.current);var i,l=null;switch(n){case"input":a=J(e,a),r=J(e,r),l=[];break;case"option":a=ae(e,a),r=ae(e,r),l=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),l=[];break;case"textarea":a=le(e,a),r=le(e,r),l=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in ke(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var u=a[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Dr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===R?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Yi=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=ca(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Yl||(Yl=!0,Xl=r),cl(0,t)},n}function pl(e,t,n){(n=ca(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return cl(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Kl?Kl=new Set([this]):Kl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var hl="function"==typeof WeakSet?WeakSet:Set;function ml(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function vl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Ms(n,e),js(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ha(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ha(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Ur(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&xt(n)))))}throw Error(i(163))}function bl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=we("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Eo&&"function"==typeof Eo.onCommitFiberUnmount)try{Eo.onCommitFiberUnmount(ko,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Ms(t,n);else{r=t;try{o()}catch(a){zs(r,a)}}n=n.next}while(n!==e)}break;case 1:if(ml(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){zs(t,a)}break;case 5:ml(t);break;case 4:Sl(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function xl(e){return 5===e.tag||3===e.tag||4===e.tag}function _l(e){e:{for(var t=e.return;null!==t;){if(xl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||xl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?kl(e,n,t):El(e,n,t)}function kl(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(kl(e,t,n),e=e.sibling;null!==e;)kl(e,t,n),e=e.sibling}function El(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function Sl(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var l=e,s=o,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=o.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(yl(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Kr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),Ee(e,o),t=Ee(e,r),o=0;o<a.length;o+=2){var l=a[o],s=a[o+1];"style"===l?xe(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?ve(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,xt(n.containerInfo)));case 13:return null!==t.memoizedState&&(ql=Ho(),bl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void bl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new hl),t.forEach((function(t){var r=Us.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ol(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Dl=Math.ceil,Pl=x.ReactCurrentDispatcher,Nl=x.ReactCurrentOwner,Il=0,Al=null,Ll=null,Rl=0,jl=0,Ml=so(0),Fl=0,Bl=null,zl=0,$l=0,Ul=0,Hl=0,Vl=null,ql=0,Wl=1/0;function Gl(){Wl=Ho()+500}var Zl,Ql=null,Yl=!1,Xl=null,Kl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],os=null,as=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Il)?Ho():-1!==ls?ls:ls=Ho()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Vo()?1:2;if(0===ss&&(ss=zl),0!==Yo.transition){0!==us&&(us=null!==Vl?Vl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Vo(),0!=(4&Il)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function hs(e,t,n){if(50<as)throw as=0,is=null,Error(i(185));if(null===(e=ms(e,t)))return null;Ut(e,t,n),e===Al&&(Ul|=t,4===Fl&&bs(e,Rl));var r=Vo();1===t?0!=(8&Il)&&0==(48&Il)?ys(e):(gs(e,n),0===Il&&(Gl(),Zo())):(0==(4&Il)||98!==r&&99!==r||(null===os?os=new Set([e]):os.add(e)),gs(e,n)),Vl=e}function ms(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-Ht(l),u=1<<s,c=a[s];if(-1===c){if(0==(u&r)||0!=(u&o)){c=t,jt(u);var d=Rt;a[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Mt(e,e===Al?Rl:0),t=Rt,0===r)null!==n&&(n!==Mo&&To(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Mo&&To(n)}15===t?(n=ys.bind(null,e),null===Bo?(Bo=[n],zo=Co(Io,Qo)):Bo.push(n),n=Mo):14===t?n=Go(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Go(n,vs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function vs(e){if(ls=-1,us=ss=0,0!=(48&Il))throw Error(i(327));var t=e.callbackNode;if(Rs()&&e.callbackNode!==t)return null;var n=Mt(e,e===Al?Rl:0);if(0===n)return null;var r=n,o=Il;Il|=16;var a=Cs();for(Al===e&&Rl===r||(Gl(),Es(e,r));;)try{Ds();break}catch(s){Ss(e,s)}if(na(),Pl.current=a,Il=o,null!==Ll?r=0:(Al=null,Rl=0,r=Fl),0!=(zl&Ul))Es(e,0);else if(0!==r){if(2===r&&(Il|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=Ft(e))&&(r=Ts(e,n))),1===r)throw t=Bl,Es(e,0),bs(e,n),gs(e,Ho()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Is(e);break;case 3:if(bs(e,n),(62914560&n)===n&&10<(r=ql+500-Ho())){if(0!==Mt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=Vr(Is.bind(null,e),r);break}Is(e);break;case 4:if(bs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var l=31-Ht(n);a=1<<l,(l=r[l])>o&&(o=l),n&=~a}if(n=o,10<(n=(120>(n=Ho()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Dl(n/1960))-n)){e.timeoutHandle=Vr(Is.bind(null,e),n);break}Is(e);break;default:throw Error(i(329))}}return gs(e,Ho()),e.callbackNode===t?vs.bind(null,e):null}function bs(e,t){for(t&=~Hl,t&=~Ul,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Il))throw Error(i(327));if(Rs(),e===Al&&0!=(e.expiredLanes&Rl)){var t=Rl,n=Ts(e,t);0!=(zl&Ul)&&(n=Ts(e,t=Mt(e,t)))}else n=Ts(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Il|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=Ft(e))&&(n=Ts(e,t))),1===n)throw n=Bl,Es(e,0),bs(e,t),gs(e,Ho()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Is(e),gs(e,Ho()),null}function ws(e,t){var n=Il;Il|=1;try{return e(t)}finally{0===(Il=n)&&(Gl(),Zo())}}function xs(e,t){var n=Il;Il&=-2,Il|=8;try{return e(t)}finally{0===(Il=n)&&(Gl(),Zo())}}function _s(e,t){co(Ml,jl),jl|=t,zl|=t}function ks(){jl=Ml.current,uo(Ml)}function Es(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,qr(n)),null!==Ll)for(n=Ll.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&bo();break;case 3:La(),uo(ho),uo(po),Qa();break;case 5:ja(r);break;case 4:La();break;case 13:case 19:uo(Ma);break;case 10:ra(r);break;case 23:case 24:ks()}n=n.return}Al=e,Ll=Ws(e.current,null),Rl=jl=zl=t,Fl=0,Bl=null,Hl=Ul=$l=0}function Ss(e,t){for(;;){var n=Ll;try{if(na(),Ya.current=Ni,ni){for(var r=Ja.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ni=!1}if(Ka=0,ti=ei=Ja=null,ri=!1,Nl.current=null,null===n||null===n.return){Fl=1,Bl=t,Ll=null;break}e:{var a=e,i=n.return,l=n,s=t;if(t=Rl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Ma.current),f=i;do{var p;if(p=13===f.tag){var h=f.memoizedState;if(null!==h)p=null!==h.dehydrated;else{var m=f.memoizedProps;p=void 0!==m.fallback&&(!0!==m.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var v=new Set;v.add(u),f.updateQueue=v}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var b=ca(-1,1);b.tag=2,da(l,b)}l.lanes|=1;break e}s=void 0,l=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=$s.bind(null,a,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((G(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:a=s,f.flags|=4096,t&=-t,f.lanes|=t,fa(f,fl(0,a,t));break e;case 1:a=s;var x=f.type,_=f.stateNode;if(0==(64&f.flags)&&("function"==typeof x.getDerivedStateFromError||null!==_&&"function"==typeof _.componentDidCatch&&(null===Kl||!Kl.has(_)))){f.flags|=4096,t&=-t,f.lanes|=t,fa(f,pl(f,a,t));break e}}f=f.return}while(null!==f)}Ns(n)}catch(k){t=k,Ll===n&&null!==n&&(Ll=n=n.return);continue}break}}function Cs(){var e=Pl.current;return Pl.current=Ni,null===e?Ni:e}function Ts(e,t){var n=Il;Il|=16;var r=Cs();for(Al===e&&Rl===t||Es(e,t);;)try{Os();break}catch(o){Ss(e,o)}if(na(),Il=n,Pl.current=r,null!==Ll)throw Error(i(261));return Al=null,Rl=0,Fl}function Os(){for(;null!==Ll;)Ps(Ll)}function Ds(){for(;null!==Ll&&!Oo();)Ps(Ll)}function Ps(e){var t=Zl(e.alternate,e,jl);e.memoizedProps=e.pendingProps,null===t?Ns(e):Ll=t,Nl.current=null}function Ns(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,jl)))return void(Ll=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&jl)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Ll=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ll=t);Ll=t=e}while(null!==t);0===Fl&&(Fl=5)}function Is(e){var t=Vo();return Wo(99,As.bind(null,e,t)),null}function As(e,t){do{Rs()}while(null!==es);if(0!=(48&Il))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<a;){var u=31-Ht(a),c=1<<u;o[u]=0,l[u]=-1,s[u]=-1,a&=~c}if(null!==os&&0==(24&r)&&os.has(e)&&os.delete(e),e===Al&&(Ll=Al=null,Rl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Il,Il|=32,Nl.current=null,zr=Zt,gr(l=mr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,a=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,h=0,m=0,g=l,v=null;t:for(;;){for(var b;g!==s||0!==a&&3!==g.nodeType||(f=d+a),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(b=g.firstChild);)v=g,g=b;for(;;){if(g===l)break t;if(v===s&&++h===a&&(f=d),v===u&&++m===c&&(p=d),null!==(b=g.nextSibling))break;v=(g=v).parentNode}g=b}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;$r={focusedElem:l,selectionRange:s},Zt=!1,cs=null,ds=!1,Ql=r;do{try{Ls()}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);cs=null,Ql=r;do{try{for(l=e;null!==Ql;){var y=Ql.flags;if(16&y&&ve(Ql.stateNode,""),128&y){var w=Ql.alternate;if(null!==w){var x=w.ref;null!==x&&("function"==typeof x?x(null):x.current=null)}}switch(1038&y){case 2:_l(Ql),Ql.flags&=-3;break;case 6:_l(Ql),Ql.flags&=-3,Cl(Ql.alternate,Ql);break;case 1024:Ql.flags&=-1025;break;case 1028:Ql.flags&=-1025,Cl(Ql.alternate,Ql);break;case 4:Cl(Ql.alternate,Ql);break;case 8:Sl(l,s=Ql);var _=s.alternate;wl(s),null!==_&&wl(_)}Ql=Ql.nextEffect}}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);if(x=$r,w=mr(),y=x.focusedElem,l=x.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(x=l.end)&&(x=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(x,y.value.length)):(x=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(x=x.getSelection(),s=y.textContent.length,_=Math.min(l.start,s),l=void 0===l.end?_:Math.min(l.end,s),!x.extend&&_>l&&(s=l,l=_,_=s),s=pr(y,_),a=pr(y,l),s&&a&&(1!==x.rangeCount||x.anchorNode!==s.node||x.anchorOffset!==s.offset||x.focusNode!==a.node||x.focusOffset!==a.offset)&&((w=w.createRange()).setStart(s.node,s.offset),x.removeAllRanges(),_>l?(x.addRange(w),x.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),x.addRange(w))))),w=[];for(x=y;x=x.parentNode;)1===x.nodeType&&w.push({element:x,left:x.scrollLeft,top:x.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(x=w[y]).element.scrollLeft=x.left,x.element.scrollTop=x.top}Zt=!!zr,$r=zr=null,e.current=n,Ql=r;do{try{for(y=e;null!==Ql;){var k=Ql.flags;if(36&k&&vl(y,Ql.alternate,Ql),128&k){w=void 0;var E=Ql.ref;if(null!==E){var S=Ql.stateNode;Ql.tag,w=S,"function"==typeof E?E(w):E.current=w}}Ql=Ql.nextEffect}}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);Ql=null,Fo(),Il=o}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Ql=r;null!==Ql;)t=Ql.nextEffect,Ql.nextEffect=null,8&Ql.flags&&((k=Ql).sibling=null,k.stateNode=null),Ql=t;if(0===(r=e.pendingLanes)&&(Kl=null),1===r?e===is?as++:(as=0,is=e):as=0,n=n.stateNode,Eo&&"function"==typeof Eo.onCommitFiberRoot)try{Eo.onCommitFiberRoot(ko,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,Ho()),Yl)throw Yl=!1,e=Xl,Xl=null,e;return 0!=(8&Il)||Zo(),null}function Ls(){for(;null!==Ql;){var e=Ql.alternate;ds||null===cs||(0!=(8&Ql.flags)?Je(Ql,cs)&&(ds=!0):13===Ql.tag&&Ol(e,Ql)&&Je(Ql,cs)&&(ds=!0));var t=Ql.flags;0!=(256&t)&&gl(e,Ql),0==(512&t)||Jl||(Jl=!0,Go(97,(function(){return Rs(),null}))),Ql=Ql.nextEffect}}function Rs(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Wo(e,Fs)}return!1}function js(e,t){ns.push(t,e),Jl||(Jl=!0,Go(97,(function(){return Rs(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Go(97,(function(){return Rs(),null})))}function Fs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Il))throw Error(i(331));var t=Il;Il|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],l=o.destroy;if(o.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===a)throw Error(i(330));zs(a,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var s=o.create;o.destroy=s()}catch(u){if(null===a)throw Error(i(330));zs(a,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Il=t,Zo(),!0}function Bs(e,t,n){da(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=ms(e,1))&&(Ut(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r))){var o=pl(n,e=ul(t,e),1);if(da(n,o),o=fs(),null!==(n=ms(n,1)))Ut(n,1,o),gs(n,o);else if("function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function $s(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Al===e&&(Rl&n)===n&&(4===Fl||3===Fl&&(62914560&Rl)===Rl&&500>Ho()-ql?Es(e,0):Hl|=n),gs(e,t)}function Us(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Vo()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=ms(e,t))&&(Ut(e,t,n),gs(e,n))}function Hs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Vs(e,t,n,r){return new Hs(e,t,n,r)}function qs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ws(e,t){var n=e.alternate;return null===n?((n=Vs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gs(e,t,n,r,o,a){var l=2;if(r=e,"function"==typeof e)qs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case E:return Zs(n.children,o,a,t);case j:l=8,o|=16;break;case S:l=8,o|=1;break;case C:return(e=Vs(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case P:return(e=Vs(13,n,t,o)).type=P,e.elementType=P,e.lanes=a,e;case N:return(e=Vs(19,n,t,o)).elementType=N,e.lanes=a,e;case M:return Qs(n,o,a,t);case F:return(e=Vs(24,n,t,o)).elementType=F,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case O:l=9;break e;case D:l=11;break e;case I:l=14;break e;case A:l=16,r=null;break e;case L:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Vs(l,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Zs(e,t,n,r){return(e=Vs(7,e,r,t)).lanes=n,e}function Qs(e,t,n,r){return(e=Vs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ys(e,t,n){return(e=Vs(6,e,null,t)).lanes=n,e}function Xs(e,t,n){return(t=Vs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ks(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=$t(0),this.expirationTimes=$t(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$t(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var o=t.current,a=fs(),l=ps(o);e:if(n){t:{if(Qe(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(vo(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(vo(u)){n=wo(n,u,s);break e}}n=s}else n=fo;return null===t.context?t.context=n:t.pendingContext=n,(t=ca(a,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),da(o,t),hs(o,l,a),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Ks(e,t,null!=n&&!0===n.hydrate),t=Vs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,sa(t),e[Jr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function ou(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function au(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=eu(i);l.call(e)}}Js(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var s=o;o=function(){var e=eu(i);s.call(e)}}xs((function(){Js(t,i,e,o)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ou(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Zl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ho.current)ji=!0;else{if(0==(n&r)){switch(ji=!1,t.tag){case 3:Wi(t),Ga();break;case 5:Ra(t);break;case 1:vo(t.type)&&xo(t);break;case 4:Aa(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;co(Ko,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Ki(e,t,n):(co(Ma,1&Ma.current),null!==(t=al(e,t,n))?t.sibling:null);co(Ma,1&Ma.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return ol(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),co(Ma,Ma.current),r)break;return null;case 23:case 24:return t.lanes=0,$i(e,t,n)}return al(e,t,n)}ji=0!=(16384&e.flags)}else ji=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=go(t,po.current),aa(t,n),o=ii(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,vo(r)){var a=!0;xo(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,sa(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&ga(t,r,l,e),o.updater=va,t.stateNode=o,o._reactInternals=t,xa(t,r,e,n),t=qi(null,t,r,!0,a,n)}else t.tag=0,Mi(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return qs(e)?1:0;if(null!=e){if((e=e.$$typeof)===D)return 11;if(e===I)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=Hi(null,t,o,e,n);break e;case 1:t=Vi(null,t,o,e,n);break e;case 11:t=Fi(null,t,o,e,n);break e;case 14:t=Bi(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Hi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,Vi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,ua(e,t),pa(t,r,null,n),(r=t.memoizedState.element)===o)Ga(),t=al(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(za=Gr(t.stateNode.containerInfo.firstChild),Ba=t,a=$a=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Za.push(a);for(n=Ta(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Ga();t=t.child}return t;case 5:return Ra(t),null===e&&Va(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,Hr(r,o)?l=null:null!==a&&Hr(r,a)&&(t.flags|=16),Ui(e,t),Mi(e,t,l,n),t.child;case 6:return null===e&&Va(t),null;case 13:return Ki(e,t,n);case 4:return Aa(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ca(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Fi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,a=o.value;var s=t.type._context;if(co(Ko,s._currentValue),s._currentValue=a,null!==l)if(s=l.value,0===(a=ur(s,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823))){if(l.children===o.children&&!ho.current){t=al(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&a)){1===s.tag&&((c=ca(-1,n&-n)).tag=2,da(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),oa(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Mi(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,aa(t,n),r=r(o=ia(o,a.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),Bi(e,t,o,a=Xo(o.type,a),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,vo(r)?(e=!0,xo(t)):e=!1,aa(t,n),ya(t,r,o),xa(t,r,o,n),qi(null,t,r,!0,e,n);case 19:return ol(e,t,n);case 23:case 24:return $i(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(hs(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(hs(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);hs(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=oo(r);if(!o)throw Error(i(90));X(r),ne(r,o)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ie=ws,Ae=function(e,t,n,r,o){var a=Il;Il|=4;try{return Wo(98,e.bind(null,t,n,r,o))}finally{0===(Il=a)&&(Gl(),Zo())}},Le=function(){0==(49&Il)&&(function(){if(null!==os){var e=os;os=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,Ho())}))}Zo()}(),Rs())},Re=function(e,t){var n=Il;Il|=2;try{return e(t)}finally{0===(Il=n)&&(Gl(),Zo())}};var lu={Events:[no,ro,oo,Pe,Ne,Rs,{current:!1}]},su={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ke(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{ko=cu.inject(uu),Eo=cu}catch(me){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lu,t.createPortal=iu,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=Ke(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Il;if(0!=(48&n))return e(t);Il|=1;try{if(e)return Wo(99,e.bind(null,t))}finally{Il=n,Zo()}},t.hydrate=function(e,t,n){if(!ou(t))throw Error(i(200));return au(null,e,t,!0,n)},t.render=function(e,t,n){if(!ou(t))throw Error(i(200));return au(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!ou(e))throw Error(i(40));return!!e._reactRootContainer&&(xs((function(){au(null,null,e,!1,(function(){e._reactRootContainer=null,e[Jr]=null}))})),!0)},t.unstable_batchedUpdates=ws,t.unstable_createPortal=function(e,t){return iu(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!ou(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return au(e,t,n,!1,r)},t.version="17.0.2"},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!a(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!a(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!a(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>q,ql:()=>J});var r=n(67294),o=n(45697),a=n.n(o),i=n(69590),l=n.n(i),s=n(41143),u=n.n(s),c=n(96774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},v={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),x={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},_=Object.keys(x).reduce((function(e,t){return e[x[t]]=t,e}),{}),k=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=k(e,g.TITLE),n=k(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=k(e,"defaultTitle");return t||r||void 0},S=function(e){return k(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},O=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var l=a[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][u]&&(o[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var l=a[i],s=f({},r[l],o[l]);r[l]=s}return e}),[]).reverse()},D=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},P=function(e){return Array.isArray(e)?e.join(""):e},N=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},I=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},A=[g.NOSCRIPT,g.SCRIPT,g.STYLE],L=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},R=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},j=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[x[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=x[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=j(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=R(n),a=P(t);return o?"<"+e+' data-rh="true" '+o+">"+L(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+L(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return j(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+L(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===A.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var h=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=N(e.metaTags,y),a=N(t,v),i=N(n,b);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,o.priority,r)+" "+F(g.LINK,a.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);p=h.priorityMethods,c=h.linkTags,d=h.metaTags,f=h.scriptTags}return{priority:p,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",o,r),link:F(g.LINK,c,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,a,r),script:F(g.SCRIPT,f,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),H=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),V="undefined"!=typeof document,q=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);q.canUseDOM=V,q.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},q.defaultProps={context:{}},q.displayName="HelmetProvider";var W=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},G=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===o.indexOf(s)&&o.push(s);var c=a.indexOf(s);-1!==c&&a.splice(c,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Z=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;G(g.BODY,e.bodyAttributes),G(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=P(e)),G(g.TITLE,t)}(c,d);var f={baseTag:W(g.BASE,n),linkTags:W(g.LINK,o),metaTags:W(g.META,a),noscriptTags:W(g.NOSCRIPT,i),scriptTags:W(g.SCRIPT,s),styleTags:W(g.STYLE,u)},p={},h={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(h[e]=f[e].oldTags)})),t&&t(),l(e,p,h)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:k(e,"defer"),encode:k(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:O(g.LINK,["rel","href"],e),metaTags:O(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:O(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:S(e),scriptTags:O(g.SCRIPT,["src","innerHTML"],e),styleTags:O(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:D(e,"prioritizeSeoTags")});q.canUseDOM?(t=a,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){Z(t,(function(){Q=null}))})):(Z(t),Q=null)):B&&(o=B(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:H.isRequired},Y.displayName="HelmetDispatcher";var X=["children"],K=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(I(this.props,"helmetData"),I(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},o,((t={})[r.type]=i,t.titleAttributes=f({},a),t));case g.BODY:return f({},o,{bodyAttributes:f({},a)});case g.HTML:return f({},o,{htmlAttributes:f({},a)});default:return f({},o,((n={})[r.type]=f({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=m(r,X),l=Object.keys(i).reduce((function(e,t){return e[_[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,a),s){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:l,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,K),o=f({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof $||(a=new $(a.context,a.instances)),a?r.createElement(Y,f({},o,{context:a.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,f({},o,{context:e}))}))},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function x(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case a:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case m:case s:return e;default:return t}}case o:return t}}}function _(e){return x(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=a,t.Lazy=g,t.Memo=m,t.Portal=o,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return _(e)||x(e)===c},t.isConcurrentMode=_,t.isContextConsumer=function(e){return x(e)===u},t.isContextProvider=function(e){return x(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return x(e)===f},t.isFragment=function(e){return x(e)===a},t.isLazy=function(e){return x(e)===g},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===o},t.isProfiler=function(e){return x(e)===l},t.isStrictMode=function(e){return x(e)===i},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===w||e.$$typeof===v)},t.typeOf=x},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(67294),s=n(45697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function h(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var h=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),m=null;function g(){return m||(m=e(h.loader)),m.promise}return u.push(g),"function"==typeof h.webpack&&c.push((function(){if((0,h.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),m=e(h.loader),r._loadModule()})),g(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(h.modules)&&h.modules.forEach((function(t){e.context.loadable.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof h.delay&&(0===h.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),h.delay)),"number"==typeof h.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),h.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(h.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?h.render(this.state.loaded,this.props):null},n}(l.Component),a(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function m(e){return h(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return h(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function v(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return v(e)}))}a(g,"propTypes",{report:s.func.isRequired}),a(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),m.Capture=g,m.preloadAll=function(){return new Promise((function(e,t){v(u).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){v(c).then(e,e)}))},e.exports=m},33052:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>R,hasTranslate3DSupport:()=>f,isTouch:()=>u,make2dTransformValue:()=>c,make3dTransformValue:()=>d});var r=n(97582),o=n(67294),a="kvfysmfp",i="ufhsfnkm",l=".".concat(a,"{overflow:hidden;touch-action:none}.").concat(i,"{transform-origin: 0 0}"),s="undefined"==typeof window,u=function(){return!s&&("ontouchstart"in window||navigator.maxTouchPoints>0)},c=function(e){var t=e.x,n=e.y,r=e.scale;return"scale(".concat(r,") translate(").concat(t,"px, ").concat(n,"px)")},d=function(e){var t=e.x,n=e.y,r=e.scale;return"scale3d(".concat(r,",").concat(r,", 1) translate3d(").concat(t,"px, ").concat(n,"px, 0)")},f=function(){var e=!s&&window.CSS;return e&&e.supports&&e.supports("transform","translate3d(0,0,0)")},p=Math.min,h=Math.max;function m(e){var t=e.containerDimension,n=e.childDimension,r=e.padding,o=e.centerContained,a=n-t;return a+2*r<=0&&o?[a/2,a/2]:[p(a+r,0)-r,h(0,a+r)]}var g=function(e,t){return t?"".concat(e," ").concat(t):e},v=Math.abs,b=Math.min,y=Math.sqrt,w="undefined"==typeof window,x=!w&&/(Mac)/i.test(navigator.platform),_=function(e){return"drag"===e},k=function(e){return"zoom"===e},E=function(e){e.stopPropagation(),e.preventDefault()},S=function(e,t){var n=e.x-t.x,r=e.y-t.y;return y(n*n+r*r)},C=function(e){return-Math.cos(e*Math.PI)/2+.5},T=function(e){return{x:e.pageX,y:e.pageY}},O=function(e){return Array.from(e).map(T)},D=function(e,t){return e+t},P=function(e,t,n){return n<e?e:n>t?t:n},N=function(e){return!(e.ctrlKey||e.metaKey)},I=function(){},A={x:0,y:0},L=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._prevDragMovePoint=null,t._containerObserver=null,t._fingers=0,t._firstMove=!0,t._initialOffset=(0,r.__assign)({},A),t._interaction=null,t._isDoubleTap=!1,t._isOffsetsSet=!1,t._lastDragPosition=null,t._lastScale=1,t._lastTouchStart=0,t._lastZoomCenter=null,t._listenMouseMove=!1,t._nthZoom=0,t._offset=(0,r.__assign)({},A),t._startOffset=(0,r.__assign)({},A),t._startTouches=null,t._updatePlaned=!1,t._wheelTimeOut=null,t._zoomFactor=1,t._initialZoomFactor=1,t._draggingPoint=(0,r.__assign)({},A),t._ignoreNextClick=!1,t._containerRef=o.createRef(),t._handleClick=function(e){t._ignoreNextClick&&(t._ignoreNextClick=!1,e.stopPropagation())},t._onResize=function(){var e;(null===(e=t._containerRef)||void 0===e?void 0:e.current)&&(t._updateInitialZoomFactor(),t._setupOffsets(),t._update())},t._handlerOnTouchEnd=t._handlerIfEnable((function(e){t._fingers=e.touches.length,t.props.shouldCancelHandledTouchEndEvents&&(k(t._interaction)||_(t._interaction)&&(t._startOffset.x!==t._offset.x||t._startOffset.y!==t._offset.y))&&E(e),_(t._interaction)&&!t._enoughToDrag()&&t._handleClick(e),t._updateInteraction(e)})),t._handlerOnTouchStart=t._handlerIfEnable((function(e){t._firstMove=!0,t._fingers=e.touches.length,t._detectDoubleTap(e)})),t._handlerOnTouchMove=t._handlerIfEnable((function(e){var n,o,a;t._isDoubleTap||(t._collectInertia(e),t._firstMove?(t._updateInteraction(e),t._interaction&&E(e),t._startOffset=(0,r.__assign)({},t._offset),t._startTouches=O(e.touches)):(k(t._interaction)?t._startTouches&&2===t._startTouches.length&&2===e.touches.length&&t._handleZoom(e,(n=t._startTouches,o=O(e.touches),a=S(n[0],n[1]),S(o[0],o[1])/a)):_(t._interaction)&&t._handleDrag(e),t._interaction&&(E(e),t._update())),t._firstMove=!1)})),t._handlerWheel=function(e){if(!t.props.shouldInterceptWheel(e)){E(e);var n=e.pageX,r=e.pageY,o=e.deltaY,a=e.deltaMode,i=1;(function(e){return x&&e.ctrlKey}(e)||1===a)&&(i=15);var l={touches:[{pageX:n,pageY:r}]},s=t._getOffsetByFirstTouch(l),u=o*i;t._stopAnimation(),t._scaleTo(t._zoomFactor-u/t.props.wheelScaleFactor,s),t._update(),clearTimeout(t._wheelTimeOut),t._wheelTimeOut=setTimeout((function(){return t._sanitize()}),100)}},t._handlers=t.props.isTouch()?[["touchstart",t._handlerOnTouchStart],["touchend",t._handlerOnTouchEnd],["touchmove",t._handlerOnTouchMove]]:[["mousemove",t.simulate(t._handlerOnTouchMove),t.props._document],["mouseup",t.simulate(t._handlerOnTouchEnd),t.props._document],["mousedown",t.simulate(t._handlerOnTouchStart)],["click",t._handleClick],["wheel",t._handlerWheel]],t}return(0,r.__extends)(t,e),t.prototype._handleDragStart=function(e){this._ignoreNextClick=!0,this.props.onDragStart(),this._stopAnimation(),this._resetInertia(),this._lastDragPosition=null,this._hasInteraction=!0,this._draggingPoint=this._offset,this._handleDrag(e)},t.prototype._handleDrag=function(e){var t=this._getOffsetByFirstTouch(e);this._enoughToDrag()?this._drag(t,this._lastDragPosition):this._virtualDrag(t,this._lastDragPosition),this._offset=this._sanitizeOffset(this._offset),this._lastDragPosition=t},t.prototype._resetInertia=function(){this._velocity=null,this._prevDragMovePoint=null},t.prototype._realizeInertia=function(){var e=this,t=this.props,n=t.inertiaFriction;if(t.inertia&&this._velocity){var o=this._velocity,a=o.x,i=o.y;if(a||i){this._stopAnimation(),this._resetInertia();this._animate((function(){if(i*=n,!(a*=n)&&!i)return e._stopAnimation();var t,o,l=(0,r.__assign)({},e._offset);if(e._addOffset({x:a,y:i}),e._offset=e._sanitizeOffset(e._offset),t=l,o=e._offset,t.x===o.x&&t.y===o.y)return e._stopAnimation();e._update({isAnimation:!0})}),{duration:9999})}}},t.prototype._collectInertia=function(e){var t=e.touches;if(this.props.inertia){var n,r,o=O(t)[0],a=this._prevDragMovePoint;a&&(this._velocity=(n=o,{x:(r=a).x-n.x,y:r.y-n.y})),this._prevDragMovePoint=o}},t.prototype._handleDragEnd=function(){this.props.onDragEnd(),this._end(),this._realizeInertia()},t.prototype._handleZoomStart=function(){this.props.onZoomStart(),this._stopAnimation(),this._lastScale=1,this._nthZoom=0,this._lastZoomCenter=null,this._hasInteraction=!0},t.prototype._handleZoom=function(e,t){var n,r={x:(n=this._getOffsetTouches(e)).map((function(e){return e.x})).reduce(D,0)/n.length,y:n.map((function(e){return e.y})).reduce(D,0)/n.length},o=t/this._lastScale;this._lastScale=t,this._nthZoom+=1,this._nthZoom>3&&(this._scale(o,r),this._drag(r,this._lastZoomCenter),this.props.enforceBoundsDuringZoom&&(this._offset=this._sanitizeOffset(this._offset))),this._lastZoomCenter=r},t.prototype._handleZoomEnd=function(){this.props.onZoomEnd(),this._end()},t.prototype._handleDoubleTap=function(e){var t=this;if(!this._hasInteraction&&0!==this.props.tapZoomFactor){var n=this.props.doubleTapZoomOutOnMaxScale&&this._zoomFactor===this.props.maxZoom||this.props.doubleTapToggleZoom&&this._zoomFactor>1;this.props.onDoubleTap(),this._ignoreNextClick=!0;var r=this._zoomFactor+this.props.tapZoomFactor,o=this._zoomFactor,a=this._getOffsetByFirstTouch(e);this._isDoubleTap=!0,o>r&&(a=this._getCurrentZoomCenter()),n?this._zoomOutAnimation():this._animate((function(e){t._scaleTo(o+e*(r-o),a)}))}},t.prototype._computeInitialOffset=function(){var e=this._getContainerRect(),t=this._getChildSize(),n=t.width,r=t.height,o=-v(n*this._getInitialZoomFactor()-e.width)/2,a=-v(r*this._getInitialZoomFactor()-e.height)/2;this._initialOffset={x:o,y:a}},t.prototype._resetOffset=function(){this._offset=(0,r.__assign)({},this._initialOffset)},t.prototype._setupOffsets=function(){this.props.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this._computeInitialOffset(),this._resetOffset())},t.prototype._sanitizeOffset=function(e){var t=this._getContainerRect(),n=this._getChildSize(),r=n.width,o=n.height,a=r*this._getInitialZoomFactor()*this._zoomFactor,i=o*this._getInitialZoomFactor()*this._zoomFactor,l=m({containerDimension:t.width,childDimension:a,padding:this.props.horizontalPadding,centerContained:this.props.centerContained}),s=l[0],u=l[1],c=m({containerDimension:t.height,childDimension:i,padding:this.props.verticalPadding,centerContained:this.props.centerContained}),d=c[0],f=c[1];return{x:P(s,u,e.x),y:P(d,f,e.y)}},t.prototype.alignCenter=function(e){var t=this,n=(0,r.__assign)({duration:250,animated:!0},e),o=n.x,a=n.y,i=n.scale,l=n.animated,s=n.duration,u=this._zoomFactor,c=(0,r.__assign)({},this._offset),d=this._getContainerRect(),f={x:d.width/2,y:d.height/2};if(this._zoomFactor=1,this._offset={x:-(f.x-o),y:-(f.y-a)},this._scaleTo(i,f),this._stopAnimation(),!l)return this._update();var p=this._zoomFactor-u,h=this._offset.x-c.x,m=this._offset.y-c.y;this._zoomFactor=u,this._offset=(0,r.__assign)({},c);this._animate((function(e){var n=c.x+h*e,r=c.y+m*e;t._zoomFactor=u+p*e,t._offset=t._sanitizeOffset({x:n,y:r}),t._update()}),{callback:function(){return t._sanitize()},duration:s})},t.prototype.scaleTo=function(e){var t=this,n=(0,r.__assign)({duration:250,animated:!0},e),o=n.x,a=n.y,i=n.scale,l=n.animated,s=n.duration,u=this._zoomFactor,c=(0,r.__assign)({},this._offset);if(this._zoomFactor=1,this._offset={x:0,y:0},this._scaleTo(i,{x:o,y:a}),this._stopAnimation(),!l)return this._update();var d=this._zoomFactor-u,f=this._offset.x-c.x,p=this._offset.y-c.y;this._zoomFactor=u,this._offset=(0,r.__assign)({},c);this._animate((function(e){var n=c.x+f*e,r=c.y+p*e;t._zoomFactor=u+d*e,t._offset={x:n,y:r},t._update()}),{callback:function(){return t._sanitize()},duration:s})},t.prototype._scaleTo=function(e,t){this._scale(e/this._zoomFactor,t),this._offset=this._sanitizeOffset(this._offset)},t.prototype._scale=function(e,t){e=this._scaleZoomFactor(e),this._addOffset({x:(e-1)*(t.x+this._offset.x),y:(e-1)*(t.y+this._offset.y)}),this.props.onZoomUpdate()},t.prototype._scaleZoomFactor=function(e){var t=this._zoomFactor;return this._zoomFactor*=e,this._zoomFactor=P(this.props.minZoom,this.props.maxZoom,this._zoomFactor),this._zoomFactor/t},t.prototype._canDrag=function(){return this.props.draggableUnZoomed||!((e=this._zoomFactor)>(t=1)-.01&&e<t+.01);var e,t},t.prototype._drag=function(e,t){if(t){var n=-(e.y-t.y),r=-(e.x-t.x);this.props.lockDragAxis?v(r)>v(n)?this._addOffset({x:r,y:0}):this._addOffset({y:n,x:0}):this._addOffset({x:r,y:n}),this.props.onDragUpdate()}},t.prototype._virtualDrag=function(e,t){if(t){var n=-(e.y-t.y),r=-(e.x-t.x);this._draggingPoint={x:r+this._draggingPoint.x,y:n+this._draggingPoint.y}}},t.prototype._addOffset=function(e){var t=this._offset,n=t.x,r=t.y;this._offset={x:n+e.x,y:r+e.y}},t.prototype._sanitize=function(){this._zoomFactor<this.props.zoomOutFactor?(this._resetInertia(),this._zoomOutAnimation()):this._isInsaneOffset()&&this._sanitizeOffsetAnimation()},t.prototype._isInsaneOffset=function(){var e=this._offset,t=this._sanitizeOffset(e);return t.x!==e.x||t.y!==e.y},t.prototype._sanitizeOffsetAnimation=function(){var e=this,t=this._sanitizeOffset(this._offset),n=(0,r.__assign)({},this._offset);this._animate((function(r){var o=n.x+r*(t.x-n.x),a=n.y+r*(t.y-n.y);e._offset={x:o,y:a},e._update()}))},t.prototype._zoomOutAnimation=function(){var e=this;if(1!==this._zoomFactor){var t=this._zoomFactor,n=this._getCurrentZoomCenter();this._animate((function(r){var o=t+r*(1-t);e._scaleTo(o,n)}))}},t.prototype._getInitialZoomFactor=function(){return this._initialZoomFactor},t.prototype._getCurrentZoomCenter=function(){var e=this._offset,t=e.x,n=e.y,r=t-this._initialOffset.x,o=n-this._initialOffset.y;return{x:-1*t-r/(1/this._zoomFactor-1),y:-1*n-o/(1/this._zoomFactor-1)}},t.prototype._getOffsetByFirstTouch=function(e){return this._getOffsetTouches(e)[0]},t.prototype._getOffsetTouches=function(e){var t=this.props._document,n=t.documentElement,r=t.body,o=this._getContainerRect(),a=o.top,i=o.left,l=n.scrollTop||r.scrollTop,s=n.scrollLeft||r.scrollLeft,u=a+l,c=i+s;return O(e.touches).map((function(e){var t=e.x,n=e.y;return{x:t-c,y:n-u}}))},t.prototype._animate=function(e,t){var n=this,o=(new Date).getTime(),a=(0,r.__assign)({timeFn:C,callback:function(){},duration:this.props.animationDuration},t),i=a.timeFn,l=a.callback,s=a.duration,u=function(){if(n._inAnimation){var t=(new Date).getTime()-o,r=t/s;t>=s?(e(1),n._stopAnimation(),l(),n._update()):(r=i(r),e(r),n._update({isAnimation:!0}),requestAnimationFrame(u))}};this._inAnimation=!0,requestAnimationFrame(u)},t.prototype._stopAnimation=function(){this._inAnimation=!1},t.prototype._end=function(){this._hasInteraction=!1,this._sanitize(),this._update()},t.prototype._getContainerRect=function(){return this._containerRef.current.getBoundingClientRect()},t.prototype._getChildSize=function(){var e=this._containerRef.current;return function(e){if(e){var t=e.offsetWidth,n=e.offsetHeight;if(t&&n)return{width:t,height:n};var r=getComputedStyle(e),o=parseFloat(r.width),a=parseFloat(r.height);if(a&&o)return{width:o,height:a}}return{width:0,height:0}}(null==e?void 0:e.firstElementChild)},t.prototype._updateInitialZoomFactor=function(){var e=this._getContainerRect(),t=this._getChildSize(),n=e.width/t.width,r=e.height/t.height;this._initialZoomFactor=b(n,r)},t.prototype._bindEvents=function(){var e=this,t=this._containerRef.current;window.ResizeObserver?(this._containerObserver=new ResizeObserver(this._onResize),this._containerObserver.observe(t)):window.addEventListener("resize",this._onResize),this._handlers.forEach((function(e){var n=e[0],r=e[1];(e[2]||t).addEventListener(n,r,!0)})),Array.from(t.querySelectorAll("img")).forEach((function(t){return t.addEventListener("load",e._onResize)}))},t.prototype._unSubscribe=function(){var e=this,t=this._containerRef.current;this._containerObserver&&(this._containerObserver.disconnect(),this._containerObserver=null),window.removeEventListener("resize",this._onResize),this._handlers.forEach((function(e){var n=e[0],r=e[1];(e[2]||t).removeEventListener(n,r,!0)})),Array.from(t.querySelectorAll("img")).forEach((function(t){return t.removeEventListener("load",e._onResize)}))},t.prototype._update=function(e){var t=this;if(!this._updatePlaned){var n=function(){var e=t._getInitialZoomFactor()*t._zoomFactor,n=-t._offset.x/e,r=-t._offset.y/e;t.props.onUpdate({scale:e,x:n,y:r})};if(null==e?void 0:e.isAnimation)return n();this._updatePlaned=!0,requestAnimationFrame((function(){t._updatePlaned=!1,n()}))}},t.prototype._handlerIfEnable=function(e){var t=this;return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];t.props.enabled&&e.apply(void 0,n)}},t.prototype._setInteraction=function(e,t){var n=this._interaction;n!==e&&(n&&!e&&(k(n)?this._handleZoomEnd():_(n)&&this._handleDragEnd()),k(e)?this._handleZoomStart():_(e)&&this._handleDragStart(t)),this._interaction=e},t.prototype._distanceBetweenNumbers=function(e,t){return e>t?e-t:t-e},t.prototype._enoughToDrag=function(){return this._distanceBetweenNumbers(this._startOffset.x,this._draggingPoint.x)>5||this._distanceBetweenNumbers(this._startOffset.y,this._draggingPoint.y)>5},t.prototype._updateInteraction=function(e){var t=this._fingers;return 2===t?this._setInteraction("zoom",e):1===t&&this._canDrag()?this._setInteraction("drag",e):void this._setInteraction(null,e)},t.prototype._detectDoubleTap=function(e){var t=(new Date).getTime();this._fingers>1&&(this._lastTouchStart=0),t-this._lastTouchStart<300?(E(e),this._handleDoubleTap(e),k(this._interaction)?this._handleZoomEnd():_(this._interaction)&&this._handleDragEnd()):this._isDoubleTap=!1,1===this._fingers&&(this._lastTouchStart=t)},t.prototype.simulate=function(e){var t=this;return function(n){var r=n.pageX,o=n.pageY,a=n.type,i="mouseup"===a;"mousedown"===a&&(n.preventDefault(),t._listenMouseMove=!0),t._listenMouseMove&&(n.touches=i?[]:[{pageX:r,pageY:o}],e(n)),i&&(t._listenMouseMove=!1)}},t.prototype.componentDidMount=function(){this._bindEvents(),this._update()},t.prototype.componentWillUnmount=function(){this._stopAnimation(),this._unSubscribe()},t.prototype.render=function(){var e=this.props,t=e.children,n=e.containerProps,s=o.Children.only(t),u=n||{};return o.createElement(o.Fragment,null,o.createElement("style",null,l),o.createElement("div",(0,r.__assign)({},u,{ref:this._containerRef,className:g(a,u.className)}),o.cloneElement(s,{className:g(i,s.props.className)})))},t.defaultProps={animationDuration:250,draggableUnZoomed:!0,enforceBoundsDuringZoom:!1,centerContained:!1,enabled:!0,inertia:!0,inertiaFriction:.96,horizontalPadding:0,isTouch:u,lockDragAxis:!1,maxZoom:5,minZoom:.5,onDoubleTap:I,onDragEnd:I,onDragStart:I,onDragUpdate:I,onZoomEnd:I,onZoomStart:I,onZoomUpdate:I,setOffsetsOnce:!1,shouldInterceptWheel:N,shouldCancelHandledTouchEndEvents:!1,tapZoomFactor:1,verticalPadding:0,wheelScaleFactor:1500,zoomOutFactor:1.3,doubleTapZoomOutOnMaxScale:!1,doubleTapToggleZoom:!1,_document:w?null:window.document},t}(o.Component);const R=L},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(16550),o=n(87462),a=n(67294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(16550),o=n(75068),a=n(67294),i=n(42358),l=n(87462),s=n(63366),u=n(38776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},h=a.forwardRef;void 0===h&&(h=p);var m=h((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==h&&t||n,a.createElement("a",c)}));var g=h((function(e,t){var n=e.component,o=void 0===n?m:n,c=e.replace,g=e.to,v=e.innerRef,b=(0,s.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",m=(0,l.Z)({},b,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==h?m.ref=t||v:m.innerRef=v,a.createElement(o,m)}))})),v=function(e){return e},b=a.forwardRef;void 0===b&&(b=v);var y=b((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,h=e.className,m=e.exact,y=e.isActive,w=e.location,x=e.sensitive,_=e.strict,k=e.style,E=e.to,S=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(E,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),O=T?(0,r.LX)(n.pathname,{path:T,exact:m,sensitive:x,strict:_}):null,D=!!(y?y(O,n):O),P="function"==typeof h?h(D):h,N="function"==typeof k?k(D):k;D&&(P=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(P,c),N=(0,l.Z)({},N,p));var I=(0,l.Z)({"aria-current":D&&o||null,className:P,style:N,to:i},C);return v!==b?I.ref=t||S:I.innerRef=S,a.createElement(g,I)}))}))},16550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>P,F0:()=>y,LX:()=>D,TH:()=>B,k6:()=>F,l_:()=>S,rs:()=>j,s6:()=>b});var r=n(75068),o=n(67294),a=n(45697),i=n.n(a),l=n(42358),s=n(38776),u=n(87462),c=n(39658),d=n.n(c),f=(n(59864),n(63366)),p=(n(8679),1073741823),h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=o.createContext||function(e,t){var n,a,l="__create-react-context-"+function(){var e="__global_unique_id__";return h[e]=(h[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},o.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},o.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},o.getValue=function(){return this.context[l]?this.context[l].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return u.contextTypes=((a={})[l]=i().object,a),{Provider:s,Consumer:u}},g=function(e){var t=m();return t.displayName=e,t},v=g("Router-History"),b=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(v.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;var w=function(e){function t(){return e.apply(this,arguments)||this}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(o.Component);var x={},_=1e4,k=0;function E(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(x[e])return x[e];var t=d().compile(e);return k<_&&(x[e]=t,k++),t}(e)(t,{pretty:!0})}function S(e){var t=e.computedMatch,n=e.to,r=e.push,a=void 0!==r&&r;return o.createElement(b.Consumer,null,(function(e){e||(0,s.Z)(!1);var r=e.history,i=e.staticContext,c=a?r.push:r.replace,d=(0,l.ob)(t?"string"==typeof n?E(n,t.params):(0,u.Z)({},n,{pathname:E(n.pathname,t.params)}):n);return i?(c(d),null):o.createElement(w,{onMount:function(){c(d)},onUpdate:function(e,t){var n=(0,l.ob)(t.to);(0,l.Hp)(n,(0,u.Z)({},d,{key:n.key}))||c(d)},to:n})}))}var C={},T=1e4,O=0;function D(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=C[n]||(C[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return O<T&&(r[e]=a,O++),a}(n,{end:a,strict:l,sensitive:u}),o=r.regexp,i=r.keys,s=o.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return a&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var P=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?D(n.pathname,e.props):t.match,a=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===o.Children.count(e)}(l)&&(l=null),o.createElement(b.Provider,{value:a},a.match?l?"function"==typeof l?l(a):l:c?o.createElement(c,a):d?d(a):null:"function"==typeof l?l(a):null)}))},t}(o.Component);function N(e){return"/"===e.charAt(0)?e:"/"+e}function I(e,t){if(!e)return t;var n=N(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.Ep)(e)}function L(e){return function(){(0,s.Z)(!1)}}function R(){}o.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?D(a.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var M=o.useContext;function F(){return M(v)}function B(){return M(b).location}},76585:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},39658:(e,t,n)=>{var r=n(76585);e.exports=p,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var h=e[i],m=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var x=null!=m&&null!=h&&h!==m,_="+"===y||"*"===y,k="?"===y||"*"===y,E=n[2]||c,S=v||b;r.push({name:g||a++,prefix:m||"",delimiter:E,optional:k,repeat:_,partial:x,asterisk:!!w,pattern:S?u(S):w?".*":"[^"+s(E)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",l=t||{},s=(o||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(a+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');a+=c.prefix+d}}else a+=c}return a}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var h=s(n.delimiter||"/"),m=i.slice(-h.length)===h;return o||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=a?"$":o&&m?"":"(?="+h+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(p(e[o],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(a(e,n),t,n)}(e,t,n)}},86718:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(97582).__importDefault(n(45503));t.default=function(e){return!e.prototype?r.default(e):e}},27162:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.divWrapper=void 0;var r=n(97582),o=r.__importStar(n(67294)),a=r.__importDefault(n(86718)),i=o.createElement,l=function(e,t,n,o){var a;return i(e,t?r.__assign(((a={})[t]=o,a),n):r.__assign(r.__assign({},o),n))};t.divWrapper=function(e,t,n,r){return i("div",null,l(e,t,n,r))};t.default=function(e,t,n){void 0===n&&(n=l);var r=function(o,l,s){void 0===l&&(l=t),void 0===s&&(s=null);var u="string"==typeof o;if(u)return function(e){return r(e,o||t,l)};var c=function(t){return i(e,s,(function(e){return n(o,l,t,e)}))};return u?a.default(c):c};return r}},3:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(97582).__importDefault(n(95364)),o=function(e){return[e]};t.default=function(e,t){return void 0===t&&(t=o),function(n){return r.default(n,e.apply(void 0,t(n)))}}},96260:(e,t,n)=>{"use strict";var r=n(97582);r.__importDefault(n(95364)).default,r.__importDefault(n(27162)).default,r.__importDefault(n(3)).default},95364:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(97582),o=n(67294),a=parseInt(o.version.substr(0,o.version.indexOf(".")))>15;t.default=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var l=e.render,s=e.children,u=void 0===s?l:s,c=e.component,d=e.comp,f=void 0===d?c:d;return"function"==typeof u?u.apply(void 0,r.__spreadArrays([t],n)):f?o.createElement(f,t):u instanceof Array?a?u:o.createElement.apply(void 0,r.__spreadArrays(["div",null],u)):u&&u instanceof Object?"string"==typeof u.type?u:o.cloneElement(u,Object.assign({},u.props,t)):u||null}},45503:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(97582),o=r.__importStar(n(67294));t.default=function(e){var t=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(n,t),n.prototype.render=function(){return e(this.props,this.context)},n}(o.Component);return t}},89164:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createBreakpoint:()=>Ae,createGlobalState:()=>xn,createMemo:()=>a,createReducer:()=>u,createReducerContext:()=>i,createStateContext:()=>c,ensuredForwardRef:()=>ue,useAsync:()=>h,useAsyncFn:()=>p,useAsyncRetry:()=>m,useAudio:()=>y,useBattery:()=>O,useBeforeUnload:()=>D,useBoolean:()=>I,useClickAway:()=>L,useCookie:()=>M,useCopyToClipboard:()=>z,useCounter:()=>q,useCss:()=>J,useCustomCompareEffect:()=>ee,useDebounce:()=>ne,useDeepCompareEffect:()=>re,useDefault:()=>oe,useDrop:()=>ae,useDropArea:()=>ie,useEffectOnce:()=>le,useEnsuredForwardedRef:()=>se,useError:()=>he,useEvent:()=>pe,useFavicon:()=>me,useFirstMountState:()=>l,useFullscreen:()=>be,useGeolocation:()=>ye,useGetSet:()=>V,useGetSetState:()=>we,useHarmonicIntervalFn:()=>ke,useHash:()=>_n,useHover:()=>Se,useHoverDirty:()=>Ce,useIdle:()=>De,useIntersection:()=>Pe,useInterval:()=>Ne,useIsomorphicLayoutEffect:()=>Y,useKey:()=>Ie,useKeyPress:()=>Le,useKeyPressEvent:()=>Re,useLatest:()=>je,useLifecycles:()=>Me,useList:()=>Fe,useLocalStorage:()=>Be,useLocation:()=>He,useLockBodyScroll:()=>Ye,useLogger:()=>Xe,useLongPress:()=>Je,useMap:()=>et,useMeasure:()=>gn,useMedia:()=>tt,useMediaDevices:()=>nt,useMediatedState:()=>rt,useMethods:()=>ot,useMotion:()=>it,useMount:()=>lt,useMountedState:()=>f,useMouse:()=>ct,useMouseHovered:()=>ft,useMouseWheel:()=>pt,useMultiStateValidator:()=>fn,useNetworkState:()=>vt,useNumber:()=>bt,useObservable:()=>yt,useOrientation:()=>xt,usePageLeave:()=>_t,usePermission:()=>kt,usePinchZoom:()=>bn,usePrevious:()=>Et,usePreviousDistinct:()=>Ct,usePromise:()=>Tt,useQueue:()=>Ot,useRaf:()=>Dt,useRafLoop:()=>Pt,useRafState:()=>ut,useRendersCount:()=>yn,useScratch:()=>Lt,useScroll:()=>Rt,useScrollbarWidth:()=>dn,useScrolling:()=>jt,useSearchParam:()=>It,useSessionStorage:()=>Mt,useSet:()=>wn,useSetState:()=>g,useShallowCompareEffect:()=>zt,useSize:()=>Vt,useSlider:()=>qt,useSpeech:()=>Gt,useStartTyping:()=>Zt,useStateList:()=>Yt,useStateValidator:()=>un,useStateWithHistory:()=>Qt,useThrottle:()=>Xt,useThrottleFn:()=>Kt,useTimeout:()=>Jt,useTimeoutFn:()=>te,useTitle:()=>tn,useToggle:()=>N,useTween:()=>rn,useUnmount:()=>st,useUnmountPromise:()=>on,useUpdate:()=>U,useUpdateEffect:()=>s,useUpsert:()=>an,useVibrate:()=>ln,useVideo:()=>sn,useWindowScroll:()=>pn,useWindowSize:()=>hn});var r=n(67294),o=n.t(r,2);const a=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0,r.useMemo)((function(){return e.apply(void 0,t)}),t)}};const i=function(e,t){var n=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(n);if(null==e)throw new Error("useReducerContext must be used inside a ReducerProvider.");return e},function(o){var a=o.children,i=o.initialState;return function(e,t){return(0,r.createElement)(n.Provider,e,t)}({value:(0,r.useReducer)(e,void 0!==i?i:t)},a)},n]};function l(){var e=(0,r.useRef)(!0);return e.current?(e.current=!1,!0):e.current}const s=function(e,t){var n=l();(0,r.useEffect)((function(){if(!n)return e()}),t)};const u=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n,o=(n=e,function(e,t){return n.reduceRight((function(t,n){return n(e)(t)}),t)});return function(e,t,n){void 0===n&&(n=function(e){return e});var a=(0,r.useRef)(n(t)),i=(0,r.useState)(a.current)[1],l=(0,r.useCallback)((function(t){return a.current=e(a.current,t),i(a.current),t}),[e]),u=(0,r.useRef)(o({getState:function(){return a.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current.apply(u,e)}},l));return s((function(){u.current=o({getState:function(){return a.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current.apply(u,e)}},l)}),[l]),[a.current,u.current]}};const c=function(e){var t=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(t);if(null==e)throw new Error("useStateContext must be used inside a StateProvider.");return e},function(n){var o=n.children,a=n.initialValue;return function(e,n){return(0,r.createElement)(t.Provider,e,n)}({value:(0,r.useState)(void 0!==a?a:e)},o)},t]};var d=n(97582);function f(){var e=(0,r.useRef)(!1),t=(0,r.useCallback)((function(){return e.current}),[]);return(0,r.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),t}function p(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var o=(0,r.useRef)(0),a=f(),i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=++o.current;return l.loading||s((function(e){return(0,d.__assign)((0,d.__assign)({},e),{loading:!0})})),e.apply(void 0,t).then((function(e){return a()&&r===o.current&&s({value:e,loading:!1}),e}),(function(e){return a()&&r===o.current&&s({error:e,loading:!1}),e}))}),t);return[l,u]}function h(e,t){void 0===t&&(t=[]);var n=p(e,t,{loading:!0}),o=n[0],a=n[1];return(0,r.useEffect)((function(){a()}),[a]),o}const m=function(e,t){void 0===t&&(t=[]);var n=(0,r.useState)(0),o=n[0],a=n[1],i=h(e,(0,d.__spreadArrays)(t,[o])),l=i.loading,s=(0,r.useCallback)((function(){l||a((function(e){return e+1}))}),(0,d.__spreadArrays)(t,[l]));return(0,d.__assign)((0,d.__assign)({},i),{retry:s})};const g=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],o=t[1];return[n,(0,r.useCallback)((function(e){o((function(t){return Object.assign({},t,e instanceof Function?e(t):e)}))}),[])]};function v(e){for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function b(e){return function(t){var n,o;o=r.isValidElement(t)?(n=t).props:t;var a=g({buffered:[],time:0,duration:0,paused:!0,muted:!1,volume:1,playing:!1}),i=a[0],l=a[1],s=(0,r.useRef)(null),u=function(e,t){return function(n){try{t&&t(n)}finally{e&&e(n)}}},c=function(){return l({paused:!1})},f=function(){return l({playing:!0})},p=function(){return l({playing:!1})},h=function(){return l({paused:!0,playing:!1})},m=function(){var e=s.current;e&&l({muted:e.muted,volume:e.volume})},b=function(){var e=s.current;if(e){var t=e.duration,n=e.buffered;l({duration:t,buffered:v(n)})}},y=function(){var e=s.current;e&&l({time:e.currentTime})},w=function(){var e=s.current;e&&l({buffered:v(e.buffered)})};n=n?r.cloneElement(n,(0,d.__assign)((0,d.__assign)({controls:!1},o),{ref:s,onPlay:u(o.onPlay,c),onPlaying:u(o.onPlaying,f),onWaiting:u(o.onWaiting,p),onPause:u(o.onPause,h),onVolumeChange:u(o.onVolumeChange,m),onDurationChange:u(o.onDurationChange,b),onTimeUpdate:u(o.onTimeUpdate,y),onProgress:u(o.onProgress,w)})):r.createElement(e,(0,d.__assign)((0,d.__assign)({controls:!1},o),{ref:s,onPlay:u(o.onPlay,c),onPlaying:u(o.onPlaying,f),onWaiting:u(o.onWaiting,p),onPause:u(o.onPause,h),onVolumeChange:u(o.onVolumeChange,m),onDurationChange:u(o.onDurationChange,b),onTimeUpdate:u(o.onTimeUpdate,y),onProgress:u(o.onProgress,w)}));var x=!1,_={play:function(){var e=s.current;if(e&&!x){var t=e.play();if("object"==typeof t){x=!0;var n=function(){x=!1};t.then(n,n)}return t}},pause:function(){var e=s.current;if(e&&!x)return e.pause()},seek:function(e){var t=s.current;t&&void 0!==i.duration&&(e=Math.min(i.duration,Math.max(0,e)),t.currentTime=e)},volume:function(e){var t=s.current;t&&(e=Math.min(1,Math.max(0,e)),t.volume=e,l({volume:e}))},mute:function(){var e=s.current;e&&(e.muted=!0)},unmute:function(){var e=s.current;e&&(e.muted=!1)}};return(0,r.useEffect)((function(){var e=s.current;e&&(l({volume:e.volume,muted:e.muted,paused:e.paused}),o.autoPlay&&e.paused&&_.play())}),[o.src]),[n,i,_,s]}}const y=b("audio");var w=function(){};function x(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function _(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var k="undefined"!=typeof window,E="undefined"!=typeof navigator,S=n(38252);const C=n.n(S)();var T=E?navigator:void 0;const O=T&&"function"==typeof T.getBattery?function(){var e=(0,r.useState)({isSupported:!0,fetched:!1}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,r=null,o=function(){if(e&&r){var o={isSupported:!0,fetched:!0,level:r.level,charging:r.charging,dischargingTime:r.dischargingTime,chargingTime:r.chargingTime};!C(t,o)&&n(o)}};return T.getBattery().then((function(t){e&&(x(r=t,"chargingchange",o),x(r,"chargingtimechange",o),x(r,"dischargingtimechange",o),x(r,"levelchange",o),o())})),function(){e=!1,r&&(_(r,"chargingchange",o),_(r,"chargingtimechange",o),_(r,"dischargingtimechange",o),_(r,"levelchange",o))}}),[]),t}:function(){return{isSupported:!1}};const D=function(e,t){void 0===e&&(e=!0);var n=(0,r.useCallback)((function(n){if("function"!=typeof e||e())return n.preventDefault(),t&&(n.returnValue=t),t}),[e,t]);(0,r.useEffect)((function(){if(e)return x(window,"beforeunload",n),function(){return _(window,"beforeunload",n)}}),[e,n])};var P=function(e,t){return"boolean"==typeof t?t:!e};const N=function(e){return(0,r.useReducer)(P,e)},I=N;var A=["mousedown","touchstart"];const L=function(e,t,n){void 0===n&&(n=A);var o=(0,r.useRef)(t);(0,r.useEffect)((function(){o.current=t}),[t]),(0,r.useEffect)((function(){for(var t=function(t){var n=e.current;n&&!n.contains(t.target)&&o.current(t)},r=0,a=n;r<a.length;r++){var i=a[r];x(document,i,t)}return function(){for(var e=0,r=n;e<r.length;e++){var o=r[e];_(document,o,t)}}}),[n,e])};var R=n(36808),j=n.n(R);const M=function(e){var t=(0,r.useState)((function(){return j().get(e)||null})),n=t[0],o=t[1];return[n,(0,r.useCallback)((function(t,n){j().set(e,t,n),o(t)}),[e]),(0,r.useCallback)((function(){j().remove(e),o(null)}),[e])]};var F=n(20640),B=n.n(F);const z=function(){var e=f(),t=g({value:void 0,error:void 0,noUserInteraction:!0}),n=t[0],o=t[1];return[n,(0,r.useCallback)((function(t){var n,r;if(e())try{if("string"!=typeof t&&"number"!=typeof t){var a=new Error("Cannot copy typeof "+typeof t+" to clipboard, must be a string");return void o({value:t,error:a,noUserInteraction:!0})}if(""===t){a=new Error("Cannot copy empty string to clipboard.");return void o({value:t,error:a,noUserInteraction:!0})}r=t.toString(),n=B()(r),o({value:r,error:void 0,noUserInteraction:n})}catch(a){o({value:r,error:a,noUserInteraction:n})}}),[])]};var $=function(e){return(e+1)%1e6};function U(){return(0,r.useReducer)($,0)[1]}function H(e,t){return"function"==typeof e?e.length?e(t):e():e}function V(e){var t=(0,r.useRef)(H(e)),n=U();return(0,r.useMemo)((function(){return[function(){return t.current},function(e){t.current=H(e,t.current),n()}]}),[])}function q(e,t,n){void 0===e&&(e=0),void 0===t&&(t=null),void 0===n&&(n=null);var o=H(e);"number"!=typeof o&&console.error("initialValue has to be a number, got "+typeof e),"number"==typeof n?o=Math.max(o,n):null!==n&&console.error("min has to be a number, got "+typeof n),"number"==typeof t?o=Math.min(o,t):null!==t&&console.error("max has to be a number, got "+typeof t);var a=V(o),i=a[0],l=a[1];return[i(),(0,r.useMemo)((function(){var e=function(e){var r=i(),o=H(e,r);r!==o&&("number"==typeof n&&(o=Math.max(o,n)),"number"==typeof t&&(o=Math.min(o,t)),r!==o&&l(o))};return{get:i,set:e,inc:function(t){void 0===t&&(t=1);var n=H(t,i());"number"!=typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e+n}))},dec:function(t){void 0===t&&(t=1);var n=H(t,i());"number"!=typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e-n}))},reset:function(t){void 0===t&&(t=o);var n=H(t,i());"number"!=typeof n&&console.error("value has to be a number or function returning a number, got "+typeof n),o=n,e(n)}}}),[o,n,t])]}var W=n(40818),G=n(97142),Z=n(52099),Q=n(87749);const Y=k?r.useLayoutEffect:r.useEffect;var X=(0,W.U)();(0,G.I)(X),(0,Z.I)(X);var K=0;const J=function(e){var t=(0,r.useMemo)((function(){return"react-use-css-"+(K++).toString(36)}),[]),n=(0,r.useMemo)((function(){return new X.VSheet}),[]);return Y((function(){var r={};return(0,Q.z)(r,e,"."+t,""),n.diff(r),function(){n.diff({})}})),t};const ee=function(e,t,n){var o=(0,r.useRef)(void 0);o.current&&n(t,o.current)||(o.current=t),(0,r.useEffect)(e,o.current)};function te(e,t){void 0===t&&(t=0);var n=(0,r.useRef)(!1),o=(0,r.useRef)(),a=(0,r.useRef)(e),i=(0,r.useCallback)((function(){return n.current}),[]),l=(0,r.useCallback)((function(){n.current=!1,o.current&&clearTimeout(o.current),o.current=setTimeout((function(){n.current=!0,a.current()}),t)}),[t]),s=(0,r.useCallback)((function(){n.current=null,o.current&&clearTimeout(o.current)}),[]);return(0,r.useEffect)((function(){a.current=e}),[e]),(0,r.useEffect)((function(){return l(),s}),[t]),[i,s,l]}function ne(e,t,n){void 0===t&&(t=0),void 0===n&&(n=[]);var o=te(e,t),a=o[0],i=o[1],l=o[2];return(0,r.useEffect)(l,n),[a,i]}const re=function(e,t){ee(e,t,C)};const oe=function(e,t){var n=(0,r.useState)(t),o=n[0],a=n[1];return null==o?[e,a]:[o,a]};const ae=function(e,t){void 0===e&&(e={}),void 0===t&&(t=[]);var n=e.onFiles,o=e.onText,a=e.onUri,i=(0,r.useState)(!1),l=i[0],s=i[1],u=(0,r.useCallback)(s,[]),c=(0,r.useMemo)((function(){return function(e){return function(t,n){var r=t.getData("text/uri-list");if(r)(e.onUri||w)(r,n);else if(t.files&&t.files.length)(e.onFiles||w)(Array.from(t.files),n);else if(n.clipboardData){var o=n.clipboardData.getData("text");(e.onText||w)(o,n)}}}(e)}),[n,o,a]);return(0,r.useEffect)((function(){var e=function(e){e.preventDefault(),u(!0)},t=function(e){e.preventDefault(),u(!0)},n=function(){u(!1)},r=function(){u(!1)},a=function(e){e.preventDefault(),u(!1),c(e.dataTransfer,e)},i=function(e){c(e.clipboardData,e)};return x(document,"dragover",e),x(document,"dragenter",t),x(document,"dragleave",n),x(document,"dragexit",r),x(document,"drop",a),o&&x(document,"paste",i),function(){_(document,"dragover",e),_(document,"dragenter",t),_(document,"dragleave",n),_(document,"dragexit",r),_(document,"drop",a),_(document,"paste",i)}}),(0,d.__spreadArrays)([c],t)),{over:l}};const ie=function(e){void 0===e&&(e={});var t=e.onFiles,n=e.onText,o=e.onUri,a=f(),i=(0,r.useState)(!1),l=i[0],s=i[1],u=(0,r.useMemo)((function(){return function(e,t){return function(n,r){var o=n.getData("text/uri-list");o?(e.onUri||w)(o,r):n.files&&n.files.length?(e.onFiles||w)(Array.from(n.files),r):n.items&&n.items.length&&n.items[0].getAsString((function(n){t&&(e.onText||w)(n,r)}))}}(e,a())}),[t,n,o]),c=(0,r.useMemo)((function(){return function(e,t){return{onDragOver:function(e){e.preventDefault()},onDragEnter:function(e){e.preventDefault(),t(!0)},onDragLeave:function(){t(!1)},onDrop:function(n){n.preventDefault(),n.persist(),t(!1),e(n.dataTransfer,n)},onPaste:function(t){t.persist(),e(t.clipboardData,t)}}}(u,s)}),[u,s]);return[c,{over:l}]};const le=function(e){(0,r.useEffect)(e,[])};function se(e){var t=(0,r.useRef)(e&&e.current);return(0,r.useEffect)((function(){e&&(e.current=t.current)}),[e]),t}function ue(e){return(0,r.forwardRef)((function(t,n){var r=se(n);return e(t,r)}))}var ce=k?window:null,de=function(e){return!!e.addEventListener},fe=function(e){return!!e.on};const pe=function(e,t,n,o){void 0===n&&(n=ce),(0,r.useEffect)((function(){if(t&&n)return de(n)?x(n,e,t,o):fe(n)&&n.on(e,t,o),function(){de(n)?_(n,e,t,o):fe(n)&&n.off(e,t,o)}}),[e,t,n,JSON.stringify(o)])};const he=function(){var e=(0,r.useState)(null),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(t)throw t}),[t]),(0,r.useCallback)((function(e){n(e)}),[])};const me=function(e){(0,r.useEffect)((function(){var t=document.querySelector("link[rel*='icon']")||document.createElement("link");t.type="image/x-icon",t.rel="shortcut icon",t.href=e,document.getElementsByTagName("head")[0].appendChild(t)}),[e])};var ge=n(10577),ve=n.n(ge);const be=function(e,t,n){void 0===n&&(n={});var o=n.video,a=n.onClose,i=void 0===a?w:a,l=(0,r.useState)(t),s=l[0],u=l[1];return Y((function(){if(t&&e.current){var n=function(){(null==o?void 0:o.current)&&_(o.current,"webkitendfullscreen",n),i()},r=function(){if(ve().isEnabled){var e=ve().isFullscreen;u(e),e||i()}};if(ve().isEnabled){try{ve().request(e.current),u(!0)}catch(l){i(l),u(!1)}ve().on("change",r)}else o&&o.current&&o.current.webkitEnterFullscreen?(o.current.webkitEnterFullscreen(),x(o.current,"webkitendfullscreen",n),u(!0)):(i(),u(!1));return function(){if(u(!1),ve().isEnabled)try{ve().off("change",r),ve().exit()}catch(a){}else o&&o.current&&o.current.webkitExitFullscreen&&(_(o.current,"webkitendfullscreen",n),o.current.webkitExitFullscreen())}}}),[t,o,e]),s};const ye=function(e){var t,n=(0,r.useState)({loading:!0,accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now()}),o=n[0],a=n[1],i=!0,l=function(e){i&&a({loading:!1,accuracy:e.coords.accuracy,altitude:e.coords.altitude,altitudeAccuracy:e.coords.altitudeAccuracy,heading:e.coords.heading,latitude:e.coords.latitude,longitude:e.coords.longitude,speed:e.coords.speed,timestamp:e.timestamp})},s=function(e){return i&&a((function(t){return(0,d.__assign)((0,d.__assign)({},t),{loading:!1,error:e})}))};return(0,r.useEffect)((function(){return navigator.geolocation.getCurrentPosition(l,s,e),t=navigator.geolocation.watchPosition(l,s,e),function(){i=!1,navigator.geolocation.clearWatch(t)}}),[]),o};const we=function(e){void 0===e&&(e={});var t=U(),n=(0,r.useRef)((0,d.__assign)({},e));return[(0,r.useCallback)((function(){return n.current}),[]),(0,r.useCallback)((function(e){e&&(Object.assign(n.current,e),t())}),[])]};var xe=0,_e={};const ke=function(e,t){void 0===t&&(t=0);var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=function(e,t){var n,r=xe++;if(_e[t])_e[t].listeners[r]=e;else{var o=setInterval((function(){for(var e,n=_e[t].listeners,r=!1,o=0,a=Object.values(n);o<a.length;o++){var i=a[o];try{i()}catch(l){r=!0,e=l}}if(r)throw e}),t);_e[t]={ms:t,timer:o,listeners:(n={},n[r]=e,n)}}return{bucket:_e[t],id:r}}((function(){return n.current()}),t);return function(){return function(e){var t=e.bucket,n=e.id;delete t.listeners[n];var r=!1;for(var o in t.listeners){r=!0;break}r||(clearInterval(t.timer),delete _e[t.ms])}(e)}}}),[t])};var Ee=r.useState;const Se=function(e){var t,n,o=Ee(!1),a=o[0],i=o[1];return"function"==typeof e&&(e=e(a)),[r.cloneElement(e,{onMouseEnter:(n=e.props.onMouseEnter,function(e){(n||w)(e),i(!0)}),onMouseLeave:(t=e.props.onMouseLeave,function(e){(t||w)(e),i(!1)})}),a]};const Ce=function(e,t){void 0===t&&(t=!0);var n=(0,r.useState)(!1),o=n[0],a=n[1];return(0,r.useEffect)((function(){var n=function(){return a(!0)},r=function(){return a(!1)};t&&e&&e.current&&(x(e.current,"mouseover",n),x(e.current,"mouseout",r));var o=e.current;return function(){t&&o&&(_(o,"mouseover",n),_(o,"mouseout",r))}}),[t,e]),o};function Te(e,t,n,r){var o,a=!1,i=0;function l(){o&&clearTimeout(o)}function s(){for(var s=arguments.length,u=new Array(s),c=0;c<s;c++)u[c]=arguments[c];var d=this,f=Date.now()-i;function p(){i=Date.now(),n.apply(d,u)}a||(r&&!o&&p(),l(),void 0===r&&f>e?p():!0!==t&&(o=setTimeout(r?function(){o=void 0}:p,void 0===r?e-f:e)))}return"boolean"!=typeof t&&(r=n,n=t,t=void 0),s.cancel=function(){l(),a=!0},s}var Oe=["mousemove","mousedown","resize","keydown","touchstart","wheel"];const De=function(e,t,n){void 0===e&&(e=6e4),void 0===t&&(t=!1),void 0===n&&(n=Oe);var o=(0,r.useState)(t),a=o[0],i=o[1];return(0,r.useEffect)((function(){for(var t,r=!0,o=a,l=function(e){r&&(o=e,i(e))},s=Te(50,(function(){o&&l(!1),clearTimeout(t),t=setTimeout((function(){return l(!0)}),e)})),u=function(){document.hidden||s()},c=0;c<n.length;c++)x(window,n[c],s);return x(document,"visibilitychange",u),t=setTimeout((function(){return l(!0)}),e),function(){r=!1;for(var e=0;e<n.length;e++)_(window,n[e],s);_(document,"visibilitychange",u)}}),[e,n]),a};const Pe=function(e,t){var n=(0,r.useState)(null),o=n[0],a=n[1];return(0,r.useEffect)((function(){if(e.current&&"function"==typeof IntersectionObserver){var n=new IntersectionObserver((function(e){a(e[0])}),t);return n.observe(e.current),function(){a(null),n.disconnect()}}return function(){}}),[e.current,t.threshold,t.root,t.rootMargin]),o};const Ne=function(e,t){var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=setInterval((function(){return n.current()}),t||0);return function(){return clearInterval(e)}}}),[t])};const Ie=function(e,t,n,o){void 0===t&&(t=w),void 0===n&&(n={}),void 0===o&&(o=[e]);var a=n.event,i=void 0===a?"keydown":a,l=n.target,s=n.options,u=(0,r.useMemo)((function(){var n,r="function"==typeof(n=e)?n:"string"==typeof n?function(e){return e.key===n}:n?function(){return!0}:function(){return!1};return function(e){if(r(e))return t(e)}}),o);pe(i,u,l,s)};const Ae=function(e){return void 0===e&&(e={laptopL:1440,laptop:1024,tablet:768}),function(){var t=(0,r.useState)(k?window.innerWidth:0),n=t[0],o=t[1];(0,r.useEffect)((function(){var e=function(){o(window.innerWidth)};return e(),x(window,"resize",e),function(){_(window,"resize",e)}}));var a=(0,r.useMemo)((function(){return Object.entries(e).sort((function(e,t){return e[1]>=t[1]?1:-1}))}),[e]),i=a.reduce((function(e,t){var r=t[0],o=t[1];return n>=o?r:e}),a[0][0]);return i}};const Le=function(e){var t=(0,r.useState)([!1,null]),n=t[0],o=t[1];return Ie(e,(function(e){return o([!0,e])}),{event:"keydown"},[n]),Ie(e,(function(e){return o([!1,e])}),{event:"keyup"},[n]),n};const Re=function(e,t,n,r){void 0===r&&(r=Le);var o=r(e),a=o[0],i=o[1];s((function(){!a&&n?n(i):a&&t&&t(i)}),[a])};const je=function(e){var t=(0,r.useRef)(e);return t.current=e,t};const Me=function(e,t){(0,r.useEffect)((function(){return e&&e(),function(){t&&t()}}),[])};const Fe=function(e){void 0===e&&(e=[]);var t=(0,r.useRef)(H(e)),n=U(),o=(0,r.useMemo)((function(){var r={set:function(e){t.current=H(e,t.current),n()},push:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];e.length&&o.set((function(t){return t.concat(e)}))},updateAt:function(e,t){o.set((function(n){var r=n.slice();return r[e]=t,r}))},insertAt:function(e,t){o.set((function(n){var r=n.slice();return e>r.length?r[e]=t:r.splice(e,0,t),r}))},update:function(e,t){o.set((function(n){return n.map((function(n){return e(n,t)?t:n}))}))},updateFirst:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0&&o.updateAt(r,n)},upsert:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0?o.updateAt(r,n):o.push(n)},sort:function(e){o.set((function(t){return t.slice().sort(e)}))},filter:function(e,t){o.set((function(n){return n.slice().filter(e,t)}))},removeAt:function(e){o.set((function(t){var n=t.slice();return n.splice(e,1),n}))},clear:function(){o.set([])},reset:function(){o.set(H(e).slice())}};return r.remove=r.removeAt,r}),[]);return[t.current,o]};const Be=function(e,t,n){if(!k)return[t,w,w];if(!e)throw new Error("useLocalStorage key may not be falsy");var o=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,a=(0,r.useRef)((function(e){try{var r=n?n.raw?String:n.serializer:JSON.stringify,a=localStorage.getItem(e);return null!==a?o(a):(t&&localStorage.setItem(e,r(t)),t)}catch(i){return t}})),i=(0,r.useState)((function(){return a.current(e)})),l=i[0],s=i[1];(0,r.useLayoutEffect)((function(){return s(a.current(e))}),[e]);var u=(0,r.useCallback)((function(t){try{var r="function"==typeof t?t(l):t;if(void 0===r)return;var a=void 0;a=n?n.raw?"string"==typeof r?r:JSON.stringify(r):n.serializer?n.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,a),s(o(a))}catch(i){}}),[e,s]),c=(0,r.useCallback)((function(){try{localStorage.removeItem(e),s(void 0)}catch(i){}}),[e,s]);return[l,u,c]};var ze=function(e){var t=window.history,n=t[e];t[e]=function(t){var r=n.apply(this,arguments),o=new Event(e.toLowerCase());return o.state=t,window.dispatchEvent(o),r}};k&&(ze("pushState"),ze("replaceState"));var $e=function(e){var t=window.history,n=t.state,r=t.length,o=window.location;return{trigger:e,state:n,length:r,hash:o.hash,host:o.host,hostname:o.hostname,href:o.href,origin:o.origin,pathname:o.pathname,port:o.port,protocol:o.protocol,search:o.search}},Ue="function"==typeof Event;const He=k&&Ue?function(){var e=(0,r.useState)($e("load")),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){return n($e("popstate"))},t=function(){return n($e("pushstate"))},r=function(){return n($e("replacestate"))};return x(window,"popstate",e),x(window,"pushstate",t),x(window,"replacestate",r),function(){_(window,"popstate",e),_(window,"pushstate",t),_(window,"replacestate",r)}}),[]),t}:function(){return{trigger:"load",length:1}};function Ve(e){if(!e)return null;if("BODY"===e.tagName)return e;if("IFRAME"===e.tagName){var t=e.contentDocument;return t?t.body:null}return e.offsetParent?Ve(e.offsetParent):null}function qe(e){var t=e||window.event;return t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)}var We=k&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),Ge=new Map,Ze="object"==typeof document?document:void 0,Qe=!1;const Ye=Ze?function(e,t){void 0===e&&(e=!0);var n=(0,r.useRef)(Ze.body);t=t||n;var o=function(e){var t=Ge.get(e);t&&(1===t.counter?(Ge.delete(e),We?(e.ontouchmove=null,Qe&&(_(document,"touchmove",qe),Qe=!1)):e.style.overflow=t.initialOverflow):Ge.set(e,{counter:t.counter-1,initialOverflow:t.initialOverflow}))};(0,r.useEffect)((function(){var n=Ve(t.current);n&&(e?function(e){var t=Ge.get(e);t?Ge.set(e,{counter:t.counter+1,initialOverflow:t.initialOverflow}):(Ge.set(e,{counter:1,initialOverflow:e.style.overflow}),We?Qe||(x(document,"touchmove",qe,{passive:!1}),Qe=!0):e.style.overflow="hidden")}(n):o(n))}),[e,t.current]),(0,r.useEffect)((function(){var e=Ve(t.current);if(e)return function(){o(e)}}),[])}:function(e,t){void 0===e&&(e=!0)};const Xe=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];le((function(){return console.log.apply(console,(0,d.__spreadArrays)([e+" mounted"],t)),function(){return console.log(e+" unmounted")}})),s((function(){console.log.apply(console,(0,d.__spreadArrays)([e+" updated"],t))}))};var Ke=function(e){(function(e){return"touches"in e})(e)&&e.touches.length<2&&e.preventDefault&&e.preventDefault()};const Je=function(e,t){var n=void 0===t?{}:t,o=n.isPreventDefault,a=void 0===o||o,i=n.delay,l=void 0===i?300:i,s=(0,r.useRef)(),u=(0,r.useRef)(),c=(0,r.useCallback)((function(t){a&&t.target&&(x(t.target,"touchend",Ke,{passive:!1}),u.current=t.target),s.current=setTimeout((function(){return e(t)}),l)}),[e,l,a]),d=(0,r.useCallback)((function(){s.current&&clearTimeout(s.current),a&&u.current&&_(u.current,"touchend",Ke)}),[a]);return{onMouseDown:function(e){return c(e)},onTouchStart:function(e){return c(e)},onMouseUp:d,onMouseLeave:d,onTouchEnd:d}};const et=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],o=t[1],a=(0,r.useMemo)((function(){return{set:function(e,t){o((function(n){var r;return(0,d.__assign)((0,d.__assign)({},n),((r={})[e]=t,r))}))},setAll:function(e){o(e)},remove:function(e){o((function(t){var n=t,r=e;n[r];return(0,d.__rest)(n,["symbol"==typeof r?r:r+""])}))},reset:function(){return o(e)}}}),[o]),i=(0,d.__assign)({get:(0,r.useCallback)((function(e){return n[e]}),[n])},a);return[n,i]};const tt=function(e,t){var n=(0,r.useState)(function(e,t){return void 0!==t?t:!!k&&window.matchMedia(e).matches}(e,t)),o=n[0],a=n[1];return(0,r.useEffect)((function(){var t=!0,n=window.matchMedia(e),r=function(){t&&a(!!n.matches)};return n.addListener(r),a(n.matches),function(){t=!1,n.removeListener(r)}}),[e]),o};const nt=E&&navigator.mediaDevices?function(){var e=(0,r.useState)({}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,t=function(){navigator.mediaDevices.enumerateDevices().then((function(t){e&&n({devices:t.map((function(e){return{deviceId:e.deviceId,groupId:e.groupId,kind:e.kind,label:e.label}}))})})).catch(w)};return x(navigator.mediaDevices,"devicechange",t),t(),function(){e=!1,_(navigator.mediaDevices,"devicechange",t)}}),[]),t}:function(){return{}};function rt(e,t){var n=(0,r.useRef)(e),o=(0,r.useState)(t),a=o[0],i=o[1];return[a,(0,r.useCallback)((function(e){2===n.current.length?n.current(e,i):i(n.current(e))}),[a])]}const ot=function(e,t){var n=(0,r.useMemo)((function(){return function(t,n){var r;return(r=e(t))[n.type].apply(r,n.payload)}}),[e]),o=(0,r.useReducer)(n,t),a=o[0],i=o[1],l=(0,r.useMemo)((function(){return Object.keys(e(t)).reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return i({type:t,payload:e})},e}),{})}),[e,t]);return[a,l]};var at={acceleration:{x:null,y:null,z:null},accelerationIncludingGravity:{x:null,y:null,z:null},rotationRate:{alpha:null,beta:null,gamma:null},interval:16};const it=function(e){void 0===e&&(e=at);var t=(0,r.useState)(e),n=t[0],o=t[1];return(0,r.useEffect)((function(){var e=function(e){var t=e.acceleration,n=e.accelerationIncludingGravity,r=e.rotationRate,a=e.interval;o({acceleration:{x:t.x,y:t.y,z:t.z},accelerationIncludingGravity:{x:n.x,y:n.y,z:n.z},rotationRate:{alpha:r.alpha,beta:r.beta,gamma:r.gamma},interval:a})};return x(window,"devicemotion",e),function(){_(window,"devicemotion",e)}}),[]),n};const lt=function(e){le((function(){e()}))};const st=function(e){var t=(0,r.useRef)(e);t.current=e,le((function(){return function(){return t.current()}}))};const ut=function(e){var t=(0,r.useRef)(0),n=(0,r.useState)(e),o=n[0],a=n[1],i=(0,r.useCallback)((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){a(e)}))}),[]);return st((function(){cancelAnimationFrame(t.current)})),[o,i]};const ct=function(e){var t=ut({docX:0,docY:0,posX:0,posY:0,elX:0,elY:0,elH:0,elW:0}),n=t[0],o=t[1];return(0,r.useEffect)((function(){var t=function(t){if(e&&e.current){var n=e.current.getBoundingClientRect(),r=n.left,a=n.top,i=n.width,l=n.height,s=r+window.pageXOffset,u=a+window.pageYOffset,c=t.pageX-s,d=t.pageY-u;o({docX:t.pageX,docY:t.pageY,posX:s,posY:u,elX:c,elY:d,elH:l,elW:i})}};return x(document,"mousemove",t),function(){_(document,"mousemove",t)}}),[e]),n};var dt={current:null};const ft=function(e,t){void 0===t&&(t={});var n=!!t.whenHovered,r=!!t.bound,o=Ce(e,n),a=ct(n&&!o?dt:e);return r&&(a.elX=Math.max(0,Math.min(a.elX,a.elW)),a.elY=Math.max(0,Math.min(a.elY,a.elH))),a},pt=function(){var e=(0,r.useState)(0),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(e){n(e.deltaY+t)};return x(window,"wheel",e,!1),function(){return _(window,"wheel",e)}})),t};var ht=E?navigator:void 0,mt=ht&&(ht.connection||ht.mozConnection||ht.webkitConnection);function gt(e){var t=null==ht?void 0:ht.onLine,n=null==e?void 0:e.online;return{online:t,previous:n,since:t!==n?new Date:null==e?void 0:e.since,downlink:null==mt?void 0:mt.downlink,downlinkMax:null==mt?void 0:mt.downlinkMax,effectiveType:null==mt?void 0:mt.effectiveType,rtt:null==mt?void 0:mt.rtt,saveData:null==mt?void 0:mt.saveData,type:null==mt?void 0:mt.type}}function vt(e){var t=(0,r.useState)(null!=e?e:gt),n=t[0],o=t[1];return(0,r.useEffect)((function(){var e=function(){o(gt)};return x(window,"online",e,{passive:!0}),x(window,"offline",e,{passive:!0}),mt&&x(mt,"change",e,{passive:!0}),function(){_(window,"online",e),_(window,"offline",e),mt&&_(mt,"change",e)}}),[]),n}const bt=q;const yt=function(e,t){var n=(0,r.useState)(t),o=n[0],a=n[1];return Y((function(){var t=e.subscribe(a);return function(){return t.unsubscribe()}}),[e]),o};var wt={angle:0,type:"landscape-primary"};const xt=function(e){void 0===e&&(e=wt);var t=(0,r.useState)(e),n=t[0],o=t[1];return(0,r.useEffect)((function(){var t=window.screen,n=!0,r=function(){if(n){var r=t.orientation;if(r){var a=r.angle,i=r.type;o({angle:a,type:i})}else void 0!==window.orientation?o({angle:"number"==typeof window.orientation?window.orientation:0,type:""}):o(e)}};return x(window,"orientationchange",r),r(),function(){n=!1,_(window,"orientationchange",r)}}),[]),n};const _t=function(e,t){void 0===t&&(t=[]),(0,r.useEffect)((function(){if(e){var t=function(t){var n=(t=t||window.event).relatedTarget||t.toElement;n&&"HTML"!==n.nodeName||e()};return x(document,"mouseout",t),function(){_(document,"mouseout",t)}}}),t)};const kt=function(e){var t=(0,r.useState)(""),n=t[0],o=t[1];return(0,r.useEffect)((function(){var t=!0,n=null,r=function(){t&&o((function(){var e;return null!==(e=null==n?void 0:n.state)&&void 0!==e?e:""}))};return navigator.permissions.query(e).then((function(e){x(n=e,"change",r),r()})).catch(w),function(){n&&_(n,"change",r),t=!1,n=null}}),[e]),n};function Et(e){var t=(0,r.useRef)();return(0,r.useEffect)((function(){t.current=e})),t.current}var St=function(e,t){return e===t};function Ct(e,t){void 0===t&&(t=St);var n=(0,r.useRef)(),o=(0,r.useRef)(e);return l()||t(o.current,e)||(n.current=o.current,o.current=e),n.current}const Tt=function(){var e=f();return(0,r.useCallback)((function(t){return new Promise((function(n,r){t.then((function(t){e()&&n(t)}),(function(t){e()&&r(t)}))}))}),[])};const Ot=function(e){void 0===e&&(e=[]);var t=(0,r.useState)(e),n=t[0],o=t[1];return{add:function(e){o((function(t){return(0,d.__spreadArrays)(t,[e])}))},remove:function(){var e;return o((function(t){var n=t[0],r=t.slice(1);return e=n,r})),e},get first(){return n[0]},get last(){return n[n.length-1]},get size(){return n.length}}};const Dt=function(e,t){void 0===e&&(e=1e12),void 0===t&&(t=0);var n=(0,r.useState)(0),o=n[0],a=n[1];return Y((function(){var n,r,o,i=function(){var t=Math.min(1,(Date.now()-o)/e);a(t),l()},l=function(){n=requestAnimationFrame(i)},s=setTimeout((function(){r=setTimeout((function(){cancelAnimationFrame(n),a(1)}),e),o=Date.now(),l()}),t);return function(){clearTimeout(r),clearTimeout(s),cancelAnimationFrame(n)}}),[e,t]),o};function Pt(e,t){void 0===t&&(t=!0);var n=(0,r.useRef)(null),o=(0,r.useRef)(!1),a=(0,r.useRef)(e);a.current=e;var i=(0,r.useCallback)((function(e){o.current&&(a.current(e),n.current=requestAnimationFrame(i))}),[]),l=(0,r.useMemo)((function(){return[function(){o.current&&(o.current=!1,n.current&&cancelAnimationFrame(n.current))},function(){o.current||(o.current=!0,n.current=requestAnimationFrame(i))},function(){return o.current}]}),[]);return(0,r.useEffect)((function(){return t&&l[1](),l[0]}),[]),l}var Nt=function(e,t){return new URLSearchParams(e).get(t)};const It=k?function(e){var t=window.location,n=(0,r.useState)((function(){return Nt(t.search,e)})),o=n[0],a=n[1];return(0,r.useEffect)((function(){var n=function(){a(Nt(t.search,e))};return x(window,"popstate",n),x(window,"pushstate",n),x(window,"replacestate",n),function(){_(window,"popstate",n),_(window,"pushstate",n),_(window,"replacestate",n)}}),[]),o}:function(){return null};n(96260);var At=function(e){void 0===e&&(e={});var t=e.disabled,n=je(e),o=(0,r.useState)({isScratching:!1}),a=o[0],i=o[1],l=(0,r.useRef)(a),s=(0,r.useRef)(!1),u=(0,r.useRef)(null),c=(0,r.useState)(null),f=c[0],p=c[1];return(0,r.useEffect)((function(){if(!t&&f){var e,r,o=function(e,t){cancelAnimationFrame(u.current),u.current=requestAnimationFrame((function(){var r=f.getBoundingClientRect(),o=r.left,a=r.top,s=o+window.scrollX,u=a+window.scrollY,c=e-s,p=t-u;i((function(e){var t=(0,d.__assign)((0,d.__assign)({},e),{dx:c-(e.x||0),dy:p-(e.y||0),end:Date.now(),isScratching:!0});return l.current=t,(n.current.onScratch||w)(t),t}))}))},a=function(e){o(e.pageX,e.pageY)},c=function(e){o(e.changedTouches[0].pageX,e.changedTouches[0].pageY)},p=function(){s.current&&(s.current=!1,l.current=(0,d.__assign)((0,d.__assign)({},l.current),{isScratching:!1}),(n.current.onScratchEnd||w)(l.current),i({isScratching:!1}),_(window,"mousemove",a),_(window,"touchmove",c),_(window,"mouseup",e),_(window,"touchend",r))};e=p,r=p;var h=function(t,o){if(s.current){var u=f.getBoundingClientRect(),d=u.left,p=u.top,h=d+window.scrollX,m=p+window.scrollY,g=t-h,v=o-m,b=Date.now(),y={isScratching:!0,start:b,end:b,docX:t,docY:o,x:g,y:v,dx:0,dy:0,elH:f.offsetHeight,elW:f.offsetWidth,elX:h,elY:m};l.current=y,(n.current.onScratchStart||w)(y),i(y),x(window,"mousemove",a),x(window,"touchmove",c),x(window,"mouseup",e),x(window,"touchend",r)}},m=function(e){s.current=!0,h(e.pageX,e.pageY)},g=function(e){s.current=!0,h(e.changedTouches[0].pageX,e.changedTouches[0].pageY)};return x(f,"mousedown",m),x(f,"touchstart",g),function(){_(f,"mousedown",m),_(f,"touchstart",g),_(window,"mousemove",a),_(window,"touchmove",c),_(window,"mouseup",e),_(window,"touchend",r),u.current&&cancelAnimationFrame(u.current),u.current=null,s.current=!1,l.current={isScratching:!1},i(l.current)}}}),[f,t,n]),[p,a]};const Lt=At;const Rt=function(e){var t=ut({x:0,y:0}),n=t[0],o=t[1];return(0,r.useEffect)((function(){var t=function(){e.current&&o({x:e.current.scrollLeft,y:e.current.scrollTop})};return e.current&&x(e.current,"scroll",t,{capture:!1,passive:!0}),function(){e.current&&_(e.current,"scroll",t)}}),[e]),n};const jt=function(e){var t=(0,r.useState)(!1),n=t[0],o=t[1];return(0,r.useEffect)((function(){if(e.current){var t,n=function(){o(!0),clearTimeout(t),t=setTimeout((function(){o(!1)}),150)};return x(e.current,"scroll",n,!1),function(){e.current&&_(e.current,"scroll",n,!1)}}return function(){}}),[e]),n};const Mt=function(e,t,n){if(!k)return[t,function(){}];var o=(0,r.useState)((function(){try{var r=sessionStorage.getItem(e);return"string"!=typeof r?(sessionStorage.setItem(e,n?String(t):JSON.stringify(t)),t):n?r:JSON.parse(r||"null")}catch(o){return t}})),a=o[0],i=o[1];return(0,r.useEffect)((function(){try{var t=n?String(a):JSON.stringify(a);sessionStorage.setItem(e,t)}catch(o){}})),[a,i]};var Ft=n(99376),Bt=function(e,t){return e.every((function(e,n){return(0,Ft.D)(e,t[n])}))};const zt=function(e,t){ee(e,t,Bt)};var $t=r.useState,Ut=r.useEffect,Ht=r.useRef;const Vt=function(e,t){var n=void 0===t?{}:t,a=n.width,i=void 0===a?1/0:a,l=n.height,s=void 0===l?1/0:l;if(!k)return["function"==typeof e?e({width:i,height:s}):e,{width:i,height:s}];var u=$t({width:i,height:s}),c=u[0],f=u[1];"function"==typeof e&&(e=e(c));var p=e.props.style||{},h=Ht(null),m=null,g=function(){var e=h.current,t=e?{width:e.offsetWidth,height:e.offsetHeight}:{width:i,height:s};f(t)},v=function(e){x(e,"resize",g),setTimeout(g,35)};return Ut((function(){var e=h.current;if(e){if(e.contentWindow)m=e.contentWindow,v(m);else{var t=function(){x(e,"load",t),m=e.contentWindow,v(m)};_(e,"load",t)}return function(){m&&m.removeEventListener&&_(m,"resize",g)}}}),[]),p.position="relative",[r.cloneElement.apply(o,(0,d.__spreadArrays)([e,{style:p}],(0,d.__spreadArrays)([r.createElement("iframe",{ref:h,style:{background:"transparent",border:"none",height:"100%",left:0,position:"absolute",top:0,width:"100%",zIndex:-1}})],r.Children.toArray(e.props.children)))),c]};const qt=function(e,t){void 0===t&&(t={});var n=f(),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useRef)(0),l=g({isSliding:!1,value:0}),s=l[0],u=l[1];return a.current=s.value,(0,r.useEffect)((function(){if(k){var r=void 0===t.styles||t.styles,l=void 0!==t.reverse&&t.reverse;e.current&&r&&(e.current.style.userSelect="none");var s=function(){!o.current&&n()&&((t.onScrubStart||w)(),o.current=!0,u({isSliding:!0}),m())},c=function(){o.current&&n()&&((t.onScrubStop||w)(a.current),o.current=!1,u({isSliding:!1}),g())},d=function(e){s(),f(e)},f=t.vertical?function(e){return v(e.clientY)}:function(e){return v(e.clientX)},p=function(e){s(),h(e)},h=t.vertical?function(e){return v(e.changedTouches[0].clientY)}:function(e){return v(e.changedTouches[0].clientX)},m=function(){x(document,"mousemove",f),x(document,"mouseup",c),x(document,"touchmove",h),x(document,"touchend",c)},g=function(){_(document,"mousemove",f),_(document,"mouseup",c),_(document,"touchmove",h),_(document,"touchend",c)},v=function(r){cancelAnimationFrame(i.current),i.current=requestAnimationFrame((function(){if(n()&&e.current){var o=e.current.getBoundingClientRect(),a=t.vertical?o.top:o.left,i=t.vertical?o.height:o.width;if(!i)return;var s=(r-a)/i;s>1?s=1:s<0&&(s=0),l&&(s=1-s),u({value:s}),(t.onScrub||w)(s)}}))};return x(e.current,"mousedown",d),x(e.current,"touchstart",p),function(){_(e.current,"mousedown",d),_(e.current,"touchstart",p)}}}),[e,t.vertical]),s};var Wt;!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(Wt||(Wt={}));const Gt=function(e,t){var n=(0,r.useRef)(!1),o=(0,r.useState)((function(){var e=t.voice||{},n=e.lang,r=void 0===n?"default":n,o=e.name,a=void 0===o?"":o;return{isPlaying:!1,status:Wt[Wt.init],lang:t.lang||"default",voiceInfo:{lang:r,name:a},rate:t.rate||1,pitch:t.pitch||1,volume:t.volume||1}})),a=o[0],i=o[1],l=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!0,status:Wt[Wt.play]})}))}),[]),s=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!1,status:Wt[Wt.pause]})}))}),[]),u=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!1,status:Wt[Wt.end]})}))}),[]);return(0,r.useEffect)((function(){n.current=!0;var r=new SpeechSynthesisUtterance(e);return t.lang&&(r.lang=t.lang),t.voice&&(r.voice=t.voice),r.rate=t.rate||1,r.pitch=t.pitch||1,r.volume=t.volume||1,r.onstart=l,r.onpause=s,r.onresume=l,r.onend=u,window.speechSynthesis.speak(r),function(){n.current=!1}}),[]),a};const Zt=function(e){Y((function(){var t=function(t){var n,r,o,a,i;!function(){var e=document.activeElement,t=document.body;if(!e)return!1;if(e===t)return!1;switch(e.tagName){case"INPUT":case"TEXTAREA":return!0}return e.hasAttribute("contenteditable")}()&&(r=(n=t).keyCode,o=n.metaKey,a=n.ctrlKey,i=n.altKey,!(o||a||i)&&(r>=48&&r<=57||r>=65&&r<=90))&&e(t)};return x(document,"keydown",t),function(){_(document,"keydown",t)}}),[])};function Qt(e,t,n){if(void 0===t&&(t=10),t<1)throw new Error("Capacity has to be greater than 1, got '"+t+"'");var o=l(),a=(0,r.useState)(e),i=a[0],s=a[1],u=(0,r.useRef)(null!=n?n:[]),c=(0,r.useRef)(0);return o&&(u.current.length?(u.current[u.current.length-1]!==e&&u.current.push(e),u.current.length>t&&(u.current=u.current.slice(u.current.length-t))):u.current.push(e),c.current=u.current.length&&u.current.length-1),[i,(0,r.useCallback)((function(e){s((function(n){return(e=H(e,n))!==n&&(c.current<u.current.length-1&&(u.current=u.current.slice(0,c.current+1)),c.current=u.current.push(e)-1,u.current.length>t&&(u.current=u.current.slice(u.current.length-t))),e}))}),[i,t]),(0,r.useMemo)((function(){return{history:u.current,position:c.current,capacity:t,back:function(e){void 0===e&&(e=1),c.current&&s((function(){return c.current-=Math.min(e,c.current),u.current[c.current]}))},forward:function(e){void 0===e&&(e=1),c.current!==u.current.length-1&&s((function(){return c.current=Math.min(c.current+e,u.current.length-1),u.current[c.current]}))},go:function(e){e!==c.current&&s((function(){return c.current=e<0?Math.max(u.current.length+e,0):Math.min(u.current.length-1,e),u.current[c.current]}))}}}),[i])]}function Yt(e){void 0===e&&(e=[]);var t=f(),n=U(),o=(0,r.useRef)(0);s((function(){e.length<=o.current&&(o.current=e.length-1,n())}),[e.length]);var a=(0,r.useMemo)((function(){return{next:function(){return a.setStateAt(o.current+1)},prev:function(){return a.setStateAt(o.current-1)},setStateAt:function(r){t()&&e.length&&r!==o.current&&(o.current=r>=0?r%e.length:e.length+r%e.length,n())},setState:function(r){if(t()){var a=e.length?e.indexOf(r):-1;if(-1===a)throw new Error("State '"+r+"' is not a valid state (does not exist in state list)");o.current=a,n()}}}}),[e]);return(0,d.__assign)({state:e[o.current],currentIndex:o.current},a)}const Xt=function(e,t){void 0===t&&(t=200);var n=(0,r.useState)(e),o=n[0],a=n[1],i=(0,r.useRef)(),l=(0,r.useRef)(null),s=(0,r.useRef)(0);return(0,r.useEffect)((function(){if(i.current)l.current=e,s.current=!0;else{a(e);var n=function(){s.current?(s.current=!1,a(l.current),i.current=setTimeout(n,t)):i.current=void 0};i.current=setTimeout(n,t)}}),[e]),st((function(){i.current&&clearTimeout(i.current)})),o};const Kt=function(e,t,n){void 0===t&&(t=200);var o=(0,r.useState)(null),a=o[0],i=o[1],l=(0,r.useRef)(),s=(0,r.useRef)();return(0,r.useEffect)((function(){if(l.current)s.current=n;else{i(e.apply(void 0,n));var r=function(){s.current?(i(e.apply(void 0,s.current)),s.current=void 0,l.current=setTimeout(r,t)):l.current=void 0};l.current=setTimeout(r,t)}}),n),st((function(){l.current&&clearTimeout(l.current)})),a};function Jt(e){return void 0===e&&(e=0),te(U(),e)}var en={restoreOnUnmount:!1};const tn="undefined"!=typeof document?function(e,t){void 0===t&&(t=en);var n=(0,r.useRef)(document.title);document.title!==e&&(document.title=e),(0,r.useEffect)((function(){return t&&t.restoreOnUnmount?function(){document.title=n.current}:void 0}),[])}:function(e){};var nn=n(75534);const rn=function(e,t,n){return void 0===e&&(e="inCirc"),void 0===t&&(t=200),void 0===n&&(n=0),(0,nn.U[e])(Dt(t,n))};const on=function(){var e=(0,r.useRef)(!1);return le((function(){return function(){e.current=!0}})),(0,r.useMemo)((function(){return function(t,n){return new Promise((function(r,o){t.then((function(t){e.current||r(t)}),(function(t){e.current?n?n(t):console.error("useUnmountPromise",t):o(t)}))}))}}),[])};function an(e,t){void 0===t&&(t=[]);var n=Fe(t),r=n[0],o=n[1];return[r,(0,d.__assign)((0,d.__assign)({},o),{upsert:function(t){o.upsert(e,t)}})]}const ln=E&&"vibrate"in navigator?function(e,t,n){void 0===e&&(e=!0),void 0===t&&(t=[1e3,1e3]),void 0===n&&(n=!0),(0,r.useEffect)((function(){var r;if(e&&(navigator.vibrate(t),n)){var o=t instanceof Array?t.reduce((function(e,t){return e+t})):t;r=setInterval((function(){navigator.vibrate(t)}),o)}return function(){e&&(navigator.vibrate(0),n&&clearInterval(r))}}),[e])}:w;const sn=b("video");function un(e,t,n){void 0===n&&(n=[void 0]);var o=(0,r.useRef)(t),a=(0,r.useRef)(e);o.current=t,a.current=e;var i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){o.current.length>=2?o.current(a.current,s):s(o.current(a.current))}),[s]);return(0,r.useEffect)((function(){u()}),[e]),[l,u]}var cn=function(e){if("undefined"==typeof document)return 0;if(document.body&&(!document.readyState||"loading"!==document.readyState)){if(!0!==e&&"number"==typeof cn.__cache)return cn.__cache;var t=document.createElement("div"),n=t.style;n.display="block",n.position="absolute",n.width="100px",n.height="100px",n.left="-999px",n.top="-999px",n.overflow="scroll",document.body.insertBefore(t,null);var r=t.clientWidth;if(0!==r)return cn.__cache=100-r,document.body.removeChild(t),cn.__cache;document.body.removeChild(t)}};function dn(){var e=(0,r.useState)(cn()),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(void 0===t){var e=requestAnimationFrame((function(){n(cn())}));return function(){return cancelAnimationFrame(e)}}}),[]),t}function fn(e,t,n){if(void 0===n&&(n=[void 0]),"object"!=typeof e)throw new Error("states expected to be an object or array, got "+typeof e);var o=(0,r.useRef)(t),a=(0,r.useRef)(e);o.current=t,a.current=e;var i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){o.current.length>=2?o.current(a.current,s):s(o.current(a.current))}),[s]);return(0,r.useEffect)((function(){u()}),Object.values(e)),[l,u]}const pn=function(){var e=ut((function(){return{x:k?window.pageXOffset:0,y:k?window.pageYOffset:0}})),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){n((function(e){var t=window.pageXOffset,n=window.pageYOffset;return e.x!==t||e.y!==n?{x:t,y:n}:e}))};return e(),x(window,"scroll",e,{capture:!1,passive:!0}),function(){_(window,"scroll",e)}}),[]),t};const hn=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var n=ut({width:k?window.innerWidth:e,height:k?window.innerHeight:t}),o=n[0],a=n[1];return(0,r.useEffect)((function(){if(k){var e=function(){a({width:window.innerWidth,height:window.innerHeight})};return x(window,"resize",e),function(){_(window,"resize",e)}}}),[]),o};var mn={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const gn=k&&void 0!==window.ResizeObserver?function(){var e=(0,r.useState)(null),t=e[0],n=e[1],o=(0,r.useState)(mn),a=o[0],i=o[1],l=(0,r.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,o=t.width,a=t.height,l=t.top,s=t.left,u=t.bottom,c=t.right;i({x:n,y:r,width:o,height:a,top:l,left:s,bottom:u,right:c})}}))}),[]);return Y((function(){if(t)return l.observe(t),function(){l.disconnect()}}),[t]),[n,a]}:function(){return[w,mn]};var vn;!function(e){e.ZOOMING_IN="ZOOMING_IN",e.ZOOMING_OUT="ZOOMING_OUT"}(vn||(vn={}));const bn=function(e){var t=(0,r.useMemo)((function(){return{evCache:[],prevDiff:-1}}),[e.current]),n=(0,r.useState)(),o=n[0],a=n[1],i=function(e){for(var n=0;n<t.evCache.length;n++)if(e.pointerId==t.evCache[n].pointerId){t.evCache[n]=e;break}if(2==t.evCache.length){var r=Math.abs(t.evCache[0].clientX-t.evCache[1].clientX);t.prevDiff>0&&(r>t.prevDiff&&a([vn.ZOOMING_IN,r]),r<t.prevDiff&&a([vn.ZOOMING_OUT,r])),t.prevDiff=r}},l=function(e){t.evCache.push(e)},s=function(e){u(e),t.evCache.length<2&&(t.prevDiff=-1)},u=function(e){for(var n=0;n<t.evCache.length;n++)if(t.evCache[n].pointerId==e.pointerId){t.evCache.splice(n,1);break}};return(0,r.useEffect)((function(){(null==e?void 0:e.current)&&(e.current.onpointerdown=l,e.current.onpointermove=i,e.current.onpointerup=s,e.current.onpointercancel=s,e.current.onpointerout=s,e.current.onpointerleave=s)}),[null==e?void 0:e.current]),o?{zoomingState:o[0],pinchState:o[1]}:{zoomingState:null,pinchState:0}};function yn(){return++(0,r.useRef)(0).current}const wn=function(e){void 0===e&&(e=new Set);var t=(0,r.useState)(e),n=t[0],o=t[1],a=(0,r.useMemo)((function(){return{add:function(e){return o((function(t){return new Set((0,d.__spreadArrays)(Array.from(t),[e]))}))},remove:function(e){return o((function(t){return new Set(Array.from(t).filter((function(t){return t!==e})))}))},toggle:function(e){return o((function(t){return t.has(e)?new Set(Array.from(t).filter((function(t){return t!==e}))):new Set((0,d.__spreadArrays)(Array.from(t),[e]))}))},reset:function(){return o(e)}}}),[o]),i=(0,d.__assign)({has:(0,r.useCallback)((function(e){return n.has(e)}),[n])},a);return[n,i]};function xn(e){var t={state:e instanceof Function?e():e,setState:function(e){t.state=H(e,t.state),t.setters.forEach((function(e){return e(t.state)}))},setters:[]};return function(){var e=(0,r.useState)(t.state),n=e[0],o=e[1];return le((function(){return function(){t.setters=t.setters.filter((function(e){return e!==o}))}})),Y((function(){t.setters.includes(o)||t.setters.push(o)})),[n,t.setState]}}var _n=function(){var e=(0,r.useState)((function(){return window.location.hash})),t=e[0],n=e[1],o=(0,r.useCallback)((function(){n(window.location.hash)}),[]);Me((function(){x(window,"hashchange",o)}),(function(){_(window,"hashchange",o)}));var a=(0,r.useCallback)((function(e){e!==t&&(window.location.hash=e)}),[t]);return[t,a]}},72408:(e,t,n)=>{"use strict";var r=n(27418),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m={};function g(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var y=b.prototype=new v;y.constructor=b,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},x=Object.prototype.hasOwnProperty,_={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,n){var r,a={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,r)&&!_.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(1===s)a.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];a.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===a[r]&&(a[r]=s[r]);return{$$typeof:o,type:e,key:i,ref:l,props:a,_owner:w.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var S=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(E(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function O(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function D(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var P={current:null};function N(){var e=P.current;if(null===e)throw Error(p(321));return e}var I={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:O,forEach:function(e,t,n){O(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return O(e,(function(){t++})),t},toArray:function(e){return O(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var a=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)x.call(t,c)&&!_.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];a.children=u}return{$$typeof:o,type:e.type,key:i,ref:l,props:a,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=k,t.createFactory=function(e){var t=k.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:D}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},60053:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},o=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var h=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var m=!1,g=null,v=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,x=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+b;try{g(!0,e)?x.postMessage(null):(m=!1,g=null)}catch(n){throw x.postMessage(null),n}}else m=!1},n=function(e){g=e,m||(m=!0,x.postMessage(null))},r=function(e,n){v=f((function(){e(t.unstable_now())}),n)},o=function(){p(v),v=-1}}function _(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<S(o,t)))break e;e[r]=t,e[n]=o,n=r}}function k(e){return void 0===(e=e[0])?null:e}function E(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],l=a+1,s=e[l];if(void 0!==i&&0>S(i,n))void 0!==s&&0>S(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==s&&0>S(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],O=1,D=null,P=3,N=!1,I=!1,A=!1;function L(e){for(var t=k(T);null!==t;){if(null===t.callback)E(T);else{if(!(t.startTime<=e))break;E(T),t.sortIndex=t.expirationTime,_(C,t)}t=k(T)}}function R(e){if(A=!1,L(e),!I)if(null!==k(C))I=!0,n(j);else{var t=k(T);null!==t&&r(R,t.startTime-e)}}function j(e,n){I=!1,A&&(A=!1,o()),N=!0;var a=P;try{for(L(n),D=k(C);null!==D&&(!(D.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=D.callback;if("function"==typeof i){D.callback=null,P=D.priorityLevel;var l=i(D.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?D.callback=l:D===k(C)&&E(C),L(n)}else E(C);D=k(C)}if(null!==D)var s=!0;else{var u=k(T);null!==u&&r(R,u.startTime-n),s=!1}return s}finally{D=null,P=a,N=!1}}var M=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){I||N||(I=!0,n(j))},t.unstable_getCurrentPriorityLevel=function(){return P},t.unstable_getFirstCallbackNode=function(){return k(C)},t.unstable_next=function(e){switch(P){case 1:case 2:case 3:var t=3;break;default:t=P}var n=P;P=t;try{return e()}finally{P=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=P;P=e;try{return t()}finally{P=n}},t.unstable_scheduleCallback=function(e,a,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:O++,callback:a,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,_(T,e),null===k(C)&&e===k(T)&&(A?o():A=!0,r(R,i-l))):(e.sortIndex=s,_(C,e),I||N||(I=!0,n(j))),e},t.unstable_wrapCallback=function(e){var t=P;return function(){var n=P;P=t;try{return e.apply(this,arguments)}finally{P=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},10577:e=>{!function(){"use strict";var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=e.exports,r=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,o=n.length,a={};r<o;r++)if((e=n[r])&&e[1]in t){for(r=0;r<e.length;r++)a[n[0][r]]=e[r];return a}return!1}(),o={change:r.fullscreenchange,error:r.fullscreenerror},a={request:function(e,n){return new Promise(function(o,a){var i=function(){this.off("change",i),o()}.bind(this);this.on("change",i);var l=(e=e||t.documentElement)[r.requestFullscreen](n);l instanceof Promise&&l.then(i).catch(a)}.bind(this))},exit:function(){return new Promise(function(e,n){if(this.isFullscreen){var o=function(){this.off("change",o),e()}.bind(this);this.on("change",o);var a=t[r.exitFullscreen]();a instanceof Promise&&a.then(o).catch(n)}else e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var r=o[e];r&&t.addEventListener(r,n,!1)},off:function(e,n){var r=o[e];r&&t.removeEventListener(r,n,!1)},raw:r};r?(Object.defineProperties(a,{isFullscreen:{get:function(){return Boolean(t[r.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[r.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[r.fullscreenEnabled])}}}),n?e.exports=a:window.screenfull=a):n?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}()},96774:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<a.length;s++){var u=a[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(o=n?n.call(r,c,d,u):void 0)||void 0===o&&c!==d)return!1}return!0}},11742:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},75534:(e,t)=>{"use strict";t.U={linear:function(e){return e},quadratic:function(e){return e*(-e*e*e+4*e*e-6*e+4)},cubic:function(e){return e*(4*e*e-9*e+6)},elastic:function(e){return e*(33*e*e*e*e-106*e*e*e+126*e*e-67*e+15)},inQuad:function(e){return e*e},outQuad:function(e){return e*(2-e)},inOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},inCubic:function(e){return e*e*e},outCubic:function(e){return--e*e*e+1},inOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},inQuart:function(e){return e*e*e*e},outQuart:function(e){return 1- --e*e*e*e},inOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},inQuint:function(e){return e*e*e*e*e},outQuint:function(e){return 1+--e*e*e*e*e},inOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},inSine:function(e){return 1-Math.cos(e*(Math.PI/2))},outSine:function(e){return Math.sin(e*(Math.PI/2))},inOutSine:function(e){return-(Math.cos(Math.PI*e)-1)/2},inExpo:function(e){return Math.pow(2,10*(e-1))},outExpo:function(e){return 1-Math.pow(2,-10*e)},inOutExpo:function(e){return(e/=.5)<1?Math.pow(2,10*(e-1))/2:(e--,(2-Math.pow(2,-10*e))/2)},inCirc:function(e){return 1-Math.sqrt(1-e*e)},outCirc:function(e){return Math.sqrt(1-(e-=1)*e)},inOutCirc:function(e){return(e/=.5)<1?-(Math.sqrt(1-e*e)-1)/2:(e-=2,(Math.sqrt(1-e*e)+1)/2)}}},53250:(e,t,n)=>{"use strict";var r=n(67294);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,c=r[1];return l((function(){o.value=n,o.getSnapshot=t,u(o)&&c({inst:o})}),[e,n,t]),i((function(){return u(o)&&c({inst:o}),e((function(){u(o)&&c({inst:o})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},61688:(e,t,n)=>{"use strict";e.exports=n(53250)},36809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Waku",url:"https://waku.org",baseUrl:"/",markdown:{mermaid:!0},i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["@acid-info/logos-docusaurus-preset",{businessUnit:"Waku",theme:{name:"default",options:{customCss:["/home/jenkins/workspace/website/waku.org/src/css/custom.scss"],docs:{default:{sidebar:{hide:!0}}},newsletterSubscription:{mailingListId:5}}},docs:{routeBasePath:"/",path:"root-pages"},generated:{jobList:{jobBoard:"waku"}},og:{}}]],plugins:[["@docusaurus/plugin-content-docs",{id:"about",routeBasePath:"/about",path:"about"}],["@acid-info/docusaurus-og",{path:"_og",imageRenderers:{}}]],themeConfig:{docs:{sidebar:{hideable:!0,autoCollapseCategories:!1},versionPersistence:"localStorage"},metadata:[{name:"keywords",content:"waku, web3"},{name:"description",content:"Waku is the communication layer for Web3. Decentralized communication that scales."},{name:"image",content:"theme/image/preview-image.png"}],colorMode:{disableSwitch:!1,defaultMode:"dark",respectPrefersColorScheme:!0},navbar:{title:"",logo:{alt:"Waku",src:"theme/image/logo-black.svg",srcDark:"theme/image/logo.svg",height:26},hideOnScroll:!0,items:[{type:"search",position:"left"},{label:"About Waku",to:"/about",position:"left"},{label:"Community",to:"/community",position:"left"},{label:"Blog",href:"https://blog.waku.org/",position:"left"},{label:"Docs",href:"https://docs.waku.org",position:"left"},{label:"Join Us",href:"/join-us",position:"left"},{href:"https://github.com/waku-org",position:"right",className:"header-github-link",title:"Waku GitHub repository"}]},footer:{logo:{alt:"Waku",src:"theme/image/logo.svg",href:"/",width:22},links:[{items:[{href:"https://twitter.com/waku_org",label:"Twitter"},{href:"https://discord.waku.org/",label:"Discord"},{href:"https://docs.waku.org",label:"Docs"},{href:"https://github.com/waku-org",label:"Github"}],title:null},{items:[{href:"https://blog.waku.org/",label:"Blog"},{href:"https://jobs.status.im/",label:"Work with us"},{href:"https://guide.waku.org/",label:"Brand Guidelines"},{href:"/terms",label:"Terms & conditions"},{href:"/privacy-policy",label:"Privacy Policy"}],title:null},{title:"shared:Research",items:[{href:"https://vac.dev",label:"VacP2P"},{href:"https://afaik.institute",label:"AFAIK"}]},{title:"shared:Infrastructure",items:[{href:"https://waku.org/",label:"Waku"},{href:"https://nimbus.team/",label:"Nimbus"},{href:"https://codex.storage",label:"Codex"},{href:"https://nomos.tech",label:"Nomos"}]},{title:"shared:Creative Studio",items:[{href:"https://acid.info",label:"Acid.info"}]},{title:"shared:Movement",items:[{href:"https://logos.co",label:"Logos"}]},{title:"shared:User-facing products",items:[{href:"https://status.im",label:"Status"},{href:"https://keycard.tech",label:"Keycard"}]}],copyright:"Waku @2023<br/>All Rights Reserved.",style:"light"},prism:{theme:{plain:{color:"#000000",backgroundColor:"rgba(var(--lsd-surface-secondary), 0.08)"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"rgba(var(--lsd-surface-secondary), 0.08)"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",onDuplicateRoutes:"warn",staticDirectories:["static","/home/jenkins/workspace/website/waku.org/node_modules/@acid-info/logos-docusaurus-preset/static/common","/home/jenkins/workspace/website/waku.org/node_modules/@acid-info/logos-docusaurus-preset/static/Waku","/home/jenkins/workspace/website/waku.org/node_modules/@acid-info/logos-docusaurus-theme/lib/client/static/"],customFields:{businessUnits:"Waku","logos-docusaurus-theme":{customCss:["/home/jenkins/workspace/website/waku.org/src/css/custom.scss"],docs:{default:{sidebar:{hide:!0},content:{}}},newsletterSubscription:{mailingListId:5},id:"default"}},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],tagline:"Waku is the communication layer for Web3. Decentralized communication that scales.",titleDelimiter:"|",noIndex:!1,favicon:"theme/image/favicon.ico"}},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},75068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>o})},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},38776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},97582:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>L,__assign:()=>a,__asyncDelegator:()=>S,__asyncGenerator:()=>E,__asyncValues:()=>C,__await:()=>k,__awaiter:()=>h,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>A,__classPrivateFieldSet:()=>I,__createBinding:()=>g,__decorate:()=>l,__disposeResources:()=>j,__esDecorate:()=>u,__exportStar:()=>v,__extends:()=>o,__generator:()=>m,__importDefault:()=>P,__importStar:()=>D,__makeTemplateObject:()=>T,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>y,__rest:()=>i,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>_,__spreadArrays:()=>x,__values:()=>b,default:()=>M});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function l(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(o=e[l])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,o,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var h={};for(var m in r)h[m]="access"===m?{}:r[m];for(var m in r.access)h.access[m]=r.access[m];h.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var g=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],h);if("accessor"===s){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(l=i(g.get))&&(d.get=l),(l=i(g.set))&&(d.set=l),(l=i(g.init))&&o.unshift(l)}else(l=i(g))&&("field"===s?o.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,o=0;o<t.length;o++)n=r?t[o].call(e,n):t[o].call(e);return r?n:void 0}function d(e){return"symbol"==typeof e?e:"".concat(e)}function f(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function h(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{s(r.next(e))}catch(t){a(t)}}function l(e){try{s(r.throw(e))}catch(t){a(t)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}s((r=r.apply(e,t||[])).next())}))}function m(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(s){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(s){l=[6,s],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}}var g=Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function v(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||g(t,e,n)}function b(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function w(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(y(arguments[t]));return e}function x(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,l=a.length;i<l;i++,o++)r[o]=a[i];return r}function _(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function k(e){return this instanceof k?(this.v=e,this):new k(e)}function E(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),a=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){a.push([e,t,n,r])>1||l(e,t)}))})}function l(e,t){try{(n=o[e](t)).value instanceof k?Promise.resolve(n.value.v).then(s,u):c(a[0][2],n)}catch(r){c(a[0][3],r)}var n}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),a.shift(),a.length&&l(a[0][0],a[0][1])}}function S(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:k(e[r](t)),done:!1}:o?o(t):t}:o}}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=b(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var O=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function D(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&g(t,e,n);return O(t,e),t}function P(e){return e&&e.__esModule?e:{default:e}}function N(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function I(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function A(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function L(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if("function"!=typeof r)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var R="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function j(e){function t(t){e.error=e.hasError?new R(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var r=e.stack.pop();try{var o=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(o).then(n,(function(e){return t(e),n()}))}catch(a){t(a)}}if(e.hasError)throw e.error}()}const M={__extends:o,__assign:a,__rest:i,__decorate:l,__param:s,__metadata:p,__awaiter:h,__generator:m,__createBinding:g,__exportStar:v,__values:b,__read:y,__spread:w,__spreadArrays:x,__spreadArray:_,__await:k,__asyncGenerator:E,__asyncDelegator:S,__asyncValues:C,__makeTemplateObject:T,__importStar:D,__importDefault:P,__classPrivateFieldGet:N,__classPrivateFieldSet:I,__classPrivateFieldIn:A,__addDisposableResource:L,__disposeResources:j}},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/subscribe-60c":{"__comp":"546e778e","__context":{"plugin":"db77d2e4"},"config":"5e9f5e1a"},"/about-8e0":{"__comp":"1be78505","__context":{"plugin":"f0fe3b85"},"versionMetadata":"7818b736"},"/about/-a82":{"__comp":"17896441","content":"230402f8"},"/about/architect-7a3":{"__comp":"17896441","content":"d40faacd"},"/about/roadmap-b12":{"__comp":"17896441","content":"ba0da7bd"},"/about/team-c35":{"__comp":"17896441","content":"13b4f215"},"/about/waku-network-4dc":{"__comp":"17896441","content":"e68c6035"},"/-ced":{"__comp":"1f391b9e","__context":{"plugin":"db77d2e4"},"content":"e7ce6630"},"/-e83":{"__comp":"1be78505","__context":{"plugin":"f78498e9"},"versionMetadata":"935f2afb"},"/community-dda":{"__comp":"17896441","content":"5086c83f"},"/join-us-3eb":{"__comp":"17896441","content":"4c51782d"},"/privacy-policy-e92":{"__comp":"17896441","content":"81bf376d"},"/terms-73e":{"__comp":"17896441","content":"79dc5662"}}')}},e=>{e.O(0,[532],(()=>{return t=2691,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.a12edac1.js b/assets/js/main.a12edac1.js new file mode 100644 index 00000000..40c00df9 --- /dev/null +++ b/assets/js/main.a12edac1.js @@ -0,0 +1,14 @@ +/*! For license information please see main.a12edac1.js.LICENSE.txt */ +(self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[]).push([[179],{31665:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(67294),o=n(73935),a=n(70917);function i(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const l=i(r);var s=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(r){0}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),u="-ms-",c="-moz-",d="-webkit-",f="comm",p="rule",h="decl",m="@keyframes",g=Math.abs,v=String.fromCharCode,b=Object.assign;function y(e){return e.trim()}function w(e,t,n){return e.replace(t,n)}function x(e,t){return e.indexOf(t)}function _(e,t){return 0|e.charCodeAt(t)}function k(e,t,n){return e.slice(t,n)}function E(e){return e.length}function S(e){return e.length}function C(e,t){return t.push(e),e}var T=1,O=1,D=0,P=0,N=0,I="";function A(e,t,n,r,o,a,i){return{value:e,root:t,parent:n,type:r,props:o,children:a,line:T,column:O,length:i,return:""}}function L(e,t){return b(A("",null,null,"",null,null,0),e,{length:-e.length},t)}function R(){return N=P<D?_(I,P++):0,O++,10===N&&(O=1,T++),N}function j(){return _(I,P)}function M(){return P}function F(e,t){return k(I,e,t)}function B(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function z(e){return T=O=1,D=E(I=e),P=0,[]}function $(e){return I="",e}function U(e){return y(F(P-1,q(91===e?e+2:40===e?e+1:e)))}function H(e){for(;(N=j())&&N<33;)R();return B(e)>2||B(N)>3?"":" "}function V(e,t){for(;--t&&R()&&!(N<48||N>102||N>57&&N<65||N>70&&N<97););return F(e,M()+(t<6&&32==j()&&32==R()))}function q(e){for(;R();)switch(N){case e:return P;case 34:case 39:34!==e&&39!==e&&q(N);break;case 40:41===e&&q(e);break;case 92:R()}return P}function W(e,t){for(;R()&&e+N!==57&&(e+N!==84||47!==j()););return"/*"+F(t,P-1)+"*"+v(47===e?e:R())}function G(e){for(;!B(j());)R();return F(e,P)}function Z(e){return $(Q("",null,null,null,[""],e=z(e),0,[0],e))}function Q(e,t,n,r,o,a,i,l,s){for(var u=0,c=0,d=i,f=0,p=0,h=0,m=1,g=1,b=1,y=0,k="",S=o,D=a,A=r,L=k;g;)switch(h=y,y=R()){case 40:if(108!=h&&58==_(L,d-1)){-1!=x(L+=w(U(y),"&","&\f"),"&\f")&&(b=-1);break}case 34:case 39:case 91:L+=U(y);break;case 9:case 10:case 13:case 32:L+=H(h);break;case 92:L+=V(M()-1,7);continue;case 47:switch(j()){case 42:case 47:C(X(W(R(),M()),t,n),s);break;default:L+="/"}break;case 123*m:l[u++]=E(L)*b;case 125*m:case 59:case 0:switch(y){case 0:case 125:g=0;case 59+c:p>0&&E(L)-d&&C(p>32?K(L+";",r,n,d-1):K(w(L," ","")+";",r,n,d-2),s);break;case 59:L+=";";default:if(C(A=Y(L,t,n,u,c,o,l,k,S=[],D=[],d),a),123===y)if(0===c)Q(L,t,A,A,S,a,d,l,D);else switch(99===f&&110===_(L,3)?100:f){case 100:case 109:case 115:Q(e,A,A,r&&C(Y(e,A,A,0,0,o,l,k,o,S=[],d),D),o,D,d,l,r?S:D);break;default:Q(L,A,A,A,[""],D,0,l,D)}}u=c=p=0,m=b=1,k=L="",d=i;break;case 58:d=1+E(L),p=h;default:if(m<1)if(123==y)--m;else if(125==y&&0==m++&&125==(N=P>0?_(I,--P):0,O--,10===N&&(O=1,T--),N))continue;switch(L+=v(y),y*m){case 38:b=c>0?1:(L+="\f",-1);break;case 44:l[u++]=(E(L)-1)*b,b=1;break;case 64:45===j()&&(L+=U(R())),f=j(),c=d=E(k=L+=G(M())),y++;break;case 45:45===h&&2==E(L)&&(m=0)}}return a}function Y(e,t,n,r,o,a,i,l,s,u,c){for(var d=o-1,f=0===o?a:[""],h=S(f),m=0,v=0,b=0;m<r;++m)for(var x=0,_=k(e,d+1,d=g(v=i[m])),E=e;x<h;++x)(E=y(v>0?f[x]+" "+_:w(_,/&\f/g,f[x])))&&(s[b++]=E);return A(e,t,n,0===o?p:l,s,u,c)}function X(e,t,n){return A(e,t,n,f,v(N),k(e,2,-2),0)}function K(e,t,n,r){return A(e,t,n,h,k(e,0,r),k(e,r+1,-1),r)}function J(e,t){for(var n="",r=S(e),o=0;o<r;o++)n+=t(e[o],o,e,t)||"";return n}function ee(e,t,n,r){switch(e.type){case"@import":case h:return e.return=e.return||e.value;case f:return"";case m:return e.return=e.value+"{"+J(e.children,r)+"}";case p:e.value=e.props.join(",")}return E(n=J(e.children,r))?e.return=e.value+"{"+n+"}":""}function te(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}var ne=function(e,t,n){for(var r=0,o=0;r=o,o=j(),38===r&&12===o&&(t[n]=1),!B(o);)R();return F(e,P)},re=function(e,t){return $(function(e,t){var n=-1,r=44;do{switch(B(r)){case 0:38===r&&12===j()&&(t[n]=1),e[n]+=ne(P-1,t,n);break;case 2:e[n]+=U(r);break;case 4:if(44===r){e[++n]=58===j()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=v(r)}}while(r=R());return e}(z(e),t))},oe=new WeakMap,ae=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||oe.get(n))&&!r){oe.set(e,!0);for(var o=[],a=re(t,o),i=n.props,l=0,s=0;l<a.length;l++)for(var u=0;u<i.length;u++,s++)e.props[s]=o[l]?a[l].replace(/&\f/g,i[u]):i[u]+" "+a[l]}}},ie=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function le(e,t){switch(function(e,t){return 45^_(e,0)?(((t<<2^_(e,0))<<2^_(e,1))<<2^_(e,2))<<2^_(e,3):0}(e,t)){case 5103:return d+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return d+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return d+e+c+e+u+e+e;case 6828:case 4268:return d+e+u+e+e;case 6165:return d+e+u+"flex-"+e+e;case 5187:return d+e+w(e,/(\w+).+(:[^]+)/,d+"box-$1$2"+u+"flex-$1$2")+e;case 5443:return d+e+u+"flex-item-"+w(e,/flex-|-self/,"")+e;case 4675:return d+e+u+"flex-line-pack"+w(e,/align-content|flex-|-self/,"")+e;case 5548:return d+e+u+w(e,"shrink","negative")+e;case 5292:return d+e+u+w(e,"basis","preferred-size")+e;case 6060:return d+"box-"+w(e,"-grow","")+d+e+u+w(e,"grow","positive")+e;case 4554:return d+w(e,/([^-])(transform)/g,"$1"+d+"$2")+e;case 6187:return w(w(w(e,/(zoom-|grab)/,d+"$1"),/(image-set)/,d+"$1"),e,"")+e;case 5495:case 3959:return w(e,/(image-set\([^]*)/,d+"$1$`$1");case 4968:return w(w(e,/(.+:)(flex-)?(.*)/,d+"box-pack:$3"+u+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+d+e+e;case 4095:case 3583:case 4068:case 2532:return w(e,/(.+)-inline(.+)/,d+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(E(e)-1-t>6)switch(_(e,t+1)){case 109:if(45!==_(e,t+4))break;case 102:return w(e,/(.+:)(.+)-([^]+)/,"$1"+d+"$2-$3$1"+c+(108==_(e,t+3)?"$3":"$2-$3"))+e;case 115:return~x(e,"stretch")?le(w(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==_(e,t+1))break;case 6444:switch(_(e,E(e)-3-(~x(e,"!important")&&10))){case 107:return w(e,":",":"+d)+e;case 101:return w(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+d+(45===_(e,14)?"inline-":"")+"box$3$1"+d+"$2$3$1"+u+"$2box$3")+e}break;case 5936:switch(_(e,t+11)){case 114:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return d+e+u+w(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return d+e+u+e+e}return e}var se,ue=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case h:e.return=le(e.value,e.length);break;case m:return J([L(e,{value:w(e.value,"@","@"+d)})],r);case p:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return J([L(e,{props:[w(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return J([L(e,{props:[w(t,/:(plac\w+)/,":"+d+"input-$1")]}),L(e,{props:[w(t,/:(plac\w+)/,":-moz-$1")]}),L(e,{props:[w(t,/:(plac\w+)/,u+"input-$1")]})],r)}return""}))}}],ce=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r=e.stylisPlugins||ue;var o,a,i={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)i[t[n]]=!0;l.push(e)}));var u,c,d,f,p=[ee,(f=function(e){u.insert(e)},function(e){e.root||(e=e.return)&&f(e)})],h=(c=[ae,ie].concat(r,p),d=S(c),function(e,t,n,r){for(var o="",a=0;a<d;a++)o+=c[a](e,t,n,r)||"";return o});a=function(e,t,n,r){u=n,J(Z(e?e+"{"+t.styles+"}":t.styles),h),r&&(m.inserted[t.name]=!0)};var m={key:t,sheet:new s({key:t,container:o,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:i,registered:{},insert:a};return m.sheet.hydrate(l),m},de="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{},fe={},pe={};({get exports(){return fe},set exports(e){fe=e}}).exports=function(){if(se)return pe;se=1;var e="function"==typeof Symbol&&Symbol.for,t=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,r=e?Symbol.for("react.fragment"):60107,o=e?Symbol.for("react.strict_mode"):60108,a=e?Symbol.for("react.profiler"):60114,i=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,s=e?Symbol.for("react.async_mode"):60111,u=e?Symbol.for("react.concurrent_mode"):60111,c=e?Symbol.for("react.forward_ref"):60112,d=e?Symbol.for("react.suspense"):60113,f=e?Symbol.for("react.suspense_list"):60120,p=e?Symbol.for("react.memo"):60115,h=e?Symbol.for("react.lazy"):60116,m=e?Symbol.for("react.block"):60121,g=e?Symbol.for("react.fundamental"):60117,v=e?Symbol.for("react.responder"):60118,b=e?Symbol.for("react.scope"):60119;function y(e){if("object"==typeof e&&null!==e){var f=e.$$typeof;switch(f){case t:switch(e=e.type){case s:case u:case r:case a:case o:case d:return e;default:switch(e=e&&e.$$typeof){case l:case c:case h:case p:case i:return e;default:return f}}case n:return f}}}function w(e){return y(e)===u}return pe.AsyncMode=s,pe.ConcurrentMode=u,pe.ContextConsumer=l,pe.ContextProvider=i,pe.Element=t,pe.ForwardRef=c,pe.Fragment=r,pe.Lazy=h,pe.Memo=p,pe.Portal=n,pe.Profiler=a,pe.StrictMode=o,pe.Suspense=d,pe.isAsyncMode=function(e){return w(e)||y(e)===s},pe.isConcurrentMode=w,pe.isContextConsumer=function(e){return y(e)===l},pe.isContextProvider=function(e){return y(e)===i},pe.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===t},pe.isForwardRef=function(e){return y(e)===c},pe.isFragment=function(e){return y(e)===r},pe.isLazy=function(e){return y(e)===h},pe.isMemo=function(e){return y(e)===p},pe.isPortal=function(e){return y(e)===n},pe.isProfiler=function(e){return y(e)===a},pe.isStrictMode=function(e){return y(e)===o},pe.isSuspense=function(e){return y(e)===d},pe.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===r||e===u||e===a||e===o||e===d||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===p||e.$$typeof===i||e.$$typeof===l||e.$$typeof===c||e.$$typeof===g||e.$$typeof===v||e.$$typeof===b||e.$$typeof===m)},pe.typeOf=y,pe}();var he=fe,me={};me[he.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},me[he.Memo]={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0};var ge=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)};var ve={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},be=/[A-Z]|^ms/g,ye=/_EMO_([^_]+?)_([^]*?)_EMO_/g,we=function(e){return 45===e.charCodeAt(1)},xe=function(e){return null!=e&&"boolean"!=typeof e},_e=te((function(e){return we(e)?e:e.replace(be,"-$&").toLowerCase()})),ke=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(ye,(function(e,t,n){return Se={name:t,styles:n,next:Se},t}))}return 1===ve[e]||we(e)||"number"!=typeof t||0===t?t:t+"px"};function Ee(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return Se={name:n.name,styles:n.styles,next:Se},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)Se={name:r.name,styles:r.styles,next:Se},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=Ee(e,t,n[o])+";";else for(var a in n){var i=n[a];if("object"!=typeof i)null!=t&&void 0!==t[i]?r+=a+"{"+t[i]+"}":xe(i)&&(r+=_e(a)+":"+ke(a,i)+";");else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var l=Ee(e,t,i);switch(a){case"animation":case"animationName":r+=_e(a)+":"+l+";";break;default:r+=a+"{"+l+"}"}}else for(var s=0;s<i.length;s++)xe(i[s])&&(r+=_e(a)+":"+ke(a,i[s])+";")}return r}(e,t,n);case"function":if(void 0!==e){var o=Se,a=n(e);return Se=o,Ee(e,t,a)}}if(null==t)return n;var i=t[n];return void 0!==i?i:n}var Se,Ce=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var Te=!!l.useInsertionEffect&&l.useInsertionEffect||function(e){return e()},Oe={}.hasOwnProperty,De=r.createContext("undefined"!=typeof HTMLElement?ce({key:"css"}):null);De.Provider;var Pe=function(e){return r.forwardRef((function(t,n){var o=r.useContext(De);return e(t,o,n)}))},Ne=r.createContext({});var Ie="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",Ae=function(e,t){var n={};for(var r in t)Oe.call(t,r)&&(n[r]=t[r]);return n[Ie]=e,n},Le=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return ge(t,n,r),Te((function(){return function(e,t,n){ge(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var o=t;do{e.insert(t===o?"."+r:"",o,e.sheet,!0),o=o.next}while(void 0!==o)}}(t,n,r)})),null},Re=Pe((function(e,t,n){var o=e.css;"string"==typeof o&&void 0!==t.registered[o]&&(o=t.registered[o]);var a=e[Ie],i=[o],l="";"string"==typeof e.className?l=function(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}(t.registered,i,e.className):null!=e.className&&(l=e.className+" ");var s=function(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";Se=void 0;var a=e[0];null==a||void 0===a.raw?(r=!1,o+=Ee(n,t,a)):o+=a[0];for(var i=1;i<e.length;i++)o+=Ee(n,t,e[i]),r&&(o+=a[i]);Ce.lastIndex=0;for(var l,s="";null!==(l=Ce.exec(o));)s+="-"+l[1];return{name:function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+s,styles:o,next:Se}}(i,void 0,r.useContext(Ne));l+=t.key+"-"+s.name;var u={};for(var c in e)Oe.call(e,c)&&"css"!==c&&c!==Ie&&(u[c]=e[c]);return u.ref=n,u.className=l,r.createElement(r.Fragment,null,r.createElement(Le,{cache:t,serialized:s,isStringTag:"string"==typeof a}),r.createElement(a,u))}));var je,Me,Fe,Be={},ze={};function $e(){if(Me)return je;Me=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;return je=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(r,o){for(var a,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(r),s=1;s<arguments.length;s++){for(var u in a=Object(arguments[s]))t.call(a,u)&&(l[u]=a[u]);if(e){i=e(a);for(var c=0;c<i.length;c++)n.call(a,i[c])&&(l[i[c]]=a[i[c]])}}return l},je}!function(e){e.exports=function(){if(Fe)return ze;Fe=1,$e();var e=r,t=60103;if(ze.Fragment=60107,"function"==typeof Symbol&&Symbol.for){var n=Symbol.for;t=n("react.element"),ze.Fragment=n("react.fragment")}var o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a=Object.prototype.hasOwnProperty,i={key:!0,ref:!0,__self:!0,__source:!0};function l(e,n,r){var l,s={},u=null,c=null;for(l in void 0!==r&&(u=""+r),void 0!==n.key&&(u=""+n.key),void 0!==n.ref&&(c=n.ref),n)a.call(n,l)&&!i.hasOwnProperty(l)&&(s[l]=n[l]);if(e&&e.defaultProps)for(l in n=e.defaultProps)void 0===s[l]&&(s[l]=n[l]);return{$$typeof:t,type:e,key:u,ref:c,props:s,_owner:o.current}}return ze.jsx=l,ze.jsxs=l,ze}()}({get exports(){return Be},set exports(e){Be=e}});const Ue=Be.Fragment,He=Be.jsx,Ve=Be.jsxs;var qe=Ue;function We(e,t,n){return Oe.call(t,"css")?He(Re,Ae(e,t),n):He(e,t,n)}function Ge(e,t,n){return Oe.call(t,"css")?Ve(Re,Ae(e,t),n):Ve(e,t,n)}function Ze(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=Ze(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function Qe(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=Ze(e))&&(r&&(r+=" "),r+=t);return r}const Ye=e=>{const[t,n]=r.useState(e.value??e.defaultValue),o=void 0===e.value,a=void 0!==t&&("string"==typeof t?t.length>0:t.toString().length>0);return r.useEffect((()=>{!o&&n(e.value)}),[o,e.value]),{value:t,filled:a,onChange:t=>{if(o){const e=t.target.type,r=t.target["checkbox"===e||"radio"===e?"checked":"value"];n(r)}e.onChange&&e.onChange(t)},setValue:t=>{var n,r,o,a;const i=(null==(n=null==e?void 0:e.ref)?void 0:n.current)??("function"==typeof e.getInput&&e.getInput());if(!i)return;const l=new Event("input",{bubbles:!0});null==(a=null==(o=null==(r=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value"))?void 0:r.set)?void 0:o.call)||a.call(o,i,t),i.dispatchEvent(l)}}};var Xe=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o};var Ke=function(){this.__data__=[],this.size=0};var Je=function(e,t){return e===t||e!=e&&t!=t},et=Je;var tt=function(e,t){for(var n=e.length;n--;)if(et(e[n][0],t))return n;return-1},nt=tt,rt=Array.prototype.splice;var ot=tt;var at=tt;var it=tt;var lt=Ke,st=function(e){var t=this.__data__,n=nt(t,e);return!(n<0)&&(n==t.length-1?t.pop():rt.call(t,n,1),--this.size,!0)},ut=function(e){var t=this.__data__,n=ot(t,e);return n<0?void 0:t[n][1]},ct=function(e){return at(this.__data__,e)>-1},dt=function(e,t){var n=this.__data__,r=it(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this};function ft(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}ft.prototype.clear=lt,ft.prototype.delete=st,ft.prototype.get=ut,ft.prototype.has=ct,ft.prototype.set=dt;var pt=ft,ht=pt;var mt=function(){this.__data__=new ht,this.size=0};var gt=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n};var vt=function(e){return this.__data__.get(e)};var bt=function(e){return this.__data__.has(e)},yt="object"==typeof de&&de&&de.Object===Object&&de,wt=yt,xt="object"==typeof self&&self&&self.Object===Object&&self,_t=wt||xt||Function("return this")(),kt=_t.Symbol,Et=kt,St=Object.prototype,Ct=St.hasOwnProperty,Tt=St.toString,Ot=Et?Et.toStringTag:void 0;var Dt=function(e){var t=Ct.call(e,Ot),n=e[Ot];try{e[Ot]=void 0;var r=!0}catch(a){}var o=Tt.call(e);return r&&(t?e[Ot]=n:delete e[Ot]),o},Pt=Object.prototype.toString;var Nt=Dt,It=function(e){return Pt.call(e)},At=kt?kt.toStringTag:void 0;var Lt=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":At&&At in Object(e)?Nt(e):It(e)};var Rt=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},jt=Lt,Mt=Rt;var Ft,Bt=function(e){if(!Mt(e))return!1;var t=jt(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},zt=_t["__core-js_shared__"],$t=(Ft=/[^.]+$/.exec(zt&&zt.keys&&zt.keys.IE_PROTO||""))?"Symbol(src)_1."+Ft:"";var Ut=function(e){return!!$t&&$t in e},Ht=Function.prototype.toString;var Vt=function(e){if(null!=e){try{return Ht.call(e)}catch(t){}try{return e+""}catch(t){}}return""},qt=Bt,Wt=Ut,Gt=Rt,Zt=Vt,Qt=/^\[object .+?Constructor\]$/,Yt=Function.prototype,Xt=Object.prototype,Kt=Yt.toString,Jt=Xt.hasOwnProperty,en=RegExp("^"+Kt.call(Jt).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var tn=function(e){return!(!Gt(e)||Wt(e))&&(qt(e)?en:Qt).test(Zt(e))},nn=function(e,t){return null==e?void 0:e[t]};var rn=function(e,t){var n=nn(e,t);return tn(n)?n:void 0},on=rn(_t,"Map"),an=rn(Object,"create"),ln=an;var sn=function(){this.__data__=ln?ln(null):{},this.size=0};var un=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},cn=an,dn=Object.prototype.hasOwnProperty;var fn=function(e){var t=this.__data__;if(cn){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return dn.call(t,e)?t[e]:void 0},pn=an,hn=Object.prototype.hasOwnProperty;var mn=an;var gn=sn,vn=un,bn=fn,yn=function(e){var t=this.__data__;return pn?void 0!==t[e]:hn.call(t,e)},wn=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=mn&&void 0===t?"__lodash_hash_undefined__":t,this};function xn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}xn.prototype.clear=gn,xn.prototype.delete=vn,xn.prototype.get=bn,xn.prototype.has=yn,xn.prototype.set=wn;var _n=xn,kn=pt,En=on;var Sn=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e};var Cn=function(e,t){var n=e.__data__;return Sn(t)?n["string"==typeof t?"string":"hash"]:n.map},Tn=Cn;var On=Cn;var Dn=Cn;var Pn=Cn;var Nn=function(){this.size=0,this.__data__={hash:new _n,map:new(En||kn),string:new _n}},In=function(e){var t=Tn(this,e).delete(e);return this.size-=t?1:0,t},An=function(e){return On(this,e).get(e)},Ln=function(e){return Dn(this,e).has(e)},Rn=function(e,t){var n=Pn(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this};function jn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}jn.prototype.clear=Nn,jn.prototype.delete=In,jn.prototype.get=An,jn.prototype.has=Ln,jn.prototype.set=Rn;var Mn=jn,Fn=pt,Bn=on,zn=Mn;var $n=pt,Un=mt,Hn=gt,Vn=vt,qn=bt,Wn=function(e,t){var n=this.__data__;if(n instanceof Fn){var r=n.__data__;if(!Bn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new zn(r)}return n.set(e,t),this.size=n.size,this};function Gn(e){var t=this.__data__=new $n(e);this.size=t.size}Gn.prototype.clear=Un,Gn.prototype.delete=Hn,Gn.prototype.get=Vn,Gn.prototype.has=qn,Gn.prototype.set=Wn;var Zn=Gn;var Qn=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e},Yn=rn,Xn=function(){try{var e=Yn(Object,"defineProperty");return e({},"",{}),e}catch(t){}}(),Kn=Xn;var Jn=function(e,t,n){"__proto__"==t&&Kn?Kn(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},er=Jn,tr=Je,nr=Object.prototype.hasOwnProperty;var rr=function(e,t,n){var r=e[t];nr.call(e,t)&&tr(r,n)&&(void 0!==n||t in e)||er(e,t,n)},or=rr,ar=Jn;var ir=function(e,t,n,r){var o=!n;n||(n={});for(var a=-1,i=t.length;++a<i;){var l=t[a],s=r?r(n[l],e[l],l,n,e):void 0;void 0===s&&(s=e[l]),o?ar(n,l,s):or(n,l,s)}return n};var lr=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r};var sr=function(e){return null!=e&&"object"==typeof e},ur=Lt,cr=sr;var dr=function(e){return cr(e)&&"[object Arguments]"==ur(e)},fr=sr,pr=Object.prototype,hr=pr.hasOwnProperty,mr=pr.propertyIsEnumerable,gr=dr(function(){return arguments}())?dr:function(e){return fr(e)&&hr.call(e,"callee")&&!mr.call(e,"callee")},vr=Array.isArray,br={};var yr=function(){return!1};!function(e,t){var n=_t,r=yr,o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o?n.Buffer:void 0,l=(i?i.isBuffer:void 0)||r;e.exports=l}({get exports(){return br},set exports(e){br=e}},br);var wr=/^(?:0|[1-9]\d*)$/;var xr=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&wr.test(e))&&e>-1&&e%1==0&&e<t};var _r=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},kr=Lt,Er=_r,Sr=sr,Cr={};Cr["[object Float32Array]"]=Cr["[object Float64Array]"]=Cr["[object Int8Array]"]=Cr["[object Int16Array]"]=Cr["[object Int32Array]"]=Cr["[object Uint8Array]"]=Cr["[object Uint8ClampedArray]"]=Cr["[object Uint16Array]"]=Cr["[object Uint32Array]"]=!0,Cr["[object Arguments]"]=Cr["[object Array]"]=Cr["[object ArrayBuffer]"]=Cr["[object Boolean]"]=Cr["[object DataView]"]=Cr["[object Date]"]=Cr["[object Error]"]=Cr["[object Function]"]=Cr["[object Map]"]=Cr["[object Number]"]=Cr["[object Object]"]=Cr["[object RegExp]"]=Cr["[object Set]"]=Cr["[object String]"]=Cr["[object WeakMap]"]=!1;var Tr=function(e){return Sr(e)&&Er(e.length)&&!!Cr[kr(e)]};var Or=function(e){return function(t){return e(t)}},Dr={};!function(e,t){var n=yt,r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r&&n.process,i=function(){try{var e=o&&o.require&&o.require("util").types;return e||a&&a.binding&&a.binding("util")}catch(t){}}();e.exports=i}({get exports(){return Dr},set exports(e){Dr=e}},Dr);var Pr=Tr,Nr=Or,Ir=Dr&&Dr.isTypedArray,Ar=Ir?Nr(Ir):Pr,Lr=lr,Rr=gr,jr=vr,Mr=br,Fr=xr,Br=Ar,zr=Object.prototype.hasOwnProperty;var $r=function(e,t){var n=jr(e),r=!n&&Rr(e),o=!n&&!r&&Mr(e),a=!n&&!r&&!o&&Br(e),i=n||r||o||a,l=i?Lr(e.length,String):[],s=l.length;for(var u in e)!t&&!zr.call(e,u)||i&&("length"==u||o&&("offset"==u||"parent"==u)||a&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||Fr(u,s))||l.push(u);return l},Ur=Object.prototype;var Hr=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Ur)};var Vr=function(e,t){return function(n){return e(t(n))}},qr=Vr(Object.keys,Object),Wr=Hr,Gr=qr,Zr=Object.prototype.hasOwnProperty;var Qr=Bt,Yr=_r;var Xr=function(e){return null!=e&&Yr(e.length)&&!Qr(e)},Kr=$r,Jr=function(e){if(!Wr(e))return Gr(e);var t=[];for(var n in Object(e))Zr.call(e,n)&&"constructor"!=n&&t.push(n);return t},eo=Xr;var to=function(e){return eo(e)?Kr(e):Jr(e)},no=ir,ro=to;var oo=function(e,t){return e&&no(t,ro(t),e)};var ao=Rt,io=Hr,lo=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t},so=Object.prototype.hasOwnProperty;var uo=$r,co=function(e){if(!ao(e))return lo(e);var t=io(e),n=[];for(var r in e)("constructor"!=r||!t&&so.call(e,r))&&n.push(r);return n},fo=Xr;var po=function(e){return fo(e)?uo(e,!0):co(e)},ho=ir,mo=po;var go=function(e,t){return e&&ho(t,mo(t),e)},vo={};!function(e,t){var n=_t,r=t&&!t.nodeType&&t,o=r&&e&&!e.nodeType&&e,a=o&&o.exports===r?n.Buffer:void 0,i=a?a.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=i?i(n):new e.constructor(n);return e.copy(r),r}}({get exports(){return vo},set exports(e){vo=e}},vo);var bo=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t};var yo=function(){return[]},wo=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a},xo=yo,_o=Object.prototype.propertyIsEnumerable,ko=Object.getOwnPropertySymbols,Eo=ko?function(e){return null==e?[]:(e=Object(e),wo(ko(e),(function(t){return _o.call(e,t)})))}:xo,So=ir,Co=Eo;var To=function(e,t){return So(e,Co(e),t)};var Oo=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e},Do=Vr(Object.getPrototypeOf,Object),Po=Oo,No=Do,Io=Eo,Ao=yo,Lo=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)Po(t,Io(e)),e=No(e);return t}:Ao,Ro=ir,jo=Lo;var Mo=function(e,t){return Ro(e,jo(e),t)},Fo=Oo,Bo=vr;var zo=function(e,t,n){var r=t(e);return Bo(e)?r:Fo(r,n(e))},$o=zo,Uo=Eo,Ho=to;var Vo=function(e){return $o(e,Ho,Uo)},qo=zo,Wo=Lo,Go=po;var Zo=function(e){return qo(e,Go,Wo)},Qo=rn(_t,"DataView"),Yo=on,Xo=rn(_t,"Promise"),Ko=rn(_t,"Set"),Jo=rn(_t,"WeakMap"),ea=Lt,ta=Vt,na="[object Map]",ra="[object Promise]",oa="[object Set]",aa="[object WeakMap]",ia="[object DataView]",la=ta(Qo),sa=ta(Yo),ua=ta(Xo),ca=ta(Ko),da=ta(Jo),fa=ea;(Qo&&fa(new Qo(new ArrayBuffer(1)))!=ia||Yo&&fa(new Yo)!=na||Xo&&fa(Xo.resolve())!=ra||Ko&&fa(new Ko)!=oa||Jo&&fa(new Jo)!=aa)&&(fa=function(e){var t=ea(e),n="[object Object]"==t?e.constructor:void 0,r=n?ta(n):"";if(r)switch(r){case la:return ia;case sa:return na;case ua:return ra;case ca:return oa;case da:return aa}return t});var pa=fa,ha=Object.prototype.hasOwnProperty;var ma=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&ha.call(e,"index")&&(n.index=e.index,n.input=e.input),n},ga=_t.Uint8Array;var va=function(e){var t=new e.constructor(e.byteLength);return new ga(t).set(new ga(e)),t},ba=va;var ya=function(e,t){var n=t?ba(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)},wa=/\w*$/;var xa=function(e){var t=new e.constructor(e.source,wa.exec(e));return t.lastIndex=e.lastIndex,t},_a=kt?kt.prototype:void 0,ka=_a?_a.valueOf:void 0;var Ea=va;var Sa=va,Ca=ya,Ta=xa,Oa=function(e){return ka?Object(ka.call(e)):{}},Da=function(e,t){var n=t?Ea(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)};var Pa=function(e,t,n){var r=e.constructor;switch(t){case"[object ArrayBuffer]":return Sa(e);case"[object Boolean]":case"[object Date]":return new r(+e);case"[object DataView]":return Ca(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Da(e,n);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(e);case"[object RegExp]":return Ta(e);case"[object Symbol]":return Oa(e)}},Na=Rt,Ia=Object.create,Aa=function(){function e(){}return function(t){if(!Na(t))return{};if(Ia)return Ia(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),La=Do,Ra=Hr;var ja=function(e){return"function"!=typeof e.constructor||Ra(e)?{}:Aa(La(e))},Ma=pa,Fa=sr;var Ba=function(e){return Fa(e)&&"[object Map]"==Ma(e)},za=Or,$a=Dr&&Dr.isMap,Ua=$a?za($a):Ba,Ha=pa,Va=sr;var qa=function(e){return Va(e)&&"[object Set]"==Ha(e)},Wa=Or,Ga=Dr&&Dr.isSet,Za=Ga?Wa(Ga):qa,Qa=Zn,Ya=Qn,Xa=rr,Ka=oo,Ja=go,ei=vo,ti=bo,ni=To,ri=Mo,oi=Vo,ai=Zo,ii=pa,li=ma,si=Pa,ui=ja,ci=vr,di=br,fi=Ua,pi=Rt,hi=Za,mi=to,gi=po,vi="[object Arguments]",bi="[object Function]",yi="[object Object]",wi={};wi[vi]=wi["[object Array]"]=wi["[object ArrayBuffer]"]=wi["[object DataView]"]=wi["[object Boolean]"]=wi["[object Date]"]=wi["[object Float32Array]"]=wi["[object Float64Array]"]=wi["[object Int8Array]"]=wi["[object Int16Array]"]=wi["[object Int32Array]"]=wi["[object Map]"]=wi["[object Number]"]=wi[yi]=wi["[object RegExp]"]=wi["[object Set]"]=wi["[object String]"]=wi["[object Symbol]"]=wi["[object Uint8Array]"]=wi["[object Uint8ClampedArray]"]=wi["[object Uint16Array]"]=wi["[object Uint32Array]"]=!0,wi["[object Error]"]=wi[bi]=wi["[object WeakMap]"]=!1;var xi=function e(t,n,r,o,a,i){var l,s=1&n,u=2&n,c=4&n;if(r&&(l=a?r(t,o,a,i):r(t)),void 0!==l)return l;if(!pi(t))return t;var d=ci(t);if(d){if(l=li(t),!s)return ti(t,l)}else{var f=ii(t),p=f==bi||"[object GeneratorFunction]"==f;if(di(t))return ei(t,s);if(f==yi||f==vi||p&&!a){if(l=u||p?{}:ui(t),!s)return u?ri(t,Ja(l,t)):ni(t,Ka(l,t))}else{if(!wi[f])return a?t:{};l=si(t,f,s)}}i||(i=new Qa);var h=i.get(t);if(h)return h;i.set(t,l),hi(t)?t.forEach((function(o){l.add(e(o,n,r,o,t,i))})):fi(t)&&t.forEach((function(o,a){l.set(a,e(o,n,r,a,t,i))}));var m=d?void 0:(c?u?ai:oi:u?gi:mi)(t);return Ya(m||t,(function(o,a){m&&(o=t[a=o]),Xa(l,a,e(o,n,r,a,t,i))})),l},_i=Lt,ki=sr;var Ei=function(e){return"symbol"==typeof e||ki(e)&&"[object Symbol]"==_i(e)},Si=vr,Ci=Ei,Ti=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Oi=/^\w*$/;var Di=function(e,t){if(Si(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Ci(e))||(Oi.test(e)||!Ti.test(e)||null!=t&&e in Object(t))},Pi=Mn;function Ni(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(Ni.Cache||Pi),n}Ni.Cache=Pi;var Ii=Ni;var Ai=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Li=/\\(\\)?/g,Ri=function(e){var t=Ii(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(Ai,(function(e,n,r,o){t.push(r?o.replace(Li,"$1"):n||e)})),t})),ji=Xe,Mi=vr,Fi=Ei,Bi=kt?kt.prototype:void 0,zi=Bi?Bi.toString:void 0;var $i=function e(t){if("string"==typeof t)return t;if(Mi(t))return ji(t,e)+"";if(Fi(t))return zi?zi.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n},Ui=$i;var Hi=function(e){return null==e?"":Ui(e)},Vi=vr,qi=Di,Wi=Ri,Gi=Hi;var Zi=function(e,t){return Vi(e)?e:qi(e,t)?[e]:Wi(Gi(e))};var Qi=Ei;var Yi=function(e){if("string"==typeof e||Qi(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t},Xi=Zi,Ki=Yi;var Ji=function(e,t){for(var n=0,r=(t=Xi(t,e)).length;null!=e&&n<r;)e=e[Ki(t[n++])];return n&&n==r?e:void 0};var el=Ji,tl=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r<o;)a[r]=e[r+t];return a};var nl=Zi,rl=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0},ol=function(e,t){return t.length<2?e:el(e,tl(t,0,-1))},al=Yi;var il=function(e,t){return t=nl(t,e),null==(e=ol(e,t))||delete e[al(rl(t))]},ll=Lt,sl=Do,ul=sr,cl=Function.prototype,dl=Object.prototype,fl=cl.toString,pl=dl.hasOwnProperty,hl=fl.call(Object);var ml=function(e){if(!ul(e)||"[object Object]"!=ll(e))return!1;var t=sl(e);if(null===t)return!0;var n=pl.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&fl.call(n)==hl};var gl=function(e){return ml(e)?void 0:e},vl=gr,bl=vr,yl=kt?kt.isConcatSpreadable:void 0;var wl=Oo,xl=function(e){return bl(e)||vl(e)||!!(yl&&e&&e[yl])};var _l=function e(t,n,r,o,a){var i=-1,l=t.length;for(r||(r=xl),a||(a=[]);++i<l;){var s=t[i];n>0&&r(s)?n>1?e(s,n-1,r,o,a):wl(a,s):o||(a[a.length]=s)}return a},kl=_l;var El=function(e){return(null==e?0:e.length)?kl(e,1):[]};var Sl=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)},Cl=Math.max;var Tl=function(e,t,n){return t=Cl(void 0===t?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=Cl(r.length-t,0),i=Array(a);++o<a;)i[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=n(i),Sl(e,this,l)}};var Ol=function(e){return function(){return e}},Dl=Xn,Pl=Dl?function(e,t){return Dl(e,"toString",{configurable:!0,enumerable:!1,value:Ol(t),writable:!0})}:function(e){return e},Nl=Date.now;var Il=function(e){var t=0,n=0;return function(){var r=Nl(),o=16-(r-n);if(n=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}(Pl),Al=El,Ll=Tl,Rl=Il;var jl=function(e){return Rl(Ll(e,void 0,Al),e+"")},Ml=Xe,Fl=xi,Bl=il,zl=Zi,$l=ir,Ul=gl,Hl=Zo,Vl=jl((function(e,t){var n={};if(null==e)return n;var r=!1;t=Ml(t,(function(t){return t=zl(t,e),r||(r=t.length>1),t})),$l(e,Hl(e),n),r&&(n=Fl(n,7,Ul));for(var o=t.length;o--;)Bl(n,t[o]);return n})),ql=rr,Wl=Zi,Gl=xr,Zl=Rt,Ql=Yi;var Yl=Ji,Xl=function(e,t,n,r){if(!Zl(e))return e;for(var o=-1,a=(t=Wl(t,e)).length,i=a-1,l=e;null!=l&&++o<a;){var s=Ql(t[o]),u=n;if("__proto__"===s||"constructor"===s||"prototype"===s)return e;if(o!=i){var c=l[s];void 0===(u=r?r(c,s,l):void 0)&&(u=Zl(c)?c:Gl(t[o+1])?[]:{})}ql(l,s,u),l=l[s]}return e},Kl=Zi;var Jl=Zi,es=gr,ts=vr,ns=xr,rs=_r,os=Yi;var as=function(e,t){return null!=e&&t in Object(e)},is=function(e,t,n){for(var r=-1,o=(t=Jl(t,e)).length,a=!1;++r<o;){var i=os(t[r]);if(!(a=null!=e&&n(e,i)))break;e=e[i]}return a||++r!=o?a:!!(o=null==e?0:e.length)&&rs(o)&&ns(i,o)&&(ts(e)||es(e))};var ls=function(e,t,n){for(var r=-1,o=t.length,a={};++r<o;){var i=t[r],l=Yl(e,i);n(l,i)&&Xl(a,Kl(i,e),l)}return a},ss=function(e,t){return null!=e&&is(e,t,as)};var us=function(e,t){return ls(e,t,(function(t,n){return ss(e,n)}))},cs=jl((function(e,t){return null==e?{}:us(e,t)}));const ds=(e,t)=>Object.fromEntries((Array.isArray(e)?e:Object.keys(e)).map(((e,n)=>[e,t(e,n)]))),fs=["xs","sm","md","lg","xl"],ps=["display1","display2","display3","display4","h1","h2","h3","h4","h5","h6","subtitle1","subtitle2","subtitle3","subtitle4","body1","body2","body3","label1","label2"],hs={h1:["h1"],h2:["h2"],h3:["h3"],h4:["h4"],h5:["h5"],h6:["h6"],body1:["body"],label1:["label"]},ms=["fontSize","fontWeight","lineHeight"],gs={...ds(ps,(e=>`lsd-typography--${e}`)),root:"lsd-typography",primary:"lsd-typography--primary",secondary:"lsd-typography--secondary",serif:"lsd-typography--serif",sansSerif:"lsd-typography--sans-serif",monospace:"lsd-typography--monospace"},vs=["genericFontFamily"],bs=({genericFontFamily:e})=>({className:Qe("serif"===e&&gs.serif,"monospace"===e&&gs.monospace,"sans-serif"===e&&gs.sansSerif)}),ys=e=>cs(e,vs),ws=e=>Vl(e,vs),xs={root:"lsd-icon",small:"lsd-icon--small",filled:"lsd-icon--filled",stroked:"lsd-icon--stroked",primary:"lsd-icon--primary",secondary:"lsd-icon--secondary"},_s=(e,t)=>{const n=({color:n,size:r="small",className:o,...a})=>{const i=bs(a);return We(e,{className:Qe(i.className,o,xs.root,xs[r],n&&xs[n],(null==t?void 0:t.filled)&&xs.filled,(null==t?void 0:t.stroked)&&xs.stroked),...ws(a)})};return n.displayName=e.displayName,n.classes=xs,n},ks=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.6666 7.58334H7.58325V11.6667H6.41659V7.58334H2.33325V6.41668H6.41659V2.33334H7.58325V6.41668H11.6666V7.58334Z",fill:"black"})})),{filled:!0}),Es=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M10.5 5.66125L9.6775 4.83875L7 7.51041L4.3225 4.83874L3.5 5.66125L7 9.16125L10.5 5.66125Z",fill:"black"})})),{filled:!0}),Ss=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M6.99992 2.33334L6.17742 3.15584L9.43242 6.41668H2.33325V7.58334H9.43242L6.17742 10.8442L6.99992 11.6667L11.6666 7.00001L6.99992 2.33334Z",fill:"black"})})),{filled:!0}),Cs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M3.5 8.33875L4.3225 9.16125L7 6.48959L9.6775 9.16125L10.5 8.33875L7 4.83875L3.5 8.33875Z",fill:"black"})})),{filled:!0}),Ts=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.91667 1.75H11.0833C11.725 1.75 12.25 2.275 12.25 2.91667V11.0833C12.25 11.725 11.725 12.25 11.0833 12.25H2.91667C2.275 12.25 1.75 11.725 1.75 11.0833V2.91667C1.75 2.275 2.275 1.75 2.91667 1.75ZM9.68333 4.43333L10.5 5.25L5.83333 9.91667L3.5 7.58333L4.31667 6.76667L5.83333 8.28333L9.68333 4.43333Z",fill:"black"})})),{filled:!0}),Os=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0833 2.91667V11.0833H2.91667V2.91667H11.0833ZM11.0833 1.75H2.91667C2.275 1.75 1.75 2.275 1.75 2.91667V11.0833C1.75 11.725 2.275 12.25 2.91667 12.25H11.0833C11.725 12.25 12.25 11.725 12.25 11.0833V2.91667C12.25 2.275 11.725 1.75 11.0833 1.75Z",fill:"black"})})),{filled:!0}),Ds=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.25009 9.43247L2.81759 6.99997L1.98926 7.82247L5.25009 11.0833L12.2501 4.0833L11.4276 3.2608L5.25009 9.43247Z",fill:"black"})})),{filled:!0}),Ps=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0834 3.73916L10.2609 2.91666L7.00008 6.17749L3.73925 2.91666L2.91675 3.73916L6.17758 6.99999L2.91675 10.2608L3.73925 11.0833L7.00008 7.82249L10.2609 11.0833L11.0834 10.2608L7.82258 6.99999L11.0834 3.73916Z",fill:"black"})})),{filled:!0}),Ns=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.00008 1.16666C3.78008 1.16666 1.16675 3.77999 1.16675 6.99999C1.16675 10.22 3.78008 12.8333 7.00008 12.8333C10.2201 12.8333 12.8334 10.22 12.8334 6.99999C12.8334 3.77999 10.2201 1.16666 7.00008 1.16666ZM6.41675 9.91666V8.74999H7.58342V9.91666H6.41675ZM6.41675 4.08332V7.58332H7.58342V4.08332H6.41675Z",fill:"black"})})),{filled:!0}),Is=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.34925 3.50001L6.51591 4.66668H11.6667V10.5H2.33341V3.50001H5.34925ZM5.83341 2.33334H2.33341C1.69175 2.33334 1.17258 2.85834 1.17258 3.50001L1.16675 10.5C1.16675 11.1417 1.69175 11.6667 2.33341 11.6667H11.6667C12.3084 11.6667 12.8334 11.1417 12.8334 10.5V4.66668C12.8334 4.02501 12.3084 3.50001 11.6667 3.50001H7.00008L5.83341 2.33334Z",fill:"black"})})),{filled:!0}),As=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M11.0833 4.08333V6.41667H3.98417L6.0725 4.3225L5.25 3.5L1.75 7L5.25 10.5L6.0725 9.6775L3.98417 7.58333H12.25V4.08333H11.0833Z",fill:"black"})})),{filled:!0}),Ls=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.75 4.66667V3.5H12.25V4.66667H1.75ZM1.75 7.58333H12.25V6.41667H1.75V7.58333ZM1.75 10.5H12.25V9.33333H1.75V10.5Z",fill:"black"})})),{filled:!0}),Rs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M3.49992 5.83334C2.85825 5.83334 2.33325 6.35834 2.33325 7.00001C2.33325 7.64168 2.85825 8.16668 3.49992 8.16668C4.14159 8.16668 4.66659 7.64168 4.66659 7.00001C4.66659 6.35834 4.14159 5.83334 3.49992 5.83334ZM10.4999 5.83334C9.85825 5.83334 9.33325 6.35834 9.33325 7.00001C9.33325 7.64168 9.85825 8.16668 10.4999 8.16668C11.1416 8.16668 11.6666 7.64168 11.6666 7.00001C11.6666 6.35834 11.1416 5.83334 10.4999 5.83334ZM5.83325 7.00001C5.83325 6.35834 6.35825 5.83334 6.99992 5.83334C7.64159 5.83334 8.16659 6.35834 8.16659 7.00001C8.16659 7.64168 7.64159 8.16668 6.99992 8.16668C6.35825 8.16668 5.83325 7.64168 5.83325 7.00001Z",fill:"black"})})),{filled:!0}),js=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M9.16137 4.3225L8.33887 3.5L4.83887 7L8.33887 10.5L9.16137 9.6775L6.4897 7L9.16137 4.3225Z",fill:"black"})})),{filled:!0}),Ms=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M5.66137 3.5L4.83887 4.3225L7.51053 7L4.83887 9.6775L5.66137 10.5L9.16137 7L5.66137 3.5Z",fill:"black"})})),{filled:!0}),Fs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.61 7.74083L11.9525 11.0833L11.0833 11.9525L7.74083 8.61C7.11667 9.05917 6.36417 9.33333 5.54167 9.33333C3.4475 9.33333 1.75 7.63583 1.75 5.54167C1.75 3.4475 3.4475 1.75 5.54167 1.75C7.63583 1.75 9.33333 3.4475 9.33333 5.54167C9.33333 6.36417 9.05917 7.11667 8.61 7.74083ZM5.54167 2.91667C4.08917 2.91667 2.91667 4.08917 2.91667 5.54167C2.91667 6.99417 4.08917 8.16667 5.54167 8.16667C6.99417 8.16667 8.16667 6.99417 8.16667 5.54167C8.16667 4.08917 6.99417 2.91667 5.54167 2.91667Z",fill:"black"})})),{filled:!0}),Bs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.79287 3.5H2.99998V2.5H11.5V11H10.5V4.20711L3.35353 11.3536L2.64642 10.6464L9.79287 3.5Z",fill:"black"})})),{filled:!0}),zs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M7.0013 1.16669C3.7813 1.16669 1.16797 3.78002 1.16797 7.00002C1.16797 10.22 3.7813 12.8334 7.0013 12.8334C10.2213 12.8334 12.8346 10.22 12.8346 7.00002C12.8346 3.78002 10.2213 1.16669 7.0013 1.16669ZM7.0013 11.6667C4.42297 11.6667 2.33464 9.57835 2.33464 7.00002C2.33464 4.42169 4.42297 2.33335 7.0013 2.33335C9.57964 2.33335 11.668 4.42169 11.668 7.00002C11.668 9.57835 9.57964 11.6667 7.0013 11.6667Z",fill:"black"})})),{filled:!0}),$s=_s((e=>Ge("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:[We("path",{d:"M7.0013 1.16669C3.7813 1.16669 1.16797 3.78002 1.16797 7.00002C1.16797 10.22 3.7813 12.8334 7.0013 12.8334C10.2213 12.8334 12.8346 10.22 12.8346 7.00002C12.8346 3.78002 10.2213 1.16669 7.0013 1.16669ZM7.0013 11.6667C4.42297 11.6667 2.33464 9.57835 2.33464 7.00002C2.33464 4.42169 4.42297 2.33335 7.0013 2.33335C9.57964 2.33335 11.668 4.42169 11.668 7.00002C11.668 9.57835 9.57964 11.6667 7.0013 11.6667Z",fill:"black"}),We("path",{d:"M7.0013 9.91669C8.61213 9.91669 9.91797 8.61085 9.91797 7.00002C9.91797 5.38919 8.61213 4.08335 7.0013 4.08335C5.39047 4.08335 4.08464 5.38919 4.08464 7.00002C4.08464 8.61085 5.39047 9.91669 7.0013 9.91669Z",fill:"black"})]})),{filled:!0}),Us=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M11.0833 2.33332H10.5V1.16666H9.33333V2.33332H4.66667V1.16666H3.5V2.33332H2.91667C2.26917 2.33332 1.75 2.85832 1.75 3.49999V11.6667C1.75 12.3083 2.26917 12.8333 2.91667 12.8333H11.0833C11.725 12.8333 12.25 12.3083 12.25 11.6667V3.49999C12.25 2.85832 11.725 2.33332 11.0833 2.33332ZM11.0833 11.6667H2.91667V5.24999H11.0833V11.6667ZM3.79167 7.58332C3.79167 6.77832 4.445 6.12499 5.25 6.12499C6.055 6.12499 6.70833 6.77832 6.70833 7.58332C6.70833 8.38832 6.055 9.04166 5.25 9.04166C4.445 9.04166 3.79167 8.38832 3.79167 7.58332Z",fill:"black"})})),{filled:!0}),Hs=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{d:"M2.32812 7.58329V6.41663H11.6581V7.58329H2.32812Z",fill:"black"})})),{filled:!0}),Vs=({color:e,variant:t="body1",component:n,className:r,children:o,...a})=>{const i=bs(a);return We(n??{h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",label1:"label",label2:"label"}[t]??"span",{className:Qe(i.className,gs.root,gs[t],e&&gs[e],r),...ws(a),children:o})};Vs.classes=gs;const qs={root:"lsd-dropdown-item",icon:"lsd-dropdown-item__icon",label:"lsd-dropdown-item__label",error:"lsd-dropdown-item--error",disabled:"lsd-dropdown-item--disabled",selected:"lsd-dropdown-item--selected",withIcon:"lsd-dropdown-item--with-icon",small:"lsd-dropdown-item--small",medium:"lsd-dropdown-item--medium",large:"lsd-dropdown-item--large"},Ws=({label:e,size:t="large",withIcon:n,selected:r,disabled:o,className:a,...i})=>{const l=bs(i),s={color:"primary",className:qs.icon};return Ge("div",{role:"option","aria-selected":r?"true":"false",...ws(i),className:Qe(l.className,a,qs.root,qs[t],n&&qs.withIcon,o&&qs.disabled),children:[n&&We(r?Ts:Os,{...s}),We(Vs,{variant:"large"===t?"label1":"label2",component:"span",className:qs.label,children:e})]})};function Gs(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function Zs(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}Ws.classes=qs;var Qs=["mousedown","touchstart"];const Ys=function(e,t,n){void 0===n&&(n=Qs);var o=r.useRef(t);r.useEffect((function(){o.current=t}),[t]),r.useEffect((function(){for(var t=function(t){var n=e.current;n&&!n.contains(t.target)&&o.current(t)},r=0,a=n;r<a.length;r++){var i=a[r];Gs(document,i,t)}return function(){for(var e=0,r=n;e<r.length;e++){var o=r[e];Zs(document,o,t)}}}),[n,e])};const Xs=function(e){r.useEffect(e,[])};const Ks=function(e){var t=r.useRef(e);t.current=e,Xs((function(){return function(){return t.current()}}))};const Js=function(e){var t=r.useRef(0),n=r.useState(e),o=n[0],a=n[1],i=r.useCallback((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){a(e)}))}),[]);return Ks((function(){cancelAnimationFrame(t.current)})),[o,i]};const eu=function(e){var t=Js({x:0,y:0}),n=t[0],o=t[1];return r.useEffect((function(){var t=function(){e.current&&o({x:e.current.scrollLeft,y:e.current.scrollTop})};return e.current&&Gs(e.current,"scroll",t,{capture:!1,passive:!0}),function(){e.current&&Zs(e.current,"scroll",t)}}),[e]),n},tu={root:"lsd-dropdown-menu",open:"lsd-dropdown-menu--open",large:"lsd-dropdown-menu--large",medium:"lsd-dropdown-menu--medium",small:"lsd-dropdown-menu--small"},nu=(e,t)=>{const[n,o]=r.useState({});return r.useEffect((()=>{const{width:t,height:n,top:r,left:a}=e.current.getBoundingClientRect();o({left:a+window.scrollX,width:t,top:r+n+window.scrollY})}),[t]),n},ru=({size:e="large",open:t,label:n,handleRef:o,onClose:a,children:i,...l})=>{const s=bs(l),u=r.useRef(null);Ys(u,(e=>{t&&!e.composedPath().includes(o.current)&&a&&a()}));const c=nu(o,t);return We("ul",{...ws(l),ref:u,role:"listbox","aria-label":n,style:{...c,...l.style??{}},className:Qe(s.className,l.className,tu.root,tu[e],t&&tu.open),children:i})};ru.classes=tu;const ou=r.createContext({initialized:!1}),au=({id:e,children:t})=>{var n;return(null==(n=r.useContext(ou))?void 0:n.initialized)??!1?We(iu,{id:e,children:t}):We(qe,{})},iu=({id:e,children:t})=>{const n=(({parentId:e})=>{const t=r.useRef();return"undefined"==typeof window||t.current||(t.current=document.createElement("div")),r.useEffect((()=>{var n;if("undefined"==typeof window||!t.current)return;const r=document.querySelectorAll(`#${e}`);return null==(n=r[r.length-1])||n.appendChild(t.current),()=>{var n;try{null==(n=document.getElementById(e))||n.removeChild(t.current)}catch(r){}}}),[e,t.current]),t.current})({parentId:"lsd-presentation"});return n?o.createPortal(t,n,e):We(qe,{})},lu={root:"lsd-autocomplete",label:"lsd-autocomplete__label",inputContainer:"lsd-autocomplete__input-container",input:"lsd-autocomplete__input",icon:"lsd-autocomplete__icon",dropdownItemPlaceholder:"lsd-autocomplete__dropdown-item-placeholder",disabled:"lsd-autocomplete--disabled",error:"lsd-autocomplete--error",large:"lsd-autocomplete--large",medium:"lsd-autocomplete--medium",small:"lsd-autocomplete--small",withIcon:"lsd-autocomplete--with-icon",outlined:"lsd-autocomplete--outlined",underlined:"lsd-autocomplete--underlined"},su=({label:e,size:t="large",withIcon:n=!1,error:o=!1,disabled:a=!1,children:i,value:l,defaultValue:s,placeholder:u,onChange:c,options:d=[],inputProps:f={},variant:p="outlined",...h})=>{const m=bs(h),g=r.useRef(null),v=r.useRef(null),b=Ye({defaultValue:s,value:l,onChange:c,ref:g}),y=b.value,[w,x]=r.useState(!1),[_,k]=r.useState(),E=e=>{x(!1),k(e),b.setValue(e)},S=r.useMemo((()=>b.filled?d.filter((e=>new RegExp(`^${b.value}.+`,"i").test(e))).map((e=>[e,e.slice(0,y.length),e.slice(y.length)])):d),[b.value,d]);r.useEffect((()=>{!_&&b.filled&&!w&&x(!0)}),[b.value,_,w]);const C=!a&&w&&S.length>0&&b.filled,T=(null==f?void 0:f.id)??(h.id||"autocomplete")+"-input";return Ge("div",{ref:v,...ws(h),className:Qe(h.className,m.className,lu.root,lu[t],a&&lu.disabled,n&&lu.withIcon,"outlined"===p?lu.outlined:lu.underlined),children:[e&&We(Vs,{htmlFor:T,className:lu.label,variant:"label2",component:"label",children:e}),Ge("div",{className:lu.inputContainer,children:[We("input",{id:T,ref:g,value:b.value,placeholder:u,onChange:b.onChange,disabled:a,onFocus:()=>x(!0),...f,className:Qe(f.className,lu.input,o&&lu.error)}),n&&b.value?We("span",{className:lu.icon,onClick:()=>b.setValue(""),children:We(Ps,{color:"primary"})}):n&&!b.value?We("span",{className:lu.icon,children:We(Fs,{color:"primary"})}):null]}),We(au,{id:"autocomplete",children:We(ru,{handleRef:v,open:C,onClose:()=>x(!1),size:t,...ys(h),children:S.map(((e,n)=>We(Ws,{size:t,tabIndex:0,label:Ge(qe,{children:[e[1],We("span",{className:lu.dropdownItemPlaceholder,children:e[2]})]}),onClick:()=>E(e[0]),onKeyDown:t=>"Enter"===t.key&&E(e[0])},n)))})})]})};su.classes=lu;const uu={root:"lsd-badge",label:"lsd-badge__label",outlined:"lsd-badge--outlined",filled:"lsd-badge--filled",disabled:"lsd-badge--disabled",small:"lsd-badge--small",large:"lsd-badge--large"},cu=({variant:e="outlined",disabled:t,size:n="large",icon:r,iconDirection:o="left",children:a,...i})=>{const l=bs(i);return Ge("div",{"aria-label":a,...ws(i),className:Qe(i.className,l.className,uu.root,uu[e],t&&uu.disabled,uu[n]),children:["left"===o&&r,We(Vs,{component:"span",variant:"small"===n?"label2":"label1",className:uu.label,children:a}),"right"===o&&r]})};cu.classes=uu;const du={root:"lsd-breadcrumb-item",outlined:"lsd-breadcrumb-item--outlined",itemLink:"lsd-breadcrumb-item__link",large:"lsd-breadcrumb-item--large",small:"lsd-breadcrumb-item--small"},fu=({size:e="large",label:t,link:n,linkComponent:r=(e=>We("a",{...e,children:e.children})),outlined:o,selected:a,ellipsisRef:i,onClick:l,className:s,...u})=>{const c=bs(u);return We("li",{...ws(u),className:Qe(c.className,du.root,du[e],s),"aria-selected":a?"true":"false",onClick:l,ref:i,children:We(r,{href:n,className:Qe(du.itemLink,o&&du.outlined),children:We(Vs,{color:"primary",component:"span",variant:"large"===e?"label1":"label2",children:t})})})};fu.classes=du;const pu={root:"lsd-breadcrumb",list:"lsd-breadcrumb__list",listBox:"lsd-breadcrumb__dropdown-menu",open:"lsd-breadcrumb--open",disabled:"lsd-breadcrumb--disabled"},hu=({size:e="large",disabled:t=!1,ellipsis:n=!1,maxItems:o,value:a=[],onChange:i,options:l=[],...s})=>{const u=bs(s),c=r.useRef(null),[d,f]=r.useState(!1);o=Math.max(2,Math.min(o||2,l.length));const[p,...h]=l,[m,g]=n?[h.slice(0,h.length-o+1),h.slice(h.length-o+1)]:[[],h],v=t=>t.map(((t,n)=>We(fu,{outlined:n===g.length-1&&t!==p,label:t.value,link:t.link,linkComponent:null==t?void 0:t.linkComponent,size:e},n)));return r.useEffect((()=>{t&&d&&f(!1)}),[d,t]),Ge("div",{...ws(s),className:Qe(s.className,u.className,pu.root,t&&pu.disabled,d&&pu.open),children:[Ge("ul",{className:pu.list,children:[p&&v([p]),m.length>0&&We(fu,{ellipsisRef:c,label:"...",onClick:()=>{!t&&f((e=>!e))},size:e,...ys(s)}),v(g)]}),null!=(null==c?void 0:c.current)&&n&&o&&We(au,{id:"breadcrumb",children:We(ru,{handleRef:c,open:d,onClose:()=>f(!1),className:Qe(pu.listBox),size:e,genericFontFamily:s.genericFontFamily,...ys(s),children:m.map(((e,t)=>We(fu,{label:e.value,link:e.link,className:du.itemLink,linkComponent:null==e?void 0:e.linkComponent},t)))})})]})};hu.classes=pu;const mu=r.createContext(null),gu={root:"lsd-button",disabled:"lsd-button--disabled",large:"lsd-button--large",medium:"lsd-button--medium",small:"lsd-button--small",withIcon:"lsd-button--with-icon",outlined:"lsd-button--outlined",filled:"lsd-button--filled",text:"lsd-button__text",icon:"lsd-button__icon"},vu=({size:e,variant:t,disabled:n,icon:o,children:a,...i})=>{const l=r.useContext(mu),s=bs(i),u=bs(l||{}),c=s.className||u.className,d=e??(null==l?void 0:l.size)??"medium",f=t??(null==l?void 0:l.variant)??"outlined",p=n??(null==l?void 0:l.disabled)??!1;return We(qe,{children:Ge("button",{...ws(i),className:Qe(c,i.className,gu.root,gu[d],gu[f],p&&gu.disabled,o&&gu.withIcon),children:[We(Vs,{component:"span",className:gu.text,variant:"small"===d?"label2":"label1",children:a}),o&&We("span",{className:gu.icon,children:o})]})})};vu.classes=gu;const bu={root:"lsd-card",small:"lsd-card--small",medium:"lsd-card--medium",large:"lsd-card--large"},yu=r.createContext(null),wu=({size:e="large",children:t,...n})=>{const r=bs(n);return We(yu.Provider,{value:{size:e},children:We("div",{...ws(n),className:Qe(r.className,bu.root,bu[e]),children:t})})};wu.classes=bu;const xu={root:"lsd-card-body"},_u=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,t.className,xu.root),children:e})};_u.classes=xu;const ku={root:"lsd-card-header",title:"lsd-card-header__title",small:"lsd-card-header--small",medium:"lsd-card-header--medium",large:"lsd-card-header--large"},Eu=({size:e="large",children:t,...n})=>{const o=bs(n),a=r.useContext(yu),i=(null==a?void 0:a.size)??e;return We("div",{...ws(n),className:Qe(o.className,n.className,ku.root,ku[i]),children:We(Vs,{className:ku.title,component:"div",variant:"large"===i?"label1":"label2",children:t})})};Eu.classes=ku;const Su=r.createContext(null),Cu=_s((e=>We("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:We("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.91667 1.75C2.27233 1.75 1.75 2.27233 1.75 2.91667V11.0833C1.75 11.7277 2.27233 12.25 2.91667 12.25H11.0833C11.7277 12.25 12.25 11.7277 12.25 11.0833V2.91667C12.25 2.27233 11.7277 1.75 11.0833 1.75H2.91667ZM9.91667 6.41667H4.08333V7.58333H9.91667V6.41667Z",fill:"black"})})),{filled:!0}),Tu={root:"lsd-checkbox",input:"lsd-checkbox__input",icon:"lsd-checkbox__icon",label:"lsd-checkbox__label",focused:"lsd-checkbox--focused",disabled:"lsd-checkbox--disabled",indeterminate:"lsd-checkbox--indeterminate",large:"lsd-checkbox--large",medium:"lsd-checkbox--medium",small:"lsd-checkbox--small"},Ou=({name:e,size:t="large",onChange:n,checked:o,defaultChecked:a,disabled:i=!1,indeterminate:l=!1,inputProps:s={},children:u,...c})=>{const d=bs(c),f=r.useRef(null),[p,h]=r.useState(!1),m=Ye({value:o,defaultValue:a??!1,onChange:n,ref:f}),g=r.useContext(Su),v=(null==g?void 0:g.size)??t;return r.useEffect((()=>{if(!f.current)return;const e=()=>h(!0),t=()=>h(!1);return f.current.addEventListener("focus",e),f.current.addEventListener("blur",t),()=>{var n,r;null==(n=f.current)||n.removeEventListener("focus",e),null==(r=f.current)||r.removeEventListener("blur",t)}}),[f.current]),Ge(Vs,{color:"primary",variant:"large"===v?"label1":"label2",component:"label","aria-disabled":i?"true":"false",...ws(c),className:Qe(d.className,c.className,Tu.root,Tu[v],p&&Tu.focused,i&&Tu.disabled,l&&Tu.indeterminate),children:[We("input",{ref:f,name:e,type:"checkbox",disabled:i,checked:m.value,onChange:m.onChange,defaultChecked:a,className:Qe(s.className,Tu.input),...s}),l?We(Cu,{color:"primary",focusable:!1}):m.value?We(Ts,{color:"primary",focusable:!1}):We(Os,{color:"primary",focusable:!1}),We("span",{className:Tu.label,children:u})]})};Ou.classes=Tu;const Du={root:"lsd-checkbox-group",label:"lsd-checkbox-group__label"},Pu=({size:e="large",label:t,children:n,...r})=>{const o=bs(r);return We(Su.Provider,{value:{size:e},children:Ge("div",{...ws(r),className:Qe(o.className,r.className,Du.root),children:[We(Vs,{component:"span",variant:"small"===e?"label2":"label1",className:Du.label,...ys(r),children:t}),n]})})};Pu.classes=Du;const Nu={root:"lsd-collapse-header",trigger:"lsd-collapse-header__trigger",label:"lsd-collapse-header__label",icons:"lsd-collapse-header__icons",icon:"lsd-collapse-header__icon",menuIcon:"lsd-collapse-header__menu-icon",open:"lsd-collapse-header--open",disabled:"lsd-collapse-header--disabled",small:"lsd-collapse-header--small",medium:"lsd-collapse-header--medium",large:"lsd-collapse-header--large"},Iu=({label:e,disabled:t=!1,open:n,setOpen:r,size:o="large",onTrigger:a,...i})=>{const l=bs(i);return We("div",{...ws(i),className:Qe(l.className,i.className,Nu.root,Nu[o],t&&Nu.disabled,n&&Nu.open),children:Ge("button",{className:Qe(Nu.trigger),onClick:a,children:[We(Vs,{color:"primary",component:"label",variant:"small"===o?"label2":"label1",className:Nu.label,children:e}),We("div",{className:Nu.icons,children:We(n?Cs:Es,{color:"primary",className:Nu.menuIcon})})]})})};Iu.classes=Nu;const Au={root:"lsd-collapse",content:"lsd-collapse__content",open:"lsd-collapse--open",disabled:"lsd-collapse--disabled"},Lu=({label:e,disabled:t=!1,size:n="large",open:o,children:a,...i})=>{const l=bs(i),s=r.useRef(null),[u,c]=r.useState(o??!1),d=e=>{if(void 0===o)return c(e);i.onChange&&i.onChange(e)};return r.useEffect((()=>{t&&u&&d(!1)}),[t,u,d]),r.useEffect((()=>{void 0!==o&&c(o)}),[o]),Ge("div",{...ws(i),ref:s,className:Qe(l.className,i.className,Au.root,t&&Au.disabled,u&&Au.open),children:[We(Iu,{label:e,open:u,setOpen:c,size:n,onTrigger:()=>!t&&d(!u),disabled:t,...ys(i)}),u&&We("div",{className:Au.content,children:a})]})};Lu.classes=Au;const Ru={root:"lsd-dropdown",label:"lsd-dropdown__label",buttonContainer:"lsd-dropdown__button-container",trigger:"lsd-dropdown__trigger",optionLabel:"lsd-dropdown__option-label",icons:"lsd-dropdown__icons",icon:"lsd-dropdown__icon",menuIcon:"lsd-dropdown__menu-icon",supportingText:"lsd-dropdown__supporting-text",open:"lsd-dropdown--open",error:"lsd-dropdown--error",disabled:"lsd-dropdown--disabled",small:"lsd-dropdown--small",medium:"lsd-dropdown--medium",large:"lsd-dropdown--large",outlined:"lsd-dropdown--outlined",underlined:"lsd-dropdown--underlined"},ju=({label:e,size:t="large",error:n=!1,disabled:o=!1,supportingText:a,triggerLabel:i,value:l=[],onChange:s,options:u=[],multi:c=!1,variant:d="outlined",isOpen:f,onToggle:p,menuProps:h={},...m})=>{const g=bs(m),v=r.useRef(null),b=void 0!==f,[y,w]=r.useState(!1);b&&f!==y&&w(f);const{select:x,isSelected:_,selected:k}=((e,t,{onDone:n,onChange:o,multi:a=!1}={})=>{const i=r.useMemo((()=>Object.fromEntries(e.map((e=>[e.value,e])))),[e]),[l,s]=r.useState(Array.isArray(t)?t:t?[t]:[]),u=r.useMemo((()=>ds(l,(()=>!0))),[l]),c=r.useMemo((()=>l.map((e=>i[e]))),[l,i]);r.useEffect((()=>{o&&s(Array.isArray(t)?t:t?[t]:[])}),[t,o]);const d=e=>"string"==typeof e?e:e.value;return{selected:c,isSelected:e=>!!u[d(e)],select:e=>{const t=d(e),r=a?u[t]?l.filter((e=>e!==t)):[...l,t]:[t];o?o(a?r:r[0]):s(r),!a&&n&&n(a?r:r[0])}}})(u,l,{multi:c,onChange:s,onDone:()=>{w(!1)}}),E=e=>{b?p&&p(e):w(e)};r.useEffect((()=>{o&&y&&!b&&w(!1)}),[y,o,b]);const S=(null==m?void 0:m.id)??(m.id||"dropdown")+"-input";return Ge("div",{ref:v,...ws(m),className:Qe(g.className,m.className,Ru.root,Ru[t],n&&Ru.error,o&&Ru.disabled,y&&Ru.open,"outlined"===d?Ru.outlined:Ru.underlined),children:[e&&We(Vs,{htmlFor:S,className:Ru.label,variant:"label2",component:"label",children:e}),We("div",{className:Ru.buttonContainer,children:Ge("button",{id:S,className:Qe(Ru.trigger),onClick:()=>{o||E(!y)},children:[We(Vs,{color:"primary",component:"label",variant:"large"===t?"label1":"label2",className:Ru.optionLabel,children:k.length>0?k.map((e=>e.name)).join(", "):i}),Ge("div",{className:Ru.icons,children:[n&&We(Ns,{color:"primary",className:Ru.icon}),We(y?Cs:Es,{color:"primary",className:Ru.menuIcon})]})]})}),a&&We(Vs,{variant:"large"===t?"label1":"label2",component:"p",className:Ru.supportingText,children:a}),We(au,{id:"dropdown",children:We(ru,{handleRef:v,open:y,onClose:()=>E(!1),size:t,genericFontFamily:m.genericFontFamily,...h,children:u.map((e=>We(Ws,{size:t,tabIndex:0,onClick:x.bind(null,e),withIcon:c,label:e.name,selected:_(e),onKeyDown:t=>"Enter"===t.key&&x(e)},e.value)))})})]})};ju.classes=Ru;const Mu=r.createContext(null),Fu={root:"lsd-icon-button",outlined:"lsd-icon-button--outlined",filled:"lsd-icon-button--filled",disabled:"lsd-icon-button--disabled",small:"lsd-icon-button--small",medium:"lsd-icon-button--medium",large:"lsd-icon-button--large"},Bu=({size:e,disabled:t,variant:n,children:o,...a})=>{const i=bs(a),l=r.useContext(Mu),s=e??(null==l?void 0:l.size)??"large",u=n??(null==l?void 0:l.variant)??"outlined",c=t??(null==l?void 0:l.disabled)??!1;return We("button",{...ws(a),className:Qe(i.className,a.className,Fu.root,Fu[s],Fu[u],c&&Fu.disabled),children:o})};Bu.classes=Fu;const zu={root:"lsd-icon-button-group",outlined:"lsd-icon-button-group--outlined",filled:"lsd-icon-button-group--filled",disabled:"lsd-icon-button-group--disabled",small:"lsd-icon-button-group--small",medium:"lsd-icon-button-group--medium",large:"lsd-icon-button-group--large"},$u=({size:e="large",disabled:t,variant:n="outlined",children:r,...o})=>{const a=bs(o);return We("div",{...ws(o),className:Qe(a.className,o.className,zu.root,zu[e],zu[n],t&&zu.disabled),children:We(Mu.Provider,{value:{size:e,variant:n,disabled:t},children:r})})};$u.classes=zu;const Uu={root:"lsd-quote",indentedInline:"lsd-quote--indented-inline",parentheses:"lsd-quote--parentheses",text:"lsd-quote__text"},Hu=({mode:e="indented-line",children:t,...n})=>{const r=bs(n);return We(qe,{children:We("div",{...ws(n),className:Qe(r.className,n.className,Uu.root,e&&"parentheses"===e?Uu.parentheses:Uu.indentedInline),children:We(Vs,{color:"primary",component:"label",variant:"label1",children:t})})})};Hu.classes=Uu;const Vu=r.createContext(null),qu={root:"lsd-radio-button",input:"lsd-radio-button__input",label:"lsd-radio-button__label",disabled:"lsd-radio-button--disabled",large:"lsd-radio-button--large",medium:"lsd-radio-button--medium",small:"lsd-radio-button--small"},Wu=({size:e="large",onChange:t,checked:n,defaultChecked:o,disabled:a=!1,value:i,name:l,inputProps:s={},children:u,...c})=>{const d=bs(c),f=r.useRef(null),p=r.useContext(Vu),h=(null==p?void 0:p.size)??e,m=(null==p?void 0:p.name)??l??"",g=p?p.value===i:n,v=Ye({value:g,defaultValue:o??!1,onChange:t,ref:f});return Ge(Vs,{color:"primary",variant:"large"===h?"label1":"label2",component:"label","aria-disabled":a?"true":"false",...ws(c),className:Qe(d.className,c.className,qu.root,qu[h],a&&qu.disabled),children:[We("input",{ref:f,name:m,value:i,type:"radio",checked:v.value,onChange:e=>{p?p.setActiveRadioButton(e.target.value):v.onChange(e)},defaultChecked:o,className:Qe(s.className,qu.input),...s}),v.value?We($s,{color:"primary",focusable:!1}):We(zs,{color:"primary",focusable:!1}),We("span",{className:qu.label,children:u})]})};Wu.classes=qu;const Gu={root:"lsd-radio-button-group",label:"lsd-radio-button-group__label"},Zu=({size:e="large",label:t,value:n,name:o,onChange:a,children:i,...l})=>{const s=bs(l),u=r.useRef(null),[c,d]=r.useState(n);return r.useEffect((()=>d(n)),[n]),We(Vu.Provider,{value:{value:c,setActiveRadioButton:e=>{a?a(e):d(e)},name:o,size:e},children:Ge("div",{ref:u,...ws(l),className:Qe(s.className,l.className,Gu.root),children:[We(Vs,{component:"span",variant:"small"===e?"label2":"label1",className:Gu.label,children:t&&t}),i]})})};Zu.classes=Gu;const Qu=r.createContext(null),Yu={root:"lsd-tab-item",text:"lsd-tab-item--text",icon:"lsd-tab-item--icon",disabled:"lsd-tab-item--disabled",selected:"lsd-tab-item--selected",small:"lsd-tab-item--small",medium:"lsd-tab-item--medium",large:"lsd-tab-item--large",withIcon:"lsd-tab-item--with-icon"},Xu=({name:e,size:t="large",selected:n=!1,inactive:o=!1,icon:a,children:i,...l})=>{const s=bs(l),u=r.useContext(Qu),c=(null==u?void 0:u.size)??t,d=u?u.activeTab===e:n;return Ge("button",{...ws(l),className:Qe(s.className,l.className,Yu.root,Yu[c],d&&Yu.selected,l.disabled&&Yu.disabled,!!a&&Yu.withIcon),onClick:t=>{l.onClick&&l.onClick(t),o||(null==u?void 0:u.setActiveTab)&&u.setActiveTab(e)},children:[We(Vs,{component:"span",className:Yu.text,variant:"small"===c?"label2":"label1",children:i}),a&&We("span",{className:Yu.icon,children:a})]})};Xu.classes=Yu;const Ku={root:"lsd-table-body",toolbar:"lsd-table-body__toolbar",row:"lsd-table-body__row"},Ju=({options:e=[],size:t="large",buttonLabel:n="Button",toolbar:r,children:o,...a})=>{const i=bs(a);return Ge("div",{...ws(a),className:Qe(i.className,a.className,Ku.root),children:[r&&We("div",{className:Qe(Ku.toolbar),children:r}),We("table",{children:o})]})};Ju.classes=Ku;const ec={root:"lsd-table-header"},tc=({size:e="large",children:t,...n})=>{const r=bs(n);return We("div",{...ws(n),className:Qe(r.className,n.className,ec.root),children:t})};tc.classes=ec;const nc={root:"lsd-table",small:"lsd-table--small",medium:"lsd-table--medium",large:"lsd-table--large"},rc=r.createContext(null),oc=()=>r.useContext(rc),ac=({size:e="large",type:t="default",headerOptions:n,header:r,toolbar:o,children:a,...i})=>{const l=bs(i);return We(rc.Provider,{value:{size:e,type:t,headerOptions:n},children:Ge("div",{...ws(i),className:Qe(l.className,nc.root,nc[e]),children:[We(tc,{children:r}),We(Ju,{toolbar:o,options:n,children:a})]})})};ac.classes=nc;const ic={root:"lsd-table-item",large:"lsd-table-item--large",medium:"lsd-table-item--medium",small:"lsd-table-item--small"},lc=({size:e="large",children:t,...n})=>{const r=bs(n),o=oc(),a=(null==o?void 0:o.size)??e;return We("td",{...ws(n),className:Qe(r.className,n.className,ic.root,ic[a]),children:t})};lc.classes=ic;const sc={root:"lsd-table-row"},uc=({size:e="large",type:t="default",children:n,...r})=>{const o=bs(r),a=oc(),i=(null==a?void 0:a.type)??t;return Ge("tr",{...ws(r),className:Qe(o.className,r.className,sc.root),children:["checkbox"===i&&We("td",{className:ic.root,children:We(Ou,{})}),"radio"===i&&We("td",{className:ic.root,children:We(Wu,{value:"1"})}),n]})};uc.classes=sc;const cc=r.createContext(null),dc=(e=0)=>{let t=e-1;return()=>(t++,t)},fc="undefined"==typeof DOMRectReadOnly?null:new DOMRectReadOnly(0,0,0,0),pc=dc(),hc=(e,t)=>{const n=(()=>{const{observe:e,unobserve:t,ready:n}=r.useContext(cc)??{};return r.useMemo((()=>({observe:e,unobserve:t,ready:n})),[e,t,n])})(),o=r.useMemo((()=>t??pc().toString()),[t]),a=((e,t)=>{var n;const o=r.useContext(cc);return(null==(n=null==o?void 0:o.rect)?void 0:n[e])??t})(o)??fc;return r.useEffect((()=>{if(n&&n.ready)return e.current&&n.observe(o,e),()=>{n.unobserve(o)}}),[n.ready,e.current]),a},mc=(e,t,n,r)=>-1===e?t:n-(r+t),gc=(e,t)=>{var n;const o=hc(e),[a,i]=r.useState((null==(n=null==e?void 0:e.current)?void 0:n.scrollLeft)??0),[l,s]=r.useState(0),[u,c]=r.useState(0),d=r.useRef(null);((e,t,n,o,a)=>{const i=r.useMemo((()=>"string"==typeof e?e:e()),[]),l=r.useMemo((()=>"function"==typeof t?t():t),[t]);r.useEffect((()=>{if((null==l?void 0:l.addEventListener)&&(null==l?void 0:l.removeEventListener))return l.addEventListener(i,n,o),()=>{l.removeEventListener(i,n,o)}}),[i,l])})("scroll",e.current,(e=>{i(e.target.scrollLeft)}),{passive:!0});r.useEffect((()=>{if(d.current&&clearTimeout(d.current),!e.current)return;const{scrollLeft:t,scrollWidth:n,clientWidth:r}=e.current;c(mc(1,t,n,r)),s(mc(-1,t,n,r))}),[o,a,null==t?void 0:t.deps]);const f=(n,r)=>{const{clientWidth:o,scrollLeft:a}=e.current,i=Array.from(e.current.childNodes).find((e=>e.getBoundingClientRect().x>=0)),l=Math.max(r??o/3,i?i.clientWidth:0);e.current.scrollTo({behavior:(null==t?void 0:t.scrollBehavior)??"smooth",left:a+l*n})};return r.useMemo((()=>({right:u,left:l,toRight:f.bind(null,1),toLeft:f.bind(null,-1)})),[u,l])},vc={root:"lsd-tabs",fullWidth:"lsd-tabs--full-width",withScrollControls:"lsd-tabs--with-scroll-controls",leftScrollControl:"lsd-tabs__left-scroll-control",rightScrollControl:"lsd-tabs__right-scroll-control"},bc=({size:e="large",fullWidth:t=!1,scrollControls:n=!1,onChange:o,activeTab:a,children:i,...l})=>{const s=bs(l),u=r.useRef(null),[c,d]=r.useState(a);r.useEffect((()=>d(a)),[a]);const f=gc(u,{scrollBehavior:"smooth",deps:[i]}),p=0!==f.left||0!==f.right;return We(Qu.Provider,{value:{activeTab:c,setActiveTab:e=>{o?o(e):d(e)},size:e},children:Ge("div",{ref:u,...ws(l),className:Qe(s.className,l.className,vc.root,t&&vc.fullWidth,n&&p&&vc.withScrollControls),children:[n&&p&&We(Xu,{inactive:!0,name:"Prev",disabled:0===f.left,onClick:()=>f.toLeft(),className:vc.leftScrollControl,children:We(js,{color:"primary"})}),i,n&&p&&We(Xu,{inactive:!0,name:"Next",disabled:0===f.right,onClick:()=>f.toRight(),className:vc.rightScrollControl,children:We(Ms,{color:"primary"})})]})})};bc.classes=vc;const yc={root:"lsd-tag",label:"lsd-tag__label",outlined:"lsd-tag--outlined",filled:"lsd-tag--filled",disabled:"lsd-tag--disabled",small:"lsd-badge--small",large:"lsd-badge--large"},wc=({variant:e="outlined",disabled:t,icon:n,iconDirection:r="left",children:o,size:a="large",...i})=>{const l=bs(i);return Ge("div",{"aria-label":o,...ws(i),className:Qe(l.className,i.className,yc.root,yc[e],t&&yc.disabled,yc[a]),children:["left"===r&&n,We(Vs,{variant:"small"===a?"label2":"label1",className:yc.label,component:"span",children:o}),"right"===r&&n]})};wc.classes=yc;var xc=Hi,_c=0;var kc=function(e){var t=++_c;return xc(e)+t};const Ec={root:"lsd-text-field",inputContainer:"lsd-text-field__input-container",label:"lsd-text-field__label",input:"lsd-text-field__input",icon:"lsd-text-field__icon",clearButton:"lsd-text-field__clear-button",supportingText:"lsd-text-field__supporting-text",disabled:"lsd-text-field--disabled",error:"lsd-text-field--error",large:"lsd-text-field--large",medium:"lsd-text-field--medium",small:"lsd-text-field--small",outlined:"lsd-text-field--outlined",underlined:"lsd-text-field--underlined"},Sc=({size:e="large",label:t,icon:n,error:o=!1,errorIcon:a=!1,clearButton:i,supportingText:l,children:s,value:u,placeholder:c,defaultValue:d,disabled:f,onChange:p,inputProps:h={},labelProps:m={},variant:g="underlined",...v})=>{const b=bs(v),y=r.useRef(null),w=Ye({defaultValue:d,value:u,onChange:p,ref:y}),x=h.id||kc("TextField-");return Ge("div",{"aria-disabled":f?"true":"false",...ws(v),className:Qe(b.className,v.className,Ec.root,Ec[e],f&&Ec.disabled,o&&Ec.error,"outlined"===g?Ec.outlined:Ec.underlined),children:[t&&We(Vs,{variant:"label2",component:"label",htmlFor:x,...m,className:Qe(Ec.label,m.className),children:t}),Ge("div",{className:Ec.inputContainer,children:[We("input",{id:x,placeholder:c,ref:y,value:w.value,onChange:w.onChange,...h,className:Qe(h.className,Ec.input)}),o&&a?We(Ns,{color:"primary",className:Ec.icon}):i&&w.filled?We(Bu,{disabled:f,onClick:()=>!f&&w.setValue(""),"aria-label":"clear",className:Ec.clearButton,children:We(Ps,{color:"primary",className:Ec.icon})}):n]}),l&&We("div",{className:Qe(Ec.supportingText),children:We(Vs,{variant:"large"===e?"label1":"label2",component:"p",children:l})})]})};Sc.classes=Ec;const Cc={vars:{lsd:(...e)=>`--${["lsd",...e].join("-")}`,typography:(e,t)=>Cc.vars.lsd(e,t),color:(e,t)=>Cc.vars.lsd(e,t),wrap:e=>`var(${e})`},define:(e,t)=>`${e}: ${t};`},Tc=(()=>{const e={};return t=>{const n=t.name;return e[n]&&"undefined"!=typeof window||(e[n]=(e=>{const t=[],n=[],r=fs.map((()=>[])),o=fs.map((()=>[]));ps.forEach((n=>{ms.forEach((r=>{var o;const a=(null==(o=e.typography[n][r])?void 0:o.toString())??"unset";t.push(Cc.define(Cc.vars.typography(n,r),a))}))})),t.push(Cc.define(Cc.vars.lsd("typography","generic-font-family"),e.typographyGlobal.genericFontFamily)),fs.forEach(((t,n)=>{ps.forEach((r=>{ms.forEach((a=>{var i,l,s,u;const c=e.breakpoints[t].typography[r][a],d=n>0?null==(u=null==(s=null==(l=null==(i=e.breakpoints)?void 0:i[fs[n-1]])?void 0:l.typography)?void 0:s[r])?void 0:u[a]:e.typography[r][a];c&&c!==d&&o[n].push(Cc.define(Cc.vars.typography(r,a),c.toString()))}))}))}));{const{primary:n,secondary:r,...o}=e.palette,a=o;t.push(Cc.define(Cc.vars.color("theme","primary"),n),Cc.define(Cc.vars.color("theme","secondary"),r),...Object.keys(a).flatMap((e=>Object.keys(a[e]).map((t=>Cc.define(Cc.vars.color(e,t),a[e][t]))))))}e.spacing.map((e=>{const n=Cc.vars.lsd("spacing",e.toString());t.push(Cc.define(n,`${e}px`))})),fs.map(((t,a)=>{n.push(`@media (min-width: ${e.breakpoints[t].width}px) {\n :root {\n ${o[a].join("\n")}\n }\n\n ${r[a]}\n }`)}));const i=`\n ${t.join("\n")} \n\n ${n.join("\n")}\n `;return{cssVars:i,globalStyles:a.css(":root{",i,";}","")}})(t)),e[n]}})(),Oc={name:"LSD",breakpoints:{xs:{width:0,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},label2:{},subtitle1:{},subtitle2:{},subtitle3:{},subtitle4:{}}},sm:{width:400,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},md:{width:768,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},lg:{width:1024,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}},xl:{width:1205,typography:{display1:{},display2:{},display3:{},display4:{},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},body1:{},body2:{},body3:{},label1:{},subtitle4:{},subtitle3:{},label2:{},subtitle1:{},subtitle2:{}}}},typography:{display1:{fontSize:"5.5rem",fontWeight:"normal",lineHeight:"6rem"},display2:{fontSize:"4rem",fontWeight:"normal",lineHeight:"4.5rem"},display3:{fontSize:"3.5rem",fontWeight:"normal",lineHeight:"4rem"},display4:{fontSize:"3rem",fontWeight:"normal",lineHeight:"3.5rem"},h1:{fontSize:"2.5rem",fontWeight:"normal",lineHeight:"3rem"},h2:{fontSize:"2rem",fontWeight:"normal",lineHeight:"2.5rem"},h3:{fontSize:"1.75rem",fontWeight:"normal",lineHeight:"2.25rem"},h4:{fontSize:"1.5rem",fontWeight:"normal",lineHeight:"2rem"},h5:{fontSize:"1.25rem",fontWeight:"normal",lineHeight:"1.75rem"},h6:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle1:{fontSize:"1.125rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle2:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},subtitle3:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},subtitle4:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"},body1:{fontSize:"1rem",fontWeight:"normal",lineHeight:"1.5rem"},body2:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},body3:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"},label1:{fontSize:"0.875rem",fontWeight:"normal",lineHeight:"1.25rem"},label2:{fontSize:"0.75rem",fontWeight:"normal",lineHeight:"1rem"}},typographyGlobal:{genericFontFamily:"sans-serif"},palette:{primary:"0, 0, 0",secondary:"255, 255, 255",surface:{primary:"255, 255, 255",secondary:"0, 0, 0"},text:{primary:"0, 0, 0",secondary:"255, 255, 255",tertiary:"0, 0, 0, 0.34"},border:{primary:"0, 0, 0",secondary:"255, 255, 255"},icon:{primary:"0, 0, 0",secondary:"255, 255, 255"}},spacing:[4,8,16,24,32,40,64,80,96,120],globalStyles:a.css("",""),cssVars:""},{cssVars:Dc,globalStyles:Pc}=Tc(Oc);Oc.cssVars=Dc,Oc.globalStyles=Pc;const Nc=dc(),Ic=(e,t)=>ds(ps,(n=>({...t.typography[n],...e.typography[n]??{}}))),Ac=(e,t)=>({...t.typographyGlobal,...e.typographyGlobal}),Lc=(e,t)=>{const n=new Map;return Object.fromEntries(fs.reduce(((r,o,a)=>[...r,{...t.breakpoints[o],...e.breakpoints[o],...ds(["typography"],(o=>((e,t,n,r,o,a)=>"typography"===e?ds(o[e],(i=>{var l,s,u,c,d,f,p,h,m,g,v;const b=`${e}.${i}`,y=!0===a.get(b);return Object.keys((null==(u=null==(s=null==(l=r.breakpoints)?void 0:l[fs[n]])?void 0:s[e])?void 0:u[i])??{}).length>0&&a.set(b,!0),{...o[e][i],...r[e][i],...y?(null==(d=null==(c=null==t?void 0:t[n-1])?void 0:c[e])?void 0:d[i])??{}:null==(h=null==(p=null==(f=o.breakpoints)?void 0:f[fs[n]])?void 0:p[e])?void 0:h[i],...(null==(v=null==(g=null==(m=r.breakpoints)?void 0:m[fs[n]])?void 0:g[e])?void 0:v[i])??{}}})):{})(o,r,a,e,t,n)))}]),[]).map(((e,t)=>[fs[t],e])))},Rc=(e,t)=>{var n,r,o,a,i,l,s,u,c;const d=e.palette.primary??t.palette.primary,f=e.palette.secondary??t.palette.secondary;return{primary:d,secondary:f,surface:{primary:(null==(n=e.palette.surface)?void 0:n.primary)??f,secondary:(null==(r=e.palette.surface)?void 0:r.secondary)??d},border:{primary:(null==(o=e.palette.border)?void 0:o.primary)??d,secondary:(null==(a=e.palette.border)?void 0:a.secondary)??f},icon:{primary:(null==(i=e.palette.icon)?void 0:i.primary)??d,secondary:(null==(l=e.palette.icon)?void 0:l.secondary)??f},text:{primary:(null==(s=e.palette.text)?void 0:s.primary)??d,secondary:(null==(u=e.palette.text)?void 0:u.secondary)??f,tertiary:(null==(c=e.palette.text)?void 0:c.tertiary)??`${d}, 0.34`}}},jc=(e,t=Oc)=>{const n={name:e.name??(r=t.name,`${r}-${Nc()}`),typography:Ic(e,t),typographyGlobal:Ac(e,t),breakpoints:Lc(e,t),palette:Rc(e,t),globalStyles:a.css("",""),cssVars:"",spacing:e.spacing.length?e.spacing:t.spacing};var r;const{cssVars:o,globalStyles:i}=Tc(n);return n.cssVars=o,n.globalStyles=i,n},Mc=jc({name:"Light",breakpoints:{},typography:{},typographyGlobal:{},palette:{},spacing:[]},Oc),Fc={light:Mc,dark:jc({name:"Dark",breakpoints:{},typography:{},typographyGlobal:{},palette:{primary:"255, 255, 255",secondary:"0, 0, 0"},spacing:[]},Mc)},Bc=a.css(".",lu.root,"{box-sizing:border-box;}.",lu.label,"{display:block;}.",lu.inputContainer,"{display:flex;justify-content:space-between;}.",lu.disabled,"{opacity:0.34;}.",lu.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;}.",lu.input,":hover{outline:none;}.",lu.input,"::placeholder{color:rgb(var(--lsd-text-primary));opacity:0.3;}.",lu.icon,"{cursor:pointer;display:flex;align-items:center;}.",lu.error,"{text-decoration:line-through;}.",lu.large,"{width:208px;.",lu.label,"{margin:0 0 6px 18px;}.",lu.inputContainer,"{height:40px;}.",lu.input,"{padding:9px 17px;}.",lu.icon,"{padding:12px 13px;}}.",lu.medium,"{width:188px;.",lu.label,"{margin:0 0 6px 14px;}.",lu.inputContainer,"{height:32px;}.",lu.input,"{padding:5px 13px;}.",lu.icon,"{padding:8px 11px;}}.",lu.small,"{width:164px;.",lu.label,"{margin:0 0 6px 12px;}.",lu.inputContainer,"{height:28px;}.",lu.input,"{padding:5px 11px;}.",lu.icon,"{padding:6px 9px;}}.",lu.withIcon,"{}.",lu.outlined," .",lu.inputContainer,"{border:1px solid rgb(var(--lsd-border-primary));}.",lu.underlined," .",lu.inputContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}.",lu.dropdownItemPlaceholder,"{opacity:0.5;white-space:pre;}",""),zc=a.css(".",uu.root,"{width:fit-content;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;justify-content:center;border:1px solid rgb(var(--lsd-icon-primary));border-radius:20px;&:hover,&:focus{text-decoration:underline;cursor:pointer;}}.",uu.large,"{padding:3px 11px;gap:12px;height:28px;}.",uu.small,"{padding:3px 7px;gap:8px;height:24px;}.",uu.filled,"{background-color:rgb(var(--lsd-icon-primary));.",uu.label,"{color:rgb(var(--lsd-text-secondary));}svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",uu.outlined,"{color:rgb(var(--lsd-text-primary));}.",uu.disabled,"{opacity:0.3;cursor:initial;pointer-events:none;}",""),$c=a.css(".",pu.root,"{}.",pu.list,"{display:flex;flex-direction:row;align-items:center;list-style-type:none;margin:0;padding:0;}.",pu.disabled,"{.",pu.list,"{opacity:0.34;cursor:initial;pointer-events:none;}}.",pu.listBox,"{display:flex;flex-direction:column;overflow:auto;border:1px solid rgb(var(--lsd-border-primary));margin-top:10px;position:absolute;width:auto!important;}.",pu.listBox,">li{cursor:pointer;&:not(:last-child){border-bottom:1px solid rgb(var(--lsd-border-primary));}&:hover,&:focus{text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}}.",pu.listBox," li>a{width:164px;padding:5px 11px;}",""),Uc=a.css(".",du.root,"{list-style-type:none;display:flex;align-items:center;}.",pu.list,">li:not(:last-child)::after{display:inline-block;margin-inline:12px;content:'/';}.",du.itemLink,"{text-decoration:none;cursor:pointer;}.",du.outlined,"{padding:3px 11px;border:1px solid rgb(var(--lsd-border-primary));}",du.large,"{}",du.small,"{}.",pu.root,":not(.",pu.disabled,"){.",du.itemLink,"{&:hover,&:focus{text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}}}",""),Hc=a.css(".",gu.root,"{width:auto;cursor:pointer;padding:6px 24px;}.",gu.disabled,"{cursor:default;opacity:0.34;}.",gu.large,"{padding:10px 40px;}.",gu.medium,"{padding:6px 24px;}.",gu.small,"{padding:6px 12px;}.",gu.root,":hover{&:not(.",gu.disabled,"){.",gu.text,"{text-decoration:underline;}}}.",gu.withIcon,"{display:flex;align-items:center;}.",gu.icon,"{display:flex;justify-content:center;align-items:center;height:100%;}.",gu.large,".",gu.withIcon,"{padding:10px 0px 10px 18px;.",gu.icon,"{width:42px;}}.",gu.medium,".",gu.withIcon,"{padding:6px 0px 6px 14px;.",gu.icon,"{width:38px;}}.",gu.small,".",gu.withIcon,"{padding:6px 0px 6px 12px;.",gu.icon,"{width:34px;}}.",gu.outlined,"{background:none;border:1px solid rgb(var(--lsd-border-primary));.",gu.text,"{color:rgb(var(--lsd-text-primary));}}.",gu.filled,"{background:rgb(var(--lsd-surface-secondary));border:1px solid rgb(var(--lsd-border-primary));.",gu.text,"{color:rgb(var(--lsd-text-secondary));}}",""),Vc={root:"lsd-calendar",container:"lsd-calendar-container",small:"lsd-calendar--small",medium:"lsd-calendar--medium",large:"lsd-calendar--large",open:"lsd-calendar--open",disabled:"lsd-calendar--disabled",header:"lsd-calendar-header",weekDay:"lsd-calendar__week_day",button:"lsd-calendar__button",changeYear:"lsd-calendar__change-year",changeYearActive:"lsd-calendar__change-year--active",changeYearIconContainer:"lsd-calendar__change-year-icon-container",year:"lsd-calendar-year",month:"lsd-calendar-month",day:"lsd-calendar-day",yearAndIcon:"lsd-calendar__year-and-icon",monthAndYear:"lsd-calendar__month-and-year",dayContainer:"lsd-calendar-day__container",dayRange:"lsd-calendar-day--range",daySelected:"lsd-calendar-day--selected",dayDisabled:"lsd-calendar-day--disabled",dayIsToday:"lsd-calendar-day--today",dayBorderLeft:"lsd-calendar-day--border-left",dayBorderRight:"lsd-calendar-day--border-right",dayBorderLeftAndRight:"lsd-calendar-day--border-left-and-right",dayBorderTopAndBottom:"lsd-calendar-day--border-top-and-bottom",todayIndicator:"lsd-calendar-day__today_indicator",monthTable:"lsd-calendar__month-table",nextMonthButton:"lsd-calendar__next-month-button",previousMonthButton:"lsd-calendar__previous-month-button",yearDropdown:"lsd-calendar__year-dropdown",yearDropdownHidden:"lsd-calendar__year-dropdown--hidden"},qc=a.css(".",Vc.root,"{border:1px solid rgb(var(--lsd-border-primary));visibility:hidden;position:absolute!important;top:0;left:0;opacity:0;visibility:hidden;margin:0;padding:0;box-sizing:border-box;background:rgb(var(--lsd-surface-primary));user-select:none;}.",Vc.container,"{display:flex;flex-direction:column;padding:8px;}.",Vc.open,"{opacity:1;visibility:visible;}.",Vc.header,"{display:flex;justify-content:center;align-items:center;height:32px;margin-bottom:8px;}.",Vc.weekDay,"{display:flex;justify-content:center;align-items:center;aspect-ratio:1/1;margin-bottom:4px;}.",Vc.changeYear,"{position:relative;display:flex;justify-content:center;align-items:center;padding:2px 0xp 2px 8px;gap:6px;border:1px solid transparent;}.",Vc.changeYearActive,"{.",Vc.yearAndIcon,"{border:1px solid rgb(var(--lsd-border-primary));}}.",Vc.changeYearIconContainer,"{display:flex;justify-content:center;align-items:center;cursor:pointer;border:none;}.",Vc.month,"{margin-right:8px;}.",Vc.monthAndYear,"{display:flex;align-items:center;justify-content:center;}.",Vc.dayContainer,"{cursor:pointer;background:transparent;position:relative;box-sizing:border-box;border:1px solid transparent;}.",Vc.day,"{aspect-ratio:1/1;display:flex;justify-content:center;align-items:center;}.",Vc.day,":hover{cursor:pointer;text-decoration:underline;text-decoration-color:rgb(var(--lsd-border-primary));}.",Vc.day," label:hover{cursor:pointer;}.",Vc.daySelected,"{border:1px solid rgb(var(--lsd-border-primary));}.",Vc.dayDisabled,"{opacity:0.3;cursor:default;}.",Vc.todayIndicator,"{position:absolute;left:50%;transform:translateX(-50%);bottom:2px;}.",Vc.disabled,"{pointer-events:none;border:1px solid rgba(var(--lsd-border-primary), 0.3);label{opacity:0.3;}.",Vc.button,"{opacity:0.3;}.",Vc.daySelected,"{opacity:0.3;}}.",Vc.button,"{border:1px solid rgb(var(--lsd-border-primary));cursor:pointer;background:transparent;width:32px;height:32px;display:flex;align-items:center;justify-content:center;position:absolute;}.",Vc.nextMonthButton,"{top:8px;right:8px;}.",Vc.previousMonthButton,"{top:8px;left:8px;}.",Vc.dayBorderLeft,"{border-left:1px double rgb(var(--lsd-border-primary));}.",Vc.dayBorderRight,"{border-right:1px double rgb(var(--lsd-border-primary));}.",Vc.dayBorderLeftAndRight,"{border-left:1px double rgb(var(--lsd-border-primary));border-right:1px double rgb(var(--lsd-border-primary));}.",Vc.dayBorderTopAndBottom,"{border-top:1px double rgb(var(--lsd-border-primary));border-bottom:1px double rgb(var(--lsd-border-primary));}.",Vc.monthTable,"{border-collapse:collapse;}.",Vc.yearDropdown,"{box-sizing:border-box;position:absolute;top:100%;left:0;max-height:200px;overflow-y:auto;width:100%;border:1px solid rgb(var(--lsd-border-primary));border-top:none;z-index:1;.",Vc.year,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Vc.yearDropdownHidden,"{visibility:hidden;}.",Vc.year,"{display:flex;cursor:pointer;transition:background-color 0.2s;align-items:center;background:rgb(var(--lsd-surface-primary));:hover{text-decoration:underline;}}.",Vc.yearAndIcon,"{border:1px solid rgb(var(--lsd-border-primary));}.",Vc.large,"{.",Vc.year,"{padding:6px 0px 6px 14px;}.",Vc.changeYearIconContainer,"{width:32px;}}.",Vc.medium,"{.",Vc.year,"{padding:6px 0px 6px 12px;}.",Vc.changeYearIconContainer,"{width:28px;}}.",Vc.small,"{.",Vc.year,"{padding:6px 0px 6px 12px;}.",Vc.changeYearIconContainer,"{width:28px;}}",""),Wc=a.css(".",bu.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",bu.root,">.",ku.root,"{margin-bottom:-1px;}.",bu.large,"{}.",bu.medium,"{}.",bu.small,"{}",""),Gc=a.css(".",xu.root,"{box-sizing:border-box;padding:14px 22px;border:1px solid rgb(var(--lsd-border-primary));}",""),Zc=a.css(".",ku.root,"{box-sizing:border-box;padding:10px 18px;text-align:center;border:1px solid rgb(var(--lsd-border-primary));}.",ku.title,"{overflow:hidden;word-break:break-all;}.",ku.large,"{padding:10px 18px;}.",ku.medium,"{padding:6px 14px;}.",ku.small,"{padding:6px 12px;}",""),Qc=a.css(".",Tu.root,"{position:relative;display:flex;flex-direction:row;align-items:center;}.",Tu.input,"{opacity:0;position:absolute;left:0;top:0;padding:0;margin:0;width:100%;height:100%;}.",Tu.root,":not(.",Tu.disabled,"){&:hover,&.",Tu.focused,"{text-decoration:underline;}.",Tu.input,"{cursor:pointer;}}.",Tu.disabled,"{opacity:0.34;}.",Tu.label,"{margin-left:18px;}.",Tu.large,"{.",Tu.label,"{margin-left:18px;}}.",Tu.medium,"{.",Tu.label,"{margin-left:14px;}}.",Tu.small,"{.",Tu.label,"{margin-left:12px;}}",""),Yc=a.css(".",Du.root,"{display:flex;flex-direction:column;gap:6px;width:fit-content;}.",Du.label,"{margin-bottom:6px;}",""),Xc=a.css(".",Au.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",Au.open,"{.",Au.content,"{border-top:1px solid transparent;}}.",Au.content,"{border:1px solid rgb(var(--lsd-border-primary));}",""),Kc=a.css(".",Nu.root,"{box-sizing:border-box;}.",Nu.root,":not(.",Nu.disabled,"){.",Nu.trigger,"{&:hover{.",Nu.label,"{text-decoration:underline;}}}}.",Nu.trigger,"{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;cursor:pointer;background:none;border:1px solid rgb(var(--lsd-border-primary));&:focus{outline:none;}}.",Nu.label,"{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:auto;}.",Nu.icons,"{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;}.",Nu.icon,"{margin-right:8px;}.",Nu.menuIcon,"{}.",Nu.disabled,"{.",Nu.trigger,"{opacity:0.34;cursor:initial;}}.",Nu.large,"{.",Nu.trigger,"{width:299px;height:40px;padding:9px 17px;}}.",Nu.medium,"{.",Nu.trigger,"{width:270px;height:32px;padding:5px 13px;}}.",Nu.small,"{.",Nu.trigger,"{width:235px;height:28px;padding:5px 11px;}}",""),Jc={root:"lsd-date-field",label:"lsd-date-field__label",inputContainer:"lsd-date-field__input-container",input:"lsd-date-field__input-container__input",inputFilled:"lsd-date-field__input-container__input--filled",icon:"lsd-date-field__input-container__icon",noIcon:"lsd-date-field__input-container__no-icon",iconButton:"lsd-date-field__input-container__icon-button",supportingText:"lsd-date-field__supporting-text",disabled:"lsd-date-field--disabled",error:"lsd-date-field--error",large:"lsd-date-field--large",medium:"lsd-date-field--medium",small:"lsd-date-field--small",outlined:"lsd-date-field--outlined",underlined:"lsd-date-field--underlined"},ed=a.css(".",Jc.root,"{width:auto;box-sizing:border-box;}.",Jc.label,"{display:block;}.",Jc.icon,"{position:absolute;right:0;cursor:pointer;display:flex;align-items:center;background-color:rgb(var(--lsd-surface-primary));}.",Jc.icon,":focus{background:blue;background-color:pink;border:1px solid rgb(var(--lsd-border-primary));}.",Jc.noIcon,"{position:absolute;right:0;background-color:rgb(var(--lsd-surface-primary));padding:12px;}.",Jc.outlined,"{border:1px solid rgb(var(--lsd-border-primary));}.",Jc.underlined,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}.",Jc.inputContainer,"{position:relative;display:flex;align-items:center;justify-content:space-between;}.",Jc.disabled,"{opacity:0.34;}.",Jc.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;opacity:0.4;transition:opacity 0.2s ease-in-out;}.",Jc.input,"::-webkit-inner-spin-button,.",Jc.input,"::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none;}.",Jc.input,":hover{outline:none;}.",Jc.supportingText,"{position:absolute;}.",Jc.large,"{width:208px;.",Jc.label,"{margin:0 0 6px 18px;}.",Jc.inputContainer,"{height:40px;}.",Jc.input,"{padding:9px 0px 9px 17px;}.",Jc.icon,"{padding:12px 13px;}.",Jc.supportingText,"{margin:6px 18px 0 18px;}}.",Jc.medium,"{width:188px;.",Jc.label,"{margin:0 0 6px 14px;}.",Jc.inputContainer,"{height:32px;}.",Jc.input,"{padding:5px 11px 5px 13px;}.",Jc.icon,"{padding:8px 11px;}.",Jc.supportingText,"{margin:6px 14px 0 14px;}}.",Jc.small,"{width:164px;.",Jc.label,"{margin:0 0 6px 12px;}.",Jc.inputContainer,"{height:28px;}.",Jc.input,"{padding:5px 9px 5px 11px;font-size:12px;}.",Jc.icon,"{padding:6px 9px;}.",Jc.supportingText,"{margin:6px 12px 0 12px;}}.",Jc.input,":invalid,.",Jc.inputFilled,"{color:rgb(var(--lsd-border-primary));opacity:1;}.",Jc.error," .",Jc.input,"::-webkit-datetime-edit-year-field,.",Jc.error," .",Jc.input,"::-webkit-datetime-edit-month-field,.",Jc.error," .",Jc.input,"::-webkit-datetime-edit-day-field{text-decoration:line-through;}@supports not selector(::-webkit-datetime-edit-day-field){.",Jc.error," .",Jc.input,"{text-decoration:line-through;}}",""),td={root:"lsd-date-picker",calendar:"lsd-date-picker__calendar",large:"lsd-date-picker--large",medium:"lsd-date-picker--medium",small:"lsd-date-picker--small"},nd=a.css(".",td.root,"{width:fit-content;}.",td.calendar,"{border-top:none!important;}.",td.large,"{.",Jc.large,"{width:318px;}}.",td.medium,"{.",Jc.medium,"{width:290px;}}.",td.small,"{.",Jc.small,"{width:262px;}}",""),rd=a.css(".",Ru.root,"{}.",Ru.root,":not(.",Ru.disabled,"):not(\n .",Ru.error,"\n ){.",Ru.trigger,"{&:hover,&:focus{.",Ru.optionLabel,"{text-decoration:underline;}}}}.",Ru.label,"{display:block;}.",Ru.buttonContainer,"{display:flex;justify-content:space-between;}.",Ru.trigger,"{width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border:none;cursor:pointer;background:none;&:focus{outline:none;}}.",Ru.optionLabel,"{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.",Ru.icons,"{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;}.",Ru.icon,"{display:flex;align-items:center;}.",Ru.menuIcon,"{}.",Ru.supportingText,"{margin:6px 14px;}.",Ru.error,"{.",Ru.optionLabel,"{text-decoration:line-through;}}.",Ru.disabled,"{opacity:0.34;cursor:initial;}.",Ru.large,"{width:208px;&.",Ru.error,"{width:230px;}.",Ru.label,"{margin:0 0 6px 18px;}.",Ru.buttonContainer,"{height:40px;}.",Ru.trigger,"{padding:10px 0px 10px 18px;}.",Ru.icons,"{padding:0px 14px;}}.",Ru.medium,"{width:188px;&.",Ru.error,"{width:210px;}.",Ru.label,"{margin:0 0 6px 14px;}.",Ru.buttonContainer,"{height:32px;}.",Ru.trigger,"{padding:6px 0px 6px 14px;}.",Ru.icons,"{padding:0px 12px;}}.",Ru.small,"{width:164px;&.",Ru.error,"{width:186px;}.",Ru.label,"{margin:0 0 6px 12px;}.",Ru.buttonContainer,"{height:28px;}.",Ru.trigger,"{padding:6px 0px 6px 12px;}.",Ru.icons,"{padding:0px 10px;}}.",Ru.outlined,"{.",Ru.buttonContainer,"{border:1px solid rgb(var(--lsd-border-primary));}}.",Ru.underlined,"{.",Ru.buttonContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}}",""),od=a.css(".",qs.root,"{width:100%;box-sizing:border-box;display:flex;flex-direction:row;align-items:center;border:1px solid rgb(var(--lsd-border-primary));:not(.",qs.disabled,"){cursor:pointer;&:hover,&:focus{outline:none;.",qs.label,"{text-decoration:underline;}}}}.",qs.label,"{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.",qs.disabled,"{opacity:0.34;}.",qs.icon,"{margin-right:18px;flex-shrink:0;}.",qs.small,"{padding:5px 9px;height:28px;}.",qs.medium,"{padding:5px 11px;height:32px;}.",qs.large,"{padding:5px 13px;height:40px;}",""),ad=a.css(".",Fu.root,"{display:flex;flex-direction:row;align-items:center;justify-content:center;cursor:pointer;background:none;padding:0;border:1px solid rgb(var(--lsd-border-primary));}.",Fu.filled,"{background-color:rgb(var(--lsd-icon-primary));svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",Fu.outlined,"{}.",Fu.disabled,"{opacity:0.34;cursor:default;}.",Fu.large,"{width:40px;height:40px;}.",Fu.medium,"{width:32px;height:32px;}.",Fu.small,"{width:28px;height:28px;}",""),id=a.css(".",zu.root,"{display:flex;flex-direction:row;}.",zu.outlined," .",Fu.root,":not(:last-child){border-right:none;}",""),ld=a.css(".",xs.root,"{}.",xs.primary,"{&.",xs.filled,"{&,*{fill:rgb(var(--lsd-icon-primary));}}$.",xs.stroked,"{&,*{fill:rgb(var(--lsd-icon-primary));}}}.",xs.secondary,"{&.",xs.filled,"{&,*{fill:rgb(var(--lsd-icon-secondary));}}$.",xs.stroked,"{&,*{fill:rgb(var(--lsd-icon-secondary));}}}",""),sd=a.css(".",tu.root,"{position:absolute;top:0;left:0;opacity:0;visibility:hidden;margin:0;padding:0;box-sizing:border-box;background:rgb(var(--lsd-surface-primary));overflow:auto;border:1px solid rgb(var(--lsd-border-primary));border-top:0;}.",tu.root,">div{border:0;&:not(:last-child){border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",tu.open,"{opacity:1;visibility:visible;}.",tu.large,"{max-height:220px;}.",tu.medium,"{max-height:176px;}.",tu.small,"{max-height:154px;}",""),ud=a.css(".",Uu.root,"{color:rgb(var(--lsd-text-primary));white-space:pre-wrap;}.",Uu.indentedInline,"{border-left:1px solid rgb(var(--lsd-border-primary));padding:4px 8px 4px 28px;}.",Uu.parentheses,"{padding:0px;text-align:center;}.",Uu.parentheses,"::before{content:'***';}.",Uu.parentheses,"::after{content:'***';}",""),cd=a.css(".",qu.root,"{position:relative;display:flex;flex-direction:row;align-items:center;}.",qu.input,"{opacity:0;position:absolute;left:0;top:0;padding:0;margin:0;width:100%;height:100%;}.",qu.root,":not(.",qu.disabled,"){&:hover{text-decoration:underline;}.",qu.input,"{cursor:pointer;}}.",qu.disabled,"{opacity:0.34;}.",qu.label,"{margin-left:18px;}.",qu.large,"{.",qu.label,"{margin-left:18px;}}.",qu.medium,"{.",qu.label,"{margin-left:14px;}}.",qu.small,"{.",qu.label,"{margin-left:12px;}}",""),dd=a.css(".",Gu.root,"{display:flex;flex-direction:column;gap:6px;width:fit-content;}.",Gu.label,"{margin-bottom:6px;}",""),fd=a.css(".",Yu.root,"{background:rgb(var(--lsd-surface-primary));border:1px solid transparent;cursor:pointer;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;&:hover{text-decoration:underline;}&:not(",Yu.selected,"){border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Yu.text,"{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.",Yu.icon,"{margin-left:14px;}.",Yu.selected,"{border:1px solid rgb(var(--lsd-border-primary));&:hover{text-decoration:none;}}.",Yu.withIcon,"{justify-content:space-between;}.",Yu.disabled,"{cursor:default;opacity:0.34;&:hover{text-decoration:none;}}.",Yu.small,"{padding:6px 12px;.",Yu.icon,"{margin-left:10px;}}.",Yu.medium,"{padding:6px 14px;.",Yu.icon,"{margin-left:12px;}}.",Yu.large,"{padding:10px 18px;.",Yu.icon,"{margin-left:14px;}}",""),pd=a.css(".",nc.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",nc.root,">.",ec.root,"{margin-bottom:-1px;}.",nc.large,"{}.",nc.medium,"{}.",nc.small,"{}",""),hd=a.css(".",Ku.root,"{table{border-collapse:collapse;text-align:center;table-layout:fixed;width:100%;height:auto;}table tr:first-of-type td label:has(input[type='radio']){display:none;}}.",Ku.toolbar,"{box-sizing:border-box;padding:10px;border:1px solid rgb(var(--lsd-border-primary));border-bottom:none;display:flex;justify-content:space-between;}",""),md=a.css(".",ec.root,"{box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));}",""),gd=a.css(".",ic.root,"{border:1px solid rgb(var(--lsd-border-primary));}.",ic.root,":has(> label){width:40px;input{position:relative;width:14px;height:14px;margin:auto;}span{margin-left:14px!important;}}.",ic.large,"{padding:10px;}.",ic.medium,"{padding:6px 8px;}.",ic.small,"{padding:6px;}",""),vd=a.css(".",sc.root,"{align-items:center;}",""),bd=a.css(".",vc.root,"{display:flex;flex-direction:row;overflow:auto;width:fit-content;max-width:100%;border-bottom:1px solid rgb(var(--lsd-border-primary));&>*{flex-shrink:0;}.",Yu.root,"{border-bottom:none;}}.",vc.fullWidth,"{width:100%;justify-content:stretch;&>*{width:100%;flex:1 0;}}.",vc.root,"{-ms-overflow-style:none;scrollbar-width:none;&::-webkit-scrollbar{display:none;}}.",vc.leftScrollControl,"{left:0;}.",vc.rightScrollControl,"{right:0;}.",vc.rightScrollControl,",.",vc.leftScrollControl,"{top:0;flex:0 1;position:sticky;}",""),yd=a.css(".",yc.root,"{width:fit-content;display:flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;border:1px solid rgb(var(--lsd-icon-primary));&:hover,&:focus{text-decoration:underline;cursor:pointer;}}.",yc.large,"{padding:3px 11px;gap:12px;height:28px;}.",yc.small,"{padding:3px 7px;gap:8px;height:24px;}.",yc.filled,"{background-color:rgb(var(--lsd-icon-primary));.",yc.label,"{color:rgb(var(--lsd-text-secondary));}svg{--lsd-icon-primary:var(--lsd-icon-secondary);}}.",yc.outlined,"{color:rgb(var(--lsd-text-primary));}.",yc.disabled,"{opacity:0.3;cursor:initial;pointer-events:none;}",""),wd=a.css(".",Ec.root,"{box-sizing:border-box;display:flex;flex-direction:column;}.",Ec.inputContainer,"{display:flex;align-items:center;justify-content:space-between;}.",Ec.disabled,"{opacity:0.34;}.",Ec.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;width:100%;}.",Ec.input,":hover{outline:none;}.",Ec.input,"::placeholder{color:rgb(var(--lsd-text-primary));opacity:0.3;}.",Ec.error," .",Ec.input,"{text-decoration:line-through;}.",Ec.supportingText,"{width:fit-content;}.",Ec.large,"{width:208px;&>*{padding:10px 14px 10px 18px;}}.",Ec.medium,"{width:188px;&>*{padding:6px 12px 6px 14px;}}.",Ec.small,"{width:164px;&>*{padding:6px 10px 6px 12px;}}.",Ec.label,"{padding-top:0;padding-bottom:6px;}.",Ec.supportingText,"{padding-bottom:0;padding-top:6px;}.",Ec.outlined," .",Ec.inputContainer,"{border:1px solid rgb(var(--lsd-border-primary));}.",Ec.underlined," .",Ec.inputContainer,"{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}.",Ec.clearButton,"{padding:0;width:auto;height:auto;margin:0;border:0;}.",Ec.icon,"{}",""),xd=a.css("body *{font-family:var(--lsd-typography-generic-font-family);}.",gs.root,"{color:rgb(var(--lsd-text-primary));}.",gs.sansSerif,"{&,*{font-family:sans-serif;}}.",gs.serif,"{&,*{font-family:serif;}}.",gs.monospace,"{&,*{font-family:monospace;}}",ps.map((e=>a.css((e=>[...hs[e]??[],`.${gs[e]}`].join(", "))(e),"{color:rgb(var(--lsd-text-primary));font-weight:var(--lsd-",e,"-fontWeight);font-size:var(--lsd-",e,"-fontSize);line-height:var(--lsd-",e,"-lineHeight);}","")))," .",gs.primary,"{color:rgb(var(--lsd-text-primary));}.",gs.secondary,"{color:rgb(var(--lsd-text-secondary));}input{color:rgb(var(--lsd-text-primary));font-size:var(--lsd-body1-fontSize);font-weight:var(--lsd-body1-fontWeight);}h1,h2,h3,h4,h5,h6,p,span{margin:0;}",""),_d={root:"lsd-number-input",label:"lsd-number-input__label",mainContainer:"lsd-number-input__main-container",inputContainer:"lsd-number-input__input-container",input:"lsd-number-input__input",errorIcon:"lsd-number-input__error-icon",plusMinusIcons:"lsd-number-input__plus-minus-icons",supportingText:"lsd-number-input__supporting-text",disabled:"lsd-number-input--disabled",error:"lsd-number-input--error",large:"lsd-number-input--large",medium:"lsd-number-input--medium",small:"lsd-number-input--small"},kd={root:"lsd-modal",small:"lsd-modal--small",medium:"lsd-modal--medium",large:"lsd-modal--large",xsmall:"lsd-modal--extra-small",modalContainer:"lsd-modal__container",header:"lsd-modal__header",title:"lsd-modal__title",subtitle:"lsd-modal__subtitle",titleAndSubtitleContainer:"lsd-modal__title-and-subtitle-container",closeIcon:"lsd-modal__close-icon"},Ed={root:"lsd-modal-footer"},Sd={root:"lsd-modal-body"},Cd={root:"lsd-toast",inlineContainer:"lsd-toast__inline-container",columnContainer:"lsd-toast__column-container",large:"lsd-toast--large",medium:"lsd-toast--medium",small:"lsd-toast--small",icon:"lsd-toast__icon",textContainer:"lsd-toast__text-container",columnIconContainer:"lsd-toast__column-icon-container",inlineIconContainer:"lsd-toast__inline-icon-container",title:"lsd-toast__title",information:"lsd-toast__information",inlineButtonContainer:"lsd-toast__inline-button-container",columnButtonContainer:"lsd-toast__column-button-container",buttonContainer:"lsd-toast__button-container",closeButton:"lsd-toast__close-button"},Td={toastContainer:"lsd-toast-provider__toast-container",topLeft:"lsd-toast-provider__toast--top-left",topCenter:"lsd-toast-provider__toast--top-center",topRight:"lsd-toast-provider__toast--top-right",bottomLeft:"lsd-toast-provider__toast--bottom-left",bottomCenter:"lsd-toast-provider__toast--bottom-center",bottomRight:"lsd-toast-provider__toast--bottom-right"},Od={root:"lsd-button-group",outlined:"lsd-button-group--outlined",filled:"lsd-button-group--filled",disabled:"lsd-button-group--disabled",small:"lsd-button-group--small",medium:"lsd-button-group--medium",large:"lsd-button-group--large"},Dd={root:"lsd-date-range-picker",calendar:"lsd-date-picker__calendar",withCalendar:"lsd-date-range-picker--with-calendar",openCalendar:"lsd-date-range-picker--calendar-open",disabled:"lsd-date-range-picker--disabled",inputContainer:"lsd-date-range-picker__input-container",icon:"lsd-date-range-picker__icon",large:"lsd-date-range-picker--large",medium:"lsd-date-range-picker--medium",small:"lsd-date-range-picker--small",label:"lsd-date-range-picker__label",supportingText:"lsd-date-range-picker__supporting-text",outlined:"lsd-date-range-picker--outlined",separator:"lsd-date-range-picker__separator"},Pd={root:"lsd-tooltip-base",arrowTip:"lsd-tooltip-base__arrow-tip",content:"lsd-tooltip-base__content"},Nd=[Hc,ad,id,xd,ld,fd,bd,sd,rd,od,$c,Uc,Wc,Zc,Gc,yd,wd,Qc,Bc,ud,Xc,Kc,Yc,zc,cd,dd,pd,md,hd,gd,vd,a.css(".",_d.root,"{width:auto;box-sizing:border-box;}.",_d.mainContainer,":hover{text-decoration:underline;}.",_d.error,"{.",_d.mainContainer,"{text-decoration:line-through;}}.",_d.label,"{display:block;}.",_d.plusMinusIcons,"{display:flex;flex-shrink:0;}.",_d.inputContainer,"{box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));border-left:0px;border-right:0px;}.",_d.errorIcon,"{cursor:pointer;display:flex;align-items:center;padding:10px 8px;}.",_d.inputContainer,"{display:flex;align-items:center;justify-content:space-between;}.",_d.disabled,"{opacity:0.34;}.",_d.mainContainer,"{display:flex;align-items:center;}.",_d.input,"{border:none;outline:none;font-size:14px;color:rgb(var(--lsd-text-primary));background:none;text-align:center;padding:0 4px;}.",_d.input,"::-webkit-inner-spin-button{display:none;-webkit-appearance:none;}.",_d.input,":hover{outline:none;}.",_d.supportingText,"{position:absolute;}.",_d.large,"{.",_d.label,"{margin:0 0 6px 18px;}.",_d.inputContainer,"{height:40px;}.",_d.input,"{width:62px;}.",_d.plusMinusIcons,"{height:40px;width:40px;}.",_d.supportingText,"{margin:6px 18px 0 18px;}}.",_d.medium,"{.",_d.label,"{margin:0 0 6px 14px;}.",_d.inputContainer,"{height:32px;}.",_d.input,"{width:58px;}.",_d.plusMinusIcons,"{height:32px;width:32px;}.",_d.supportingText,"{margin:6px 14px 0 14px;}}.",_d.small,"{.",_d.label,"{margin:0 0 6px 12px;}.",_d.inputContainer,"{height:28px;}.",_d.input,"{width:50px;}.",_d.plusMinusIcons,"{height:28px;width:28px;}.",_d.supportingText,"{margin:6px 12px 0 12px;}}",""),a.css(".",kd.root,"{box-sizing:border-box;display:flex;flex-direction:column;position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0, 0, 0, 0.5);display:flex;justify-content:center;align-items:center;z-index:9999;}.",kd.modalContainer,"{position:relative;background:rgb(var(--lsd-surface-primary));padding:20px;max-width:90%;box-sizing:border-box;border:1px solid rgb(var(--lsd-border-primary));}.",kd.header,"{display:flex;justify-content:space-between;align-items:center;}.",kd.title,"{}.",kd.subtitle,"{}.",kd.closeIcon,"{position:absolute;top:8px;right:8px;cursor:pointer;}.",kd.titleAndSubtitleContainer,"{display:flex;flex-direction:column;}.",kd.large,"{.",kd.modalContainer,"{min-width:960px;}}.",kd.medium,"{.",kd.modalContainer,"{min-width:768px;}}.",kd.small,"{.",kd.modalContainer,"{min-width:614px;}}.",kd.xsmall,"{.",kd.modalContainer,"{min-width:490px;}}",""),a.css(".",Ed.root,"{display:flex;}",""),a.css(".",Sd.root,"{margin:18px 0;}",""),nd,ed,qc,a.css(".",Cd.root,"{box-sizing:border-box;display:inline-flex;align-items:center;background:rgb(var(--lsd-surface-primary));border:1px solid rgb(var(--lsd-border-primary));padding:8px;height:fit-content;}.",Cd.inlineButtonContainer,"{flex-shrink:0;}.",Cd.columnButtonContainer,"{margin-top:18px;margin-bottom:6px;}.",Cd.inlineContainer,"{display:flex;align-items:center;justify-content:space-between;flex-grow:1;}.",Cd.columnContainer,"{display:flex;flex-direction:column;justify-content:space-between;}.",Cd.textContainer,"{display:flex;flex-direction:column;color:rgb(var(--lsd-text-secondary));padding-left:12px;}.",Cd.title,"{position:relative;}.",Cd.information,"{margin-top:4px;}.",Cd.buttonContainer,"{min-height:28px;min-width:60px;width:fit-content;padding:0px 12px;}.",Cd.closeButton,"{margin-bottom:auto;flex-shrink:0;height:28px;width:28px;margin-left:auto;}.",Cd.columnIconContainer,"{display:flex;justify-content:center;margin-bottom:auto;position:relative;top:4px;padding-left:4px;}.",Cd.inlineIconContainer,"{display:flex;align-items:center;justify-content:center;padding-left:4px;}.",Cd.icon,"{position:relative;}.",Cd.large,"{width:364px;}.",Cd.medium,"{width:336px;}.",Cd.small,"{width:296px;.",Cd.icon,"{top:0px;}}",""),a.css(".",Td.toastContainer,"{position:fixed;transition:all 230ms cubic-bezier(0.21, 1.02, 0.73, 1);z-index:9999;}.",Td.topLeft,",.",Td.topCenter,",.",Td.topRight,"{top:0;}.",Td.bottomLeft,",.",Td.bottomCenter,",.",Td.bottomRight,"{bottom:0;}.",Td.topCenter,",.",Td.bottomCenter,"{left:50%;}.",Td.topRight,",.",Td.bottomRight,"{right:0;}",""),a.css(".",Od.root,"{display:flex;flex-direction:row;>*:not(:last-child){&.",gu.outlined,",.",gu.outlined,"{border-right:none;}}}",""),a.css(".",Dd.root,"{box-sizing:border-box;.",Jc.outlined,"{border:none;}.",Jc.icon,"{padding:8px;}}.",Dd.label,"{display:block;}.",Dd.inputContainer,"{box-sizing:border-box;display:flex;align-items:center;border:1px solid transparent;}.",Dd.calendar,"{border-top:none!important;.",Pd.arrowTip,"{transition:left 0.2s ease-in-out;}}.",Dd.openCalendar,"{.",Dd.inputContainer,"{border-bottom:1px solid rgb(var(--lsd-border-primary));}}.",Dd.icon,"{cursor:pointer;display:flex;align-items:center;justify-content:center;flex-grow:1;padding:0 10px;}.",Dd.disabled,"{opacity:0.3;}.",Dd.supportingText,"{position:absolute;}.",Dd.large,"{width:318px;.",Jc.large,"{width:156px;}.",Jc.input,"{padding-right:0;}.",Jc.icon,"{padding:11px 12px;}.",Dd.label,"{margin:0 0 6px 18px;}.",Dd.inputContainer,"{height:40px;}.",Dd.supportingText,"{margin:6px 18px 0 18px;}}.",Dd.medium,"{width:290px;.",Jc.medium,"{width:142px;}.",Jc.input,"{padding-right:0;}.",Jc.icon,"{padding:7px 8px;}.",Dd.label,"{margin:0 0 6px 14px;}.",Dd.inputContainer,"{height:32px;}.",Dd.supportingText,"{margin:6px 14px 0 14px;}}.",Dd.small,"{width:262px;.",Jc.small,"{width:128px;}.",Jc.input,"{padding-right:0;}.",Jc.icon,"{padding:5px 7px;}.",Dd.label,"{margin:0 0 6px 12px;}.",Dd.inputContainer,"{height:28px;}.",Dd.supportingText,"{margin:6px 12px 0 12px;}}.",Dd.separator,"{margin-left:3px;width:1px;height:100%;}.",Dd.separator,"{border-left:1px solid transparent;}.",Dd.outlined,"{border:1px solid rgb(var(--lsd-border-primary));.",Dd.separator,"{border-left:1px solid rgb(var(--lsd-border-primary));}}",""),a.css(".",Pd.root,"{border:1px solid rgb(var(--lsd-border-primary));position:relative;}.",Pd.arrowTip,"{border:1px solid rgb(var(--lsd-border-primary));position:absolute;background:rgb(var(--lsd-surface-primary));}.",Pd.content,"{background:rgb(var(--lsd-surface-primary));width:100%;height:100%;position:relative;z-index:1;}","")],Id=({theme:e=Fc.light})=>{const t=r.useMemo((()=>Nd.map((t=>"function"==typeof t?t(e):t)).map((e=>We(a.Global,{styles:e},e.name)))),[e]);return We(qe,{children:t})},Ad=e=>{try{return[e(),void 0]}catch(t){return[void 0,t]}},Ld=({children:e})=>{const[t,n]=r.useState(!1);return r.useEffect((()=>{if("undefined"==typeof window)return;const e=document.querySelector("body");let t=e.querySelector("#lsd-presentation");return t||(t=document.createElement("div"),t.id="lsd-presentation"),e.appendChild(t),n(!0),()=>{Ad((()=>e.removeChild(t)))}}),[]),We(ou.Provider,{value:{initialized:t},children:e})},Rd=({children:e})=>{const t=r.useRef(),n=r.useRef({}),[o,a]=r.useState({}),[i,l]=r.useState(!1),s=e=>{const t=n.current[e];t&&t.current&&Ad((()=>{a((n=>({...n,[e]:t.current.getBoundingClientRect()})))}))};r.useEffect((()=>{if("undefined"!=typeof window&&"undefined"!=typeof ResizeObserver)return t.current=new ResizeObserver((e=>{Ad((()=>{const t=Object.entries(n.current);e.map((e=>t.find((([t,n])=>n.current===e.target)))).forEach((e=>{if(e&&2===e.length){const[t]=e;s(t)}}))}))})),l(!0),()=>{var e;null==(e=t.current)||e.disconnect()}}),[]);return We(cc.Provider,{value:{observe:(e,r)=>{t.current&&(n.current[e]=r,s(e),r.current instanceof Element&&t.current.observe(r.current))},unobserve:e=>{if(!t.current)return;const r=n.current[e];r&&(r.current instanceof Element&&t.current.unobserve(r.current),delete n.current[e],a((t=>Vl(t,e))))},rect:o,ready:i},children:e})},jd=r.createContext({theme:null}),Md=({label:e,size:t="large",error:n=!1,errorIcon:o=!1,supportingText:a,value:i,placeholder:l,defaultValue:s,disabled:u,onChange:c,icon:d,inputProps:f={},id:p="number-input",min:h=Number.MIN_SAFE_INTEGER,max:m=Number.MAX_SAFE_INTEGER,step:g=1,...v})=>{const b=r.useRef(null),y=bs(v),w=Ye({defaultValue:s,value:i,onChange:c,ref:b});return Ge("div",{"aria-disabled":u?"true":"false",...ws(v),className:Qe(v.className,y.className,_d.root,_d[t],u&&_d.disabled,n&&_d.error),children:[e&&We(Vs,{htmlFor:p,className:_d.label,variant:"label2",component:"label",children:e}),Ge("div",{className:_d.mainContainer,children:[We(Bu,{onClick:()=>{if(u)return;const e=Math.max(h,Number(w.value||"0")-g);w.setValue(e.toString())},className:_d.plusMinusIcons,children:We(Hs,{color:"primary"})}),Ge("div",{className:_d.inputContainer,children:[We("input",{id:p,type:"number",placeholder:l,ref:b,className:Qe(f.className,_d.input),value:w.value||"",onChange:w.onChange,min:h,max:m,step:g,disabled:u,...f}),n&&!!o&&We("span",{className:_d.errorIcon,children:We(Ns,{color:"primary"})})]}),We(Bu,{onClick:()=>{if(u)return;const e=Math.min(m,Number(w.value||"0")+g);w.setValue(e.toString())},className:_d.plusMinusIcons,children:We(ks,{color:"primary"})})]}),a&&We("div",{className:Qe(_d.supportingText),children:We(Vs,{variant:"label2",component:"p",children:a})})]})};Md.classes=_d;const Fd=({isOpen:e,size:t="large",title:n,subtitle:r,onClose:o,children:a,...i})=>{const l=bs(i);return e?We("div",{...ws(i),className:Qe(l.className,kd.root,kd[t]),onClick:e=>{e.target===e.currentTarget&&o&&o()},children:Ge("div",{className:Qe(kd.modalContainer),children:[Ge("div",{className:kd.header,children:[Ge("div",{className:kd.titleAndSubtitleContainer,children:[!!n&&We(Vs,{className:kd.title,component:"div",variant:"small"===t?"h6":"h5",children:n}),!!r&&We(Vs,{className:kd.subtitle,variant:"small"===t?"label2":"label1",component:"div",children:r})]}),We(Bu,{onClick:o,className:kd.closeIcon,size:"medium",children:We(Ps,{color:"primary"})})]}),a]})}):null};Fd.classes=kd;const Bd=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,Sd.root),children:e})};Bd.classes=Sd;const zd=({children:e,...t})=>{const n=bs(t);return We("div",{...ws(t),className:Qe(n.className,Ed.root),children:e})};zd.classes=Ed;const $d=({label:e,size:t="large",error:n=!1,errorIcon:o=!1,clearButton:a,supportingText:i,children:l,value:s,placeholder:u,defaultValue:c,disabled:d,onChange:f,icon:p,onIconClick:h,inputProps:m={},calendarIconRef:g,variant:v="underlined",...b})=>{const y=bs(b),w=r.useRef(null),x=Ye({defaultValue:c,value:s,onChange:f,ref:w}),_=(null==m?void 0:m.id)??(b.id||"date-field")+"-input";return Ge("div",{"aria-disabled":d?"true":"false",...b,className:Qe({...ws(b)},b.className,y.className,Jc.root,Jc[t],d&&Jc.disabled,n&&Jc.error),children:[e&&We(Vs,{htmlFor:_,className:Jc.label,variant:"label2",component:"label",children:e}),Ge("div",{className:Qe(Jc.inputContainer,"outlined"===v?Jc.outlined:Jc.underlined),children:[We("input",{id:_,type:"date",placeholder:u,...m,ref:w,value:x.value||"",onChange:x.onChange,className:Qe(m.className,Jc.input,x.filled&&Jc.inputFilled),max:m.max||"9999-12-31"}),p?We("span",{className:Jc.icon,onClick:()=>!d&&h&&h(),ref:g,children:p}):n&&o?We("span",{className:Jc.icon,children:We(Ns,{color:"primary"})}):a&&x.filled?We("span",{onClick:()=>!d&&x.setValue(""),className:Jc.icon,children:We(Ps,{color:"primary"})}):We("span",{className:Jc.noIcon})]}),i&&We("div",{className:Qe(Jc.supportingText),children:We(Vs,{variant:"label2",component:"p",children:i})}),l]})};$d.classes=Jc;const Ud=(e,t,n)=>{if(!e)return{isValid:!1,date:null};const r=new Date(e+"T00:00:00");return{isValid:!Number.isNaN(+r)&&r>=t&&r<=n,date:r}},Hd=e=>new Date(e.getTime()-6e4*e.getTimezoneOffset()).toISOString().split("T")[0],Vd=e=>e.setHours(0,0,0,0),qd=(e,t,n)=>!!(e&&t&&n)&&(Vd(t)<=Vd(e)&&Vd(n)>=Vd(e)),Wd=(e,t)=>{if(!e||!t)return!1;return Hd(e)===Hd(t)},Gd=e=>{const t=(e=>{const t=e.find((e=>"number"!=typeof e));return t?new Date(t.date):new Date})(e),n=new Date(t);n.setDate(n.getDate()-t.getDay());const r=[];for(let o=0;o<42;o++){const e=new Date(n);e.setDate(e.getDate()+o),r.push(e)}return r},Zd=(e,t)=>e&&e===t?null:t;function Qd(e,t){if(!e||!t)return!0;let n=new Date(Hd(new Date(e)));return new Date(Hd(new Date(t)))>n}const Yd=(e,t)=>"large"===t?"startDate"===e?130:291:"medium"===t?"startDate"===e?120:267:"small"===t?"startDate"===e?107:239:0;var Xd={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}};function Kd(e){return function(t){var n=t||{},r=n.width?String(n.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var Jd={date:Kd({formats:{full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},defaultWidth:"full"}),time:Kd({formats:{full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},defaultWidth:"full"}),dateTime:Kd({formats:{full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},defaultWidth:"full"})},ef={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"};function tf(e){return function(t,n){var r,o=n||{};if("formatting"===(o.context?String(o.context):"standalone")&&e.formattingValues){var a=e.defaultFormattingWidth||e.defaultWidth,i=o.width?String(o.width):a;r=e.formattingValues[i]||e.formattingValues[a]}else{var l=e.defaultWidth,s=o.width?String(o.width):e.defaultWidth;r=e.values[s]||e.values[l]}return r[e.argumentCallback?e.argumentCallback(t):t]}}function nf(e){return function(t,n){var r=String(t),o=n||{},a=o.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],l=r.match(i);if(!l)return null;var s,u=l[0],c=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth];return s="[object Array]"===Object.prototype.toString.call(c)?function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n}(c,(function(e){return e.test(u)})):function(e,t){for(var n in e)if(e.hasOwnProperty(n)&&t(e[n]))return n}(c,(function(e){return e.test(u)})),s=e.valueCallback?e.valueCallback(s):s,{value:s=o.valueCallback?o.valueCallback(s):s,rest:r.slice(u.length)}}}var rf,of={code:"en-US",formatDistance:function(e,t,n){var r;return n=n||{},r="string"==typeof Xd[e]?Xd[e]:1===t?Xd[e].one:Xd[e].other.replace("{{count}}",t),n.addSuffix?n.comparison>0?"in "+r:r+" ago":r},formatLong:Jd,formatRelative:function(e,t,n,r){return ef[e]},localize:{ordinalNumber:function(e,t){var n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},era:tf({values:{narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},defaultWidth:"wide"}),quarter:tf({values:{narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},defaultWidth:"wide",argumentCallback:function(e){return Number(e)-1}}),month:tf({values:{narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},defaultWidth:"wide"}),day:tf({values:{narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},defaultWidth:"wide"}),dayPeriod:tf({values:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},defaultWidth:"wide",formattingValues:{narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},defaultFormattingWidth:"wide"})},match:{ordinalNumber:(rf={matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:function(e){return parseInt(e,10)}},function(e,t){var n=String(e),r=t||{},o=n.match(rf.matchPattern);if(!o)return null;var a=o[0],i=n.match(rf.parsePattern);if(!i)return null;var l=rf.valueCallback?rf.valueCallback(i[0]):i[0];return{value:l=r.valueCallback?r.valueCallback(l):l,rest:n.slice(a.length)}}),era:nf({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:"wide",parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:"any"}),quarter:nf({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:"wide",parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:"any",valueCallback:function(e){return e+1}}),month:nf({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:"any"}),day:nf({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:"wide",parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:"any"}),dayPeriod:nf({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:"any",parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:"any"})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function af(e){if(null===e||!0===e||!1===e)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function lf(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function sf(e){lf(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||"object"==typeof e&&"[object Date]"===t?new Date(e.getTime()):"number"==typeof e||"[object Number]"===t?new Date(e):("string"!=typeof e&&"[object String]"!==t||"undefined"==typeof console||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule"),console.warn((new Error).stack)),new Date(NaN))}function uf(e,t){return lf(2,arguments),function(e,t){lf(2,arguments);var n=sf(e).getTime(),r=af(t);return new Date(n+r)}(e,-af(t))}function cf(e,t){switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}}function df(e,t){switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}}var ff={p:df,P:function(e,t){var n,r=e.match(/(P+)(p+)?/),o=r[1],a=r[2];if(!a)return cf(e,t);switch(o){case"P":n=t.dateTime({width:"short"});break;case"PP":n=t.dateTime({width:"medium"});break;case"PPP":n=t.dateTime({width:"long"});break;default:n=t.dateTime({width:"full"})}return n.replace("{{date}}",cf(o,t)).replace("{{time}}",df(a,t))}};function pf(e){return e.getTime()%6e4}var hf=["D","DD"],mf=["YY","YYYY"];function gf(e){if("YYYY"===e)throw new RangeError("Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr");if("YY"===e)throw new RangeError("Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr");if("D"===e)throw new RangeError("Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr");if("DD"===e)throw new RangeError("Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr")}function vf(e,t){lf(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.weekStartsOn,a=null==o?0:af(o),i=null==n.weekStartsOn?a:af(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=sf(e),s=l.getUTCDay(),u=(s<i?7:0)+s-i;return l.setUTCDate(l.getUTCDate()-u),l.setUTCHours(0,0,0,0),l}function bf(e,t){lf(1,arguments);var n=sf(e,t),r=n.getUTCFullYear(),o=t||{},a=o.locale,i=a&&a.options&&a.options.firstWeekContainsDate,l=null==i?1:af(i),s=null==o.firstWeekContainsDate?l:af(o.firstWeekContainsDate);if(!(s>=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var u=new Date(0);u.setUTCFullYear(r+1,0,s),u.setUTCHours(0,0,0,0);var c=vf(u,t),d=new Date(0);d.setUTCFullYear(r,0,s),d.setUTCHours(0,0,0,0);var f=vf(d,t);return n.getTime()>=c.getTime()?r+1:n.getTime()>=f.getTime()?r:r-1}function yf(e){lf(1,arguments);var t=sf(e),n=t.getUTCDay(),r=(n<1?7:0)+n-1;return t.setUTCDate(t.getUTCDate()-r),t.setUTCHours(0,0,0,0),t}function wf(e){lf(1,arguments);var t=sf(e),n=t.getUTCFullYear(),r=new Date(0);r.setUTCFullYear(n+1,0,4),r.setUTCHours(0,0,0,0);var o=yf(r),a=new Date(0);a.setUTCFullYear(n,0,4),a.setUTCHours(0,0,0,0);var i=yf(a);return t.getTime()>=o.getTime()?n+1:t.getTime()>=i.getTime()?n:n-1}function xf(e){lf(1,arguments);var t=sf(e),n=yf(t).getTime()-function(e){lf(1,arguments);var t=wf(e),n=new Date(0);return n.setUTCFullYear(t,0,4),n.setUTCHours(0,0,0,0),yf(n)}(t).getTime();return Math.round(n/6048e5)+1}function _f(e,t){lf(1,arguments);var n=sf(e),r=vf(n,t).getTime()-function(e,t){lf(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.firstWeekContainsDate,a=null==o?1:af(o),i=null==n.firstWeekContainsDate?a:af(n.firstWeekContainsDate),l=bf(e,t),s=new Date(0);return s.setUTCFullYear(l,0,i),s.setUTCHours(0,0,0,0),vf(s,t)}(n,t).getTime();return Math.round(r/6048e5)+1}function kf(e,t){for(var n=e<0?"-":"",r=Math.abs(e).toString();r.length<t;)r="0"+r;return n+r}var Ef={G:function(e,t,n){var r=e.getUTCFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if("yo"===t){var r=e.getUTCFullYear(),o=r>0?r:1-r;return n.ordinalNumber(o,{unit:"year"})}return function(e,t){var n=e.getUTCFullYear(),r=n>0?n:1-n;return kf("yy"===t?r%100:r,t.length)}(e,t)},Y:function(e,t,n,r){var o=bf(e,r),a=o>0?o:1-o;return"YY"===t?kf(a%100,2):"Yo"===t?n.ordinalNumber(a,{unit:"year"}):kf(a,t.length)},R:function(e,t){return kf(wf(e),t.length)},u:function(e,t){return kf(e.getUTCFullYear(),t.length)},Q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return kf(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){var r=Math.ceil((e.getUTCMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return kf(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){var r=e.getUTCMonth();switch(t){case"M":case"MM":return function(e,t){var n=e.getUTCMonth();return"M"===t?String(n+1):kf(n+1,2)}(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){var r=e.getUTCMonth();switch(t){case"L":return String(r+1);case"LL":return kf(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){var o=_f(e,r);return"wo"===t?n.ordinalNumber(o,{unit:"week"}):kf(o,t.length)},I:function(e,t,n){var r=xf(e);return"Io"===t?n.ordinalNumber(r,{unit:"week"}):kf(r,t.length)},d:function(e,t,n){return"do"===t?n.ordinalNumber(e.getUTCDate(),{unit:"date"}):function(e,t){return kf(e.getUTCDate(),t.length)}(e,t)},D:function(e,t,n){var r=function(e){lf(1,arguments);var t=sf(e),n=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var r=n-t.getTime();return Math.floor(r/864e5)+1}(e);return"Do"===t?n.ordinalNumber(r,{unit:"dayOfYear"}):kf(r,t.length)},E:function(e,t,n){var r=e.getUTCDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){var o=e.getUTCDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(a);case"ee":return kf(a,2);case"eo":return n.ordinalNumber(a,{unit:"day"});case"eee":return n.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(o,{width:"short",context:"formatting"});default:return n.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){var o=e.getUTCDay(),a=(o-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(a);case"cc":return kf(a,t.length);case"co":return n.ordinalNumber(a,{unit:"day"});case"ccc":return n.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(o,{width:"narrow",context:"standalone"});case"cccccc":return n.day(o,{width:"short",context:"standalone"});default:return n.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,n){var r=e.getUTCDay(),o=0===r?7:r;switch(t){case"i":return String(o);case"ii":return kf(o,t.length);case"io":return n.ordinalNumber(o,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){var r=e.getUTCHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){var r,o=e.getUTCHours();switch(r=12===o?"noon":0===o?"midnight":o/12>=1?"pm":"am",t){case"b":case"bb":case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){var r,o=e.getUTCHours();switch(r=o>=17?"evening":o>=12?"afternoon":o>=4?"morning":"night",t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if("ho"===t){var r=e.getUTCHours()%12;return 0===r&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return function(e,t){return kf(e.getUTCHours()%12||12,t.length)}(e,t)},H:function(e,t,n){return"Ho"===t?n.ordinalNumber(e.getUTCHours(),{unit:"hour"}):function(e,t){return kf(e.getUTCHours(),t.length)}(e,t)},K:function(e,t,n){var r=e.getUTCHours()%12;return"Ko"===t?n.ordinalNumber(r,{unit:"hour"}):kf(r,t.length)},k:function(e,t,n){var r=e.getUTCHours();return 0===r&&(r=24),"ko"===t?n.ordinalNumber(r,{unit:"hour"}):kf(r,t.length)},m:function(e,t,n){return"mo"===t?n.ordinalNumber(e.getUTCMinutes(),{unit:"minute"}):function(e,t){return kf(e.getUTCMinutes(),t.length)}(e,t)},s:function(e,t,n){return"so"===t?n.ordinalNumber(e.getUTCSeconds(),{unit:"second"}):function(e,t){return kf(e.getUTCSeconds(),t.length)}(e,t)},S:function(e,t){return function(e,t){var n=t.length,r=e.getUTCMilliseconds();return kf(Math.floor(r*Math.pow(10,n-3)),t.length)}(e,t)},X:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();if(0===o)return"Z";switch(t){case"X":return Cf(o);case"XXXX":case"XX":return Tf(o);default:return Tf(o,":")}},x:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"x":return Cf(o);case"xxxx":case"xx":return Tf(o);default:return Tf(o,":")}},O:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Sf(o,":");default:return"GMT"+Tf(o,":")}},z:function(e,t,n,r){var o=(r._originalDate||e).getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Sf(o,":");default:return"GMT"+Tf(o,":")}},t:function(e,t,n,r){var o=r._originalDate||e;return kf(Math.floor(o.getTime()/1e3),t.length)},T:function(e,t,n,r){return kf((r._originalDate||e).getTime(),t.length)}};function Sf(e,t){var n=e>0?"-":"+",r=Math.abs(e),o=Math.floor(r/60),a=r%60;if(0===a)return n+String(o);var i=t||"";return n+String(o)+i+kf(a,2)}function Cf(e,t){return e%60==0?(e>0?"-":"+")+kf(Math.abs(e)/60,2):Tf(e,t)}function Tf(e,t){var n=t||"",r=e>0?"-":"+",o=Math.abs(e);return r+kf(Math.floor(o/60),2)+n+kf(o%60,2)}var Of=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Df=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Pf=/^'([^]*?)'?$/,Nf=/''/g,If=/[a-zA-Z]/;function Af(e,t,n){lf(2,arguments);var r=String(t),o=n||{},a=o.locale||of,i=a.options&&a.options.firstWeekContainsDate,l=null==i?1:af(i),s=null==o.firstWeekContainsDate?l:af(o.firstWeekContainsDate);if(!(s>=1&&s<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var u=a.options&&a.options.weekStartsOn,c=null==u?0:af(u),d=null==o.weekStartsOn?c:af(o.weekStartsOn);if(!(d>=0&&d<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!a.localize)throw new RangeError("locale must contain localize property");if(!a.formatLong)throw new RangeError("locale must contain formatLong property");var f=sf(e);if(!function(e){lf(1,arguments);var t=sf(e);return!isNaN(t)}(f))throw new RangeError("Invalid time value");var p=function(e){var t=new Date(e.getTime()),n=Math.ceil(t.getTimezoneOffset());return t.setSeconds(0,0),6e4*n+(n>0?(6e4+pf(t))%6e4:pf(t))}(f),h=uf(f,p),m={firstWeekContainsDate:s,weekStartsOn:d,locale:a,_originalDate:f},g=r.match(Df).map((function(e){var t=e[0];return"p"===t||"P"===t?(0,ff[t])(e,a.formatLong,m):e})).join("").match(Of).map((function(e){if("''"===e)return"'";var t=e[0];if("'"===t)return function(e){return e.match(Pf)[1].replace(Nf,"'")}(e);var n=Ef[t];if(n)return!o.useAdditionalWeekYearTokens&&function(e){return-1!==mf.indexOf(e)}(e)&&gf(e),!o.useAdditionalDayOfYearTokens&&function(e){return-1!==hf.indexOf(e)}(e)&&gf(e),n(h,e,a.localize,m);if(t.match(If))throw new RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return e})).join("");return g}function Lf(e,t){lf(2,arguments);var n=sf(e),r=af(t);return isNaN(r)?new Date(NaN):r?(n.setDate(n.getDate()+r),n):n}function Rf(e,t){lf(1,arguments);var n=e||{},r=sf(n.start),o=sf(n.end).getTime();if(!(r.getTime()<=o))throw new RangeError("Invalid interval");var a=[],i=r;i.setHours(0,0,0,0);var l=t&&"step"in t?Number(t.step):1;if(l<1||isNaN(l))throw new RangeError("`options.step` must be a number greater than 1");for(;i.getTime()<=o;)a.push(sf(i)),i.setDate(i.getDate()+l),i.setHours(0,0,0,0);return a}function jf(e,t){lf(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.weekStartsOn,a=null==o?0:af(o),i=null==n.weekStartsOn?a:af(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=sf(e),s=l.getDay(),u=6+(s<i?-7:0)-(s-i);return l.setDate(l.getDate()+u),l.setHours(23,59,59,999),l}function Mf(e){lf(1,arguments);var t=sf(e);return t.setDate(1),t.setHours(0,0,0,0),t}function Ff(e,t){lf(1,arguments);var n=t||{},r=n.locale,o=r&&r.options&&r.options.weekStartsOn,a=null==o?0:af(o),i=null==n.weekStartsOn?a:af(n.weekStartsOn);if(!(i>=0&&i<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var l=sf(e),s=l.getDay(),u=(s<i?7:0)+s-i;return l.setDate(l.getDate()-u),l.setHours(0,0,0,0),l}var Bf=function(e){return Af(e,"dd")},zf=function(e){return Af(e,"eeeeee")},$f=function(e){return Af(e,"MMMM yyyy")};function Uf(e){var t=e.year,n=e.month,o=e.firstDayOfWeek,a=void 0===o?1:o,i=e.dayLabelFormat,l=void 0===i?Bf:i,s=e.weekdayLabelFormat,u=void 0===s?zf:s,c=e.monthLabelFormat,d=void 0===c?$f:c;return{days:r.useMemo((function(){return function(e){var t=e.year,n=e.month,r=e.firstDayOfWeek,o=void 0===r?1:r,a=e.dayLabelFormat,i=void 0===a?function(e){return Af(e,"dd")}:a,l=new Date(t,n),s=Mf(l),u=function(e){return lf(1,arguments),sf(e).getDay()}(s),c=function(e){lf(1,arguments);var t=sf(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}(l);return function(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,l=a.length;i<l;i++,o++)r[o]=a[i];return r}(Array.from(Array(u>=o?u-o:6-o+u+1).keys()).fill(0),Rf({start:s,end:c}).map((function(e){return{date:e,dayLabel:i(e)}})))}({year:t,month:n,firstDayOfWeek:a,dayLabelFormat:l})}),[t,n,a,l]),weekdayLabels:r.useMemo((function(){return function(e){var t=void 0===e?{}:e,n=t.firstDayOfWeek,r=void 0===n?1:n,o=t.weekdayLabelFormat,a=void 0===o?function(e){return Af(e,"iiiiii")}:o,i=new Date;return Rf({start:Lf(Ff(i),r),end:Lf(jf(i),r)}).reduce((function(e,t){return e.push(a(t)),e}),[])}({firstDayOfWeek:a,weekdayLabelFormat:u})}),[a,u]),monthLabel:d(new Date(t,n))}}function Hf(e,t){lf(2,arguments);var n=sf(e),r=sf(t);return n.getTime()<r.getTime()}function Vf(e,t){lf(2,arguments);var n=sf(e),r=sf(t);return n.getTime()>r.getTime()}function qf(e,t){lf(2,arguments);var n=t||{},r=sf(e).getTime(),o=sf(n.start).getTime(),a=sf(n.end).getTime();if(!(o<=a))throw new RangeError("Invalid interval");return r>=o&&r<=a}function Wf(e){lf(1,arguments);var t=sf(e);return t.setHours(0,0,0,0),t}function Gf(e,t){lf(2,arguments);var n=Wf(e),r=Wf(t);return n.getTime()===r.getTime()}function Zf(e,t){lf(2,arguments);var n=sf(e),r=af(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var o=n.getDate(),a=new Date(n.getTime());return a.setMonth(n.getMonth()+r+1,0),o>=a.getDate()?a:(n.setFullYear(a.getFullYear(),a.getMonth(),o),n)}var Qf=function(e,t){return void 0===e&&(e=[]),e.some((function(e){return Gf(t,e)}))};function Yf(e){var t=Mf(e);return{year:function(e){return lf(1,arguments),sf(e).getFullYear()}(t),month:function(e){return lf(1,arguments),sf(e).getMonth()}(t),date:t}}function Xf(e,t){var n=Yf(t||Wf(Date.now())),r=n.date,o=[n];return e>1&&(o=Array.from(Array(e-1).keys()).reduce((function(e){return r=Zf(e[e.length-1].date,1),e.concat([Yf(r)])}),o)),o}function Kf(e,t,n,r){var o=e[r?n>0?0:e.length-r:n>0?e.length-1:0].date;return Array.from(Array(t).keys()).reduce((function(e){return o=0===e.length?Zf(o,n):Zf(o,n>=0?1:-1),n>0?e.concat([Yf(o)]):[Yf(o)].concat(e)}),[])}function Jf(e){var t=e.startDate,n=e.endDate,r=e.isDateBlocked,o=e.minBookingDays,a=e.exactMinBookingDays,i=e.minBookingDate,l=e.maxBookingDate,s=!i||!Hf(t,Lf(i,-1)),u=!l||!Vf(Lf(t,o-1),l);return!((!t||1!==o||n||r(t))&&(t&&o>1&&!n&&!a||t&&o>0&&a&&s&&u||t&&o>0&&a&&!i&&!l?Rf({start:t,end:Lf(t,o-1)}).some((function(e){return r(e)})):!t||!n||a||Hf(n,Lf(t,o-1))||Rf({start:t,end:n}).some((function(e){return r(e)}))))}function ep(e){var t=e.startDate,n=e.endDate,o=e.focusedInput,a=e.minBookingDate,i=e.maxBookingDate,l=e.onDatesChange,s=e.initialVisibleMonth,u=e.exactMinBookingDays,c=void 0!==u&&u,d=e.minBookingDays,f=void 0===d?1:d,p=e.numberOfMonths,h=void 0===p?2:p,m=e.firstDayOfWeek,g=void 0===m?1:m,v=e.isDateBlocked,b=void 0===v?function(){return!1}:v,y=e.unavailableDates,w=void 0===y?[]:y,x=e.changeActiveMonthOnSelect,_=void 0===x||x,k=r.useState((function(){return Xf(h,t||s||null)})),E=k[0],S=k[1],C=r.useState(null),T=C[0],O=C[1],D=r.useState(t),P=D[0],N=D[1];r.useEffect((function(){return"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("keydown",R),function(){window.removeEventListener&&window.removeEventListener("keydown",R)}}));var I=function(e){return Qf(w,e)||b(e)},A=function(e){N(e),(!P||P&&!Gf(e,P))&&S(Xf(h,e))},L=function(e){return function(e){var t=e.date,n=e.minBookingDate,r=e.maxBookingDate,o=e.isDateBlockedFn,a=e.startDate,i=e.endDate,l=e.minBookingDays,s=void 0===l?1:l,u=e.unavailableDates,c=void 0===u?[]:u,d=n?new Date(n.getFullYear(),n.getMonth(),n.getDate(),0,0,0):n,f=r?new Date(r.getFullYear(),r.getMonth(),r.getDate(),0,0,0):r;return!!(Qf(c,t)||d&&Hf(t,d)||f&&Vf(t,f)||a&&!i&&s>1&&qf(t,{start:a,end:Lf(a,s-2)})||o&&o(t))}({date:e,minBookingDate:a,maxBookingDate:i,startDate:t,endDate:n,minBookingDays:f,isDateBlockedFn:I})};function R(e){if(("ArrowRight"===e.key||"ArrowLeft"===e.key||"ArrowDown"===e.key||"ArrowUp"===e.key)&&!P){var t=E[0];A(t.date),S(Xf(h,t.date))}}var j=r.useCallback((function(){S(Kf(E,h,-1)),N(null)}),[E,h]),M=r.useCallback((function(){S(Kf(E,h,-1,1)),N(null)}),[E,h]),F=r.useCallback((function(){S(Kf(E,h,1)),N(null)}),[E,h]),B=r.useCallback((function(){S(Kf(E,h,1,1)),N(null)}),[E,h]),z=r.useCallback((function(e){S(Xf(h,e)),N(null)}),[h]),$=r.useCallback((function(e){void 0===e&&(e=1),S(Kf(E,h,-(12*e-h+1))),N(null)}),[E,h]),U=r.useCallback((function(e){void 0===e&&(e=1),S(Kf(E,h,12*e-h+1)),N(null)}),[E,h]);return{firstDayOfWeek:g,activeMonths:E,isDateSelected:function(e){return function(e,t,n){return!(!t||!n)&&qf(e,{start:t,end:n})}(e,t,n)},isDateHovered:function(e){return o=(r={date:e,hoveredDate:T,startDate:t,endDate:n,minBookingDays:f,exactMinBookingDays:c,isDateBlocked:I}).date,a=r.startDate,i=r.endDate,l=r.isDateBlocked,u=r.minBookingDays,(s=r.hoveredDate)&&u>1&&r.exactMinBookingDays&&qf(o,{start:s,end:Lf(s,u-1)})?!Rf({start:s,end:Lf(s,u-1)}).some((function(e){return l(e)})):a&&!i&&s&&qf(o,{start:a,end:Lf(a,u-1)})&&Gf(a,s)&&u>1?!Rf({start:a,end:Lf(a,u-1)}).some((function(e){return l(e)})):!(!a||i||!s||Hf(s,a)||!qf(o,{start:a,end:s})||Rf({start:a,end:s}).some((function(e){return l(e)})));var r,o,a,i,l,s,u},isFirstOrLastSelectedDate:function(e){return function(e,t,n){return!!(t&&Gf(e,t)||n&&Gf(e,n))}(e,t,n)},isStartDate:function(e){return function(e,t){return!(!t||!Gf(e,t))}(e,t)},isEndDate:function(e){return function(e,t){return!(!t||!Gf(e,t))}(e,n)},isDateBlocked:L,numberOfMonths:h,isDateFocused:function(e){return!!P&&Gf(e,P)},focusedDate:P,hoveredDate:T,onResetDates:function(){l({startDate:null,endDate:null,focusedInput:"startDate"})},onDateHover:function(e){if(e){if(e){var r=!L(e)||t&&Gf(e,t),o=!a||!Hf(e,Lf(a,-1)),l=!i||!Vf(e,i),s=Lf(e,f-1),u=!a||!Hf(s,a),d=!i||!Vf(s,i),p=c&&f>1&&o&&l&&u&&d,h=t&&!n&&!c&&o&&l,m=!(f>1&&t)||qf(e,{start:t,end:Lf(t,f-2)}),g=t&&Gf(e,t)&&m;r&&(p||h||g)?O(e):null!==T&&O(null)}}else O(null)},onDateSelect:function(e){("endDate"===o||"startDate"===o)&&f>0&&c&&Jf({minBookingDays:f,exactMinBookingDays:c,minBookingDate:a,maxBookingDate:i,isDateBlocked:I,startDate:e,endDate:null})?l({startDate:e,endDate:Lf(e,f-1),focusedInput:null}):("endDate"===o&&t&&Hf(e,t)||"startDate"===o&&n&&Vf(e,n))&&!c&&Jf({minBookingDays:f,isDateBlocked:I,startDate:e,endDate:null})?l({endDate:null,startDate:e,focusedInput:"endDate"}):"startDate"===o&&!c&&Jf({minBookingDays:f,isDateBlocked:I,endDate:n,startDate:e})?l({endDate:n,startDate:e,focusedInput:"endDate"}):"startDate"===o&&!c&&Jf({minBookingDays:f,isDateBlocked:I,endDate:null,startDate:e})?l({endDate:null,startDate:e,focusedInput:"endDate"}):"endDate"===o&&t&&!Hf(e,t)&&!c&&Jf({minBookingDays:f,isDateBlocked:I,startDate:t,endDate:e})&&l({startDate:t,endDate:e,focusedInput:null}),"endDate"!==o&&(!P||P&&!Gf(e,P))&&_&&S(Xf(h,e))},onDateFocus:A,goToPreviousMonths:j,goToPreviousMonthsByOneMonth:M,goToNextMonths:F,goToNextMonthsByOneMonth:B,goToDate:z,goToPreviousYear:$,goToNextYear:U}}const tp=r.createContext(null),np=()=>r.useContext(tp),rp=({day:e,index:t,fullMonthDays:n,disabled:o=!1})=>{const a=n[t],{mode:i,startDate:l,endDate:s,onDateSelect:u}=np(),c=r.useRef(null),d=Vd(a)===Vd(new Date),f="range"===i&&qd(a,l,s),p=r.useCallback((()=>u(a)),[a,u]),h=Wd(a,l),m="range"===i&&Wd(a,s),g=h||m||f;if(!e)return null;const v=((e,t,n,r,o)=>{if(!n)return"";if(!r||!o)return Vc.dayBorderLeftAndRight;const{prevIndex:a,nextIndex:i}=((e,t)=>{const n=e-1,r=e+1;return{prevIndex:n>=0?n:null,nextIndex:r<t.length?r:null}})(e,t),l=null!==a&&qd(t[a],r,o),s=null!==i&&qd(t[i],r,o),u=null!==a&&Wd(t[a],r)||l,c=null!==i&&Wd(t[i],r)||s;let d="";return n&&(d=e%7==0?c?Vc.dayBorderLeft:Vc.dayBorderLeftAndRight:e%7==6?u?Vc.dayBorderRight:Vc.dayBorderLeftAndRight:u&&c?"":u?Vc.dayBorderRight:c?Vc.dayBorderLeft:Vc.dayBorderLeftAndRight),d})(t,n,g,l,s);return We("td",{onClick:p,ref:c,className:Qe(Vc.dayContainer,g&&Vc.dayBorderTopAndBottom,o&&Vc.dayDisabled,d&&Vc.dayIsToday,v),children:Ge("div",{className:Vc.day,children:[We(Vs,{variant:"label2",children:parseInt(e,10)}),d&&We(Vs,{variant:"label2",className:Vc.todayIndicator,children:"\u25ac"})]})})},op=({year:e,monthNumber:t,size:n,yearStep:o=10})=>{const a=r.useRef(null),i=r.useRef(null),{goToDate:l,changeYearMode:s,setChangeYearMode:u}=np(),c=r.useRef(null),{y:d}=eu(c),[f,p]=r.useState((()=>parseInt(e)-o)),[h,m]=r.useState((()=>parseInt(e)+o)),g=Array.from({length:h-f+1},((e,t)=>f+t));Ys(a,(()=>{u(!1)}));return r.useEffect((()=>{if(s&&i.current&&c.current){const e=i.current.offsetTop,t=i.current.offsetHeight,n=e-c.current.clientHeight/2+t/2;c.current.scrollTop=n}}),[s]),r.useEffect((()=>{var e,t;const n=null==(e=null==c?void 0:c.current)?void 0:e.scrollHeight,r=null==(t=null==c?void 0:c.current)?void 0:t.clientHeight;if(!n||!r)return;const a=d/(n-r)*100;a>90&&m((e=>Math.min(e+o,fp))),a<10&&p((e=>Math.max(e-o,dp)))}),[d,o]),Ge("div",{ref:a,className:Qe(Vc.changeYear,s&&Vc.changeYearActive),onClick:()=>{u(!s)},children:[Ge("div",{className:Qe(Vc.year,Vc.yearAndIcon),children:[We(Vs,{component:"span",variant:"large"===n?"label1":"label2",children:e}),We("div",{className:Vc.changeYearIconContainer,children:We(s?Cs:Es,{color:"primary"})})]}),We("div",{className:Qe(Vc.yearDropdown,!s&&Vc.yearDropdownHidden),ref:c,children:g.map((r=>We("div",{className:Vc.year,onClick:()=>(e=>{const n=new Date(e,t,1);l(n),u(!1)})(r),ref:r===parseInt(e)?i:null,children:We(Vs,{component:"span",variant:"large"===n?"label1":"label2",children:r})},r)))})]})},ap=({direction:e,onClick:t,className:n})=>{const r="previous"===e?js:Ms;return We("button",{className:Qe(Vc.button,n),type:"button",onClick:t,children:We(r,{color:"primary"})})},ip=({monthLabel:e,monthNumber:t,size:n})=>{const{goToPreviousMonths:r,goToNextMonths:o}=np(),[a,i]=e.split(" ");return Ge("div",{className:Vc.header,children:[We(ap,{direction:"previous",onClick:r,className:Vc.previousMonthButton}),Ge("div",{className:Vc.monthAndYear,children:[We(Vs,{className:Vc.month,component:"span",variant:"large"===n?"label1":"label2",children:a}),We(op,{year:i,monthNumber:t,size:n})]}),We(ap,{direction:"next",onClick:o,className:Vc.nextMonthButton})]})},lp=({weekdayLabels:e})=>We("tr",{children:e.map(((e,t)=>We("th",{children:We("div",{className:Vc.weekDay,children:We(Vs,{variant:"label2",children:e[0]})})},t)))}),sp=({days:e})=>{const t=Gd(e),n=new Date(t[15]).getMonth();return We(qe,{children:Array.from({length:6}).map(((e,r)=>We("tr",{children:Array.from({length:7}).map(((e,o)=>{const a=7*r+o,i=t[a];return We(rp,{index:a,day:i.getDate().toString(),fullMonthDays:t,disabled:i.getMonth()!==n},`day-${a}`)}))},`week-${r}`)))})},up=({size:e="large",year:t,month:n,firstDayOfWeek:r})=>{const o=np(),a=(null==o?void 0:o.size)??e,{days:i,weekdayLabels:l,monthLabel:s}=Uf({year:t,month:n,firstDayOfWeek:r});return Ge(qe,{children:[We(ip,{monthLabel:s,monthNumber:n,size:a}),Ge("table",{className:Vc.monthTable,children:[We("thead",{children:We(lp,{weekdayLabels:l})}),We("tbody",{children:We(sp,{days:i})})]})]})},cp=({children:e,arrowOffset:t,arrowPosition:n="top",arrowSize:r=10,rootRef:o,...a})=>{const i=bs(a),l={width:`${r}px`,height:`${r}px`,transform:"rotate(45deg)"};return["top","bottom"].includes(n)?(l.left=`${t}px`,l[n]=`-${r/2}px`):(l.top=`${t}px`,l[n]=`-${r/2}px`),We("div",{ref:o,...ws(a),className:Qe(i.className,a.className,Pd.root),children:t?Ge(qe,{children:[We("div",{className:Pd.arrowTip,style:l}),We("div",{className:Pd.content,children:e})]}):e})};cp.classes=Pd;const dp=1850,fp=2100,pp=({open:e,handleRef:t,size:n="large",mode:o="date",disabled:a=!1,onStartDateChange:i,onEndDateChange:l,onClose:s,onCalendarClickaway:u,startDate:c,endDate:d,calendarType:f="startDate",minDate:p=new Date(dp,0,1),maxDate:h=new Date(fp,0,1),tooltipArrowOffset:m,...g})=>{const v=bs(g),b=r.useRef(null),[y,w]=r.useState(c?Ud(c,p,h).date:null),[x,_]=r.useState(d?Ud(d,p,h).date:null),[k,E]=r.useState(!1);Ys(b,(t=>{e&&(u&&u(t),void 0===e&&s&&s())}));const{activeMonths:S,onDateFocus:C,onDateSelect:T,goToPreviousMonths:O,goToNextMonths:D,goToDate:P}=ep({startDate:y,endDate:x,focusedInput:"startDate",onDatesChange:e=>{const t=((e,t,n,r)=>{let o=t,a=n;const i=r.startDate;return i?("startDate"===e?(!a||a&&i.getTime()<=a.getTime())&&(o=i):"endDate"===e&&(!o||o&&i.getTime()>=o.getTime())&&(a=i),{newStartDate:o,newEndDate:a}):{newStartDate:o,newEndDate:a}})(f,y,x,e),{newStartDate:n,newEndDate:r}=t;n!==y&&(null==i||i(n??new Date),w(n)),r!==x&&"range"===o&&(null==l||l(r??new Date),_(r))},numberOfMonths:1});r.useEffect((()=>{const e=Ud(c,p,h);if(Wd(e.date,y)||w(e.isValid?e.date:null),"range"===o){const e=Ud(d,p,h);Wd(e.date,x)||_(e.isValid?e.date:null)}}),[c,d,o,p,h,y,x]),r.useEffect((()=>{y&&C(y)}),[y]),r.useEffect((()=>{x&&C(x)}),[x]);const N=nu(t,e);return We(tp.Provider,{value:{size:n,mode:o,startDate:y,endDate:x,onDateFocus:C,onDateSelect:T,goToPreviousMonths:O,goToNextMonths:D,goToDate:P,changeYearMode:k,setChangeYearMode:E},children:We(cp,{...g,className:Qe({...ws(g)},v.className,g.className,Vc.root,Vc[n],e&&Vc.open,a&&Vc.disabled),rootRef:b,style:{...N,...g.style??{}},arrowOffset:m,children:We("div",{className:Qe(Vc.container),children:S.map(((e,t)=>We(up,{year:e.year,month:e.month,firstDayOfWeek:0,size:n},`${e.year}-${e.month}-${t}`)))})})})};pp.classes=Vc;const hp=(e,t)=>t&&(null==e?void 0:e.composedPath().includes(t))||!1,mp=({label:e,size:t="large",value:n,onChange:o,withCalendar:a=!0,variant:i="underlined",...l})=>{const s=bs(l),u=r.useRef(null),c=r.useRef(null),[d,f]=r.useState(!1),p=void 0!==n,h=Ye({value:n,defaultValue:"",onChange:o,getInput:()=>{var e;return null==(e=u.current)?void 0:e.querySelector(`input.${$d.classes.input}`)}});return We("div",{id:(l.id||"date-picker")+"-input",ref:u,className:Qe({...ws(l)},l.className,s.className,td.root,td[t]),children:We($d,{label:e,size:t,variant:i,icon:a&&We(Us,{color:"primary"}),onIconClick:()=>f((e=>!e)),value:p||d?h.value:void 0,onChange:h.onChange,calendarIconRef:c,...l,children:We(au,{id:"calendar",children:a&&We(pp,{...ys(l),onStartDateChange:e=>(e=>h.setValue(Hd(e)))(e),open:d,onCalendarClickaway:e=>{hp(e,c.current)||f(!1)},handleRef:u,startDate:h.value,disabled:l.disabled,className:td.calendar})})})})};mp.classes=td;const gp=({title:e,information:t,onClose:n,size:r="large",toastRef:o,children:a,icon:i,actions:l,...s})=>{const u=bs(s),c=!t,d=void 0===i?Ns:i;return Ge("div",{ref:o,...ws(s),className:Qe(s.className,u.className,Cd.root,Cd[r]),children:[We("div",{className:Qe(c?Cd.inlineIconContainer:Cd.columnIconContainer),children:d&&We(d,{color:"primary",className:Cd.icon})}),Ge("div",{className:c?Cd.inlineContainer:Cd.columnContainer,children:[Ge("div",{className:Qe(Cd.textContainer),children:[!!e&&We(Vs,{className:Cd.title,component:"div",variant:"small"===r?"label2":"label1",children:e}),!!t&&We(Vs,{className:Cd.information,component:"div",variant:"small"===r?"label2":"label1",children:t})]}),!!l&&We("div",{className:Qe(Cd.buttonContainer,c?Cd.inlineButtonContainer:Cd.columnButtonContainer),children:l})]}),We(Bu,{onClick:n,className:Cd.closeButton,size:"medium",children:We(Ps,{color:"primary"})})]})};gp.classes=Cd;var vp=(e,t)=>(e=>"function"==typeof e)(e)?e(t):e,bp=(()=>{let e=0;return()=>(++e).toString()})(),yp=new Map,wp=e=>{if(yp.has(e))return;let t=setTimeout((()=>{yp.delete(e),Ep({type:4,toastId:e})}),1e3);yp.set(e,t)},xp=(e,t)=>{switch(t.type){case 0:return{...e,toasts:[t.toast,...e.toasts].slice(0,20)};case 1:return t.toast.id&&(e=>{let t=yp.get(e);t&&clearTimeout(t)})(t.toast.id),{...e,toasts:e.toasts.map((e=>e.id===t.toast.id?{...e,...t.toast}:e))};case 2:let{toast:n}=t;return e.toasts.find((e=>e.id===n.id))?xp(e,{type:1,toast:n}):xp(e,{type:0,toast:n});case 3:let{toastId:r}=t;return r?wp(r):e.toasts.forEach((e=>{wp(e.id)})),{...e,toasts:e.toasts.map((e=>e.id===r||void 0===r?{...e,visible:!1}:e))};case 4:return void 0===t.toastId?{...e,toasts:[]}:{...e,toasts:e.toasts.filter((e=>e.id!==t.toastId))};case 5:return{...e,pausedAt:t.time};case 6:let o=t.time-(e.pausedAt||0);return{...e,pausedAt:void 0,toasts:e.toasts.map((e=>({...e,pauseDuration:e.pauseDuration+o})))}}},_p=[],kp={toasts:[],pausedAt:void 0},Ep=e=>{kp=xp(kp,e),_p.forEach((e=>{e(kp)}))},Sp={blank:4e3,error:4e3,success:2e3,loading:1/0,custom:4e3},Cp=e=>(t,n)=>{let r=((e,t="blank",n)=>({createdAt:Date.now(),visible:!0,type:t,ariaProps:{role:"status","aria-live":"polite"},message:e,pauseDuration:0,...n,id:(null==n?void 0:n.id)||bp()}))(t,e,n);return Ep({type:2,toast:r}),r.id},Tp=(e,t)=>Cp("blank")(e,t);Tp.error=Cp("error"),Tp.success=Cp("success"),Tp.loading=Cp("loading"),Tp.custom=Cp("custom"),Tp.dismiss=e=>{Ep({type:3,toastId:e})},Tp.remove=e=>Ep({type:4,toastId:e}),Tp.promise=(e,t,n)=>{let r=Tp.loading(t.loading,{...n,...null==n?void 0:n.loading});return e.then((e=>(Tp.success(vp(t.success,e),{id:r,...n,...null==n?void 0:n.success}),e))).catch((e=>{Tp.error(vp(t.error,e),{id:r,...n,...null==n?void 0:n.error})})),e};var Op=(e,t)=>{Ep({type:1,toast:{id:e,height:t}})},Dp=()=>{Ep({type:5,time:Date.now()})},Pp=e=>{let{toasts:t,pausedAt:n}=((e={})=>{let[t,n]=r.useState(kp);r.useEffect((()=>(_p.push(n),()=>{let e=_p.indexOf(n);e>-1&&_p.splice(e,1)})),[t]);let o=t.toasts.map((t=>{var n,r;return{...e,...e[t.type],...t,duration:t.duration||(null==(n=e[t.type])?void 0:n.duration)||(null==e?void 0:e.duration)||Sp[t.type],style:{...e.style,...null==(r=e[t.type])?void 0:r.style,...t.style}}}));return{...t,toasts:o}})(e);r.useEffect((()=>{if(n)return;let e=Date.now(),r=t.map((t=>{if(t.duration===1/0)return;let n=(t.duration||0)+t.pauseDuration-(e-t.createdAt);if(!(n<0))return setTimeout((()=>Tp.dismiss(t.id)),n);t.visible&&Tp.dismiss(t.id)}));return()=>{r.forEach((e=>e&&clearTimeout(e)))}}),[t,n]);let o=r.useCallback((()=>{n&&Ep({type:6,time:Date.now()})}),[n]),a=r.useCallback(((e,n)=>{let{reverseOrder:r=!1,gutter:o=8,defaultPosition:a}=n||{},i=t.filter((t=>(t.position||a)===(e.position||a)&&t.height)),l=i.findIndex((t=>t.id===e.id)),s=i.filter(((e,t)=>t<l&&e.visible)).length;return i.filter((e=>e.visible)).slice(...r?[s+1]:[0,s]).reduce(((e,t)=>e+(t.height||0)+o),0)}),[t]);return{toasts:t,handlers:{updateHeight:Op,startPause:Dp,endPause:o,calculateOffset:a}}};const Np=r.createContext(null),Ip=({toastsPropsMap:e,className:t,...n})=>{const{toasts:r,handlers:o}=Pp(),{startPause:a,endPause:i,calculateOffset:l,updateHeight:s}=o;return We(au,{id:"toast",children:r.map((r=>{const o=e.get(r.id);if(!o)return console.warn("Could not find toast with id",r.id),null;const{position:u,duration:c,...d}=o,f=l(r,{reverseOrder:!1,gutter:8,defaultPosition:u}),{transform:p,positionClassName:h}=((e,t)=>{if(!e)return{positionClassName:"",transform:`translateY(${t}px)`};let n="";const r=e.includes("center"),o=e.includes("bottom");return"top-left"===e?n=Td.topLeft:"top-center"===e?n=Td.topCenter:"top-right"===e?n=Td.topRight:"bottom-left"===e?n=Td.bottomLeft:"bottom-center"===e?n=Td.bottomCenter:"bottom-right"===e&&(n=Td.bottomRight),{positionClassName:n,transform:`translateY(${o?-t:t}px) translateX(${r?"-50%":"0"})`}})(u,f);return We("div",{onMouseEnter:a,onMouseLeave:i,...n,className:Qe(Td.toastContainer,h,t),style:{transform:p,...n.style},children:We(gp,{className:Qe(d.className),toastRef:e=>{if(e&&"number"!=typeof r.height){const t=e.getBoundingClientRect().height;s(r.id,t)}},...d,style:{opacity:r.visible?1:0,...d.style},onClose:()=>{var e;Tp.dismiss(r.id),null==(e=d.onClose)||e.call(d)}},r.id)},`container-${r.id}`)}))})};const Ap=({size:e="large",disabled:t,variant:n="outlined",children:r,...o})=>{const a=bs(o);return We("div",{...ws(o),className:Qe(a.className,o.className,Od.root,Od[e],Od[n],t&&Od.disabled),children:We(mu.Provider,{value:{size:e,variant:n,disabled:t},children:r})})};Ap.classes=Od;const Lp=({startValue:e,endValue:t,onStartDateChange:n,onEndDateChange:o,size:a="large",variant:i="underlined",withCalendar:l=!0,label:s,supportingText:u,disabled:c,...d})=>{const f=bs(d),p=r.useRef(null),h=r.useRef(null),m=r.useRef(null),[g,v]=r.useState(null),b=void 0!==e,y=void 0!==t,w=Ye({value:e,defaultValue:"",onChange:n,getInput:()=>{var e;return null==(e=p.current)?void 0:e.querySelectorAll(`input.${$d.classes.input}`)[0]}}),x=Ye({value:t,defaultValue:"",onChange:o,getInput:()=>{var e;return null==(e=p.current)?void 0:e.querySelectorAll(`input.${$d.classes.input}`)[1]}}),_={...d,size:a,label:void 0,supportingText:void 0},k="startDate"===g||"endDate"===g;return Ge("div",{ref:p,className:Qe({...ws(d)},f.className,d.className,Dd.root,Dd[a],l&&Dd.withCalendar,k&&Dd.openCalendar,c&&Dd.disabled),children:[s&&We(Vs,{className:Dd.label,variant:"label2",component:"label",children:s}),Ge("div",{className:Qe(d.className,Dd.inputContainer,"outlined"===i&&Dd.outlined),children:[We($d,{variant:i,calendarIconRef:m,icon:l&&We(Us,{color:"primary"}),value:b||k?w.value:void 0,onIconClick:()=>v((e=>Zd(e,"startDate"))),onChange:e=>{x.value&&!Qd(e.target.value,x.value)||w.onChange(e)},..._}),We("div",{className:Dd.separator}),We($d,{variant:i,calendarIconRef:h,icon:l&&We(Us,{color:"primary"}),value:y||k?x.value:void 0,onIconClick:()=>v((e=>Zd(e,"endDate"))),onChange:e=>{w.value&&!Qd(w.value,e.target.value)||x.onChange(e)},..._})]}),u&&We("div",{className:Qe(Dd.supportingText),children:We(Vs,{variant:"label2",component:"p",children:u})}),l&&We(au,{id:"calendar",children:We(pp,{...ys(d),onStartDateChange:e=>{w.setValue(Hd(e)),v("endDate")},onEndDateChange:e=>x.setValue(Hd(e)),onCalendarClickaway:e=>{hp(e,h.current)||hp(e,m.current)||v(null)},calendarType:g,open:k,onClose:()=>v(null),handleRef:p,mode:"range",disabled:c,startDate:w.value,endDate:x.value,className:Dd.calendar,tooltipArrowOffset:Yd(g,a),size:a})})]})};Lp.classes=Dd,t.AddIcon=ks,t.ArrowForwardIcon=Ss,t.Autocomplete=su,t.Badge=cu,t.Breadcrumb=hu,t.BreadcrumbItem=fu,t.Button=vu,t.ButtonGroup=Ap,t.CALENDAR_MAX_YEAR=fp,t.CALENDAR_MIN_YEAR=dp,t.Calendar=pp,t.CalendarIcon=Us,t.Card=wu,t.CardBody=_u,t.CardHeader=Eu,t.CheckIcon=Ds,t.Checkbox=Ou,t.CheckboxGroup=Pu,t.CheckboxIcon=Ts,t.CheckboxOutlineBlankIcon=Os,t.ChevronDownIcon=Es,t.ChevronLeftIcon=js,t.ChevronRightIcon=Ms,t.ChevronUpIcon=Cs,t.CloseIcon=Ps,t.Collapse=Lu,t.CollapseHeader=Iu,t.DateField=$d,t.DatePicker=mp,t.DateRangePicker=Lp,t.Dropdown=ju,t.DropdownItem=Ws,t.DropdownMenu=ru,t.ErrorIcon=Ns,t.FolderIcon=Is,t.IconButton=Bu,t.IconButtonGroup=$u,t.KeyboardReturnIcon=As,t.LSD_NAMESPACE="lsd",t.LsdIcon=_s,t.MenuIcon=Ls,t.Modal=Fd,t.ModalBody=Bd,t.ModalFooter=zd,t.MoreIcon=Rs,t.NumberInput=Md,t.PickIcon=Bs,t.Quote=Hu,t.RadioButton=Wu,t.RadioButtonCheckedIcon=$s,t.RadioButtonGroup=Zu,t.RadioButtonIcon=zs,t.RemoveIcon=Hs,t.SearchIcon=Fs,t.THEME_BREAKPOINTS=fs,t.THEME_TYPOGRAPHY_PROPERTIES=ms,t.THEME_TYPOGRAPHY_VARIANTS=ps,t.THEME_VARIANT_PROPERTIES=["typography"],t.TabItem=Xu,t.Table=ac,t.TableBody=Ju,t.TableHeader=tc,t.TableItem=lc,t.TableRow=uc,t.Tabs=bc,t.Tag=wc,t.TextField=Sc,t.ThemeProvider=({theme:e,children:t,injectCssVars:n=!0})=>We(Rd,{children:We(Ld,{children:Ge(jd.Provider,{value:{theme:e},children:[We(Id,{theme:e}),n&&We(a.Global,{styles:e.globalStyles}),We(a.ThemeProvider,{theme:e,children:t})]})})}),t.Toast=gp,t.ToastContext=Np,t.ToastProvider=({providerToastOptions:e,children:t,...n})=>{const[o,a]=r.useState(new Map);return Ge(Np.Provider,{value:(t,n)=>{const r={...e,...n},o=Tp("",{duration:null==r?void 0:r.duration});t&&a((e=>{const n=new Map(e);return n.set(o,{...t,...r}),n}))},children:[t,We(Ip,{toastsPropsMap:o,...n})]})},t.TooltipBase=cp,t.Typography=Vs,t.createTheme=jc,t.createThemeGlobalStyles=Tc,t.defaultThemes=Fc,t.useTheme=()=>r.useContext(jd).theme??Fc.light,t.useToast=function(){const e=r.useContext(Np);if(!e)throw new Error("useToast must be used within a ToastProvider");return e},t.withTheme=e=>t=>e(t)},8417:(e,t,n)=>{"use strict";n.d(t,{Z:()=>oe});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(r){0}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode&&e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),o=Math.abs,a=String.fromCharCode,i=Object.assign;function l(e){return e.trim()}function s(e,t,n){return e.replace(t,n)}function u(e,t){return e.indexOf(t)}function c(e,t){return 0|e.charCodeAt(t)}function d(e,t,n){return e.slice(t,n)}function f(e){return e.length}function p(e){return e.length}function h(e,t){return t.push(e),e}var m=1,g=1,v=0,b=0,y=0,w="";function x(e,t,n,r,o,a,i){return{value:e,root:t,parent:n,type:r,props:o,children:a,line:m,column:g,length:i,return:""}}function _(e,t){return i(x("",null,null,"",null,null,0),e,{length:-e.length},t)}function k(){return y=b>0?c(w,--b):0,g--,10===y&&(g=1,m--),y}function E(){return y=b<v?c(w,b++):0,g++,10===y&&(g=1,m++),y}function S(){return c(w,b)}function C(){return b}function T(e,t){return d(w,e,t)}function O(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function D(e){return m=g=1,v=f(w=e),b=0,[]}function P(e){return w="",e}function N(e){return l(T(b-1,L(91===e?e+2:40===e?e+1:e)))}function I(e){for(;(y=S())&&y<33;)E();return O(e)>2||O(y)>3?"":" "}function A(e,t){for(;--t&&E()&&!(y<48||y>102||y>57&&y<65||y>70&&y<97););return T(e,C()+(t<6&&32==S()&&32==E()))}function L(e){for(;E();)switch(y){case e:return b;case 34:case 39:34!==e&&39!==e&&L(y);break;case 40:41===e&&L(e);break;case 92:E()}return b}function R(e,t){for(;E()&&e+y!==57&&(e+y!==84||47!==S()););return"/*"+T(t,b-1)+"*"+a(47===e?e:E())}function j(e){for(;!O(S());)E();return T(e,b)}var M="-ms-",F="-moz-",B="-webkit-",z="comm",$="rule",U="decl",H="@keyframes";function V(e,t){for(var n="",r=p(e),o=0;o<r;o++)n+=t(e[o],o,e,t)||"";return n}function q(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case U:return e.return=e.return||e.value;case z:return"";case H:return e.return=e.value+"{"+V(e.children,r)+"}";case $:e.value=e.props.join(",")}return f(n=V(e.children,r))?e.return=e.value+"{"+n+"}":""}function W(e){return P(G("",null,null,null,[""],e=D(e),0,[0],e))}function G(e,t,n,r,o,i,l,d,p){for(var m=0,g=0,v=l,b=0,y=0,w=0,x=1,_=1,T=1,O=0,D="",P=o,L=i,M=r,F=D;_;)switch(w=O,O=E()){case 40:if(108!=w&&58==c(F,v-1)){-1!=u(F+=s(N(O),"&","&\f"),"&\f")&&(T=-1);break}case 34:case 39:case 91:F+=N(O);break;case 9:case 10:case 13:case 32:F+=I(w);break;case 92:F+=A(C()-1,7);continue;case 47:switch(S()){case 42:case 47:h(Q(R(E(),C()),t,n),p);break;default:F+="/"}break;case 123*x:d[m++]=f(F)*T;case 125*x:case 59:case 0:switch(O){case 0:case 125:_=0;case 59+g:-1==T&&(F=s(F,/\f/g,"")),y>0&&f(F)-v&&h(y>32?Y(F+";",r,n,v-1):Y(s(F," ","")+";",r,n,v-2),p);break;case 59:F+=";";default:if(h(M=Z(F,t,n,m,g,o,d,D,P=[],L=[],v),i),123===O)if(0===g)G(F,t,M,M,P,i,v,d,L);else switch(99===b&&110===c(F,3)?100:b){case 100:case 108:case 109:case 115:G(e,M,M,r&&h(Z(e,M,M,0,0,o,d,D,o,P=[],v),L),o,L,v,d,r?P:L);break;default:G(F,M,M,M,[""],L,0,d,L)}}m=g=y=0,x=T=1,D=F="",v=l;break;case 58:v=1+f(F),y=w;default:if(x<1)if(123==O)--x;else if(125==O&&0==x++&&125==k())continue;switch(F+=a(O),O*x){case 38:T=g>0?1:(F+="\f",-1);break;case 44:d[m++]=(f(F)-1)*T,T=1;break;case 64:45===S()&&(F+=N(E())),b=S(),g=v=f(D=F+=j(C())),O++;break;case 45:45===w&&2==f(F)&&(x=0)}}return i}function Z(e,t,n,r,a,i,u,c,f,h,m){for(var g=a-1,v=0===a?i:[""],b=p(v),y=0,w=0,_=0;y<r;++y)for(var k=0,E=d(e,g+1,g=o(w=u[y])),S=e;k<b;++k)(S=l(w>0?v[k]+" "+E:s(E,/&\f/g,v[k])))&&(f[_++]=S);return x(e,t,n,0===a?$:c,f,h,m)}function Q(e,t,n){return x(e,t,n,z,a(y),d(e,2,-2),0)}function Y(e,t,n,r){return x(e,t,n,U,d(e,0,r),d(e,r+1,-1),r)}var X=function(e,t,n){for(var r=0,o=0;r=o,o=S(),38===r&&12===o&&(t[n]=1),!O(o);)E();return T(e,b)},K=function(e,t){return P(function(e,t){var n=-1,r=44;do{switch(O(r)){case 0:38===r&&12===S()&&(t[n]=1),e[n]+=X(b-1,t,n);break;case 2:e[n]+=N(r);break;case 4:if(44===r){e[++n]=58===S()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=a(r)}}while(r=E());return e}(D(e),t))},J=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(n))&&!r){J.set(e,!0);for(var o=[],a=K(t,o),i=n.props,l=0,s=0;l<a.length;l++)for(var u=0;u<i.length;u++,s++)e.props[s]=o[l]?a[l].replace(/&\f/g,i[u]):i[u]+" "+a[l]}}},te=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}};function ne(e,t){switch(function(e,t){return 45^c(e,0)?(((t<<2^c(e,0))<<2^c(e,1))<<2^c(e,2))<<2^c(e,3):0}(e,t)){case 5103:return B+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return B+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return B+e+F+e+M+e+e;case 6828:case 4268:return B+e+M+e+e;case 6165:return B+e+M+"flex-"+e+e;case 5187:return B+e+s(e,/(\w+).+(:[^]+)/,B+"box-$1$2"+M+"flex-$1$2")+e;case 5443:return B+e+M+"flex-item-"+s(e,/flex-|-self/,"")+e;case 4675:return B+e+M+"flex-line-pack"+s(e,/align-content|flex-|-self/,"")+e;case 5548:return B+e+M+s(e,"shrink","negative")+e;case 5292:return B+e+M+s(e,"basis","preferred-size")+e;case 6060:return B+"box-"+s(e,"-grow","")+B+e+M+s(e,"grow","positive")+e;case 4554:return B+s(e,/([^-])(transform)/g,"$1"+B+"$2")+e;case 6187:return s(s(s(e,/(zoom-|grab)/,B+"$1"),/(image-set)/,B+"$1"),e,"")+e;case 5495:case 3959:return s(e,/(image-set\([^]*)/,B+"$1$`$1");case 4968:return s(s(e,/(.+:)(flex-)?(.*)/,B+"box-pack:$3"+M+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+B+e+e;case 4095:case 3583:case 4068:case 2532:return s(e,/(.+)-inline(.+)/,B+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(f(e)-1-t>6)switch(c(e,t+1)){case 109:if(45!==c(e,t+4))break;case 102:return s(e,/(.+:)(.+)-([^]+)/,"$1"+B+"$2-$3$1"+F+(108==c(e,t+3)?"$3":"$2-$3"))+e;case 115:return~u(e,"stretch")?ne(s(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==c(e,t+1))break;case 6444:switch(c(e,f(e)-3-(~u(e,"!important")&&10))){case 107:return s(e,":",":"+B)+e;case 101:return s(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+B+(45===c(e,14)?"inline-":"")+"box$3$1"+B+"$2$3$1"+M+"$2box$3")+e}break;case 5936:switch(c(e,t+11)){case 114:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return B+e+M+s(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return B+e+M+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case U:e.return=ne(e.value,e.length);break;case H:return V([_(e,{value:s(e.value,"@","@"+B)})],r);case $:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return V([_(e,{props:[s(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return V([_(e,{props:[s(t,/:(plac\w+)/,":"+B+"input-$1")]}),_(e,{props:[s(t,/:(plac\w+)/,":-moz-$1")]}),_(e,{props:[s(t,/:(plac\w+)/,M+"input-$1")]})],r)}return""}))}}],oe=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o=e.stylisPlugins||re;var a,i,l={},s=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)l[t[n]]=!0;s.push(e)}));var u,c,d,f,h=[q,(f=function(e){u.insert(e)},function(e){e.root||(e=e.return)&&f(e)})],m=(c=[ee,te].concat(o,h),d=p(c),function(e,t,n,r){for(var o="",a=0;a<d;a++)o+=c[a](e,t,n,r)||"";return o});i=function(e,t,n,r){u=n,V(W(e?e+"{"+t.styles+"}":t.styles),m),r&&(g.inserted[t.name]=!0)};var g={key:t,sheet:new r({key:t,container:a,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend,insertionPoint:e.insertionPoint}),nonce:e.nonce,inserted:l,registered:{},insert:i};return g.sheet.hydrate(s),g}},45042:(e,t,n)=>{"use strict";function r(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}n.d(t,{Z:()=>r})},79626:(e,t,n)=>{"use strict";n.d(t,{C:()=>g,E:()=>T,T:()=>y,_:()=>v,a:()=>_,b:()=>k,c:()=>S,h:()=>h,i:()=>p,u:()=>w,w:()=>b});var r=n(67294),o=n(8417),a=n(87462),i=function(e){var t=new WeakMap;return function(n){if(t.has(n))return t.get(n);var r=e(n);return t.set(n,r),r}},l=n(8679),s=n.n(l),u=function(e,t){return s()(e,t)},c=n(70444),d=n(48137),f=n(27278),p=!0,h={}.hasOwnProperty,m=r.createContext("undefined"!=typeof HTMLElement?(0,o.Z)({key:"css"}):null);var g=m.Provider,v=function(){return(0,r.useContext)(m)},b=function(e){return(0,r.forwardRef)((function(t,n){var o=(0,r.useContext)(m);return e(t,o,n)}))};p||(b=function(e){return function(t){var n=(0,r.useContext)(m);return null===n?(n=(0,o.Z)({key:"css"}),r.createElement(m.Provider,{value:n},e(t,n))):e(t,n)}});var y=r.createContext({});var w=function(){return r.useContext(y)},x=i((function(e){return i((function(t){return function(e,t){return"function"==typeof t?t(e):(0,a.Z)({},e,t)}(e,t)}))})),_=function(e){var t=r.useContext(y);return e.theme!==t&&(t=x(t)(e.theme)),r.createElement(y.Provider,{value:t},e.children)};function k(e){var t=e.displayName||e.name||"Component",n=function(t,n){var o=r.useContext(y);return r.createElement(e,(0,a.Z)({theme:o,ref:n},t))},o=r.forwardRef(n);return o.displayName="WithTheme("+t+")",u(o,e)}var E="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",S=function(e,t){var n={};for(var r in t)h.call(t,r)&&(n[r]=t[r]);return n[E]=e,n},C=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;return(0,c.hC)(t,n,r),(0,f.L)((function(){return(0,c.My)(t,n,r)})),null};var T=b((function(e,t,n){var o=e.css;"string"==typeof o&&void 0!==t.registered[o]&&(o=t.registered[o]);var a=e[E],i=[o],l="";"string"==typeof e.className?l=(0,c.fp)(t.registered,i,e.className):null!=e.className&&(l=e.className+" ");var s=(0,d.O)(i,void 0,r.useContext(y));l+=t.key+"-"+s.name;var u={};for(var f in e)h.call(e,f)&&"css"!==f&&f!==E&&(u[f]=e[f]);return u.ref=n,u.className=l,r.createElement(r.Fragment,null,r.createElement(C,{cache:t,serialized:s,isStringTag:"string"==typeof a}),r.createElement(a,u))}))},70917:(e,t,n)=>{"use strict";n.r(t),n.d(t,{CacheProvider:()=>r.C,ClassNames:()=>h,Global:()=>u,ThemeContext:()=>r.T,ThemeProvider:()=>r.a,__unsafe_useEmotionCache:()=>r._,createElement:()=>s,css:()=>c,jsx:()=>s,keyframes:()=>d,useTheme:()=>r.u,withEmotionCache:()=>r.w,withTheme:()=>r.b});var r=n(79626),o=n(67294),a=n(70444),i=n(27278),l=n(48137),s=(n(8417),n(8679),function(e,t){var n=arguments;if(null==t||!r.h.call(t,"css"))return o.createElement.apply(void 0,n);var a=n.length,i=new Array(a);i[0]=r.E,i[1]=(0,r.c)(e,t);for(var l=2;l<a;l++)i[l]=n[l];return o.createElement.apply(null,i)}),u=(0,r.w)((function(e,t){var n=e.styles,s=(0,l.O)([n],void 0,o.useContext(r.T));if(!r.i){for(var u,c=s.name,d=s.styles,f=s.next;void 0!==f;)c+=" "+f.name,d+=f.styles,f=f.next;var p=!0===t.compat,h=t.insert("",{name:c,styles:d},t.sheet,p);return p?null:o.createElement("style",((u={})["data-emotion"]=t.key+"-global "+c,u.dangerouslySetInnerHTML={__html:h},u.nonce=t.sheet.nonce,u))}var m=o.useRef();return(0,i.j)((function(){var e=t.key+"-global",n=new t.sheet.constructor({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),r=!1,o=document.querySelector('style[data-emotion="'+e+" "+s.name+'"]');return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),null!==o&&(r=!0,o.setAttribute("data-emotion",e),n.hydrate([o])),m.current=[n,r],function(){n.flush()}}),[t]),(0,i.j)((function(){var e=m.current,n=e[0];if(e[1])e[1]=!1;else{if(void 0!==s.next&&(0,a.My)(t,s.next,!0),n.tags.length){var r=n.tags[n.tags.length-1].nextElementSibling;n.before=r,n.flush()}t.insert("",s,n,!1)}}),[t,s.name]),null}));function c(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,l.O)(t)}var d=function(){var e=c.apply(void 0,arguments),t="animation-"+e.name;return{name:t,styles:"@keyframes "+t+"{"+e.styles+"}",anim:1,toString:function(){return"_EMO_"+this.name+"_"+this.styles+"_EMO_"}}},f=function e(t){for(var n=t.length,r=0,o="";r<n;r++){var a=t[r];if(null!=a){var i=void 0;switch(typeof a){case"boolean":break;case"object":if(Array.isArray(a))i=e(a);else for(var l in i="",a)a[l]&&l&&(i&&(i+=" "),i+=l);break;default:i=a}i&&(o&&(o+=" "),o+=i)}}return o};var p=function(e){var t=e.cache,n=e.serializedArr;return(0,i.L)((function(){for(var e=0;e<n.length;e++)(0,a.My)(t,n[e],!1)})),null},h=(0,r.w)((function(e,t){var n=[],i=function(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];var i=(0,l.O)(r,t.registered);return n.push(i),(0,a.hC)(t,i,!1),t.key+"-"+i.name},s={css:i,cx:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return function(e,t,n){var r=[],o=(0,a.fp)(e,r,n);return r.length<2?n:o+t(r)}(t.registered,i,f(n))},theme:o.useContext(r.T)},u=e.children(s);return!0,o.createElement(o.Fragment,null,o.createElement(p,{cache:t,serializedArr:n}),u)}))},48137:(e,t,n)=>{"use strict";n.d(t,{O:()=>h});var r={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},o=n(45042),a=/[A-Z]|^ms/g,i=/_EMO_([^_]+?)_([^]*?)_EMO_/g,l=function(e){return 45===e.charCodeAt(1)},s=function(e){return null!=e&&"boolean"!=typeof e},u=(0,o.Z)((function(e){return l(e)?e:e.replace(a,"-$&").toLowerCase()})),c=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(i,(function(e,t,n){return f={name:t,styles:n,next:f},t}))}return 1===r[e]||l(e)||"number"!=typeof t||0===t?t:t+"px"};function d(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return f={name:n.name,styles:n.styles,next:f},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)f={name:r.name,styles:r.styles,next:f},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o<n.length;o++)r+=d(e,t,n[o])+";";else for(var a in n){var i=n[a];if("object"!=typeof i)null!=t&&void 0!==t[i]?r+=a+"{"+t[i]+"}":s(i)&&(r+=u(a)+":"+c(a,i)+";");else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var l=d(e,t,i);switch(a){case"animation":case"animationName":r+=u(a)+":"+l+";";break;default:r+=a+"{"+l+"}"}}else for(var f=0;f<i.length;f++)s(i[f])&&(r+=u(a)+":"+c(a,i[f])+";")}return r}(e,t,n);case"function":if(void 0!==e){var o=f,a=n(e);return f=o,d(e,t,a)}}if(null==t)return n;var i=t[n];return void 0!==i?i:n}var f,p=/label:\s*([^\s;\n{]+)\s*(;|$)/g;var h=function(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,o="";f=void 0;var a=e[0];null==a||void 0===a.raw?(r=!1,o+=d(n,t,a)):o+=a[0];for(var i=1;i<e.length;i++)o+=d(n,t,e[i]),r&&(o+=a[i]);p.lastIndex=0;for(var l,s="";null!==(l=p.exec(o));)s+="-"+l[1];var u=function(e){for(var t,n=0,r=0,o=e.length;o>=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+s;return{name:u,styles:o,next:f}}},27278:(e,t,n)=>{"use strict";var r;n.d(t,{L:()=>i,j:()=>l});var o=n(67294),a=!!(r||(r=n.t(o,2))).useInsertionEffect&&(r||(r=n.t(o,2))).useInsertionEffect,i=a||function(e){return e()},l=a||o.useLayoutEffect},70444:(e,t,n)=>{"use strict";n.d(t,{My:()=>a,fp:()=>r,hC:()=>o});function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var o=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},a=function(e,t,n){o(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}},19044:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{stroke:"#fff",d:"M9 17.5V.5M.5 9h17"})))}},80255:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M11.764 5.294 7.06 10l4.705 4.706",stroke:"#000",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"})))}},67146:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M11.667 6.417h-7.1l3.261-3.261L7 2.333 2.333 7 7 11.667l.823-.823-3.255-3.26h7.099V6.417Z",fill:"#fff"})))}},68425:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("rect",{width:20,height:20,rx:10,fill:"#000"})),o||(o=a.createElement("path",{d:"m9 8 2 2-2 2",stroke:"#fff",strokeWidth:1.2,strokeLinecap:"round",strokeLinejoin:"round"})))}},88121:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"m7 2.333-.823.823 3.255 3.26H2.333v1.167h7.1l-3.256 3.261.823.823L11.667 7 7 2.333Z",fill:"#fff"})))}},62082:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M20 20a3.21 3.21 0 0 1-2.354-.98 3.21 3.21 0 0 1-.98-2.353c0-.917.327-1.702.98-2.355A3.21 3.21 0 0 1 20 13.333a3.21 3.21 0 0 1 2.354.98 3.21 3.21 0 0 1 .98 2.354 3.21 3.21 0 0 1-.98 2.354A3.21 3.21 0 0 1 20 20Zm-6.666 6.667v-2.334c0-.472.121-.906.364-1.302.244-.396.567-.698.969-.906.86-.43 1.736-.754 2.625-.97A11.418 11.418 0 0 1 20 20.834c.917 0 1.82.108 2.709.324.888.215 1.763.538 2.625.968.402.208.725.51.969.907.243.396.364.83.364 1.301v2.334H13.333ZM15 25h10v-.667a.817.817 0 0 0-.417-.708 10.844 10.844 0 0 0-2.27-.843 9.652 9.652 0 0 0-4.625 0c-.764.187-1.521.468-2.271.843a.815.815 0 0 0-.303.292.776.776 0 0 0-.114.416V25Zm5-6.667c.459 0 .851-.163 1.178-.49.326-.326.49-.719.489-1.176 0-.459-.164-.851-.49-1.178A1.602 1.602 0 0 0 20 15c-.458 0-.85.164-1.177.49-.327.328-.49.72-.49 1.178 0 .458.164.85.49 1.177.327.327.72.49 1.177.49Z",fill:"#fff"})),o||(o=a.createElement("rect",{x:.5,y:.5,width:39,height:39,rx:19.5,stroke:"#fff"})))}},80469:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"m12.667 4.273-.94-.94L8.001 7.06 4.274 3.333l-.94.94L7.061 8l-3.727 3.727.94.94L8.001 8.94l3.726 3.727.94-.94L8.941 8l3.726-3.727Z",fill:"#fff",opacity:.6})))}},94793:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M2.917 12.833c-.321 0-.596-.114-.825-.343a1.121 1.121 0 0 1-.342-.823V3.5h1.167v8.167h6.416v1.166H2.917ZM5.25 10.5c-.32 0-.596-.114-.824-.343a1.121 1.121 0 0 1-.343-.824v-7c0-.32.115-.595.343-.824.229-.229.504-.343.824-.342h5.25c.32 0 .596.114.824.343.229.228.343.503.343.823v7c0 .321-.115.596-.343.825a1.121 1.121 0 0 1-.824.342H5.25Zm0-1.167h5.25v-7H5.25v7Z",fill:"#fff"})))}},14607:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M14.2 23.077c-1.733 0-3.147-1.575-3.147-3.504 0-1.926 1.379-3.5 3.149-3.5 1.75 0 3.183 1.574 3.148 3.5 0 1.929-1.398 3.504-3.15 3.504Zm11.623 0c-1.733 0-3.15-1.575-3.15-3.504 0-1.926 1.382-3.5 3.15-3.5 1.75 0 3.184 1.574 3.15 3.5 0 1.929-1.381 3.504-3.15 3.504ZM16.875 7.205l-.513-.938-1.057.175a27.255 27.255 0 0 0-6.93 2.133l-.38.177-.237.348C3.403 15.523 2.208 21.847 2.8 28.06l.065.677.55.4a28.181 28.181 0 0 0 8.463 4.238l1.317.403 1.855-4.528c3.183.787 6.717.788 9.898 0l1.845 4.53 1.317-.405a28.033 28.033 0 0 0 8.467-4.24l.545-.397.066-.67c.727-7.2-1.161-13.473-4.93-18.975l-.236-.345-.38-.173a27.625 27.625 0 0 0-6.924-2.133l-1.03-.172-.523.902c-.155.27-.301.544-.438.823a26.463 26.463 0 0 0-5.439 0c-.133-.266-.27-.53-.413-.79Zm-5.683 20.478c.328.19.675.377 1.016.547l-.748 1.827a25.041 25.041 0 0 1-5.713-2.964c-.375-5.231.688-10.508 4.273-15.95a24.256 24.256 0 0 1 4.707-1.521c.1.208.193.411.27.593l.455 1.072 1.153-.169a23.508 23.508 0 0 1 6.817 0l1.15.167.453-1.07c.078-.187.17-.39.267-.593a24.71 24.71 0 0 1 4.713 1.525c3.125 4.7 4.702 9.943 4.243 15.945a24.841 24.841 0 0 1-5.716 2.963l-.742-1.823c.343-.172.69-.359 1.022-.549.816-.47 1.695-1.056 2.255-1.616l-2.134-2.134c-.271.274-.871.7-1.628 1.137-.74.427-1.475.772-1.945.927-3.338 1.105-7.38 1.105-10.72 0-.468-.155-1.203-.5-1.943-.927-.757-.435-1.357-.863-1.63-1.137l-2.134 2.134c.562.56 1.442 1.146 2.259 1.616Z",fill:"#fff"})))}},50437:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({width:71,height:55,viewBox:"0 0 71 55",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("g",{clipPath:"url(#a)"},a.createElement("path",{d:"M60.105 4.898A58.55 58.55 0 0 0 45.653.415a.22.22 0 0 0-.233.11 40.784 40.784 0 0 0-1.8 3.697c-5.456-.817-10.886-.817-16.23 0-.485-1.164-1.201-2.587-1.828-3.697a.228.228 0 0 0-.233-.11 58.386 58.386 0 0 0-14.451 4.483.207.207 0 0 0-.095.082C1.578 18.73-.944 32.144.293 45.39a.244.244 0 0 0 .093.167c6.073 4.46 11.955 7.167 17.729 8.962a.23.23 0 0 0 .249-.082 42.08 42.08 0 0 0 3.627-5.9.225.225 0 0 0-.123-.312 38.772 38.772 0 0 1-5.539-2.64.228.228 0 0 1-.022-.378c.372-.279.744-.569 1.1-.862a.22.22 0 0 1 .23-.03c11.619 5.304 24.198 5.304 35.68 0a.219.219 0 0 1 .233.027c.356.293.728.586 1.103.865a.228.228 0 0 1-.02.378 36.384 36.384 0 0 1-5.54 2.637.227.227 0 0 0-.121.315 47.249 47.249 0 0 0 3.624 5.897.225.225 0 0 0 .249.084c5.801-1.794 11.684-4.502 17.757-8.961a.228.228 0 0 0 .092-.164c1.48-15.315-2.48-28.618-10.497-40.412a.18.18 0 0 0-.093-.084Zm-36.38 32.427c-3.497 0-6.38-3.211-6.38-7.156 0-3.944 2.827-7.156 6.38-7.156 3.583 0 6.438 3.24 6.382 7.156 0 3.945-2.827 7.156-6.381 7.156Zm23.593 0c-3.498 0-6.38-3.211-6.38-7.156 0-3.944 2.826-7.156 6.38-7.156 3.582 0 6.437 3.24 6.38 7.156 0 3.945-2.798 7.156-6.38 7.156Z",fill:"#23272A"}))),o||(o=a.createElement("defs",null,a.createElement("clipPath",{id:"a"},a.createElement("path",{fill:"#fff",d:"M0 0h71v55H0z"})))))}},23179:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),void 0===t?o.createElement("title",{id:n},"Discourse"):t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M12.103 0C18.666 0 24 5.485 24 11.997c0 6.51-5.33 11.99-11.9 11.99L0 24V11.79C0 5.28 5.532 0 12.103 0zm.116 4.563a7.395 7.395 0 0 0-6.337 3.57 7.247 7.247 0 0 0-.148 7.22L4.4 19.61l4.794-1.074a7.424 7.424 0 0 0 8.136-1.39 7.256 7.256 0 0 0 1.737-7.997 7.375 7.375 0 0 0-6.84-4.585h-.008z"})))}},7744:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M9.334 1.333H4c-.733 0-1.326.6-1.326 1.334l-.007 10.666c0 .734.593 1.334 1.327 1.334H12c.734 0 1.334-.6 1.334-1.334v-8l-4-4ZM4 13.333V2.667h4.667V6H12v7.333H4Z",fill:"#fff"})))}},19818:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("circle",{cx:10,cy:10,r:8.333,fill:"#fff"})))}},38981:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M7 9.333 4.083 6.417 4.9 5.57l1.517 1.517V2.333h1.166v4.755L9.1 5.57l.817.846L7 9.333Zm-3.5 2.334c-.32 0-.596-.115-.824-.343a1.121 1.121 0 0 1-.343-.824V8.75H3.5v1.75h7V8.75h1.167v1.75c0 .32-.115.596-.343.824a1.121 1.121 0 0 1-.824.343h-7Z",fill:"#fff"})))}},28487:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:12,height:12,viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"m2 4 4 4 4-4",stroke:"#909091",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round"})))}},94177:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"m12.707 2.393.9.9c.526.52.526 1.367 0 1.887L4.787 14H2v-2.787l6.933-6.94 1.887-1.88c.52-.52 1.367-.52 1.887 0ZM3.333 12.667l.94.04 6.547-6.554-.94-.94-6.547 6.547v.907Z",fill:"#fff"})))}},96867:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M14.667 2.667H1.34l-.007 10.667h13.334V2.667ZM13.333 12H2.667V5.334L8 8.667l5.333-3.333V12ZM8 7.334 2.667 4h10.666L8 7.334Z",fill:"#fff"})))}},58611:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.192 4H3.428V2.857h9.715v9.715H12V4.808l-8.167 8.168-.809-.808L11.192 4Z",fill:"#fff"})))}},13042:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:20,height:20,viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M1.804 16.292a.836.836 0 0 0 .696.374H15a.832.832 0 0 0 .766-.505l2.5-5.833a.833.833 0 0 0-.766-1.162h-.833v-2.5C16.667 5.747 15.919 5 15 5H9.454l-2.13-1.667h-3.99c-.92 0-1.667.748-1.667 1.667v10.833h.006a.834.834 0 0 0 .131.46ZM15 6.666v2.5H5a.832.832 0 0 0-.766.505l-.9 2.103V6.666H15Z",fill:"#000"})))}},96367:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M4.667 11.083v-1.75h-1.75V8.166h2.916v2.917H4.667Zm3.5 0V8.166h2.916v1.167h-1.75v1.75H8.167Zm-5.25-5.25V4.666h1.75v-1.75h1.166v2.917H2.917Zm5.25 0V2.916h1.166v1.75h1.75v1.167H8.167Z",fill:"#fff"})))}},6907:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M1.75 2.917V5.25h1.167V2.917H5.25V1.75H2.917A1.17 1.17 0 0 0 1.75 2.917ZM2.917 8.75H1.75v2.333a1.17 1.17 0 0 0 1.167 1.167H5.25v-1.167H2.917V8.75Zm8.166 2.333H8.75v1.167h2.333a1.17 1.17 0 0 0 1.167-1.167V8.75h-1.167v2.333Zm0-9.333H8.75v1.167h2.333V5.25h1.167V2.917a1.17 1.17 0 0 0-1.167-1.167Z",fill:"#fff"})))}},59570:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M20 4.4a16 16 0 0 0-16 16c0 7.072 4.592 13.072 10.944 15.2.8.128 1.056-.368 1.056-.8v-2.704c-4.432.96-5.376-2.144-5.376-2.144-.736-1.856-1.776-2.352-1.776-2.352-1.456-.992.112-.96.112-.96 1.6.112 2.448 1.648 2.448 1.648C12.8 30.72 15.152 30 16.064 29.616c.144-1.04.56-1.744 1.008-2.144-3.552-.4-7.28-1.776-7.28-7.872 0-1.776.608-3.2 1.648-4.336-.16-.4-.72-2.064.16-4.224 0 0 1.344-.432 4.4 1.632a15.075 15.075 0 0 1 4-.528c1.36 0 2.736.176 4 .528 3.056-2.064 4.4-1.632 4.4-1.632.88 2.16.32 3.824.16 4.224 1.04 1.136 1.648 2.56 1.648 4.336 0 6.112-3.744 7.456-7.312 7.856.576.496 1.104 1.472 1.104 2.96V34.8c0 .432.256.944 1.072.8C31.424 33.456 36 27.472 36 20.4a16.001 16.001 0 0 0-16-16Z",fill:"#fff"})))}},26890:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("path",{d:"M256 411.12 0 202.667 256 0zM256 411.12l256-208.453L256 0z"})),o||(o=a.createElement("circle",{cx:256,cy:362.667,r:149.333})))}},42924:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"m4 13.333.667-2.666H2.333l.334-1.334H5l.667-2.666H3l.333-1.334H6l.667-2.666H8l-.667 2.666H10l.667-2.666H12l-.667 2.666h2.334l-.334 1.334H11l-.667 2.666H13l-.333 1.334H10l-.667 2.666H8l.667-2.666H6l-.667 2.666H4Zm2.333-4H9l.667-2.666H7l-.667 2.666Z",fill:"#fff"})))}},74297:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M8 14c-1.533 0-2.87-.508-4.009-1.525-1.139-1.017-1.791-2.287-1.958-3.808H3.4c.156 1.155.67 2.11 1.542 2.866.872.756 1.892 1.134 3.058 1.134 1.3 0 2.403-.453 3.309-1.359.905-.906 1.358-2.008 1.358-3.308 0-1.3-.453-2.403-1.359-3.309C10.402 3.786 9.3 3.333 8 3.333a4.5 4.5 0 0 0-2.15.534 4.954 4.954 0 0 0-1.683 1.466H6v1.334H2v-4h1.333v1.566A5.954 5.954 0 0 1 8 2c.833 0 1.614.158 2.342.475a6.107 6.107 0 0 1 1.9 1.283c.539.54.966 1.172 1.283 1.9C13.842 6.386 14 7.166 14 8c0 .833-.158 1.614-.475 2.342a6.108 6.108 0 0 1-1.283 1.9 6.11 6.11 0 0 1-1.9 1.283A5.793 5.793 0 0 1 8 14Zm1.867-3.2L7.333 8.267v-3.6h1.334v3.066L10.8 9.867l-.933.933Z",fill:"#fff"})))}},33336:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:16,height:16,viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M12.667 2A1.333 1.333 0 0 1 14 3.333v9.334A1.334 1.334 0 0 1 12.667 14H3.333A1.334 1.334 0 0 1 2 12.667V3.333A1.333 1.333 0 0 1 3.333 2h9.334Zm-.334 10.333V8.8a2.173 2.173 0 0 0-2.173-2.173c-.567 0-1.227.346-1.547.866v-.74h-1.86v5.58h1.86V9.047a.93.93 0 1 1 1.86 0v3.286h1.86ZM4.587 5.707a1.12 1.12 0 0 0 1.12-1.12 1.124 1.124 0 1 0-1.12 1.12Zm.926 6.626v-5.58H3.667v5.58h1.846Z",fill:"#fff"})))}},78951:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{stroke:"#fff",d:"M.5 9h17"})))}},84629:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l});var r,o,a=n(67294);function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}const l=e=>{let{title:t,titleId:n,...l}=e;return a.createElement("svg",i({width:18,height:18,viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},l),t?a.createElement("title",{id:n},t):null,r||(r=a.createElement("g",{clipPath:"url(#a)"},a.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M1.79 6.75a4.979 4.979 0 1 1 9.957 0 4.979 4.979 0 0 1-9.957 0ZM6.768.572a6.179 6.179 0 1 0 3.817 11.037l5.146 5.146a1 1 0 0 0 1.414-1.414l-5.207-5.207A6.179 6.179 0 0 0 6.768.571Z",fill:"#000"}))),o||(o=a.createElement("defs",null,a.createElement("clipPath",{id:"a"},a.createElement("path",{fill:"#fff",d:"M0 0h18v18H0z"})))))}},23816:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:179,height:178,viewBox:"0 0 179 178",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M104.512 88.178c-10.667.615-17.352-1.87-28.02-1.254a44.732 44.732 0 0 0-7.853 1.146c1.575-19.73 15.538-36.988 34.525-38.085 11.652-.672 23.298 6.522 23.93 18.2.621 11.479-8.131 19.158-22.58 19.992l-.002.001Zm-28.645 40.355c-11.162.631-22.317-6.104-22.923-17.033-.596-10.742 7.79-17.93 21.633-18.71 10.218-.575 16.623 1.751 26.84 1.174a43.776 43.776 0 0 0 7.522-1.073c-1.506 18.464-14.881 34.617-33.072 35.642ZM89.5.001C40.346 0 .5 39.846.5 89c0 49.154 39.846 89 89 89s89-39.847 89-89-39.846-89-89-89",fill:"#000"})))}},35245:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M4.906 17.987c9.395-4.094 15.66-6.792 18.795-8.096 8.95-3.723 10.81-4.37 12.022-4.39.267-.005.863.06 1.249.374.326.264.416.622.459.873.043.25.096.822.053 1.268-.485 5.097-2.583 17.463-3.65 23.171-.453 2.415-1.342 3.225-2.203 3.304-1.872.172-3.293-1.237-5.106-2.425-2.836-1.86-4.439-3.017-7.192-4.831-3.182-2.097-1.12-3.25.694-5.133.475-.493 8.72-7.993 8.88-8.674.02-.085.039-.402-.15-.57-.188-.167-.466-.11-.667-.064-.284.064-4.816 3.06-13.594 8.985-1.286.883-2.451 1.314-3.495 1.29-1.15-.024-3.364-.65-5.01-1.185-2.018-.656-3.622-1.003-3.483-2.117.073-.58.872-1.174 2.398-1.78Z",fill:"#fff"})))}},68902:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:24,height:24,xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",style:{fillRule:"evenodd",clipRule:"evenodd",strokeLinejoin:"round",strokeMiterlimit:1.41421},"aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M12 0C5.374 0 0 5.372 0 12c0 6.627 5.374 12 12 12 6.627 0 12-5.373 12-12 0-6.628-5.373-12-12-12Zm3.224 17.871c.188.133.43.166.646.085a.678.678 0 0 0 .422-.491c.507-2.382 1.737-8.412 2.198-10.578a.457.457 0 0 0-.151-.443.47.47 0 0 0-.465-.082c-2.446.906-9.979 3.732-13.058 4.871a.484.484 0 0 0-.316.467.483.483 0 0 0 .346.445c1.381.413 3.193.988 3.193.988s.847 2.558 1.288 3.858a.512.512 0 0 0 .352.336.505.505 0 0 0 .474-.121l1.805-1.704s2.084 1.527 3.266 2.369Zm-6.423-5.062.98 3.231.218-2.046 5.941-5.358a.162.162 0 0 0 .019-.22.165.165 0 0 0-.219-.037l-6.939 4.43Z"})))}},86089:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:17,height:14,viewBox:"0 0 17 14",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M16.557 1.597a6.802 6.802 0 0 1-1.95.534A3.406 3.406 0 0 0 16.1.251a6.782 6.782 0 0 1-2.157.824 3.398 3.398 0 0 0-5.788 3.1A9.647 9.647 0 0 1 1.153.624a3.395 3.395 0 0 0-.059 3.31c.264.494.645.915 1.11 1.225a3.389 3.389 0 0 1-1.538-.425v.044a3.398 3.398 0 0 0 2.725 3.33c-.5.136-1.025.156-1.534.06a3.399 3.399 0 0 0 3.173 2.357A6.817 6.817 0 0 1 0 11.934a9.607 9.607 0 0 0 5.207 1.526c6.249 0 9.665-5.176 9.665-9.665 0-.146-.004-.293-.01-.439A6.905 6.905 0 0 0 16.556 1.6l.001-.002Z",fill:"#000"})))}},92358:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var r,o=n(67294);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}const i=e=>{let{title:t,titleId:n,...i}=e;return o.createElement("svg",a({width:40,height:40,viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":n},i),t?o.createElement("title",{id:n},t):null,r||(r=o.createElement("path",{d:"M22.62 19.134 32.63 7.5h-2.373l-8.69 10.102L14.627 7.5H6.62l10.496 15.275-10.496 12.2h2.372l9.177-10.668 7.33 10.668h8.005L22.62 19.134Zm-3.248 3.776-1.063-1.521L9.847 9.285h3.643l6.829 9.768 1.063 1.521 8.877 12.697h-3.643l-7.244-10.36v-.001Z",fill:"#fff"})))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(67294),o=n(87462),a=n(68356),i=n.n(a),l=n(16887);const s={"13b4f215":[()=>n.e(452).then(n.bind(n,37939)),"@site/about/team.md",37939],17896441:[()=>Promise.all([n.e(532),n.e(210),n.e(918)]).then(n.bind(n,18652)),"@theme/DocItem",18652],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,93717)),"@theme/DocPage",93717],"1f391b9e":[()=>Promise.all([n.e(532),n.e(210),n.e(85)]).then(n.bind(n,14247)),"@theme/MDXPage",14247],"230402f8":[()=>n.e(156).then(n.bind(n,14466)),"@site/about/index.md",14466],"4c51782d":[()=>Promise.all([n.e(532),n.e(881),n.e(767)]).then(n.bind(n,90584)),"@site/root-pages/join-us.mdx",90584],"5086c83f":[()=>Promise.all([n.e(532),n.e(881),n.e(843)]).then(n.bind(n,23737)),"@site/root-pages/community.mdx",23737],"546e778e":[()=>Promise.all([n.e(532),n.e(759)]).then(n.bind(n,83869)),"@site/src/pages/subscribe.tsx",83869],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,36809)),"@generated/docusaurus.config",36809],"7818b736":[()=>n.e(62).then(n.t.bind(n,75127,19)),"~docs/about/version-current-metadata-prop-751.json",75127],"79dc5662":[()=>n.e(339).then(n.bind(n,7875)),"@site/root-pages/terms.md",7875],"81bf376d":[()=>n.e(383).then(n.bind(n,50212)),"@site/root-pages/privacy-policy.md",50212],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],ba0da7bd:[()=>n.e(168).then(n.bind(n,21571)),"@site/about/roadmap.md",21571],bc55d770:[()=>Promise.all([n.e(532),n.e(881),n.e(78)]).then(n.bind(n,32592)),"@site/root-pages/events/index.mdx",32592],bfcde7ef:[()=>Promise.all([n.e(532),n.e(881),n.e(191)]).then(n.bind(n,60821)),"@site/root-pages/events/eth-denver.mdx",60821],d40faacd:[()=>n.e(894).then(n.bind(n,2916)),"@site/about/architect.md",2916],db77d2e4:[()=>n.e(257).then(n.t.bind(n,15745,19)),"/home/jenkins/workspace/website/waku.org/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",15745],e68c6035:[()=>n.e(608).then(n.bind(n,47925)),"@site/about/waku-network.md",47925],e7ce6630:[()=>Promise.all([n.e(532),n.e(881),n.e(668)]).then(n.bind(n,5765)),"@site/src/pages/index.mdx",5765],f0fe3b85:[()=>n.e(153).then(n.t.bind(n,55866,19)),"/home/jenkins/workspace/website/waku.org/.docusaurus/docusaurus-plugin-content-docs/about/plugin-route-context-module-100.json",55866],f78498e9:[()=>n.e(772).then(n.t.bind(n,83769,19)),"/home/jenkins/workspace/website/waku.org/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",83769]};function u(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(99670),d=n(30226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>Promise.all([n.e(532),n.e(568)]).then(n.bind(n,92568)),modules:["@theme/NotFound"],webpack:()=>[92568],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=l[`${e}-${t}`],f={},p=[],h=[],m=(0,c.Z)(a);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),h.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>h,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{a=a[e]})),a[l[l.length-1]]=o}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,o.Z)({},i,n)))}})}const p=[{path:"/subscribe",component:f("/subscribe","60c"),exact:!0},{path:"/about",component:f("/about","8e0"),routes:[{path:"/about/",component:f("/about/","a82"),exact:!0,sidebar:"defaultSidebar"},{path:"/about/architect",component:f("/about/architect","7a3"),exact:!0,sidebar:"defaultSidebar"},{path:"/about/roadmap",component:f("/about/roadmap","b12"),exact:!0,sidebar:"defaultSidebar"},{path:"/about/team",component:f("/about/team","c35"),exact:!0,sidebar:"defaultSidebar"},{path:"/about/waku-network",component:f("/about/waku-network","4dc"),exact:!0,sidebar:"defaultSidebar"}]},{path:"/",component:f("/","ced"),exact:!0},{path:"/",component:f("/","9be"),routes:[{path:"/community",component:f("/community","dda"),exact:!0},{path:"/events/",component:f("/events/","f57"),exact:!0,sidebar:"defaultSidebar"},{path:"/events/eth-denver",component:f("/events/eth-denver","23a"),exact:!0,sidebar:"defaultSidebar"},{path:"/join-us",component:f("/join-us","3eb"),exact:!0},{path:"/privacy-policy",component:f("/privacy-policy","e92"),exact:!0},{path:"/terms",component:f("/terms","73e"),exact:!0}]},{path:"*",component:f("*")}]},85711:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createPromise=t.ResultType=void 0;const r=n(97582),o=n(90022),a=n(91073),i=n(67133),l=n(98202),s=r.__importStar(n(61029)),u=e=>{let{versionUrl:t,searchContextByPaths:n}=e,r=window.location.pathname;if(r=r.endsWith("/")?r:r+"/",!Array.isArray(n)||!r.startsWith(t))return"";const o=r.substring(t.length);return n.find((e=>o===e||o.startsWith(`${e}/`)))??""};class c{constructor(e){this.config=e,this.loading=!1,this.source=null,this.init=async()=>{this.loading=!0;const{wrappedIndexes:e,zhDictionary:t}=await(async e=>{const{wrappedIndexes:t,zhDictionary:n}=await(0,o.fetchIndexes)(e.versionUrl,e.searchContext);return{wrappedIndexes:t,zhDictionary:n}})({versionUrl:this.baseUrl,searchContext:u({versionUrl:this.baseUrl,searchContextByPaths:this.searchContextByPaths})});this.source=(0,l.SearchSourceFactory)(e,t,this.config.resultsLimit)},this.query=async e=>{if(!this.source)throw new Error("Not initialized");const{promise:n,callback:r}=(0,t.createPromise)();return this.source&&this.source(e,r),{results:(await n).map((e=>this.formatResult(e)))}},this.formatResult=e=>({...e,type:this.resultTypeToString(e.type),page:e.page?this.formatDocument(e.page):null,document:e.document?this.formatDocument(e.document):null,highlighted:(0,i.highlightStemmed)(e.document.t,(0,a.getStemmedPositions)(e.metadata,"t"),e.tokens)}),this.resultTypeToString=e=>({0:d.Title,1:d.Heading,2:d.Paragraph}[e]),this.formatDocument=e=>({id:e.i,title:e.t,url:e.u,hash:e.h,parentId:e.p,breadcrumb:e.b,sectionTitle:e.s}),this.baseUrl=e.preferredVersionPath,this.searchContextByPaths=e.searchContextByPaths??""}}var d;!function(e){e.Title="title",e.Heading="heading",e.Paragraph="paragraph"}(d=t.ResultType||(t.ResultType={}));t.createPromise=()=>{let e,t;const n=new Promise(((n,r)=>{e=n,t=r}));return{reject:t,resolve:e,promise:n,callback:(n,r)=>{r?t(r):e(n)}}};(async()=>{if("undefined"==typeof window)return;const e=window;e.getProxiedGeneratedData=()=>s,e.createSearchInstance=async e=>new c(e)})()},55061:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IconEmail=t.IconRemove=t.IconAdd=t.IconDownload=t.IconAvatar=t.IconX=t.IconTelegramWhite=t.IconDiscordWhite=t.IconExternalLink=t.IconFullscreenExit=t.IconFullscreen=t.IconEdit=t.IconClose=t.IconHistory=t.IconCopy=t.IconGScholar=t.IconDropdown=t.IconSearch=t.IconFolderFilled=t.IconDot=t.IconLinkedin=t.IconDiscourse=t.IconTelegram=t.IconTwitter=t.IconStatus=t.IconDiscord=t.IconGithub=t.IconFolder=t.IconArrowLeft=t.IconArrowRight=t.IconArrowLeftCircle=t.IconArrowRightCircle=t.Icon=void 0;const r=n(97582),o=n(86010),a=r.__importDefault(n(67294)),i=r.__importDefault(n(27861)),l=r.__importDefault(n(19044)),s=r.__importDefault(n(80255)),u=r.__importDefault(n(67146)),c=r.__importDefault(n(68425)),d=r.__importDefault(n(88121)),f=r.__importDefault(n(62082)),p=r.__importDefault(n(80469)),h=r.__importDefault(n(94793)),m=r.__importDefault(n(14607)),g=r.__importDefault(n(50437)),v=r.__importDefault(n(23179)),b=r.__importDefault(n(19818)),y=r.__importDefault(n(38981)),w=r.__importDefault(n(28487)),x=r.__importDefault(n(94177)),_=r.__importDefault(n(58611)),k=r.__importDefault(n(13042)),E=r.__importDefault(n(96367)),S=r.__importDefault(n(6907)),C=r.__importDefault(n(59570)),T=r.__importDefault(n(26890)),O=r.__importDefault(n(74297)),D=r.__importDefault(n(33336)),P=r.__importDefault(n(78951)),N=r.__importDefault(n(84629)),I=r.__importDefault(n(23816)),A=r.__importDefault(n(35245)),L=r.__importDefault(n(68902)),R=r.__importDefault(n(86089)),j=r.__importDefault(n(92358)),M=r.__importDefault(n(96867));t.Icon=e=>{const{children:t,size:n="m"}=e;return a.default.createElement("div",{className:(0,o.clsx)(i.default.icon,i.default[n],e.stroke&&i.default.stroke,e.fill&&i.default.fill,e.className&&e.className)},t)};t.IconArrowRightCircle=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(c.default,null));t.IconArrowLeftCircle=e=>a.default.createElement(t.Icon,null,a.default.createElement(s.default,null));t.IconArrowRight=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(d.default,null));t.IconArrowLeft=e=>a.default.createElement(t.Icon,null,a.default.createElement(u.default,null));t.IconFolder=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(k.default,null));t.IconGithub=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(C.default,null));t.IconDiscord=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(g.default,null));t.IconStatus=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(I.default,null));t.IconTwitter=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(R.default,null));t.IconTelegram=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(L.default,null));t.IconDiscourse=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(v.default,null));t.IconLinkedin=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(D.default,null));t.IconDot=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(b.default,null));t.IconFolderFilled=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(k.default,null));t.IconSearch=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(N.default,null));t.IconDropdown=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(w.default,null));t.IconGScholar=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(T.default,null));t.IconCopy=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(h.default,null));t.IconHistory=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(O.default,null));t.IconClose=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(p.default,null));t.IconEdit=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(x.default,null));t.IconFullscreen=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(S.default,null));t.IconFullscreenExit=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(E.default,null));t.IconExternalLink=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(_.default,null));t.IconDiscordWhite=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(m.default,null));t.IconTelegramWhite=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(A.default,null));t.IconX=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(j.default,null));t.IconAvatar=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(f.default,null));t.IconDownload=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(y.default,null));t.IconAdd=e=>a.default.createElement(t.Icon,{...e,stroke:!0},a.default.createElement(l.default,null));t.IconRemove=e=>a.default.createElement(t.Icon,{...e,stroke:!0},a.default.createElement(P.default,null));t.IconEmail=e=>a.default.createElement(t.Icon,{...e},a.default.createElement(M.default,null))},78870:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(55061),t)},40466:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;const r=n(97582),o=r.__importDefault(n(86010)),a=r.__importDefault(n(67294)),i=n(89164),l=n(96507),s=n(38954);n(22473);t.Modal=e=>{let{open:t=!1,onClose:n,keepMounted:r=!1,className:u,children:c,...d}=e;const f=(0,l.useHydrated)(),p=()=>{n&&n()};return(0,i.useKeyPressEvent)((e=>"Escape"===e.code),(e=>{p()})),f&&(t||r)?a.default.createElement(s.Portal,{containerId:"lsd-presentation",id:d.id},a.default.createElement("div",{className:(0,o.default)(u,"l-modal",t&&"l-modal--open"),...d},a.default.createElement("div",{className:"l-modal__container"},a.default.createElement("div",{className:"l-modal__content"},c),a.default.createElement("div",{className:"l-modal__backdrop",onClick:p})))):a.default.createElement(a.default.Fragment,null)}},38954:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Portal=void 0;const r=n(97582).__importDefault(n(67294)),o=n(73935),a=n(40653);t.Portal=e=>{let{children:t,containerId:n,id:i}=e;if("undefined"==typeof window)return r.default.createElement(r.default.Fragment,null);const l=(0,a.usePortal)({parentId:n});return(0,o.createPortal)(t,l,i)}},40653:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePortal=void 0;const r=n(67294),o=n(89321);t.usePortal=e=>{let{parentId:t}=e;const n=(0,r.useRef)();return n.current||(n.current=document.createElement("div")),(0,r.useEffect)((()=>{if(n.current)return document.getElementById(t)?.appendChild(n.current),()=>{const e=n.current;e&&(0,o.settleSync)((()=>document.getElementById(t)?.removeChild(e)))}}),[t,n.current]),n.current}},19843:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LightBoxWrapper=t.useLightBox=t.LightBoxContext=t.LightBoxProvider=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(29785)),i=r.__importDefault(n(86010)),l=r.__importStar(n(67294)),s=r.__importStar(n(33052)),u=n(89164),c=n(55061),d=n(38954),f=n(96507),p=n(53708),h=r.__importDefault(n(10153));t.LightBoxProvider=e=>{let{children:n}=e;const r=(0,f.useHydrated)(),s=(0,u.useWindowScroll)(),[m,g]=(0,l.useState)(null),[v,b]=(0,l.useState)({opacity:"0.5"}),y=(0,p.useIsMobile)(),w=(0,l.useMemo)((()=>({opacity:1,transform:"scale(1) translate(0px, 0px)",transition:"0.3s"})),[m]),x=e=>{g(e);const t=document.body.clientWidth,n=window.innerHeight,r=window.innerWidth>768?.9375*t:t-32,o=n-128,a=e.getBoundingClientRect(),i=Math.min(o/a.height,r/a.width),l=[a.left+a.width/2,a.top+a.height/2],s=[t/2,n/2].map(((e,t)=>(e-l[t])/i));b({zIndex:202,transform:`scale(${i}) translate(${s[0]}px, ${s[1]}px)`,position:"relative"})},_=()=>{g(null)};return(0,l.useEffect)((()=>{m&&window.innerWidth>768&&_()}),[s]),(0,l.useEffect)((()=>{if(y&&m){document.querySelector("html").style.overflow="hidden"}else{document.querySelector("html").style.overflow="initial"}}),[y,m]),l.default.createElement(t.LightBoxContext.Provider,{value:{active:m,style:w,activeStyle:v,display:x,close:_,toggle:e=>{const t=m;_(),t!==e&&x(e)}}},n,r&&l.default.createElement(d.Portal,{containerId:"lsd-presentation"},l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,i.default)(h.default.backdrop,m&&h.default.visible)}),l.default.createElement("div",{className:(0,i.default)(h.default.navWrapper,m&&h.default.visible)},l.default.createElement("nav",{className:(0,i.default)(h.default.nav,"navbar",m&&h.default.visible)},l.default.createElement(a.default,null),l.default.createElement(o.IconButton,{size:"medium",onClick:_},l.default.createElement(c.IconFullscreenExit,null)))))))},t.LightBoxContext=l.default.createContext({style:{},activeStyle:{},active:null,close:null,toggle:null,display:null});t.useLightBox=()=>{const e=(0,l.useContext)(t.LightBoxContext);return{getStyle:t=>({...e.style,...t===e.active?e.activeStyle:{}}),style:e.style,activeStyle:e.activeStyle,active:e.active,isActive:!!e.active,close:e.close,toggle:e.toggle,display:e.display,isActiveElement:t=>e.active===t}};t.LightBoxWrapper=e=>{let{children:n}=e;const r=(0,l.useRef)(null),a=(0,l.useRef)(null),{getStyle:u,display:d,isActiveElement:f}=(0,t.useLightBox)(),m=(0,p.useIsMobile)(),g=(0,l.useCallback)((e=>{let{x:t,y:n,scale:r}=e;const{current:o}=a;if(o){const e=(0,s.make3dTransformValue)({x:t,y:n,scale:r});o.style.setProperty("transform",e)}}),[]),v=m&&r.current&&f(r.current)?l.default.createElement(s.default,{onUpdate:g,doubleTapZoomOutOnMaxScale:!0,maxZoom:3},l.default.createElement("div",{ref:a},n)):l.default.createElement(l.default.Fragment,null,n,l.default.createElement(o.IconButton,{className:h.default.fullscreenButton,size:"medium",onClick:()=>r.current&&d(r.current)},l.default.createElement(c.IconFullscreen,null)));return l.default.createElement(l.default.Fragment,null,l.default.createElement("div",{className:(0,i.default)(h.default.wrapper,f(r.current)&&h.default.active),ref:r,style:r.current?u(r.current):{}},v))}},78991:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeProvider=void 0;const r=n(97582),o=n(31665),a=n(70917),i=r.__importDefault(n(67294)),l=n(92198);t.ThemeProvider=e=>{let{children:t}=e;const n=(0,l.useTheme)();return i.default.createElement(o.ThemeProvider,{theme:n.current,injectCssVars:!1},i.default.createElement(a.Global,{styles:n.cssVars}),t)}},27967:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(78991),t)},89321:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.settleSync=t.settle=void 0;t.settle=async e=>{try{return["function"==typeof e?await e():await e,void 0]}catch(t){return[void 0,t]}};t.settleSync=e=>{try{return[e(),void 0]}catch(t){return[void 0,t]}}},28097:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ensureTrailingSlash=t.ensureTrailingString=void 0;t.ensureTrailingString=(e,t)=>e.endsWith(t)?e:e+t;t.ensureTrailingSlash=e=>(0,t.ensureTrailingString)(e,"/")},92198:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useTheme=void 0;const r=n(31665),o=n(82818),a=n(70917),i=n(67294),l=n(54400);t.useTheme=()=>{const e=(0,o.useColorMode)(),{typography:t}=(0,l.useThemeOptions)(),n=t?.genericFontFamily??"sans-serif",s=r.defaultThemes,u=(0,i.useMemo)((()=>{const e={breakpoints:{},palette:{},typography:{},typographyGlobal:{genericFontFamily:n},spacing:[]};return{light:(0,r.createTheme)(e,s.light),dark:(0,r.createTheme)(e,s.dark)}}),[s,n]);return{dark:u.dark,light:u.light,current:u[e.colorMode],colorMode:e.colorMode,cssVars:(c=u.light,d=u.dark,f=u.light,(0,i.useMemo)((()=>a.css` + html:not([data-theme]) { + ${f.cssVars} + } + + html[data-theme='light'] { + ${c.cssVars} + } + + html[data-theme='dark'] { + ${d.cssVars} + } + `),[d,c]))};var c,d,f}},55873:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useEventListener=void 0;const r=n(67294);t.useEventListener=(e,t,n,o,a)=>{const i=(0,r.useMemo)((()=>"string"==typeof e?e:e()),[]),l=(0,r.useMemo)((()=>"function"==typeof t?t():t),[t]);(0,r.useEffect)((()=>{if(l?.addEventListener&&l?.removeEventListener)return l.addEventListener(i,n,o),()=>{l.removeEventListener(i,n,o)}}),[i,l])}},96507:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useHydrated=void 0;const r=n(67294);t.useHydrated=()=>{const[e,t]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{t(!0)}),[]),e}},53708:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useIsMobile=void 0;const r=n(89164);t.useIsMobile=()=>(0,r.useMedia)("(max-width: 1199px)")},81803:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.usePersistedHistory=void 0;const r=n(89164);t.usePersistedHistory=(e,t)=>{const n=t?.unique??!1,o=t?.equals??((e,t)=>e===t),a=t?.maxItems??null,[i,l]=(0,r.useLocalStorage)("logos-docusaurus-theme-"+e,[]),s=e=>{l((i??[]).filter(((t,n)=>!e(t,n))))};return{add:e=>{const t=i??[],r=[e,...n?t.filter((t=>!o(t,e))):t];l(a?r.slice(0,a):r)},clear:()=>{l([])},remove:s,removeByIndex:e=>{s(((t,n)=>n===e))},list:i}}},54400:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useDocThemeOptions=t.useThemeOptions=void 0;const r=n(97582),o=n(80143),a=r.__importDefault(n(52263));t.useThemeOptions=()=>{const{siteConfig:{customFields:e={}}}=(0,a.default)();return e["logos-docusaurus-theme"]??{}};t.useDocThemeOptions=()=>{const e=(0,o.useActivePlugin)(),n=(0,t.useThemeOptions)();return e?n?.docs?.[e?.pluginId]??{}:{}}},521:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useWindowEventListener=void 0;const r=n(55873);t.useWindowEventListener=function(e,t,n,o){void 0===o&&(o=[]),(0,r.useEventListener)(e,(()=>"undefined"!=typeof window&&window),t,n,o)}},66354:(e,t,n)=>{"use strict";const r=n(97582),o=n(31665),a=n(95999),i=r.__importDefault(n(72389)),l=r.__importDefault(n(55211)),s=r.__importDefault(n(67080)),u=r.__importDefault(n(86010)),c=r.__importDefault(n(67294)),d=r.__importDefault(n(8633));t.Z=c.default.memo((function(e){let{className:t,buttonClassName:n,value:r,onChange:f}=e;const p=(0,i.default)(),h=(0,a.translate)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,a.translate)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,a.translate)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return c.default.createElement(o.IconButton,{className:(0,u.default)("clean-btn",d.default.toggle,t,!p&&d.default.toggleButtonDisabled,n),type:"button",onClick:()=>f("dark"===r?"light":"dark"),disabled:!p,title:h,"aria-label":h,"aria-live":"polite"},c.default.createElement(s.default,{className:(0,u.default)(d.default.toggleIcon,d.default.lightToggleIcon)}),c.default.createElement(l.default,{className:(0,u.default)(d.default.toggleIcon,d.default.darkToggleIcon)}))}))},52601:(e,t,n)=>{"use strict";const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(79762));t.Z=function(e){let{style:t,links:n,logo:r,copyright:s}=e;const[u,c]=(e=>{const t=[],n=[];for(const r of e)"title"in r&&"string"==typeof r.title&&r.title.startsWith("shared:")?n.push({...r,title:r.title.slice(7)}):t.push(r);return[t,n]})(n.props.links);return i.default.createElement("footer",{className:(0,a.default)("footer",{"footer--dark":"dark"===t})},i.default.createElement("div",{className:(0,a.default)("container","container-fluid",l.default.firstRow)},(r||s)&&i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{className:"footer__bottom text--center"},r&&i.default.createElement("div",{className:"margin-bottom--sm"},r),s)),i.default.cloneElement(n,{links:u})),i.default.createElement("div",{className:l.default.secondRow},i.default.createElement("div",{className:"footer__bottom text--center"},"Logos Collective"),i.default.cloneElement(n,{links:c})),i.default.createElement(o.Button,{className:l.default.backToTop,size:"small",onClick:()=>{window.scrollTo({top:0,behavior:"smooth"})}},"Back to top \u2191"))}},90988:(e,t,n)=>{"use strict";const r=n(97582).__importDefault(n(67294)),o=n(82818),a=n(53458),i=(0,o.composeProviders)([a.AnnouncementBarProvider,a.ScrollControllerProvider,a.DocsPreferredVersionContextProvider,a.PluginHtmlClassNameProvider,a.NavbarProvider]);t.Z=function(e){let{children:t}=e;return r.default.createElement(i,null,t)}},16853:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(39960)),i=r.__importDefault(n(44996)),l=r.__importDefault(n(52263)),s=n(82818),u=r.__importDefault(n(16019));function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.default)(t.src),dark:(0,i.default)(t.srcDark||t.src)},l=o.default.createElement(u.default,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.default.createElement("div",{className:r},l):l}t.default=function(e){const{siteConfig:{title:t}}=(0,l.default)(),{navbar:{title:n,logo:r}}=(0,s.useThemeConfig)(),{imageClassName:u,titleClassName:d,...f}=e,p=(0,i.default)(r?.href||"/"),h=n?"":t,m=r?.alt??h;return o.default.createElement(a.default,{to:p,...f,...r?.target&&{target:r.target}},r&&o.default.createElement(c,{logo:r,alt:m,imageClassName:u}),null!=n&&o.default.createElement("b",{className:d},n))}},10428:(e,t,n)=>{"use strict";const r=n(97582),o=n(31665),a=n(82818),i=n(53458),l=r.__importDefault(n(2101)),s=r.__importDefault(n(29785)),u=r.__importDefault(n(29865)),c=r.__importDefault(n(4710)),d=r.__importDefault(n(33760)),f=r.__importDefault(n(86010)),p=r.__importDefault(n(67294)),h=n(96507),m=r.__importDefault(n(90826));function g(e){let{items:t}=e;return p.default.createElement(p.default.Fragment,null,t.map(((e,t)=>p.default.createElement(a.ErrorCauseBoundary,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},p.default.createElement(c.default,{...e})))))}t.Z=function(){const e=(0,h.useHydrated)(),t=(0,i.useNavbarMobileSidebar)(),n=(0,a.useThemeConfig)().navbar.items,[r,c]=(0,i.splitNavbarItems)(n.filter((e=>!["search"].includes(e.type??"")))),v=n.find((e=>"search"===e.type));return p.default.createElement("div",{className:"navbar__inner"},p.default.createElement("div",{className:"navbar__left"},p.default.createElement(s.default,null)),p.default.createElement("div",{className:"navbar__left-items"},p.default.createElement(g,{items:r})),p.default.createElement("div",{className:"navbar__right-items"},p.default.createElement(g,{items:c}),p.default.createElement(o.IconButtonGroup,{className:m.default.iconButtonGroup,size:"medium"},p.default.createElement(l.default,{key:"color-toggle",className:(0,f.default)(m.default.colorModeToggle,"navbar__color-mode-toggle")}),e&&p.default.createElement(p.default.Fragment,{key:"search"},v&&p.default.createElement(d.default,null)),p.default.createElement(p.default.Fragment,{key:"mobile-sidebar-toggle"},!t.disabled&&p.default.createElement(u.default,null)))))}},4818:(e,t,n)=>{"use strict";const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(86010)),i=n(82818),l=n(53458),s=n(95999),u=r.__importDefault(n(2203)),c=r.__importDefault(n(97087));function d(e){return o.default.createElement("div",{role:"presentation",...e,className:(0,a.default)("navbar-sidebar__backdrop",e.className)})}t.Z=function(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:r}}=(0,i.useThemeConfig)(),f=(0,l.useNavbarMobileSidebar)(),{navbarRef:p,isNavbarVisible:h}=(0,l.useHideableNavbar)(n);return o.default.createElement("nav",{ref:p,"aria-label":(0,s.translate)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.default)("navbar","navbar--fixed-top",n&&[c.default.navbarHideable,!h&&c.default.navbarHidden],{"navbar--dark":"dark"===r,"navbar--primary":"primary"===r,"navbar-sidebar--show":f.shown})},t,o.default.createElement(d,{onClick:f.toggle}),o.default.createElement(u.default,null))}},29785:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(16853));t.default=function(){return o.default.createElement(a.default,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}},42977:(e,t,n)=>{"use strict";const r=n(97582),o=r.__importDefault(n(67294)),a=n(53458),i=n(95999),l=r.__importDefault(n(2101)),s=r.__importDefault(n(29785)),u=n(31665),c=r.__importDefault(n(33760));function d(){const e=(0,a.useNavbarMobileSidebar)();return o.default.createElement("button",{type:"button","aria-label":(0,i.translate)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},o.default.createElement(u.CloseIcon,null))}t.Z=function(){return o.default.createElement("div",{className:"navbar-sidebar__brand"},o.default.createElement(s.default,null),o.default.createElement(l.default,{className:"margin-right--md"}),o.default.createElement(c.default,null),o.default.createElement(d,null))}},82892:(e,t,n)=>{"use strict";const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(86010)),i=n(53458),l=r.__importDefault(n(88507));t.Z=function(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:s}=(0,i.useNavbarSecondaryMenu)();return o.default.createElement("div",{className:(0,a.default)("navbar-sidebar",s&&"navbar-sidebar--show-secondary")},t,o.default.createElement("div",{className:(0,a.default)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":s})},o.default.createElement("div",{className:"navbar-sidebar__item menu"},n,!s&&o.default.createElement(l.default,null)),o.default.createElement("div",{className:"navbar-sidebar__item menu"},r)))}},38732:(e,t,n)=>{"use strict";const r=n(97582),o=n(31665),a=n(82818),i=n(53458),l=r.__importDefault(n(95999)),s=n(78870),u=r.__importDefault(n(67294));function c(e){return u.default.createElement("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back"},u.default.createElement(s.IconArrowLeft,null),u.default.createElement(o.Typography,null,u.default.createElement(l.default,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"Back to main menu")))}t.Z=function(){const e=0===(0,a.useThemeConfig)().navbar.items.length,t=(0,i.useNavbarSecondaryMenu)();return u.default.createElement(u.default.Fragment,null,!e&&u.default.createElement(c,{onClick:()=>t.hide()}),t.content)}},27654:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=n(31665),a=n(82818),i=n(53458),l=r.__importDefault(n(4710)),s=r.__importDefault(n(51125)),u=r.__importDefault(n(86010)),c=r.__importStar(n(67294)),d=r.__importDefault(n(83244));function f(e,t){return e.some((e=>function(e,t){return!!(0,i.isSamePath)(e.to,t)||!!(0,a.isRegexpStringMatch)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function p(e){let{items:t,position:n,className:r,onClick:a,...i}=e;const f=(0,c.useRef)(null),[p,h]=(0,c.useState)(!1);return(0,c.useEffect)((()=>{const e=e=>{f.current&&!f.current.contains(e.target)&&h(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[f]),c.default.createElement("div",{ref:f,className:(0,u.default)("navbar__item",d.default.dropdownNavbarItem,"dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":p})},c.default.createElement(s.default,{"aria-haspopup":"true","aria-expanded":p,role:"button",href:i.to?void 0:"#",className:(0,u.default)("navbar__link",r),...i,onClick:i.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),h(!p))}},i.children??i.label),c.default.createElement(o.ChevronDownIcon,{className:(0,u.default)("margin-left-8","cursor-pointer")}),c.default.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>c.default.createElement(l.default,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))))}function h(e){let{items:t,className:n,position:r,onClick:d,...p}=e;const h=(0,i.useLocalPathname)(),m=f(t,h),{collapsed:g,toggleCollapsed:v,setCollapsed:b}=(0,a.useCollapsible)({initialState:()=>!m});return(0,c.useEffect)((()=>{m&&b(!m)}),[h,m,b]),c.default.createElement("li",{className:(0,u.default)("menu__list-item",{"menu__list-item--collapsed":g})},c.default.createElement(s.default,{role:"button",className:(0,u.default)("menu__link menu__link--sublist menu__link--sublist-caret",n),...p,onClick:e=>{e.preventDefault(),v()}},c.default.createElement(o.Typography,{variant:"body1"},p.children??p.label)),c.default.createElement(a.Collapsible,{lazy:!0,as:"ul",className:"menu__list",collapsed:g},t.map(((e,t)=>c.default.createElement(l.default,{mobile:!0,isDropdownItem:!0,onClick:d,activeClassName:"menu__link--active",...e,key:t})))))}t.default=function(e){let{mobile:t=!1,...n}=e;const r=t?h:p;return c.default.createElement(r,{...n})}},12197:(e,t,n)=>{"use strict";const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(52263)),i=n(53458),l=n(95999),s=n(28143),u=r.__importDefault(n(27654));t.Z=function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,...c}=e;const{i18n:{currentLocale:d,locales:f,localeConfigs:p}}=(0,a.default)(),h=(0,i.useAlternatePageUtils)(),{search:m,hash:g}=(0,s.useLocation)(),v=[...n,...f.map((e=>{const n=`${`pathname://${h.createUrl({locale:e,fullyQualified:!1})}`}${m}${g}`;return{label:p[e]?.label,lang:p[e]?.htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===d?t?"menu__link--active":"dropdown__link--active":""}})),...r],b=t?(0,l.translate)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):p[d]?.label.substring(0,2).toUpperCase();return o.default.createElement(u.default,{...c,mobile:t,label:o.default.createElement(o.default.Fragment,null,b),items:v})}},51125:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=n(31665),a=r.__importDefault(n(13919)),i=r.__importDefault(n(39960)),l=n(82818),s=r.__importDefault(n(44996)),u=r.__importDefault(n(67294)),c=n(55061),d=r.__importDefault(n(88822));t.default=function(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:f,label:p,html:h,isDropdownLink:m,prependBaseUrlToHref:g,...v}=e;const b=(0,s.default)(r),y=(0,s.default)(t),w=(0,s.default)(f,{forcePrependBaseUrl:!0}),x=p&&f&&!(0,a.default)(f),_=h?{dangerouslySetInnerHTML:{__html:h}}:{children:u.default.createElement(o.Typography,{component:"div",variant:"body2",className:d.default.linkContent},p,x&&u.default.createElement(c.IconExternalLink,{className:d.default.externalLinkIcon}))};return f?u.default.createElement(i.default,{href:g?w:f,...v,..._}):u.default.createElement(i.default,{to:b,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,l.isRegexpStringMatch)(n,t.pathname):t.pathname.startsWith(y)},...v,..._})}},85140:(e,t,n)=>{"use strict";const r=n(97582),o=n(53458),a=r.__importDefault(n(67294)),i=n(19843),l=n(27967),s=n(54400),u=r.__importDefault(n(36459));t.Z=function(e){let{children:t}=e;const n=(0,s.useDocThemeOptions)(),r=n?.sidebar?.hide;return a.default.createElement(o.ColorModeProvider,null,a.default.createElement(l.ThemeProvider,null,a.default.createElement(i.LightBoxProvider,null,a.default.createElement("div",{className:u.default.root,"data-hidden-doc-sidebar":r},t))))}},7020:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchBar=void 0;const r=n(97582),o=n(31665),a=r.__importStar(n(67294)),i=n(40466),l=n(81803),s=n(521),u=n(71044),c=r.__importDefault(n(31259)),d=n(19323),f=n(72997),p=n(43110);t.SearchBar=e=>{let{}=e;const t=(0,l.usePersistedHistory)("search",{unique:!0,equals:(e,t)=>e.title===t.title&&e.href===t.href,maxItems:10}),n=(0,u.useSearch)(),r=(0,a.useRef)(null),[h,m]=(0,a.useState)(""),[g,v]=(0,a.useState)([]),[b,y]=(0,a.useState)(!1);(0,a.useEffect)((()=>{h.length>0?(async e=>{const{results:t}=await n.query(e);v(t)})(h):v([])}),[h]),(0,a.useEffect)((()=>{b?(()=>{const e=r.current;if(!e)return;const t=e.querySelector("input");t&&setTimeout((()=>{t.focus()}),50)})():m("")}),[b]);return(0,s.useWindowEventListener)("keydown",(e=>{(e.ctrlKey||e.metaKey)&&"KeyK"===e.code&&(e.preventDefault(),y(!0))}),{},[]),a.default.createElement(a.default.Fragment,null,a.default.createElement(o.IconButton,{onClick:()=>y(!0),size:"medium"},a.default.createElement(o.SearchIcon,null)),a.default.createElement(i.Modal,{keepMounted:!0,id:"search-modal",open:b,onClose:()=>y(!1),className:c.default.modal},a.default.createElement("div",{className:c.default.header},a.default.createElement(f.SearchInput,{containerRef:r,onClear:()=>{m("")},value:h,onChange:e=>{m(e.target.value)}}),a.default.createElement(o.IconButton,{className:c.default.closeButton,size:"medium",onClick:()=>y(!1)},a.default.createElement(o.CloseIcon,{color:"primary"}))),h.length>0&&a.default.createElement(p.SearchResults,{results:g,onNavigate:(e,n)=>{e.preventDefault(),y(!1),t.add(n),window.location.href=n.href}}),0===h.length&&a.default.createElement(d.SearchHistory,{history:t.list??[],onRemove:t.removeByIndex,onClose:()=>y(!1)})))}},19323:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchHistory=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=n(55061),s=n(33493),u=r.__importDefault(n(61699));t.SearchHistory=e=>{let{history:t=[],onRemove:n,onClose:r,className:c,children:d,...f}=e;return i.default.createElement("div",{className:(0,a.default)(c,u.default.root,0===t.length&&u.default.empty),...f},0===t.length?i.default.createElement(s.SearchResultMessage,null,"No recent searches"):i.default.createElement(i.default.Fragment,null,i.default.createElement(o.Typography,{className:u.default.title,variant:"subtitle2",component:"div"},"Recent"),t.map(((e,t)=>i.default.createElement("div",{key:t,className:u.default.item},i.default.createElement(l.IconHistory,null),i.default.createElement(o.Typography,{variant:"subtitle2",component:"a",href:e.href,className:u.default.itemTitle,dangerouslySetInnerHTML:{__html:e.title},onClick:()=>r&&r()}),i.default.createElement("button",{className:"clean-btn",onClick:()=>n(t)},i.default.createElement(l.IconClose,null)))))))}},72997:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchInput=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=n(89164),s=r.__importDefault(n(9592));t.SearchInput=e=>{let{value:t="",active:n,onChange:r,onClear:u,onFocus:c,onCancel:d,className:f,inputProps:{ref:p,...h}={placeholder:""},containerRef:m,...g}=e;const v=(0,l.useMedia)("(max-width: 996px)"),b=n||t?.length>0;return i.default.createElement("div",{ref:m,className:(0,a.default)(s.default.root,b&&s.default.expanded,f),onKeyDown:e=>{"Escape"===e.code&&t.length>0&&(e.stopPropagation(),u&&u())},...g},i.default.createElement(o.TextField,{className:s.default.textField,value:t,placeholder:b||v?h.placeholder:"",onChange:r,onFocus:e=>{c&&c()},clearButton:!0,icon:i.default.createElement(o.SearchIcon,{color:"primary"}),...h}))}},49067:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultGroup=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(1443));t.SearchResultGroup=e=>{let{className:t,title:n="",children:r,...s}=e;return i.default.createElement("div",{className:(0,a.default)(l.default.root,t),...s},i.default.createElement("div",null,i.default.createElement(o.Typography,{variant:"subtitle2"},n)),i.default.createElement("ul",null,r))}},38594:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(49067),t)},51105:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultItem=void 0;const r=n(97582),o=r.__importDefault(n(39960)),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(7744)),s=r.__importDefault(n(42924)),u=n(95571),c=n(36301),d=r.__importDefault(n(18589)),f={[c.SearchDocumentType.Title]:i.default.createElement(l.default,{className:(0,a.default)(d.default.icon,d.default.fill)}),[c.SearchDocumentType.Heading]:i.default.createElement(s.default,{className:(0,a.default)(d.default.icon,d.default.fill)}),[c.SearchDocumentType.Paragraph]:i.default.createElement(s.default,{className:(0,a.default)(d.default.icon,d.default.fill)})};t.SearchResultItem=e=>{let{type:t,level:n=0,href:r,title:l,content:s,className:c,linkProps:{className:p,...h}={},...m}=e;const g=f[t];return i.default.createElement(o.default,{href:r,className:(0,a.default)(d.default.root,d.default[`level${n}`],p),...h},i.default.createElement(u.SearchResultItemBase,{title:l,content:s,icon:g,...m}))}},13383:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(51105),t)},86704:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultItemBase=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(86620));t.SearchResultItemBase=e=>{let{icon:t,title:n,content:r,className:s,...u}=e;return i.default.createElement("li",{className:(0,a.default)(l.default.root,s),...u},i.default.createElement("span",null,t),i.default.createElement("div",null,n&&i.default.createElement(o.Typography,{variant:"subtitle2",component:"span",dangerouslySetInnerHTML:{__html:n}})))}},95571:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(97582).__exportStar(n(86704),t)},33493:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResultMessage=void 0;const r=n(97582),o=n(31665),a=r.__importDefault(n(86010)),i=r.__importDefault(n(67294)),l=r.__importDefault(n(38076));t.SearchResultMessage=e=>{let{className:t,children:n,...r}=e;return i.default.createElement(o.Typography,{className:(0,a.default)(t,l.default.root),variant:"subtitle2",component:"div",...r},i.default.createElement("span",null,n))}},43110:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchResults=void 0;const r=n(97582),o=r.__importDefault(n(86010)),a=r.__importStar(n(67294)),i=n(38594),l=n(13383),s=n(33493),u=n(81104),c=r.__importDefault(n(20550));t.SearchResults=e=>{let{results:t,className:n,onNavigate:r,...d}=e;const f=t.length,p=(0,a.useMemo)((()=>(0,u.groupSearchResult)(t)),[t]);return a.default.createElement("div",{className:(0,o.default)(c.default.root,0===f&&c.default.noResults)},0===f&&a.default.createElement(s.SearchResultMessage,null,"No result."),a.default.createElement("div",{className:(0,o.default)(c.default.groups)},p.map(((e,t)=>{let[n,o]=e;return a.default.createElement(a.default.Fragment,{key:t},a.default.createElement(i.SearchResultGroup,{className:c.default.group,title:n},o.map(((e,t)=>a.default.createElement(l.SearchResultItem,{key:t,type:e.type,level:e.level,href:e.href,title:e.title,content:e.content,linkProps:r?{onClick:t=>r(t,e)}:{}})))))}))))}},71044:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSearch=void 0;const r=n(67294),o=n(36043);t.useSearch=()=>{const{createSearchInstance:e}=window,t=(0,o.useSearchContextPath)(),[n,a]=(0,r.useState)(!1),i=(0,r.useRef)(null);return(0,r.useEffect)((()=>{a(!1),(async()=>{i.current=await e({resultsLimit:50,preferredVersionPath:t[0],searchContextByPaths:t[1]}),await i.current.init(),a(!0)})()}),[t[0],t[1]]),{loaded:n,query:async e=>await i.current.query(e)}}},36043:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useSearchContextPath=void 0;const r=n(80143),o=n(28097),a=()=>window.getProxiedGeneratedData().searchContextByPaths;t.useSearchContextPath=()=>{const e=a(),t=(0,r.useActivePluginAndVersion)();if(!t)return["/",""];const{activePlugin:{pluginData:{path:n}},activeVersion:i}=t;return i?[n!==i.path?(0,o.ensureTrailingSlash)(i.path):"/",e]:["/",""]}},33760:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=r.__importDefault(n(44763)),a=r.__importDefault(n(67294)),i=n(7020);t.default=()=>"undefined"==typeof window?a.default.createElement(a.default.Fragment,null):a.default.createElement(o.default,{fallback:()=>a.default.createElement(a.default.Fragment,null)},a.default.createElement(i.SearchBar,null))},36301:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SearchDocumentType=void 0,function(e){e.Title="title",e.Heading="heading",e.Paragraph="paragraph"}(t.SearchDocumentType||(t.SearchDocumentType={}))},81104:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.groupSearchResult=void 0;const r=n(97582),o=r.__importDefault(n(7739)),a=r.__importDefault(n(57557)),i=n(36301);t.groupSearchResult=e=>Object.entries((0,o.default)(e.map((e=>(e=>{const{type:t,document:n,page:r,highlighted:o,score:a}=e,{url:l,hash:s=""}=n,u=l+s;switch(t){case i.SearchDocumentType.Title:return{type:t,level:0,url:l,hash:s,href:u,score:a,title:o,content:"",category:n.breadcrumb?.[1]??n.title};case i.SearchDocumentType.Heading:{const e=r;return{type:t,level:1,url:l,hash:s,href:u,score:a,title:o,content:"",category:e?.breadcrumb?.[1]??e?.title??""}}case i.SearchDocumentType.Paragraph:{const e=r;return{type:t,level:2,url:l,hash:s,href:u,score:a,title:n.sectionTitle||n.title||"",content:o,category:e?.breadcrumb?.[1]??e?.title??""}}}})(e))),"category")).map((e=>{let[t,n]=e;return[t,n.map((e=>(0,a.default)(e,"category"))).sort(((e,t)=>e.score>t.score?-1:1))]})).sort(((e,t)=>(e[1][0]?.score??0)>(t[1][0]?.score??0)?-1:1)).map((e=>{let[t,n]=e;return[t,Object.entries((0,o.default)(n,"url")).map((e=>{let[t,n]=e,r=[...n].sort(((e,t)=>e.type===i.SearchDocumentType.Title||e.score>t.score?-1:1));const o=r[0]?.type===i.SearchDocumentType.Title;return r=o?r.filter((e=>!(e.type===i.SearchDocumentType.Heading&&""===e.hash))):r,r=r.map(((e,t)=>({...e,level:o?0===t?0:1:0}))),[t,r]})).sort(((e,t)=>(e[1][0]?.score??0)>(t[1][0]?.score??0)?-1:1)).flatMap((e=>{let[t,n]=e;return n}))]}))},16019:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const r=n(97582),o=r.__importDefault(n(67294)),a=r.__importDefault(n(86010)),i=r.__importDefault(n(72389)),l=n(82818),s=r.__importDefault(n(65787));t.default=function(e){const t=(0,i.default)(),{colorMode:n}=(0,l.useColorMode)(),{sources:r,className:u,alt:c,...d}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.default.createElement(o.default.Fragment,null,f.map((e=>o.default.createElement("img",{key:e,src:r[e],alt:c,className:(0,a.default)(s.default.themedImage,s.default[`themedImage--${e}`],u),...d}))))}},98934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(67294);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},2691:(e,t,n)=>{"use strict";var r=n(67294),o=n(73935),a=n(73727),i=n(70405),l=n(10412);const s=[n(85711),n(32497),n(3310),n(18320),n(11057),n(93878)];var u=n(723),c=n(16550),d=n(18790),f=n(85140),p=n(87462),h=n(35742),m=n(52263),g=n(44996),v=n(86668),b=n(10833),y=n(94711),w=n(19727),x=n(43320),_=n(18780),k=n(90197);function E(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,m.default)(),n=(0,y.l)();return r.createElement(h.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function S(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,m.default)(),o=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,m.default)(),{pathname:r}=(0,c.TH)();return e+(0,_.applyTrailingSlash)((0,g.default)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:o;return r.createElement(h.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function C(){const{i18n:{currentLocale:e}}=(0,m.default)(),{metadata:t,image:n}=(0,v.L)();return r.createElement(r.Fragment,null,r.createElement(h.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(b.d,{image:n}),r.createElement(S,null),r.createElement(E,null),r.createElement(k.Z,{tag:x.HX,locale:e}),r.createElement(h.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const T=new Map;function O(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var D=n(98934),P=n(58940);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const o=s.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const I=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),N("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function A(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class L extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?N("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),A(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(I,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const R=L,j="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function z(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${j}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function $(){const{siteConfig:{baseUrl:e}}=(0,m.default)();return(0,r.useLayoutEffect)((()=>{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(h.Z,null,r.createElement("script",null,z(e))),r.createElement("div",{id:j}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,m.default)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement($,null):null}function H(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,m.default)(),i=(0,g.default)(e),{htmlLang:l,direction:s}=a[o];return r.createElement(h.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var V=n(44763),q=n(72389);function W(){const e=(0,q.default)();return r.createElement(h.Z,null,r.createElement("html",{"data-has-hydrated":e}))}function G(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(V.default,null,r.createElement(P.M,null,r.createElement(D.t,null,r.createElement(f.Z,null,r.createElement(H,null),r.createElement(C,null),r.createElement(U,null),r.createElement(R,{location:O(t)},e)),r.createElement(W,null))))}var Z=n(16887);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Y=n(99670);const X=new Set,K=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!K.has(e)&&!X.has(e))(e))return!1;X.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(Z).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Y.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!K.has(e))(e)&&(K.add(e),A(e))},te=Object.freeze(ee);if(l.Z.canUseDOM){window.docusaurus=te;const e=o.hydrate;A(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(G,null))),document.getElementById("__docusaurus"))}))}},58940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(67294),o=n(36809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"community","docs":[{"id":"community","path":"/community"},{"id":"events/eth-denver","path":"/events/eth-denver","sidebar":"defaultSidebar"},{"id":"events/index","path":"/events/","sidebar":"defaultSidebar"},{"id":"join-us","path":"/join-us"},{"id":"privacy-policy","path":"/privacy-policy"},{"id":"terms","path":"/terms"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/community","label":"community"}}}}],"breadcrumbs":true},"about":{"path":"/about","versions":[{"name":"current","label":"Next","isLast":true,"path":"/about","mainDocId":"index","docs":[{"id":"architect","path":"/about/architect","sidebar":"defaultSidebar"},{"id":"index","path":"/about/","sidebar":"defaultSidebar"},{"id":"roadmap","path":"/about/roadmap","sidebar":"defaultSidebar"},{"id":"team","path":"/about/team","sidebar":"defaultSidebar"},{"id":"waku-network","path":"/about/waku-network","sidebar":"defaultSidebar"}],"draftIds":[],"sidebars":{"defaultSidebar":{"link":{"path":"/about/","label":"index"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(57529);const s=JSON.parse('{"docusaurusVersion":"2.4.3","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.3"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.3"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.3"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.3"},"docusaurus-plugin-sass":{"type":"package","name":"docusaurus-plugin-sass","version":"0.2.5"},"logos-docusaurus-search-local":{"type":"package","name":"@acid-info/logos-docusaurus-search-local","version":"1.0.0-alpha.111"},"logos-data-plugin":{"type":"local"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.3"},"docusaurus-theme-mermaid":{"type":"package","name":"@docusaurus/theme-mermaid","version":"2.4.3"},"logos-docusaurus-theme":{"type":"package","name":"@acid-info/logos-docusaurus-theme","version":"1.0.0-topic-events.1+dece47d"},"docusaurus-og":{"type":"package","name":"@acid-info/docusaurus-og","version":"1.0.0-alpha.131"}}}'),u={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},44763:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>f});var r=n(67294),o=n(10412),a=n(35742),i=n(18780),l=n(59351);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.default,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},10412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},35742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(70405);function a(e){return r.createElement(o.ql,e)}},39960:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(87462),o=n(67294),a=n(73727),i=n(18780),l=n(52263),s=n(13919),u=n(10412);const c=o.createContext({collectLink:()=>{}});var d=n(44996);function f(e,t){let{isNavLink:n,to:f,href:p,activeClassName:h,isActive:m,"data-noBrokenLinkCheck":g,autoAddBaseUrl:v=!0,...b}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.default)(),{withBaseUrl:x}=(0,d.useBaseUrlUtils)(),_=(0,o.useContext)(c),k=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>k.current));const E=f||p;const S=(0,s.default)(E),C=E?.replace("pathname://","");let T=void 0!==C?(O=C,v&&(e=>e.startsWith("/"))(O)?x(O):O):void 0;var O;T&&S&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const D=(0,o.useRef)(!1),P=n?a.OL:a.rU,N=u.Z.canUseIntersectionObserver,I=(0,o.useRef)(),A=()=>{D.current||null==T||(window.docusaurus.preload(T),D.current=!0)};(0,o.useEffect)((()=>(!N&&S&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&I.current&&I.current.disconnect()})),[I,T,N,S]);const L=T?.startsWith("#")??!1,R=!T||!S||L;return R||g||_.collectLink(T),R?o.createElement("a",(0,r.Z)({ref:k,href:T},E&&!S&&{target:"_blank",rel:"noopener noreferrer"},b)):o.createElement(P,(0,r.Z)({},b,{onMouseEnter:A,onTouchStart:A,innerRef:e=>{k.current=e,N&&e&&S&&(I.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(I.current.unobserve(e),I.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),I.current.observe(e))},to:T},n&&{isActive:m,activeClassName:h}))}const p=o.forwardRef(f)},95999:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,translate:()=>l});var r=n(67294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(57529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return a[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,o(l,a))}},29935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},13919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.r(t),n.d(t,{default:()=>o,hasProtocol:()=>r})},28143:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Redirect:()=>r.l_,matchPath:()=>r.LX,useHistory:()=>r.k6,useLocation:()=>r.TH});var r=n(16550)},44996:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useBaseUrlUtils:()=>i});var r=n(67294),o=n(52263),a=n(13919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.default)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.hasProtocol)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},52263:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(67294),o=n(58940);function a(){return(0,r.useContext)(o._)}},72389:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(67294),o=n(98934);function a(){return(0,r.useContext)(o._)}},99670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},30226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(67294);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},80143:(e,t,n)=>{"use strict";n.r(t),n.d(t,{useActiveDocContext:()=>b,useActivePlugin:()=>p,useActivePluginAndVersion:()=>h,useActiveVersion:()=>v,useAllDocsData:()=>d,useDocVersionSuggestions:()=>y,useDocsData:()=>f,useLatestVersion:()=>g,useVersions:()=>m});var r=n(16550),o=n(52263),a=n(29935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.default)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function h(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function m(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return s(t,n)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function y(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},18320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(74865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(87410),o=n(36809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},88507:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>T});var r=n(67294),o=n(86668),a=n(42489),i=n(87462),l=n(39960),s=n(44996),u=n(13919),c=n(39471);function d(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:d,...f}=t,p=(0,s.default)(n),h=(0,s.default)(o,{forcePrependBaseUrl:!0});return r.createElement(l.default,(0,i.Z)({className:"footer__link-item"},o?{href:d?h:o}:{to:p},f),a,o&&!(0,u.default)(o)&&r.createElement(c.Z,null))}function f(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(d,{item:t}))}function p(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(f,{key:t,item:e})))))}function h(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(p,{key:t,column:e}))))}function m(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function g(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(d,{item:t})}function v(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(g,{item:e}),t.length!==n+1&&r.createElement(m,null))))))}function b(e){let{links:t}=e;return(0,a.a)(t)?r.createElement(h,{columns:t}):r.createElement(v,{links:t})}var y=n(86010),w=n(16019);const x={footerLogoLink:"footerLogoLink_BH7S"};function _(e){let{logo:t}=e;const{withBaseUrl:n}=(0,s.useBaseUrlUtils)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(w.default,{className:(0,y.default)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function k(e){let{logo:t}=e;return t.href?r.createElement(l.default,{href:t.href,className:x.footerLogoLink,target:t.target},r.createElement(_,{logo:t})):r.createElement(_,{logo:t})}function E(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}var S=n(52601);function C(){const{footer:e}=(0,o.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:i}=e;return r.createElement(S.Z,{style:i,links:n&&n.length>0&&r.createElement(b,{links:n}),logo:a&&r.createElement(k,{logo:a}),copyright:t&&r.createElement(E,{copyright:t})})}const T=r.memo(C)},55211:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(87462),o=n(67294);function a(e){return o.createElement("svg",(0,r.Z)({viewBox:"0 0 24 24",width:24,height:24},e),o.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}},39471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294);const o={iconExternalLink:"iconExternalLink_nPIU"};function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},67080:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(87462),o=n(67294);function a(e){return o.createElement("svg",(0,r.Z)({viewBox:"0 0 24 24",width:24,height:24},e),o.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}},59351:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>N});var r=n(67294),o=n(86010),a=n(44763),i=n(10833),l=n(55225),s=n(35281),u=n(19727);const c={skipToContent:"skipToContent_fXgn"};function d(){return r.createElement(l.l,{className:c.skipToContent})}var f=n(86668),p=n(59689),h=n(87462),m=n(95999);function g(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...l}=e;return r.createElement("svg",(0,h.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const v={closeButton:"closeButton_CVFx"};function b(e){return r.createElement("button",(0,h.Z)({type:"button","aria-label":(0,m.translate)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.default)("clean-btn close",v.closeButton,e.className)}),r.createElement(g,{width:14,height:14,strokeWidth:3.1}))}const y={content:"content_knG7"};function w(e){const{announcementBar:t}=(0,f.L)(),{content:n}=t;return r.createElement("div",(0,h.Z)({},e,{className:(0,o.default)(y.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const x={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function _(){const{announcementBar:e}=(0,f.L)(),{isActive:t,close:n}=(0,p.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:x.announcementBar,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:x.announcementBarPlaceholder}),r.createElement(w,{className:x.announcementBarContent}),i&&r.createElement(b,{onClick:n,className:x.announcementBarClose}))}var k=n(4818),E=n(10428);function S(){return r.createElement(k.Z,null,r.createElement(E.Z,null))}var C=n(88507),T=n(90988),O=n(69690);function D(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(m.default,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(O.Cw,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(O.aG,{error:t})))))}const P={mainWrapper:"mainWrapper_z2l0"};function N(e){const{children:t,noFooter:n,wrapperClassName:c,title:f,description:p}=e;return(0,u.t)(),r.createElement(T.Z,null,r.createElement(i.d,{title:f,description:p}),r.createElement(d,null),r.createElement(_,null),r.createElement(S,null),r.createElement("div",{id:l.u,className:(0,o.default)(s.k.wrapper.main,P.mainWrapper,c)},r.createElement(a.default,{fallback:e=>r.createElement(D,e)},t)),!n&&r.createElement(C.default,null))}},2101:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(67294),o=n(86668),a=n(92949),i=n(66354);const l={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function s(e){let{className:t}=e;const n=(0,o.L)().navbar.style,s=(0,o.L)().colorMode.disableSwitch,{colorMode:u,setColorMode:c}=(0,a.I)();return s?null:r.createElement(i.Z,{className:t,buttonClassName:"dark"===n?l.darkNavbarColorModeToggle:void 0,value:u,onChange:c})}},29865:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s});var r=n(67294),o=n(93163),a=n(95999),i=n(87462);function l(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,i.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function s(){const{toggle:e,shown:t}=(0,o.e)();return r.createElement("button",{onClick:e,"aria-label":(0,a.translate)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(l,null))}},2203:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>p});var r=n(67294),o=n(93163),a=n(69800),i=n(82892),l=n(42977),s=n(87462),u=n(86668),c=n(4710);function d(){const e=(0,o.e)(),t=(0,u.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(c.default,(0,s.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}var f=n(38732);function p(){const e=(0,o.e)();return(0,a.N)(e.shown),e.shouldRender?r.createElement(i.Z,{header:r.createElement(l.Z,null),primaryMenu:r.createElement(d,null),secondaryMenu:r.createElement(f.Z,null)}):null}},4710:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>_});var r=n(67294),o=n(87462),a=n(86010),i=n(51125);function l(e){let{className:t,isDropdownItem:n=!1,...l}=e;const s=r.createElement(i.default,(0,o.Z)({className:(0,a.default)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},l));return n?r.createElement("li",null,s):s}function s(e){let{className:t,isDropdownItem:n,...l}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(i.default,(0,o.Z)({className:(0,a.default)("menu__link",t)},l)))}function u(e){let{mobile:t=!1,position:n,...a}=e;const i=t?s:l;return r.createElement(i,(0,o.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var c=n(27654),d=n(12197),f=n(33760);const p={searchBox:"searchBox_ZlJk"};function h(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.default)(n,p.searchBox)},t)}var m=n(80143),g=n(53438);var v=n(60373),b=n(95999),y=n(16550);const w=e=>e.docs.find((t=>t.id===e.mainDocId));const x={default:u,localeDropdown:d.Z,search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(h,{className:n},r.createElement(f.default,null))},dropdown:c.default,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.default)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,m.useActiveDocContext)(a),s=(0,g.vY)(t,a);return null===s?null:r.createElement(u,(0,o.Z)({exact:!0},i,{isActive:()=>l?.path===s.path||!!l?.sidebar&&l.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...i}=e;const{activeDoc:l}=(0,m.useActiveDocContext)(a),s=(0,g.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(u,(0,o.Z)({exact:!0},i,{isActive:()=>l?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...i}=e;const l=(0,g.lO)(a)[0],s=t??l.label,c=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(l).path;return r.createElement(u,(0,o.Z)({},i,{label:s,to:c}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:i,dropdownItemsAfter:l,...s}=e;const{search:d,hash:f}=(0,y.TH)(),p=(0,m.useActiveDocContext)(n),h=(0,m.useVersions)(n),{savePreferredVersionName:x}=(0,v.J)(n),_=[...i,...h.map((e=>{const t=p.alternateDocVersions[e.name]??w(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>x(e.name)}})),...l],k=(0,g.lO)(n)[0],E=t&&_.length>1?(0,b.translate)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):k.label,S=t&&_.length>1?void 0:w(k).path;return _.length<=1?r.createElement(u,(0,o.Z)({},s,{mobile:t,label:E,to:S,isActive:a?()=>!1:void 0})):r.createElement(c.default,(0,o.Z)({},s,{mobile:t,label:E,to:S,items:_,isActive:a?()=>!1:void 0}))}};function _(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=x[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}},90197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(67294),o=n(35742);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},59689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>p});var r=n(67294),o=n(72389),a=n(50012),i=n(902),l=n(86668);const s=(0,a.WA)("docusaurus.announcement.dismiss"),u=(0,a.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.default)(),[n,a]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{a(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},92949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>m});var r=n(67294),o=n(10412),a=n(902),i=n(50012),l=n(86668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>o.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{c.set(f(e))};function m(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,a]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&h(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[o,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},65130:(e,t,n)=>{"use strict";n.d(t,{b:()=>i,k:()=>l});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t,content:n}=e;const o=function(e){return(0,r.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return r.createElement(a.Provider,{value:o},t)}function l(){const e=(0,r.useContext)(a);if(null===e)throw new o.i6("DocProvider");return e}},14353:(e,t,n)=>{"use strict";n.d(t,{D:()=>l,f:()=>s});var r=n(67294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t}=e;const[n,o]=(0,r.useState)(null),a=(0,r.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocSidebarItemsExpandedStateProvider");return e}},60373:(e,t,n)=>{"use strict";n.d(t,{J:()=>b,L5:()=>g,Oh:()=>y});var r=n(67294),o=n(80143),a=n(29935),i=n(86668),l=n(53438),s=n(902),u=n(50012);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function h(){const e=(0,o.useAllDocsData)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function m(e){let{children:t}=e;const n=h();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(m,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=a.m);const t=(0,o.useDocsData)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,o.useAllDocsData)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(67294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},74477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(null===e)throw new o.i6("DocsVersionProvider");return e}},93163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(67294),o=n(13102),a=n(87524),i=n(91980),l=n(86668),s=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},13102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(67294),o=n(902);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},2730:(e,t,n)=>{"use strict";n.d(t,{a:()=>i});var r=n(67294),o=n(12466),a=n(85936);function i(e){let{threshold:t}=e;const[n,i]=(0,r.useState)(!1),l=(0,r.useRef)(!1),{startScroll:s,cancelScroll:u}=(0,o.Ct)();return(0,o.RF)(((e,n)=>{let{scrollY:r}=e;const o=n?.scrollY;o&&(l.current?l.current=!1:r>=o?(u(),i(!1)):r<t?i(!1):r+window.innerHeight<document.documentElement.scrollHeight&&i(!0))})),(0,a.S)((e=>{e.location.hash&&(l.current=!0,i(!1))})),{shown:n,scrollToTop:()=>s(0)}}},19727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(67294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},69800:(e,t,n)=>{"use strict";n.d(t,{N:()=>o});var r=n(67294);function o(e){void 0===e&&(e=!0),(0,r.useEffect)((()=>(document.body.style.overflow=e?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[e])}},66412:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(92949),o=n(86668);function a(){const{prism:e}=(0,o.L)(),{colorMode:t}=(0,r.I)(),n=e.theme,a=e.darkTheme||n;return"dark"===t?a:n}},96841:(e,t,n)=>{"use strict";n.d(t,{S:()=>s});var r=n(67294),o=n(86668);function a(e){const t=e.getBoundingClientRect();return t.top===t.bottom?a(e.parentNode):t}function i(e,t){let{anchorTopOffset:n}=t;const r=e.find((e=>a(e).top>=n));if(r){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(a(r))?r:e[e.indexOf(r)-1]??null}return e[e.length-1]??null}function l(){const e=(0,r.useRef)(0),{navbar:{hideOnScroll:t}}=(0,o.L)();return(0,r.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function s(e){const t=(0,r.useRef)(void 0),n=l();(0,r.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:r,linkActiveClassName:o,minHeadingLevel:a,maxHeadingLevel:l}=e;function s(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(r),s=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const r=[];for(let o=t;o<=n;o+=1)r.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(r.join()))}({minHeadingLevel:a,maxHeadingLevel:l}),u=i(s,{anchorTopOffset:n.current}),c=e.find((e=>u&&u.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(o),e.classList.add(o),t.current=e):e.classList.remove(o)}(e,e===c)}))}return document.addEventListener("scroll",s),document.addEventListener("resize",s),s(),()=>{document.removeEventListener("scroll",s),document.removeEventListener("resize",s)}}),[e,n])}},87524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(67294),o=n(10412);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return o.Z.canUseDOM?window.innerWidth>i?a.desktop:a.mobile:a.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},82818:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Collapsible:()=>C,ErrorBoundaryError:()=>G.aG,ErrorBoundaryTryAgainButton:()=>G.Cw,ErrorCauseBoundary:()=>G.QW,HtmlClassNameProvider:()=>D.FG,NavbarSecondaryMenuFiller:()=>N.Zo,PageMetadata:()=>D.d,ReactContextError:()=>O.i6,SkipToContentFallbackId:()=>W.u,SkipToContentLink:()=>W.l,ThemeClassNames:()=>T.k,composeProviders:()=>O.Qc,createStorageSlot:()=>o.WA,duplicates:()=>U.l,filterDocCardListItems:()=>i.MN,isMultiColumnFooterLinks:()=>z.a,isRegexpStringMatch:()=>$,listStorageKeys:()=>o._f,listTagsByLetters:()=>R,prefersReducedMotion:()=>g.n,processAdmonitionProps:()=>q,translateTagsPageTitle:()=>L,uniq:()=>U.j,useCollapsible:()=>b,useColorMode:()=>P.I,useContextualSearchFilters:()=>a._q,useCurrentSidebarCategory:()=>i.jA,useDocsPreferredVersion:()=>V.J,useEvent:()=>O.zX,useIsomorphicLayoutEffect:()=>O.LI,usePluralForm:()=>p,usePrevious:()=>O.D9,usePrismTheme:()=>H.p,useSearchLinkCreator:()=>B,useSearchQueryString:()=>F,useStorageSlot:()=>o.Nk,useThemeConfig:()=>r.L,useWindowSize:()=>I.i});var r=n(86668),o=n(50012),a=n(43320),i=n(53438),l=n(67294),s=n(52263);const u=["zero","one","two","few","many","other"];function c(e){return u.filter((t=>e.includes(t)))}const d={locale:"en",pluralForms:c(["one","other"]),select:e=>1===e?"one":"other"};function f(){const{i18n:{currentLocale:e}}=(0,s.default)();return(0,l.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:c(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),d}}),[e])}function p(){const e=f();return{selectMessage:(t,n)=>function(e,t,n){const r=e.split("|");if(1===r.length)return r[0];r.length>n.pluralForms.length&&console.error(`For locale=${n.locale}, a maximum of ${n.pluralForms.length} plural forms are expected (${n.pluralForms.join(",")}), but the message contains ${r.length}: ${e}`);const o=n.select(t),a=n.pluralForms.indexOf(o);return r[Math.min(a,r.length-1)]}(n,t,e)}}var h=n(87462),m=n(10412),g=n(91442);const v="ease-in-out";function b(e){let{initialState:t}=e;const[n,r]=(0,l.useState)(t??!1),o=(0,l.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const y={display:"none",overflow:"hidden",height:"0px"},w={display:"block",overflow:"visible",height:"auto"};function x(e,t){const n=t?y:w;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function _(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,l.useRef)(!1);(0,l.useEffect)((()=>{const e=t.current;function a(){const t=e.scrollHeight,n=r?.duration??function(e){if((0,g.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${r?.easing??v}`,height:`${t}px`}}function i(){const t=a();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return x(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=y.height,e.style.overflow=y.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function k(e){if(!m.Z.canUseDOM)return e?y:w}function E(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:a,className:i,disableSSRStyle:s}=e;const u=(0,l.useRef)(null);return _({collapsibleRef:u,collapsed:n,animation:o}),l.createElement(t,{ref:u,style:s?void 0:k(n),onTransitionEnd:e=>{"height"===e.propertyName&&(x(u.current,n),a?.(n))},className:i},r)}function S(e){let{collapsed:t,...n}=e;const[r,o]=(0,l.useState)(!t),[a,i]=(0,l.useState)(t);return(0,l.useLayoutEffect)((()=>{t||o(!0)}),[t]),(0,l.useLayoutEffect)((()=>{r&&i(t)}),[r,t]),r?l.createElement(E,(0,h.Z)({},n,{collapsed:a})):null}function C(e){let{lazy:t,...n}=e;const r=t?S:E;return l.createElement(r,n)}var T=n(35281),O=n(902),D=n(10833),P=n(92949),N=n(13102),I=n(87524),A=n(95999);const L=()=>(0,A.translate)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});function R(e){const t={};return Object.values(e).forEach((e=>{const n=function(e){return e[0].toUpperCase()}(e.label);t[n]??=[],t[n].push(e)})),Object.entries(t).sort(((e,t)=>{let[n]=e,[r]=t;return n.localeCompare(r)})).map((e=>{let[t,n]=e;return{letter:t,tags:n.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}var j=n(91980);const M="q";function F(){return(0,j.Nc)(M)}function B(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,s.default)(),{algolia:{searchPagePath:n}}=t;return(0,l.useCallback)((t=>`${e}${n}?${M}=${encodeURIComponent(t)}`),[e,n])}var z=n(42489);function $(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var U=n(67392),H=n(66412),V=n(60373);function q(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=l.Children.toArray(e),n=t.find((e=>l.isValidElement(e)&&"mdxAdmonitionTitle"===e.props?.mdxType)),r=l.createElement(l.Fragment,null,t.filter((e=>e!==n)));return{mdxAdmonitionTitle:n?.props.children,rest:r}}(e.children),r=e.title??t;return{...e,...r&&{title:r},children:n}}var W=n(55225),G=n(69690)},53458:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AnnouncementBarProvider:()=>h.pl,BlogPostProvider:()=>d,Collapsible:()=>r.Collapsible,ColorModeProvider:()=>P.S,DEFAULT_SEARCH_TAG:()=>A.HX,DocProvider:()=>l.b,DocSidebarItemsExpandedStateProvider:()=>o.D,DocsPreferredVersionContextProvider:()=>p.L5,DocsSidebarProvider:()=>i.b,DocsVersionProvider:()=>a.q,ErrorBoundaryError:()=>r.ErrorBoundaryError,ErrorBoundaryTryAgainButton:()=>r.ErrorBoundaryTryAgainButton,ErrorCauseBoundary:()=>r.ErrorCauseBoundary,HtmlClassNameProvider:()=>r.HtmlClassNameProvider,NavbarProvider:()=>q,NavbarSecondaryMenuFiller:()=>r.NavbarSecondaryMenuFiller,PageMetadata:()=>r.PageMetadata,PluginHtmlClassNameProvider:()=>U.VC,ReactContextError:()=>r.ReactContextError,ScrollControllerProvider:()=>z.OC,SkipToContentFallbackId:()=>r.SkipToContentFallbackId,SkipToContentLink:()=>r.SkipToContentLink,ThemeClassNames:()=>r.ThemeClassNames,composeProviders:()=>r.composeProviders,containsLineNumbers:()=>I.nt,createStorageSlot:()=>r.createStorageSlot,docVersionSearchTag:()=>A.os,duplicates:()=>r.duplicates,filterDocCardListItems:()=>r.filterDocCardListItems,findFirstCategoryLink:()=>L.Wl,findSidebarCategory:()=>L.em,getPrismCssVariables:()=>I.QC,isActiveSidebarItem:()=>L._F,isDocsPluginEnabled:()=>L.cE,isMultiColumnFooterLinks:()=>r.isMultiColumnFooterLinks,isRegexpStringMatch:()=>r.isRegexpStringMatch,isSamePath:()=>$.Mg,keyboardFocusedClassName:()=>Z.h,listStorageKeys:()=>r.listStorageKeys,listTagsByLetters:()=>r.listTagsByLetters,parseCodeBlockTitle:()=>I.bc,parseLanguage:()=>I.Vo,parseLines:()=>I.nZ,prefersReducedMotion:()=>r.prefersReducedMotion,processAdmonitionProps:()=>r.processAdmonitionProps,splitNavbarItems:()=>V,translateTagsPageTitle:()=>r.translateTagsPageTitle,uniq:()=>r.uniq,useAlternatePageUtils:()=>N.l,useAnnouncementBar:()=>h.nT,useBackToTopButton:()=>J.a,useBlogPost:()=>f,useCodeWordWrap:()=>K,useCollapsible:()=>r.useCollapsible,useColorMode:()=>r.useColorMode,useContextualSearchFilters:()=>r.useContextualSearchFilters,useCurrentSidebarCategory:()=>r.useCurrentSidebarCategory,useDoc:()=>l.k,useDocById:()=>L.xz,useDocRouteMetadata:()=>L.hI,useDocSidebarItemsExpandedState:()=>o.f,useDocsPreferredVersion:()=>r.useDocsPreferredVersion,useDocsPreferredVersionByPluginId:()=>p.Oh,useDocsSidebar:()=>i.V,useDocsVersion:()=>a.E,useDocsVersionCandidates:()=>L.lO,useEvent:()=>r.useEvent,useFilteredAndTreeifiedTOC:()=>B.b,useHideableNavbar:()=>G,useHistoryPopHandler:()=>g.Rb,useHistorySelector:()=>g.xL,useHomePageRoute:()=>$.Ns,useIsomorphicLayoutEffect:()=>r.useIsomorphicLayoutEffect,useKeyboardNavigation:()=>Z.t,useLayoutDoc:()=>L.vY,useLayoutDocsSidebar:()=>L.oz,useLocalPathname:()=>F,useLocationChange:()=>j.S,useLockBodyScroll:()=>Q.N,useNavbarMobileSidebar:()=>E.e,useNavbarSecondaryMenu:()=>D,usePluralForm:()=>r.usePluralForm,usePrevious:()=>r.usePrevious,usePrismTheme:()=>r.usePrismTheme,useQueryStringValue:()=>g._X,useScrollController:()=>z.sG,useScrollPosition:()=>z.RF,useScrollPositionBlocker:()=>z.o5,useSearchLinkCreator:()=>r.useSearchLinkCreator,useSearchQueryString:()=>r.useSearchQueryString,useSidebarBreadcrumbs:()=>L.s1,useSmoothScrollTo:()=>z.Ct,useStorageSlot:()=>r.useStorageSlot,useTOCHighlight:()=>W.S,useTabs:()=>k,useThemeConfig:()=>r.useThemeConfig,useTitleFormatter:()=>R.p,useTreeifiedTOC:()=>B.a,useWindowSize:()=>r.useWindowSize});var r=n(82818),o=n(14353),a=n(74477),i=n(1116),l=n(65130),s=n(67294),u=n(902);const c=s.createContext(null);function d(e){let{children:t,content:n,isBlogPostPage:r=!1}=e;const o=function(e){let{content:t,isBlogPostPage:n}=e;return(0,s.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:n})),[t,n])}({content:n,isBlogPostPage:r});return s.createElement(c.Provider,{value:o},t)}function f(){const e=(0,s.useContext)(c);if(null===e)throw new u.i6("BlogPostProvider");return e}var p=n(60373),h=n(59689),m=n(16550),g=n(91980),v=n(67392),b=n(50012);function y(e){return function(e){return s.Children.map(e,(e=>{if(!e||(0,s.isValidElement)(e)&&function(e){const{props:t}=e;return!!t&&"object"==typeof t&&"value"in t}(e))return e;throw new Error(`Docusaurus error: Bad <Tabs> child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the <Tabs> component should be <TabItem>, and every <TabItem> should have a unique "value" prop.`)}))?.filter(Boolean)??[]}(e).map((e=>{let{props:{value:t,label:n,attributes:r,default:o}}=e;return{value:t,label:n,attributes:r,default:o}}))}function w(e){const{values:t,children:n}=e;return(0,s.useMemo)((()=>{const e=t??y(n);return function(e){const t=(0,v.l)(e,((e,t)=>e.value===t.value));if(t.length>0)throw new Error(`Docusaurus error: Duplicate values "${t.map((e=>e.value)).join(", ")}" found in <Tabs>. Every value needs to be unique.`)}(e),e}),[t,n])}function x(e){let{value:t,tabValues:n}=e;return n.some((e=>e.value===t))}function _(e){let{queryString:t=!1,groupId:n}=e;const r=(0,m.k6)(),o=function(e){let{queryString:t=!1,groupId:n}=e;if("string"==typeof t)return t;if(!1===t)return null;if(!0===t&&!n)throw new Error('Docusaurus error: The <Tabs> component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return n??null}({queryString:t,groupId:n});return[(0,g._X)(o),(0,s.useCallback)((e=>{if(!o)return;const t=new URLSearchParams(r.location.search);t.set(o,e),r.replace({...r.location,search:t.toString()})}),[o,r])]}function k(e){const{defaultValue:t,queryString:n=!1,groupId:r}=e,o=w(e),[a,i]=(0,s.useState)((()=>function(e){let{defaultValue:t,tabValues:n}=e;if(0===n.length)throw new Error("Docusaurus error: the <Tabs> component requires at least one <TabItem> children component");if(t){if(!x({value:t,tabValues:n}))throw new Error(`Docusaurus error: The <Tabs> has a defaultValue "${t}" but none of its children has the corresponding value. Available values are: ${n.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return t}const r=n.find((e=>e.default))??n[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:t,tabValues:o}))),[l,u]=_({queryString:n,groupId:r}),[c,d]=function(e){let{groupId:t}=e;const n=function(e){return e?`docusaurus.tab.${e}`:null}(t),[r,o]=(0,b.Nk)(n);return[r,(0,s.useCallback)((e=>{n&&o.set(e)}),[n,o])]}({groupId:r}),f=(()=>{const e=l??c;return x({value:e,tabValues:o})?e:null})();(0,s.useLayoutEffect)((()=>{f&&i(f)}),[f]);return{selectedValue:a,selectValue:(0,s.useCallback)((e=>{if(!x({value:e,tabValues:o}))throw new Error(`Can't select invalid tab value=${e}`);i(e),u(e),d(e)}),[u,d,o]),tabValues:o}}var E=n(93163),S=n(13102);const C=s.createContext(null);function T(e){let{children:t}=e;const n=function(){const e=(0,E.e)(),t=(0,S.HY)(),[n,r]=(0,s.useState)(!1),o=null!==t.component,a=(0,u.D9)(o);return(0,s.useEffect)((()=>{o&&!a&&r(!0)}),[o,a]),(0,s.useEffect)((()=>{o?e.shown||r(!0):r(!1)}),[e.shown,o]),(0,s.useMemo)((()=>[n,r]),[n])}();return s.createElement(C.Provider,{value:n},t)}function O(e){if(e.component){const t=e.component;return s.createElement(t,e.props)}}function D(){const e=(0,s.useContext)(C);if(!e)throw new u.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,r=(0,s.useCallback)((()=>n(!1)),[n]),o=(0,S.HY)();return(0,s.useMemo)((()=>({shown:t,hide:r,content:O(o)})),[r,o,t])}var P=n(92949),N=n(94711),I=n(37016),A=n(43320),L=n(53438),R=n(82128),j=n(85936),M=n(52263);function F(){const{siteConfig:{baseUrl:e}}=(0,M.default)(),{pathname:t}=(0,m.TH)();return t.replace(e,"/")}var B=n(39665),z=n(12466),$=n(48596),U=n(10833);const H="right";function V(e){function t(e){return"left"===(e.position??H)}return[e.filter(t),e.filter((e=>!t(e)))]}function q(e){let{children:t}=e;return s.createElement(S.n2,null,s.createElement(E.M,null,s.createElement(T,null,t)))}var W=n(96841);function G(e){const[t,n]=(0,s.useState)(e),r=(0,s.useRef)(!1),o=(0,s.useRef)(0),a=(0,s.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,z.RF)(((t,a)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(r.current)return void(r.current=!1);const l=a?.scrollY,s=document.documentElement.scrollHeight-o.current,u=window.innerHeight;l&&i>=l?n(!1):i+u<s&&n(!0)})),(0,j.S)((t=>{if(!e)return;const o=t.location.hash;if(o?document.getElementById(o.substring(1)):void 0)return r.current=!0,void n(!1);n(!0)})),{navbarRef:a,isNavbarVisible:t}}var Z=n(19727),Q=n(69800);const Y={attributes:!0,characterData:!0,childList:!0,subtree:!0};function X(e,t){const[n,r]=(0,s.useState)(),o=(0,s.useCallback)((()=>{r(e.current?.closest("[role=tabpanel][hidden]"))}),[e,r]);(0,s.useEffect)((()=>{o()}),[o]),function(e,t,n){void 0===n&&(n=Y);const r=(0,u.zX)(t),o=(0,u.Ql)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(r);return e&&t.observe(e,o),()=>t.disconnect()}),[e,r,o])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),o())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function K(){const[e,t]=(0,s.useState)(!1),[n,r]=(0,s.useState)(!1),o=(0,s.useRef)(null),a=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),i=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");r(n)}),[o]);return X(o,i),(0,s.useEffect)((()=>{i()}),[e,i]),(0,s.useEffect)((()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)})),[i]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:a}}var J=n(2730)},35281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},91442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},37016:(e,t,n)=>{"use strict";n.d(t,{QC:()=>p,Vo:()=>d,bc:()=>u,nZ:()=>f,nt:()=>c});var r=n(87594),o=n.n(r);const a=/title=(?<quote>["'])(?<title>.*?)\1/,i=/\{(?<range>[\d,-]+)\}/,l={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}};function s(e,t){const n=e.map((e=>{const{start:n,end:r}=l[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${r})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function u(e){return e?.match(a)?.groups.title??""}function c(e){return Boolean(e?.includes("showLineNumbers"))}function d(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}function f(e,t){let n=e.replace(/\n$/,"");const{language:r,magicComments:a,metastring:u}=t;if(u&&i.test(u)){const e=u.match(i).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${u}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,r=o()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(r),code:n}}if(void 0===r)return{lineClassNames:{},code:n};const c=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return s(["js","jsBlock"],t);case"jsx":case"tsx":return s(["js","jsBlock","jsx"],t);case"html":return s(["js","jsBlock","html"],t);case"python":case"py":case"bash":return s(["bash"],t);case"markdown":case"md":return s(["html","jsx","bash"],t);default:return s(Object.keys(l),t)}}(r,a),d=n.split("\n"),f=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),p=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),h=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),m=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let o=0;o<d.length;){const e=d[o].match(c);if(!e){o+=1;continue}const t=e.slice(1).find((e=>void 0!==e));p[t]?f[p[t]].range+=`${o},`:h[t]?f[h[t]].start=o:m[t]&&(f[m[t]].range+=`${f[m[t]].start}-${o-1},`),d.splice(o,1)}n=d.join("\n");const g={};return Object.entries(f).forEach((e=>{let[t,{range:n}]=e;o()(n).forEach((e=>{g[e]??=[],g[e].push(t)}))})),{lineClassNames:g,code:n}}function p(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[r,o]=e;const a=t[r];a&&"string"==typeof o&&(n[a]=o)})),n}},53438:(e,t,n)=>{"use strict";n.d(t,{MN:()=>C,Wl:()=>m,_F:()=>y,cE:()=>f,em:()=>h,hI:()=>S,jA:()=>g,lO:()=>_,oz:()=>k,s1:()=>x,vY:()=>E,xz:()=>p});var r=n(67294),o=n(16550),a=n(18790),i=n(80143),l=n(60373),s=n(74477),u=n(1116),c=n(67392),d=n(48596);const f=!!i.useAllDocsData;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function h(e,t){for(const n of e)if("category"===n.type){if(t(n))return n;const e=h(n.items,t);if(e)return e}}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function g(){const{pathname:e}=(0,o.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=w({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const v=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>y(e,t)));function y(e,t){return"link"===e.type?v(e.href,t):"category"===e.type&&(v(e.href,t)||b(e.items,t))}function w(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function x(){const e=(0,u.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.useActivePlugin)()?.pluginData.breadcrumbs;return!1!==n&&e?w({sidebarItems:e.items,pathname:t}):null}function _(e){const{activeVersion:t}=(0,i.useActiveDocContext)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.useLatestVersion)(e);return(0,r.useMemo)((()=>(0,c.j)([t,n,o].filter(Boolean))),[t,n,o])}function k(e,t){const n=_(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=_(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${(0,c.j)(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function S(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,l=i.find((e=>(0,o.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,a.H)(i),sidebarName:s,sidebarItems:u}}function C(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},69690:(e,t,n)=>{"use strict";n.d(t,{aG:()=>u,Cw:()=>s,QW:()=>c});var r=n(87462),o=n(67294),a=n(95999),i=n(18780);const l={errorBoundaryError:"errorBoundaryError_a6uf"};function s(e){return o.createElement("button",(0,r.Z)({type:"button"},e),o.createElement(a.default,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return o.createElement("p",{className:l.errorBoundaryError},n)}class c extends o.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}},42489:(e,t,n)=>{"use strict";function r(e){return"title"in e[0]}n.d(t,{a:()=>r})},82128:(e,t,n)=>{"use strict";n.d(t,{p:()=>o});var r=n(52263);function o(e){const{siteConfig:t}=(0,r.default)(),{title:n,titleDelimiter:o}=t;return e?.trim().length?`${e.trim()} ${o} ${n}`:n}},91980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>l,_X:()=>u,xL:()=>s});var r=n(67294),o=n(16550),a=n(61688),i=n(902);function l(e){!function(e){const t=(0,o.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){const t=(0,o.k6)();return(0,a.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}function u(e){return s((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=u(e)??"",n=function(){const e=(0,o.k6)();return(0,r.useCallback)(((t,n,r)=>{const o=new URLSearchParams(e.location.search);n?o.set(t,n):o.delete(t),(r?.push?e.push:e.replace)({search:o.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},67392:(e,t,n)=>{"use strict";function r(e,t){return void 0===t&&(t=(e,t)=>e===t),e.filter(((n,r)=>e.findIndex((e=>t(e,n)))!==r))}function o(e){return Array.from(new Set(e))}n.d(t,{j:()=>o,l:()=>r})},10833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(67294),o=n(86010),a=n(35742),i=n(30226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(44996),u=n(82128);function c(e){let{title:t,description:n,keywords:o,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.useBaseUrlUtils)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,o.default)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,o.default)(a,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,LI:()=>o,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>a});var r=n(67294);const o=n(10412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},48596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(67294),o=n(723),a=n(52263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.default)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},12466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d,o5:()=>f,sG:()=>u});var r=n(67294),o=n(10412),a=n(72389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(c()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=u(),t=function(){const e=(0,r.useRef)({elem:null,top:0}),t=(0,r.useCallback)((t=>{e.current={elem:t,top:t.getBoundingClientRect().top}}),[]),n=(0,r.useCallback)((()=>{const{current:{elem:t,top:n}}=e;if(!t)return{restored:!1};const r=t.getBoundingClientRect().top-n;return r&&window.scrollBy({left:0,top:r}),e.current={elem:null,top:0},{restored:0!==r}}),[]);return(0,r.useMemo)((()=>({save:t,restore:n})),[n,t])}(),n=(0,r.useRef)(void 0),o=(0,r.useCallback)((r=>{t.save(r),e.disableScrollEvents(),n.current=()=>{const{restored:r}=t.restore();if(n.current=void 0,r){const t=()=>{e.enableScrollEvents(),window.removeEventListener("scroll",t)};window.addEventListener("scroll",t)}else e.enableScrollEvents()}}),[e,t]);return(0,r.useLayoutEffect)((()=>{queueMicrotask((()=>n.current?.()))})),{blockElementScrollPositionUntilNextRender:o}}function p(){const e=(0,r.useRef)(null),t=(0,a.default)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&o<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(o-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},43320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(80143),o=n(52263),a=n(60373);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,o.default)(),t=(0,r.useAllDocsData)(),n=(0,r.useActivePluginAndVersion)(),s=(0,a.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,o=s[e],a=t[e].versions.find((e=>e.isLast));return l(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:u}}},55225:(e,t,n)=>{"use strict";n.d(t,{l:()=>f,u:()=>s});var r=n(87462),o=n(67294),a=n(16550),i=n(95999),l=n(85936);const s="__docusaurus_skipToContent_fallback";function u(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function c(){const e=(0,o.useRef)(null),{action:t}=(0,a.k6)(),n=(0,o.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(s);t&&u(t)}),[]);return(0,l.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&u(e.current)})),{containerRef:e,onClick:n}}const d=(0,i.translate)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function f(e){const t=e.children??d,{containerRef:n,onClick:a}=c();return o.createElement("div",{ref:n,role:"region","aria-label":d},o.createElement("a",(0,r.Z)({},e,{href:`#${s}`,onClick:a}),t))}},50012:(e,t,n)=>{"use strict";n.d(t,{Nk:()=>d,WA:()=>c,_f:()=>f});var r=n(67294),o=n(61688);const a="localStorage";function i(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function l(e){if(void 0===e&&(e=a),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,s||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),s=!0),null}var t}let s=!1;const u={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function c(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=l(t?.persistence);return null===n?u:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),i({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),i({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}function d(e,t){const n=(0,r.useRef)((()=>null===e?u:c(e,t))).current(),a=(0,r.useCallback)((e=>"undefined"==typeof window?()=>{}:n.listen(e)),[n]);return[(0,o.useSyncExternalStore)(a,(()=>"undefined"==typeof window?null:n.get()),(()=>null)),n]}function f(e){void 0===e&&(e=a);const t=l(e);if(!t)return[];const n=[];for(let r=0;r<t.length;r+=1){const e=t.key(r);null!==e&&n.push(e)}return n}},39665:(e,t,n)=>{"use strict";n.d(t,{a:()=>a,b:()=>l});var r=n(67294);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const r=n.slice(2,e.level);e.parentIndex=Math.max(...r),n[e.level]=t}));const r=[];return t.forEach((e=>{const{parentIndex:n,...o}=e;n>=0?t[n].children.push(o):r.push(o)})),r}function a(e){return(0,r.useMemo)((()=>o(e)),[e])}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:r}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:r});return function(e){return e.level>=n&&e.level<=r}(e)?[{...e,children:t}]:t}))}function l(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,r.useMemo)((()=>i({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}},94711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(52263),o=n(16550),a=n(18780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:l}}=(0,r.default)(),{pathname:s}=(0,o.TH)(),u=(0,a.applyTrailingSlash)(s,{trailingSlash:n,baseUrl:e}),c=l===i?e:e.replace(`/${l}/`,"/"),d=u.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${c}`:`${c}${e}/`}(n)}${d}`}}}},85936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(67294),o=n(16550),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},86668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(52263);function o(){return(0,r.default)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},54143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},18780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(54143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},90022:(e,t,n)=>{"use strict";n.r(t),n.d(t,{fetchIndexes:()=>l,legacyFetchIndexes:()=>s});var r=n(31336),o=n.n(r),a=n(61029);const i=new Map;function l(e,t){const n=`${e}${t}`;let r=i.get(n);return r||(r=s(e,t),i.set(n,r)),r}async function s(e,t){{const n=`${e}${a.searchIndexUrl.replace("{dir}",t?`-${t.replace(/\//g,"-")}`:"")}`;if(new URL(n,location.origin).origin!==location.origin)throw new Error("Unexpected version url");const r=await(await fetch(n)).json(),i=r.map(((e,t)=>{let{documents:n,index:r}=e;return{type:t,documents:n,index:o().Index.load(r)}})),l=r.reduce(((e,t)=>{for(const n of t.index.invertedIndex)/\p{Unified_Ideograph}/u.test(n[0][0])&&e.add(n[0]);return e}),new Set);return{wrappedIndexes:i,zhDictionary:Array.from(l)}}}},98202:(e,t,n)=>{"use strict";n.r(t),n.d(t,{SearchSourceFactory:()=>s});var r=n(31336),o=n.n(r);var a=n(61029);function i(e){return l(e).concat(l(e.filter((e=>{const t=e[e.length-1];return!t.trailing&&t.maybeTyping})),!0))}function l(e,t){return e.map((e=>({tokens:e.map((e=>e.value)),term:e.map((e=>({value:e.value,presence:o().Query.presence.REQUIRED,wildcard:(t?e.trailing||e.maybeTyping:e.trailing)?o().Query.wildcard.TRAILING:o().Query.wildcard.NONE})))})))}function s(e,t,n){return function(r,l){const s=function(e,t){if(1===t.length&&["ja","jp","th"].includes(t[0]))return o()[t[0]].tokenizer(e).map((e=>e.toString()));let n=/[^-\s]+/g;return t.includes("zh")&&(n=/\w+|\p{Unified_Ideograph}+/gu),e.toLowerCase().match(n)||[]}(r,a.language);if(0===s.length)return void l([]);const u=function(e,t){const n=function(e,t){const n=[];return function e(r,o){if(0===r.length)return void n.push(o);const a=r[0];if(/\p{Unified_Ideograph}/u.test(a)){const n=function(e,t){const n=[];return function e(r,o){let a=0,i=!1;for(const l of t)if(r.substr(0,l.length)===l){const t={missed:o.missed,term:o.term.concat({value:l})};r.length>l.length?e(r.substr(l.length),t):n.push(t),i=!0}else for(let t=l.length-1;t>a;t-=1){const s=l.substr(0,t);if(r.substr(0,t)===s){a=t;const l={missed:o.missed,term:o.term.concat({value:s,trailing:!0})};r.length>t?e(r.substr(t),l):n.push(l),i=!0;break}}i||(r.length>0?e(r.substr(1),{missed:o.missed+1,term:o.term}):o.term.length>0&&n.push(o))}(e,{missed:0,term:[]}),n.sort(((e,t)=>{const n=e.missed>0?1:0,r=t.missed>0?1:0;return n!==r?n-r:e.term.length-t.term.length})).map((e=>e.term))}(a,t);for(const t of n){const n=o.concat(...t);e(r.slice(1),n)}}else{const t=o.concat({value:a});e(r.slice(1),t)}}(e,[]),n}(e,t);if(0===n.length)return[{tokens:e,term:e.map((e=>({value:e,presence:o().Query.presence.REQUIRED,wildcard:o().Query.wildcard.LEADING|o().Query.wildcard.TRAILING})))}];for(const o of n)o[o.length-1].maybeTyping=!0;const r=[];for(const i of a.language)if("en"===i)a.removeDefaultStopWordFilter||r.unshift(o().stopWordFilter);else{const e=o()[i];e.stopWordFilter&&r.unshift(e.stopWordFilter)}let l;if(r.length>0){const e=e=>r.reduce(((e,t)=>e.filter((e=>t(e.value)))),e);l=[];const t=[];for(const r of n){const n=e(r);l.push(n),n.length<r.length&&n.length>0&&t.push(n)}n.push(...t)}else l=n.slice();const s=[];for(const o of l)if(o.length>2)for(let e=o.length-1;e>=0;e-=1)s.push(o.slice(0,e).concat(o.slice(e+1)));return i(n).concat(i(s))}(s,t),c=[];e:for(const{term:t,tokens:o}of u)for(const{documents:r,index:a,type:i}of e)if(c.push(...a.query((e=>{for(const n of t)e.term(n.value,{wildcard:n.wildcard,presence:n.presence})})).slice(0,n).filter((e=>!c.some((t=>t.document.i.toString()===e.ref)))).slice(0,n-c.length).map((t=>{const n=r.find((e=>e.i.toString()===t.ref));return{document:n,type:i,page:0!==i&&e[0].documents.find((e=>e.i===n.p)),metadata:t.matchData.metadata,tokens:o,score:t.score}}))),c.length>=n)break e;!function(e){e.forEach(((e,t)=>{e.index=t})),e.sort(((t,n)=>{let r=t.type>0&&t.page?e.findIndex((e=>e.document===t.page)):t.index,o=n.type>0&&n.page?e.findIndex((e=>e.document===n.page)):n.index;return-1===r&&(r=t.index),-1===o&&(o=n.index),r===o?0===t.type?-1:0===n.type?1:t.index-n.index:r-o}))}(c),function(e){e.forEach(((t,n)=>{n>0&&t.page&&e.some((e=>e.document===t.page))&&(n<e.length-1&&e[n+1].page===t.page?t.isInterOfTree=!0:t.isLastOfTree=!0)}))}(c),l(c)}}},91073:(e,t,n)=>{"use strict";function r(e,t){const n=[];for(const r of Object.values(e))r[t]&&n.push(...r[t].position);return n.sort(((e,t)=>e[0]-t[0]||t[1]-e[1]))}n.r(t),n.d(t,{getStemmedPositions:()=>r})},67133:(e,t,n)=>{"use strict";function r(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function o(e,t,n){const a=[];for(const i of t){const n=e.toLowerCase().indexOf(i);if(n>=0){n>0&&a.push(o(e.substr(0,n),t)),a.push(`<mark>${r(e.substr(n,i.length))}</mark>`);const l=n+i.length;l<e.length&&a.push(o(e.substr(l),t));break}}return 0===a.length?n?`<mark>${r(e)}</mark>`:r(e):a.join("")}n.r(t),n.d(t,{highlightStemmed:()=>s,splitIntoChunks:()=>u});const a=/\w+|\p{Unified_Ideograph}/u;function i(e){const t=[];let n=0,r=e;for(;r.length>0;){const o=r.match(a);if(!o){t.push(r);break}o.index>0&&t.push(r.substring(0,o.index)),t.push(o[0]),n+=o.index+o[0].length,r=e.substring(n)}return t}var l=n(61029);function s(e,t,n,r){void 0===r&&(r=l.searchResultContextMaxLength);const{chunkIndex:o,chunks:a}=u(e,t,n),i=a.slice(0,o),s=a[o],c=[s.html],d=a.slice(o+1);let f=s.textLength,p=0,h=0,m=!1,g=!1;for(;f<r;)if((p<=h||0===d.length)&&i.length>0){const e=i.pop();f+e.textLength<=r?(c.unshift(e.html),p+=e.textLength,f+=e.textLength):(m=!0,i.length=0)}else{if(!(d.length>0))break;{const e=d.shift();f+e.textLength<=r?(c.push(e.html),h+=e.textLength,f+=e.textLength):(g=!0,d.length=0)}}return(m||i.length>0)&&c.unshift("\u2026"),(g||d.length>0)&&c.push("\u2026"),c.join("")}function u(e,t,n){const a=[];let l=0,s=0,u=-1;for(;l<t.length;){const[c,d]=t[l];if(l+=1,!(c<s)){if(c>s){const t=i(e.substring(s,c)).map((e=>({html:r(e),textLength:e.length})));for(const e of t)a.push(e)}-1===u&&(u=a.length),s=c+d,a.push({html:o(e.substring(c,s),n,!0),textLength:d})}}if(s<e.length){const t=i(e.substring(s)).map((e=>({html:r(e),textLength:e.length})));for(const e of t)a.push(e)}return{chunkIndex:u,chunks:a}}},61029:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Mark:()=>i,docsPluginIdForPreferredVersion:()=>h,explicitSearchResultPath:()=>c,hideSearchBarWithNoSearchContext:()=>v,indexDocs:()=>m,language:()=>r,removeDefaultStemmer:()=>a,removeDefaultStopWordFilter:()=>o,searchBarPosition:()=>p,searchBarShortcut:()=>d,searchBarShortcutHint:()=>f,searchContextByPaths:()=>g,searchIndexUrl:()=>l,searchResultContextMaxLength:()=>u,searchResultLimits:()=>s});n(31336);const r=["en"],o=!1,a=!1,i=null,l="search-index{dir}.json?_=b8e2d4fd",s=8,u=50,c=!1,d=!0,f=!0,p="right",h=void 0,m=!0,g=null,v=!1},86010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(o&&(o+=" "),o+=n);else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,t,n=0,o="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(o&&(o+=" "),o+=t);return o}n.r(t),n.d(t,{clsx:()=>o,default:()=>a});const a=o},20640:(e,t,n)=>{"use strict";var r=n(11742),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,a,i,l,s,u,c=!1;t||(t={}),n=t.debug||!1;try{if(i=r(),l=document.createRange(),s=document.getSelection(),(u=document.createElement("span")).textContent=e,u.ariaHidden="true",u.style.all="unset",u.style.position="fixed",u.style.top=0,u.style.clip="rect(0, 0, 0, 0)",u.style.whiteSpace="pre",u.style.webkitUserSelect="text",u.style.MozUserSelect="text",u.style.msUserSelect="text",u.style.userSelect="text",u.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var a=o[t.format]||o.default;window.clipboardData.setData(a,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(u),l.selectNodeContents(u),s.addRange(l),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");c=!0}catch(d){n&&console.error("unable to copy using execCommand: ",d),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),c=!0}catch(d){n&&console.error("unable to copy using clipboardData: ",d),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"\u2318":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{s&&("function"==typeof s.removeRange?s.removeRange(l):s.removeAllRanges()),u&&document.body.removeChild(u),i()}return c}},38252:e=>{"use strict";e.exports=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){if(t.constructor!==n.constructor)return!1;var r,o,a;if(Array.isArray(t)){if((r=t.length)!=n.length)return!1;for(o=r;0!=o--;)if(!e(t[o],n[o]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if((r=(a=Object.keys(t)).length)!==Object.keys(n).length)return!1;for(o=r;0!=o--;)if(!Object.prototype.hasOwnProperty.call(n,a[o]))return!1;for(o=r;0!=o--;){var i=a[o];if(("_owner"!==i||!t.$$typeof)&&!e(t[i],n[i]))return!1}return!0}return t!=t&&n!=n}},99376:(e,t)=>{var n=Object.keys;t.D=function(e,t){if(e===t)return!0;if(!(e instanceof Object&&t instanceof Object))return!1;for(var r=n(e),o=r.length,a=0;a<o;a++)if(!(r[a]in t))return!1;for(a=0;a<o;a++)if(e[r[a]]!==t[r[a]])return!1;return o===n(t).length}},42358:(e,t,n)=>{"use strict";n.d(t,{lX:()=>k,q_:()=>D,ob:()=>m,PP:()=>N,Ep:()=>h,Hp:()=>g});var r=n(87462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r<o;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],l=e&&o(e),s=t&&o(t),u=l||s;if(e&&o(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var c=i[i.length-1];n="."===c||".."===c||""===c}else n=!1;for(var d=0,f=i.length;f>=0;f--){var p=i[f];"."===p?a(i,f):".."===p?(a(i,f),d++):d&&(a(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&o(i[0])||i.unshift("");var h=i.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function l(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}const s=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=l(t),o=l(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var u=n(38776);function c(e){return"/"===e.charAt(0)?e:"/"+e}function d(e){return"/"===e.charAt(0)?e.substr(1):e}function f(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function p(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function h(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function m(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function g(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&s(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var b=!("undefined"==typeof window||!window.document||!window.document.createElement);function y(e,t){t(window.confirm(e))}var w="popstate",x="hashchange";function _(){try{return window.history.state||{}}catch(e){return{}}}function k(e){void 0===e&&(e={}),b||(0,u.Z)(!1);var t,n=window.history,o=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,a=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,l=i.forceRefresh,s=void 0!==l&&l,d=i.getUserConfirmation,g=void 0===d?y:d,k=i.keyLength,E=void 0===k?6:k,S=e.basename?p(c(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,o=window.location,a=o.pathname+o.search+o.hash;return S&&(a=f(a,S)),m(a,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var O=v();function D(e){(0,r.Z)($,e),$.length=n.length,O.notifyListeners($.location,$.action)}function P(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||A(C(e.state))}function N(){A(C(_()))}var I=!1;function A(e){if(I)I=!1,D();else{O.confirmTransitionTo(e,"POP",g,(function(t){t?D({action:"POP",location:e}):function(e){var t=$.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var o=n-r;o&&(I=!0,M(o))}(e)}))}}var L=C(_()),R=[L.key];function j(e){return S+h(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(w,P),a&&window.addEventListener(x,N)):0===F&&(window.removeEventListener(w,P),a&&window.removeEventListener(x,N))}var z=!1;var $={length:n.length,action:"POP",location:L,createHref:j,push:function(e,t){var r="PUSH",a=m(e,t,T(),$.location);O.confirmTransitionTo(a,r,g,(function(e){if(e){var t=j(a),i=a.key,l=a.state;if(o)if(n.pushState({key:i,state:l},null,t),s)window.location.href=t;else{var u=R.indexOf($.location.key),c=R.slice(0,u+1);c.push(a.key),R=c,D({action:r,location:a})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",a=m(e,t,T(),$.location);O.confirmTransitionTo(a,r,g,(function(e){if(e){var t=j(a),i=a.key,l=a.state;if(o)if(n.replaceState({key:i,state:l},null,t),s)window.location.replace(t);else{var u=R.indexOf($.location.key);-1!==u&&(R[u]=a.key),D({action:r,location:a})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=O.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=O.appendListener(e);return B(1),function(){B(-1),t()}}};return $}var E="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+d(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:d,decodePath:c},slash:{encodePath:c,decodePath:c}};function C(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function T(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function O(e){window.location.replace(C(window.location.href)+"#"+e)}function D(e){void 0===e&&(e={}),b||(0,u.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),o=n.getUserConfirmation,a=void 0===o?y:o,i=n.hashType,l=void 0===i?"slash":i,s=e.basename?p(c(e.basename)):"",d=S[l],g=d.encodePath,w=d.decodePath;function x(){var e=w(T());return s&&(e=f(e,s)),m(e)}var _=v();function k(e){(0,r.Z)(z,e),z.length=t.length,_.notifyListeners(z.location,z.action)}var D=!1,P=null;function N(){var e,t,n=T(),r=g(n);if(n!==r)O(r);else{var o=x(),i=z.location;if(!D&&(t=o,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(P===h(o))return;P=null,function(e){if(D)D=!1,k();else{var t="POP";_.confirmTransitionTo(e,t,a,(function(n){n?k({action:t,location:e}):function(e){var t=z.location,n=R.lastIndexOf(h(t));-1===n&&(n=0);var r=R.lastIndexOf(h(e));-1===r&&(r=0);var o=n-r;o&&(D=!0,j(o))}(e)}))}}(o)}}var I=T(),A=g(I);I!==A&&O(A);var L=x(),R=[h(L)];function j(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(E,N):0===M&&window.removeEventListener(E,N)}var B=!1;var z={length:t.length,action:"POP",location:L,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=C(window.location.href)),n+"#"+g(s+h(e))},push:function(e,t){var n="PUSH",r=m(e,void 0,void 0,z.location);_.confirmTransitionTo(r,n,a,(function(e){if(e){var t=h(r),o=g(s+t);if(T()!==o){P=t,function(e){window.location.hash=e}(o);var a=R.lastIndexOf(h(z.location)),i=R.slice(0,a+1);i.push(t),R=i,k({action:n,location:r})}else k()}}))},replace:function(e,t){var n="REPLACE",r=m(e,void 0,void 0,z.location);_.confirmTransitionTo(r,n,a,(function(e){if(e){var t=h(r),o=g(s+t);T()!==o&&(P=t,O(o));var a=R.indexOf(h(z.location));-1!==a&&(R[a]=t),k({action:n,location:r})}}))},go:j,goBack:function(){j(-1)},goForward:function(){j(1)},block:function(e){void 0===e&&(e=!1);var t=_.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=_.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function P(e,t,n){return Math.min(Math.max(e,t),n)}function N(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,o=t.initialEntries,a=void 0===o?["/"]:o,i=t.initialIndex,l=void 0===i?0:i,s=t.keyLength,u=void 0===s?6:s,c=v();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,c.notifyListeners(w.location,w.action)}function f(){return Math.random().toString(36).substr(2,u)}var p=P(l,0,a.length-1),g=a.map((function(e){return m(e,void 0,"string"==typeof e?f():e.key||f())})),b=h;function y(e){var t=P(w.index+e,0,w.entries.length-1),r=w.entries[t];c.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:g.length,action:"POP",location:g[p],index:p,entries:g,createHref:b,push:function(e,t){var r="PUSH",o=m(e,t,f(),w.location);c.confirmTransitionTo(o,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=m(e,t,f(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),c.setPrompt(e)},listen:function(e){return c.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(59864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),m=s(n),g=0;g<i.length;++g){var v=i[g];if(!(a[v]||r&&r[v]||m&&m[v]||l&&l[v])){var b=f(n,v);try{u(t,v,b)}catch(y){}}}}return t}},41143:e=>{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},36808:(e,t,n)=>{var r,o;!function(a){if(void 0===(o="function"==typeof(r=a)?r.call(t,n,t,e):r)||(e.exports=o),!0,e.exports=a(),!!0){var i=window.Cookies,l=window.Cookies=a();l.noConflict=function(){return window.Cookies=i,l}}}((function(){function e(){for(var e=0,t={};e<arguments.length;e++){var n=arguments[e];for(var r in n)t[r]=n[r]}return t}function t(e){return e.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}return function n(r){function o(){}function a(t,n,a){if("undefined"!=typeof document){"number"==typeof(a=e({path:"/"},o.defaults,a)).expires&&(a.expires=new Date(1*new Date+864e5*a.expires)),a.expires=a.expires?a.expires.toUTCString():"";try{var i=JSON.stringify(n);/^[\{\[]/.test(i)&&(n=i)}catch(u){}n=r.write?r.write(n,t):encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var l="";for(var s in a)a[s]&&(l+="; "+s,!0!==a[s]&&(l+="="+a[s].split(";")[0]));return document.cookie=t+"="+n+l}}function i(e,n){if("undefined"!=typeof document){for(var o={},a=document.cookie?document.cookie.split("; "):[],i=0;i<a.length;i++){var l=a[i].split("="),s=l.slice(1).join("=");n||'"'!==s.charAt(0)||(s=s.slice(1,-1));try{var u=t(l[0]);if(s=(r.read||r)(s,u)||t(s),n)try{s=JSON.parse(s)}catch(c){}if(o[u]=s,e===u)break}catch(c){}}return e?o[e]:o}}return o.set=a,o.get=function(e){return i(e,!1)},o.getJSON=function(e){return i(e,!0)},o.remove=function(t,n){a(t,"",e(n,{expires:-1}))},o.defaults={},o.withConverter=n,o}((function(){}))}))},18552:(e,t,n)=>{var r=n(10852)(n(55639),"DataView");e.exports=r},1989:(e,t,n)=>{var r=n(51789),o=n(80401),a=n(57667),i=n(21327),l=n(81866);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=l,e.exports=s},38407:(e,t,n)=>{var r=n(27040),o=n(14125),a=n(82117),i=n(67518),l=n(54705);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=l,e.exports=s},57071:(e,t,n)=>{var r=n(10852)(n(55639),"Map");e.exports=r},83369:(e,t,n)=>{var r=n(24785),o=n(11285),a=n(96e3),i=n(49916),l=n(95265);function s(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=r,s.prototype.delete=o,s.prototype.get=a,s.prototype.has=i,s.prototype.set=l,e.exports=s},53818:(e,t,n)=>{var r=n(10852)(n(55639),"Promise");e.exports=r},58525:(e,t,n)=>{var r=n(10852)(n(55639),"Set");e.exports=r},88668:(e,t,n)=>{var r=n(83369),o=n(90619),a=n(72385);function i(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new r;++t<n;)this.add(e[t])}i.prototype.add=i.prototype.push=o,i.prototype.has=a,e.exports=i},46384:(e,t,n)=>{var r=n(38407),o=n(37465),a=n(63779),i=n(67599),l=n(44758),s=n(34309);function u(e){var t=this.__data__=new r(e);this.size=t.size}u.prototype.clear=o,u.prototype.delete=a,u.prototype.get=i,u.prototype.has=l,u.prototype.set=s,e.exports=u},62705:(e,t,n)=>{var r=n(55639).Symbol;e.exports=r},11149:(e,t,n)=>{var r=n(55639).Uint8Array;e.exports=r},70577:(e,t,n)=>{var r=n(10852)(n(55639),"WeakMap");e.exports=r},96874:e=>{e.exports=function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}},44174:e=>{e.exports=function(e,t,n,r){for(var o=-1,a=null==e?0:e.length;++o<a;){var i=e[o];t(r,i,n(i),e)}return r}},77412:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r&&!1!==t(e[n],n,e););return e}},34963:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=0,a=[];++n<r;){var i=e[n];t(i,n,e)&&(a[o++]=i)}return a}},14636:(e,t,n)=>{var r=n(22545),o=n(35694),a=n(1469),i=n(44144),l=n(65776),s=n(36719),u=Object.prototype.hasOwnProperty;e.exports=function(e,t){var n=a(e),c=!n&&o(e),d=!n&&!c&&i(e),f=!n&&!c&&!d&&s(e),p=n||c||d||f,h=p?r(e.length,String):[],m=h.length;for(var g in e)!t&&!u.call(e,g)||p&&("length"==g||d&&("offset"==g||"parent"==g)||f&&("buffer"==g||"byteLength"==g||"byteOffset"==g)||l(g,m))||h.push(g);return h}},29932:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length,o=Array(r);++n<r;)o[n]=t(e[n],n,e);return o}},62488:e=>{e.exports=function(e,t){for(var n=-1,r=t.length,o=e.length;++n<r;)e[o+n]=t[n];return e}},82908:e=>{e.exports=function(e,t){for(var n=-1,r=null==e?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}},34865:(e,t,n)=>{var r=n(89465),o=n(77813),a=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var i=e[t];a.call(e,t)&&o(i,n)&&(void 0!==n||t in e)||r(e,t,n)}},18470:(e,t,n)=>{var r=n(77813);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},81119:(e,t,n)=>{var r=n(89881);e.exports=function(e,t,n,o){return r(e,(function(e,r,a){t(o,e,n(e),a)})),o}},44037:(e,t,n)=>{var r=n(98363),o=n(3674);e.exports=function(e,t){return e&&r(t,o(t),e)}},63886:(e,t,n)=>{var r=n(98363),o=n(81704);e.exports=function(e,t){return e&&r(t,o(t),e)}},89465:(e,t,n)=>{var r=n(38777);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},85990:(e,t,n)=>{var r=n(46384),o=n(77412),a=n(34865),i=n(44037),l=n(63886),s=n(64626),u=n(278),c=n(18805),d=n(1911),f=n(58234),p=n(46904),h=n(64160),m=n(43824),g=n(29148),v=n(38517),b=n(1469),y=n(44144),w=n(56688),x=n(13218),_=n(72928),k=n(3674),E=n(81704),S="[object Arguments]",C="[object Function]",T="[object Object]",O={};O[S]=O["[object Array]"]=O["[object ArrayBuffer]"]=O["[object DataView]"]=O["[object Boolean]"]=O["[object Date]"]=O["[object Float32Array]"]=O["[object Float64Array]"]=O["[object Int8Array]"]=O["[object Int16Array]"]=O["[object Int32Array]"]=O["[object Map]"]=O["[object Number]"]=O[T]=O["[object RegExp]"]=O["[object Set]"]=O["[object String]"]=O["[object Symbol]"]=O["[object Uint8Array]"]=O["[object Uint8ClampedArray]"]=O["[object Uint16Array]"]=O["[object Uint32Array]"]=!0,O["[object Error]"]=O[C]=O["[object WeakMap]"]=!1,e.exports=function e(t,n,D,P,N,I){var A,L=1&n,R=2&n,j=4&n;if(D&&(A=N?D(t,P,N,I):D(t)),void 0!==A)return A;if(!x(t))return t;var M=b(t);if(M){if(A=m(t),!L)return u(t,A)}else{var F=h(t),B=F==C||"[object GeneratorFunction]"==F;if(y(t))return s(t,L);if(F==T||F==S||B&&!N){if(A=R||B?{}:v(t),!L)return R?d(t,l(A,t)):c(t,i(A,t))}else{if(!O[F])return N?t:{};A=g(t,F,L)}}I||(I=new r);var z=I.get(t);if(z)return z;I.set(t,A),_(t)?t.forEach((function(r){A.add(e(r,n,D,r,t,I))})):w(t)&&t.forEach((function(r,o){A.set(o,e(r,n,D,o,t,I))}));var $=M?void 0:(j?R?p:f:R?E:k)(t);return o($||t,(function(r,o){$&&(r=t[o=r]),a(A,o,e(r,n,D,o,t,I))})),A}},3118:(e,t,n)=>{var r=n(13218),o=Object.create,a=function(){function e(){}return function(t){if(!r(t))return{};if(o)return o(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();e.exports=a},89881:(e,t,n)=>{var r=n(47816),o=n(99291)(r);e.exports=o},21078:(e,t,n)=>{var r=n(62488),o=n(37285);e.exports=function e(t,n,a,i,l){var s=-1,u=t.length;for(a||(a=o),l||(l=[]);++s<u;){var c=t[s];n>0&&a(c)?n>1?e(c,n-1,a,i,l):r(l,c):i||(l[l.length]=c)}return l}},28483:(e,t,n)=>{var r=n(25063)();e.exports=r},47816:(e,t,n)=>{var r=n(28483),o=n(3674);e.exports=function(e,t){return e&&r(e,t,o)}},97786:(e,t,n)=>{var r=n(71811),o=n(40327);e.exports=function(e,t){for(var n=0,a=(t=r(t,e)).length;null!=e&&n<a;)e=e[o(t[n++])];return n&&n==a?e:void 0}},68866:(e,t,n)=>{var r=n(62488),o=n(1469);e.exports=function(e,t,n){var a=t(e);return o(e)?a:r(a,n(e))}},44239:(e,t,n)=>{var r=n(62705),o=n(89607),a=n(2333),i=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},9454:(e,t,n)=>{var r=n(44239),o=n(37005);e.exports=function(e){return o(e)&&"[object Arguments]"==r(e)}},90939:(e,t,n)=>{var r=n(2492),o=n(37005);e.exports=function e(t,n,a,i,l){return t===n||(null==t||null==n||!o(t)&&!o(n)?t!=t&&n!=n:r(t,n,a,i,e,l))}},2492:(e,t,n)=>{var r=n(46384),o=n(67114),a=n(18351),i=n(16096),l=n(64160),s=n(1469),u=n(44144),c=n(36719),d="[object Arguments]",f="[object Array]",p="[object Object]",h=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,m,g,v){var b=s(e),y=s(t),w=b?f:l(e),x=y?f:l(t),_=(w=w==d?p:w)==p,k=(x=x==d?p:x)==p,E=w==x;if(E&&u(e)){if(!u(t))return!1;b=!0,_=!1}if(E&&!_)return v||(v=new r),b||c(e)?o(e,t,n,m,g,v):a(e,t,w,n,m,g,v);if(!(1&n)){var S=_&&h.call(e,"__wrapped__"),C=k&&h.call(t,"__wrapped__");if(S||C){var T=S?e.value():e,O=C?t.value():t;return v||(v=new r),g(T,O,n,m,v)}}return!!E&&(v||(v=new r),i(e,t,n,m,g,v))}},25588:(e,t,n)=>{var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Map]"==r(e)}},2958:(e,t,n)=>{var r=n(46384),o=n(90939);e.exports=function(e,t,n,a){var i=n.length,l=i,s=!a;if(null==e)return!l;for(e=Object(e);i--;){var u=n[i];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<l;){var c=(u=n[i])[0],d=e[c],f=u[1];if(s&&u[2]){if(void 0===d&&!(c in e))return!1}else{var p=new r;if(a)var h=a(d,f,c,e,t,p);if(!(void 0===h?o(f,d,3,a,p):h))return!1}}return!0}},28458:(e,t,n)=>{var r=n(23560),o=n(15346),a=n(13218),i=n(80346),l=/^\[object .+?Constructor\]$/,s=Function.prototype,u=Object.prototype,c=s.toString,d=u.hasOwnProperty,f=RegExp("^"+c.call(d).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(r(e)?f:l).test(i(e))}},29221:(e,t,n)=>{var r=n(64160),o=n(37005);e.exports=function(e){return o(e)&&"[object Set]"==r(e)}},38749:(e,t,n)=>{var r=n(44239),o=n(41780),a=n(37005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return a(e)&&o(e.length)&&!!i[r(e)]}},67206:(e,t,n)=>{var r=n(91573),o=n(16432),a=n(6557),i=n(1469),l=n(39601);e.exports=function(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?i(e)?o(e[0],e[1]):r(e):l(e)}},280:(e,t,n)=>{var r=n(25726),o=n(86916),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return o(e);var t=[];for(var n in Object(e))a.call(e,n)&&"constructor"!=n&&t.push(n);return t}},10313:(e,t,n)=>{var r=n(13218),o=n(25726),a=n(33498),i=Object.prototype.hasOwnProperty;e.exports=function(e){if(!r(e))return a(e);var t=o(e),n=[];for(var l in e)("constructor"!=l||!t&&i.call(e,l))&&n.push(l);return n}},91573:(e,t,n)=>{var r=n(2958),o=n(1499),a=n(42634);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(n){return n===e||r(n,e,t)}}},16432:(e,t,n)=>{var r=n(90939),o=n(27361),a=n(79095),i=n(15403),l=n(89162),s=n(42634),u=n(40327);e.exports=function(e,t){return i(e)&&l(t)?s(u(e),t):function(n){var i=o(n,e);return void 0===i&&i===t?a(n,e):r(t,i,3)}}},40371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},79152:(e,t,n)=>{var r=n(97786);e.exports=function(e){return function(t){return r(t,e)}}},56560:(e,t,n)=>{var r=n(75703),o=n(38777),a=n(6557),i=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:r(t),writable:!0})}:a;e.exports=i},14259:e=>{e.exports=function(e,t,n){var r=-1,o=e.length;t<0&&(t=-t>o?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(o);++r<o;)a[r]=e[r+t];return a}},22545:e=>{e.exports=function(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}},80531:(e,t,n)=>{var r=n(62705),o=n(29932),a=n(1469),i=n(33448),l=r?r.prototype:void 0,s=l?l.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(a(t))return o(t,e)+"";if(i(t))return s?s.call(t):"";var n=t+"";return"0"==n&&1/t==-Infinity?"-0":n}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},57406:(e,t,n)=>{var r=n(71811),o=n(10928),a=n(40292),i=n(40327);e.exports=function(e,t){return t=r(t,e),null==(e=a(e,t))||delete e[i(o(t))]}},74757:e=>{e.exports=function(e,t){return e.has(t)}},71811:(e,t,n)=>{var r=n(1469),o=n(15403),a=n(55514),i=n(79833);e.exports=function(e,t){return r(e)?e:o(e,t)?[e]:a(i(e))}},74318:(e,t,n)=>{var r=n(11149);e.exports=function(e){var t=new e.constructor(e.byteLength);return new r(t).set(new r(e)),t}},64626:(e,t,n)=>{e=n.nmd(e);var r=n(55639),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o?r.Buffer:void 0,l=i?i.allocUnsafe:void 0;e.exports=function(e,t){if(t)return e.slice();var n=e.length,r=l?l(n):new e.constructor(n);return e.copy(r),r}},57157:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}},93147:e=>{var t=/\w*$/;e.exports=function(e){var n=new e.constructor(e.source,t.exec(e));return n.lastIndex=e.lastIndex,n}},40419:(e,t,n)=>{var r=n(62705),o=r?r.prototype:void 0,a=o?o.valueOf:void 0;e.exports=function(e){return a?Object(a.call(e)):{}}},77133:(e,t,n)=>{var r=n(74318);e.exports=function(e,t){var n=t?r(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}},278:e=>{e.exports=function(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}},98363:(e,t,n)=>{var r=n(34865),o=n(89465);e.exports=function(e,t,n,a){var i=!n;n||(n={});for(var l=-1,s=t.length;++l<s;){var u=t[l],c=a?a(n[u],e[u],u,n,e):void 0;void 0===c&&(c=e[u]),i?o(n,u,c):r(n,u,c)}return n}},18805:(e,t,n)=>{var r=n(98363),o=n(99551);e.exports=function(e,t){return r(e,o(e),t)}},1911:(e,t,n)=>{var r=n(98363),o=n(51442);e.exports=function(e,t){return r(e,o(e),t)}},14429:(e,t,n)=>{var r=n(55639)["__core-js_shared__"];e.exports=r},55189:(e,t,n)=>{var r=n(44174),o=n(81119),a=n(67206),i=n(1469);e.exports=function(e,t){return function(n,l){var s=i(n)?r:o,u=t?t():{};return s(n,e,a(l,2),u)}}},99291:(e,t,n)=>{var r=n(98612);e.exports=function(e,t){return function(n,o){if(null==n)return n;if(!r(n))return e(n,o);for(var a=n.length,i=t?a:-1,l=Object(n);(t?i--:++i<a)&&!1!==o(l[i],i,l););return n}}},25063:e=>{e.exports=function(e){return function(t,n,r){for(var o=-1,a=Object(t),i=r(t),l=i.length;l--;){var s=i[e?l:++o];if(!1===n(a[s],s,a))break}return t}}},60696:(e,t,n)=>{var r=n(68630);e.exports=function(e){return r(e)?void 0:e}},38777:(e,t,n)=>{var r=n(10852),o=function(){try{var e=r(Object,"defineProperty");return e({},"",{}),e}catch(t){}}();e.exports=o},67114:(e,t,n)=>{var r=n(88668),o=n(82908),a=n(74757);e.exports=function(e,t,n,i,l,s){var u=1&n,c=e.length,d=t.length;if(c!=d&&!(u&&d>c))return!1;var f=s.get(e),p=s.get(t);if(f&&p)return f==t&&p==e;var h=-1,m=!0,g=2&n?new r:void 0;for(s.set(e,t),s.set(t,e);++h<c;){var v=e[h],b=t[h];if(i)var y=u?i(b,v,h,t,e,s):i(v,b,h,e,t,s);if(void 0!==y){if(y)continue;m=!1;break}if(g){if(!o(t,(function(e,t){if(!a(g,t)&&(v===e||l(v,e,n,i,s)))return g.push(t)}))){m=!1;break}}else if(v!==b&&!l(v,b,n,i,s)){m=!1;break}}return s.delete(e),s.delete(t),m}},18351:(e,t,n)=>{var r=n(62705),o=n(11149),a=n(77813),i=n(67114),l=n(68776),s=n(21814),u=r?r.prototype:void 0,c=u?u.valueOf:void 0;e.exports=function(e,t,n,r,u,d,f){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!d(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var p=l;case"[object Set]":var h=1&r;if(p||(p=s),e.size!=t.size&&!h)return!1;var m=f.get(e);if(m)return m==t;r|=2,f.set(e,t);var g=i(p(e),p(t),r,u,d,f);return f.delete(e),g;case"[object Symbol]":if(c)return c.call(e)==c.call(t)}return!1}},16096:(e,t,n)=>{var r=n(58234),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,n,a,i,l){var s=1&n,u=r(e),c=u.length;if(c!=r(t).length&&!s)return!1;for(var d=c;d--;){var f=u[d];if(!(s?f in t:o.call(t,f)))return!1}var p=l.get(e),h=l.get(t);if(p&&h)return p==t&&h==e;var m=!0;l.set(e,t),l.set(t,e);for(var g=s;++d<c;){var v=e[f=u[d]],b=t[f];if(a)var y=s?a(b,v,f,t,e,l):a(v,b,f,e,t,l);if(!(void 0===y?v===b||i(v,b,n,a,l):y)){m=!1;break}g||(g="constructor"==f)}if(m&&!g){var w=e.constructor,x=t.constructor;w==x||!("constructor"in e)||!("constructor"in t)||"function"==typeof w&&w instanceof w&&"function"==typeof x&&x instanceof x||(m=!1)}return l.delete(e),l.delete(t),m}},99021:(e,t,n)=>{var r=n(85564),o=n(45357),a=n(30061);e.exports=function(e){return a(o(e,void 0,r),e+"")}},31957:(e,t,n)=>{var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},58234:(e,t,n)=>{var r=n(68866),o=n(99551),a=n(3674);e.exports=function(e){return r(e,a,o)}},46904:(e,t,n)=>{var r=n(68866),o=n(51442),a=n(81704);e.exports=function(e){return r(e,a,o)}},45050:(e,t,n)=>{var r=n(37019);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},1499:(e,t,n)=>{var r=n(89162),o=n(3674);e.exports=function(e){for(var t=o(e),n=t.length;n--;){var a=t[n],i=e[a];t[n]=[a,i,r(i)]}return t}},10852:(e,t,n)=>{var r=n(28458),o=n(47801);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},85924:(e,t,n)=>{var r=n(5569)(Object.getPrototypeOf,Object);e.exports=r},89607:(e,t,n)=>{var r=n(62705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,l=r?r.toStringTag:void 0;e.exports=function(e){var t=a.call(e,l),n=e[l];try{e[l]=void 0;var r=!0}catch(s){}var o=i.call(e);return r&&(t?e[l]=n:delete e[l]),o}},99551:(e,t,n)=>{var r=n(34963),o=n(70479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,l=i?function(e){return null==e?[]:(e=Object(e),r(i(e),(function(t){return a.call(e,t)})))}:o;e.exports=l},51442:(e,t,n)=>{var r=n(62488),o=n(85924),a=n(99551),i=n(70479),l=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)r(t,a(e)),e=o(e);return t}:i;e.exports=l},64160:(e,t,n)=>{var r=n(18552),o=n(57071),a=n(53818),i=n(58525),l=n(70577),s=n(44239),u=n(80346),c="[object Map]",d="[object Promise]",f="[object Set]",p="[object WeakMap]",h="[object DataView]",m=u(r),g=u(o),v=u(a),b=u(i),y=u(l),w=s;(r&&w(new r(new ArrayBuffer(1)))!=h||o&&w(new o)!=c||a&&w(a.resolve())!=d||i&&w(new i)!=f||l&&w(new l)!=p)&&(w=function(e){var t=s(e),n="[object Object]"==t?e.constructor:void 0,r=n?u(n):"";if(r)switch(r){case m:return h;case g:return c;case v:return d;case b:return f;case y:return p}return t}),e.exports=w},47801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,n)=>{var r=n(71811),o=n(35694),a=n(1469),i=n(65776),l=n(41780),s=n(40327);e.exports=function(e,t,n){for(var u=-1,c=(t=r(t,e)).length,d=!1;++u<c;){var f=s(t[u]);if(!(d=null!=e&&n(e,f)))break;e=e[f]}return d||++u!=c?d:!!(c=null==e?0:e.length)&&l(c)&&i(f,c)&&(a(e)||o(e))}},51789:(e,t,n)=>{var r=n(94536);e.exports=function(){this.__data__=r?r(null):{},this.size=0}},80401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},57667:(e,t,n)=>{var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(r){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return o.call(t,e)?t[e]:void 0}},21327:(e,t,n)=>{var r=n(94536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return r?void 0!==t[e]:o.call(t,e)}},81866:(e,t,n)=>{var r=n(94536);e.exports=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=r&&void 0===t?"__lodash_hash_undefined__":t,this}},43824:e=>{var t=Object.prototype.hasOwnProperty;e.exports=function(e){var n=e.length,r=new e.constructor(n);return n&&"string"==typeof e[0]&&t.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},29148:(e,t,n)=>{var r=n(74318),o=n(57157),a=n(93147),i=n(40419),l=n(77133);e.exports=function(e,t,n){var s=e.constructor;switch(t){case"[object ArrayBuffer]":return r(e);case"[object Boolean]":case"[object Date]":return new s(+e);case"[object DataView]":return o(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return l(e,n);case"[object Map]":case"[object Set]":return new s;case"[object Number]":case"[object String]":return new s(e);case"[object RegExp]":return a(e);case"[object Symbol]":return i(e)}}},38517:(e,t,n)=>{var r=n(3118),o=n(85924),a=n(25726);e.exports=function(e){return"function"!=typeof e.constructor||a(e)?{}:r(o(e))}},37285:(e,t,n)=>{var r=n(62705),o=n(35694),a=n(1469),i=r?r.isConcatSpreadable:void 0;e.exports=function(e){return a(e)||o(e)||!!(i&&e&&e[i])}},65776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,n){var r=typeof e;return!!(n=null==n?9007199254740991:n)&&("number"==r||"symbol"!=r&&t.test(e))&&e>-1&&e%1==0&&e<n}},15403:(e,t,n)=>{var r=n(1469),o=n(33448),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(r(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!o(e))||(i.test(e)||!a.test(e)||null!=t&&e in Object(t))}},37019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},15346:(e,t,n)=>{var r,o=n(14429),a=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!a&&a in e}},25726:e=>{var t=Object.prototype;e.exports=function(e){var n=e&&e.constructor;return e===("function"==typeof n&&n.prototype||t)}},89162:(e,t,n)=>{var r=n(13218);e.exports=function(e){return e==e&&!r(e)}},27040:e=>{e.exports=function(){this.__data__=[],this.size=0}},14125:(e,t,n)=>{var r=n(18470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,n=r(t,e);return!(n<0)&&(n==t.length-1?t.pop():o.call(t,n,1),--this.size,!0)}},82117:(e,t,n)=>{var r=n(18470);e.exports=function(e){var t=this.__data__,n=r(t,e);return n<0?void 0:t[n][1]}},67518:(e,t,n)=>{var r=n(18470);e.exports=function(e){return r(this.__data__,e)>-1}},54705:(e,t,n)=>{var r=n(18470);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},24785:(e,t,n)=>{var r=n(1989),o=n(38407),a=n(57071);e.exports=function(){this.size=0,this.__data__={hash:new r,map:new(a||o),string:new r}}},11285:(e,t,n)=>{var r=n(45050);e.exports=function(e){var t=r(this,e).delete(e);return this.size-=t?1:0,t}},96e3:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).get(e)}},49916:(e,t,n)=>{var r=n(45050);e.exports=function(e){return r(this,e).has(e)}},95265:(e,t,n)=>{var r=n(45050);e.exports=function(e,t){var n=r(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}},68776:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}},42634:e=>{e.exports=function(e,t){return function(n){return null!=n&&(n[e]===t&&(void 0!==t||e in Object(n)))}}},24523:(e,t,n)=>{var r=n(88306);e.exports=function(e){var t=r(e,(function(e){return 500===n.size&&n.clear(),e})),n=t.cache;return t}},94536:(e,t,n)=>{var r=n(10852)(Object,"create");e.exports=r},86916:(e,t,n)=>{var r=n(5569)(Object.keys,Object);e.exports=r},33498:e=>{e.exports=function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}},31167:(e,t,n)=>{e=n.nmd(e);var r=n(31957),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o&&r.process,l=function(){try{var e=a&&a.require&&a.require("util").types;return e||i&&i.binding&&i.binding("util")}catch(t){}}();e.exports=l},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(n){return e(t(n))}}},45357:(e,t,n)=>{var r=n(96874),o=Math.max;e.exports=function(e,t,n){return t=o(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,l=o(a.length-t,0),s=Array(l);++i<l;)s[i]=a[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=a[i];return u[t]=n(s),r(e,this,u)}}},40292:(e,t,n)=>{var r=n(97786),o=n(14259);e.exports=function(e,t){return t.length<2?e:r(e,o(t,0,-1))}},55639:(e,t,n)=>{var r=n(31957),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();e.exports=a},90619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},72385:e=>{e.exports=function(e){return this.__data__.has(e)}},21814:e=>{e.exports=function(e){var t=-1,n=Array(e.size);return e.forEach((function(e){n[++t]=e})),n}},30061:(e,t,n)=>{var r=n(56560),o=n(21275)(r);e.exports=o},21275:e=>{var t=Date.now;e.exports=function(e){var n=0,r=0;return function(){var o=t(),a=16-(o-r);if(r=o,a>0){if(++n>=800)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}},37465:(e,t,n)=>{var r=n(38407);e.exports=function(){this.__data__=new r,this.size=0}},63779:e=>{e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},67599:e=>{e.exports=function(e){return this.__data__.get(e)}},44758:e=>{e.exports=function(e){return this.__data__.has(e)}},34309:(e,t,n)=>{var r=n(38407),o=n(57071),a=n(83369);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var i=n.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new a(i)}return n.set(e,t),this.size=n.size,this}},55514:(e,t,n)=>{var r=n(24523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,i=r((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,n,r,o){t.push(r?o.replace(a,"$1"):n||e)})),t}));e.exports=i},40327:(e,t,n)=>{var r=n(33448);e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-Infinity?"-0":t}},80346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(n){}try{return e+""}catch(n){}}return""}},75703:e=>{e.exports=function(e){return function(){return e}}},77813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},85564:(e,t,n)=>{var r=n(21078);e.exports=function(e){return(null==e?0:e.length)?r(e,1):[]}},27361:(e,t,n)=>{var r=n(97786);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},7739:(e,t,n)=>{var r=n(89465),o=n(55189),a=Object.prototype.hasOwnProperty,i=o((function(e,t,n){a.call(e,n)?e[n].push(t):r(e,n,[t])}));e.exports=i},79095:(e,t,n)=>{var r=n(13),o=n(222);e.exports=function(e,t){return null!=e&&o(e,t,r)}},6557:e=>{e.exports=function(e){return e}},35694:(e,t,n)=>{var r=n(9454),o=n(37005),a=Object.prototype,i=a.hasOwnProperty,l=a.propertyIsEnumerable,s=r(function(){return arguments}())?r:function(e){return o(e)&&i.call(e,"callee")&&!l.call(e,"callee")};e.exports=s},1469:e=>{var t=Array.isArray;e.exports=t},98612:(e,t,n)=>{var r=n(23560),o=n(41780);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},44144:(e,t,n)=>{e=n.nmd(e);var r=n(55639),o=n(95062),a=t&&!t.nodeType&&t,i=a&&e&&!e.nodeType&&e,l=i&&i.exports===a?r.Buffer:void 0,s=(l?l.isBuffer:void 0)||o;e.exports=s},23560:(e,t,n)=>{var r=n(44239),o=n(13218);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},41780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},56688:(e,t,n)=>{var r=n(25588),o=n(7518),a=n(31167),i=a&&a.isMap,l=i?o(i):r;e.exports=l},13218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},37005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},68630:(e,t,n)=>{var r=n(44239),o=n(85924),a=n(37005),i=Function.prototype,l=Object.prototype,s=i.toString,u=l.hasOwnProperty,c=s.call(Object);e.exports=function(e){if(!a(e)||"[object Object]"!=r(e))return!1;var t=o(e);if(null===t)return!0;var n=u.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&s.call(n)==c}},72928:(e,t,n)=>{var r=n(29221),o=n(7518),a=n(31167),i=a&&a.isSet,l=i?o(i):r;e.exports=l},33448:(e,t,n)=>{var r=n(44239),o=n(37005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},36719:(e,t,n)=>{var r=n(38749),o=n(7518),a=n(31167),i=a&&a.isTypedArray,l=i?o(i):r;e.exports=l},3674:(e,t,n)=>{var r=n(14636),o=n(280),a=n(98612);e.exports=function(e){return a(e)?r(e):o(e)}},81704:(e,t,n)=>{var r=n(14636),o=n(10313),a=n(98612);e.exports=function(e){return a(e)?r(e,!0):o(e)}},10928:e=>{e.exports=function(e){var t=null==e?0:e.length;return t?e[t-1]:void 0}},88306:(e,t,n)=>{var r=n(83369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],a=n.cache;if(a.has(o))return a.get(o);var i=e.apply(this,r);return n.cache=a.set(o,i)||a,i};return n.cache=new(o.Cache||r),n}o.Cache=r,e.exports=o},57557:(e,t,n)=>{var r=n(29932),o=n(85990),a=n(57406),i=n(71811),l=n(98363),s=n(60696),u=n(99021),c=n(46904),d=u((function(e,t){var n={};if(null==e)return n;var u=!1;t=r(t,(function(t){return t=i(t,e),u||(u=t.length>1),t})),l(e,c(e),n),u&&(n=o(n,7,s));for(var d=t.length;d--;)a(n,t[d]);return n}));e.exports=d},39601:(e,t,n)=>{var r=n(40371),o=n(79152),a=n(15403),i=n(40327);e.exports=function(e){return a(e)?r(i(e)):o(e)}},70479:e=>{e.exports=function(){return[]}},95062:e=>{e.exports=function(){return!1}},79833:(e,t,n)=>{var r=n(80531);e.exports=function(e){return null==e?"":r(e)}},31336:(e,t,n)=>{var r,o;!function(){var a,i,l,s,u,c,d,f,p,h,m,g,v,b,y,w,x,_,k,E,S,C,T,O,D,P,N,I,A,L,R=function(e){var t=new R.Builder;return t.pipeline.add(R.trimmer,R.stopWordFilter,R.stemmer),t.searchPipeline.add(R.stemmer),e.call(t,t),t.build()};R.version="2.3.9",R.utils={},R.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),R.utils.asString=function(e){return null==e?"":e.toString()},R.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r<n.length;r++){var o=n[r],a=e[o];if(Array.isArray(a))t[o]=a.slice();else{if("string"!=typeof a&&"number"!=typeof a&&"boolean"!=typeof a)throw new TypeError("clone is not deep and does not support nested objects");t[o]=a}}return t},R.FieldRef=function(e,t,n){this.docRef=e,this.fieldName=t,this._stringValue=n},R.FieldRef.joiner="/",R.FieldRef.fromString=function(e){var t=e.indexOf(R.FieldRef.joiner);if(-1===t)throw"malformed field ref string";var n=e.slice(0,t),r=e.slice(t+1);return new R.FieldRef(r,n,e)},R.FieldRef.prototype.toString=function(){return null==this._stringValue&&(this._stringValue=this.fieldName+R.FieldRef.joiner+this.docRef),this._stringValue},R.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},R.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},R.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},R.Set.prototype.contains=function(e){return!!this.elements[e]},R.Set.prototype.intersect=function(e){var t,n,r,o=[];if(e===R.Set.complete)return this;if(e===R.Set.empty)return e;this.length<e.length?(t=this,n=e):(t=e,n=this),r=Object.keys(t.elements);for(var a=0;a<r.length;a++){var i=r[a];i in n.elements&&o.push(i)}return new R.Set(o)},R.Set.prototype.union=function(e){return e===R.Set.complete?R.Set.complete:e===R.Set.empty?this:new R.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},R.idf=function(e,t){var n=0;for(var r in e)"_index"!=r&&(n+=Object.keys(e[r]).length);var o=(t-n+.5)/(n+.5);return Math.log(1+Math.abs(o))},R.Token=function(e,t){this.str=e||"",this.metadata=t||{}},R.Token.prototype.toString=function(){return this.str},R.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},R.Token.prototype.clone=function(e){return e=e||function(e){return e},new R.Token(e(this.str,this.metadata),this.metadata)},R.tokenizer=function(e,t){if(null==e||null==e)return[];if(Array.isArray(e))return e.map((function(e){return new R.Token(R.utils.asString(e).toLowerCase(),R.utils.clone(t))}));for(var n=e.toString().toLowerCase(),r=n.length,o=[],a=0,i=0;a<=r;a++){var l=a-i;if(n.charAt(a).match(R.tokenizer.separator)||a==r){if(l>0){var s=R.utils.clone(t)||{};s.position=[i,l],s.index=o.length,o.push(new R.Token(n.slice(i,a),s))}i=a+1}}return o},R.tokenizer.separator=/[\s\-]+/,R.Pipeline=function(){this._stack=[]},R.Pipeline.registeredFunctions=Object.create(null),R.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&R.utils.warn("Overwriting existing registered function: "+t),e.label=t,R.Pipeline.registeredFunctions[e.label]=e},R.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||R.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},R.Pipeline.load=function(e){var t=new R.Pipeline;return e.forEach((function(e){var n=R.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},R.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){R.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},R.Pipeline.prototype.after=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},R.Pipeline.prototype.before=function(e,t){R.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},R.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},R.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n<t;n++){for(var r=this._stack[n],o=[],a=0;a<e.length;a++){var i=r(e[a],a,e);if(null!=i&&""!==i)if(Array.isArray(i))for(var l=0;l<i.length;l++)o.push(i[l]);else o.push(i)}e=o}return e},R.Pipeline.prototype.runString=function(e,t){var n=new R.Token(e,t);return this.run([n]).map((function(e){return e.toString()}))},R.Pipeline.prototype.reset=function(){this._stack=[]},R.Pipeline.prototype.toJSON=function(){return this._stack.map((function(e){return R.Pipeline.warnIfFunctionNotRegistered(e),e.label}))},R.Vector=function(e){this._magnitude=0,this.elements=e||[]},R.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,n=this.elements.length/2,r=n-t,o=Math.floor(r/2),a=this.elements[2*o];r>1&&(a<e&&(t=o),a>e&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:a<e?2*(o+1):void 0},R.Vector.prototype.insert=function(e,t){this.upsert(e,t,(function(){throw"duplicate index"}))},R.Vector.prototype.upsert=function(e,t,n){this._magnitude=0;var r=this.positionForIndex(e);this.elements[r]==e?this.elements[r+1]=n(this.elements[r+1],t):this.elements.splice(r,0,e,t)},R.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,n=1;n<t;n+=2){var r=this.elements[n];e+=r*r}return this._magnitude=Math.sqrt(e)},R.Vector.prototype.dot=function(e){for(var t=0,n=this.elements,r=e.elements,o=n.length,a=r.length,i=0,l=0,s=0,u=0;s<o&&u<a;)(i=n[s])<(l=r[u])?s+=2:i>l?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},R.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},R.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t<this.elements.length;t+=2,n++)e[n]=this.elements[t];return e},R.Vector.prototype.toJSON=function(){return this.elements},R.stemmer=(i={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},l={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},d="^("+(u="[^aeiou][^aeiouy]*")+")?"+(c=(s="[aeiouy]")+"[aeiou]*")+u+"("+c+")?$",f="^("+u+")?"+c+u+c+u,p="^("+u+")?"+s,h=new RegExp("^("+u+")?"+c+u),m=new RegExp(f),g=new RegExp(d),v=new RegExp(p),b=/^(.+?)(ss|i)es$/,y=/^(.+?)([^s])s$/,w=/^(.+?)eed$/,x=/^(.+?)(ed|ing)$/,_=/.$/,k=/(at|bl|iz)$/,E=new RegExp("([^aeiouylsz])\\1$"),S=new RegExp("^"+u+s+"[^aeiouwxy]$"),C=/^(.+?[^aeiou])y$/,T=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,O=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,D=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,P=/^(.+?)(s|t)(ion)$/,N=/^(.+?)e$/,I=/ll$/,A=new RegExp("^"+u+s+"[^aeiouwxy]$"),L=function(e){var t,n,r,o,a,s,u;if(e.length<3)return e;if("y"==(r=e.substr(0,1))&&(e=r.toUpperCase()+e.substr(1)),a=y,(o=b).test(e)?e=e.replace(o,"$1$2"):a.test(e)&&(e=e.replace(a,"$1$2")),a=x,(o=w).test(e)){var c=o.exec(e);(o=h).test(c[1])&&(o=_,e=e.replace(o,""))}else a.test(e)&&(t=(c=a.exec(e))[1],(a=v).test(t)&&(s=E,u=S,(a=k).test(e=t)?e+="e":s.test(e)?(o=_,e=e.replace(o,"")):u.test(e)&&(e+="e")));return(o=C).test(e)&&(e=(t=(c=o.exec(e))[1])+"i"),(o=T).test(e)&&(t=(c=o.exec(e))[1],n=c[2],(o=h).test(t)&&(e=t+i[n])),(o=O).test(e)&&(t=(c=o.exec(e))[1],n=c[2],(o=h).test(t)&&(e=t+l[n])),a=P,(o=D).test(e)?(t=(c=o.exec(e))[1],(o=m).test(t)&&(e=t)):a.test(e)&&(t=(c=a.exec(e))[1]+c[2],(a=m).test(t)&&(e=t)),(o=N).test(e)&&(t=(c=o.exec(e))[1],a=g,s=A,((o=m).test(t)||a.test(t)&&!s.test(t))&&(e=t)),a=m,(o=I).test(e)&&a.test(e)&&(o=_,e=e.replace(o,"")),"y"==r&&(e=r.toLowerCase()+e.substr(1)),e},function(e){return e.update(L)}),R.Pipeline.registerFunction(R.stemmer,"stemmer"),R.generateStopWordFilter=function(e){var t=e.reduce((function(e,t){return e[t]=t,e}),{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},R.stopWordFilter=R.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),R.Pipeline.registerFunction(R.stopWordFilter,"stopWordFilter"),R.trimmer=function(e){return e.update((function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")}))},R.Pipeline.registerFunction(R.trimmer,"trimmer"),R.TokenSet=function(){this.final=!1,this.edges={},this.id=R.TokenSet._nextId,R.TokenSet._nextId+=1},R.TokenSet._nextId=1,R.TokenSet.fromArray=function(e){for(var t=new R.TokenSet.Builder,n=0,r=e.length;n<r;n++)t.insert(e[n]);return t.finish(),t.root},R.TokenSet.fromClause=function(e){return"editDistance"in e?R.TokenSet.fromFuzzyString(e.term,e.editDistance):R.TokenSet.fromString(e.term)},R.TokenSet.fromFuzzyString=function(e,t){for(var n=new R.TokenSet,r=[{node:n,editsRemaining:t,str:e}];r.length;){var o=r.pop();if(o.str.length>0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new R.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new R.TokenSet;o.node.edges["*"]=l}if(0==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new R.TokenSet;o.node.edges["*"]=s}1==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var u,c=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?u=o.node.edges[d]:(u=new R.TokenSet,o.node.edges[d]=u),1==o.str.length&&(u.final=!0),r.push({node:u,editsRemaining:o.editsRemaining-1,str:c+o.str.slice(2)})}}}return n},R.TokenSet.fromString=function(e){for(var t=new R.TokenSet,n=t,r=0,o=e.length;r<o;r++){var a=e[r],i=r==o-1;if("*"==a)t.edges[a]=t,t.final=i;else{var l=new R.TokenSet;l.final=i,t.edges[a]=l,t=l}}return n},R.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var n=t.pop(),r=Object.keys(n.node.edges),o=r.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var a=0;a<o;a++){var i=r[a];t.push({prefix:n.prefix.concat(i),node:n.node.edges[i]})}}return e},R.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",t=Object.keys(this.edges).sort(),n=t.length,r=0;r<n;r++){var o=t[r];e=e+o+this.edges[o].id}return e},R.TokenSet.prototype.intersect=function(e){for(var t=new R.TokenSet,n=void 0,r=[{qNode:e,output:t,node:this}];r.length;){n=r.pop();for(var o=Object.keys(n.qNode.edges),a=o.length,i=Object.keys(n.node.edges),l=i.length,s=0;s<a;s++)for(var u=o[s],c=0;c<l;c++){var d=i[c];if(d==u||"*"==u){var f=n.node.edges[d],p=n.qNode.edges[u],h=f.final&&p.final,m=void 0;d in n.output.edges?(m=n.output.edges[d]).final=m.final||h:((m=new R.TokenSet).final=h,n.output.edges[d]=m),r.push({qNode:p,output:m,node:f})}}}return t},R.TokenSet.Builder=function(){this.previousWord="",this.root=new R.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},R.TokenSet.Builder.prototype.insert=function(e){var t,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var r=0;r<e.length&&r<this.previousWord.length&&e[r]==this.previousWord[r];r++)n++;this.minimize(n),t=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(r=n;r<e.length;r++){var o=new R.TokenSet,a=e[r];t.edges[a]=o,this.uncheckedNodes.push({parent:t,char:a,child:o}),t=o}t.final=!0,this.previousWord=e},R.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},R.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},R.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},R.Index.prototype.search=function(e){return this.query((function(t){new R.QueryParser(e,t).parse()}))},R.Index.prototype.query=function(e){for(var t=new R.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),l=0;l<this.fields.length;l++)r[this.fields[l]]=new R.Vector;e.call(t,t);for(l=0;l<t.clauses.length;l++){var s=t.clauses[l],u=null,c=R.Set.empty;u=s.usePipeline?this.pipeline.runString(s.term,{fields:s.fields}):[s.term];for(var d=0;d<u.length;d++){var f=u[d];s.term=f;var p=R.TokenSet.fromClause(s),h=this.tokenSet.intersect(p).toArray();if(0===h.length&&s.presence===R.Query.presence.REQUIRED){for(var m=0;m<s.fields.length;m++){a[N=s.fields[m]]=R.Set.empty}break}for(var g=0;g<h.length;g++){var v=h[g],b=this.invertedIndex[v],y=b._index;for(m=0;m<s.fields.length;m++){var w=b[N=s.fields[m]],x=Object.keys(w),_=v+"/"+N,k=new R.Set(x);if(s.presence==R.Query.presence.REQUIRED&&(c=c.union(k),void 0===a[N]&&(a[N]=R.Set.complete)),s.presence!=R.Query.presence.PROHIBITED){if(r[N].upsert(y,s.boost,(function(e,t){return e+t})),!o[_]){for(var E=0;E<x.length;E++){var S,C=x[E],T=new R.FieldRef(C,N),O=w[C];void 0===(S=n[T])?n[T]=new R.MatchData(v,N,O):S.add(v,N,O)}o[_]=!0}}else void 0===i[N]&&(i[N]=R.Set.empty),i[N]=i[N].union(k)}}}if(s.presence===R.Query.presence.REQUIRED)for(m=0;m<s.fields.length;m++){a[N=s.fields[m]]=a[N].intersect(c)}}var D=R.Set.complete,P=R.Set.empty;for(l=0;l<this.fields.length;l++){var N;a[N=this.fields[l]]&&(D=D.intersect(a[N])),i[N]&&(P=P.union(i[N]))}var I=Object.keys(n),A=[],L=Object.create(null);if(t.isNegated()){I=Object.keys(this.fieldVectors);for(l=0;l<I.length;l++){T=I[l];var j=R.FieldRef.fromString(T);n[T]=new R.MatchData}}for(l=0;l<I.length;l++){var M=(j=R.FieldRef.fromString(I[l])).docRef;if(D.contains(M)&&!P.contains(M)){var F,B=this.fieldVectors[j],z=r[j.fieldName].similarity(B);if(void 0!==(F=L[M]))F.score+=z,F.matchData.combine(n[j]);else{var $={ref:M,score:z,matchData:n[j]};L[M]=$,A.push($)}}}return A.sort((function(e,t){return t.score-e.score}))},R.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map((function(e){return[e,this.invertedIndex[e]]}),this),t=Object.keys(this.fieldVectors).map((function(e){return[e,this.fieldVectors[e].toJSON()]}),this);return{version:R.version,fields:this.fields,fieldVectors:t,invertedIndex:e,pipeline:this.pipeline.toJSON()}},R.Index.load=function(e){var t={},n={},r=e.fieldVectors,o=Object.create(null),a=e.invertedIndex,i=new R.TokenSet.Builder,l=R.Pipeline.load(e.pipeline);e.version!=R.version&&R.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+R.version+"' does not match serialized index '"+e.version+"'");for(var s=0;s<r.length;s++){var u=(d=r[s])[0],c=d[1];n[u]=new R.Vector(c)}for(s=0;s<a.length;s++){var d,f=(d=a[s])[0],p=d[1];i.insert(f),o[f]=p}return i.finish(),t.fields=e.fields,t.fieldVectors=n,t.invertedIndex=o,t.tokenSet=i.root,t.pipeline=l,new R.Index(t)},R.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=R.tokenizer,this.pipeline=new R.Pipeline,this.searchPipeline=new R.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},R.Builder.prototype.ref=function(e){this._ref=e},R.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},R.Builder.prototype.b=function(e){this._b=e<0?0:e>1?1:e},R.Builder.prototype.k1=function(e){this._k1=e},R.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o<r.length;o++){var a=r[o],i=this._fields[a].extractor,l=i?i(e):e[a],s=this.tokenizer(l,{fields:[a]}),u=this.pipeline.run(s),c=new R.FieldRef(n,a),d=Object.create(null);this.fieldTermFrequencies[c]=d,this.fieldLengths[c]=0,this.fieldLengths[c]+=u.length;for(var f=0;f<u.length;f++){var p=u[f];if(null==d[p]&&(d[p]=0),d[p]+=1,null==this.invertedIndex[p]){var h=Object.create(null);h._index=this.termIndex,this.termIndex+=1;for(var m=0;m<r.length;m++)h[r[m]]=Object.create(null);this.invertedIndex[p]=h}null==this.invertedIndex[p][a][n]&&(this.invertedIndex[p][a][n]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var v=this.metadataWhitelist[g],b=p.metadata[v];null==this.invertedIndex[p][a][n][v]&&(this.invertedIndex[p][a][n][v]=[]),this.invertedIndex[p][a][n][v].push(b)}}}},R.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),t=e.length,n={},r={},o=0;o<t;o++){var a=R.FieldRef.fromString(e[o]),i=a.fieldName;r[i]||(r[i]=0),r[i]+=1,n[i]||(n[i]=0),n[i]+=this.fieldLengths[a]}var l=Object.keys(this._fields);for(o=0;o<l.length;o++){var s=l[o];n[s]=n[s]/r[s]}this.averageFieldLength=n},R.Builder.prototype.createFieldVectors=function(){for(var e={},t=Object.keys(this.fieldTermFrequencies),n=t.length,r=Object.create(null),o=0;o<n;o++){for(var a=R.FieldRef.fromString(t[o]),i=a.fieldName,l=this.fieldLengths[a],s=new R.Vector,u=this.fieldTermFrequencies[a],c=Object.keys(u),d=c.length,f=this._fields[i].boost||1,p=this._documents[a.docRef].boost||1,h=0;h<d;h++){var m,g,v,b=c[h],y=u[b],w=this.invertedIndex[b]._index;void 0===r[b]?(m=R.idf(this.invertedIndex[b],this.documentCount),r[b]=m):m=r[b],g=m*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[i]))+y),g*=f,g*=p,v=Math.round(1e3*g)/1e3,s.insert(w,v)}e[a]=s}this.fieldVectors=e},R.Builder.prototype.createTokenSet=function(){this.tokenSet=R.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},R.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new R.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},R.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},R.MatchData=function(e,t,n){for(var r=Object.create(null),o=Object.keys(n||{}),a=0;a<o.length;a++){var i=o[a];r[i]=n[i].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=r)},R.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),n=0;n<t.length;n++){var r=t[n],o=Object.keys(e.metadata[r]);null==this.metadata[r]&&(this.metadata[r]=Object.create(null));for(var a=0;a<o.length;a++){var i=o[a],l=Object.keys(e.metadata[r][i]);null==this.metadata[r][i]&&(this.metadata[r][i]=Object.create(null));for(var s=0;s<l.length;s++){var u=l[s];null==this.metadata[r][i][u]?this.metadata[r][i][u]=e.metadata[r][i][u]:this.metadata[r][i][u]=this.metadata[r][i][u].concat(e.metadata[r][i][u])}}}},R.MatchData.prototype.add=function(e,t,n){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=n);if(t in this.metadata[e])for(var r=Object.keys(n),o=0;o<r.length;o++){var a=r[o];a in this.metadata[e][t]?this.metadata[e][t][a]=this.metadata[e][t][a].concat(n[a]):this.metadata[e][t][a]=n[a]}else this.metadata[e][t]=n},R.Query=function(e){this.clauses=[],this.allFields=e},R.Query.wildcard=new String("*"),R.Query.wildcard.NONE=0,R.Query.wildcard.LEADING=1,R.Query.wildcard.TRAILING=2,R.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},R.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=R.Query.wildcard.NONE),e.wildcard&R.Query.wildcard.LEADING&&e.term.charAt(0)!=R.Query.wildcard&&(e.term="*"+e.term),e.wildcard&R.Query.wildcard.TRAILING&&e.term.slice(-1)!=R.Query.wildcard&&(e.term=e.term+"*"),"presence"in e||(e.presence=R.Query.presence.OPTIONAL),this.clauses.push(e),this},R.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=R.Query.presence.PROHIBITED)return!1;return!0},R.Query.prototype.term=function(e,t){if(Array.isArray(e))return e.forEach((function(e){this.term(e,R.utils.clone(t))}),this),this;var n=t||{};return n.term=e.toString(),this.clause(n),this},R.QueryParseError=function(e,t,n){this.name="QueryParseError",this.message=e,this.start=t,this.end=n},R.QueryParseError.prototype=new Error,R.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},R.QueryLexer.prototype.run=function(){for(var e=R.QueryLexer.lexText;e;)e=e(this)},R.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,n=this.pos,r=0;r<this.escapeCharPositions.length;r++)n=this.escapeCharPositions[r],e.push(this.str.slice(t,n)),t=n+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},R.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},R.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},R.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return R.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},R.QueryLexer.prototype.width=function(){return this.pos-this.start},R.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},R.QueryLexer.prototype.backup=function(){this.pos-=1},R.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=R.QueryLexer.EOS&&this.backup()},R.QueryLexer.prototype.more=function(){return this.pos<this.length},R.QueryLexer.EOS="EOS",R.QueryLexer.FIELD="FIELD",R.QueryLexer.TERM="TERM",R.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",R.QueryLexer.BOOST="BOOST",R.QueryLexer.PRESENCE="PRESENCE",R.QueryLexer.lexField=function(e){return e.backup(),e.emit(R.QueryLexer.FIELD),e.ignore(),R.QueryLexer.lexText},R.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(R.QueryLexer.TERM)),e.ignore(),e.more())return R.QueryLexer.lexText},R.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.EDIT_DISTANCE),R.QueryLexer.lexText},R.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(R.QueryLexer.BOOST),R.QueryLexer.lexText},R.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(R.QueryLexer.TERM)},R.QueryLexer.termSeparator=R.tokenizer.separator,R.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==R.QueryLexer.EOS)return R.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return R.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(R.QueryLexer.TERM),R.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(R.QueryLexer.PRESENCE),R.QueryLexer.lexText;if(t.match(R.QueryLexer.termSeparator))return R.QueryLexer.lexTerm}else e.escapeCharacter()}},R.QueryParser=function(e,t){this.lexer=new R.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},R.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=R.QueryParser.parseClause;e;)e=e(this);return this.query},R.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},R.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},R.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},R.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case R.QueryLexer.PRESENCE:return R.QueryParser.parsePresence;case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new R.QueryParseError(n,t.start,t.end)}},R.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=R.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=R.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new R.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new R.QueryParseError(n,t.start,t.end)}switch(r.type){case R.QueryLexer.FIELD:return R.QueryParser.parseField;case R.QueryLexer.TERM:return R.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new R.QueryParseError(n,r.start,r.end)}}},R.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new R.QueryParseError(r,t.start,t.end)}if(o.type===R.QueryLexer.TERM)return R.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}},R.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new R.QueryParseError(r,n.start,n.end)}else e.nextClause()}},R.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},R.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new R.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case R.QueryLexer.TERM:return e.nextClause(),R.QueryParser.parseTerm;case R.QueryLexer.FIELD:return e.nextClause(),R.QueryParser.parseField;case R.QueryLexer.EDIT_DISTANCE:return R.QueryParser.parseEditDistance;case R.QueryLexer.BOOST:return R.QueryParser.parseBoost;case R.QueryLexer.PRESENCE:return e.nextClause(),R.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new R.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return R})?r.call(t,n,t,e):r)||(e.exports=o)}()},27861:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={icon:"icon_S7Kx",s:"s_AZDZ",m:"m_thRi",l:"l_WHPt",fill:"fill_hNhN",stroke:"stroke_N8dm"}},10153:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={backdrop:"backdrop_Ifvc",navWrapper:"navWrapper_ybYI",nav:"nav_cMpg",visible:"visible_ynAX",wrapper:"wrapper_SWrM",fullscreenButton:"fullscreenButton_Bocn",active:"active_qZD5"}},8633:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={toggle:"toggle_K23S",toggleButton:"toggleButton_dl49",darkToggleIcon:"darkToggleIcon_lKkA",lightToggleIcon:"lightToggleIcon_K4TL",toggleButtonDisabled:"toggleButtonDisabled_AAS_"}},79762:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={firstRow:"firstRow_ar1q",secondRow:"secondRow__ww3",backToTop:"backToTop_wDfN"}},90826:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={colorModeToggle:"colorModeToggle_GSaI",rightSection:"rightSection_CLeF",iconButtonGroup:"iconButtonGroup_ktNv"}},83244:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={dropdownNavbarItem:"dropdownNavbarItem_o23I"}},31259:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={modal:"modal_kLVz",closeButton:"closeButton_Rr0e",header:"header_QwCa"}},61699:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_ONDG",empty:"empty_a7qb",title:"title_uwS_",item:"item_RHYF",itemTitle:"itemTitle_jtAv"}},9592:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_xZfc",textField:"textField_af43"}},1443:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_N57j"}},18589:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_Ooa0",level1:"level1_fpUf",icon:"icon_sZn2",fill:"fill_fkan",stroke:"stroke_j3wH"}},86620:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_JWD1"}},38076:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_EFVO"}},20550:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_ltHz",noResults:"noResults_mD2O",groups:"groups_p1lF",divider:"divider_eGUz",topBar:"topBar_Dtew"}},22473:(e,t,n)=>{"use strict";n.r(t)},11057:(e,t,n)=>{"use strict";n.r(t)},93878:(e,t,n)=>{"use strict";n.r(t)},32497:(e,t,n)=>{"use strict";n.r(t)},97087:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={navbarHideable:"navbarHideable_OoEf",navbarHidden:"navbarHidden_zoxl"}},88822:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={linkContent:"linkContent__x3v",externalLinkIcon:"externalLinkIcon_Qfue"}},65787:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={themedImage:"themedImage_kfRS","themedImage--light":"themedImage--light_BL8e","themedImage--dark":"themedImage--dark_OvIx"}},36459:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={root:"root_QACb"}},97142:(e,t)=>{"use strict";t.I=function(e){e.client&&(document.head.appendChild(e.msh=document.createElement("style")),e.createRule=function(t,n){var r=t+"{}";n&&(r=n+"{"+r+"}");var o=n?e.msh.sheet:e.sh.sheet,a=o.insertRule(r,o.cssRules.length),i=(o.cssRules||o.rules)[a];if(i.index=a,n){var l=(i.cssRules||i.rules)[0];i.style=l.style,i.styleMap=l.styleMap}return i})}},52099:(e,t,n)=>{"use strict";var r=n(39662).D;t.I=function(e){if(e.client){0;var t=e.kebab;n.prototype.diff=function(e){var n,r=this.decl,o=this.rule.style;for(n in r)void 0===e[n]&&o.removeProperty(n);for(n in e)e[n]!==r[n]&&o.setProperty(t(n),e[n]);this.decl=e},n.prototype.del=function(){r(this.rule)},o.prototype.diff=function(e){var t=this.tree;for(var r in t)if(void 0===e[r]){var o=t[r];for(var a in o)o[a].del()}for(var r in e)if(void 0===t[r])for(var a in e[r]){(s=new n(a,r)).diff(e[r][a]),e[r][a]=s}else{var i=t[r],l=e[r];for(var a in i)l[a]||i[a].del();for(var a in l){var s;(s=i[a])?(s.diff(l[a]),l[a]=s):((s=new n(a,r)).diff(l[a]),l[a]=s)}}this.tree=e},e.VRule=n,e.VSheet=o}function n(t,n){this.rule=e.createRule(t,n),this.decl={}}function o(){this.tree={}}}},87749:(e,t)=>{t.z=function e(t,n,r,o){var a,i,l={},s=!1;for(a in n)"object"!=typeof(i=n[a])&&(s=!0,l[a]=i);for(a in s&&(t[o]||(t[o]={}),t[o][r]=l),n)if("object"==typeof(i=n[a]))if("@"===a[0])e(t,i,r,a);else{var u=a.indexOf("&")>-1,c=r.split(",");if(u)for(var d=0;d<c.length;d++)c[d]=a.replace(/&/g,c[d]);else for(d=0;d<c.length;d++)c[d]=c[d]+" "+a;e(t,i,c.join(","),o)}}},39662:(e,t)=>{t.D=function(e){var t=e.index,n=e.parentStyleSheet,r=n.cssRules||n.rules;for(t=Math.max(t,r.length-1);t>=0;){if(r[t]===e){n.deleteRule(t);break}t--}}},40818:(e,t)=>{"use strict";var n=/[A-Z]/g;t.U=function(e){var t=(e=e||{}).assign||Object.assign;var r=t({raw:"",pfx:"_",client:"object"==typeof window,assign:t,stringify:JSON.stringify,kebab:function(e){return e.replace(n,"-$&").toLowerCase()},decl:function(e,t){return(e=r.kebab(e))+":"+t+";"},hash:function(e){return function(e){for(var t=5381,n=e.length;n;)t=33*t^e.charCodeAt(--n);return"_"+(t>>>0).toString(36)}(r.stringify(e))},selector:function(e,t){return e+(":"===t[0]?"":" ")+t},putRaw:function(e){r.raw+=e}},e);return r.client&&(r.sh||document.head.appendChild(r.sh=document.createElement("style")),r.putRaw=function(e){var t=r.sh.sheet;try{t.insertRule(e,t.cssRules.length)}catch(n){}}),r.put=function(e,t,n){var o,a,i="",l=[];for(o in t)(a=t[o])instanceof Object&&!(a instanceof Array)?l.push(o):i+=r.decl(o,a,e,n);i&&(i=e+"{"+i+"}",r.putRaw(n?n+"{"+i+"}":i));for(var s=0;s<l.length;s++)"@"===(o=l[s])[0]&&"@font-face"!==o?r.putAt(e,t[o],o):r.put(r.selector(e,o),t[o],n)},r.putAt=r.put,r}},74865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(e,t,n){return e<t?t:e>n?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},27418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var a,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var u in a=Object(arguments[s]))n.call(a,u)&&(l[u]=a[u]);if(t){i=t(a);for(var c=0;c<i.length;c++)r.call(a,i[c])&&(l[i[c]]=a[i[c]])}}return l}},87594:(e,t)=>{function n(e){let t,n=[];for(let r of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(r))n.push(parseInt(r,10));else if(t=r.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,r,o,a]=t;if(r&&a){r=parseInt(r),a=parseInt(a);const e=r<a?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(a+=e);for(let t=r;t!==a;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},87410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var o,a;switch(n=n||{},r.util.type(t)){case"Object":if(a=r.util.objId(t),n[a])return n[a];for(var i in o={},n[a]=o,t)t.hasOwnProperty(i)&&(o[i]=e(t[i],n));return o;case"Array":return a=r.util.objId(t),n[a]?n[a]:(o=[],n[a]=o,t.forEach((function(t,r){o[r]=e(t,n)})),o);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var o=e.classList;if(o.contains(t))return!0;if(o.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var o in t)n[o]=t[o];return n},insertBefore:function(e,t,n,o){var a=(o=o||r.languages)[e],i={};for(var l in a)if(a.hasOwnProperty(l)){if(l==t)for(var s in n)n.hasOwnProperty(s)&&(i[s]=n[s]);n.hasOwnProperty(l)||(i[l]=a[l])}var u=o[e];return o[e]=i,r.languages.DFS(r.languages,(function(t,n){n===u&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,o,a){a=a||{};var i=r.util.objId;for(var l in t)if(t.hasOwnProperty(l)){n.call(t,l,t[l],o||l);var s=t[l],u=r.util.type(s);"Object"!==u||a[i(s)]?"Array"!==u||a[i(s)]||(a[i(s)]=!0,e(s,n,l,a)):(a[i(s)]=!0,e(s,n,null,a))}}},plugins:{},highlight:function(e,t,n){var a={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",a),a.tokens=r.tokenize(a.code,a.grammar),r.hooks.run("after-tokenize",a),o.stringify(r.util.encode(a.tokens),a.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var o=new l;return s(o,o.head,e),i(e,o,t,o.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(o)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var o,a=0;o=n[a++];)o(t)}},Token:o};function o(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function a(e,t,n,r){e.lastIndex=t;var o=e.exec(n);if(o&&r&&o[1]){var a=o[1].length;o.index+=a,o[0]=o[0].slice(a)}return o}function i(e,t,n,l,c,d){for(var f in n)if(n.hasOwnProperty(f)&&n[f]){var p=n[f];p=Array.isArray(p)?p:[p];for(var h=0;h<p.length;++h){if(d&&d.cause==f+","+h)return;var m=p[h],g=m.inside,v=!!m.lookbehind,b=!!m.greedy,y=m.alias;if(b&&!m.pattern.global){var w=m.pattern.toString().match(/[imsuy]*$/)[0];m.pattern=RegExp(m.pattern.source,w+"g")}for(var x=m.pattern||m,_=l.next,k=c;_!==t.tail&&!(d&&k>=d.reach);k+=_.value.length,_=_.next){var E=_.value;if(t.length>e.length)return;if(!(E instanceof o)){var S,C=1;if(b){if(!(S=a(x,k,e,v))||S.index>=e.length)break;var T=S.index,O=S.index+S[0].length,D=k;for(D+=_.value.length;T>=D;)D+=(_=_.next).value.length;if(k=D-=_.value.length,_.value instanceof o)continue;for(var P=_;P!==t.tail&&(D<O||"string"==typeof P.value);P=P.next)C++,D+=P.value.length;C--,E=e.slice(k,D),S.index-=k}else if(!(S=a(x,0,E,v)))continue;T=S.index;var N=S[0],I=E.slice(0,T),A=E.slice(T+N.length),L=k+E.length;d&&L>d.reach&&(d.reach=L);var R=_.prev;if(I&&(R=s(t,R,I),k+=I.length),u(t,R,C),_=s(t,R,new o(f,g?r.tokenize(N,g):N,y,N)),A&&s(t,_,A),C>1){var j={cause:f+","+h,reach:L};i(e,t,n,_.prev,k,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function u(e,t,n){for(var r=t.next,o=0;o<n&&r!==e.tail;o++)r=r.next;t.next=r,r.prev=t,e.length-=o}return o.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var o="";return t.forEach((function(t){o+=e(t,n)})),o}var a={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(a.classes,i):a.classes.push(i)),r.hooks.run("wrap",a);var l="";for(var s in a.attributes)l+=" "+s+'="'+(a.attributes[s]||"").replace(/"/g,""")+'"';return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+l+">"+a.content+"</"+a.tag+">"},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i<o.length;i++)a[o[i]]=e.languages.bash[o[i]];e.languages.shell=e.languages.bash}(o),o.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var o=t[n];if("code"===o.type){var a=o.content[1],i=o.content[3];if(a&&i&&"code-language"===a.type&&"code-block"===i.type&&"string"==typeof a.content){var l=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),s="language-"+(l=(/[a-z][\w-]*/i.exec(l)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,s]:i.alias.push(s):i.alias=[s]}}else e(o.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,o=t.classes.length;r<o;r++){var a=t.classes[r],u=/language-(.+)/.exec(a);if(u){n=u[1];break}}var c,d=e.languages[n];if(d)t.content=e.highlight((c=t.content,c.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),s(n);var r=l[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var f="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=f,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(f);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),l={amp:"&",lt:"<",gt:">",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var o=[];if(d(["definition-mutation","punctuation"])&&"("===c(1).content){n+=2;var a=f(/^\($/,/^\)$/);if(-1===a)continue;for(;n<a;n++){var i=c(0);"variable"===i.type&&(p(i,"variable-input"),o.push(i.content))}n=a+1}if(d(["punctuation","property-query"])&&"{"===c(0).content&&(n++,p(c(0),"property-mutation"),o.length>0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s<l;s++){var u=t[s];"variable"===u.type&&o.indexOf(u.content)>=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=c(n+t);if(!r||r.type!==e[n])return!1}return!0}function f(e,r){for(var o=1,a=n;a<t.length;a++){var i=t[a],l=i.content;if("punctuation"===i.type&&"string"==typeof l)if(e.test(l))o++;else if(r.test(l)&&0===--o)return a}return-1}function p(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),o.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function u(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,s(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function c(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,c={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=o,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=f[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var s=a.substring(0,l),d=u(c[o]),p=a.substring(l+o.length),h=[];if(s&&h.push(s),h.push(d),p){var m=[p];e(m),h.push.apply(h,m)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(h)),n+=h.length-1):r.content=h}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r<o;r++){var a=n[r];if("string"!=typeof a){var i=a.content;if(Array.isArray(i))if("template-string"===a.type){var l=i[1];if(3===i.length&&"string"!=typeof l&&"embedded-code"===l.type){var s=f(l),u=l.alias,d=Array.isArray(u)?u[0]:u,p=e.languages[d];if(!p)continue;i[1]=c(s,p,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(o),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var o=n[r],a=e.languages.javascript[o];"RegExp"===e.util.type(a)&&(a=e.languages.javascript[o]={pattern:a});var i=a.inside||{};a.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(o),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,o=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function a(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r<t.length;r++){var o=t[r],a=!1;if("string"!=typeof o&&("tag"===o.type&&o.content[0]&&"tag"===o.content[0].type?"</"===o.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(o);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(s+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&l(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s<l.length&&!(o>=a.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[o],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),h=f.indexOf(p);if(h>-1){++o;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(h+p.length),b=[];m&&b.push.apply(b,i([m])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},29901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(29901),o=n(39642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(16500).resolve(t)],delete Prism.languages[e],n(16500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},16500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=16500},39642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function o(r,a){if(!(r in n)){a.push(r);var i=a.indexOf(r);if(i<a.length-1)throw new Error("Circular dependency: "+a.slice(i).join(" -> "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),h=c;o(h);){for(var m in f={},h){var g=s[m];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var b in p(v))if(b in c){f[v]=!0;break}for(var y in h=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var o,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)o=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));a?o=a(f,(function(){return r(e)})):r(e)}return l[e]=o}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},92703:(e,t,n)=>{"use strict";var r=n(50414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},45697:(e,t,n)=>{e.exports=n(92703)()},50414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},64448:(e,t,n)=>{"use strict";var r=n(67294),o=n(27418),a=n(63840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}if(!r)throw Error(i(227));var l=new Set,s={};function u(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)l.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p=Object.prototype.hasOwnProperty,h={},m={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var v={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){v[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];v[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){v[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){v[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){v[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){v[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){v[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){v[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){v[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function w(e,t,n,r){var o=v.hasOwnProperty(t)?v[t]:null;(null!==o?0===o.type:!r&&(2<t.length&&("o"===t[0]||"O"===t[0])&&("n"===t[1]||"N"===t[1])))||(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!p.call(m,e)||!p.call(h,e)&&(f.test(e)?m[e]=!0:(h[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,y);v[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_=60103,k=60106,E=60107,S=60108,C=60114,T=60109,O=60110,D=60112,P=60113,N=60120,I=60115,A=60116,L=60121,R=60128,j=60129,M=60130,F=60131;if("function"==typeof Symbol&&Symbol.for){var B=Symbol.for;_=B("react.element"),k=B("react.portal"),E=B("react.fragment"),S=B("react.strict_mode"),C=B("react.profiler"),T=B("react.provider"),O=B("react.context"),D=B("react.forward_ref"),P=B("react.suspense"),N=B("react.suspense_list"),I=B("react.memo"),A=B("react.lazy"),L=B("react.block"),B("react.scope"),R=B("react.opaque.id"),j=B("react.debug_trace_mode"),M=B("react.offscreen"),F=B("react.legacy_hidden")}var z,$="function"==typeof Symbol&&Symbol.iterator;function U(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=$&&e[$]||e["@@iterator"])?e:null}function H(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var V=!1;function q(e,t){if(!e||V)return"";V=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(s){var r=s}Reflect.construct(e,[],t)}else{try{t.call()}catch(s){r=s}e.call(t.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"==typeof s.stack){for(var o=s.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,l=a.length-1;1<=i&&0<=l&&o[i]!==a[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==a[l]){if(1!==i||1!==l)do{if(i--,0>--l||o[i]!==a[l])return"\n"+o[i].replace(" at new "," at ")}while(1<=i&&0<=l);break}}}finally{V=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?H(e):""}function W(e){switch(e.tag){case 5:return H(e.type);case 16:return H("Lazy");case 13:return H("Suspense");case 19:return H("SuspenseList");case 0:case 2:case 15:return e=q(e.type,!1);case 11:return e=q(e.type.render,!1);case 22:return e=q(e.type._render,!1);case 1:return e=q(e.type,!0);default:return""}}function G(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case E:return"Fragment";case k:return"Portal";case C:return"Profiler";case S:return"StrictMode";case P:return"Suspense";case N:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case O:return(e.displayName||"Context")+".Consumer";case T:return(e._context.displayName||"Context")+".Provider";case D:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(""!==t?"ForwardRef("+t+")":"ForwardRef");case I:return G(e.type);case L:return G(e._render);case A:t=e._payload,e=e._init;try{return G(e(t))}catch(n){}}return null}function Z(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Q(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=Q(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function X(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Q(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return o({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function ee(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=Z(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function te(e,t){null!=(t=t.checked)&&w(e,"checked",t,!1)}function ne(e,t){te(e,t);var n=Z(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?oe(e,t.type,n):t.hasOwnProperty("defaultValue")&&oe(e,t.type,Z(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function re(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function oe(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function ae(e,t){return e=o({children:void 0},t),(t=function(e){var t="";return r.Children.forEach(e,(function(e){null!=e&&(t+=e)})),t}(t.children))&&(e.children=t),e}function ie(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Z(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function le(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return o({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function se(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));if(Array.isArray(n)){if(!(1>=n.length))throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:Z(n)}}function ue(e,t){var n=Z(t.value),r=Z(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ce(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}var de={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function fe(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function pe(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?fe(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var he,me,ge=(me=function(e,t){if(e.namespaceURI!==de.svg||"innerHTML"in e)e.innerHTML=t;else{for((he=he||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=he.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return me(e,t)}))}:me);function ve(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var be={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ye=["Webkit","ms","Moz","O"];function we(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||be.hasOwnProperty(e)&&be[e]?(""+t).trim():t+"px"}function xe(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=we(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(be).forEach((function(e){ye.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),be[t]=be[e]}))}));var _e=o({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ke(e,t){if(t){if(_e[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(i(62))}}function Ee(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Se(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Ce=null,Te=null,Oe=null;function De(e){if(e=no(e)){if("function"!=typeof Ce)throw Error(i(280));var t=e.stateNode;t&&(t=oo(t),Ce(e.stateNode,e.type,t))}}function Pe(e){Te?Oe?Oe.push(e):Oe=[e]:Te=e}function Ne(){if(Te){var e=Te,t=Oe;if(Oe=Te=null,De(e),t)for(e=0;e<t.length;e++)De(t[e])}}function Ie(e,t){return e(t)}function Ae(e,t,n,r,o){return e(t,n,r,o)}function Le(){}var Re=Ie,je=!1,Me=!1;function Fe(){null===Te&&null===Oe||(Le(),Ne())}function Be(e,t){var n=e.stateNode;if(null===n)return null;var r=oo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(i(231,t,typeof n));return n}var ze=!1;if(d)try{var $e={};Object.defineProperty($e,"passive",{get:function(){ze=!0}}),window.addEventListener("test",$e,$e),window.removeEventListener("test",$e,$e)}catch(me){ze=!1}function Ue(e,t,n,r,o,a,i,l,s){var u=Array.prototype.slice.call(arguments,3);try{t.apply(n,u)}catch(c){this.onError(c)}}var He=!1,Ve=null,qe=!1,We=null,Ge={onError:function(e){He=!0,Ve=e}};function Ze(e,t,n,r,o,a,i,l,s){He=!1,Ve=null,Ue.apply(Ge,arguments)}function Qe(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(1026&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Ye(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Xe(e){if(Qe(e)!==e)throw Error(i(188))}function Ke(e){if(e=function(e){var t=e.alternate;if(!t){if(null===(t=Qe(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return Xe(o),e;if(a===r)return Xe(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l){for(s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e),!e)return null;for(var t=e;;){if(5===t.tag||6===t.tag)return t;if(t.child)t.child.return=t,t=t.child;else{if(t===e)break;for(;!t.sibling;){if(!t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}}return null}function Je(e,t){for(var n=e.alternate;null!==t;){if(t===e||t===n)return!0;t=t.return}return!1}var et,tt,nt,rt,ot=!1,at=[],it=null,lt=null,st=null,ut=new Map,ct=new Map,dt=[],ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function pt(e,t,n,r,o){return{blockedOn:e,domEventName:t,eventSystemFlags:16|n,nativeEvent:o,targetContainers:[r]}}function ht(e,t){switch(e){case"focusin":case"focusout":it=null;break;case"dragenter":case"dragleave":lt=null;break;case"mouseover":case"mouseout":st=null;break;case"pointerover":case"pointerout":ut.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ct.delete(t.pointerId)}}function mt(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e=pt(t,n,r,o,a),null!==t&&(null!==(t=no(t))&&tt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function gt(e){var t=to(e.target);if(null!==t){var n=Qe(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=Ye(n)))return e.blockedOn=t,void rt(e.lanePriority,(function(){a.unstable_runWithPriority(e.priority,(function(){nt(n)}))}))}else if(3===t&&n.stateNode.hydrate)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function vt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=no(n))&&tt(t),e.blockedOn=n,!1;t.shift()}return!0}function bt(e,t,n){vt(e)&&n.delete(t)}function yt(){for(ot=!1;0<at.length;){var e=at[0];if(null!==e.blockedOn){null!==(e=no(e.blockedOn))&&et(e);break}for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n){e.blockedOn=n;break}t.shift()}null===e.blockedOn&&at.shift()}null!==it&&vt(it)&&(it=null),null!==lt&&vt(lt)&&(lt=null),null!==st&&vt(st)&&(st=null),ut.forEach(bt),ct.forEach(bt)}function wt(e,t){e.blockedOn===t&&(e.blockedOn=null,ot||(ot=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,yt)))}function xt(e){function t(t){return wt(t,e)}if(0<at.length){wt(at[0],e);for(var n=1;n<at.length;n++){var r=at[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==it&&wt(it,e),null!==lt&&wt(lt,e),null!==st&&wt(st,e),ut.forEach(t),ct.forEach(t),n=0;n<dt.length;n++)(r=dt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<dt.length&&null===(n=dt[0]).blockedOn;)gt(n),null===n.blockedOn&&dt.shift()}function _t(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kt={animationend:_t("Animation","AnimationEnd"),animationiteration:_t("Animation","AnimationIteration"),animationstart:_t("Animation","AnimationStart"),transitionend:_t("Transition","TransitionEnd")},Et={},St={};function Ct(e){if(Et[e])return Et[e];if(!kt[e])return e;var t,n=kt[e];for(t in n)if(n.hasOwnProperty(t)&&t in St)return Et[e]=n[t];return e}d&&(St=document.createElement("div").style,"AnimationEvent"in window||(delete kt.animationend.animation,delete kt.animationiteration.animation,delete kt.animationstart.animation),"TransitionEvent"in window||delete kt.transitionend.transition);var Tt=Ct("animationend"),Ot=Ct("animationiteration"),Dt=Ct("animationstart"),Pt=Ct("transitionend"),Nt=new Map,It=new Map,At=["abort","abort",Tt,"animationEnd",Ot,"animationIteration",Dt,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing","playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Pt,"transitionEnd","waiting","waiting"];function Lt(e,t){for(var n=0;n<e.length;n+=2){var r=e[n],o=e[n+1];o="on"+(o[0].toUpperCase()+o.slice(1)),It.set(r,t),Nt.set(r,o),u(o,[r])}}(0,a.unstable_now)();var Rt=8;function jt(e){if(0!=(1&e))return Rt=15,1;if(0!=(2&e))return Rt=14,2;if(0!=(4&e))return Rt=13,4;var t=24&e;return 0!==t?(Rt=12,t):0!=(32&e)?(Rt=11,32):0!==(t=192&e)?(Rt=10,t):0!=(256&e)?(Rt=9,256):0!==(t=3584&e)?(Rt=8,t):0!=(4096&e)?(Rt=7,4096):0!==(t=4186112&e)?(Rt=6,t):0!==(t=62914560&e)?(Rt=5,t):67108864&e?(Rt=4,67108864):0!=(134217728&e)?(Rt=3,134217728):0!==(t=805306368&e)?(Rt=2,t):0!=(1073741824&e)?(Rt=1,1073741824):(Rt=8,e)}function Mt(e,t){var n=e.pendingLanes;if(0===n)return Rt=0;var r=0,o=0,a=e.expiredLanes,i=e.suspendedLanes,l=e.pingedLanes;if(0!==a)r=a,o=Rt=15;else if(0!==(a=134217727&n)){var s=a&~i;0!==s?(r=jt(s),o=Rt):0!==(l&=a)&&(r=jt(l),o=Rt)}else 0!==(a=n&~i)?(r=jt(a),o=Rt):0!==l&&(r=jt(l),o=Rt);if(0===r)return 0;if(r=n&((0>(r=31-Ht(r))?0:1<<r)<<1)-1,0!==t&&t!==r&&0==(t&i)){if(jt(t),o<=Rt)return t;Rt=o}if(0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-Ht(t)),r|=e[n],t&=~o;return r}function Ft(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function Bt(e,t){switch(e){case 15:return 1;case 14:return 2;case 12:return 0===(e=zt(24&~t))?Bt(10,t):e;case 10:return 0===(e=zt(192&~t))?Bt(8,t):e;case 8:return 0===(e=zt(3584&~t))&&(0===(e=zt(4186112&~t))&&(e=512)),e;case 2:return 0===(t=zt(805306368&~t))&&(t=268435456),t}throw Error(i(358,e))}function zt(e){return e&-e}function $t(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ut(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-Ht(t)]=n}var Ht=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Vt(e)/qt|0)|0},Vt=Math.log,qt=Math.LN2;var Wt=a.unstable_UserBlockingPriority,Gt=a.unstable_runWithPriority,Zt=!0;function Qt(e,t,n,r){je||Le();var o=Xt,a=je;je=!0;try{Ae(o,e,t,n,r)}finally{(je=a)||Fe()}}function Yt(e,t,n,r){Gt(Wt,Xt.bind(null,e,t,n,r))}function Xt(e,t,n,r){var o;if(Zt)if((o=0==(4&t))&&0<at.length&&-1<ft.indexOf(e))e=pt(null,e,t,n,r),at.push(e);else{var a=Kt(e,t,n,r);if(null===a)o&&ht(e,r);else{if(o){if(-1<ft.indexOf(e))return e=pt(a,e,t,n,r),void at.push(e);if(function(e,t,n,r,o){switch(t){case"focusin":return it=mt(it,e,t,n,r,o),!0;case"dragenter":return lt=mt(lt,e,t,n,r,o),!0;case"mouseover":return st=mt(st,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return ut.set(a,mt(ut.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,ct.set(a,mt(ct.get(a)||null,e,t,n,r,o)),!0}return!1}(a,e,t,n,r))return;ht(e,r)}Lr(e,t,r,null,n)}}}function Kt(e,t,n,r){var o=Se(r);if(null!==(o=to(o))){var a=Qe(o);if(null===a)o=null;else{var i=a.tag;if(13===i){if(null!==(o=Ye(a)))return o;o=null}else if(3===i){if(a.stateNode.hydrate)return 3===a.tag?a.stateNode.containerInfo:null;o=null}else a!==o&&(o=null)}}return Lr(e,t,r,o,n),null}var Jt=null,en=null,tn=null;function nn(){if(tn)return tn;var e,t,n=en,r=n.length,o="value"in Jt?Jt.value:Jt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return tn=o.slice(e,1<t?1-t:void 0)}function rn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function on(){return!0}function an(){return!1}function ln(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?on:an,this.isPropagationStopped=an,this}return o(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=on)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=on)},persist:function(){},isPersistent:on}),t}var sn,un,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},fn=ln(dn),pn=o({},dn,{view:0,detail:0}),hn=ln(pn),mn=o({},pn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,un=e.screenY-cn.screenY):un=sn=0,cn=e),sn)},movementY:function(e){return"movementY"in e?e.movementY:un}}),gn=ln(mn),vn=ln(o({},mn,{dataTransfer:0})),bn=ln(o({},pn,{relatedTarget:0})),yn=ln(o({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),wn=o({},dn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),xn=ln(wn),_n=ln(o({},dn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},En={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Cn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function Tn(){return Cn}var On=o({},pn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=rn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?En[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?rn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?rn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Dn=ln(On),Pn=ln(o({},mn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=ln(o({},pn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),In=ln(o({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),An=o({},mn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Ln=ln(An),Rn=[9,13,27,32],jn=d&&"CompositionEvent"in window,Mn=null;d&&"documentMode"in document&&(Mn=document.documentMode);var Fn=d&&"TextEvent"in window&&!Mn,Bn=d&&(!jn||Mn&&8<Mn&&11>=Mn),zn=String.fromCharCode(32),$n=!1;function Un(e,t){switch(e){case"keyup":return-1!==Rn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Hn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Gn(e,t,n,r){Pe(r),0<(t=jr(t,"onChange")).length&&(n=new fn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Zn=null,Qn=null;function Yn(e){Or(e,0)}function Xn(e){if(X(ro(e)))return e}function Kn(e,t){if("change"===e)return t}var Jn=!1;if(d){var er;if(d){var tr="oninput"in document;if(!tr){var nr=document.createElement("div");nr.setAttribute("oninput","return;"),tr="function"==typeof nr.oninput}er=tr}else er=!1;Jn=er&&(!document.documentMode||9<document.documentMode)}function rr(){Zn&&(Zn.detachEvent("onpropertychange",or),Qn=Zn=null)}function or(e){if("value"===e.propertyName&&Xn(Qn)){var t=[];if(Gn(t,Qn,e,Se(e)),e=Yn,je)e(t);else{je=!0;try{Ie(e,t)}finally{je=!1,Fe()}}}}function ar(e,t,n){"focusin"===e?(rr(),Qn=n,(Zn=t).attachEvent("onpropertychange",or)):"focusout"===e&&rr()}function ir(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Xn(Qn)}function lr(e,t){if("click"===e)return Xn(t)}function sr(e,t){if("input"===e||"change"===e)return Xn(t)}var ur="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},cr=Object.prototype.hasOwnProperty;function dr(e,t){if(ur(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++)if(!cr.call(t,n[r])||!ur(e[n[r]],t[n[r]]))return!1;return!0}function fr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function pr(e,t){var n,r=fr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=fr(r)}}function hr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function mr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var vr=d&&"documentMode"in document&&11>=document.documentMode,br=null,yr=null,wr=null,xr=!1;function _r(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;xr||null==br||br!==K(r)||("selectionStart"in(r=br)&&gr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},wr&&dr(wr,r)||(wr=r,0<(r=jr(yr,"onSelect")).length&&(t=new fn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=br)))}Lt("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),0),Lt("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1),Lt(At,2);for(var kr="change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),Er=0;Er<kr.length;Er++)It.set(kr[Er],0);c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),u("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),u("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),u("onBeforeInput",["compositionend","keypress","textInput","paste"]),u("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),u("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Sr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Cr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Sr));function Tr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,l,s,u){if(Ze.apply(this,arguments),He){if(!He)throw Error(i(198));var c=Ve;He=!1,Ve=null,qe||(qe=!0,We=c)}}(r,t,void 0,e),e.currentTarget=null}function Or(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var l=r[i],s=l.instance,u=l.currentTarget;if(l=l.listener,s!==a&&o.isPropagationStopped())break e;Tr(o,l,u),a=s}else for(i=0;i<r.length;i++){if(s=(l=r[i]).instance,u=l.currentTarget,l=l.listener,s!==a&&o.isPropagationStopped())break e;Tr(o,l,u),a=s}}}if(qe)throw e=We,qe=!1,We=null,e}function Dr(e,t){var n=ao(t),r=e+"__bubble";n.has(r)||(Ar(t,e,2,!1),n.add(r))}var Pr="_reactListening"+Math.random().toString(36).slice(2);function Nr(e){e[Pr]||(e[Pr]=!0,l.forEach((function(t){Cr.has(t)||Ir(t,!1,e,null),Ir(t,!0,e,null)})))}function Ir(e,t,n,r){var o=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,a=n;if("selectionchange"===e&&9!==n.nodeType&&(a=n.ownerDocument),null!==r&&!t&&Cr.has(e)){if("scroll"!==e)return;o|=2,a=r}var i=ao(a),l=e+"__"+(t?"capture":"bubble");i.has(l)||(t&&(o|=4),Ar(a,e,o,t),i.add(l))}function Ar(e,t,n,r){var o=It.get(t);switch(void 0===o?2:o){case 0:o=Qt;break;case 1:o=Yt;break;default:o=Xt}n=o.bind(null,t,n,e),o=void 0,!ze||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Lr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var s=i.tag;if((3===s||4===s)&&((s=i.stateNode.containerInfo)===o||8===s.nodeType&&s.parentNode===o))return;i=i.return}for(;null!==l;){if(null===(i=to(l)))return;if(5===(s=i.tag)||6===s){r=a=i;continue e}l=l.parentNode}}r=r.return}!function(e,t,n){if(Me)return e(t,n);Me=!0;try{return Re(e,t,n)}finally{Me=!1,Fe()}}((function(){var r=a,o=Se(n),i=[];e:{var l=Nt.get(e);if(void 0!==l){var s=fn,u=e;switch(e){case"keypress":if(0===rn(n))break e;case"keydown":case"keyup":s=Dn;break;case"focusin":u="focus",s=bn;break;case"focusout":u="blur",s=bn;break;case"beforeblur":case"afterblur":s=bn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=gn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=vn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=Nn;break;case Tt:case Ot:case Dt:s=yn;break;case Pt:s=In;break;case"scroll":s=hn;break;case"wheel":s=Ln;break;case"copy":case"cut":case"paste":s=xn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Pn}var c=0!=(4&t),d=!c&&"scroll"===e,f=c?null!==l?l+"Capture":null:l;c=[];for(var p,h=r;null!==h;){var m=(p=h).stateNode;if(5===p.tag&&null!==m&&(p=m,null!==f&&(null!=(m=Be(h,f))&&c.push(Rr(h,m,p)))),d)break;h=h.return}0<c.length&&(l=new s(l,u,null,n,o),i.push({event:l,listeners:c}))}}if(0==(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||0!=(16&t)||!(u=n.relatedTarget||n.fromElement)||!to(u)&&!u[Jr])&&(s||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(u=(u=n.relatedTarget||n.toElement)?to(u):null)&&(u!==(d=Qe(u))||5!==u.tag&&6!==u.tag)&&(u=null)):(s=null,u=r),s!==u)){if(c=gn,m="onMouseLeave",f="onMouseEnter",h="mouse","pointerout"!==e&&"pointerover"!==e||(c=Pn,m="onPointerLeave",f="onPointerEnter",h="pointer"),d=null==s?l:ro(s),p=null==u?l:ro(u),(l=new c(m,h+"leave",s,n,o)).target=d,l.relatedTarget=p,m=null,to(o)===r&&((c=new c(f,h+"enter",u,n,o)).target=p,c.relatedTarget=d,m=c),d=m,s&&u)e:{for(f=u,h=0,p=c=s;p;p=Mr(p))h++;for(p=0,m=f;m;m=Mr(m))p++;for(;0<h-p;)c=Mr(c),h--;for(;0<p-h;)f=Mr(f),p--;for(;h--;){if(c===f||null!==f&&c===f.alternate)break e;c=Mr(c),f=Mr(f)}c=null}else c=null;null!==s&&Fr(i,l,s,c,!1),null!==u&&null!==d&&Fr(i,d,u,c,!0)}if("select"===(s=(l=r?ro(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Kn;else if(Wn(l))if(Jn)g=sr;else{g=ir;var v=ar}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=lr);switch(g&&(g=g(e,r))?Gn(i,g,n,o):(v&&v(e,l,r),"focusout"===e&&(v=l._wrapperState)&&v.controlled&&"number"===l.type&&oe(l,"number",l.value)),v=r?ro(r):window,e){case"focusin":(Wn(v)||"true"===v.contentEditable)&&(br=v,yr=r,wr=null);break;case"focusout":wr=yr=br=null;break;case"mousedown":xr=!0;break;case"contextmenu":case"mouseup":case"dragend":xr=!1,_r(i,n,o);break;case"selectionchange":if(vr)break;case"keydown":case"keyup":_r(i,n,o)}var b;if(jn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?Un(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Bn&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(b=nn()):(en="value"in(Jt=o)?Jt.value:Jt.textContent,Vn=!0)),0<(v=jr(r,y)).length&&(y=new _n(y,e,null,n,o),i.push({event:y,listeners:v}),b?y.data=b:null!==(b=Hn(n))&&(y.data=b))),(b=Fn?function(e,t){switch(e){case"compositionend":return Hn(t);case"keypress":return 32!==t.which?null:($n=!0,zn);case"textInput":return(e=t.data)===zn&&$n?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!jn&&Un(e,t)?(e=nn(),tn=en=Jt=null,Vn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Bn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=jr(r,"onBeforeInput")).length&&(o=new _n("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=b))}Or(i,t)}))}function Rr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function jr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Be(e,n))&&r.unshift(Rr(e,a,o)),null!=(a=Be(e,t))&&r.push(Rr(e,a,o))),e=e.return}return r}function Mr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Fr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var l=n,s=l.alternate,u=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==u&&(l=u,o?null!=(s=Be(n,a))&&i.unshift(Rr(n,s,l)):o||null!=(s=Be(n,a))&&i.push(Rr(n,s,l))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}function Br(){}var zr=null,$r=null;function Ur(e,t){switch(e){case"button":case"input":case"select":case"textarea":return!!t.autoFocus}return!1}function Hr(e,t){return"textarea"===e||"option"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var Vr="function"==typeof setTimeout?setTimeout:void 0,qr="function"==typeof clearTimeout?clearTimeout:void 0;function Wr(e){1===e.nodeType?e.textContent="":9===e.nodeType&&(null!=(e=e.body)&&(e.textContent=""))}function Gr(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break}return e}function Zr(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var Qr=0;var Yr=Math.random().toString(36).slice(2),Xr="__reactFiber$"+Yr,Kr="__reactProps$"+Yr,Jr="__reactContainer$"+Yr,eo="__reactEvents$"+Yr;function to(e){var t=e[Xr];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Jr]||n[Xr]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=Zr(e);null!==e;){if(n=e[Xr])return n;e=Zr(e)}return t}n=(e=n).parentNode}return null}function no(e){return!(e=e[Xr]||e[Jr])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function ro(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function oo(e){return e[Kr]||null}function ao(e){var t=e[eo];return void 0===t&&(t=e[eo]=new Set),t}var io=[],lo=-1;function so(e){return{current:e}}function uo(e){0>lo||(e.current=io[lo],io[lo]=null,lo--)}function co(e,t){lo++,io[lo]=e.current,e.current=t}var fo={},po=so(fo),ho=so(!1),mo=fo;function go(e,t){var n=e.type.contextTypes;if(!n)return fo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function vo(e){return null!=(e=e.childContextTypes)}function bo(){uo(ho),uo(po)}function yo(e,t,n){if(po.current!==fo)throw Error(i(168));co(po,t),co(ho,n)}function wo(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in e))throw Error(i(108,G(t)||"Unknown",a));return o({},n,r)}function xo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||fo,mo=po.current,co(po,e),co(ho,ho.current),!0}function _o(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=wo(e,t,mo),r.__reactInternalMemoizedMergedChildContext=e,uo(ho),uo(po),co(po,e)):uo(ho),co(ho,n)}var ko=null,Eo=null,So=a.unstable_runWithPriority,Co=a.unstable_scheduleCallback,To=a.unstable_cancelCallback,Oo=a.unstable_shouldYield,Do=a.unstable_requestPaint,Po=a.unstable_now,No=a.unstable_getCurrentPriorityLevel,Io=a.unstable_ImmediatePriority,Ao=a.unstable_UserBlockingPriority,Lo=a.unstable_NormalPriority,Ro=a.unstable_LowPriority,jo=a.unstable_IdlePriority,Mo={},Fo=void 0!==Do?Do:function(){},Bo=null,zo=null,$o=!1,Uo=Po(),Ho=1e4>Uo?Po:function(){return Po()-Uo};function Vo(){switch(No()){case Io:return 99;case Ao:return 98;case Lo:return 97;case Ro:return 96;case jo:return 95;default:throw Error(i(332))}}function qo(e){switch(e){case 99:return Io;case 98:return Ao;case 97:return Lo;case 96:return Ro;case 95:return jo;default:throw Error(i(332))}}function Wo(e,t){return e=qo(e),So(e,t)}function Go(e,t,n){return e=qo(e),Co(e,t,n)}function Zo(){if(null!==zo){var e=zo;zo=null,To(e)}Qo()}function Qo(){if(!$o&&null!==Bo){$o=!0;var e=0;try{var t=Bo;Wo(99,(function(){for(;e<t.length;e++){var n=t[e];do{n=n(!0)}while(null!==n)}})),Bo=null}catch(n){throw null!==Bo&&(Bo=Bo.slice(e+1)),Co(Io,Zo),n}finally{$o=!1}}}var Yo=x.ReactCurrentBatchConfig;function Xo(e,t){if(e&&e.defaultProps){for(var n in t=o({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var Ko=so(null),Jo=null,ea=null,ta=null;function na(){ta=ea=Jo=null}function ra(e){var t=Ko.current;uo(Ko),e.type._context._currentValue=t}function oa(e,t){for(;null!==e;){var n=e.alternate;if((e.childLanes&t)===t){if(null===n||(n.childLanes&t)===t)break;n.childLanes|=t}else e.childLanes|=t,null!==n&&(n.childLanes|=t);e=e.return}}function aa(e,t){Jo=e,ta=ea=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ji=!0),e.firstContext=null)}function ia(e,t){if(ta!==e&&!1!==t&&0!==t)if("number"==typeof t&&1073741823!==t||(ta=e,t=1073741823),t={context:e,observedBits:t,next:null},null===ea){if(null===Jo)throw Error(i(308));ea=t,Jo.dependencies={lanes:0,firstContext:t,responders:null}}else ea=ea.next=t;return e._currentValue}var la=!1;function sa(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function ua(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ca(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function da(e,t){if(null!==(e=e.updateQueue)){var n=(e=e.shared).pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}}function fa(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function pa(e,t,n,r){var a=e.updateQueue;la=!1;var i=a.firstBaseUpdate,l=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var u=s,c=u.next;u.next=null,null===l?i=c:l.next=c,l=u;var d=e.alternate;if(null!==d){var f=(d=d.updateQueue).lastBaseUpdate;f!==l&&(null===f?d.firstBaseUpdate=c:f.next=c,d.lastBaseUpdate=u)}}if(null!==i){for(f=a.baseState,l=0,d=c=u=null;;){s=i.lane;var p=i.eventTime;if((r&s)===s){null!==d&&(d=d.next={eventTime:p,lane:0,tag:i.tag,payload:i.payload,callback:i.callback,next:null});e:{var h=e,m=i;switch(s=t,p=n,m.tag){case 1:if("function"==typeof(h=m.payload)){f=h.call(p,f,s);break e}f=h;break e;case 3:h.flags=-4097&h.flags|64;case 0:if(null==(s="function"==typeof(h=m.payload)?h.call(p,f,s):h))break e;f=o({},f,s);break e;case 2:la=!0}}null!==i.callback&&(e.flags|=32,null===(s=a.effects)?a.effects=[i]:s.push(i))}else p={eventTime:p,lane:s,tag:i.tag,payload:i.payload,callback:i.callback,next:null},null===d?(c=d=p,u=f):d=d.next=p,l|=s;if(null===(i=i.next)){if(null===(s=a.shared.pending))break;i=s.next,s.next=null,a.lastBaseUpdate=s,a.shared.pending=null}}null===d&&(u=f),a.baseState=u,a.firstBaseUpdate=c,a.lastBaseUpdate=d,$l|=l,e.lanes=l,e.memoizedState=f}}function ha(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(i(191,o));o.call(r)}}}var ma=(new r.Component).refs;function ga(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:o({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var va={isMounted:function(e){return!!(e=e._reactInternals)&&Qe(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=fs(),o=ps(e),a=ca(r,o);a.payload=t,null!=n&&(a.callback=n),da(e,a),hs(e,o,r)},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=fs(),o=ps(e),a=ca(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),da(e,a),hs(e,o,r)},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=fs(),r=ps(e),o=ca(n,r);o.tag=2,null!=t&&(o.callback=t),da(e,o),hs(e,r,n)}};function ba(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!dr(n,r)||!dr(o,a))}function ya(e,t,n){var r=!1,o=fo,a=t.contextType;return"object"==typeof a&&null!==a?a=ia(a):(o=vo(t)?mo:po.current,a=(r=null!=(r=t.contextTypes))?go(e,o):fo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=va,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function wa(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&va.enqueueReplaceState(t,t.state,null)}function xa(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=ma,sa(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=ia(a):(a=vo(t)?mo:po.current,o.context=go(e,a)),pa(e,n,o,r),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(ga(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&va.enqueueReplaceState(o,o.state,null),pa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4)}var _a=Array.isArray;function ka(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=r.refs;t===ma&&(t=r.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!=typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function Ea(e,t){if("textarea"!==e.type)throw Error(i(31,"[object Object]"===Object.prototype.toString.call(t)?"object with keys {"+Object.keys(t).join(", ")+"}":t))}function Sa(e){function t(t,n){if(e){var r=t.lastEffect;null!==r?(r.nextEffect=n,t.lastEffect=n):t.firstEffect=t.lastEffect=n,n.nextEffect=null,n.flags=8}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Ws(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags=2,n):r:(t.flags=2,n):n}function l(t){return e&&null===t.alternate&&(t.flags=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Ys(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function u(e,t,n,r){return null!==t&&t.elementType===n.type?((r=o(t,n.props)).ref=ka(e,t,n),r.return=e,r):((r=Gs(n.type,n.key,n.props,null,e.mode,r)).ref=ka(e,t,n),r.return=e,r)}function c(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Xs(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,a){return null===t||7!==t.tag?((t=Zs(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function f(e,t,n){if("string"==typeof t||"number"==typeof t)return(t=Ys(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case _:return(n=Gs(t.type,t.key,t.props,null,e.mode,n)).ref=ka(e,null,t),n.return=e,n;case k:return(t=Xs(t,e.mode,n)).return=e,t}if(_a(t)||U(t))return(t=Zs(t,e.mode,n,null)).return=e,t;Ea(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n||"number"==typeof n)return null!==o?null:s(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case _:return n.key===o?n.type===E?d(e,t,n.props.children,r,o):u(e,t,n,r):null;case k:return n.key===o?c(e,t,n,r):null}if(_a(n)||U(n))return null!==o?null:d(e,t,n,r,null);Ea(e,n)}return null}function h(e,t,n,r,o){if("string"==typeof r||"number"==typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case _:return e=e.get(null===r.key?n:r.key)||null,r.type===E?d(t,e,r.props.children,o,r.key):u(t,e,r,o);case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o)}if(_a(r)||U(r))return d(t,e=e.get(n)||null,r,o,null);Ea(t,r)}return null}function m(o,i,l,s){for(var u=null,c=null,d=i,m=i=0,g=null;null!==d&&m<l.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var v=p(o,d,l[m],s);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(o,d),i=a(v,i,m),null===c?u=v:c.sibling=v,c=v,d=g}if(m===l.length)return n(o,d),u;if(null===d){for(;m<l.length;m++)null!==(d=f(o,l[m],s))&&(i=a(d,i,m),null===c?u=d:c.sibling=d,c=d);return u}for(d=r(o,d);m<l.length;m++)null!==(g=h(d,o,m,l[m],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),i=a(g,i,m),null===c?u=g:c.sibling=g,c=g);return e&&d.forEach((function(e){return t(o,e)})),u}function g(o,l,s,u){var c=U(s);if("function"!=typeof c)throw Error(i(150));if(null==(s=c.call(s)))throw Error(i(151));for(var d=c=null,m=l,g=l=0,v=null,b=s.next();null!==m&&!b.done;g++,b=s.next()){m.index>g?(v=m,m=null):v=m.sibling;var y=p(o,m,b.value,u);if(null===y){null===m&&(m=v);break}e&&m&&null===y.alternate&&t(o,m),l=a(y,l,g),null===d?c=y:d.sibling=y,d=y,m=v}if(b.done)return n(o,m),c;if(null===m){for(;!b.done;g++,b=s.next())null!==(b=f(o,b.value,u))&&(l=a(b,l,g),null===d?c=b:d.sibling=b,d=b);return c}for(m=r(o,m);!b.done;g++,b=s.next())null!==(b=h(m,o,g,b.value,u))&&(e&&null!==b.alternate&&m.delete(null===b.key?g:b.key),l=a(b,l,g),null===d?c=b:d.sibling=b,d=b);return e&&m.forEach((function(e){return t(o,e)})),c}return function(e,r,a,s){var u="object"==typeof a&&null!==a&&a.type===E&&null===a.key;u&&(a=a.props.children);var c="object"==typeof a&&null!==a;if(c)switch(a.$$typeof){case _:e:{for(c=a.key,u=r;null!==u;){if(u.key===c){if(7===u.tag){if(a.type===E){n(e,u.sibling),(r=o(u,a.props.children)).return=e,e=r;break e}}else if(u.elementType===a.type){n(e,u.sibling),(r=o(u,a.props)).ref=ka(e,u,a),r.return=e,e=r;break e}n(e,u);break}t(e,u),u=u.sibling}a.type===E?((r=Zs(a.props.children,e.mode,s,a.key)).return=e,e=r):((s=Gs(a.type,a.key,a.props,null,e.mode,s)).ref=ka(e,r,a),s.return=e,e=s)}return l(e);case k:e:{for(u=a.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===a.containerInfo&&r.stateNode.implementation===a.implementation){n(e,r.sibling),(r=o(r,a.children||[])).return=e,e=r;break e}n(e,r);break}t(e,r),r=r.sibling}(r=Xs(a,e.mode,s)).return=e,e=r}return l(e)}if("string"==typeof a||"number"==typeof a)return a=""+a,null!==r&&6===r.tag?(n(e,r.sibling),(r=o(r,a)).return=e,e=r):(n(e,r),(r=Ys(a,e.mode,s)).return=e,e=r),l(e);if(_a(a))return m(e,r,a,s);if(U(a))return g(e,r,a,s);if(c&&Ea(e,a),void 0===a&&!u)switch(e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(i(152,G(e.type)||"Component"))}return n(e,r)}}var Ca=Sa(!0),Ta=Sa(!1),Oa={},Da=so(Oa),Pa=so(Oa),Na=so(Oa);function Ia(e){if(e===Oa)throw Error(i(174));return e}function Aa(e,t){switch(co(Na,t),co(Pa,e),co(Da,Oa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:pe(null,"");break;default:t=pe(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}uo(Da),co(Da,t)}function La(){uo(Da),uo(Pa),uo(Na)}function Ra(e){Ia(Na.current);var t=Ia(Da.current),n=pe(t,e.type);t!==n&&(co(Pa,e),co(Da,n))}function ja(e){Pa.current===e&&(uo(Da),uo(Pa))}var Ma=so(0);function Fa(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Ba=null,za=null,$a=!1;function Ua(e,t){var n=Vs(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function Ha(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,!0);default:return!1}}function Va(e){if($a){var t=za;if(t){var n=t;if(!Ha(e,t)){if(!(t=Gr(n.nextSibling))||!Ha(e,t))return e.flags=-1025&e.flags|2,$a=!1,void(Ba=e);Ua(Ba,n)}Ba=e,za=Gr(t.firstChild)}else e.flags=-1025&e.flags|2,$a=!1,Ba=e}}function qa(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Ba=e}function Wa(e){if(e!==Ba)return!1;if(!$a)return qa(e),$a=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!Hr(t,e.memoizedProps))for(t=za;t;)Ua(e,t),t=Gr(t.nextSibling);if(qa(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){za=Gr(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}za=null}}else za=Ba?Gr(e.stateNode.nextSibling):null;return!0}function Ga(){za=Ba=null,$a=!1}var Za=[];function Qa(){for(var e=0;e<Za.length;e++)Za[e]._workInProgressVersionPrimary=null;Za.length=0}var Ya=x.ReactCurrentDispatcher,Xa=x.ReactCurrentBatchConfig,Ka=0,Ja=null,ei=null,ti=null,ni=!1,ri=!1;function oi(){throw Error(i(321))}function ai(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!ur(e[n],t[n]))return!1;return!0}function ii(e,t,n,r,o,a){if(Ka=a,Ja=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Ya.current=null===e||null===e.memoizedState?Ii:Ai,e=n(r,o),ri){a=0;do{if(ri=!1,!(25>a))throw Error(i(301));a+=1,ti=ei=null,t.updateQueue=null,Ya.current=Li,e=n(r,o)}while(ri)}if(Ya.current=Ni,t=null!==ei&&null!==ei.next,Ka=0,ti=ei=Ja=null,ni=!1,t)throw Error(i(300));return e}function li(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ti?Ja.memoizedState=ti=e:ti=ti.next=e,ti}function si(){if(null===ei){var e=Ja.alternate;e=null!==e?e.memoizedState:null}else e=ei.next;var t=null===ti?Ja.memoizedState:ti.next;if(null!==t)ti=t,ei=e;else{if(null===e)throw Error(i(310));e={memoizedState:(ei=e).memoizedState,baseState:ei.baseState,baseQueue:ei.baseQueue,queue:ei.queue,next:null},null===ti?Ja.memoizedState=ti=e:ti=ti.next=e}return ti}function ui(e,t){return"function"==typeof t?t(e):t}function ci(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=ei,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var l=o.next;o.next=a.next,a.next=l}r.baseQueue=o=a,n.pending=null}if(null!==o){o=o.next,r=r.baseState;var s=l=a=null,u=o;do{var c=u.lane;if((Ka&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var d={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(l=s=d,a=r):s=s.next=d,Ja.lanes|=c,$l|=c}u=u.next}while(null!==u&&u!==o);null===s?a=r:s.next=l,ur(r,t.memoizedState)||(ji=!0),t.memoizedState=r,t.baseState=a,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function di(e){var t=si(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{a=e(a,l.action),l=l.next}while(l!==o);ur(a,t.memoizedState)||(ji=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function fi(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(null!==o?e=o===r:(e=e.mutableReadLanes,(e=(Ka&e)===e)&&(t._workInProgressVersionPrimary=r,Za.push(t))),e)return n(t._source);throw Za.push(t),Error(i(350))}function pi(e,t,n,r){var o=Al;if(null===o)throw Error(i(349));var a=t._getVersion,l=a(t._source),s=Ya.current,u=s.useState((function(){return fi(o,t,n)})),c=u[1],d=u[0];u=ti;var f=e.memoizedState,p=f.refs,h=p.getSnapshot,m=f.source;f=f.subscribe;var g=Ja;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=a(t._source);if(!ur(l,e)){e=n(t._source),ur(d,e)||(c(e),e=ps(g),o.mutableReadLanes|=e&o.pendingLanes),e=o.mutableReadLanes,o.entangledLanes|=e;for(var r=o.entanglements,i=e;0<i;){var s=31-Ht(i),u=1<<s;r[s]|=e,i&=~u}}}),[n,t,r]),s.useEffect((function(){return r(t._source,(function(){var e=p.getSnapshot,n=p.setSnapshot;try{n(e(t._source));var r=ps(g);o.mutableReadLanes|=r&o.pendingLanes}catch(a){n((function(){throw a}))}}))}),[t,r]),ur(h,n)&&ur(m,t)&&ur(f,r)||((e={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:d}).dispatch=c=Pi.bind(null,Ja,e),u.queue=e,u.baseQueue=null,d=fi(o,t,n),u.memoizedState=u.baseState=d),d}function hi(e,t,n){return pi(si(),e,t,n)}function mi(e){var t=li();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e=(e=t.queue={pending:null,dispatch:null,lastRenderedReducer:ui,lastRenderedState:e}).dispatch=Pi.bind(null,Ja,e),[t.memoizedState,e]}function gi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=Ja.updateQueue)?(t={lastEffect:null},Ja.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function vi(e){return e={current:e},li().memoizedState=e}function bi(){return si().memoizedState}function yi(e,t,n,r){var o=li();Ja.flags|=e,o.memoizedState=gi(1|t,n,void 0,void 0===r?null:r)}function wi(e,t,n,r){var o=si();r=void 0===r?null:r;var a=void 0;if(null!==ei){var i=ei.memoizedState;if(a=i.destroy,null!==r&&ai(r,i.deps))return void gi(t,n,a,r)}Ja.flags|=e,o.memoizedState=gi(1|t,n,a,r)}function xi(e,t){return yi(516,4,e,t)}function _i(e,t){return wi(516,4,e,t)}function ki(e,t){return wi(4,2,e,t)}function Ei(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Si(e,t,n){return n=null!=n?n.concat([e]):null,wi(4,2,Ei.bind(null,t,e),n)}function Ci(){}function Ti(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Oi(e,t){var n=si();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ai(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Di(e,t){var n=Vo();Wo(98>n?98:n,(function(){e(!0)})),Wo(97<n?97:n,(function(){var n=Xa.transition;Xa.transition=1;try{e(!1),t()}finally{Xa.transition=n}}))}function Pi(e,t,n){var r=fs(),o=ps(e),a={lane:o,action:n,eagerReducer:null,eagerState:null,next:null},i=t.pending;if(null===i?a.next=a:(a.next=i.next,i.next=a),t.pending=a,i=e.alternate,e===Ja||null!==i&&i===Ja)ri=ni=!0;else{if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var l=t.lastRenderedState,s=i(l,n);if(a.eagerReducer=i,a.eagerState=s,ur(s,l))return}catch(u){}hs(e,o,r)}}var Ni={readContext:ia,useCallback:oi,useContext:oi,useEffect:oi,useImperativeHandle:oi,useLayoutEffect:oi,useMemo:oi,useReducer:oi,useRef:oi,useState:oi,useDebugValue:oi,useDeferredValue:oi,useTransition:oi,useMutableSource:oi,useOpaqueIdentifier:oi,unstable_isNewReconciler:!1},Ii={readContext:ia,useCallback:function(e,t){return li().memoizedState=[e,void 0===t?null:t],e},useContext:ia,useEffect:xi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,yi(4,2,Ei.bind(null,t,e),n)},useLayoutEffect:function(e,t){return yi(4,2,e,t)},useMemo:function(e,t){var n=li();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=li();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e=(e=r.queue={pending:null,dispatch:null,lastRenderedReducer:e,lastRenderedState:t}).dispatch=Pi.bind(null,Ja,e),[r.memoizedState,e]},useRef:vi,useState:mi,useDebugValue:Ci,useDeferredValue:function(e){var t=mi(e),n=t[0],r=t[1];return xi((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=mi(!1),t=e[0];return vi(e=Di.bind(null,e[1])),[e,t]},useMutableSource:function(e,t,n){var r=li();return r.memoizedState={refs:{getSnapshot:t,setSnapshot:null},source:e,subscribe:n},pi(r,e,t,n)},useOpaqueIdentifier:function(){if($a){var e=!1,t=function(e){return{$$typeof:R,toString:e,valueOf:e}}((function(){throw e||(e=!0,n("r:"+(Qr++).toString(36))),Error(i(355))})),n=mi(t)[1];return 0==(2&Ja.mode)&&(Ja.flags|=516,gi(5,(function(){n("r:"+(Qr++).toString(36))}),void 0,null)),t}return mi(t="r:"+(Qr++).toString(36)),t},unstable_isNewReconciler:!1},Ai={readContext:ia,useCallback:Ti,useContext:ia,useEffect:_i,useImperativeHandle:Si,useLayoutEffect:ki,useMemo:Oi,useReducer:ci,useRef:bi,useState:function(){return ci(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=ci(ui),n=t[0],r=t[1];return _i((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=ci(ui)[0];return[bi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return ci(ui)[0]},unstable_isNewReconciler:!1},Li={readContext:ia,useCallback:Ti,useContext:ia,useEffect:_i,useImperativeHandle:Si,useLayoutEffect:ki,useMemo:Oi,useReducer:di,useRef:bi,useState:function(){return di(ui)},useDebugValue:Ci,useDeferredValue:function(e){var t=di(ui),n=t[0],r=t[1];return _i((function(){var t=Xa.transition;Xa.transition=1;try{r(e)}finally{Xa.transition=t}}),[e]),n},useTransition:function(){var e=di(ui)[0];return[bi().current,e]},useMutableSource:hi,useOpaqueIdentifier:function(){return di(ui)[0]},unstable_isNewReconciler:!1},Ri=x.ReactCurrentOwner,ji=!1;function Mi(e,t,n,r){t.child=null===e?Ta(t,null,n,r):Ca(t,e.child,n,r)}function Fi(e,t,n,r,o){n=n.render;var a=t.ref;return aa(t,o),r=ii(e,t,n,r,a,o),null===e||ji?(t.flags|=1,Mi(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Bi(e,t,n,r,o,a){if(null===e){var i=n.type;return"function"!=typeof i||qs(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Gs(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,zi(e,t,i,r,o,a))}return i=e.child,0==(o&a)&&(o=i.memoizedProps,(n=null!==(n=n.compare)?n:dr)(o,r)&&e.ref===t.ref)?al(e,t,a):(t.flags|=1,(e=Ws(i,r)).ref=t.ref,e.return=t,t.child=e)}function zi(e,t,n,r,o,a){if(null!==e&&dr(e.memoizedProps,r)&&e.ref===t.ref){if(ji=!1,0==(a&o))return t.lanes=e.lanes,al(e,t,a);0!=(16384&e.flags)&&(ji=!0)}return Hi(e,t,n,r,a)}function $i(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode||"unstable-defer-without-hiding"===r.mode)if(0==(4&t.mode))t.memoizedState={baseLanes:0},_s(t,n);else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e},_s(t,e),null;t.memoizedState={baseLanes:0},_s(t,null!==a?a.baseLanes:n)}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,_s(t,r);return Mi(e,t,o,n),t.child}function Ui(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=128)}function Hi(e,t,n,r,o){var a=vo(n)?mo:po.current;return a=go(t,a),aa(t,o),n=ii(e,t,n,r,a,o),null===e||ji?(t.flags|=1,Mi(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~o,al(e,t,o))}function Vi(e,t,n,r,o){if(vo(n)){var a=!0;xo(t)}else a=!1;if(aa(t,o),null===t.stateNode)null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),ya(t,n,r),xa(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,l=t.memoizedProps;i.props=l;var s=i.context,u=n.contextType;"object"==typeof u&&null!==u?u=ia(u):u=go(t,u=vo(n)?mo:po.current);var c=n.getDerivedStateFromProps,d="function"==typeof c||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==r||s!==u)&&wa(t,i,r,u),la=!1;var f=t.memoizedState;i.state=f,pa(t,r,i,o),s=t.memoizedState,l!==r||f!==s||ho.current||la?("function"==typeof c&&(ga(t,n,c,r),s=t.memoizedState),(l=la||ba(t,n,l,r,f,s,u))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4)):("function"==typeof i.componentDidMount&&(t.flags|=4),t.memoizedProps=r,t.memoizedState=s),i.props=r,i.state=s,i.context=u,r=l):("function"==typeof i.componentDidMount&&(t.flags|=4),r=!1)}else{i=t.stateNode,ua(e,t),l=t.memoizedProps,u=t.type===t.elementType?l:Xo(t.type,l),i.props=u,d=t.pendingProps,f=i.context,"object"==typeof(s=n.contextType)&&null!==s?s=ia(s):s=go(t,s=vo(n)?mo:po.current);var p=n.getDerivedStateFromProps;(c="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(l!==d||f!==s)&&wa(t,i,r,s),la=!1,f=t.memoizedState,i.state=f,pa(t,r,i,o);var h=t.memoizedState;l!==d||f!==h||ho.current||la?("function"==typeof p&&(ga(t,n,p,r),h=t.memoizedState),(u=la||ba(t,n,u,r,f,h,s))?(c||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,h,s),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,h,s)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=256)):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),t.memoizedProps=r,t.memoizedState=h),i.props=r,i.state=h,i.context=s,r=u):("function"!=typeof i.componentDidUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||l===e.memoizedProps&&f===e.memoizedState||(t.flags|=256),r=!1)}return qi(e,t,n,r,a,o)}function qi(e,t,n,r,o,a){Ui(e,t);var i=0!=(64&t.flags);if(!r&&!i)return o&&_o(t,n,!1),al(e,t,a);r=t.stateNode,Ri.current=t;var l=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ca(t,e.child,null,a),t.child=Ca(t,null,l,a)):Mi(e,t,l,a),t.memoizedState=r.state,o&&_o(t,n,!0),t.child}function Wi(e){var t=e.stateNode;t.pendingContext?yo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&yo(0,t.context,!1),Aa(e,t.containerInfo)}var Gi,Zi,Qi,Yi,Xi={dehydrated:null,retryLane:0};function Ki(e,t,n){var r,o=t.pendingProps,a=Ma.current,i=!1;return(r=0!=(64&t.flags))||(r=(null===e||null!==e.memoizedState)&&0!=(2&a)),r?(i=!0,t.flags&=-65):null!==e&&null===e.memoizedState||void 0===o.fallback||!0===o.unstable_avoidThisFallback||(a|=1),co(Ma,1&a),null===e?(void 0!==o.fallback&&Va(t),e=o.children,a=o.fallback,i?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,e):"number"==typeof o.unstable_expectedLoadTime?(e=Ji(t,e,a,n),t.child.memoizedState={baseLanes:n},t.memoizedState=Xi,t.lanes=33554432,e):((n=Qs({mode:"visible",children:e},t.mode,n,null)).return=t,t.child=n)):(e.memoizedState,i?(o=tl(e,t,o.children,o.fallback,n),i=t.child,a=e.child.memoizedState,i.memoizedState=null===a?{baseLanes:n}:{baseLanes:a.baseLanes|n},i.childLanes=e.childLanes&~n,t.memoizedState=Xi,o):(n=el(e,t,o.children,n),t.memoizedState=null,n))}function Ji(e,t,n,r){var o=e.mode,a=e.child;return t={mode:"hidden",children:t},0==(2&o)&&null!==a?(a.childLanes=0,a.pendingProps=t):a=Qs(t,o,0,null),n=Zs(n,o,r,null),a.return=e,n.return=e,a.sibling=n,e.child=a,n}function el(e,t,n,r){var o=e.child;return e=o.sibling,n=Ws(o,{mode:"visible",children:n}),0==(2&t.mode)&&(n.lanes=r),n.return=t,n.sibling=null,null!==e&&(e.nextEffect=null,e.flags=8,t.firstEffect=t.lastEffect=e),t.child=n}function tl(e,t,n,r,o){var a=t.mode,i=e.child;e=i.sibling;var l={mode:"hidden",children:n};return 0==(2&a)&&t.child!==i?((n=t.child).childLanes=0,n.pendingProps=l,null!==(i=n.lastEffect)?(t.firstEffect=n.firstEffect,t.lastEffect=i,i.nextEffect=null):t.firstEffect=t.lastEffect=null):n=Ws(i,l),null!==e?r=Ws(e,r):(r=Zs(r,a,o,null)).flags|=2,r.return=t,n.return=t,n.sibling=r,t.child=n,r}function nl(e,t){e.lanes|=t;var n=e.alternate;null!==n&&(n.lanes|=t),oa(e.return,t)}function rl(e,t,n,r,o,a){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o,lastEffect:a}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o,i.lastEffect=a)}function ol(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Mi(e,t,r.children,n),0!=(2&(r=Ma.current)))r=1&r|2,t.flags|=64;else{if(null!==e&&0!=(64&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&nl(e,n);else if(19===e.tag)nl(e,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(co(Ma,r),0==(2&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===Fa(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),rl(t,!1,o,n,a,t.lastEffect);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===Fa(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}rl(t,!0,n,null,a,t.lastEffect);break;case"together":rl(t,!1,null,null,void 0,t.lastEffect);break;default:t.memoizedState=null}return t.child}function al(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),$l|=t.lanes,0!=(n&t.childLanes)){if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Ws(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Ws(e,e.pendingProps)).return=t;n.sibling=null}return t.child}return null}function il(e,t){if(!$a)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function ll(e,t,n){var r=t.pendingProps;switch(t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:case 17:return vo(t.type)&&bo(),null;case 3:return La(),uo(ho),uo(po),Qa(),(r=t.stateNode).pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(Wa(t)?t.flags|=4:r.hydrate||(t.flags|=256)),Zi(t),null;case 5:ja(t);var a=Ia(Na.current);if(n=t.type,null!==e&&null!=t.stateNode)Qi(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=128);else{if(!r){if(null===t.stateNode)throw Error(i(166));return null}if(e=Ia(Da.current),Wa(t)){r=t.stateNode,n=t.type;var l=t.memoizedProps;switch(r[Xr]=t,r[Kr]=l,n){case"dialog":Dr("cancel",r),Dr("close",r);break;case"iframe":case"object":case"embed":Dr("load",r);break;case"video":case"audio":for(e=0;e<Sr.length;e++)Dr(Sr[e],r);break;case"source":Dr("error",r);break;case"img":case"image":case"link":Dr("error",r),Dr("load",r);break;case"details":Dr("toggle",r);break;case"input":ee(r,l),Dr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!l.multiple},Dr("invalid",r);break;case"textarea":se(r,l),Dr("invalid",r)}for(var u in ke(n,l),e=null,l)l.hasOwnProperty(u)&&(a=l[u],"children"===u?"string"==typeof a?r.textContent!==a&&(e=["children",a]):"number"==typeof a&&r.textContent!==""+a&&(e=["children",""+a]):s.hasOwnProperty(u)&&null!=a&&"onScroll"===u&&Dr("scroll",r));switch(n){case"input":Y(r),re(r,l,!0);break;case"textarea":Y(r),ce(r);break;case"select":case"option":break;default:"function"==typeof l.onClick&&(r.onclick=Br)}r=e,t.updateQueue=r,null!==r&&(t.flags|=4)}else{switch(u=9===a.nodeType?a:a.ownerDocument,e===de.html&&(e=fe(n)),e===de.html?"script"===n?((e=u.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),"select"===n&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[Xr]=t,e[Kr]=r,Gi(e,t,!1,!1),t.stateNode=e,u=Ee(n,r),n){case"dialog":Dr("cancel",e),Dr("close",e),a=r;break;case"iframe":case"object":case"embed":Dr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Sr.length;a++)Dr(Sr[a],e);a=r;break;case"source":Dr("error",e),a=r;break;case"img":case"image":case"link":Dr("error",e),Dr("load",e),a=r;break;case"details":Dr("toggle",e),a=r;break;case"input":ee(e,r),a=J(e,r),Dr("invalid",e);break;case"option":a=ae(e,r);break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=o({},r,{value:void 0}),Dr("invalid",e);break;case"textarea":se(e,r),a=le(e,r),Dr("invalid",e);break;default:a=r}ke(n,a);var c=a;for(l in c)if(c.hasOwnProperty(l)){var d=c[l];"style"===l?xe(e,d):"dangerouslySetInnerHTML"===l?null!=(d=d?d.__html:void 0)&&ge(e,d):"children"===l?"string"==typeof d?("textarea"!==n||""!==d)&&ve(e,d):"number"==typeof d&&ve(e,""+d):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(s.hasOwnProperty(l)?null!=d&&"onScroll"===l&&Dr("scroll",e):null!=d&&w(e,l,d,u))}switch(n){case"input":Y(e),re(e,r,!1);break;case"textarea":Y(e),ce(e);break;case"option":null!=r.value&&e.setAttribute("value",""+Z(r.value));break;case"select":e.multiple=!!r.multiple,null!=(l=r.value)?ie(e,!!r.multiple,l,!1):null!=r.defaultValue&&ie(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Br)}Ur(n,r)&&(t.flags|=4)}null!==t.ref&&(t.flags|=128)}return null;case 6:if(e&&null!=t.stateNode)Yi(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(i(166));n=Ia(Na.current),Ia(Da.current),Wa(t)?(r=t.stateNode,n=t.memoizedProps,r[Xr]=t,r.nodeValue!==n&&(t.flags|=4)):((r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[Xr]=t,t.stateNode=r)}return null;case 13:return uo(Ma),r=t.memoizedState,0!=(64&t.flags)?(t.lanes=n,t):(r=null!==r,n=!1,null===e?void 0!==t.memoizedProps.fallback&&Wa(t):n=null!==e.memoizedState,r&&!n&&0!=(2&t.mode)&&(null===e&&!0!==t.memoizedProps.unstable_avoidThisFallback||0!=(1&Ma.current)?0===Fl&&(Fl=3):(0!==Fl&&3!==Fl||(Fl=4),null===Al||0==(134217727&$l)&&0==(134217727&Ul)||bs(Al,Rl))),(r||n)&&(t.flags|=4),null);case 4:return La(),Zi(t),null===e&&Nr(t.stateNode.containerInfo),null;case 10:return ra(t),null;case 19:if(uo(Ma),null===(r=t.memoizedState))return null;if(l=0!=(64&t.flags),null===(u=r.rendering))if(l)il(r,!1);else{if(0!==Fl||null!==e&&0!=(64&e.flags))for(e=t.child;null!==e;){if(null!==(u=Fa(e))){for(t.flags|=64,il(r,!1),null!==(l=u.updateQueue)&&(t.updateQueue=l,t.flags|=4),null===r.lastEffect&&(t.firstEffect=null),t.lastEffect=r.lastEffect,r=n,n=t.child;null!==n;)e=r,(l=n).flags&=2,l.nextEffect=null,l.firstEffect=null,l.lastEffect=null,null===(u=l.alternate)?(l.childLanes=0,l.lanes=e,l.child=null,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=u.childLanes,l.lanes=u.lanes,l.child=u.child,l.memoizedProps=u.memoizedProps,l.memoizedState=u.memoizedState,l.updateQueue=u.updateQueue,l.type=u.type,e=u.dependencies,l.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return co(Ma,1&Ma.current|2),t.child}e=e.sibling}null!==r.tail&&Ho()>Wl&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432)}else{if(!l)if(null!==(e=Fa(u))){if(t.flags|=64,l=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),il(r,!0),null===r.tail&&"hidden"===r.tailMode&&!u.alternate&&!$a)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Ho()-r.renderingStartTime>Wl&&1073741824!==n&&(t.flags|=64,l=!0,il(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(null!==(n=r.last)?n.sibling=u:t.child=u,r.last=u)}return null!==r.tail?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Ho(),n.sibling=null,t=Ma.current,co(Ma,l?1&t|2:1&t),n):null;case 23:case 24:return ks(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(i(156,t.tag))}function sl(e){switch(e.tag){case 1:vo(e.type)&&bo();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(La(),uo(ho),uo(po),Qa(),0!=(64&(t=e.flags)))throw Error(i(285));return e.flags=-4097&t|64,e;case 5:return ja(e),null;case 13:return uo(Ma),4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return uo(Ma),null;case 4:return La(),null;case 10:return ra(e),null;case 23:case 24:return ks(),null;default:return null}}function ul(e,t){try{var n="",r=t;do{n+=W(r),r=r.return}while(r);var o=n}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:t,stack:o}}function cl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}Gi=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Zi=function(){},Qi=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ia(Da.current);var i,l=null;switch(n){case"input":a=J(e,a),r=J(e,r),l=[];break;case"option":a=ae(e,a),r=ae(e,r),l=[];break;case"select":a=o({},a,{value:void 0}),r=o({},r,{value:void 0}),l=[];break;case"textarea":a=le(e,a),r=le(e,r),l=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Br)}for(d in ke(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var u=a[d];for(i in u)u.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?l||(l=[]):(l=l||[]).push(d,null));for(d in r){var c=r[d];if(u=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&c!==u&&(null!=c||null!=u))if("style"===d)if(u){for(i in u)!u.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&u[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(l||(l=[]),l.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,u=u?u.__html:void 0,null!=c&&u!==c&&(l=l||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(l=l||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Dr("scroll",e),l||u===c||(l=[])):"object"==typeof c&&null!==c&&c.$$typeof===R?c.toString():(l=l||[]).push(d,c))}n&&(l=l||[]).push("style",n);var d=l;(t.updateQueue=d)&&(t.flags|=4)}},Yi=function(e,t,n,r){n!==r&&(t.flags|=4)};var dl="function"==typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=ca(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Yl||(Yl=!0,Xl=r),cl(0,t)},n}function pl(e,t,n){(n=ca(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return cl(0,t),r(o)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Kl?Kl=new Set([this]):Kl.add(this),cl(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var hl="function"==typeof WeakSet?WeakSet:Set;function ml(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(n){zs(e,n)}else t.current=null}function gl(e,t){switch(t.tag){case 0:case 11:case 15:case 22:case 5:case 6:case 4:case 17:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:Xo(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(256&t.flags&&Wr(t.stateNode.containerInfo))}throw Error(i(163))}function vl(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var o=e;r=o.next,0!=(4&(o=o.tag))&&0!=(1&o)&&(Ms(n,e),js(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Xo(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&ha(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:case 1:e=n.child.stateNode}ha(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&Ur(n.type,n.memoizedProps)&&e.focus());case 6:case 4:case 12:case 19:case 17:case 20:case 21:case 23:case 24:return;case 13:return void(null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&xt(n)))))}throw Error(i(163))}function bl(e,t){for(var n=e;;){if(5===n.tag){var r=n.stateNode;if(t)"function"==typeof(r=r.style).setProperty?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=null!=o&&o.hasOwnProperty("display")?o.display:null,r.style.display=we("display",o)}}else if(6===n.tag)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function yl(e,t){if(Eo&&"function"==typeof Eo.onCommitFiberUnmount)try{Eo.onCommitFiberUnmount(ko,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,void 0!==o)if(0!=(4&r))Ms(t,n);else{r=t;try{o()}catch(a){zs(r,a)}}n=n.next}while(n!==e)}break;case 1:if(ml(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){zs(t,a)}break;case 5:ml(t);break;case 4:Sl(e,t)}}function wl(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function xl(e){return 5===e.tag||3===e.tag||4===e.tag}function _l(e){e:{for(var t=e.return;null!==t;){if(xl(t))break e;t=t.return}throw Error(i(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(i(161))}16&n.flags&&(ve(t,""),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||xl(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?kl(e,n,t):El(e,n,t)}function kl(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Br));else if(4!==r&&null!==(e=e.child))for(kl(e,t,n),e=e.sibling;null!==e;)kl(e,t,n),e=e.sibling}function El(e,t,n){var r=e.tag,o=5===r||6===r;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(El(e,t,n),e=e.sibling;null!==e;)El(e,t,n),e=e.sibling}function Sl(e,t){for(var n,r,o=t,a=!1;;){if(!a){a=o.return;e:for(;;){if(null===a)throw Error(i(160));switch(n=a.stateNode,a.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}a=a.return}a=!0}if(5===o.tag||6===o.tag){e:for(var l=e,s=o,u=s;;)if(yl(l,u),null!==u.child&&4!==u.tag)u.child.return=u,u=u.child;else{if(u===s)break e;for(;null===u.sibling;){if(null===u.return||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}r?(l=n,s=o.stateNode,8===l.nodeType?l.parentNode.removeChild(s):l.removeChild(s)):n.removeChild(o.stateNode)}else if(4===o.tag){if(null!==o.child){n=o.stateNode.containerInfo,r=!0,o.child.return=o,o=o.child;continue}}else if(yl(e,o),null!==o.child){o.child.return=o,o=o.child;continue}if(o===t)break;for(;null===o.sibling;){if(null===o.return||o.return===t)return;4===(o=o.return).tag&&(a=!1)}o.sibling.return=o.return,o=o.sibling}}function Cl(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(null!==(n=null!==n?n.lastEffect:null)){var r=n=n.next;do{3==(3&r.tag)&&(e=r.destroy,r.destroy=void 0,void 0!==e&&e()),r=r.next}while(r!==n)}return;case 1:case 12:case 17:return;case 5:if(null!=(n=t.stateNode)){r=t.memoizedProps;var o=null!==e?e.memoizedProps:r;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,null!==a){for(n[Kr]=r,"input"===e&&"radio"===r.type&&null!=r.name&&te(n,r),Ee(e,o),t=Ee(e,r),o=0;o<a.length;o+=2){var l=a[o],s=a[o+1];"style"===l?xe(n,s):"dangerouslySetInnerHTML"===l?ge(n,s):"children"===l?ve(n,s):w(n,l,s,t)}switch(e){case"input":ne(n,r);break;case"textarea":ue(n,r);break;case"select":e=n._wrapperState.wasMultiple,n._wrapperState.wasMultiple=!!r.multiple,null!=(a=r.value)?ie(n,!!r.multiple,a,!1):e!==!!r.multiple&&(null!=r.defaultValue?ie(n,!!r.multiple,r.defaultValue,!0):ie(n,!!r.multiple,r.multiple?[]:"",!1))}}}return;case 6:if(null===t.stateNode)throw Error(i(162));return void(t.stateNode.nodeValue=t.memoizedProps);case 3:return void((n=t.stateNode).hydrate&&(n.hydrate=!1,xt(n.containerInfo)));case 13:return null!==t.memoizedState&&(ql=Ho(),bl(t.child,!0)),void Tl(t);case 19:return void Tl(t);case 23:case 24:return void bl(t,null!==t.memoizedState)}throw Error(i(163))}function Tl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new hl),t.forEach((function(t){var r=Us.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ol(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Dl=Math.ceil,Pl=x.ReactCurrentDispatcher,Nl=x.ReactCurrentOwner,Il=0,Al=null,Ll=null,Rl=0,jl=0,Ml=so(0),Fl=0,Bl=null,zl=0,$l=0,Ul=0,Hl=0,Vl=null,ql=0,Wl=1/0;function Gl(){Wl=Ho()+500}var Zl,Ql=null,Yl=!1,Xl=null,Kl=null,Jl=!1,es=null,ts=90,ns=[],rs=[],os=null,as=0,is=null,ls=-1,ss=0,us=0,cs=null,ds=!1;function fs(){return 0!=(48&Il)?Ho():-1!==ls?ls:ls=Ho()}function ps(e){if(0==(2&(e=e.mode)))return 1;if(0==(4&e))return 99===Vo()?1:2;if(0===ss&&(ss=zl),0!==Yo.transition){0!==us&&(us=null!==Vl?Vl.pendingLanes:0),e=ss;var t=4186112&~us;return 0===(t&=-t)&&(0===(t=(e=4186112&~e)&-e)&&(t=8192)),t}return e=Vo(),0!=(4&Il)&&98===e?e=Bt(12,ss):e=Bt(e=function(e){switch(e){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}(e),ss),e}function hs(e,t,n){if(50<as)throw as=0,is=null,Error(i(185));if(null===(e=ms(e,t)))return null;Ut(e,t,n),e===Al&&(Ul|=t,4===Fl&&bs(e,Rl));var r=Vo();1===t?0!=(8&Il)&&0==(48&Il)?ys(e):(gs(e,n),0===Il&&(Gl(),Zo())):(0==(4&Il)||98!==r&&99!==r||(null===os?os=new Set([e]):os.add(e)),gs(e,n)),Vl=e}function ms(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}function gs(e,t){for(var n=e.callbackNode,r=e.suspendedLanes,o=e.pingedLanes,a=e.expirationTimes,l=e.pendingLanes;0<l;){var s=31-Ht(l),u=1<<s,c=a[s];if(-1===c){if(0==(u&r)||0!=(u&o)){c=t,jt(u);var d=Rt;a[s]=10<=d?c+250:6<=d?c+5e3:-1}}else c<=t&&(e.expiredLanes|=u);l&=~u}if(r=Mt(e,e===Al?Rl:0),t=Rt,0===r)null!==n&&(n!==Mo&&To(n),e.callbackNode=null,e.callbackPriority=0);else{if(null!==n){if(e.callbackPriority===t)return;n!==Mo&&To(n)}15===t?(n=ys.bind(null,e),null===Bo?(Bo=[n],zo=Co(Io,Qo)):Bo.push(n),n=Mo):14===t?n=Go(99,ys.bind(null,e)):(n=function(e){switch(e){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(i(358,e))}}(t),n=Go(n,vs.bind(null,e))),e.callbackPriority=t,e.callbackNode=n}}function vs(e){if(ls=-1,us=ss=0,0!=(48&Il))throw Error(i(327));var t=e.callbackNode;if(Rs()&&e.callbackNode!==t)return null;var n=Mt(e,e===Al?Rl:0);if(0===n)return null;var r=n,o=Il;Il|=16;var a=Cs();for(Al===e&&Rl===r||(Gl(),Es(e,r));;)try{Ds();break}catch(s){Ss(e,s)}if(na(),Pl.current=a,Il=o,null!==Ll?r=0:(Al=null,Rl=0,r=Fl),0!=(zl&Ul))Es(e,0);else if(0!==r){if(2===r&&(Il|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(n=Ft(e))&&(r=Ts(e,n))),1===r)throw t=Bl,Es(e,0),bs(e,n),gs(e,Ho()),t;switch(e.finishedWork=e.current.alternate,e.finishedLanes=n,r){case 0:case 1:throw Error(i(345));case 2:case 5:Is(e);break;case 3:if(bs(e,n),(62914560&n)===n&&10<(r=ql+500-Ho())){if(0!==Mt(e,0))break;if(((o=e.suspendedLanes)&n)!==n){fs(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=Vr(Is.bind(null,e),r);break}Is(e);break;case 4:if(bs(e,n),(4186112&n)===n)break;for(r=e.eventTimes,o=-1;0<n;){var l=31-Ht(n);a=1<<l,(l=r[l])>o&&(o=l),n&=~a}if(n=o,10<(n=(120>(n=Ho()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Dl(n/1960))-n)){e.timeoutHandle=Vr(Is.bind(null,e),n);break}Is(e);break;default:throw Error(i(329))}}return gs(e,Ho()),e.callbackNode===t?vs.bind(null,e):null}function bs(e,t){for(t&=~Hl,t&=~Ul,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-Ht(t),r=1<<n;e[n]=-1,t&=~r}}function ys(e){if(0!=(48&Il))throw Error(i(327));if(Rs(),e===Al&&0!=(e.expiredLanes&Rl)){var t=Rl,n=Ts(e,t);0!=(zl&Ul)&&(n=Ts(e,t=Mt(e,t)))}else n=Ts(e,t=Mt(e,0));if(0!==e.tag&&2===n&&(Il|=64,e.hydrate&&(e.hydrate=!1,Wr(e.containerInfo)),0!==(t=Ft(e))&&(n=Ts(e,t))),1===n)throw n=Bl,Es(e,0),bs(e,t),gs(e,Ho()),n;return e.finishedWork=e.current.alternate,e.finishedLanes=t,Is(e),gs(e,Ho()),null}function ws(e,t){var n=Il;Il|=1;try{return e(t)}finally{0===(Il=n)&&(Gl(),Zo())}}function xs(e,t){var n=Il;Il&=-2,Il|=8;try{return e(t)}finally{0===(Il=n)&&(Gl(),Zo())}}function _s(e,t){co(Ml,jl),jl|=t,zl|=t}function ks(){jl=Ml.current,uo(Ml)}function Es(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,qr(n)),null!==Ll)for(n=Ll.return;null!==n;){var r=n;switch(r.tag){case 1:null!=(r=r.type.childContextTypes)&&bo();break;case 3:La(),uo(ho),uo(po),Qa();break;case 5:ja(r);break;case 4:La();break;case 13:case 19:uo(Ma);break;case 10:ra(r);break;case 23:case 24:ks()}n=n.return}Al=e,Ll=Ws(e.current,null),Rl=jl=zl=t,Fl=0,Bl=null,Hl=Ul=$l=0}function Ss(e,t){for(;;){var n=Ll;try{if(na(),Ya.current=Ni,ni){for(var r=Ja.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ni=!1}if(Ka=0,ti=ei=Ja=null,ri=!1,Nl.current=null,null===n||null===n.return){Fl=1,Bl=t,Ll=null;break}e:{var a=e,i=n.return,l=n,s=t;if(t=Rl,l.flags|=2048,l.firstEffect=l.lastEffect=null,null!==s&&"object"==typeof s&&"function"==typeof s.then){var u=s;if(0==(2&l.mode)){var c=l.alternate;c?(l.updateQueue=c.updateQueue,l.memoizedState=c.memoizedState,l.lanes=c.lanes):(l.updateQueue=null,l.memoizedState=null)}var d=0!=(1&Ma.current),f=i;do{var p;if(p=13===f.tag){var h=f.memoizedState;if(null!==h)p=null!==h.dehydrated;else{var m=f.memoizedProps;p=void 0!==m.fallback&&(!0!==m.unstable_avoidThisFallback||!d)}}if(p){var g=f.updateQueue;if(null===g){var v=new Set;v.add(u),f.updateQueue=v}else g.add(u);if(0==(2&f.mode)){if(f.flags|=64,l.flags|=16384,l.flags&=-2981,1===l.tag)if(null===l.alternate)l.tag=17;else{var b=ca(-1,1);b.tag=2,da(l,b)}l.lanes|=1;break e}s=void 0,l=t;var y=a.pingCache;if(null===y?(y=a.pingCache=new dl,s=new Set,y.set(u,s)):void 0===(s=y.get(u))&&(s=new Set,y.set(u,s)),!s.has(l)){s.add(l);var w=$s.bind(null,a,u,l);u.then(w,w)}f.flags|=4096,f.lanes=t;break e}f=f.return}while(null!==f);s=Error((G(l.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==Fl&&(Fl=2),s=ul(s,l),f=i;do{switch(f.tag){case 3:a=s,f.flags|=4096,t&=-t,f.lanes|=t,fa(f,fl(0,a,t));break e;case 1:a=s;var x=f.type,_=f.stateNode;if(0==(64&f.flags)&&("function"==typeof x.getDerivedStateFromError||null!==_&&"function"==typeof _.componentDidCatch&&(null===Kl||!Kl.has(_)))){f.flags|=4096,t&=-t,f.lanes|=t,fa(f,pl(f,a,t));break e}}f=f.return}while(null!==f)}Ns(n)}catch(k){t=k,Ll===n&&null!==n&&(Ll=n=n.return);continue}break}}function Cs(){var e=Pl.current;return Pl.current=Ni,null===e?Ni:e}function Ts(e,t){var n=Il;Il|=16;var r=Cs();for(Al===e&&Rl===t||Es(e,t);;)try{Os();break}catch(o){Ss(e,o)}if(na(),Il=n,Pl.current=r,null!==Ll)throw Error(i(261));return Al=null,Rl=0,Fl}function Os(){for(;null!==Ll;)Ps(Ll)}function Ds(){for(;null!==Ll&&!Oo();)Ps(Ll)}function Ps(e){var t=Zl(e.alternate,e,jl);e.memoizedProps=e.pendingProps,null===t?Ns(e):Ll=t,Nl.current=null}function Ns(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=ll(n,t,jl)))return void(Ll=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&jl)||0==(4&n.mode)){for(var r=0,o=n.child;null!==o;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1<t.flags&&(null!==e.lastEffect?e.lastEffect.nextEffect=t:e.firstEffect=t,e.lastEffect=t))}else{if(null!==(n=sl(t)))return n.flags&=2047,void(Ll=n);null!==e&&(e.firstEffect=e.lastEffect=null,e.flags|=2048)}if(null!==(t=t.sibling))return void(Ll=t);Ll=t=e}while(null!==t);0===Fl&&(Fl=5)}function Is(e){var t=Vo();return Wo(99,As.bind(null,e,t)),null}function As(e,t){do{Rs()}while(null!==es);if(0!=(48&Il))throw Error(i(327));var n=e.finishedWork;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null;var r=n.lanes|n.childLanes,o=r,a=e.pendingLanes&~o;e.pendingLanes=o,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=o,e.mutableReadLanes&=o,e.entangledLanes&=o,o=e.entanglements;for(var l=e.eventTimes,s=e.expirationTimes;0<a;){var u=31-Ht(a),c=1<<u;o[u]=0,l[u]=-1,s[u]=-1,a&=~c}if(null!==os&&0==(24&r)&&os.has(e)&&os.delete(e),e===Al&&(Ll=Al=null,Rl=0),1<n.flags?null!==n.lastEffect?(n.lastEffect.nextEffect=n,r=n.firstEffect):r=n:r=n.firstEffect,null!==r){if(o=Il,Il|=32,Nl.current=null,zr=Zt,gr(l=mr())){if("selectionStart"in l)s={start:l.selectionStart,end:l.selectionEnd};else e:if(s=(s=l.ownerDocument)&&s.defaultView||window,(c=s.getSelection&&s.getSelection())&&0!==c.rangeCount){s=c.anchorNode,a=c.anchorOffset,u=c.focusNode,c=c.focusOffset;try{s.nodeType,u.nodeType}catch(C){s=null;break e}var d=0,f=-1,p=-1,h=0,m=0,g=l,v=null;t:for(;;){for(var b;g!==s||0!==a&&3!==g.nodeType||(f=d+a),g!==u||0!==c&&3!==g.nodeType||(p=d+c),3===g.nodeType&&(d+=g.nodeValue.length),null!==(b=g.firstChild);)v=g,g=b;for(;;){if(g===l)break t;if(v===s&&++h===a&&(f=d),v===u&&++m===c&&(p=d),null!==(b=g.nextSibling))break;v=(g=v).parentNode}g=b}s=-1===f||-1===p?null:{start:f,end:p}}else s=null;s=s||{start:0,end:0}}else s=null;$r={focusedElem:l,selectionRange:s},Zt=!1,cs=null,ds=!1,Ql=r;do{try{Ls()}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);cs=null,Ql=r;do{try{for(l=e;null!==Ql;){var y=Ql.flags;if(16&y&&ve(Ql.stateNode,""),128&y){var w=Ql.alternate;if(null!==w){var x=w.ref;null!==x&&("function"==typeof x?x(null):x.current=null)}}switch(1038&y){case 2:_l(Ql),Ql.flags&=-3;break;case 6:_l(Ql),Ql.flags&=-3,Cl(Ql.alternate,Ql);break;case 1024:Ql.flags&=-1025;break;case 1028:Ql.flags&=-1025,Cl(Ql.alternate,Ql);break;case 4:Cl(Ql.alternate,Ql);break;case 8:Sl(l,s=Ql);var _=s.alternate;wl(s),null!==_&&wl(_)}Ql=Ql.nextEffect}}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);if(x=$r,w=mr(),y=x.focusedElem,l=x.selectionRange,w!==y&&y&&y.ownerDocument&&hr(y.ownerDocument.documentElement,y)){null!==l&&gr(y)&&(w=l.start,void 0===(x=l.end)&&(x=w),"selectionStart"in y?(y.selectionStart=w,y.selectionEnd=Math.min(x,y.value.length)):(x=(w=y.ownerDocument||document)&&w.defaultView||window).getSelection&&(x=x.getSelection(),s=y.textContent.length,_=Math.min(l.start,s),l=void 0===l.end?_:Math.min(l.end,s),!x.extend&&_>l&&(s=l,l=_,_=s),s=pr(y,_),a=pr(y,l),s&&a&&(1!==x.rangeCount||x.anchorNode!==s.node||x.anchorOffset!==s.offset||x.focusNode!==a.node||x.focusOffset!==a.offset)&&((w=w.createRange()).setStart(s.node,s.offset),x.removeAllRanges(),_>l?(x.addRange(w),x.extend(a.node,a.offset)):(w.setEnd(a.node,a.offset),x.addRange(w))))),w=[];for(x=y;x=x.parentNode;)1===x.nodeType&&w.push({element:x,left:x.scrollLeft,top:x.scrollTop});for("function"==typeof y.focus&&y.focus(),y=0;y<w.length;y++)(x=w[y]).element.scrollLeft=x.left,x.element.scrollTop=x.top}Zt=!!zr,$r=zr=null,e.current=n,Ql=r;do{try{for(y=e;null!==Ql;){var k=Ql.flags;if(36&k&&vl(y,Ql.alternate,Ql),128&k){w=void 0;var E=Ql.ref;if(null!==E){var S=Ql.stateNode;Ql.tag,w=S,"function"==typeof E?E(w):E.current=w}}Ql=Ql.nextEffect}}catch(C){if(null===Ql)throw Error(i(330));zs(Ql,C),Ql=Ql.nextEffect}}while(null!==Ql);Ql=null,Fo(),Il=o}else e.current=n;if(Jl)Jl=!1,es=e,ts=t;else for(Ql=r;null!==Ql;)t=Ql.nextEffect,Ql.nextEffect=null,8&Ql.flags&&((k=Ql).sibling=null,k.stateNode=null),Ql=t;if(0===(r=e.pendingLanes)&&(Kl=null),1===r?e===is?as++:(as=0,is=e):as=0,n=n.stateNode,Eo&&"function"==typeof Eo.onCommitFiberRoot)try{Eo.onCommitFiberRoot(ko,n,void 0,64==(64&n.current.flags))}catch(C){}if(gs(e,Ho()),Yl)throw Yl=!1,e=Xl,Xl=null,e;return 0!=(8&Il)||Zo(),null}function Ls(){for(;null!==Ql;){var e=Ql.alternate;ds||null===cs||(0!=(8&Ql.flags)?Je(Ql,cs)&&(ds=!0):13===Ql.tag&&Ol(e,Ql)&&Je(Ql,cs)&&(ds=!0));var t=Ql.flags;0!=(256&t)&&gl(e,Ql),0==(512&t)||Jl||(Jl=!0,Go(97,(function(){return Rs(),null}))),Ql=Ql.nextEffect}}function Rs(){if(90!==ts){var e=97<ts?97:ts;return ts=90,Wo(e,Fs)}return!1}function js(e,t){ns.push(t,e),Jl||(Jl=!0,Go(97,(function(){return Rs(),null})))}function Ms(e,t){rs.push(t,e),Jl||(Jl=!0,Go(97,(function(){return Rs(),null})))}function Fs(){if(null===es)return!1;var e=es;if(es=null,0!=(48&Il))throw Error(i(331));var t=Il;Il|=32;var n=rs;rs=[];for(var r=0;r<n.length;r+=2){var o=n[r],a=n[r+1],l=o.destroy;if(o.destroy=void 0,"function"==typeof l)try{l()}catch(u){if(null===a)throw Error(i(330));zs(a,u)}}for(n=ns,ns=[],r=0;r<n.length;r+=2){o=n[r],a=n[r+1];try{var s=o.create;o.destroy=s()}catch(u){if(null===a)throw Error(i(330));zs(a,u)}}for(s=e.current.firstEffect;null!==s;)e=s.nextEffect,s.nextEffect=null,8&s.flags&&(s.sibling=null,s.stateNode=null),s=e;return Il=t,Zo(),!0}function Bs(e,t,n){da(e,t=fl(0,t=ul(n,t),1)),t=fs(),null!==(e=ms(e,1))&&(Ut(e,1,t),gs(e,t))}function zs(e,t){if(3===e.tag)Bs(e,e,t);else for(var n=e.return;null!==n;){if(3===n.tag){Bs(n,e,t);break}if(1===n.tag){var r=n.stateNode;if("function"==typeof n.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r))){var o=pl(n,e=ul(t,e),1);if(da(n,o),o=fs(),null!==(n=ms(n,1)))Ut(n,1,o),gs(n,o);else if("function"==typeof r.componentDidCatch&&(null===Kl||!Kl.has(r)))try{r.componentDidCatch(t,e)}catch(a){}break}}n=n.return}}function $s(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=fs(),e.pingedLanes|=e.suspendedLanes&n,Al===e&&(Rl&n)===n&&(4===Fl||3===Fl&&(62914560&Rl)===Rl&&500>Ho()-ql?Es(e,0):Hl|=n),gs(e,t)}function Us(e,t){var n=e.stateNode;null!==n&&n.delete(t),0===(t=0)&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Vo()?1:2:(0===ss&&(ss=zl),0===(t=zt(62914560&~ss))&&(t=4194304))),n=fs(),null!==(e=ms(e,t))&&(Ut(e,t,n),gs(e,n))}function Hs(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.flags=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childLanes=this.lanes=0,this.alternate=null}function Vs(e,t,n,r){return new Hs(e,t,n,r)}function qs(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Ws(e,t){var n=e.alternate;return null===n?((n=Vs(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.nextEffect=null,n.firstEffect=null,n.lastEffect=null),n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Gs(e,t,n,r,o,a){var l=2;if(r=e,"function"==typeof e)qs(e)&&(l=1);else if("string"==typeof e)l=5;else e:switch(e){case E:return Zs(n.children,o,a,t);case j:l=8,o|=16;break;case S:l=8,o|=1;break;case C:return(e=Vs(12,n,t,8|o)).elementType=C,e.type=C,e.lanes=a,e;case P:return(e=Vs(13,n,t,o)).type=P,e.elementType=P,e.lanes=a,e;case N:return(e=Vs(19,n,t,o)).elementType=N,e.lanes=a,e;case M:return Qs(n,o,a,t);case F:return(e=Vs(24,n,t,o)).elementType=F,e.lanes=a,e;default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:l=10;break e;case O:l=9;break e;case D:l=11;break e;case I:l=14;break e;case A:l=16,r=null;break e;case L:l=22;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Vs(l,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function Zs(e,t,n,r){return(e=Vs(7,e,r,t)).lanes=n,e}function Qs(e,t,n,r){return(e=Vs(23,e,r,t)).elementType=M,e.lanes=n,e}function Ys(e,t,n){return(e=Vs(6,e,null,t)).lanes=n,e}function Xs(e,t,n){return(t=Vs(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ks(e,t,n){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.pendingContext=this.context=null,this.hydrate=n,this.callbackNode=null,this.callbackPriority=0,this.eventTimes=$t(0),this.expirationTimes=$t(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$t(0),this.mutableSourceEagerHydrationData=null}function Js(e,t,n,r){var o=t.current,a=fs(),l=ps(o);e:if(n){t:{if(Qe(n=n._reactInternals)!==n||1!==n.tag)throw Error(i(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(vo(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(i(171))}if(1===n.tag){var u=n.type;if(vo(u)){n=wo(n,u,s);break e}}n=s}else n=fo;return null===t.context?t.context=n:t.pendingContext=n,(t=ca(a,l)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),da(o,t),hs(o,l,a),l}function eu(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function tu(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function nu(e,t){tu(e,t),(e=e.alternate)&&tu(e,t)}function ru(e,t,n){var r=null!=n&&null!=n.hydrationOptions&&n.hydrationOptions.mutableSources||null;if(n=new Ks(e,t,null!=n&&!0===n.hydrate),t=Vs(3,null,null,2===t?7:1===t?3:0),n.current=t,t.stateNode=n,sa(t),e[Jr]=n.current,Nr(8===e.nodeType?e.parentNode:e),r)for(e=0;e<r.length;e++){var o=(t=r[e])._getVersion;o=o(t._source),null==n.mutableSourceEagerHydrationData?n.mutableSourceEagerHydrationData=[t,o]:n.mutableSourceEagerHydrationData.push(t,o)}this._internalRoot=n}function ou(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function au(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a._internalRoot;if("function"==typeof o){var l=o;o=function(){var e=eu(i);l.call(e)}}Js(t,i,e,o)}else{if(a=n._reactRootContainer=function(e,t){if(t||(t=!(!(t=e?9===e.nodeType?e.documentElement:e.firstChild:null)||1!==t.nodeType||!t.hasAttribute("data-reactroot"))),!t)for(var n;n=e.lastChild;)e.removeChild(n);return new ru(e,0,t?{hydrate:!0}:void 0)}(n,r),i=a._internalRoot,"function"==typeof o){var s=o;o=function(){var e=eu(i);s.call(e)}}xs((function(){Js(t,i,e,o)}))}return eu(i)}function iu(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ou(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)}Zl=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ho.current)ji=!0;else{if(0==(n&r)){switch(ji=!1,t.tag){case 3:Wi(t),Ga();break;case 5:Ra(t);break;case 1:vo(t.type)&&xo(t);break;case 4:Aa(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;co(Ko,o._currentValue),o._currentValue=r;break;case 13:if(null!==t.memoizedState)return 0!=(n&t.child.childLanes)?Ki(e,t,n):(co(Ma,1&Ma.current),null!==(t=al(e,t,n))?t.sibling:null);co(Ma,1&Ma.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return ol(e,t,n);t.flags|=64}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),co(Ma,Ma.current),r)break;return null;case 23:case 24:return t.lanes=0,$i(e,t,n)}return al(e,t,n)}ji=0!=(16384&e.flags)}else ji=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=go(t,po.current),aa(t,n),o=ii(null,t,r,e,o,n),t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,vo(r)){var a=!0;xo(t)}else a=!1;t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,sa(t);var l=r.getDerivedStateFromProps;"function"==typeof l&&ga(t,r,l,e),o.updater=va,t.stateNode=o,o._reactInternals=t,xa(t,r,e,n),t=qi(null,t,r,!0,a,n)}else t.tag=0,Mi(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return qs(e)?1:0;if(null!=e){if((e=e.$$typeof)===D)return 11;if(e===I)return 14}return 2}(o),e=Xo(o,e),a){case 0:t=Hi(null,t,o,e,n);break e;case 1:t=Vi(null,t,o,e,n);break e;case 11:t=Fi(null,t,o,e,n);break e;case 14:t=Bi(null,t,o,Xo(o.type,e),r,n);break e}throw Error(i(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,Hi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 1:return r=t.type,o=t.pendingProps,Vi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 3:if(Wi(t),r=t.updateQueue,null===e||null===r)throw Error(i(282));if(r=t.pendingProps,o=null!==(o=t.memoizedState)?o.element:null,ua(e,t),pa(t,r,null,n),(r=t.memoizedState.element)===o)Ga(),t=al(e,t,n);else{if((a=(o=t.stateNode).hydrate)&&(za=Gr(t.stateNode.containerInfo.firstChild),Ba=t,a=$a=!0),a){if(null!=(e=o.mutableSourceEagerHydrationData))for(o=0;o<e.length;o+=2)(a=e[o])._workInProgressVersionPrimary=e[o+1],Za.push(a);for(n=Ta(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|1024,n=n.sibling}else Mi(e,t,r,n),Ga();t=t.child}return t;case 5:return Ra(t),null===e&&Va(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,Hr(r,o)?l=null:null!==a&&Hr(r,a)&&(t.flags|=16),Ui(e,t),Mi(e,t,l,n),t.child;case 6:return null===e&&Va(t),null;case 13:return Ki(e,t,n);case 4:return Aa(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ca(t,null,r,n):Mi(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,Fi(e,t,r,o=t.elementType===r?o:Xo(r,o),n);case 7:return Mi(e,t,t.pendingProps,n),t.child;case 8:case 12:return Mi(e,t,t.pendingProps.children,n),t.child;case 10:e:{r=t.type._context,o=t.pendingProps,l=t.memoizedProps,a=o.value;var s=t.type._context;if(co(Ko,s._currentValue),s._currentValue=a,null!==l)if(s=l.value,0===(a=ur(s,a)?0:0|("function"==typeof r._calculateChangedBits?r._calculateChangedBits(s,a):1073741823))){if(l.children===o.children&&!ho.current){t=al(e,t,n);break e}}else for(null!==(s=t.child)&&(s.return=t);null!==s;){var u=s.dependencies;if(null!==u){l=s.child;for(var c=u.firstContext;null!==c;){if(c.context===r&&0!=(c.observedBits&a)){1===s.tag&&((c=ca(-1,n&-n)).tag=2,da(s,c)),s.lanes|=n,null!==(c=s.alternate)&&(c.lanes|=n),oa(s.return,n),u.lanes|=n;break}c=c.next}}else l=10===s.tag&&s.type===t.type?null:s.child;if(null!==l)l.return=s;else for(l=s;null!==l;){if(l===t){l=null;break}if(null!==(s=l.sibling)){s.return=l.return,l=s;break}l=l.return}s=l}Mi(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=(a=t.pendingProps).children,aa(t,n),r=r(o=ia(o,a.unstable_observedBits)),t.flags|=1,Mi(e,t,r,n),t.child;case 14:return a=Xo(o=t.type,t.pendingProps),Bi(e,t,o,a=Xo(o.type,a),r,n);case 15:return zi(e,t,t.type,t.pendingProps,r,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Xo(r,o),null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),t.tag=1,vo(r)?(e=!0,xo(t)):e=!1,aa(t,n),ya(t,r,o),xa(t,r,o,n),qi(null,t,r,!0,e,n);case 19:return ol(e,t,n);case 23:case 24:return $i(e,t,n)}throw Error(i(156,t.tag))},ru.prototype.render=function(e){Js(e,this._internalRoot,null,null)},ru.prototype.unmount=function(){var e=this._internalRoot,t=e.containerInfo;Js(null,e,null,(function(){t[Jr]=null}))},et=function(e){13===e.tag&&(hs(e,4,fs()),nu(e,4))},tt=function(e){13===e.tag&&(hs(e,67108864,fs()),nu(e,67108864))},nt=function(e){if(13===e.tag){var t=fs(),n=ps(e);hs(e,n,t),nu(e,n)}},rt=function(e,t){return t()},Ce=function(e,t,n){switch(t){case"input":if(ne(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=oo(r);if(!o)throw Error(i(90));X(r),ne(r,o)}}}break;case"textarea":ue(e,n);break;case"select":null!=(t=n.value)&&ie(e,!!n.multiple,t,!1)}},Ie=ws,Ae=function(e,t,n,r,o){var a=Il;Il|=4;try{return Wo(98,e.bind(null,t,n,r,o))}finally{0===(Il=a)&&(Gl(),Zo())}},Le=function(){0==(49&Il)&&(function(){if(null!==os){var e=os;os=null,e.forEach((function(e){e.expiredLanes|=24&e.pendingLanes,gs(e,Ho())}))}Zo()}(),Rs())},Re=function(e,t){var n=Il;Il|=2;try{return e(t)}finally{0===(Il=n)&&(Gl(),Zo())}};var lu={Events:[no,ro,oo,Pe,Ne,Rs,{current:!1}]},su={findFiberByHostInstance:to,bundleType:0,version:"17.0.2",rendererPackageName:"react-dom"},uu={bundleType:su.bundleType,version:su.version,rendererPackageName:su.rendererPackageName,rendererConfig:su.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ke(e))?null:e.stateNode},findFiberByHostInstance:su.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var cu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!cu.isDisabled&&cu.supportsFiber)try{ko=cu.inject(uu),Eo=cu}catch(me){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lu,t.createPortal=iu,t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(i(188));throw Error(i(268,Object.keys(e)))}return e=null===(e=Ke(t))?null:e.stateNode},t.flushSync=function(e,t){var n=Il;if(0!=(48&n))return e(t);Il|=1;try{if(e)return Wo(99,e.bind(null,t))}finally{Il=n,Zo()}},t.hydrate=function(e,t,n){if(!ou(t))throw Error(i(200));return au(null,e,t,!0,n)},t.render=function(e,t,n){if(!ou(t))throw Error(i(200));return au(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!ou(e))throw Error(i(40));return!!e._reactRootContainer&&(xs((function(){au(null,null,e,!1,(function(){e._reactRootContainer=null,e[Jr]=null}))})),!0)},t.unstable_batchedUpdates=ws,t.unstable_createPortal=function(e,t){return iu(e,t,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)},t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!ou(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return au(e,t,n,!1,r)},t.version="17.0.2"},73935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(64448)},69590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,o="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function a(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var l,s,u,c;if(Array.isArray(e)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(!a(e[s],i[s]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;for(c=e.entries();!(s=c.next()).done;)if(!a(s.value[1],i.get(s.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(c=e.entries();!(s=c.next()).done;)if(!i.has(s.value[0]))return!1;return!0}if(o&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((l=e.length)!=i.length)return!1;for(s=l;0!=s--;)if(e[s]!==i[s])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((l=(u=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(s=l;0!=s--;)if(!Object.prototype.hasOwnProperty.call(i,u[s]))return!1;if(t&&e instanceof Element)return!1;for(s=l;0!=s--;)if(("_owner"!==u[s]&&"__v"!==u[s]&&"__o"!==u[s]||!e.$$typeof)&&!a(e[u[s]],i[u[s]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return a(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},70405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>q,ql:()=>J});var r=n(67294),o=n(45697),a=n.n(o),i=n(69590),l=n.n(i),s=n(41143),u=n.n(s),c=n(96774),d=n.n(c);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(this,arguments)}function p(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,h(e,t)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function m(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)t.indexOf(n=a[r])>=0||(o[n]=e[n]);return o}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},v={rel:["amphtml","canonical","alternate"]},b={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),x={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},_=Object.keys(x).reduce((function(e,t){return e[x[t]]=t,e}),{}),k=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=k(e,g.TITLE),n=k(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=k(e,"defaultTitle");return t||r||void 0},S=function(e){return k(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return f({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o<r.length;o+=1){var a=r[o].toLowerCase();if(-1!==e.indexOf(a)&&n[a])return t.concat(n)}return t}),[])},O=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var o={};n.filter((function(e){for(var n,a=Object.keys(e),i=0;i<a.length;i+=1){var l=a[i],s=l.toLowerCase();-1===t.indexOf(s)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===s&&"stylesheet"===e[s].toLowerCase()||(n=s),-1===t.indexOf(l)||"innerHTML"!==l&&"cssText"!==l&&"itemprop"!==l||(n=l)}if(!n||!e[n])return!1;var u=e[n].toLowerCase();return r[n]||(r[n]={}),o[n]||(o[n]={}),!r[n][u]&&(o[n][u]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var a=Object.keys(o),i=0;i<a.length;i+=1){var l=a[i],s=f({},r[l],o[l]);r[l]=s}return e}),[]).reverse()},D=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},P=function(e){return Array.isArray(e)?e.join(""):e},N=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},I=function(e,t){var n;return f({},e,((n={})[t]=void 0,n))},A=[g.NOSCRIPT,g.SCRIPT,g.STYLE],L=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},R=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},j=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[x[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var o,a=((o={key:n})["data-rh"]=!0,o);return Object.keys(t).forEach((function(e){var n=x[e]||e;"innerHTML"===n||"cssText"===n?a.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:a[n]=t[e]})),r.createElement(e,a)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(o={key:e=t.title})["data-rh"]=!0,a=j(n,o),[r.createElement(g.TITLE,a,e)];var e,n,o,a},toString:function(){return function(e,t,n,r){var o=R(n),a=P(t);return o?"<"+e+' data-rh="true" '+o+">"+L(a,r)+"</"+e+">":"<"+e+' data-rh="true">'+L(a,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return j(t)},toString:function(){return R(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var o=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var o=void 0===r[t]?t:t+'="'+L(r[t],n)+'"';return e?e+" "+o:o}),""),a=r.innerHTML||r.cssText||"",i=-1===A.indexOf(e);return t+"<"+e+' data-rh="true" '+o+(i?"/>":">"+a+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,a=e.noscriptTags,i=e.styleTags,l=e.title,s=void 0===l?"":l,u=e.titleAttributes,c=e.linkTags,d=e.metaTags,f=e.scriptTags,p={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var h=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,o=N(e.metaTags,y),a=N(t,v),i=N(n,b);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,o.priority),M(g.LINK,a.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,o.priority,r)+" "+F(g.LINK,a.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:o.default,linkTags:a.default,scriptTags:i.default}}(e);p=h.priorityMethods,c=h.linkTags,d=h.metaTags,f=h.scriptTags}return{priority:p,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",o,r),link:F(g.LINK,c,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,a,r),script:F(g.SCRIPT,f,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:s,titleAttributes:u},r)}},z=[],$=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},U=r.createContext({}),H=a().shape({setHelmet:a().func,helmetInstances:a().shape({get:a().func,add:a().func,remove:a().func})}),V="undefined"!=typeof document,q=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new $(r.props.context,t.canUseDOM),r}return p(t,e),t.prototype.render=function(){return r.createElement(U.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);q.canUseDOM=V,q.propTypes={context:a().shape({helmet:a().shape()}),children:a().node.isRequired},q.defaultProps={context:{}},q.displayName="HelmetProvider";var W=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),o=r.querySelectorAll(e+"[data-rh]"),a=[].slice.call(o),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&("innerHTML"===o?r.innerHTML=t.innerHTML:"cssText"===o?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(o,void 0===t[o]?"":t[o]));r.setAttribute("data-rh","true"),a.some((function(e,t){return n=t,r.isEqualNode(e)}))?a.splice(n,1):i.push(r)})),a.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:a,newTags:i}},G=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),o=r?r.split(","):[],a=[].concat(o),i=Object.keys(t),l=0;l<i.length;l+=1){var s=i[l],u=t[s]||"";n.getAttribute(s)!==u&&n.setAttribute(s,u),-1===o.indexOf(s)&&o.push(s);var c=a.indexOf(s);-1!==c&&a.splice(c,1)}for(var d=a.length-1;d>=0;d-=1)n.removeAttribute(a[d]);o.length===a.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},Z=function(e,t){var n=e.baseTag,r=e.htmlAttributes,o=e.linkTags,a=e.metaTags,i=e.noscriptTags,l=e.onChangeClientState,s=e.scriptTags,u=e.styleTags,c=e.title,d=e.titleAttributes;G(g.BODY,e.bodyAttributes),G(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=P(e)),G(g.TITLE,t)}(c,d);var f={baseTag:W(g.BASE,n),linkTags:W(g.LINK,o),metaTags:W(g.META,a),noscriptTags:W(g.NOSCRIPT,i),scriptTags:W(g.SCRIPT,s),styleTags:W(g.STYLE,u)},p={},h={};Object.keys(f).forEach((function(e){var t=f[e],n=t.newTags,r=t.oldTags;n.length&&(p[e]=n),r.length&&(h[e]=f[e].oldTags)})),t&&t(),l(e,p,h)},Q=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,o=null,a=(e=n.helmetInstances.get().map((function(e){var t=f({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:k(e,"defer"),encode:k(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:O(g.LINK,["rel","href"],e),metaTags:O(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:O(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:S(e),scriptTags:O(g.SCRIPT,["src","innerHTML"],e),styleTags:O(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:D(e,"prioritizeSeoTags")});q.canUseDOM?(t=a,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){Z(t,(function(){Q=null}))})):(Z(t),Q=null)):B&&(o=B(a)),r(o)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:H.isRequired},Y.displayName="HelmetDispatcher";var X=["children"],K=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}p(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!l()(I(this.props,"helmetData"),I(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return f({},r,((t={})[n.type]=[].concat(r[n.type]||[],[f({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,o=e.newProps,a=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return f({},o,((t={})[r.type]=i,t.titleAttributes=f({},a),t));case g.BODY:return f({},o,{bodyAttributes:f({},a)});case g.HTML:return f({},o,{htmlAttributes:f({},a)});default:return f({},o,((n={})[r.type]=f({},a),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=f({},t);return Object.keys(e).forEach((function(t){var r;n=f({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return u()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),u()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,o={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,a=r.children,i=m(r,X),l=Object.keys(i).reduce((function(e,t){return e[_[t]||t]=i[t],e}),{}),s=e.type;switch("symbol"==typeof s?s=s.toString():n.warnOnInvalidChildren(e,a),s){case g.FRAGMENT:t=n.mapChildrenToProps(a,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:o=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:o,newChildProps:l,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:l,nestedChildren:a})}}})),this.mapArrayTypeChildrenToProps(o,t)},n.render=function(){var e=this.props,t=e.children,n=m(e,K),o=f({},n),a=n.helmetData;return t&&(o=this.mapChildrenToProps(t,o)),!a||a instanceof $||(a=new $(a.context,a.instances)),a?r.createElement(Y,f({},o,{context:a.value,helmetData:void 0})):r.createElement(U.Consumer,null,(function(e){return r.createElement(Y,f({},o,{context:e}))}))},t}(r.Component);J.propTypes={base:a().object,bodyAttributes:a().object,children:a().oneOfType([a().arrayOf(a().node),a().node]),defaultTitle:a().string,defer:a().bool,encodeSpecialCharacters:a().bool,htmlAttributes:a().object,link:a().arrayOf(a().object),meta:a().arrayOf(a().object),noscript:a().arrayOf(a().object),onChangeClientState:a().func,script:a().arrayOf(a().object),style:a().arrayOf(a().object),title:a().string,titleAttributes:a().object,titleTemplate:a().string,prioritizeSeoTags:a().bool,helmetData:a().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},69921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,l=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function x(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case d:case a:case l:case i:case p:return e;default:switch(e=e&&e.$$typeof){case u:case f:case g:case m:case s:return e;default:return t}}case o:return t}}}function _(e){return x(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=f,t.Fragment=a,t.Lazy=g,t.Memo=m,t.Portal=o,t.Profiler=l,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return _(e)||x(e)===c},t.isConcurrentMode=_,t.isContextConsumer=function(e){return x(e)===u},t.isContextProvider=function(e){return x(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return x(e)===f},t.isFragment=function(e){return x(e)===a},t.isLazy=function(e){return x(e)===g},t.isMemo=function(e){return x(e)===m},t.isPortal=function(e){return x(e)===o},t.isProfiler=function(e){return x(e)===l},t.isStrictMode=function(e){return x(e)===i},t.isSuspense=function(e){return x(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===p||e===h||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===s||e.$$typeof===u||e.$$typeof===f||e.$$typeof===b||e.$$typeof===y||e.$$typeof===w||e.$$typeof===v)},t.typeOf=x},59864:(e,t,n)=>{"use strict";e.exports=n(69921)},68356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function o(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var l=n(67294),s=n(45697),u=[],c=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function f(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var o=d(e[r]);o.loading?t.loading=!0:(t.loaded[r]=o.loaded,t.error=o.error),n.push(o.promise),o.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function p(e,t){return l.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function h(e,t){var d,f;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var h=i({loader:null,loading:null,delay:200,timeout:null,render:p,webpack:null,modules:null},t),m=null;function g(){return m||(m=e(h.loader)),m.promise}return u.push(g),"function"==typeof h.webpack&&c.push((function(){if((0,h.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),f=d=function(t){function n(n){var r;return a(o(o(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),m=e(h.loader),r._loadModule()})),g(),r.state={error:m.error,pastDelay:!1,timedOut:!1,loading:m.loading,loaded:m.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(h.modules)&&h.modules.forEach((function(t){e.context.loadable.report(t)})),m.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof h.delay&&(0===h.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),h.delay)),"number"==typeof h.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),h.timeout));var n=function(){t({error:m.error,loaded:m.loaded,loading:m.loading}),e._clearTimeouts()};m.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?l.createElement(h.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?h.render(this.state.loaded,this.props):null},n}(l.Component),a(d,"contextTypes",{loadable:s.shape({report:s.func.isRequired})}),f}function m(e){return h(d,e)}m.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return h(f,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return l.Children.only(this.props.children)},t}(l.Component);function v(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return v(e)}))}a(g,"propTypes",{report:s.func.isRequired}),a(g,"childContextTypes",{loadable:s.shape({report:s.func.isRequired}).isRequired}),m.Capture=g,m.preloadAll=function(){return new Promise((function(e,t){v(u).then(e,t)}))},m.preloadReady=function(){return new Promise((function(e,t){v(c).then(e,e)}))},e.exports=m},33052:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>R,hasTranslate3DSupport:()=>f,isTouch:()=>u,make2dTransformValue:()=>c,make3dTransformValue:()=>d});var r=n(97582),o=n(67294),a="kvfysmfp",i="ufhsfnkm",l=".".concat(a,"{overflow:hidden;touch-action:none}.").concat(i,"{transform-origin: 0 0}"),s="undefined"==typeof window,u=function(){return!s&&("ontouchstart"in window||navigator.maxTouchPoints>0)},c=function(e){var t=e.x,n=e.y,r=e.scale;return"scale(".concat(r,") translate(").concat(t,"px, ").concat(n,"px)")},d=function(e){var t=e.x,n=e.y,r=e.scale;return"scale3d(".concat(r,",").concat(r,", 1) translate3d(").concat(t,"px, ").concat(n,"px, 0)")},f=function(){var e=!s&&window.CSS;return e&&e.supports&&e.supports("transform","translate3d(0,0,0)")},p=Math.min,h=Math.max;function m(e){var t=e.containerDimension,n=e.childDimension,r=e.padding,o=e.centerContained,a=n-t;return a+2*r<=0&&o?[a/2,a/2]:[p(a+r,0)-r,h(0,a+r)]}var g=function(e,t){return t?"".concat(e," ").concat(t):e},v=Math.abs,b=Math.min,y=Math.sqrt,w="undefined"==typeof window,x=!w&&/(Mac)/i.test(navigator.platform),_=function(e){return"drag"===e},k=function(e){return"zoom"===e},E=function(e){e.stopPropagation(),e.preventDefault()},S=function(e,t){var n=e.x-t.x,r=e.y-t.y;return y(n*n+r*r)},C=function(e){return-Math.cos(e*Math.PI)/2+.5},T=function(e){return{x:e.pageX,y:e.pageY}},O=function(e){return Array.from(e).map(T)},D=function(e,t){return e+t},P=function(e,t,n){return n<e?e:n>t?t:n},N=function(e){return!(e.ctrlKey||e.metaKey)},I=function(){},A={x:0,y:0},L=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t._prevDragMovePoint=null,t._containerObserver=null,t._fingers=0,t._firstMove=!0,t._initialOffset=(0,r.__assign)({},A),t._interaction=null,t._isDoubleTap=!1,t._isOffsetsSet=!1,t._lastDragPosition=null,t._lastScale=1,t._lastTouchStart=0,t._lastZoomCenter=null,t._listenMouseMove=!1,t._nthZoom=0,t._offset=(0,r.__assign)({},A),t._startOffset=(0,r.__assign)({},A),t._startTouches=null,t._updatePlaned=!1,t._wheelTimeOut=null,t._zoomFactor=1,t._initialZoomFactor=1,t._draggingPoint=(0,r.__assign)({},A),t._ignoreNextClick=!1,t._containerRef=o.createRef(),t._handleClick=function(e){t._ignoreNextClick&&(t._ignoreNextClick=!1,e.stopPropagation())},t._onResize=function(){var e;(null===(e=t._containerRef)||void 0===e?void 0:e.current)&&(t._updateInitialZoomFactor(),t._setupOffsets(),t._update())},t._handlerOnTouchEnd=t._handlerIfEnable((function(e){t._fingers=e.touches.length,t.props.shouldCancelHandledTouchEndEvents&&(k(t._interaction)||_(t._interaction)&&(t._startOffset.x!==t._offset.x||t._startOffset.y!==t._offset.y))&&E(e),_(t._interaction)&&!t._enoughToDrag()&&t._handleClick(e),t._updateInteraction(e)})),t._handlerOnTouchStart=t._handlerIfEnable((function(e){t._firstMove=!0,t._fingers=e.touches.length,t._detectDoubleTap(e)})),t._handlerOnTouchMove=t._handlerIfEnable((function(e){var n,o,a;t._isDoubleTap||(t._collectInertia(e),t._firstMove?(t._updateInteraction(e),t._interaction&&E(e),t._startOffset=(0,r.__assign)({},t._offset),t._startTouches=O(e.touches)):(k(t._interaction)?t._startTouches&&2===t._startTouches.length&&2===e.touches.length&&t._handleZoom(e,(n=t._startTouches,o=O(e.touches),a=S(n[0],n[1]),S(o[0],o[1])/a)):_(t._interaction)&&t._handleDrag(e),t._interaction&&(E(e),t._update())),t._firstMove=!1)})),t._handlerWheel=function(e){if(!t.props.shouldInterceptWheel(e)){E(e);var n=e.pageX,r=e.pageY,o=e.deltaY,a=e.deltaMode,i=1;(function(e){return x&&e.ctrlKey}(e)||1===a)&&(i=15);var l={touches:[{pageX:n,pageY:r}]},s=t._getOffsetByFirstTouch(l),u=o*i;t._stopAnimation(),t._scaleTo(t._zoomFactor-u/t.props.wheelScaleFactor,s),t._update(),clearTimeout(t._wheelTimeOut),t._wheelTimeOut=setTimeout((function(){return t._sanitize()}),100)}},t._handlers=t.props.isTouch()?[["touchstart",t._handlerOnTouchStart],["touchend",t._handlerOnTouchEnd],["touchmove",t._handlerOnTouchMove]]:[["mousemove",t.simulate(t._handlerOnTouchMove),t.props._document],["mouseup",t.simulate(t._handlerOnTouchEnd),t.props._document],["mousedown",t.simulate(t._handlerOnTouchStart)],["click",t._handleClick],["wheel",t._handlerWheel]],t}return(0,r.__extends)(t,e),t.prototype._handleDragStart=function(e){this._ignoreNextClick=!0,this.props.onDragStart(),this._stopAnimation(),this._resetInertia(),this._lastDragPosition=null,this._hasInteraction=!0,this._draggingPoint=this._offset,this._handleDrag(e)},t.prototype._handleDrag=function(e){var t=this._getOffsetByFirstTouch(e);this._enoughToDrag()?this._drag(t,this._lastDragPosition):this._virtualDrag(t,this._lastDragPosition),this._offset=this._sanitizeOffset(this._offset),this._lastDragPosition=t},t.prototype._resetInertia=function(){this._velocity=null,this._prevDragMovePoint=null},t.prototype._realizeInertia=function(){var e=this,t=this.props,n=t.inertiaFriction;if(t.inertia&&this._velocity){var o=this._velocity,a=o.x,i=o.y;if(a||i){this._stopAnimation(),this._resetInertia();this._animate((function(){if(i*=n,!(a*=n)&&!i)return e._stopAnimation();var t,o,l=(0,r.__assign)({},e._offset);if(e._addOffset({x:a,y:i}),e._offset=e._sanitizeOffset(e._offset),t=l,o=e._offset,t.x===o.x&&t.y===o.y)return e._stopAnimation();e._update({isAnimation:!0})}),{duration:9999})}}},t.prototype._collectInertia=function(e){var t=e.touches;if(this.props.inertia){var n,r,o=O(t)[0],a=this._prevDragMovePoint;a&&(this._velocity=(n=o,{x:(r=a).x-n.x,y:r.y-n.y})),this._prevDragMovePoint=o}},t.prototype._handleDragEnd=function(){this.props.onDragEnd(),this._end(),this._realizeInertia()},t.prototype._handleZoomStart=function(){this.props.onZoomStart(),this._stopAnimation(),this._lastScale=1,this._nthZoom=0,this._lastZoomCenter=null,this._hasInteraction=!0},t.prototype._handleZoom=function(e,t){var n,r={x:(n=this._getOffsetTouches(e)).map((function(e){return e.x})).reduce(D,0)/n.length,y:n.map((function(e){return e.y})).reduce(D,0)/n.length},o=t/this._lastScale;this._lastScale=t,this._nthZoom+=1,this._nthZoom>3&&(this._scale(o,r),this._drag(r,this._lastZoomCenter),this.props.enforceBoundsDuringZoom&&(this._offset=this._sanitizeOffset(this._offset))),this._lastZoomCenter=r},t.prototype._handleZoomEnd=function(){this.props.onZoomEnd(),this._end()},t.prototype._handleDoubleTap=function(e){var t=this;if(!this._hasInteraction&&0!==this.props.tapZoomFactor){var n=this.props.doubleTapZoomOutOnMaxScale&&this._zoomFactor===this.props.maxZoom||this.props.doubleTapToggleZoom&&this._zoomFactor>1;this.props.onDoubleTap(),this._ignoreNextClick=!0;var r=this._zoomFactor+this.props.tapZoomFactor,o=this._zoomFactor,a=this._getOffsetByFirstTouch(e);this._isDoubleTap=!0,o>r&&(a=this._getCurrentZoomCenter()),n?this._zoomOutAnimation():this._animate((function(e){t._scaleTo(o+e*(r-o),a)}))}},t.prototype._computeInitialOffset=function(){var e=this._getContainerRect(),t=this._getChildSize(),n=t.width,r=t.height,o=-v(n*this._getInitialZoomFactor()-e.width)/2,a=-v(r*this._getInitialZoomFactor()-e.height)/2;this._initialOffset={x:o,y:a}},t.prototype._resetOffset=function(){this._offset=(0,r.__assign)({},this._initialOffset)},t.prototype._setupOffsets=function(){this.props.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this._computeInitialOffset(),this._resetOffset())},t.prototype._sanitizeOffset=function(e){var t=this._getContainerRect(),n=this._getChildSize(),r=n.width,o=n.height,a=r*this._getInitialZoomFactor()*this._zoomFactor,i=o*this._getInitialZoomFactor()*this._zoomFactor,l=m({containerDimension:t.width,childDimension:a,padding:this.props.horizontalPadding,centerContained:this.props.centerContained}),s=l[0],u=l[1],c=m({containerDimension:t.height,childDimension:i,padding:this.props.verticalPadding,centerContained:this.props.centerContained}),d=c[0],f=c[1];return{x:P(s,u,e.x),y:P(d,f,e.y)}},t.prototype.alignCenter=function(e){var t=this,n=(0,r.__assign)({duration:250,animated:!0},e),o=n.x,a=n.y,i=n.scale,l=n.animated,s=n.duration,u=this._zoomFactor,c=(0,r.__assign)({},this._offset),d=this._getContainerRect(),f={x:d.width/2,y:d.height/2};if(this._zoomFactor=1,this._offset={x:-(f.x-o),y:-(f.y-a)},this._scaleTo(i,f),this._stopAnimation(),!l)return this._update();var p=this._zoomFactor-u,h=this._offset.x-c.x,m=this._offset.y-c.y;this._zoomFactor=u,this._offset=(0,r.__assign)({},c);this._animate((function(e){var n=c.x+h*e,r=c.y+m*e;t._zoomFactor=u+p*e,t._offset=t._sanitizeOffset({x:n,y:r}),t._update()}),{callback:function(){return t._sanitize()},duration:s})},t.prototype.scaleTo=function(e){var t=this,n=(0,r.__assign)({duration:250,animated:!0},e),o=n.x,a=n.y,i=n.scale,l=n.animated,s=n.duration,u=this._zoomFactor,c=(0,r.__assign)({},this._offset);if(this._zoomFactor=1,this._offset={x:0,y:0},this._scaleTo(i,{x:o,y:a}),this._stopAnimation(),!l)return this._update();var d=this._zoomFactor-u,f=this._offset.x-c.x,p=this._offset.y-c.y;this._zoomFactor=u,this._offset=(0,r.__assign)({},c);this._animate((function(e){var n=c.x+f*e,r=c.y+p*e;t._zoomFactor=u+d*e,t._offset={x:n,y:r},t._update()}),{callback:function(){return t._sanitize()},duration:s})},t.prototype._scaleTo=function(e,t){this._scale(e/this._zoomFactor,t),this._offset=this._sanitizeOffset(this._offset)},t.prototype._scale=function(e,t){e=this._scaleZoomFactor(e),this._addOffset({x:(e-1)*(t.x+this._offset.x),y:(e-1)*(t.y+this._offset.y)}),this.props.onZoomUpdate()},t.prototype._scaleZoomFactor=function(e){var t=this._zoomFactor;return this._zoomFactor*=e,this._zoomFactor=P(this.props.minZoom,this.props.maxZoom,this._zoomFactor),this._zoomFactor/t},t.prototype._canDrag=function(){return this.props.draggableUnZoomed||!((e=this._zoomFactor)>(t=1)-.01&&e<t+.01);var e,t},t.prototype._drag=function(e,t){if(t){var n=-(e.y-t.y),r=-(e.x-t.x);this.props.lockDragAxis?v(r)>v(n)?this._addOffset({x:r,y:0}):this._addOffset({y:n,x:0}):this._addOffset({x:r,y:n}),this.props.onDragUpdate()}},t.prototype._virtualDrag=function(e,t){if(t){var n=-(e.y-t.y),r=-(e.x-t.x);this._draggingPoint={x:r+this._draggingPoint.x,y:n+this._draggingPoint.y}}},t.prototype._addOffset=function(e){var t=this._offset,n=t.x,r=t.y;this._offset={x:n+e.x,y:r+e.y}},t.prototype._sanitize=function(){this._zoomFactor<this.props.zoomOutFactor?(this._resetInertia(),this._zoomOutAnimation()):this._isInsaneOffset()&&this._sanitizeOffsetAnimation()},t.prototype._isInsaneOffset=function(){var e=this._offset,t=this._sanitizeOffset(e);return t.x!==e.x||t.y!==e.y},t.prototype._sanitizeOffsetAnimation=function(){var e=this,t=this._sanitizeOffset(this._offset),n=(0,r.__assign)({},this._offset);this._animate((function(r){var o=n.x+r*(t.x-n.x),a=n.y+r*(t.y-n.y);e._offset={x:o,y:a},e._update()}))},t.prototype._zoomOutAnimation=function(){var e=this;if(1!==this._zoomFactor){var t=this._zoomFactor,n=this._getCurrentZoomCenter();this._animate((function(r){var o=t+r*(1-t);e._scaleTo(o,n)}))}},t.prototype._getInitialZoomFactor=function(){return this._initialZoomFactor},t.prototype._getCurrentZoomCenter=function(){var e=this._offset,t=e.x,n=e.y,r=t-this._initialOffset.x,o=n-this._initialOffset.y;return{x:-1*t-r/(1/this._zoomFactor-1),y:-1*n-o/(1/this._zoomFactor-1)}},t.prototype._getOffsetByFirstTouch=function(e){return this._getOffsetTouches(e)[0]},t.prototype._getOffsetTouches=function(e){var t=this.props._document,n=t.documentElement,r=t.body,o=this._getContainerRect(),a=o.top,i=o.left,l=n.scrollTop||r.scrollTop,s=n.scrollLeft||r.scrollLeft,u=a+l,c=i+s;return O(e.touches).map((function(e){var t=e.x,n=e.y;return{x:t-c,y:n-u}}))},t.prototype._animate=function(e,t){var n=this,o=(new Date).getTime(),a=(0,r.__assign)({timeFn:C,callback:function(){},duration:this.props.animationDuration},t),i=a.timeFn,l=a.callback,s=a.duration,u=function(){if(n._inAnimation){var t=(new Date).getTime()-o,r=t/s;t>=s?(e(1),n._stopAnimation(),l(),n._update()):(r=i(r),e(r),n._update({isAnimation:!0}),requestAnimationFrame(u))}};this._inAnimation=!0,requestAnimationFrame(u)},t.prototype._stopAnimation=function(){this._inAnimation=!1},t.prototype._end=function(){this._hasInteraction=!1,this._sanitize(),this._update()},t.prototype._getContainerRect=function(){return this._containerRef.current.getBoundingClientRect()},t.prototype._getChildSize=function(){var e=this._containerRef.current;return function(e){if(e){var t=e.offsetWidth,n=e.offsetHeight;if(t&&n)return{width:t,height:n};var r=getComputedStyle(e),o=parseFloat(r.width),a=parseFloat(r.height);if(a&&o)return{width:o,height:a}}return{width:0,height:0}}(null==e?void 0:e.firstElementChild)},t.prototype._updateInitialZoomFactor=function(){var e=this._getContainerRect(),t=this._getChildSize(),n=e.width/t.width,r=e.height/t.height;this._initialZoomFactor=b(n,r)},t.prototype._bindEvents=function(){var e=this,t=this._containerRef.current;window.ResizeObserver?(this._containerObserver=new ResizeObserver(this._onResize),this._containerObserver.observe(t)):window.addEventListener("resize",this._onResize),this._handlers.forEach((function(e){var n=e[0],r=e[1];(e[2]||t).addEventListener(n,r,!0)})),Array.from(t.querySelectorAll("img")).forEach((function(t){return t.addEventListener("load",e._onResize)}))},t.prototype._unSubscribe=function(){var e=this,t=this._containerRef.current;this._containerObserver&&(this._containerObserver.disconnect(),this._containerObserver=null),window.removeEventListener("resize",this._onResize),this._handlers.forEach((function(e){var n=e[0],r=e[1];(e[2]||t).removeEventListener(n,r,!0)})),Array.from(t.querySelectorAll("img")).forEach((function(t){return t.removeEventListener("load",e._onResize)}))},t.prototype._update=function(e){var t=this;if(!this._updatePlaned){var n=function(){var e=t._getInitialZoomFactor()*t._zoomFactor,n=-t._offset.x/e,r=-t._offset.y/e;t.props.onUpdate({scale:e,x:n,y:r})};if(null==e?void 0:e.isAnimation)return n();this._updatePlaned=!0,requestAnimationFrame((function(){t._updatePlaned=!1,n()}))}},t.prototype._handlerIfEnable=function(e){var t=this;return function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];t.props.enabled&&e.apply(void 0,n)}},t.prototype._setInteraction=function(e,t){var n=this._interaction;n!==e&&(n&&!e&&(k(n)?this._handleZoomEnd():_(n)&&this._handleDragEnd()),k(e)?this._handleZoomStart():_(e)&&this._handleDragStart(t)),this._interaction=e},t.prototype._distanceBetweenNumbers=function(e,t){return e>t?e-t:t-e},t.prototype._enoughToDrag=function(){return this._distanceBetweenNumbers(this._startOffset.x,this._draggingPoint.x)>5||this._distanceBetweenNumbers(this._startOffset.y,this._draggingPoint.y)>5},t.prototype._updateInteraction=function(e){var t=this._fingers;return 2===t?this._setInteraction("zoom",e):1===t&&this._canDrag()?this._setInteraction("drag",e):void this._setInteraction(null,e)},t.prototype._detectDoubleTap=function(e){var t=(new Date).getTime();this._fingers>1&&(this._lastTouchStart=0),t-this._lastTouchStart<300?(E(e),this._handleDoubleTap(e),k(this._interaction)?this._handleZoomEnd():_(this._interaction)&&this._handleDragEnd()):this._isDoubleTap=!1,1===this._fingers&&(this._lastTouchStart=t)},t.prototype.simulate=function(e){var t=this;return function(n){var r=n.pageX,o=n.pageY,a=n.type,i="mouseup"===a;"mousedown"===a&&(n.preventDefault(),t._listenMouseMove=!0),t._listenMouseMove&&(n.touches=i?[]:[{pageX:r,pageY:o}],e(n)),i&&(t._listenMouseMove=!1)}},t.prototype.componentDidMount=function(){this._bindEvents(),this._update()},t.prototype.componentWillUnmount=function(){this._stopAnimation(),this._unSubscribe()},t.prototype.render=function(){var e=this.props,t=e.children,n=e.containerProps,s=o.Children.only(t),u=n||{};return o.createElement(o.Fragment,null,o.createElement("style",null,l),o.createElement("div",(0,r.__assign)({},u,{ref:this._containerRef,className:g(a,u.className)}),o.cloneElement(s,{className:g(i,s.props.className)})))},t.defaultProps={animationDuration:250,draggableUnZoomed:!0,enforceBoundsDuringZoom:!1,centerContained:!1,enabled:!0,inertia:!0,inertiaFriction:.96,horizontalPadding:0,isTouch:u,lockDragAxis:!1,maxZoom:5,minZoom:.5,onDoubleTap:I,onDragEnd:I,onDragStart:I,onDragUpdate:I,onZoomEnd:I,onZoomStart:I,onZoomUpdate:I,setOffsetsOnce:!1,shouldInterceptWheel:N,shouldCancelHandledTouchEndEvents:!1,tapZoomFactor:1,verticalPadding:0,wheelScaleFactor:1500,zoomOutFactor:1.3,doubleTapZoomOutOnMaxScale:!1,doubleTapToggleZoom:!1,_document:w?null:window.document},t}(o.Component);const R=L},18790:(e,t,n)=>{"use strict";n.d(t,{H:()=>l,f:()=>i});var r=n(16550),o=n(87462),a=n(67294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var o=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return o&&(n.push({route:e,match:o}),e.routes&&i(e.routes,t,n)),o})),n}function l(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?a.createElement(r.rs,n,e.map((function(e,n){return a.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,o.Z)({},n,{},t,{route:e})):a.createElement(e.component,(0,o.Z)({},n,t,{route:e}))}})}))):null}},73727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>c,rU:()=>g});var r=n(16550),o=n(75068),a=n(67294),i=n(42358),l=n(87462),s=n(63366),u=n(38776),c=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,o.Z)(t,e),t.prototype.render=function(){return a.createElement(r.F0,{history:this.history,children:this.props.children})},t}(a.Component);a.Component;var d=function(e,t){return"function"==typeof e?e(t):e},f=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},p=function(e){return e},h=a.forwardRef;void 0===h&&(h=p);var m=h((function(e,t){var n=e.innerRef,r=e.navigate,o=e.onClick,i=(0,s.Z)(e,["innerRef","navigate","onClick"]),u=i.target,c=(0,l.Z)({},i,{onClick:function(e){try{o&&o(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||u&&"_self"!==u||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return c.ref=p!==h&&t||n,a.createElement("a",c)}));var g=h((function(e,t){var n=e.component,o=void 0===n?m:n,c=e.replace,g=e.to,v=e.innerRef,b=(0,s.Z)(e,["component","replace","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=f(d(g,e.location),e.location),s=r?n.createHref(r):"",m=(0,l.Z)({},b,{href:s,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(f(t));(c||r?n.replace:n.push)(t)}});return p!==h?m.ref=t||v:m.innerRef=v,a.createElement(o,m)}))})),v=function(e){return e},b=a.forwardRef;void 0===b&&(b=v);var y=b((function(e,t){var n=e["aria-current"],o=void 0===n?"page":n,i=e.activeClassName,c=void 0===i?"active":i,p=e.activeStyle,h=e.className,m=e.exact,y=e.isActive,w=e.location,x=e.sensitive,_=e.strict,k=e.style,E=e.to,S=e.innerRef,C=(0,s.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return a.createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=w||e.location,i=f(d(E,n),n),s=i.pathname,T=s&&s.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),O=T?(0,r.LX)(n.pathname,{path:T,exact:m,sensitive:x,strict:_}):null,D=!!(y?y(O,n):O),P="function"==typeof h?h(D):h,N="function"==typeof k?k(D):k;D&&(P=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(P,c),N=(0,l.Z)({},N,p));var I=(0,l.Z)({"aria-current":D&&o||null,className:P,style:N,to:i},C);return v!==b?I.ref=t||S:I.innerRef=S,a.createElement(g,I)}))}))},16550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>P,F0:()=>y,LX:()=>D,TH:()=>B,k6:()=>F,l_:()=>S,rs:()=>j,s6:()=>b});var r=n(75068),o=n(67294),a=n(45697),i=n.n(a),l=n(42358),s=n(38776),u=n(87462),c=n(39658),d=n.n(c),f=(n(59864),n(63366)),p=(n(8679),1073741823),h="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var m=o.createContext||function(e,t){var n,a,l="__create-react-context-"+function(){var e="__global_unique_id__";return h[e]=(h[e]||0)+1}()+"__",s=function(e){function n(){for(var t,n,r,o=arguments.length,a=new Array(o),i=0;i<o;i++)a[i]=arguments[i];return(t=e.call.apply(e,[this].concat(a))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var o=n.prototype;return o.getChildContext=function(){var e;return(e={})[l]=this.emitter,e},o.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,o=e.value;((a=r)===(i=o)?0!==a||1/a==1/i:a!=a&&i!=i)?n=0:(n="function"==typeof t?t(r,o):p,0!==(n|=0)&&this.emitter.set(e.value,n))}var a,i},o.render=function(){return this.props.children},n}(o.Component);s.childContextTypes=((n={})[l]=i().object.isRequired,n);var u=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var o=n.prototype;return o.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?p:t},o.componentDidMount=function(){this.context[l]&&this.context[l].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?p:e},o.componentWillUnmount=function(){this.context[l]&&this.context[l].off(this.onUpdate)},o.getValue=function(){return this.context[l]?this.context[l].get():e},o.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(o.Component);return u.contextTypes=((a={})[l]=i().object,a),{Provider:s,Consumer:u}},g=function(e){var t=m();return t.displayName=e,t},v=g("Router-History"),b=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return o.createElement(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},o.createElement(v.Provider,{children:this.props.children||null,value:this.props.history}))},t}(o.Component);o.Component;var w=function(e){function t(){return e.apply(this,arguments)||this}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(o.Component);var x={},_=1e4,k=0;function E(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(x[e])return x[e];var t=d().compile(e);return k<_&&(x[e]=t,k++),t}(e)(t,{pretty:!0})}function S(e){var t=e.computedMatch,n=e.to,r=e.push,a=void 0!==r&&r;return o.createElement(b.Consumer,null,(function(e){e||(0,s.Z)(!1);var r=e.history,i=e.staticContext,c=a?r.push:r.replace,d=(0,l.ob)(t?"string"==typeof n?E(n,t.params):(0,u.Z)({},n,{pathname:E(n.pathname,t.params)}):n);return i?(c(d),null):o.createElement(w,{onMount:function(){c(d)},onUpdate:function(e,t){var n=(0,l.ob)(t.to);(0,l.Hp)(n,(0,u.Z)({},d,{key:n.key}))||c(d)},to:n})}))}var C={},T=1e4,O=0;function D(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,o=n.exact,a=void 0!==o&&o,i=n.strict,l=void 0!==i&&i,s=n.sensitive,u=void 0!==s&&s;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=C[n]||(C[n]={});if(r[e])return r[e];var o=[],a={regexp:d()(e,o,t),keys:o};return O<T&&(r[e]=a,O++),a}(n,{end:a,strict:l,sensitive:u}),o=r.regexp,i=r.keys,s=o.exec(e);if(!s)return null;var c=s[0],f=s.slice(1),p=e===c;return a&&!p?null:{path:n,url:"/"===n&&""===c?"/":c,isExact:p,params:i.reduce((function(e,t,n){return e[t.name]=f[n],e}),{})}}),null)}var P=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?D(n.pathname,e.props):t.match,a=(0,u.Z)({},t,{location:n,match:r}),i=e.props,l=i.children,c=i.component,d=i.render;return Array.isArray(l)&&function(e){return 0===o.Children.count(e)}(l)&&(l=null),o.createElement(b.Provider,{value:a},a.match?l?"function"==typeof l?l(a):l:c?o.createElement(c,a):d?d(a):null:"function"==typeof l?l(a):null)}))},t}(o.Component);function N(e){return"/"===e.charAt(0)?e:"/"+e}function I(e,t){if(!e)return t;var n=N(e);return 0!==t.pathname.indexOf(n)?t:(0,u.Z)({},t,{pathname:t.pathname.substr(n.length)})}function A(e){return"string"==typeof e?e:(0,l.Ep)(e)}function L(e){return function(){(0,s.Z)(!1)}}function R(){}o.Component;var j=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return o.createElement(b.Consumer,null,(function(t){t||(0,s.Z)(!1);var n,r,a=e.props.location||t.location;return o.Children.forEach(e.props.children,(function(e){if(null==r&&o.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?D(a.pathname,(0,u.Z)({},e.props,{path:i})):t.match}})),r?o.cloneElement(n,{location:a,computedMatch:r}):null}))},t}(o.Component);var M=o.useContext;function F(){return M(v)}function B(){return M(b).location}},76585:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},39658:(e,t,n)=>{var r=n(76585);e.exports=p,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var h=e[i],m=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var x=null!=m&&null!=h&&h!==m,_="+"===y||"*"===y,k="?"===y||"*"===y,E=n[2]||c,S=v||b;r.push({name:g||a++,prefix:m||"",delimiter:E,optional:k,repeat:_,partial:x,asterisk:!!w,pattern:S?u(S):w?".*":"[^"+s(E)+"]+?"})}}return i<e.length&&(l+=e.substr(i)),l&&r.push(l),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function l(e,t){for(var n=new Array(e.length),o=0;o<e.length;o++)"object"==typeof e[o]&&(n[o]=new RegExp("^(?:"+e[o].pattern+")$",d(t)));return function(t,o){for(var a="",l=t||{},s=(o||{}).pretty?i:encodeURIComponent,u=0;u<e.length;u++){var c=e[u];if("string"!=typeof c){var d,f=l[c.name];if(null==f){if(c.optional){c.partial&&(a+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(r(f)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(f)+"`");if(0===f.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var p=0;p<f.length;p++){if(d=s(f[p]),!n[u].test(d))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(d)+"`");a+=(0===p?c.prefix:c.delimiter)+d}}else{if(d=c.asterisk?encodeURI(f).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):s(f),!n[u].test(d))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+d+'"');a+=c.prefix+d}}else a+=c}return a}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function u(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function c(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function f(e,t,n){r(t)||(n=t||n,t=[]);for(var o=(n=n||{}).strict,a=!1!==n.end,i="",l=0;l<e.length;l++){var u=e[l];if("string"==typeof u)i+=s(u);else{var f=s(u.prefix),p="(?:"+u.pattern+")";t.push(u),u.repeat&&(p+="(?:"+f+p+")*"),i+=p=u.optional?u.partial?f+"("+p+")?":"(?:"+f+"("+p+"))?":f+"("+p+")"}}var h=s(n.delimiter||"/"),m=i.slice(-h.length)===h;return o||(i=(m?i.slice(0,-h.length):i)+"(?:"+h+"(?=$))?"),i+=a?"$":o&&m?"":"(?="+h+"|$)",c(new RegExp("^"+i,d(n)),t)}function p(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return c(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],o=0;o<e.length;o++)r.push(p(e[o],t,n).source);return c(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return f(a(e,n),t,n)}(e,t,n)}},86718:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(97582).__importDefault(n(45503));t.default=function(e){return!e.prototype?r.default(e):e}},27162:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.divWrapper=void 0;var r=n(97582),o=r.__importStar(n(67294)),a=r.__importDefault(n(86718)),i=o.createElement,l=function(e,t,n,o){var a;return i(e,t?r.__assign(((a={})[t]=o,a),n):r.__assign(r.__assign({},o),n))};t.divWrapper=function(e,t,n,r){return i("div",null,l(e,t,n,r))};t.default=function(e,t,n){void 0===n&&(n=l);var r=function(o,l,s){void 0===l&&(l=t),void 0===s&&(s=null);var u="string"==typeof o;if(u)return function(e){return r(e,o||t,l)};var c=function(t){return i(e,s,(function(e){return n(o,l,t,e)}))};return u?a.default(c):c};return r}},3:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(97582).__importDefault(n(95364)),o=function(e){return[e]};t.default=function(e,t){return void 0===t&&(t=o),function(n){return r.default(n,e.apply(void 0,t(n)))}}},96260:(e,t,n)=>{"use strict";var r=n(97582);r.__importDefault(n(95364)).default,r.__importDefault(n(27162)).default,r.__importDefault(n(3)).default},95364:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(97582),o=n(67294),a=parseInt(o.version.substr(0,o.version.indexOf(".")))>15;t.default=function(e,t){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];var l=e.render,s=e.children,u=void 0===s?l:s,c=e.component,d=e.comp,f=void 0===d?c:d;return"function"==typeof u?u.apply(void 0,r.__spreadArrays([t],n)):f?o.createElement(f,t):u instanceof Array?a?u:o.createElement.apply(void 0,r.__spreadArrays(["div",null],u)):u&&u instanceof Object?"string"==typeof u.type?u:o.cloneElement(u,Object.assign({},u.props,t)):u||null}},45503:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(97582),o=r.__importStar(n(67294));t.default=function(e){var t=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(n,t),n.prototype.render=function(){return e(this.props,this.context)},n}(o.Component);return t}},89164:(e,t,n)=>{"use strict";n.r(t),n.d(t,{createBreakpoint:()=>Ae,createGlobalState:()=>xn,createMemo:()=>a,createReducer:()=>u,createReducerContext:()=>i,createStateContext:()=>c,ensuredForwardRef:()=>ue,useAsync:()=>h,useAsyncFn:()=>p,useAsyncRetry:()=>m,useAudio:()=>y,useBattery:()=>O,useBeforeUnload:()=>D,useBoolean:()=>I,useClickAway:()=>L,useCookie:()=>M,useCopyToClipboard:()=>z,useCounter:()=>q,useCss:()=>J,useCustomCompareEffect:()=>ee,useDebounce:()=>ne,useDeepCompareEffect:()=>re,useDefault:()=>oe,useDrop:()=>ae,useDropArea:()=>ie,useEffectOnce:()=>le,useEnsuredForwardedRef:()=>se,useError:()=>he,useEvent:()=>pe,useFavicon:()=>me,useFirstMountState:()=>l,useFullscreen:()=>be,useGeolocation:()=>ye,useGetSet:()=>V,useGetSetState:()=>we,useHarmonicIntervalFn:()=>ke,useHash:()=>_n,useHover:()=>Se,useHoverDirty:()=>Ce,useIdle:()=>De,useIntersection:()=>Pe,useInterval:()=>Ne,useIsomorphicLayoutEffect:()=>Y,useKey:()=>Ie,useKeyPress:()=>Le,useKeyPressEvent:()=>Re,useLatest:()=>je,useLifecycles:()=>Me,useList:()=>Fe,useLocalStorage:()=>Be,useLocation:()=>He,useLockBodyScroll:()=>Ye,useLogger:()=>Xe,useLongPress:()=>Je,useMap:()=>et,useMeasure:()=>gn,useMedia:()=>tt,useMediaDevices:()=>nt,useMediatedState:()=>rt,useMethods:()=>ot,useMotion:()=>it,useMount:()=>lt,useMountedState:()=>f,useMouse:()=>ct,useMouseHovered:()=>ft,useMouseWheel:()=>pt,useMultiStateValidator:()=>fn,useNetworkState:()=>vt,useNumber:()=>bt,useObservable:()=>yt,useOrientation:()=>xt,usePageLeave:()=>_t,usePermission:()=>kt,usePinchZoom:()=>bn,usePrevious:()=>Et,usePreviousDistinct:()=>Ct,usePromise:()=>Tt,useQueue:()=>Ot,useRaf:()=>Dt,useRafLoop:()=>Pt,useRafState:()=>ut,useRendersCount:()=>yn,useScratch:()=>Lt,useScroll:()=>Rt,useScrollbarWidth:()=>dn,useScrolling:()=>jt,useSearchParam:()=>It,useSessionStorage:()=>Mt,useSet:()=>wn,useSetState:()=>g,useShallowCompareEffect:()=>zt,useSize:()=>Vt,useSlider:()=>qt,useSpeech:()=>Gt,useStartTyping:()=>Zt,useStateList:()=>Yt,useStateValidator:()=>un,useStateWithHistory:()=>Qt,useThrottle:()=>Xt,useThrottleFn:()=>Kt,useTimeout:()=>Jt,useTimeoutFn:()=>te,useTitle:()=>tn,useToggle:()=>N,useTween:()=>rn,useUnmount:()=>st,useUnmountPromise:()=>on,useUpdate:()=>U,useUpdateEffect:()=>s,useUpsert:()=>an,useVibrate:()=>ln,useVideo:()=>sn,useWindowScroll:()=>pn,useWindowSize:()=>hn});var r=n(67294),o=n.t(r,2);const a=function(e){return function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return(0,r.useMemo)((function(){return e.apply(void 0,t)}),t)}};const i=function(e,t){var n=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(n);if(null==e)throw new Error("useReducerContext must be used inside a ReducerProvider.");return e},function(o){var a=o.children,i=o.initialState;return function(e,t){return(0,r.createElement)(n.Provider,e,t)}({value:(0,r.useReducer)(e,void 0!==i?i:t)},a)},n]};function l(){var e=(0,r.useRef)(!0);return e.current?(e.current=!1,!0):e.current}const s=function(e,t){var n=l();(0,r.useEffect)((function(){if(!n)return e()}),t)};const u=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n,o=(n=e,function(e,t){return n.reduceRight((function(t,n){return n(e)(t)}),t)});return function(e,t,n){void 0===n&&(n=function(e){return e});var a=(0,r.useRef)(n(t)),i=(0,r.useState)(a.current)[1],l=(0,r.useCallback)((function(t){return a.current=e(a.current,t),i(a.current),t}),[e]),u=(0,r.useRef)(o({getState:function(){return a.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current.apply(u,e)}},l));return s((function(){u.current=o({getState:function(){return a.current},dispatch:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return u.current.apply(u,e)}},l)}),[l]),[a.current,u.current]}};const c=function(e){var t=(0,r.createContext)(void 0);return[function(){var e=(0,r.useContext)(t);if(null==e)throw new Error("useStateContext must be used inside a StateProvider.");return e},function(n){var o=n.children,a=n.initialValue;return function(e,n){return(0,r.createElement)(t.Provider,e,n)}({value:(0,r.useState)(void 0!==a?a:e)},o)},t]};var d=n(97582);function f(){var e=(0,r.useRef)(!1),t=(0,r.useCallback)((function(){return e.current}),[]);return(0,r.useEffect)((function(){return e.current=!0,function(){e.current=!1}}),[]),t}function p(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var o=(0,r.useRef)(0),a=f(),i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=++o.current;return l.loading||s((function(e){return(0,d.__assign)((0,d.__assign)({},e),{loading:!0})})),e.apply(void 0,t).then((function(e){return a()&&r===o.current&&s({value:e,loading:!1}),e}),(function(e){return a()&&r===o.current&&s({error:e,loading:!1}),e}))}),t);return[l,u]}function h(e,t){void 0===t&&(t=[]);var n=p(e,t,{loading:!0}),o=n[0],a=n[1];return(0,r.useEffect)((function(){a()}),[a]),o}const m=function(e,t){void 0===t&&(t=[]);var n=(0,r.useState)(0),o=n[0],a=n[1],i=h(e,(0,d.__spreadArrays)(t,[o])),l=i.loading,s=(0,r.useCallback)((function(){l||a((function(e){return e+1}))}),(0,d.__spreadArrays)(t,[l]));return(0,d.__assign)((0,d.__assign)({},i),{retry:s})};const g=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],o=t[1];return[n,(0,r.useCallback)((function(e){o((function(t){return Object.assign({},t,e instanceof Function?e(t):e)}))}),[])]};function v(e){for(var t=[],n=0;n<e.length;n++)t.push({start:e.start(n),end:e.end(n)});return t}function b(e){return function(t){var n,o;o=r.isValidElement(t)?(n=t).props:t;var a=g({buffered:[],time:0,duration:0,paused:!0,muted:!1,volume:1,playing:!1}),i=a[0],l=a[1],s=(0,r.useRef)(null),u=function(e,t){return function(n){try{t&&t(n)}finally{e&&e(n)}}},c=function(){return l({paused:!1})},f=function(){return l({playing:!0})},p=function(){return l({playing:!1})},h=function(){return l({paused:!0,playing:!1})},m=function(){var e=s.current;e&&l({muted:e.muted,volume:e.volume})},b=function(){var e=s.current;if(e){var t=e.duration,n=e.buffered;l({duration:t,buffered:v(n)})}},y=function(){var e=s.current;e&&l({time:e.currentTime})},w=function(){var e=s.current;e&&l({buffered:v(e.buffered)})};n=n?r.cloneElement(n,(0,d.__assign)((0,d.__assign)({controls:!1},o),{ref:s,onPlay:u(o.onPlay,c),onPlaying:u(o.onPlaying,f),onWaiting:u(o.onWaiting,p),onPause:u(o.onPause,h),onVolumeChange:u(o.onVolumeChange,m),onDurationChange:u(o.onDurationChange,b),onTimeUpdate:u(o.onTimeUpdate,y),onProgress:u(o.onProgress,w)})):r.createElement(e,(0,d.__assign)((0,d.__assign)({controls:!1},o),{ref:s,onPlay:u(o.onPlay,c),onPlaying:u(o.onPlaying,f),onWaiting:u(o.onWaiting,p),onPause:u(o.onPause,h),onVolumeChange:u(o.onVolumeChange,m),onDurationChange:u(o.onDurationChange,b),onTimeUpdate:u(o.onTimeUpdate,y),onProgress:u(o.onProgress,w)}));var x=!1,_={play:function(){var e=s.current;if(e&&!x){var t=e.play();if("object"==typeof t){x=!0;var n=function(){x=!1};t.then(n,n)}return t}},pause:function(){var e=s.current;if(e&&!x)return e.pause()},seek:function(e){var t=s.current;t&&void 0!==i.duration&&(e=Math.min(i.duration,Math.max(0,e)),t.currentTime=e)},volume:function(e){var t=s.current;t&&(e=Math.min(1,Math.max(0,e)),t.volume=e,l({volume:e}))},mute:function(){var e=s.current;e&&(e.muted=!0)},unmute:function(){var e=s.current;e&&(e.muted=!1)}};return(0,r.useEffect)((function(){var e=s.current;e&&(l({volume:e.volume,muted:e.muted,paused:e.paused}),o.autoPlay&&e.paused&&_.play())}),[o.src]),[n,i,_,s]}}const y=b("audio");var w=function(){};function x(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.addEventListener&&e.addEventListener.apply(e,t)}function _(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}var k="undefined"!=typeof window,E="undefined"!=typeof navigator,S=n(38252);const C=n.n(S)();var T=E?navigator:void 0;const O=T&&"function"==typeof T.getBattery?function(){var e=(0,r.useState)({isSupported:!0,fetched:!1}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,r=null,o=function(){if(e&&r){var o={isSupported:!0,fetched:!0,level:r.level,charging:r.charging,dischargingTime:r.dischargingTime,chargingTime:r.chargingTime};!C(t,o)&&n(o)}};return T.getBattery().then((function(t){e&&(x(r=t,"chargingchange",o),x(r,"chargingtimechange",o),x(r,"dischargingtimechange",o),x(r,"levelchange",o),o())})),function(){e=!1,r&&(_(r,"chargingchange",o),_(r,"chargingtimechange",o),_(r,"dischargingtimechange",o),_(r,"levelchange",o))}}),[]),t}:function(){return{isSupported:!1}};const D=function(e,t){void 0===e&&(e=!0);var n=(0,r.useCallback)((function(n){if("function"!=typeof e||e())return n.preventDefault(),t&&(n.returnValue=t),t}),[e,t]);(0,r.useEffect)((function(){if(e)return x(window,"beforeunload",n),function(){return _(window,"beforeunload",n)}}),[e,n])};var P=function(e,t){return"boolean"==typeof t?t:!e};const N=function(e){return(0,r.useReducer)(P,e)},I=N;var A=["mousedown","touchstart"];const L=function(e,t,n){void 0===n&&(n=A);var o=(0,r.useRef)(t);(0,r.useEffect)((function(){o.current=t}),[t]),(0,r.useEffect)((function(){for(var t=function(t){var n=e.current;n&&!n.contains(t.target)&&o.current(t)},r=0,a=n;r<a.length;r++){var i=a[r];x(document,i,t)}return function(){for(var e=0,r=n;e<r.length;e++){var o=r[e];_(document,o,t)}}}),[n,e])};var R=n(36808),j=n.n(R);const M=function(e){var t=(0,r.useState)((function(){return j().get(e)||null})),n=t[0],o=t[1];return[n,(0,r.useCallback)((function(t,n){j().set(e,t,n),o(t)}),[e]),(0,r.useCallback)((function(){j().remove(e),o(null)}),[e])]};var F=n(20640),B=n.n(F);const z=function(){var e=f(),t=g({value:void 0,error:void 0,noUserInteraction:!0}),n=t[0],o=t[1];return[n,(0,r.useCallback)((function(t){var n,r;if(e())try{if("string"!=typeof t&&"number"!=typeof t){var a=new Error("Cannot copy typeof "+typeof t+" to clipboard, must be a string");return void o({value:t,error:a,noUserInteraction:!0})}if(""===t){a=new Error("Cannot copy empty string to clipboard.");return void o({value:t,error:a,noUserInteraction:!0})}r=t.toString(),n=B()(r),o({value:r,error:void 0,noUserInteraction:n})}catch(a){o({value:r,error:a,noUserInteraction:n})}}),[])]};var $=function(e){return(e+1)%1e6};function U(){return(0,r.useReducer)($,0)[1]}function H(e,t){return"function"==typeof e?e.length?e(t):e():e}function V(e){var t=(0,r.useRef)(H(e)),n=U();return(0,r.useMemo)((function(){return[function(){return t.current},function(e){t.current=H(e,t.current),n()}]}),[])}function q(e,t,n){void 0===e&&(e=0),void 0===t&&(t=null),void 0===n&&(n=null);var o=H(e);"number"!=typeof o&&console.error("initialValue has to be a number, got "+typeof e),"number"==typeof n?o=Math.max(o,n):null!==n&&console.error("min has to be a number, got "+typeof n),"number"==typeof t?o=Math.min(o,t):null!==t&&console.error("max has to be a number, got "+typeof t);var a=V(o),i=a[0],l=a[1];return[i(),(0,r.useMemo)((function(){var e=function(e){var r=i(),o=H(e,r);r!==o&&("number"==typeof n&&(o=Math.max(o,n)),"number"==typeof t&&(o=Math.min(o,t)),r!==o&&l(o))};return{get:i,set:e,inc:function(t){void 0===t&&(t=1);var n=H(t,i());"number"!=typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e+n}))},dec:function(t){void 0===t&&(t=1);var n=H(t,i());"number"!=typeof n&&console.error("delta has to be a number or function returning a number, got "+typeof n),e((function(e){return e-n}))},reset:function(t){void 0===t&&(t=o);var n=H(t,i());"number"!=typeof n&&console.error("value has to be a number or function returning a number, got "+typeof n),o=n,e(n)}}}),[o,n,t])]}var W=n(40818),G=n(97142),Z=n(52099),Q=n(87749);const Y=k?r.useLayoutEffect:r.useEffect;var X=(0,W.U)();(0,G.I)(X),(0,Z.I)(X);var K=0;const J=function(e){var t=(0,r.useMemo)((function(){return"react-use-css-"+(K++).toString(36)}),[]),n=(0,r.useMemo)((function(){return new X.VSheet}),[]);return Y((function(){var r={};return(0,Q.z)(r,e,"."+t,""),n.diff(r),function(){n.diff({})}})),t};const ee=function(e,t,n){var o=(0,r.useRef)(void 0);o.current&&n(t,o.current)||(o.current=t),(0,r.useEffect)(e,o.current)};function te(e,t){void 0===t&&(t=0);var n=(0,r.useRef)(!1),o=(0,r.useRef)(),a=(0,r.useRef)(e),i=(0,r.useCallback)((function(){return n.current}),[]),l=(0,r.useCallback)((function(){n.current=!1,o.current&&clearTimeout(o.current),o.current=setTimeout((function(){n.current=!0,a.current()}),t)}),[t]),s=(0,r.useCallback)((function(){n.current=null,o.current&&clearTimeout(o.current)}),[]);return(0,r.useEffect)((function(){a.current=e}),[e]),(0,r.useEffect)((function(){return l(),s}),[t]),[i,s,l]}function ne(e,t,n){void 0===t&&(t=0),void 0===n&&(n=[]);var o=te(e,t),a=o[0],i=o[1],l=o[2];return(0,r.useEffect)(l,n),[a,i]}const re=function(e,t){ee(e,t,C)};const oe=function(e,t){var n=(0,r.useState)(t),o=n[0],a=n[1];return null==o?[e,a]:[o,a]};const ae=function(e,t){void 0===e&&(e={}),void 0===t&&(t=[]);var n=e.onFiles,o=e.onText,a=e.onUri,i=(0,r.useState)(!1),l=i[0],s=i[1],u=(0,r.useCallback)(s,[]),c=(0,r.useMemo)((function(){return function(e){return function(t,n){var r=t.getData("text/uri-list");if(r)(e.onUri||w)(r,n);else if(t.files&&t.files.length)(e.onFiles||w)(Array.from(t.files),n);else if(n.clipboardData){var o=n.clipboardData.getData("text");(e.onText||w)(o,n)}}}(e)}),[n,o,a]);return(0,r.useEffect)((function(){var e=function(e){e.preventDefault(),u(!0)},t=function(e){e.preventDefault(),u(!0)},n=function(){u(!1)},r=function(){u(!1)},a=function(e){e.preventDefault(),u(!1),c(e.dataTransfer,e)},i=function(e){c(e.clipboardData,e)};return x(document,"dragover",e),x(document,"dragenter",t),x(document,"dragleave",n),x(document,"dragexit",r),x(document,"drop",a),o&&x(document,"paste",i),function(){_(document,"dragover",e),_(document,"dragenter",t),_(document,"dragleave",n),_(document,"dragexit",r),_(document,"drop",a),_(document,"paste",i)}}),(0,d.__spreadArrays)([c],t)),{over:l}};const ie=function(e){void 0===e&&(e={});var t=e.onFiles,n=e.onText,o=e.onUri,a=f(),i=(0,r.useState)(!1),l=i[0],s=i[1],u=(0,r.useMemo)((function(){return function(e,t){return function(n,r){var o=n.getData("text/uri-list");o?(e.onUri||w)(o,r):n.files&&n.files.length?(e.onFiles||w)(Array.from(n.files),r):n.items&&n.items.length&&n.items[0].getAsString((function(n){t&&(e.onText||w)(n,r)}))}}(e,a())}),[t,n,o]),c=(0,r.useMemo)((function(){return function(e,t){return{onDragOver:function(e){e.preventDefault()},onDragEnter:function(e){e.preventDefault(),t(!0)},onDragLeave:function(){t(!1)},onDrop:function(n){n.preventDefault(),n.persist(),t(!1),e(n.dataTransfer,n)},onPaste:function(t){t.persist(),e(t.clipboardData,t)}}}(u,s)}),[u,s]);return[c,{over:l}]};const le=function(e){(0,r.useEffect)(e,[])};function se(e){var t=(0,r.useRef)(e&&e.current);return(0,r.useEffect)((function(){e&&(e.current=t.current)}),[e]),t}function ue(e){return(0,r.forwardRef)((function(t,n){var r=se(n);return e(t,r)}))}var ce=k?window:null,de=function(e){return!!e.addEventListener},fe=function(e){return!!e.on};const pe=function(e,t,n,o){void 0===n&&(n=ce),(0,r.useEffect)((function(){if(t&&n)return de(n)?x(n,e,t,o):fe(n)&&n.on(e,t,o),function(){de(n)?_(n,e,t,o):fe(n)&&n.off(e,t,o)}}),[e,t,n,JSON.stringify(o)])};const he=function(){var e=(0,r.useState)(null),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(t)throw t}),[t]),(0,r.useCallback)((function(e){n(e)}),[])};const me=function(e){(0,r.useEffect)((function(){var t=document.querySelector("link[rel*='icon']")||document.createElement("link");t.type="image/x-icon",t.rel="shortcut icon",t.href=e,document.getElementsByTagName("head")[0].appendChild(t)}),[e])};var ge=n(10577),ve=n.n(ge);const be=function(e,t,n){void 0===n&&(n={});var o=n.video,a=n.onClose,i=void 0===a?w:a,l=(0,r.useState)(t),s=l[0],u=l[1];return Y((function(){if(t&&e.current){var n=function(){(null==o?void 0:o.current)&&_(o.current,"webkitendfullscreen",n),i()},r=function(){if(ve().isEnabled){var e=ve().isFullscreen;u(e),e||i()}};if(ve().isEnabled){try{ve().request(e.current),u(!0)}catch(l){i(l),u(!1)}ve().on("change",r)}else o&&o.current&&o.current.webkitEnterFullscreen?(o.current.webkitEnterFullscreen(),x(o.current,"webkitendfullscreen",n),u(!0)):(i(),u(!1));return function(){if(u(!1),ve().isEnabled)try{ve().off("change",r),ve().exit()}catch(a){}else o&&o.current&&o.current.webkitExitFullscreen&&(_(o.current,"webkitendfullscreen",n),o.current.webkitExitFullscreen())}}}),[t,o,e]),s};const ye=function(e){var t,n=(0,r.useState)({loading:!0,accuracy:null,altitude:null,altitudeAccuracy:null,heading:null,latitude:null,longitude:null,speed:null,timestamp:Date.now()}),o=n[0],a=n[1],i=!0,l=function(e){i&&a({loading:!1,accuracy:e.coords.accuracy,altitude:e.coords.altitude,altitudeAccuracy:e.coords.altitudeAccuracy,heading:e.coords.heading,latitude:e.coords.latitude,longitude:e.coords.longitude,speed:e.coords.speed,timestamp:e.timestamp})},s=function(e){return i&&a((function(t){return(0,d.__assign)((0,d.__assign)({},t),{loading:!1,error:e})}))};return(0,r.useEffect)((function(){return navigator.geolocation.getCurrentPosition(l,s,e),t=navigator.geolocation.watchPosition(l,s,e),function(){i=!1,navigator.geolocation.clearWatch(t)}}),[]),o};const we=function(e){void 0===e&&(e={});var t=U(),n=(0,r.useRef)((0,d.__assign)({},e));return[(0,r.useCallback)((function(){return n.current}),[]),(0,r.useCallback)((function(e){e&&(Object.assign(n.current,e),t())}),[])]};var xe=0,_e={};const ke=function(e,t){void 0===t&&(t=0);var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=function(e,t){var n,r=xe++;if(_e[t])_e[t].listeners[r]=e;else{var o=setInterval((function(){for(var e,n=_e[t].listeners,r=!1,o=0,a=Object.values(n);o<a.length;o++){var i=a[o];try{i()}catch(l){r=!0,e=l}}if(r)throw e}),t);_e[t]={ms:t,timer:o,listeners:(n={},n[r]=e,n)}}return{bucket:_e[t],id:r}}((function(){return n.current()}),t);return function(){return function(e){var t=e.bucket,n=e.id;delete t.listeners[n];var r=!1;for(var o in t.listeners){r=!0;break}r||(clearInterval(t.timer),delete _e[t.ms])}(e)}}}),[t])};var Ee=r.useState;const Se=function(e){var t,n,o=Ee(!1),a=o[0],i=o[1];return"function"==typeof e&&(e=e(a)),[r.cloneElement(e,{onMouseEnter:(n=e.props.onMouseEnter,function(e){(n||w)(e),i(!0)}),onMouseLeave:(t=e.props.onMouseLeave,function(e){(t||w)(e),i(!1)})}),a]};const Ce=function(e,t){void 0===t&&(t=!0);var n=(0,r.useState)(!1),o=n[0],a=n[1];return(0,r.useEffect)((function(){var n=function(){return a(!0)},r=function(){return a(!1)};t&&e&&e.current&&(x(e.current,"mouseover",n),x(e.current,"mouseout",r));var o=e.current;return function(){t&&o&&(_(o,"mouseover",n),_(o,"mouseout",r))}}),[t,e]),o};function Te(e,t,n,r){var o,a=!1,i=0;function l(){o&&clearTimeout(o)}function s(){for(var s=arguments.length,u=new Array(s),c=0;c<s;c++)u[c]=arguments[c];var d=this,f=Date.now()-i;function p(){i=Date.now(),n.apply(d,u)}a||(r&&!o&&p(),l(),void 0===r&&f>e?p():!0!==t&&(o=setTimeout(r?function(){o=void 0}:p,void 0===r?e-f:e)))}return"boolean"!=typeof t&&(r=n,n=t,t=void 0),s.cancel=function(){l(),a=!0},s}var Oe=["mousemove","mousedown","resize","keydown","touchstart","wheel"];const De=function(e,t,n){void 0===e&&(e=6e4),void 0===t&&(t=!1),void 0===n&&(n=Oe);var o=(0,r.useState)(t),a=o[0],i=o[1];return(0,r.useEffect)((function(){for(var t,r=!0,o=a,l=function(e){r&&(o=e,i(e))},s=Te(50,(function(){o&&l(!1),clearTimeout(t),t=setTimeout((function(){return l(!0)}),e)})),u=function(){document.hidden||s()},c=0;c<n.length;c++)x(window,n[c],s);return x(document,"visibilitychange",u),t=setTimeout((function(){return l(!0)}),e),function(){r=!1;for(var e=0;e<n.length;e++)_(window,n[e],s);_(document,"visibilitychange",u)}}),[e,n]),a};const Pe=function(e,t){var n=(0,r.useState)(null),o=n[0],a=n[1];return(0,r.useEffect)((function(){if(e.current&&"function"==typeof IntersectionObserver){var n=new IntersectionObserver((function(e){a(e[0])}),t);return n.observe(e.current),function(){a(null),n.disconnect()}}return function(){}}),[e.current,t.threshold,t.root,t.rootMargin]),o};const Ne=function(e,t){var n=(0,r.useRef)((function(){}));(0,r.useEffect)((function(){n.current=e})),(0,r.useEffect)((function(){if(null!==t){var e=setInterval((function(){return n.current()}),t||0);return function(){return clearInterval(e)}}}),[t])};const Ie=function(e,t,n,o){void 0===t&&(t=w),void 0===n&&(n={}),void 0===o&&(o=[e]);var a=n.event,i=void 0===a?"keydown":a,l=n.target,s=n.options,u=(0,r.useMemo)((function(){var n,r="function"==typeof(n=e)?n:"string"==typeof n?function(e){return e.key===n}:n?function(){return!0}:function(){return!1};return function(e){if(r(e))return t(e)}}),o);pe(i,u,l,s)};const Ae=function(e){return void 0===e&&(e={laptopL:1440,laptop:1024,tablet:768}),function(){var t=(0,r.useState)(k?window.innerWidth:0),n=t[0],o=t[1];(0,r.useEffect)((function(){var e=function(){o(window.innerWidth)};return e(),x(window,"resize",e),function(){_(window,"resize",e)}}));var a=(0,r.useMemo)((function(){return Object.entries(e).sort((function(e,t){return e[1]>=t[1]?1:-1}))}),[e]),i=a.reduce((function(e,t){var r=t[0],o=t[1];return n>=o?r:e}),a[0][0]);return i}};const Le=function(e){var t=(0,r.useState)([!1,null]),n=t[0],o=t[1];return Ie(e,(function(e){return o([!0,e])}),{event:"keydown"},[n]),Ie(e,(function(e){return o([!1,e])}),{event:"keyup"},[n]),n};const Re=function(e,t,n,r){void 0===r&&(r=Le);var o=r(e),a=o[0],i=o[1];s((function(){!a&&n?n(i):a&&t&&t(i)}),[a])};const je=function(e){var t=(0,r.useRef)(e);return t.current=e,t};const Me=function(e,t){(0,r.useEffect)((function(){return e&&e(),function(){t&&t()}}),[])};const Fe=function(e){void 0===e&&(e=[]);var t=(0,r.useRef)(H(e)),n=U(),o=(0,r.useMemo)((function(){var r={set:function(e){t.current=H(e,t.current),n()},push:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];e.length&&o.set((function(t){return t.concat(e)}))},updateAt:function(e,t){o.set((function(n){var r=n.slice();return r[e]=t,r}))},insertAt:function(e,t){o.set((function(n){var r=n.slice();return e>r.length?r[e]=t:r.splice(e,0,t),r}))},update:function(e,t){o.set((function(n){return n.map((function(n){return e(n,t)?t:n}))}))},updateFirst:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0&&o.updateAt(r,n)},upsert:function(e,n){var r=t.current.findIndex((function(t){return e(t,n)}));r>=0?o.updateAt(r,n):o.push(n)},sort:function(e){o.set((function(t){return t.slice().sort(e)}))},filter:function(e,t){o.set((function(n){return n.slice().filter(e,t)}))},removeAt:function(e){o.set((function(t){var n=t.slice();return n.splice(e,1),n}))},clear:function(){o.set([])},reset:function(){o.set(H(e).slice())}};return r.remove=r.removeAt,r}),[]);return[t.current,o]};const Be=function(e,t,n){if(!k)return[t,w,w];if(!e)throw new Error("useLocalStorage key may not be falsy");var o=n?n.raw?function(e){return e}:n.deserializer:JSON.parse,a=(0,r.useRef)((function(e){try{var r=n?n.raw?String:n.serializer:JSON.stringify,a=localStorage.getItem(e);return null!==a?o(a):(t&&localStorage.setItem(e,r(t)),t)}catch(i){return t}})),i=(0,r.useState)((function(){return a.current(e)})),l=i[0],s=i[1];(0,r.useLayoutEffect)((function(){return s(a.current(e))}),[e]);var u=(0,r.useCallback)((function(t){try{var r="function"==typeof t?t(l):t;if(void 0===r)return;var a=void 0;a=n?n.raw?"string"==typeof r?r:JSON.stringify(r):n.serializer?n.serializer(r):JSON.stringify(r):JSON.stringify(r),localStorage.setItem(e,a),s(o(a))}catch(i){}}),[e,s]),c=(0,r.useCallback)((function(){try{localStorage.removeItem(e),s(void 0)}catch(i){}}),[e,s]);return[l,u,c]};var ze=function(e){var t=window.history,n=t[e];t[e]=function(t){var r=n.apply(this,arguments),o=new Event(e.toLowerCase());return o.state=t,window.dispatchEvent(o),r}};k&&(ze("pushState"),ze("replaceState"));var $e=function(e){var t=window.history,n=t.state,r=t.length,o=window.location;return{trigger:e,state:n,length:r,hash:o.hash,host:o.host,hostname:o.hostname,href:o.href,origin:o.origin,pathname:o.pathname,port:o.port,protocol:o.protocol,search:o.search}},Ue="function"==typeof Event;const He=k&&Ue?function(){var e=(0,r.useState)($e("load")),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){return n($e("popstate"))},t=function(){return n($e("pushstate"))},r=function(){return n($e("replacestate"))};return x(window,"popstate",e),x(window,"pushstate",t),x(window,"replacestate",r),function(){_(window,"popstate",e),_(window,"pushstate",t),_(window,"replacestate",r)}}),[]),t}:function(){return{trigger:"load",length:1}};function Ve(e){if(!e)return null;if("BODY"===e.tagName)return e;if("IFRAME"===e.tagName){var t=e.contentDocument;return t?t.body:null}return e.offsetParent?Ve(e.offsetParent):null}function qe(e){var t=e||window.event;return t.touches.length>1||(t.preventDefault&&t.preventDefault(),!1)}var We=k&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),Ge=new Map,Ze="object"==typeof document?document:void 0,Qe=!1;const Ye=Ze?function(e,t){void 0===e&&(e=!0);var n=(0,r.useRef)(Ze.body);t=t||n;var o=function(e){var t=Ge.get(e);t&&(1===t.counter?(Ge.delete(e),We?(e.ontouchmove=null,Qe&&(_(document,"touchmove",qe),Qe=!1)):e.style.overflow=t.initialOverflow):Ge.set(e,{counter:t.counter-1,initialOverflow:t.initialOverflow}))};(0,r.useEffect)((function(){var n=Ve(t.current);n&&(e?function(e){var t=Ge.get(e);t?Ge.set(e,{counter:t.counter+1,initialOverflow:t.initialOverflow}):(Ge.set(e,{counter:1,initialOverflow:e.style.overflow}),We?Qe||(x(document,"touchmove",qe,{passive:!1}),Qe=!0):e.style.overflow="hidden")}(n):o(n))}),[e,t.current]),(0,r.useEffect)((function(){var e=Ve(t.current);if(e)return function(){o(e)}}),[])}:function(e,t){void 0===e&&(e=!0)};const Xe=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];le((function(){return console.log.apply(console,(0,d.__spreadArrays)([e+" mounted"],t)),function(){return console.log(e+" unmounted")}})),s((function(){console.log.apply(console,(0,d.__spreadArrays)([e+" updated"],t))}))};var Ke=function(e){(function(e){return"touches"in e})(e)&&e.touches.length<2&&e.preventDefault&&e.preventDefault()};const Je=function(e,t){var n=void 0===t?{}:t,o=n.isPreventDefault,a=void 0===o||o,i=n.delay,l=void 0===i?300:i,s=(0,r.useRef)(),u=(0,r.useRef)(),c=(0,r.useCallback)((function(t){a&&t.target&&(x(t.target,"touchend",Ke,{passive:!1}),u.current=t.target),s.current=setTimeout((function(){return e(t)}),l)}),[e,l,a]),d=(0,r.useCallback)((function(){s.current&&clearTimeout(s.current),a&&u.current&&_(u.current,"touchend",Ke)}),[a]);return{onMouseDown:function(e){return c(e)},onTouchStart:function(e){return c(e)},onMouseUp:d,onMouseLeave:d,onTouchEnd:d}};const et=function(e){void 0===e&&(e={});var t=(0,r.useState)(e),n=t[0],o=t[1],a=(0,r.useMemo)((function(){return{set:function(e,t){o((function(n){var r;return(0,d.__assign)((0,d.__assign)({},n),((r={})[e]=t,r))}))},setAll:function(e){o(e)},remove:function(e){o((function(t){var n=t,r=e;n[r];return(0,d.__rest)(n,["symbol"==typeof r?r:r+""])}))},reset:function(){return o(e)}}}),[o]),i=(0,d.__assign)({get:(0,r.useCallback)((function(e){return n[e]}),[n])},a);return[n,i]};const tt=function(e,t){var n=(0,r.useState)(function(e,t){return void 0!==t?t:!!k&&window.matchMedia(e).matches}(e,t)),o=n[0],a=n[1];return(0,r.useEffect)((function(){var t=!0,n=window.matchMedia(e),r=function(){t&&a(!!n.matches)};return n.addListener(r),a(n.matches),function(){t=!1,n.removeListener(r)}}),[e]),o};const nt=E&&navigator.mediaDevices?function(){var e=(0,r.useState)({}),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=!0,t=function(){navigator.mediaDevices.enumerateDevices().then((function(t){e&&n({devices:t.map((function(e){return{deviceId:e.deviceId,groupId:e.groupId,kind:e.kind,label:e.label}}))})})).catch(w)};return x(navigator.mediaDevices,"devicechange",t),t(),function(){e=!1,_(navigator.mediaDevices,"devicechange",t)}}),[]),t}:function(){return{}};function rt(e,t){var n=(0,r.useRef)(e),o=(0,r.useState)(t),a=o[0],i=o[1];return[a,(0,r.useCallback)((function(e){2===n.current.length?n.current(e,i):i(n.current(e))}),[a])]}const ot=function(e,t){var n=(0,r.useMemo)((function(){return function(t,n){var r;return(r=e(t))[n.type].apply(r,n.payload)}}),[e]),o=(0,r.useReducer)(n,t),a=o[0],i=o[1],l=(0,r.useMemo)((function(){return Object.keys(e(t)).reduce((function(e,t){return e[t]=function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return i({type:t,payload:e})},e}),{})}),[e,t]);return[a,l]};var at={acceleration:{x:null,y:null,z:null},accelerationIncludingGravity:{x:null,y:null,z:null},rotationRate:{alpha:null,beta:null,gamma:null},interval:16};const it=function(e){void 0===e&&(e=at);var t=(0,r.useState)(e),n=t[0],o=t[1];return(0,r.useEffect)((function(){var e=function(e){var t=e.acceleration,n=e.accelerationIncludingGravity,r=e.rotationRate,a=e.interval;o({acceleration:{x:t.x,y:t.y,z:t.z},accelerationIncludingGravity:{x:n.x,y:n.y,z:n.z},rotationRate:{alpha:r.alpha,beta:r.beta,gamma:r.gamma},interval:a})};return x(window,"devicemotion",e),function(){_(window,"devicemotion",e)}}),[]),n};const lt=function(e){le((function(){e()}))};const st=function(e){var t=(0,r.useRef)(e);t.current=e,le((function(){return function(){return t.current()}}))};const ut=function(e){var t=(0,r.useRef)(0),n=(0,r.useState)(e),o=n[0],a=n[1],i=(0,r.useCallback)((function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame((function(){a(e)}))}),[]);return st((function(){cancelAnimationFrame(t.current)})),[o,i]};const ct=function(e){var t=ut({docX:0,docY:0,posX:0,posY:0,elX:0,elY:0,elH:0,elW:0}),n=t[0],o=t[1];return(0,r.useEffect)((function(){var t=function(t){if(e&&e.current){var n=e.current.getBoundingClientRect(),r=n.left,a=n.top,i=n.width,l=n.height,s=r+window.pageXOffset,u=a+window.pageYOffset,c=t.pageX-s,d=t.pageY-u;o({docX:t.pageX,docY:t.pageY,posX:s,posY:u,elX:c,elY:d,elH:l,elW:i})}};return x(document,"mousemove",t),function(){_(document,"mousemove",t)}}),[e]),n};var dt={current:null};const ft=function(e,t){void 0===t&&(t={});var n=!!t.whenHovered,r=!!t.bound,o=Ce(e,n),a=ct(n&&!o?dt:e);return r&&(a.elX=Math.max(0,Math.min(a.elX,a.elW)),a.elY=Math.max(0,Math.min(a.elY,a.elH))),a},pt=function(){var e=(0,r.useState)(0),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(e){n(e.deltaY+t)};return x(window,"wheel",e,!1),function(){return _(window,"wheel",e)}})),t};var ht=E?navigator:void 0,mt=ht&&(ht.connection||ht.mozConnection||ht.webkitConnection);function gt(e){var t=null==ht?void 0:ht.onLine,n=null==e?void 0:e.online;return{online:t,previous:n,since:t!==n?new Date:null==e?void 0:e.since,downlink:null==mt?void 0:mt.downlink,downlinkMax:null==mt?void 0:mt.downlinkMax,effectiveType:null==mt?void 0:mt.effectiveType,rtt:null==mt?void 0:mt.rtt,saveData:null==mt?void 0:mt.saveData,type:null==mt?void 0:mt.type}}function vt(e){var t=(0,r.useState)(null!=e?e:gt),n=t[0],o=t[1];return(0,r.useEffect)((function(){var e=function(){o(gt)};return x(window,"online",e,{passive:!0}),x(window,"offline",e,{passive:!0}),mt&&x(mt,"change",e,{passive:!0}),function(){_(window,"online",e),_(window,"offline",e),mt&&_(mt,"change",e)}}),[]),n}const bt=q;const yt=function(e,t){var n=(0,r.useState)(t),o=n[0],a=n[1];return Y((function(){var t=e.subscribe(a);return function(){return t.unsubscribe()}}),[e]),o};var wt={angle:0,type:"landscape-primary"};const xt=function(e){void 0===e&&(e=wt);var t=(0,r.useState)(e),n=t[0],o=t[1];return(0,r.useEffect)((function(){var t=window.screen,n=!0,r=function(){if(n){var r=t.orientation;if(r){var a=r.angle,i=r.type;o({angle:a,type:i})}else void 0!==window.orientation?o({angle:"number"==typeof window.orientation?window.orientation:0,type:""}):o(e)}};return x(window,"orientationchange",r),r(),function(){n=!1,_(window,"orientationchange",r)}}),[]),n};const _t=function(e,t){void 0===t&&(t=[]),(0,r.useEffect)((function(){if(e){var t=function(t){var n=(t=t||window.event).relatedTarget||t.toElement;n&&"HTML"!==n.nodeName||e()};return x(document,"mouseout",t),function(){_(document,"mouseout",t)}}}),t)};const kt=function(e){var t=(0,r.useState)(""),n=t[0],o=t[1];return(0,r.useEffect)((function(){var t=!0,n=null,r=function(){t&&o((function(){var e;return null!==(e=null==n?void 0:n.state)&&void 0!==e?e:""}))};return navigator.permissions.query(e).then((function(e){x(n=e,"change",r),r()})).catch(w),function(){n&&_(n,"change",r),t=!1,n=null}}),[e]),n};function Et(e){var t=(0,r.useRef)();return(0,r.useEffect)((function(){t.current=e})),t.current}var St=function(e,t){return e===t};function Ct(e,t){void 0===t&&(t=St);var n=(0,r.useRef)(),o=(0,r.useRef)(e);return l()||t(o.current,e)||(n.current=o.current,o.current=e),n.current}const Tt=function(){var e=f();return(0,r.useCallback)((function(t){return new Promise((function(n,r){t.then((function(t){e()&&n(t)}),(function(t){e()&&r(t)}))}))}),[])};const Ot=function(e){void 0===e&&(e=[]);var t=(0,r.useState)(e),n=t[0],o=t[1];return{add:function(e){o((function(t){return(0,d.__spreadArrays)(t,[e])}))},remove:function(){var e;return o((function(t){var n=t[0],r=t.slice(1);return e=n,r})),e},get first(){return n[0]},get last(){return n[n.length-1]},get size(){return n.length}}};const Dt=function(e,t){void 0===e&&(e=1e12),void 0===t&&(t=0);var n=(0,r.useState)(0),o=n[0],a=n[1];return Y((function(){var n,r,o,i=function(){var t=Math.min(1,(Date.now()-o)/e);a(t),l()},l=function(){n=requestAnimationFrame(i)},s=setTimeout((function(){r=setTimeout((function(){cancelAnimationFrame(n),a(1)}),e),o=Date.now(),l()}),t);return function(){clearTimeout(r),clearTimeout(s),cancelAnimationFrame(n)}}),[e,t]),o};function Pt(e,t){void 0===t&&(t=!0);var n=(0,r.useRef)(null),o=(0,r.useRef)(!1),a=(0,r.useRef)(e);a.current=e;var i=(0,r.useCallback)((function(e){o.current&&(a.current(e),n.current=requestAnimationFrame(i))}),[]),l=(0,r.useMemo)((function(){return[function(){o.current&&(o.current=!1,n.current&&cancelAnimationFrame(n.current))},function(){o.current||(o.current=!0,n.current=requestAnimationFrame(i))},function(){return o.current}]}),[]);return(0,r.useEffect)((function(){return t&&l[1](),l[0]}),[]),l}var Nt=function(e,t){return new URLSearchParams(e).get(t)};const It=k?function(e){var t=window.location,n=(0,r.useState)((function(){return Nt(t.search,e)})),o=n[0],a=n[1];return(0,r.useEffect)((function(){var n=function(){a(Nt(t.search,e))};return x(window,"popstate",n),x(window,"pushstate",n),x(window,"replacestate",n),function(){_(window,"popstate",n),_(window,"pushstate",n),_(window,"replacestate",n)}}),[]),o}:function(){return null};n(96260);var At=function(e){void 0===e&&(e={});var t=e.disabled,n=je(e),o=(0,r.useState)({isScratching:!1}),a=o[0],i=o[1],l=(0,r.useRef)(a),s=(0,r.useRef)(!1),u=(0,r.useRef)(null),c=(0,r.useState)(null),f=c[0],p=c[1];return(0,r.useEffect)((function(){if(!t&&f){var e,r,o=function(e,t){cancelAnimationFrame(u.current),u.current=requestAnimationFrame((function(){var r=f.getBoundingClientRect(),o=r.left,a=r.top,s=o+window.scrollX,u=a+window.scrollY,c=e-s,p=t-u;i((function(e){var t=(0,d.__assign)((0,d.__assign)({},e),{dx:c-(e.x||0),dy:p-(e.y||0),end:Date.now(),isScratching:!0});return l.current=t,(n.current.onScratch||w)(t),t}))}))},a=function(e){o(e.pageX,e.pageY)},c=function(e){o(e.changedTouches[0].pageX,e.changedTouches[0].pageY)},p=function(){s.current&&(s.current=!1,l.current=(0,d.__assign)((0,d.__assign)({},l.current),{isScratching:!1}),(n.current.onScratchEnd||w)(l.current),i({isScratching:!1}),_(window,"mousemove",a),_(window,"touchmove",c),_(window,"mouseup",e),_(window,"touchend",r))};e=p,r=p;var h=function(t,o){if(s.current){var u=f.getBoundingClientRect(),d=u.left,p=u.top,h=d+window.scrollX,m=p+window.scrollY,g=t-h,v=o-m,b=Date.now(),y={isScratching:!0,start:b,end:b,docX:t,docY:o,x:g,y:v,dx:0,dy:0,elH:f.offsetHeight,elW:f.offsetWidth,elX:h,elY:m};l.current=y,(n.current.onScratchStart||w)(y),i(y),x(window,"mousemove",a),x(window,"touchmove",c),x(window,"mouseup",e),x(window,"touchend",r)}},m=function(e){s.current=!0,h(e.pageX,e.pageY)},g=function(e){s.current=!0,h(e.changedTouches[0].pageX,e.changedTouches[0].pageY)};return x(f,"mousedown",m),x(f,"touchstart",g),function(){_(f,"mousedown",m),_(f,"touchstart",g),_(window,"mousemove",a),_(window,"touchmove",c),_(window,"mouseup",e),_(window,"touchend",r),u.current&&cancelAnimationFrame(u.current),u.current=null,s.current=!1,l.current={isScratching:!1},i(l.current)}}}),[f,t,n]),[p,a]};const Lt=At;const Rt=function(e){var t=ut({x:0,y:0}),n=t[0],o=t[1];return(0,r.useEffect)((function(){var t=function(){e.current&&o({x:e.current.scrollLeft,y:e.current.scrollTop})};return e.current&&x(e.current,"scroll",t,{capture:!1,passive:!0}),function(){e.current&&_(e.current,"scroll",t)}}),[e]),n};const jt=function(e){var t=(0,r.useState)(!1),n=t[0],o=t[1];return(0,r.useEffect)((function(){if(e.current){var t,n=function(){o(!0),clearTimeout(t),t=setTimeout((function(){o(!1)}),150)};return x(e.current,"scroll",n,!1),function(){e.current&&_(e.current,"scroll",n,!1)}}return function(){}}),[e]),n};const Mt=function(e,t,n){if(!k)return[t,function(){}];var o=(0,r.useState)((function(){try{var r=sessionStorage.getItem(e);return"string"!=typeof r?(sessionStorage.setItem(e,n?String(t):JSON.stringify(t)),t):n?r:JSON.parse(r||"null")}catch(o){return t}})),a=o[0],i=o[1];return(0,r.useEffect)((function(){try{var t=n?String(a):JSON.stringify(a);sessionStorage.setItem(e,t)}catch(o){}})),[a,i]};var Ft=n(99376),Bt=function(e,t){return e.every((function(e,n){return(0,Ft.D)(e,t[n])}))};const zt=function(e,t){ee(e,t,Bt)};var $t=r.useState,Ut=r.useEffect,Ht=r.useRef;const Vt=function(e,t){var n=void 0===t?{}:t,a=n.width,i=void 0===a?1/0:a,l=n.height,s=void 0===l?1/0:l;if(!k)return["function"==typeof e?e({width:i,height:s}):e,{width:i,height:s}];var u=$t({width:i,height:s}),c=u[0],f=u[1];"function"==typeof e&&(e=e(c));var p=e.props.style||{},h=Ht(null),m=null,g=function(){var e=h.current,t=e?{width:e.offsetWidth,height:e.offsetHeight}:{width:i,height:s};f(t)},v=function(e){x(e,"resize",g),setTimeout(g,35)};return Ut((function(){var e=h.current;if(e){if(e.contentWindow)m=e.contentWindow,v(m);else{var t=function(){x(e,"load",t),m=e.contentWindow,v(m)};_(e,"load",t)}return function(){m&&m.removeEventListener&&_(m,"resize",g)}}}),[]),p.position="relative",[r.cloneElement.apply(o,(0,d.__spreadArrays)([e,{style:p}],(0,d.__spreadArrays)([r.createElement("iframe",{ref:h,style:{background:"transparent",border:"none",height:"100%",left:0,position:"absolute",top:0,width:"100%",zIndex:-1}})],r.Children.toArray(e.props.children)))),c]};const qt=function(e,t){void 0===t&&(t={});var n=f(),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useRef)(0),l=g({isSliding:!1,value:0}),s=l[0],u=l[1];return a.current=s.value,(0,r.useEffect)((function(){if(k){var r=void 0===t.styles||t.styles,l=void 0!==t.reverse&&t.reverse;e.current&&r&&(e.current.style.userSelect="none");var s=function(){!o.current&&n()&&((t.onScrubStart||w)(),o.current=!0,u({isSliding:!0}),m())},c=function(){o.current&&n()&&((t.onScrubStop||w)(a.current),o.current=!1,u({isSliding:!1}),g())},d=function(e){s(),f(e)},f=t.vertical?function(e){return v(e.clientY)}:function(e){return v(e.clientX)},p=function(e){s(),h(e)},h=t.vertical?function(e){return v(e.changedTouches[0].clientY)}:function(e){return v(e.changedTouches[0].clientX)},m=function(){x(document,"mousemove",f),x(document,"mouseup",c),x(document,"touchmove",h),x(document,"touchend",c)},g=function(){_(document,"mousemove",f),_(document,"mouseup",c),_(document,"touchmove",h),_(document,"touchend",c)},v=function(r){cancelAnimationFrame(i.current),i.current=requestAnimationFrame((function(){if(n()&&e.current){var o=e.current.getBoundingClientRect(),a=t.vertical?o.top:o.left,i=t.vertical?o.height:o.width;if(!i)return;var s=(r-a)/i;s>1?s=1:s<0&&(s=0),l&&(s=1-s),u({value:s}),(t.onScrub||w)(s)}}))};return x(e.current,"mousedown",d),x(e.current,"touchstart",p),function(){_(e.current,"mousedown",d),_(e.current,"touchstart",p)}}}),[e,t.vertical]),s};var Wt;!function(e){e[e.init=0]="init",e[e.play=1]="play",e[e.pause=2]="pause",e[e.end=3]="end"}(Wt||(Wt={}));const Gt=function(e,t){var n=(0,r.useRef)(!1),o=(0,r.useState)((function(){var e=t.voice||{},n=e.lang,r=void 0===n?"default":n,o=e.name,a=void 0===o?"":o;return{isPlaying:!1,status:Wt[Wt.init],lang:t.lang||"default",voiceInfo:{lang:r,name:a},rate:t.rate||1,pitch:t.pitch||1,volume:t.volume||1}})),a=o[0],i=o[1],l=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!0,status:Wt[Wt.play]})}))}),[]),s=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!1,status:Wt[Wt.pause]})}))}),[]),u=(0,r.useCallback)((function(){n.current&&i((function(e){return(0,d.__assign)((0,d.__assign)({},e),{isPlaying:!1,status:Wt[Wt.end]})}))}),[]);return(0,r.useEffect)((function(){n.current=!0;var r=new SpeechSynthesisUtterance(e);return t.lang&&(r.lang=t.lang),t.voice&&(r.voice=t.voice),r.rate=t.rate||1,r.pitch=t.pitch||1,r.volume=t.volume||1,r.onstart=l,r.onpause=s,r.onresume=l,r.onend=u,window.speechSynthesis.speak(r),function(){n.current=!1}}),[]),a};const Zt=function(e){Y((function(){var t=function(t){var n,r,o,a,i;!function(){var e=document.activeElement,t=document.body;if(!e)return!1;if(e===t)return!1;switch(e.tagName){case"INPUT":case"TEXTAREA":return!0}return e.hasAttribute("contenteditable")}()&&(r=(n=t).keyCode,o=n.metaKey,a=n.ctrlKey,i=n.altKey,!(o||a||i)&&(r>=48&&r<=57||r>=65&&r<=90))&&e(t)};return x(document,"keydown",t),function(){_(document,"keydown",t)}}),[])};function Qt(e,t,n){if(void 0===t&&(t=10),t<1)throw new Error("Capacity has to be greater than 1, got '"+t+"'");var o=l(),a=(0,r.useState)(e),i=a[0],s=a[1],u=(0,r.useRef)(null!=n?n:[]),c=(0,r.useRef)(0);return o&&(u.current.length?(u.current[u.current.length-1]!==e&&u.current.push(e),u.current.length>t&&(u.current=u.current.slice(u.current.length-t))):u.current.push(e),c.current=u.current.length&&u.current.length-1),[i,(0,r.useCallback)((function(e){s((function(n){return(e=H(e,n))!==n&&(c.current<u.current.length-1&&(u.current=u.current.slice(0,c.current+1)),c.current=u.current.push(e)-1,u.current.length>t&&(u.current=u.current.slice(u.current.length-t))),e}))}),[i,t]),(0,r.useMemo)((function(){return{history:u.current,position:c.current,capacity:t,back:function(e){void 0===e&&(e=1),c.current&&s((function(){return c.current-=Math.min(e,c.current),u.current[c.current]}))},forward:function(e){void 0===e&&(e=1),c.current!==u.current.length-1&&s((function(){return c.current=Math.min(c.current+e,u.current.length-1),u.current[c.current]}))},go:function(e){e!==c.current&&s((function(){return c.current=e<0?Math.max(u.current.length+e,0):Math.min(u.current.length-1,e),u.current[c.current]}))}}}),[i])]}function Yt(e){void 0===e&&(e=[]);var t=f(),n=U(),o=(0,r.useRef)(0);s((function(){e.length<=o.current&&(o.current=e.length-1,n())}),[e.length]);var a=(0,r.useMemo)((function(){return{next:function(){return a.setStateAt(o.current+1)},prev:function(){return a.setStateAt(o.current-1)},setStateAt:function(r){t()&&e.length&&r!==o.current&&(o.current=r>=0?r%e.length:e.length+r%e.length,n())},setState:function(r){if(t()){var a=e.length?e.indexOf(r):-1;if(-1===a)throw new Error("State '"+r+"' is not a valid state (does not exist in state list)");o.current=a,n()}}}}),[e]);return(0,d.__assign)({state:e[o.current],currentIndex:o.current},a)}const Xt=function(e,t){void 0===t&&(t=200);var n=(0,r.useState)(e),o=n[0],a=n[1],i=(0,r.useRef)(),l=(0,r.useRef)(null),s=(0,r.useRef)(0);return(0,r.useEffect)((function(){if(i.current)l.current=e,s.current=!0;else{a(e);var n=function(){s.current?(s.current=!1,a(l.current),i.current=setTimeout(n,t)):i.current=void 0};i.current=setTimeout(n,t)}}),[e]),st((function(){i.current&&clearTimeout(i.current)})),o};const Kt=function(e,t,n){void 0===t&&(t=200);var o=(0,r.useState)(null),a=o[0],i=o[1],l=(0,r.useRef)(),s=(0,r.useRef)();return(0,r.useEffect)((function(){if(l.current)s.current=n;else{i(e.apply(void 0,n));var r=function(){s.current?(i(e.apply(void 0,s.current)),s.current=void 0,l.current=setTimeout(r,t)):l.current=void 0};l.current=setTimeout(r,t)}}),n),st((function(){l.current&&clearTimeout(l.current)})),a};function Jt(e){return void 0===e&&(e=0),te(U(),e)}var en={restoreOnUnmount:!1};const tn="undefined"!=typeof document?function(e,t){void 0===t&&(t=en);var n=(0,r.useRef)(document.title);document.title!==e&&(document.title=e),(0,r.useEffect)((function(){return t&&t.restoreOnUnmount?function(){document.title=n.current}:void 0}),[])}:function(e){};var nn=n(75534);const rn=function(e,t,n){return void 0===e&&(e="inCirc"),void 0===t&&(t=200),void 0===n&&(n=0),(0,nn.U[e])(Dt(t,n))};const on=function(){var e=(0,r.useRef)(!1);return le((function(){return function(){e.current=!0}})),(0,r.useMemo)((function(){return function(t,n){return new Promise((function(r,o){t.then((function(t){e.current||r(t)}),(function(t){e.current?n?n(t):console.error("useUnmountPromise",t):o(t)}))}))}}),[])};function an(e,t){void 0===t&&(t=[]);var n=Fe(t),r=n[0],o=n[1];return[r,(0,d.__assign)((0,d.__assign)({},o),{upsert:function(t){o.upsert(e,t)}})]}const ln=E&&"vibrate"in navigator?function(e,t,n){void 0===e&&(e=!0),void 0===t&&(t=[1e3,1e3]),void 0===n&&(n=!0),(0,r.useEffect)((function(){var r;if(e&&(navigator.vibrate(t),n)){var o=t instanceof Array?t.reduce((function(e,t){return e+t})):t;r=setInterval((function(){navigator.vibrate(t)}),o)}return function(){e&&(navigator.vibrate(0),n&&clearInterval(r))}}),[e])}:w;const sn=b("video");function un(e,t,n){void 0===n&&(n=[void 0]);var o=(0,r.useRef)(t),a=(0,r.useRef)(e);o.current=t,a.current=e;var i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){o.current.length>=2?o.current(a.current,s):s(o.current(a.current))}),[s]);return(0,r.useEffect)((function(){u()}),[e]),[l,u]}var cn=function(e){if("undefined"==typeof document)return 0;if(document.body&&(!document.readyState||"loading"!==document.readyState)){if(!0!==e&&"number"==typeof cn.__cache)return cn.__cache;var t=document.createElement("div"),n=t.style;n.display="block",n.position="absolute",n.width="100px",n.height="100px",n.left="-999px",n.top="-999px",n.overflow="scroll",document.body.insertBefore(t,null);var r=t.clientWidth;if(0!==r)return cn.__cache=100-r,document.body.removeChild(t),cn.__cache;document.body.removeChild(t)}};function dn(){var e=(0,r.useState)(cn()),t=e[0],n=e[1];return(0,r.useEffect)((function(){if(void 0===t){var e=requestAnimationFrame((function(){n(cn())}));return function(){return cancelAnimationFrame(e)}}}),[]),t}function fn(e,t,n){if(void 0===n&&(n=[void 0]),"object"!=typeof e)throw new Error("states expected to be an object or array, got "+typeof e);var o=(0,r.useRef)(t),a=(0,r.useRef)(e);o.current=t,a.current=e;var i=(0,r.useState)(n),l=i[0],s=i[1],u=(0,r.useCallback)((function(){o.current.length>=2?o.current(a.current,s):s(o.current(a.current))}),[s]);return(0,r.useEffect)((function(){u()}),Object.values(e)),[l,u]}const pn=function(){var e=ut((function(){return{x:k?window.pageXOffset:0,y:k?window.pageYOffset:0}})),t=e[0],n=e[1];return(0,r.useEffect)((function(){var e=function(){n((function(e){var t=window.pageXOffset,n=window.pageYOffset;return e.x!==t||e.y!==n?{x:t,y:n}:e}))};return e(),x(window,"scroll",e,{capture:!1,passive:!0}),function(){_(window,"scroll",e)}}),[]),t};const hn=function(e,t){void 0===e&&(e=1/0),void 0===t&&(t=1/0);var n=ut({width:k?window.innerWidth:e,height:k?window.innerHeight:t}),o=n[0],a=n[1];return(0,r.useEffect)((function(){if(k){var e=function(){a({width:window.innerWidth,height:window.innerHeight})};return x(window,"resize",e),function(){_(window,"resize",e)}}}),[]),o};var mn={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};const gn=k&&void 0!==window.ResizeObserver?function(){var e=(0,r.useState)(null),t=e[0],n=e[1],o=(0,r.useState)(mn),a=o[0],i=o[1],l=(0,r.useMemo)((function(){return new window.ResizeObserver((function(e){if(e[0]){var t=e[0].contentRect,n=t.x,r=t.y,o=t.width,a=t.height,l=t.top,s=t.left,u=t.bottom,c=t.right;i({x:n,y:r,width:o,height:a,top:l,left:s,bottom:u,right:c})}}))}),[]);return Y((function(){if(t)return l.observe(t),function(){l.disconnect()}}),[t]),[n,a]}:function(){return[w,mn]};var vn;!function(e){e.ZOOMING_IN="ZOOMING_IN",e.ZOOMING_OUT="ZOOMING_OUT"}(vn||(vn={}));const bn=function(e){var t=(0,r.useMemo)((function(){return{evCache:[],prevDiff:-1}}),[e.current]),n=(0,r.useState)(),o=n[0],a=n[1],i=function(e){for(var n=0;n<t.evCache.length;n++)if(e.pointerId==t.evCache[n].pointerId){t.evCache[n]=e;break}if(2==t.evCache.length){var r=Math.abs(t.evCache[0].clientX-t.evCache[1].clientX);t.prevDiff>0&&(r>t.prevDiff&&a([vn.ZOOMING_IN,r]),r<t.prevDiff&&a([vn.ZOOMING_OUT,r])),t.prevDiff=r}},l=function(e){t.evCache.push(e)},s=function(e){u(e),t.evCache.length<2&&(t.prevDiff=-1)},u=function(e){for(var n=0;n<t.evCache.length;n++)if(t.evCache[n].pointerId==e.pointerId){t.evCache.splice(n,1);break}};return(0,r.useEffect)((function(){(null==e?void 0:e.current)&&(e.current.onpointerdown=l,e.current.onpointermove=i,e.current.onpointerup=s,e.current.onpointercancel=s,e.current.onpointerout=s,e.current.onpointerleave=s)}),[null==e?void 0:e.current]),o?{zoomingState:o[0],pinchState:o[1]}:{zoomingState:null,pinchState:0}};function yn(){return++(0,r.useRef)(0).current}const wn=function(e){void 0===e&&(e=new Set);var t=(0,r.useState)(e),n=t[0],o=t[1],a=(0,r.useMemo)((function(){return{add:function(e){return o((function(t){return new Set((0,d.__spreadArrays)(Array.from(t),[e]))}))},remove:function(e){return o((function(t){return new Set(Array.from(t).filter((function(t){return t!==e})))}))},toggle:function(e){return o((function(t){return t.has(e)?new Set(Array.from(t).filter((function(t){return t!==e}))):new Set((0,d.__spreadArrays)(Array.from(t),[e]))}))},reset:function(){return o(e)}}}),[o]),i=(0,d.__assign)({has:(0,r.useCallback)((function(e){return n.has(e)}),[n])},a);return[n,i]};function xn(e){var t={state:e instanceof Function?e():e,setState:function(e){t.state=H(e,t.state),t.setters.forEach((function(e){return e(t.state)}))},setters:[]};return function(){var e=(0,r.useState)(t.state),n=e[0],o=e[1];return le((function(){return function(){t.setters=t.setters.filter((function(e){return e!==o}))}})),Y((function(){t.setters.includes(o)||t.setters.push(o)})),[n,t.setState]}}var _n=function(){var e=(0,r.useState)((function(){return window.location.hash})),t=e[0],n=e[1],o=(0,r.useCallback)((function(){n(window.location.hash)}),[]);Me((function(){x(window,"hashchange",o)}),(function(){_(window,"hashchange",o)}));var a=(0,r.useCallback)((function(e){e!==t&&(window.location.hash=e)}),[t]);return[t,a]}},72408:(e,t,n)=>{"use strict";var r=n(27418),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,l=60110,s=60112;t.Suspense=60113;var u=60115,c=60116;if("function"==typeof Symbol&&Symbol.for){var d=Symbol.for;o=d("react.element"),a=d("react.portal"),t.Fragment=d("react.fragment"),t.StrictMode=d("react.strict_mode"),t.Profiler=d("react.profiler"),i=d("react.provider"),l=d("react.context"),s=d("react.forward_ref"),t.Suspense=d("react.suspense"),u=d("react.memo"),c=d("react.lazy")}var f="function"==typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m={};function g(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}function v(){}function b(e,t,n){this.props=e,this.context=t,this.refs=m,this.updater=n||h}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(p(85));this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=g.prototype;var y=b.prototype=new v;y.constructor=b,r(y,g.prototype),y.isPureReactComponent=!0;var w={current:null},x=Object.prototype.hasOwnProperty,_={key:!0,ref:!0,__self:!0,__source:!0};function k(e,t,n){var r,a={},i=null,l=null;if(null!=t)for(r in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,r)&&!_.hasOwnProperty(r)&&(a[r]=t[r]);var s=arguments.length-2;if(1===s)a.children=n;else if(1<s){for(var u=Array(s),c=0;c<s;c++)u[c]=arguments[c+2];a.children=u}if(e&&e.defaultProps)for(r in s=e.defaultProps)void 0===a[r]&&(a[r]=s[r]);return{$$typeof:o,type:e,key:i,ref:l,props:a,_owner:w.current}}function E(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var S=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function T(e,t,n,r,i){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return i=i(s=e),e=""===r?"."+C(s,0):r,Array.isArray(i)?(n="",null!=e&&(n=e.replace(S,"$&/")+"/"),T(i,t,n,"",(function(e){return e}))):null!=i&&(E(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,n+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(S,"$&/")+"/")+e)),t.push(i)),1;if(s=0,r=""===r?".":r+":",Array.isArray(e))for(var u=0;u<e.length;u++){var c=r+C(l=e[u],u);s+=T(l,t,n,c,i)}else if(c=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof c)for(e=c.call(e),u=0;!(l=e.next()).done;)s+=T(l=l.value,t,n,c=r+C(l,u++),i);else if("object"===l)throw t=""+e,Error(p(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function O(e,t,n){if(null==e)return e;var r=[],o=0;return T(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function D(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var P={current:null};function N(){var e=P.current;if(null===e)throw Error(p(321));return e}var I={ReactCurrentDispatcher:P,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:w,IsSomeRendererActing:{current:!1},assign:r};t.Children={map:O,forEach:function(e,t,n){O(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return O(e,(function(){t++})),t},toArray:function(e){return O(e,(function(e){return e}))||[]},only:function(e){if(!E(e))throw Error(p(143));return e}},t.Component=g,t.PureComponent=b,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,t.cloneElement=function(e,t,n){if(null==e)throw Error(p(267,e));var a=r({},e.props),i=e.key,l=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(l=t.ref,s=w.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var u=e.type.defaultProps;for(c in t)x.call(t,c)&&!_.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==u?u[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=n;else if(1<c){u=Array(c);for(var d=0;d<c;d++)u[d]=arguments[d+2];a.children=u}return{$$typeof:o,type:e.type,key:i,ref:l,props:a,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:l,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=k,t.createFactory=function(e){var t=k.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=E,t.lazy=function(e){return{$$typeof:c,_payload:{_status:-1,_result:e},_init:D}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return N().useCallback(e,t)},t.useContext=function(e,t){return N().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return N().useEffect(e,t)},t.useImperativeHandle=function(e,t,n){return N().useImperativeHandle(e,t,n)},t.useLayoutEffect=function(e,t){return N().useLayoutEffect(e,t)},t.useMemo=function(e,t){return N().useMemo(e,t)},t.useReducer=function(e,t,n){return N().useReducer(e,t,n)},t.useRef=function(e){return N().useRef(e)},t.useState=function(e){return N().useState(e)},t.version="17.0.2"},67294:(e,t,n)=>{"use strict";e.exports=n(72408)},60053:(e,t)=>{"use strict";var n,r,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var u=null,c=null,d=function(){if(null!==u)try{var e=t.unstable_now();u(!0,e),u=null}catch(n){throw setTimeout(d,0),n}};n=function(e){null!==u?setTimeout(n,0,e):(u=e,setTimeout(d,0))},r=function(e,t){c=setTimeout(e,t)},o=function(){clearTimeout(c)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var f=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var h=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof h&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var m=!1,g=null,v=-1,b=5,y=0;t.unstable_shouldYield=function(){return t.unstable_now()>=y},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):b=0<e?Math.floor(1e3/e):5};var w=new MessageChannel,x=w.port2;w.port1.onmessage=function(){if(null!==g){var e=t.unstable_now();y=e+b;try{g(!0,e)?x.postMessage(null):(m=!1,g=null)}catch(n){throw x.postMessage(null),n}}else m=!1},n=function(e){g=e,m||(m=!0,x.postMessage(null))},r=function(e,n){v=f((function(){e(t.unstable_now())}),n)},o=function(){p(v),v=-1}}function _(e,t){var n=e.length;e.push(t);e:for(;;){var r=n-1>>>1,o=e[r];if(!(void 0!==o&&0<S(o,t)))break e;e[r]=t,e[n]=o,n=r}}function k(e){return void 0===(e=e[0])?null:e}function E(e){var t=e[0];if(void 0!==t){var n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length;r<o;){var a=2*(r+1)-1,i=e[a],l=a+1,s=e[l];if(void 0!==i&&0>S(i,n))void 0!==s&&0>S(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else{if(!(void 0!==s&&0>S(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function S(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var C=[],T=[],O=1,D=null,P=3,N=!1,I=!1,A=!1;function L(e){for(var t=k(T);null!==t;){if(null===t.callback)E(T);else{if(!(t.startTime<=e))break;E(T),t.sortIndex=t.expirationTime,_(C,t)}t=k(T)}}function R(e){if(A=!1,L(e),!I)if(null!==k(C))I=!0,n(j);else{var t=k(T);null!==t&&r(R,t.startTime-e)}}function j(e,n){I=!1,A&&(A=!1,o()),N=!0;var a=P;try{for(L(n),D=k(C);null!==D&&(!(D.expirationTime>n)||e&&!t.unstable_shouldYield());){var i=D.callback;if("function"==typeof i){D.callback=null,P=D.priorityLevel;var l=i(D.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?D.callback=l:D===k(C)&&E(C),L(n)}else E(C);D=k(C)}if(null!==D)var s=!0;else{var u=k(T);null!==u&&r(R,u.startTime-n),s=!1}return s}finally{D=null,P=a,N=!1}}var M=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){I||N||(I=!0,n(j))},t.unstable_getCurrentPriorityLevel=function(){return P},t.unstable_getFirstCallbackNode=function(){return k(C)},t.unstable_next=function(e){switch(P){case 1:case 2:case 3:var t=3;break;default:t=P}var n=P;P=t;try{return e()}finally{P=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=M,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=P;P=e;try{return t()}finally{P=n}},t.unstable_scheduleCallback=function(e,a,i){var l=t.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0<i?l+i:l:i=l,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:O++,callback:a,priorityLevel:e,startTime:i,expirationTime:s=i+s,sortIndex:-1},i>l?(e.sortIndex=i,_(T,e),null===k(C)&&e===k(T)&&(A?o():A=!0,r(R,i-l))):(e.sortIndex=s,_(C,e),I||N||(I=!0,n(j))),e},t.unstable_wrapCallback=function(e){var t=P;return function(){var n=P;P=t;try{return e.apply(this,arguments)}finally{P=n}}}},63840:(e,t,n)=>{"use strict";e.exports=n(60053)},10577:e=>{!function(){"use strict";var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},n=e.exports,r=function(){for(var e,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,o=n.length,a={};r<o;r++)if((e=n[r])&&e[1]in t){for(r=0;r<e.length;r++)a[n[0][r]]=e[r];return a}return!1}(),o={change:r.fullscreenchange,error:r.fullscreenerror},a={request:function(e,n){return new Promise(function(o,a){var i=function(){this.off("change",i),o()}.bind(this);this.on("change",i);var l=(e=e||t.documentElement)[r.requestFullscreen](n);l instanceof Promise&&l.then(i).catch(a)}.bind(this))},exit:function(){return new Promise(function(e,n){if(this.isFullscreen){var o=function(){this.off("change",o),e()}.bind(this);this.on("change",o);var a=t[r.exitFullscreen]();a instanceof Promise&&a.then(o).catch(n)}else e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,n){var r=o[e];r&&t.addEventListener(r,n,!1)},off:function(e,n){var r=o[e];r&&t.removeEventListener(r,n,!1)},raw:r};r?(Object.defineProperties(a,{isFullscreen:{get:function(){return Boolean(t[r.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[r.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[r.fullscreenEnabled])}}}),n?e.exports=a:window.screenfull=a):n?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}()},96774:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var a=Object.keys(e),i=Object.keys(t);if(a.length!==i.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<a.length;s++){var u=a[s];if(!l(u))return!1;var c=e[u],d=t[u];if(!1===(o=n?n.call(r,c,d,u):void 0)||void 0===o&&c!==d)return!1}return!0}},11742:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},75534:(e,t)=>{"use strict";t.U={linear:function(e){return e},quadratic:function(e){return e*(-e*e*e+4*e*e-6*e+4)},cubic:function(e){return e*(4*e*e-9*e+6)},elastic:function(e){return e*(33*e*e*e*e-106*e*e*e+126*e*e-67*e+15)},inQuad:function(e){return e*e},outQuad:function(e){return e*(2-e)},inOutQuad:function(e){return e<.5?2*e*e:(4-2*e)*e-1},inCubic:function(e){return e*e*e},outCubic:function(e){return--e*e*e+1},inOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},inQuart:function(e){return e*e*e*e},outQuart:function(e){return 1- --e*e*e*e},inOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},inQuint:function(e){return e*e*e*e*e},outQuint:function(e){return 1+--e*e*e*e*e},inOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},inSine:function(e){return 1-Math.cos(e*(Math.PI/2))},outSine:function(e){return Math.sin(e*(Math.PI/2))},inOutSine:function(e){return-(Math.cos(Math.PI*e)-1)/2},inExpo:function(e){return Math.pow(2,10*(e-1))},outExpo:function(e){return 1-Math.pow(2,-10*e)},inOutExpo:function(e){return(e/=.5)<1?Math.pow(2,10*(e-1))/2:(e--,(2-Math.pow(2,-10*e))/2)},inCirc:function(e){return 1-Math.sqrt(1-e*e)},outCirc:function(e){return Math.sqrt(1-(e-=1)*e)},inOutCirc:function(e){return(e/=.5)<1?-(Math.sqrt(1-e*e)-1)/2:(e-=2,(Math.sqrt(1-e*e)+1)/2)}}},53250:(e,t,n)=>{"use strict";var r=n(67294);var o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(r){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,c=r[1];return l((function(){o.value=n,o.getSnapshot=t,u(o)&&c({inst:o})}),[e,n,t]),i((function(){return u(o)&&c({inst:o}),e((function(){u(o)&&c({inst:o})}))}),[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:c},61688:(e,t,n)=>{"use strict";e.exports=n(53250)},36809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"Waku",url:"https://waku.org",baseUrl:"/",markdown:{mermaid:!0},i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["@acid-info/logos-docusaurus-preset",{businessUnit:"Waku",theme:{name:"default",options:{customCss:["/home/jenkins/workspace/website/waku.org/src/css/custom.scss"],docs:{default:{sidebar:{hide:!0}}},newsletterSubscription:{mailingListId:5}}},docs:{routeBasePath:"/",path:"root-pages"},generated:{jobList:{jobBoard:"waku"}},og:{}}]],plugins:[["@docusaurus/plugin-content-docs",{id:"about",routeBasePath:"/about",path:"about"}],["@acid-info/docusaurus-og",{path:"_og",imageRenderers:{}}]],themeConfig:{docs:{sidebar:{hideable:!0,autoCollapseCategories:!1},versionPersistence:"localStorage"},metadata:[{name:"keywords",content:"waku, web3"},{name:"description",content:"Waku is the communication layer for Web3. Decentralized communication that scales."},{name:"image",content:"theme/image/preview-image.png"}],colorMode:{disableSwitch:!1,defaultMode:"dark",respectPrefersColorScheme:!0},navbar:{title:"",logo:{alt:"Waku",src:"theme/image/logo-black.svg",srcDark:"theme/image/logo.svg",height:26},hideOnScroll:!0,items:[{type:"search",position:"left"},{label:"About Waku",to:"/about",position:"left"},{label:"Community",to:"/community",position:"left"},{label:"Blog",href:"https://blog.waku.org/",position:"left"},{label:"Docs",href:"https://docs.waku.org",position:"left"},{label:"Join Us",href:"/join-us",position:"left"},{href:"https://github.com/waku-org",position:"right",className:"header-github-link",title:"Waku GitHub repository"}]},footer:{logo:{alt:"Waku",src:"theme/image/logo.svg",href:"/",width:22},links:[{items:[{href:"https://twitter.com/waku_org",label:"Twitter"},{href:"https://discord.waku.org/",label:"Discord"},{href:"https://docs.waku.org",label:"Docs"},{href:"https://github.com/waku-org",label:"Github"}],title:null},{items:[{href:"https://blog.waku.org/",label:"Blog"},{href:"/events",label:"Events"},{href:"https://jobs.status.im/",label:"Work with us"},{href:"https://guide.waku.org/",label:"Brand Guidelines"},{href:"/terms",label:"Terms & conditions"},{href:"/privacy-policy",label:"Privacy Policy"}],title:null},{title:"shared:Research",items:[{href:"https://vac.dev",label:"VacP2P"},{href:"https://afaik.institute",label:"AFAIK"}]},{title:"shared:Infrastructure",items:[{href:"https://waku.org/",label:"Waku"},{href:"https://nimbus.team/",label:"Nimbus"},{href:"https://codex.storage",label:"Codex"},{href:"https://nomos.tech",label:"Nomos"}]},{title:"shared:Creative Studio",items:[{href:"https://acid.info",label:"Acid.info"}]},{title:"shared:Movement",items:[{href:"https://logos.co",label:"Logos"}]},{title:"shared:User-facing products",items:[{href:"https://status.im",label:"Status"},{href:"https://keycard.tech",label:"Keycard"}]}],copyright:"Waku @2023<br/>All Rights Reserved.",style:"light"},prism:{theme:{plain:{color:"#000000",backgroundColor:"rgba(var(--lsd-surface-secondary), 0.08)"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"rgba(var(--lsd-surface-secondary), 0.08)"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3},mermaid:{theme:{dark:"dark",light:"default"},options:{}}},baseUrlIssueBanner:!0,onBrokenLinks:"warn",onBrokenMarkdownLinks:"warn",onDuplicateRoutes:"warn",staticDirectories:["static","/home/jenkins/workspace/website/waku.org/node_modules/@acid-info/logos-docusaurus-preset/static/common","/home/jenkins/workspace/website/waku.org/node_modules/@acid-info/logos-docusaurus-preset/static/Waku","/home/jenkins/workspace/website/waku.org/node_modules/@acid-info/logos-docusaurus-theme/lib/client/static/"],customFields:{businessUnits:"Waku","logos-docusaurus-theme":{customCss:["/home/jenkins/workspace/website/waku.org/src/css/custom.scss"],docs:{default:{sidebar:{hide:!0},content:{}}},newsletterSubscription:{mailingListId:5},id:"default"}},themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],tagline:"Waku is the communication layer for Web3. Decentralized communication that scales.",titleDelimiter:"|",noIndex:!1,favicon:"theme/image/favicon.ico"}},87462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},75068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>o})},63366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:()=>r})},38776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=!0,o="Invariant failed";function a(e,t){if(!e){if(r)throw new Error(o);var n="function"==typeof t?t():t,a=n?"".concat(o,": ").concat(n):o;throw new Error(a)}}},97582:(e,t,n)=>{"use strict";n.r(t),n.d(t,{__addDisposableResource:()=>L,__assign:()=>a,__asyncDelegator:()=>S,__asyncGenerator:()=>E,__asyncValues:()=>C,__await:()=>k,__awaiter:()=>h,__classPrivateFieldGet:()=>N,__classPrivateFieldIn:()=>A,__classPrivateFieldSet:()=>I,__createBinding:()=>g,__decorate:()=>l,__disposeResources:()=>j,__esDecorate:()=>u,__exportStar:()=>v,__extends:()=>o,__generator:()=>m,__importDefault:()=>P,__importStar:()=>D,__makeTemplateObject:()=>T,__metadata:()=>p,__param:()=>s,__propKey:()=>d,__read:()=>y,__rest:()=>i,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>w,__spreadArray:()=>_,__spreadArrays:()=>x,__values:()=>b,default:()=>M});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function i(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function l(e,t,n,r){var o,a=arguments.length,i=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,r);else for(var l=e.length-1;l>=0;l--)(o=e[l])&&(i=(a<3?o(i):a>3?o(t,n,i):o(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i}function s(e,t){return function(n,r){t(n,r,e)}}function u(e,t,n,r,o,a){function i(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var l,s=r.kind,u="getter"===s?"get":"setter"===s?"set":"value",c=!t&&e?r.static?e:e.prototype:null,d=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,p=n.length-1;p>=0;p--){var h={};for(var m in r)h[m]="access"===m?{}:r[m];for(var m in r.access)h.access[m]=r.access[m];h.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");a.push(i(e||null))};var g=(0,n[p])("accessor"===s?{get:d.get,set:d.set}:d[u],h);if("accessor"===s){if(void 0===g)continue;if(null===g||"object"!=typeof g)throw new TypeError("Object expected");(l=i(g.get))&&(d.get=l),(l=i(g.set))&&(d.set=l),(l=i(g.init))&&o.unshift(l)}else(l=i(g))&&("field"===s?o.unshift(l):d[u]=l)}c&&Object.defineProperty(c,r.name,d),f=!0}function c(e,t,n){for(var r=arguments.length>2,o=0;o<t.length;o++)n=r?t[o].call(e,n):t[o].call(e);return r?n:void 0}function d(e){return"symbol"==typeof e?e:"".concat(e)}function f(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function p(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function h(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{s(r.next(e))}catch(t){a(t)}}function l(e){try{s(r.throw(e))}catch(t){a(t)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}s((r=r.apply(e,t||[])).next())}))}function m(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(s){return function(l){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,r=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){i.label=l[1];break}if(6===l[0]&&i.label<o[1]){i.label=o[1],o=l;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(l);break}o[2]&&i.ops.pop(),i.trys.pop();continue}l=t.call(e,i)}catch(s){l=[6,s],r=0}finally{n=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,s])}}}var g=Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function v(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||g(t,e,n)}function b(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(l){o={error:l}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function w(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(y(arguments[t]));return e}function x(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],i=0,l=a.length;i<l;i++,o++)r[o]=a[i];return r}function _(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function k(e){return this instanceof k?(this.v=e,this):new k(e)}function E(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),a=[];return r={},i("next"),i("throw"),i("return"),r[Symbol.asyncIterator]=function(){return this},r;function i(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){a.push([e,t,n,r])>1||l(e,t)}))})}function l(e,t){try{(n=o[e](t)).value instanceof k?Promise.resolve(n.value.v).then(s,u):c(a[0][2],n)}catch(r){c(a[0][3],r)}var n}function s(e){l("next",e)}function u(e){l("throw",e)}function c(e,t){e(t),a.shift(),a.length&&l(a[0][0],a[0][1])}}function S(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:k(e[r](t)),done:!1}:o?o(t):t}:o}}function C(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=b(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function T(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var O=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function D(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&g(t,e,n);return O(t,e),t}function P(e){return e&&e.__esModule?e:{default:e}}function N(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function I(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function A(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}function L(e,t,n){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var r;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=t[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=t[Symbol.dispose]}if("function"!=typeof r)throw new TypeError("Object not disposable.");e.stack.push({value:t,dispose:r,async:n})}else n&&e.stack.push({async:!0});return t}var R="function"==typeof SuppressedError?SuppressedError:function(e,t,n){var r=new Error(n);return r.name="SuppressedError",r.error=e,r.suppressed=t,r};function j(e){function t(t){e.error=e.hasError?new R(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}return function n(){for(;e.stack.length;){var r=e.stack.pop();try{var o=r.dispose&&r.dispose.call(r.value);if(r.async)return Promise.resolve(o).then(n,(function(e){return t(e),n()}))}catch(a){t(a)}}if(e.hasError)throw e.error}()}const M={__extends:o,__assign:a,__rest:i,__decorate:l,__param:s,__metadata:p,__awaiter:h,__generator:m,__createBinding:g,__exportStar:v,__values:b,__read:y,__spread:w,__spreadArrays:x,__spreadArray:_,__await:k,__asyncGenerator:E,__asyncDelegator:S,__asyncValues:C,__makeTemplateObject:T,__importStar:D,__importDefault:P,__classPrivateFieldGet:N,__classPrivateFieldSet:I,__classPrivateFieldIn:A,__addDisposableResource:L,__disposeResources:j}},57529:e=>{"use strict";e.exports={}},16887:e=>{"use strict";e.exports=JSON.parse('{"/subscribe-60c":{"__comp":"546e778e","__context":{"plugin":"db77d2e4"},"config":"5e9f5e1a"},"/about-8e0":{"__comp":"1be78505","__context":{"plugin":"f0fe3b85"},"versionMetadata":"7818b736"},"/about/-a82":{"__comp":"17896441","content":"230402f8"},"/about/architect-7a3":{"__comp":"17896441","content":"d40faacd"},"/about/roadmap-b12":{"__comp":"17896441","content":"ba0da7bd"},"/about/team-c35":{"__comp":"17896441","content":"13b4f215"},"/about/waku-network-4dc":{"__comp":"17896441","content":"e68c6035"},"/-ced":{"__comp":"1f391b9e","__context":{"plugin":"db77d2e4"},"content":"e7ce6630"},"/-9be":{"__comp":"1be78505","__context":{"plugin":"f78498e9"},"versionMetadata":"935f2afb"},"/community-dda":{"__comp":"17896441","content":"5086c83f"},"/events/-f57":{"__comp":"17896441","content":"bc55d770"},"/events/eth-denver-23a":{"__comp":"17896441","content":"bfcde7ef"},"/join-us-3eb":{"__comp":"17896441","content":"4c51782d"},"/privacy-policy-e92":{"__comp":"17896441","content":"81bf376d"},"/terms-73e":{"__comp":"17896441","content":"79dc5662"}}')}},e=>{e.O(0,[532],(()=>{return t=2691,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.22fac347.js.LICENSE.txt b/assets/js/main.a12edac1.js.LICENSE.txt similarity index 100% rename from assets/js/main.22fac347.js.LICENSE.txt rename to assets/js/main.a12edac1.js.LICENSE.txt diff --git a/assets/js/runtime~main.27e42e38.js b/assets/js/runtime~main.27e42e38.js new file mode 100644 index 00000000..17b180fd --- /dev/null +++ b/assets/js/runtime~main.27e42e38.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,t,r,a,o,n={},c={};function d(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,d),r.loaded=!0,r.exports}d.m=n,d.c=c,e=[],d.O=(t,r,a,o)=>{if(!r){var n=1/0;for(u=0;u<e.length;u++){r=e[u][0],a=e[u][1],o=e[u][2];for(var c=!0,f=0;f<r.length;f++)(!1&o||n>=o)&&Object.keys(d.O).every((e=>d.O[e](r[f])))?r.splice(f--,1):(c=!1,o<n&&(n=o));if(c){e.splice(u--,1);var i=a();void 0!==i&&(t=i)}}return t}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);d.r(o);var n={};t=t||[null,r({}),r([]),r(r)];for(var c=2&a&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,d.d(o,n),o},d.d=(e,t)=>{for(var r in t)d.o(t,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,r)=>(d.f[r](e,t),t)),[])),d.u=e=>"assets/js/"+({53:"935f2afb",62:"7818b736",78:"bc55d770",85:"1f391b9e",153:"f0fe3b85",156:"230402f8",168:"ba0da7bd",191:"bfcde7ef",257:"db77d2e4",339:"79dc5662",383:"81bf376d",452:"13b4f215",514:"1be78505",608:"e68c6035",668:"e7ce6630",759:"546e778e",767:"4c51782d",772:"f78498e9",843:"5086c83f",894:"d40faacd",918:"17896441"}[e]||e)+"."+{53:"fa75d838",62:"1ae5a322",78:"a3c1d235",85:"fc21b765",153:"59c993d3",156:"c7c37cf5",168:"0b2f9340",191:"39e8d4e4",210:"01708bde",257:"0c99717b",316:"67f62819",339:"06de6b5f",383:"220558e2",452:"e7234e89",487:"5680f3b7",514:"b1cb824c",568:"0246d0f1",608:"c87c72ed",668:"d6ddfb48",724:"51924eb8",759:"bc0edb56",767:"191c7351",772:"f5eafdde",843:"79513685",881:"c140a9a4",894:"45a2cdaa",918:"4a03675f"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="waku-docusaurus-template:",d.l=(e,t,r,n)=>{if(a[e])a[e].push(t);else{var c,f;if(void 0!==r)for(var i=document.getElementsByTagName("script"),u=0;u<i.length;u++){var b=i[u];if(b.getAttribute("src")==e||b.getAttribute("data-webpack")==o+r){c=b;break}}c||(f=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,d.nc&&c.setAttribute("nonce",d.nc),c.setAttribute("data-webpack",o+r),c.src=e),a[e]=[t];var l=(t,r)=>{c.onerror=c.onload=null,clearTimeout(s);var o=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((e=>e(r))),t)return t(r)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=l.bind(null,c.onerror),c.onload=l.bind(null,c.onload),f&&document.head.appendChild(c)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),d.p="/",d.gca=function(e){return e={17896441:"918","935f2afb":"53","7818b736":"62",bc55d770:"78","1f391b9e":"85",f0fe3b85:"153","230402f8":"156",ba0da7bd:"168",bfcde7ef:"191",db77d2e4:"257","79dc5662":"339","81bf376d":"383","13b4f215":"452","1be78505":"514",e68c6035:"608",e7ce6630:"668","546e778e":"759","4c51782d":"767",f78498e9:"772","5086c83f":"843",d40faacd:"894"}[e]||e,d.p+d.u(e)},(()=>{var e={303:0,532:0};d.f.j=(t,r)=>{var a=d.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var n=d.p+d.u(t),c=new Error;d.l(n,(r=>{if(d.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;c.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",c.name="ChunkLoadError",c.type=o,c.request=n,a[1](c)}}),"chunk-"+t,t)}},d.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,n=r[0],c=r[1],f=r[2],i=0;if(n.some((t=>0!==e[t]))){for(a in c)d.o(c,a)&&(d.m[a]=c[a]);if(f)var u=f(d)}for(t&&t(r);i<n.length;i++)o=n[i],d.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return d.O(u)},r=self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})()})(); \ No newline at end of file diff --git a/assets/js/runtime~main.ed0bab85.js b/assets/js/runtime~main.ed0bab85.js deleted file mode 100644 index 1d628275..00000000 --- a/assets/js/runtime~main.ed0bab85.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,t,r,a,o,n={},c={};function d(e){var t=c[e];if(void 0!==t)return t.exports;var r=c[e]={id:e,loaded:!1,exports:{}};return n[e].call(r.exports,r,r.exports,d),r.loaded=!0,r.exports}d.m=n,d.c=c,e=[],d.O=(t,r,a,o)=>{if(!r){var n=1/0;for(u=0;u<e.length;u++){r=e[u][0],a=e[u][1],o=e[u][2];for(var c=!0,f=0;f<r.length;f++)(!1&o||n>=o)&&Object.keys(d.O).every((e=>d.O[e](r[f])))?r.splice(f--,1):(c=!1,o<n&&(n=o));if(c){e.splice(u--,1);var i=a();void 0!==i&&(t=i)}}return t}o=o||0;for(var u=e.length;u>0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);d.r(o);var n={};t=t||[null,r({}),r([]),r(r)];for(var c=2&a&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach((t=>n[t]=()=>e[t]));return n.default=()=>e,d.d(o,n),o},d.d=(e,t)=>{for(var r in t)d.o(t,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce(((t,r)=>(d.f[r](e,t),t)),[])),d.u=e=>"assets/js/"+({53:"935f2afb",62:"7818b736",85:"1f391b9e",153:"f0fe3b85",156:"230402f8",168:"ba0da7bd",257:"db77d2e4",339:"79dc5662",383:"81bf376d",452:"13b4f215",514:"1be78505",608:"e68c6035",668:"e7ce6630",759:"546e778e",767:"4c51782d",772:"f78498e9",843:"5086c83f",894:"d40faacd",918:"17896441"}[e]||e)+"."+{53:"ee1cc9b2",62:"1ae5a322",85:"fc21b765",153:"59c993d3",156:"c7c37cf5",168:"0b2f9340",210:"01708bde",257:"0c99717b",316:"67f62819",339:"06de6b5f",383:"220558e2",452:"e7234e89",487:"5680f3b7",514:"b1cb824c",568:"0246d0f1",608:"c87c72ed",668:"9e069d6f",724:"51924eb8",759:"9c720bab",767:"aa1fabfb",772:"f5eafdde",843:"7c55b8a2",881:"757d2b2f",894:"45a2cdaa",918:"64634230"}[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a={},o="waku-docusaurus-template:",d.l=(e,t,r,n)=>{if(a[e])a[e].push(t);else{var c,f;if(void 0!==r)for(var i=document.getElementsByTagName("script"),u=0;u<i.length;u++){var l=i[u];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+r){c=l;break}}c||(f=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,d.nc&&c.setAttribute("nonce",d.nc),c.setAttribute("data-webpack",o+r),c.src=e),a[e]=[t];var s=(t,r)=>{c.onerror=c.onload=null,clearTimeout(b);var o=a[e];if(delete a[e],c.parentNode&&c.parentNode.removeChild(c),o&&o.forEach((e=>e(r))),t)return t(r)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=s.bind(null,c.onerror),c.onload=s.bind(null,c.onload),f&&document.head.appendChild(c)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),d.p="/",d.gca=function(e){return e={17896441:"918","935f2afb":"53","7818b736":"62","1f391b9e":"85",f0fe3b85:"153","230402f8":"156",ba0da7bd:"168",db77d2e4:"257","79dc5662":"339","81bf376d":"383","13b4f215":"452","1be78505":"514",e68c6035:"608",e7ce6630:"668","546e778e":"759","4c51782d":"767",f78498e9:"772","5086c83f":"843",d40faacd:"894"}[e]||e,d.p+d.u(e)},(()=>{var e={303:0,532:0};d.f.j=(t,r)=>{var a=d.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(303|532)$/.test(t))e[t]=0;else{var o=new Promise(((r,o)=>a=e[t]=[r,o]));r.push(a[2]=o);var n=d.p+d.u(t),c=new Error;d.l(n,(r=>{if(d.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var o=r&&("load"===r.type?"missing":r.type),n=r&&r.target&&r.target.src;c.message="Loading chunk "+t+" failed.\n("+o+": "+n+")",c.name="ChunkLoadError",c.type=o,c.request=n,a[1](c)}}),"chunk-"+t,t)}},d.O.j=t=>0===e[t];var t=(t,r)=>{var a,o,n=r[0],c=r[1],f=r[2],i=0;if(n.some((t=>0!==e[t]))){for(a in c)d.o(c,a)&&(d.m[a]=c[a]);if(f)var u=f(d)}for(t&&t(r);i<n.length;i++)o=n[i],d.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return d.O(u)},r=self.webpackChunkwaku_docusaurus_template=self.webpackChunkwaku_docusaurus_template||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})()})(); \ No newline at end of file diff --git a/community/index.html b/community/index.html index 3b9e6c02..42bab2a8 100644 --- a/community/index.html +++ b/community/index.html @@ -4,9 +4,9 @@ <meta charset="UTF-8"> <meta name="generator" content="Docusaurus v2.4.3"> <title data-rh="true">Join the community | Waku - - - + + +
@@ -14,8 +14,8 @@ .lsd-dropdown--error ) .lsd-dropdown__trigger:hover .lsd-dropdown__option-label,.lsd-dropdown:not(.lsd-dropdown--disabled):not( .lsd-dropdown--error - ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

Join the community

Welcome to the Waku Community!

Whether you are interested in building with Waku, contributing to the network, expanding your knowledge, or staying abreast of our progress, we have something for everyone.

- - + ) .lsd-dropdown__trigger:focus .lsd-dropdown__option-label{-webkit-text-decoration:underline;text-decoration:underline;}.lsd-dropdown__label{display:block;}.lsd-dropdown__button-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;}.lsd-dropdown__trigger{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;border:none;cursor:pointer;background:none;}.lsd-dropdown__trigger:focus{outline:none;}.lsd-dropdown__option-label{cursor:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.lsd-dropdown__icons{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;gap:8px;}.lsd-dropdown__icon{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.lsd-dropdown__supporting-text{margin:6px 14px;}.lsd-dropdown--error .lsd-dropdown__option-label{-webkit-text-decoration:line-through;text-decoration:line-through;}.lsd-dropdown--disabled{opacity:0.34;cursor:initial;}.lsd-dropdown--large{width:208px;}.lsd-dropdown--large.lsd-dropdown--error{width:230px;}.lsd-dropdown--large .lsd-dropdown__label{margin:0 0 6px 18px;}.lsd-dropdown--large .lsd-dropdown__button-container{height:40px;}.lsd-dropdown--large .lsd-dropdown__trigger{padding:10px 0px 10px 18px;}.lsd-dropdown--large .lsd-dropdown__icons{padding:0px 14px;}.lsd-dropdown--medium{width:188px;}.lsd-dropdown--medium.lsd-dropdown--error{width:210px;}.lsd-dropdown--medium .lsd-dropdown__label{margin:0 0 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__button-container{height:32px;}.lsd-dropdown--medium .lsd-dropdown__trigger{padding:6px 0px 6px 14px;}.lsd-dropdown--medium .lsd-dropdown__icons{padding:0px 12px;}.lsd-dropdown--small{width:164px;}.lsd-dropdown--small.lsd-dropdown--error{width:186px;}.lsd-dropdown--small .lsd-dropdown__label{margin:0 0 6px 12px;}.lsd-dropdown--small .lsd-dropdown__button-container{height:28px;}.lsd-dropdown--small .lsd-dropdown__trigger{padding:6px 0px 6px 12px;}.lsd-dropdown--small .lsd-dropdown__icons{padding:0px 10px;}.lsd-dropdown--outlined .lsd-dropdown__button-container{border:1px solid rgb(var(--lsd-border-primary));}.lsd-dropdown--underlined .lsd-dropdown__button-container{border:1px solid transparent;border-bottom:1px solid rgb(var(--lsd-border-primary));}

Join the community

Welcome to the Waku Community!

Whether you are interested in building with Waku, contributing to the network, expanding your knowledge, or staying abreast of our progress, we have something for everyone.

+ + \ No newline at end of file diff --git a/events/aaron.png b/events/aaron.png new file mode 100644 index 0000000000000000000000000000000000000000..fbc807ce76a40a3a946fdab10e745a635284d4fa GIT binary patch literal 792088 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%0DVm3ir7{AO|m- zQ0Ek*TO0B1`SxNPv8MabXD#BJ$%`DPE@+$O*ehE~)jeCcj32`t%G-?!x6)5Mv3#Db z^_@9E6cKpY%*4t4PYN!71?DH=KD3BG_z+fiQ9v$s(_Pl{8_Yv`XTi&c8UMz&`nh#Jrn((G|6Th_Q%GihFEhvA?D2TS44uw1pxr z_tAgh!g?6TN^eH~AvdnJO?#oO*+KAq-LryYNEr?Js4$0eL{}H;lKu#jybp7s%Z}NqDl_p$mEY*$zcsQ5+yShMlC2`b4|{yfK@lc6vmfUgXQ!Y88Nw;>iN(*CZF zdrnQo`!63U+j`!dcAq?kdO3cH((#(BYRb+z`IGH?gudsTuj~S8eQ|>!~KBbZv{^cIvVN~`zYfoH@oi*Fy(w6$W_7(*iGka0au~=Y*31~ z)V~G&aP8_%YtjAay6+t)wzu(#d&832svHg|5Pvoc3pv-OE0&-Efk93BoC#CN%+!&B5aRpdW&d%12rHnR&4+aStk~T7Ra)@i>Y*Pz4vV1oLHIgk%|3%>{;b0G`L$N-RM#Ta0^Hqiv`XQX@~PjB#(ie zagAGYCDpIAna09h$EFWCuWzk(p8+qc|?JpygSD3|K}+-?jK5E4;@NBLW%J6tQWI^tZ6@`2K{QL#@n$R}_hxoC1az~8GEM{YGIi;;)od!<0 zGQWkqy^Q{Cy_=i)bmlOzZD=(_(p|o}@ zK{xfrqECL+{>NW3#D^AW2aUSj%5{Ov9Ut5=h1gk_mx6U?ZjfT@Co^HWmI2l95s zmmb%Ozd=*2G|jM8Uq)4NhY5cNf$P-PoLS3QMv*ZZkUcEo{gS z&~r>08yYib?}abv>=7ZM7X7iE}WaW z;kE9_0zBOyVEiws--&-3X(%a*Z| z=N8uPPdhuOI2wUSwatW%Z01=R^hxsyrKpe4fVvi8S6z1&^)6BvKU_!w7n>S8tciWl)y+$v+) zp?RG{-Fy8hv#qi*@evG#>o7K}F~hUo)t>*B5Irh z1V+~wA>$H7#DrXx}3oO3ni zZ2dp>)A)_H6(@jC^x8iv-pRp$+X$@-gk34aQn47m^}!pp&|& ze}U5?Jjv4JwJY6yMC~`!w&N+!;)C%P-8e=8E&>`miV-B|`*&u5JBNQf^8+xngs6#u zQsP$2&KqlEs1a+%M!`xmM@!GrH8adytBVK^V1$YI61M7GK7g+EJL%kdWk|!v$~H5y z8Kl4t5W}lpCBX=_Qbj8Cg)E;J6_CS*B)4Ge^%j1dh}&6VdA$beVJZ3VqXcU-a_xdMn?Ky z**A-ZuLU0E=sZVguPC3s2D>1ds1*Hv`9k*)S5-?&bulX6Nh=*g)r_{n*|uLhV(5Q3 z1@Bl*AF6Qw=pXM)81;Rd-(9-N;K`l&q4=jNDC1wZT%mt-&4H{M#(8IECvf2ha+h_P zE_>>)hi@RN%B0Ir>{kgCzavB)e(D9zOc^W$8OdSDvyM7#GNnAqccgWy2O?i$-|zbm zE_fpR4@>a4nI5UKi>+Kcoo`HZCnni-IEzWGlY8eE8~~b=+p2yUa6M#}Jrz}bZw+G7 zL`SeU)w-|?8mxUHzog;WEnaQ~|NNL~3QfEc72Z@ih2uU;4-0^jVc#p(^Yvp=tSQN% zz*mRPNI9kp7o$IT2r-X;00eumSvW-177mn$A=)X zX2OW$!`+7Yp0h7jpmEcvI$L#A&c=vkKj&0ScrE8Ea|*`A-|3{7-Mm-y|DG z#6Nk6;@)}g8=pQ~9y`#XU6I6bET#?Qlvb>JbfD?_QL{yl2XYh70sWh=**O2se9f95 zkFg9CFkn3oppYL9Z`j^orL?)RLt#mRTmB0)fImeCXlI}z4y#TNubzT9s^M)*Cc;8P zl$`V|BkSMgJAw~GbbDR#ef>``VXcE{z^7C64locJ7?caBxD>uasX$cqJp{Vb;t`-H zm9Y@lC%A%Ev33PpnGE`IA|I>Y#G8Z~PCKmJw#=TBPCT4dsJR5goOH9Twbhr8n0|c` z16TK#0Q~mHvBbW|A+Rjc6wlKsEn|JZci!eTyjDd82JdXR^OVUXPgipchJ29aJpPxW zJmc#>u~U6)$n@>|`s0L{w2&vG7J*1+`;IfL*6Cr~C!gp=r_J>6uJK5Zo4K;Yga+b?e>r>+Ik{sG-59qN-F8wES!bA;SmbO8P!U2N9OfGR$CUn}n_7u1 zuUPbcfmLcXewYHM%8ls-5cVUmmp5c%=asdG_tCk>P+nJExJf~5Y=U(j@@gOKy4A`Z z=T6S5xmt9$SU38euwn$nUhbpf+6Jr)!T|0ojXTombbt zMau5{&CXfkA66JrR;pV+Tw_@wAq!RCO|G?I{!{R>wwXp+Io+g~oHV1EmpHRe7;GJ> zTl-aR9V2R{XNsXRwQtIv|17OcZoQCX6-bv}?qM&B<0gD_C4+;S@#duwb|?P9AoX*B z^>ES28U{GtM&#E65){b)M_(vV$aJ|eU5ZD7gu;#FeO8x>YIDO>SjjwclU34IxMV1_ zlAca?2P}NYJ_B2@(hOs=a7oP4=TQNMX&Kf*=Ky6T6wBHAv=AHA{*H3R`mZaf0PLT0 z*M3v|i#BO|?HQXROt66Ci(#$47e)HlUNx66P^Y){zz@LuksiL!V%Z_mChN+Mn$6docclFHWe*xt_(>!iL2aWg@=xipb)TzQ% z*lv{|0<$V6HO5A6_f>?6NLnW#TBkooHiHXmqrW5m- z4?f|q0$@$uRa?X`ow@W{gIwZf$c8j!zZg+YWWUW4l@H z4)-Cq^|K5a2Dd&~)SjN4&HJyk#ki>Pm;C$b$ zgFO1-Txk%dR}lZSbnIk?n{umA)+zFnxAq#CV@fv;==UnGiI>Uu)V=#Z1b#&T&|U50 zDAqjniOO8hiQLqvZp@*HOR3iLA5m+&oXhW05Q5EYosy|eSpWPjWj*EJ3859*H&`?5 znI`T;R`@TH>%DbQ%x!%GULv?I@s46&J7-3x;1Xq zTf@%%#@C%`Xmcd_cTLqgl<#56bEhBh%u<3h21FL4pKAN zWV&O};Mxf~I9Ny#2_Eh)@kQ3|@@PL@@%TZG$Np-%$$BAI)q7*@WC-=Zk6`$t0LhP6 z!N?XE@elHsK%g?BO22oqeKy!i_GN%U zjEh^g@9^HK6~z}eqdp!QD^Ra^@sT9EgJd)`-km8W{Q-9DKOK^C#TwYy;+UuHZn*o2Q~T+fzczylwn# zE5&$yXmLAA%PiZLVySD#4YauN%c7=N3*+1{K{Nmg8+k2rG-`^uJ_=`(vTun1;)me= zC7WsnIh7_zdf`FgZQ~!;$-|Ye+`ox8Eq)so z_~l0mua=jufW4kM(0{jFIyk@A%L#1JK(W19K*k81c;yIpiG~A!e^67{9@GUXx#5H! zOG1o$o6P6yq6fDXgi%dnD@s2hPI-mNVm2L@G{x%BiCwjatOWO;Zq5o~aD4fD`(pX~ zo>*lFg#SO?Tm7xr`}?`P8K`Ibo;oCu4d(i(SPkr$=`jaWq;vb60hV`0+Fj)4N4(U2X1d`gRhZyWDuWL8SEgw8X-6tb>Wod_a8%T zobFczSgNKo%{nTs9cJI%4J3w3bl6J!MTpvH-xV1LcuVi9Gt#y(*WrxRePQkB*W|j? z1i6LYcC{Tw+7%r)dN5_X4tO2RBxyLO_jWuvGu!MJhwR%xbs$>8ntOXJ*pfM$O+}7Z z+oNsd@}sA`zK*8nxC}k9&}gnjMAnOaLhv@TFZvR)i9B?V2AG^XSYbDdvN>d{H8bv- z3=$zkY3os6cB(wT)|yBCkR#Z!%|85URoPjm-%_f`L2o$D&gdaI2dGMPa8{`i;9lOv zU7qFX2E1GgjP3+FrXZeN&iUls2M|F*%~~y4pITw|03?okrNA-jG#SYpf2;K`oEPug z$H*_qcUc&i`6=yL$Z}3m!SrCJnUwW%2ror=-|!=7Fm(Teu}kl2kuu0zQyuDeQq9>} zzUfOBh2=i%4>nO?Dxq(p`F$4^UmxelDw2nZK@_Dv6X}@rd4uO4kaeJfP6X=5iy5Yc zTJ&9PC9S(@PtI8Ab5{ajF_oq7+x|mOUPy`Xv-xNOi0Qf_W%HHj+t_+6?S0vv zHA1;&22>UVnvRvN|AQpkrK~LcJIp5~_ve!|EU)xRoP}Ivy5hqnM;e^7nKB(0`8shr!e6ZNgk zj~D*!>L~Adze))?JHp9G%{C6m0{*`DWn#qm`kVfa5B~s6(~fJXMCLlo_ZiSW*&h@N zAI|FTFL|rX%-M64y(cbc4hFrjars>NA^k9_ePb%gWlyQ6?RCMK(sp@i>E1cNak?V0 zly$qRtC%V!UGQEl7)8JGhB`dNQoZql=GJ{`bTX({@-BE)BL-jbH2TIR;@)Sj3*Bt@ zmA5;*eFT?=OY@|7-o>a=hC5{9or-GbxFsr^xNEC>Z-OX;99YdLp&tcL>V%vL!2Gk% z!F`Q39r@u?)6~gXP*45Old{$1LE*^OV zmahJtn;%>4R%zlCBXmhlVd#;o=$Vlx9Zn&KybEFCtJH^DC%V}uo)cy}HUR4RJ~lvk z67G{@c0sc=EbB;=ebR?EHM1qX09m z>HEV@^cqbx=&K_j_r`1<>FX(`%xSHx@P{#?r0wc56GbZ`@{srOsS&Sp&@O-Rx~|M9 zHwo?2?#GTPSfVB%=4ri5DMvviS}G{PP8y;}n5L~u8;gs#2tJ!cv)bRiEdbH6BPwlV z@9}W9_uezv=ux~aO}4P1VUWxTe0eWh#hfMB7i|V0PXywi9Wij+CS`f{hB-3TizRADU4e_E9@V@ zx=DVuToHnxe>{|wB@gpI5je?-)bk4_L?uiR`T?Oy>|sCyjHq&Rcx>&Qm6`)U7OY-s zR6A2o7$2@}^tChJ?$CsKy!D)S+cDv{`OUS2x&?}sbN_khuPx+3dPk`+J9SwzD2cFs zAUK}U{2}H|)&A*jmsA8kdQ-cvQ~A21=7=O9p!BJfCb(MA_DoZMI1;zqzqTEsa=yqE z@mxKaVhoDO%x9jBadFle5an%Z_+#><#VrdVtllY1iD{K&Bj?#54rPl=p?#yZjhA17 za!sy(Lp#OxF1Ut|$S6Zd@m&70M1B%oZHcIFr{GZiZ&DO7%24Enc&m~stEwXE+5zYx z!s*`Gc*CuS;{!uxz60%QrBA~0BAPvKK^??Z6=o<*rrppM{kd{F*b{gH%GQ2^+zKkE%1lM96k zGynl1sTdq(i{S9d7;|y;{M!H6v(Ep&DX5oJme{WMqt^TTAhJaH{FFIK+HFs3JZ&SX zkewTL%U~u}zgc3*3Yw-k{jn`$+7S=@;r=!VY$fM=FcQ-~szRM&2YdCx5s0t?@D=Ep z9$L%KHnL-!)xi5n4|-`b&5sIvWHm7EzE-ysB&lB-3Vjl2hPJ>0>p@Z8y4jkff^N4V z7A14WE&73$qdIvyB9mbd16_5K`U61M641)Q|^&xq932DMtsdutQPg0Aee<*g>F)_b6Q-V#Z4D zG!oQFFEiMXyRSoMwwq=JuH5O`WD0Ip7xt!xD&frE;3x@v%Low3p_$$DZhorm zp6rutX0~a2yVD=J0$&_#SN0p*GdkXRR86tueI9eD#4$Mb|$$tmkSEB}1a^v*HWH9XAy#U(p(L=ecA ze~ov#8wG9n#9S_+*{?qLqe!Ud*wysfrma-ia}|^1=P`EN(%$rp@L16X9n#v~R0XNXArKNq{@;!P6;`b;8&yVe!(t;x8BVnya_aYcr)-Tl?+zWA$Hdc{ z)>(3fw}qWMp=kZ3(`HfuIDKGs!AhU2NR(w}Js@R_W+b2yYMY+&^(BY!g)0Xy~Wp@-uv z$iRx3IisBp(x)a!&IGt_{taSS!5uU|ofz);+S?g-a`?;&A~)c^+9`%K3VEY&0zFOO z6>M5QN%$*pWyu-o@K*$T}*g^bdRDGfe{PCt9w55J}q)j1qUn1EpocZE>$If8cqlK*v=~ zy}rJ7{v9SxuJt*4*?!?l&e|)vUsuV4vb4*8^7I0~jW|h-8Z&~cj)#}68_REzRF#E( zxF_r_hhs3^%*Q(SLM(*jj!(kVHKP}(Q<!PV3MjpZYUASz=Zk!_o+x6b=o#MpFcjyl>by7ph*Im5*eFnRm@JGBz5 zAI_Pa@C7@u(guSThNzv=W1;YArhm zmh6>r*VyPW`uDIGJ#PueR{pvI*Q6@np%5niE1&DUX|1j+-X~=IkM>y?u~1 zfBDQ5l)Ku`zF~5^JqUJwojsy$Uu3iTJO+VtVI)#kLbfLJ4ZMR$Fa%RzpMmex4xEr@|5|yu_|#~o;_yUN9FPNj5BeOP`q~@bt-Ri2gRz%GYb%h{;-5o zv!zF_r5}N#3F;7A&*_Q1M`l~Mk(Mui+-91xvwQd+O!*=AmL=QE@q&U1`3-?9+T^AB za2><}@3>*iUJ=`>XCN`O5*iy;?RBZQ16|}ncElmfNSX%($Q6(#fX8j1p zyK+Z=@Fy(LL?V4IDXgUzK3NP;IX9m}>qc1ERK+hkZaSzTRZMgVHnaJe83L~A*Q@=q zpmHw%DU!tHe0XaoBimhV(cnlxeXTdAGhP;YY6nnF#sS9vvt&l}``*As*lDew(zJ-a zx274b%I~!fkPL;7Z8s7U$}H7b+p@Wcuak=Xo*1pwZiP>ZsXcx%_eAQ0Kuk92oZ;Ku z&TDnjOFTwRFcJxCJS<9w9)THpob_T?ry8Yqj9&ivGFK%^dde=i7Tko2ZR80XVr18Q zzAeqNsMZhb>!)}}nVKokClyUUtzs>_t`1xVi!T6tk)jn$$Ux)ed>5ihvN2x3ULa#H zWjh*Z{&shu=mUTl1;%CaPyY2z2h5Bs%@NE_jKO|Lk(Lc5P7!}uP$Ro3MOn=J%_+;Y zFH6M8>Tl^b`#2V0YlxtDyI#58HbFP<0u0YMa?3Aw*``5k1OByg&_#@?u`Y}gFUcGZFhs5ku_|L$3> zcv_-Ub4ou+r>6py3GT6nk-Q`ZYnZ>%_t85(#OCk0@r&#XukalktTC~kfZ z6DRm3k_QZ)(&?a4vZF#$UVa^t{M_)N~9g1ryGlN#xQd@f2`%|8laID@13oK&usQry39Gl9} za*Y~@7iNdvjGWtbzuDo!NU>U~{WuR@e(QIyHKj*3xY?v|Xs%NWGeRjK*J=&v9uXE) zBqJ6As4t1qU~~e)ochxUrverGY#O|bTIeCRmv&ld8QJRD>Dh$C7nJ%Rjf_v8P(vo{ z!E3Oi=)Q|X3xDI97<%wEs0hD)&A*W{$|o*Od!AKw?c2Z3vG!e4O-Xr!4BrL)pOJi? z>}jib3{zILb&A?q^KVKFsX;Ldj@kHsr6W-vOR|a)Il>}u!BMZ*3m51WFy|jdQfphg z4?_ph*P?;hYn7Z!kPnD?_Ueu^`;AiAC=s=-6@dlEeO-_Cgz4~eunTuTBRuwNUEzk| zj9})0W^o1sM_q%9!^^A|0(0hf8;k+N^ItFLC?cFiFP4*0Sl*QP`j@z+ML>fH;H+Rx z3Lv4&kLfSSO`U;=Qq$Z29TPQplJ-~v#T}@k^{sTE@YSY#B3zo*;^05(*2va*a4~YLQzoFU058e#RpeOan9Uq#GIWw^Oj4rFRuNtAa%LlA30n>`OqgL9 zTXLK^jj`W8-`^kcdOn}8$K!s#-LxC}G8BU^A>4`31M^7Ka zU2eM9fpo`kQl(Li2wy0DcH3_`nGj;pIP=%S&~7U(`V^+1a%y!Vf~i^Zu-9i`d)JL^ z)IAsDHhiZ3$JzL{ar8jO_3fufwJ*8B!8=Es=j8mL`5m^FA&pro8AtoF3uaYx8jNU) z>vi*TbJIF2?LCI%R1sTwyE9_@mzq|Jwi`E!dU;IEo>EE4WZ7o5?kH-mz1$E9 zyft_u*#L=p!!vzXX@M|Jc_+x|d@~^lgfJD zG%S%7=kYwLfDLF^NLgQqZ=a0TRiuQWhYDLrJ8vxrgD zBF*}e4#)_`CWD3cz_-~&=@+tSQ!U`-nD@W32D*cUI_9OJo;0SfXHw#ya|xIrMoOi3QX4?)aMXV|Ub2 z$LB$KScnK>CBa}dmKv8>N?aD>nKSVf{mk&z}4MH5}KK4@OR~nvflWS&B3*LZ}3ha1em`fGkb9T zj9^-P{9?ACfJtzf+zi5d+Ywn zn(bCN1bma+QY|4vYkx#aYqFX!ILyIR#tUoMwAo5oJ-|O{<3yZOz)+3O!>x;nb+%XY z!n1y6@i=t2V`m0gPqPtHA~>}cpQM@AtHZ4>N7&aL0J>Bzhb3Lugm0?$8Eixn1>S=p z>y!3oC0RHmZ+QI=n#ySxKdIazMh=P}l=fBF1z9H&qWt6%rpL51=H{N)f$5IzUH(w) zxs_uAa$2xG8)p}BC9G3;$*TAeUuFNqVcyETCTlyB1k%%(m-CGwNSA7JVb*r{N1t(4oydKArB@ zK|uP#Me^8Xazb5%9YnS%SFt2-`D5?*$Mretq%wm`;E1MBh5-K4vB*2;{5+6EhBu?{YqA_2Eeg`+Bg5t@Hhc|Wau-UAMFmiPXntrw9Wrdgp z7n;4}MKMkYA;) zmkiPjM_ON_g#qm~7dN9TrVGw=p$e}VAe=qE6gW3tsHG-M#pWItdGLRh7q{G!qt_g1 zaQptKeJauP7I~n`eDOL1?@;x*C~XWk`>JyCFyjc|r8AEzNM1CHXF*kZ^7Z~8n+zxc zYI3uf`Hf`#1fIEWe7`~5qV8jUOB{{TH1!$R;kq9|xBjctw9_&nQv>Z_@H>!q zn?939;$LfZqT8qG7koSFri8Ma&Yj7;h99igNuPq*`DxxKju}MG3AF$T(a9T%i2Ks0 zAxP=4l-8oNu_z5bSH#RZ--I-e4R1|JV4PpiOl)6?ne-zwGzM_G)A8jQwP{h--ejJ} zrXb8TJIZ;+Anneq*$<_Siy>a1-}p!~`zC7V!vx~FH{$rqmQzY^gbpk9xvWX@a98W4 zL0ugwdoF>uF~auSn)GXs=X;CnmzSzb6KDVbVIJt&WBDVKU)`85Bx52O`X%oq5m?F` zJL*akH=@ENtbeJ7b36Zzy%&`FJ34js0hx%2*^4NhVMjf9UyR3p(aBL?U6mA@Nk+a! zk+sf$<$ANE9{S?)>g0c2nMpQwAU)wX-C&aAeHiREbZAM`v;9ZmQK0Da(cWGAlewUJ zA0N14-($THjSKB`9%!3Ueo%yxn4-LAWq3(oLcfA(KzyUZYvz?YRH2t+_x$61F~<*J z-Sg%v?A;YF{^Ht4q~d7>?y0Y;$xV&X&9z|8GoYQYaMh&7uFs59wXJ)GqD<37`>9{) zt4c$9EmbC>c-?)1Rp)`Naf_|-;-@y0p2gWpF&CxbOQ*}xVug4nZ%0iH^Z~9xR~CEt zuGp~WBQn#sGS6&x;C@mK*=Jx^2?{HizI1*SX|ZjbF_CAdtZgq)p8hoXoIp_rXIF*{ zVknb`rqMc|2i&j+SjQLwoA`qC0Ep)d(AWI_+w@a9Mo1lNPXXy3^7IFcZWejEfFrt+ zv=WxGZNp-tY}?7v4^Hg#~?{nW!KWTLifkydz_`t_~mf9KAQuQ5hKk*{nl)E83r^;9DUjllhPlZ0prr#SX* zy_;(@cRhI3eT%{Hp@zkLQ3T}YxssDy$QsrOaM0vXrX^VoTHXYE4NEr)%_`(OFAa?& z@mRYZb_VKelB~4P;ymp8G=Om@Q!=#goIcyUE*7y$06q?nuoYZdU2<3?1Rs(u$#a*I z$_$yrK_+yiEql?HZ#KhtAft4Phg?MD%wKfxvEfbx%@uNHT*JMlB*e}a^N+UsI@FFB zMy*!)fJegD*qxGfYn1!SBy}Ph=&Rj8cW*bum;9PeN3oZUL0)mQYnP+j-O0s5tOUv* zyE{`lbBC=i30ogoP_-rdNkmueLKI!B7Jfdj+d&Uttn3!Z>7$TaPeG%KMat~ZhwS~a z3z?UrM}7rlt^S)gOt|~bMcQhR*K#>#&z~+fAhHWh-krTL;UF}%lP7Dcl|Q<@7+FHE zBNiTZEFN^4zx&|l=+R0RjpdQ|&?^26hqXh86t^*GqhqjCM~y|@PGYtHm9&^eq8^xE z6mY22BP<&K=#T=4#)WSG9z+>qwbVJI@v|F$qXyO2R<6z;2`Rr1@g(1r=V=)^ni-&k zILPFD_P3~N!fE&xrsCYR&Ej?UW+r7e5JNWEG95onE1;1?wNvI1uWM|)jwA{-05_dT zAg9e7b6RVW*zFK`6mV!lcezW7wHp$|5&bTD;<)e6dD+mGe7L9M+bzwV@tqXio<-2| zyoyIvYc`BcMD(z%FO*JR-zZBYY>GvQFMVNHS|5|n-wg2LYD5nHBCZ+U4)VNyCnv+yz2h3S!W;V&Z$>|A|jL}fE z*}SnD90IS=sgk%na(nQ*ty3?{RnCQ=P7+OO_^j~ufnmXsP%h4^6tY@jiFAY<=H&>G zc9b|Ux}w53MuWhBDsY5v#nT=w(dsVSYj6d!o*eIfXfCZi50#;$H=b}Yu9%kW(Dr7E(Ydq4=teHJ z#Ui>o79|%5BaI@(xgYfWPM?E}C^WT(hn!S92)!~Ba8fdRF{Z+j68+%CX~O)>-e-^^ z|6}~COD`=WK9tYkuI~V(eabiev>)av3kq8~1_&A=Wt9}RYq*&Iv*xj5?(Cv%dAh__ za<%e-BwXEm zXhaJZ@(tM%WWg-5u|p+~=c;3E$$EoUe7s71^A(~t%M?yQcQ!Bu9>=eAv_^NE z2G?CfZk{IFL9;9t9U%?dU~ijg@{*-R?C|qSX51A+*hS)uVqwA{x~%nL9oFnRFsTG7 zKE}Pi9_ff-Utjx}CO6>VGfY}#qvJ4VLLJyZq|30cnk@ZcDQ>7mfB;W}%x$BaYA^6B zNt-iX4=gAv;e3sI@?4cvkWoAuBk!#4Oy} zp{fHxaE(};^;5E@9bE9JaB0s2j=)!eWg~AB7gjI#M{Zbma%Go`TA}w`vQ>q{sAtiL zxw8p8I4;I_=62AJMzJ~iHU_tyP*QfQtkA;<`qv?A^kmGaO^04kK zy87&`W{}QYJqR&sXc@Nlf_$96MIzMgUAR@42Eg1r&i_tmH*^xj`DzB~ z%f0Cs>?xI`Y+zJGIQ^6_YF$;&ch_5)*n7fY^OqwMS-`|T{X`J}o}?EQr#D85d!Ni= z;7#m7*%A4E-Y;*X0Me~lIx)0VU0wS zXhmMYNYvHJK!)f6!v2!C)QG4GJyoRo7P&tsncc7~s@WLmE9J1TIwv0N%SDQ;j*w|# zaJ61V-!GEqM3P(J$YAkd{f^IVczqU!2i^y*x`1?A}% zGvi3BE4~~?lGe!Ep}zSQ8s{ir$lUa6gp=fl9o8C81FNw!@?yYhwfjjaXG;k9zE&1| z{(bAPQE1$Ap?K^IN)_t(PYZR!R&Ficjq4X3Xin z**vrmq?nYH$w&uX_PYya-fPG*@Mqr&0U4Y=;N>B8qK-wjY2aavpUl>6lG2e`EYzgG z`bPD*HEhnvj*%pGpkM05|JZm&al_fBM@ICx7MB*=hH&5IWui=+%kN*l=aRajJl$cP z+DAQHDJc|Ir@i;mKixWVzqUB9(pkc)>5ggL$|Om0s0fOGcyy2;l5v=fEN{1x&)p(F z41t5G;a5iouJ4%c>IzszBe36oytMt{v3#yJ!b!W_VKMRRT4S(`>>up^Nu25T_n5a+ z?T(%&QH6&XDz7hCAnl3sxqvMWX_Ld97f~b;!FTdo%I_j{{p3@L5=_q)Guqu28bd*O zN!N~ALr7pryAM^6#UpCu$$jo;(p&Wg1gE)@qN3>Q$mymAvrdBlhbhU2Nn_%0d6=*- zn*^2k^I71hwmWTQ1LL7=ml-2r4hin23N6PYoKA`YK0hcJ-W|2|@i6fE&a6KBM60od z8zv^5?mI}9?~85+yrM3R zTP0i%!g{#I;0~`3A+Yh9F6sA_6;SxB?M6h@6(39DgcdOJWISOQ9sN2M#dlF)Ee@Fb zJU%hcEzuYse>i-P6~At~3CeP(A78nuTh-}=)Tt|8aN0WfXwzH2CuHTKeXhazCih-8 zgL=(?xONgGzDomc>s6d3S&_>_vg()Gn|bAOvO=vFq`CtrgV(?n@v>|E&6Ahll^+Q# z#5K5q{wIs|e+GkBFGTeRC6M(RZht(`rhAgf4fqV`j{WU%5h7(u+allceVZN4 z7q#ol9hM{8KI7hJr`X@IL+u@mdOCHfRFtIv0ORYcFnFCFEAMB)qG7PNEjqC-3!m!8Lz)&AIU zOkQ$CvYI#A+#42`Byvg#EV?vH@0u$Y%;oi!K0pkhhGUXbWX;n%3hE>`D(j8xxZqNG z`zWGfnGj4cR5zblz+fi@{ak%2o0-kWyX<@~aK5 zkXtBo>ls)(YS3#O+F_nQW8HQXUQ*WCZX&SDYRj!*mO$okSNFd2gYRCPP&Yjt8TZ)2 z_gcv|*q%UD-<2>%bf@9}LDJ}gS90CW^VSUSFqF_g0OfQ&9M$d!R` zowcu8VNMQXmV>Wg(8{Z9vfm3$Ktn@I`#KYe%TpO(WGtC7M*zHsP0{aA?{Od}&u*Ef;*~cvFKO_G0H}k`d6 zK}4AN+Bt%F+_eeIb)xWVHa!2KV^Vu0* z(lVbNew7A-^BXFW2KdD6|8L|c{dR5~Iff*2!&vaas;u9$-i}c$X1^eKCbBrRL3C+_5vqF`? z^XKoyy>h+%0@*ospQD=`O;&yTzDl_}NNeo1-Jb*fUyqhB-&3B=3jU9FpN1i>`6xT; zNB`3qm-Qg(g}l5}H7L@wc0Jd#>3N>Fz2mYBw@D1J)8h^Lq>G%kN$yB^Evr9y0u;^TSov#Y-kcD#RnZd6QJVGkJjdygovK-io7EhGrj@Gid$%G z4?)}`&16rRqr6ekj2IxdOlr`I#Q1tbL?w&vD4tgh#%dHZSCVxoY&1_aU7W%HpHN30 z%D^vbArX|ELH`qyk+t$De5l5kiHjl2QPn-KtgtEHU4-zqOvYlUfZYJJ7o)1U;WH!TneKX~>%9aC! zYn>Bj$RpwjcHP2`!J{vbH~4d>H4hJ7_}Ekz$3@uBt$mADq%PwUDZvb7sQXYf(GE9Q zW6gt$+7R5ID6WTzZM8b=1^>u0>iM1bv&vB1b>H7ltaa=S@=aad6jl!Jaoi#pRwzEn zDE<-2j%~nF1*wqg@(}4Q1_u9rQvcojW8^ye8`5ne=MT?)Ie@*0xMGh#3Sd@wT;a1L8Jk9CIdW_()BEv7*<__^ouKJA((7UmYyGi(Yup>40av+v$;QJQkG^A z9xMxKfDQA0reoc!ENHvlDFm)m>gIXbqN>g@{C=}4o&+^`&HRwDj}%N{0X;qeP=j@V zRNW!f+)_ z=ec(JXw6;muAzfjS*qSs$F0c&_dfbD20?v@k@9rlSW9cUd9!Jr~`M-9$dKb)6J?b zUu^b*OYSK;;QXwe#wncYgdleJtU*x;J*}XTxJO$%h@Y&rLn)0nPLwr}Z^xYuO1@iV zd*@_*I^)mzLMIy%^^3oezkFi7Izmi*^Gr~cCuUn@*(^?#2W8S(VOK4W)NOj~f~%Zl z{005{N~H_vtuJLQ@T-FO&s#G9jGBhZD|~VpEq=kHJQ2$kFgIPTNc-Pw9OBv$qqkpb z(01V3T5sBQisInW>|*}9rb;na!2v$BBy94!F`Eo$$P@s+)K4eX_#dQW`3Lgj)2N`t zmzUcOGIKGNe*816wF*5?N}=5gEz8mJDxz2SIxfQ+(;a4lz6fl>^NVAd*nPeA66<6I zi;Lv%af-iJ&Gi<4)hdXOIdGvAyTwyP3g67UM>web@kfAe6=T71BdU&oB>$oBf3ojj zU_?jQI!uit_*IlsKQ;X?^(1t05MzP>mC-7HIO*AHo+7MRlFx9mH_OwXNf3;kYkOIj zAI;)tv*NZ!I=Q^LZ5!bzKDqea-@4>}$vnWAxz-_%*2{p&i$GW28r^1O%MNA9c%jB! zTQ!WB)ad&N;}}{)VY;?06)QB!*bSaQCF6dmA2Z9TaxAJY`_Yw*Sx|`ZX+nPF_kO|l z`OgqdYFN_BPYhXG~@N+{ripnDfZ*{TMh4SD437@su7~E(B9X% zL0FDUEh?- z`~V|Hn}6-M_dqXRdO;Fd8m)e(rP{y5gb$%72a%#DN z4Hg7H`KRx4lN50~9zT3ayE6r6hoRrD{4ZO)H?4IxTN1)A zVqUTh{;HuPKkyRD?~wi9WPvkwP8r`v-?lv%^0(#eeLztGR})QGTR8Z)%i%(p;t!>Y zsUlS^fC|W|jk)dIF#Jh{GCQke_z5P}cPlH{^+?Uy2Q^dIO01cdhz9tV;GFCF+w9x@ zVRXoYzSDQ1GN}|}@=cpz99qp6*lX`z;f(E|*AAS6wL-g4A^{2g{2k7 zuk4mTHk6l}%NGLjVmLvS2DE)|tgN63#QoIf$;jJY?L%~P84wqoc90PoJQG%59?|cw zAc-=4M=+KvPHRC$VHVl%ah|5-L|s=h7z`6Fyd5siE^gJsAR5EAoZbL>euNEz=ZTvC zF#7}!SOjzKxF6OoJGbU|e&8J_0+kt=cylWl!--Pl?-#+9GuMF?SEpA8W&YHrjXu+a6^#ox zbIYJ0TH9trJ8;?aDdYuFvg~nUg+rsFYPJhcWh{eM5W0z`QtNsv$05-ybJZ3^mIGfa zI+|q_2hYL^Efe=BF@Go$FTQA$hF=~iIr0|BUKoWd{?r{(i;3-sV2r(`;@@ivZ+6vb z3?z1R3X~OC@$jCNzuspBso?YmR{HbVtg?4UI+&-f_bXJuqIlS)G1knjHYg<-MgeBNS-jEPjcKe&e)IzM4|`5|C~2ls zLKzFM9f3J}FI}K~gv{`sha-;k#k9hJdYJ(J(=_5AUg6?QTQ)sZe&FNBvBgM0`RWgS&v46n9Pd;R_ep7|C$a&f}I zML^F8TzLqJ(VjP@T3)vKTG$`+bIs6aB~JG#t^C^+?)cF7^UGO3x8}?5IFNaLfA`AK ztC@^=GZGvVvV_Q5F-&@jrwVf>j})*v^o0IMb0t}$fwYlZp1gsS&9afQ6(sF|kZT^x zc(ViVVzbL(#bHAt(^S%~Y>UEazi>7{Oee7!pV zC))GdX=PDgco=`TGsY~1>P#*4cr&htO+Xy^o8+%xTep3HsPVr)_dMcBcdn9E(pqLX z@uQan(iO46aU1@>gOrw!@xtKy?jm;5eM(PcQMch0is)NXuPl2A4E~UTloLve>#7j( zAEw@}am|(4cGZ=-WB}QrWxql2UNT{VM@v76J-^=iUm`qz3PPFxidg7oc_z+-R8Bk|4csd>qYkySY5iIQaHK;&ZYo7P4~@(B znYjM|(`hir;e>|sWl(NS1VpQJzebMXnH~Cu?XA?idMPwjgUJ}o;GoSr@8SUgxoB&K zFFCV(n-Uj{hI76;OSTa}SuR7tr^X`mC}ibq5z(YL(d!}n9z9n*#PZKB(Z z$C;H2NwfV)vr{I1k~YRf2p?d7>v1(HylnE}0~78FvVG2D;W)g!Tn`y3++z`GJAy!@ z6}5P*h>%T!WS3P)aH5U&Qgxr8**z;ze07j>Q>u0%9N9H-gvc~^jqK<5#*|CS`2)L4 z&^D#rw?-dTh@~Lv z=r`={3(>lZG_%L#(Qz`I^{hYC>UPrLXdP2iX&0!Az2?hFkx=mk+OwDE|2!Mt(8?JN zw;OLbc^R@L+gYZDFD8x_Fg|a+ZyX6Xnu?vnru3nIlQeocvFmrP++Fx(ch}lhs_8~;u=M*r~rIEQIF@9ly5pw%L!~} zth{03BqXqHVvdd}Tl_NFYilt@on0YiU8RCpE9$?0sTJtOrLqVj+E%}8eaUsJ)ggZU zyF6=)>VGoTAfG&jqi3^Hz~PrL8f z^!~kCS`ntBJJM}|ax-oQ&=P8zZsRI=d7S*Y$$3u7^#2B0D+spVYyEhk`q(*kNSVtE z5K$<59Ss8V_8P6BQwCd$*yp0TCk5adcb#n9G^6_nZ5F$k))?3N}cJ-;bX*Rv!`siIMtpIjR+uiq3}3K zN0jpcxV*({brruXKQvIv@1pa=0ERh_m?rV9^JX{Y%p4cL%qD&{r*}7eUg`HciE(7r z2Q0rpc&3>V*?BdXx{)c#f~ZBT?p_WYuCf)bNL*;42*V76F4@vjl|X%QW=OZe%4kGS z82g^W4iM6$L_*XH{bEtnMq4V zgaytytD=g`B>gAHU9Z%O;2~QbkthAC9NF-%PoZbj8e8@7@AIV0nm@sk9SFL{dOG8K zIk&upN?DteR5H3K=0cAdW82!o5J{8Wamo>A9k&vb@2n1!odUBe89!N?Q6yV4kny?V zg&=@0RzoL=`yO_Tt2I+voX2lF0Hq`-L2XrmQl{f42S!U>j2A|}AVg5MydWW)bH51a z5g|cRmX1sulxcc#=O3_jv(`!i;s{Hgckm`v10B%_I0RaR2_9nlx$@^MIfK^geF=O# z^)2sm`$CWQpw^FxpyN7sRFLPu#><_r3-6ESxF+cI8t<;~sq+lYP3-7eD4P9w>>c;hvHuP5j#B$Ufnp1M!&ljBMktp(;OA$!IqG!Rd%J+m`$#^$fhOJ0={_ z@g|g;JyX>oFSfEP|1TDIF%j@OxZ`oo{m9MirZR=`(TqCierE+vx?*z_4AfCYLuhLBd5h&rIq+ZbuW-_R5(K|ckgaBJ5Lgy{qy1c@N9Q%5=VR$@qatSH^okHbmz4h^K&Er9c zNWsDneLI5psSN*I3`qQgw^7eaSTB+-$u(+n1WXC)C%vbf+*;Yvr7@=|o@=gl-3~Mu zk{XsxwV=)?<^*9?RQ>XQ&U~&8ZAf?yb5Uz|PEPQ9M;ZvyuClEWMFw7V$52+}{Ff8N z_}P&d1f=6pZ)*@12qvSe)5Xtd>8Q$K6QZ^%5jdynJ77x_@;_e)cl^$MhbfymIu>vY z_u7kP3qBmKGWX0_<^B|Fl=s{LLTqj=IA;%%xIzV#-tH^h0E8E{D^&NX?w@+w2DK17 zDi5^U?to;kF!zz~U%@}mQ^uUizzk@b6{)DdN{-&Ki15i9g_e~y3?4mt`mRE=)muMy zG@gDzxED$(P_%rfkvK{d~=fV1Tz>l@$uW6hX!%G18fMJxt52QYFtv4&|x?1djBbYV%jAp_W7D9{i#cc(K(Jj+8ow>EsJjnXAsb*Pv z;sEv;Q@#EVuw+~8-?tv6R(w1IGYJ%zY{Qu_p4#ovl6fB=vpwa5kK2xDwpDESbV>ie z3-tCXe!#P@u#F{4zurm!LjNRrRZVqz^9rm@OcuHA%Zq8nX4EBaT)Qa-RRr7YWxRoW z^|;{a>gpOR^@s?5{{#Xjk6GFgO+-`iUa?suw{rYb<6(G#O=s?o_HPinz1fN>DFD|$HC-nP)YREg1X%&~JmX|>K(HpknnE0SZ$ z{gSyU6s8U67I#1!y3#{`fSCW5Eq=-cl$OvVn(C*xLd=LgXrVFvgRRJ_^whgzvTh&x zlxr1|g8Uj)QU=vibZ*~*8XQUnCRz^@;jPhMnD!K&Al>$O#^$gkjR~9*zprcg4T3he z*mlBnEvA1+#@lw{p%}uF4XIX6ON$pZuGAeXP9IAz%ZMDe-2Ld;sW#}hW&cMH3)h4x zmOGhPPiRto&T8%F2e5xQO9B|E*(Buh;KC_KD>d=(LbaHFV00p@=F@bSz`whb@oal& z4kIfKOjaJ5UDZ_j#5N1@Q3kQawi51=4hx8ff91fJ+Q{==C)3>w80x?CBJUXe>qfwP z1-R8*Z44hdjog_MHPK=^wlzi2b=y#`&TH4&Ib*bLZ zCt|!jJMJyfwR~car(B?b97LRJZjs4lCj<-fD6OX`H?-4*V6hVr>A9U$c=caRn*ccL-44Jz>)R|2El|o4 zH8uwmXPyJtS0I%Q$B~MQ1k1Mem%7taI!o^nNo7;d5d*1+3;8}vWl3KQ+nl+Ds(JLL z_0aWkq(y}n4>Tej_Ll|4r30pa!UosFzj+9bI80XWC4+z0o@vMNXWpoRafq#fiAuz& zgy%RaE@Ug=c_gN}wZm|y+=o2#9WUPuOeb%alI%C9Tn!RmRGB_nj!*{DkXzlI)#4{v zn+sB(27?qPi45XO-0-Nmzvq@J{p6#mlA#nk&;k9m#5a8h<^(|ZS^Y-tVyv9~urnR# z7lO1eZ<$SJ)R9M`n)Az+kyTz}6-Ui-cvQuS-T>>lZLu?v!O4QXT#ve!vf~E8 z#Hu9mEa2iA#%so_Pl{AI#ontYEchJh>@c`qHwA;%=Mll9SV~JM^|*X^`XC$=uQTW+VRaqUX$gek0&SE^ZQ- z$S#wSYhtu3r6U3N?ydh)98CPYb|3}J)O^i;Q;%t~-LV{Z{LagNF8?U6z z)A3<^b^C%4LT6ot!*eksV!aJx)+xUjyx>uK=K%|n5;ckU>mFu~uKb9ftYg4v&fck$ ztmx;u~7GdJXtE)MS(kBeShq>>s%}Bq(%bV|^IZxlN-G~UGOFfNl zDEJQF**I>JWlbvD2E|x!9|4VWAK=F-2N<9RPtNF{T0fGLPIgzw3>Azj_O0d}8h&_A zaLByMQD=yMyk|cN3Vjj9`Z*JB8!2xTBiEy>H5r5eYs*3|)_CG`M1-mfimjs7n z^`Ouk7^gV?ucb?IV0ubL=-YYkfIa3(?5(v~%fx10dK2uG%;l!}(9`zYNuJ)21Myeh zkX+`#ox>XCdYZrWWVa4kAuP62a^^%<@Jm-WqMEuRKs-YlVx(&(2z!_eBZjH;J)yN6 z63^)s>0&h*MD^%1?c^!u%Fq(iJMe4x)muX)EfuQj%VD~O-O|RzvIYOVQ=D`LsPB1} zSqVs9J@fZkf?x6x2gpLnr~_P#{Kr}UJ%0NVC2Z%NeCcUpR@+zZ-4XO?3WL3U|$z+@IPSgL7d|U^}#{H-V zL^&F+WgLcK8E5S$Mu4+-MeIr^X7E~KQ?ek7+{Dra1dY9-wpnKdrblhP6$`rU$t}-J zLXwgz(p71ZHOUj&Az>-mio4`x6oq9cU-Bv9`7<|XH_EC~^2 zq0?g$Jos|BFAjeK{>+ZFBDk#57rxKwerNFQ1cBmClieKb|Jd8|UKUJ>Co-du^r$`G zduy|tuM&!$VW+AJI#30!818qL#(EX+;XCfI0((Ta8+CCrMYFU7WOwFRl}W;#{kD=p zLxljm?X8^|N_fpt*Js8EZ5%>ml?1k%iNep!e7m|2S@L}A|LUA|2oxRG$qL?+=-s>q zx;OtP|D>CL{!sOF%Ztf@fUwBsON~E9_Tv#5OXwST%hoHXZ&}`At$Q=kZ@1Na%7sbi zTL!{%uW?gP-qgjqJ9l^`^uR?=L`}&0qkbLWA<=>QYRgedw1y-W7vV*JsVRhCfFP;e zHxdeORC8Fl5$EX|9Zu3mf(vDck^MG9xwr2myLYD`n*1 zV-$ORuiqI4a)Qs+H}BENq!76f4XB4uc4&7_6nOB9ISz3sdFGu_9($M<|JUpcOwcO6 z#Q3FY(3;Qq)N*m-N&F%G6~jcvPCjRCFB<*@>$dl3SzdgcDYLd&f!+qO8;D+d@TJJt z&*9#=3|^ITJCFXmIXNrvn^z7CAm;=CDm=KQ7!_sAAax@WzCw?;cf9hHT>=}CU z^Pk)tWFlS~7vj^sTc0~;SayK-2rngcCYU1lKy(#CjPL72cz?UQMH@Snk(OJM7JMOOu#)mPtPYGIBJb6X43xHGOAZlUSgh_;K1TIu6y=<-9|cRBO#>JB5t zpR=-f;09%}9mamU`;}jRnu@*a26%t|-Vz|U1hblh|Cc3puo#~_Jk7Re(YTrb(_dY0 zDqjSj`*PqZrCezKzvkCV?Zv>tT-gKiLPs*g)4VM4^9jk_^~q$5q>`E0J$_ies`}(E z+0eP4OQU%l&OruQ31`D#x4bHp?@KS$Gd^-kmNQ`uUuiBSPaj!+O`jF`5wEf5{?p(Q zl%smsXj~4VKS2J%V-bIajs1bjNGshKa|15=-vUDB=pDGm9jD zZgd;H)$?GbJ8rxT{7@WD9`}cYdOS(DN&3~KY9R?*`{2Mxou$S0KG&_f{yTh2IPMwI z^8`<;T01*JfN7L=WW-}TcbPdvyESgZj;+M9kNBBEAEyS@sTyq9GO9iP&SO?Ga!;mn z0n{Fzg^;gHJ0P~1k;`Tmca38mQyHurdiF@GA&T54hzDB{^g1D=H8JO1HhIajbB%OC$ zlKcPuPnmhj%*q^zqp5XF%>@qBmYL-^9X}`c$ZaxI3LL1FnUyQET&R?m)~D1=1qVV- zasVmj0!2X~b0UhMs6Rg6-~HgP`%mus@xI^h>vdhvE8QY4awTZ<8kUE1c#u)W_uud~ z#TZ(-dHq@7E8phuO0W>H7Zoxx>bwHC+&>|KJIB3NbKYQSaC_dW7t>?>TK_##2gaWM z?#&lFOh?*g-YE&p1J!fSC?n3?L$WDL;u2wFXRfg0Q>*^93%hDHm3(jdGnPKp%mnqz z-%_o9mh8|ck~^=>_Z9C`RiQY062ifCh-Xu}&0+g2H@+|nUZhsLo)p+=58RancPVt8 zn6oxl(soD{zCIb9=4C^5@K2jXCE#avX|X0vZS+%Nq>r^fAWG=pll9Xp7gy&P*;_@% z3_=uy-`x~qz}z4ZOH_Lm3P~pGFX6pYF+aa;&!v1t>`LfM3>{moF6sq;vx}l>tA#f7 znl4as4Etg=q>V^ftRGO1F?7F>V*v%YF+e-`##9moaQ`PeW0Mq*N|>`q_;06Z-iDSE z#M{lVB|mQZI{vp#?=K6jaHzZmqbghtHxkt1t~JNM+MJ=tpK)(K`?Yf)mJ!A)O=g&C zyeh!`47(-gtzB<^ld*2u(>$-9siQg*CB=8I{z{}gVH!q3+An!Z>1v@9V=jl6q}%(Q zwblOtIZn+Ls9>GHWDJ)r$7Pdj&zWv*m5PES=2Oi1)&{k8n{&+U*TDFdrI1uqKu?)} z(y7eb?ISS?25ht91rq1C3LcNF7@3Hk?zS1B$I;UIt&2AC@Jr+6ojSpz8Yi1*$qi@U zaj1O0LJ{N~=|16M+OsZfAR`Tw|ITaoy9sHfu*~_=$bPOJVU6)k{uvOML8DKXE4zsp z;KD9sJ)u6UB?r}3CXBjElFhTa^!vH5{3EC&CLL(f*&r>fHT-Y>WuFPK75)eH^j#z; zSXISu{~ad5(z)?t!~m`my762Q!RL5gl#$}g;0vG0qDQg9B$cb*{n9GL!T@^U6dRKO zB3|;=Z5+XGWoh7YxbcIiv20=*q%Ij+acI*lX*|X#q3ar1`FENro<}UXho5B_ogurQ z4VvH|l-&%Y%Y?_f-F%RS`IX#+ipq-XHCo~#eD89c(W^5e?0s$&)J~1DZ*594skl}I ztg};Xz*)%B1OZp3gV2bm7l9Y8z2L_{izD(`nI=P5L?@lP$ms=J*^;Q?f01}|t$ZR} zwSs7o_olDau4oqDa;zv&AR#P?psLE=^De|5Bi26}TAnr;#6lKBcYH`-M|Juh_+Vp2 zV#}f`m6P#*0i2snaQVfFh!R@Pj3hiQrNkA7zG97wvYDM|I`&;7IIVwCTO1ZTWVFVK z;u&pJvNYxzV45QE{qIOH=$mR*JrV-fUhOPYiDzO}kDhm#zHYETb2)$H+qk6fnYgbA zkx4V*hrl-ehlQD4+G-)KucH2^Ygk|riN9io{ba}&=ES$cYVMXbXLxP00<1|+wVfU1 za*SsF*Ks7Fd+7Opq%60Y{D3%aFG~gKXLWMlth3&WA7G( zPRn(ZdDZ+g)z@!R_Q3DV`;r|itmo-gMI`0KsH8$#v*|&e?L)SriZqV zzL703_b{nb%+=G$#RMka*bfD-U?h)iqOeC8`#ej_BwfRzyANx{lmGfRmWFO7XgBOn zw7Av+iTS(93QXbFTbiFr`vh{P3*4b(SI>}vTrB4R%Ps+(Q(>T-i$Fi zT%4n#`g1yKD~5^pXJA{x?rykvN%tL7-OV|FVlqZj88HCQB6!X7rt$e7=40d-d_&9` zT`~||FAJj{^P2~=s564)FYFP!ce3n6k++0W^QaH$m&p4wh4H;U7C1#snX}+`R zs`di!b6ufxlgA7rU*FgMNlqUHJP{L7CxW#o9kDO!?qoQ~nU)|!L*b16+T zb|@A5!hC>y0ufSAWmO%UyniBxcxgda{v>=KhuBi`Xn7q5l=4cfM5ytFA7_VrI8k3| zzjMP#l~YHN_X=wx&h(iQSgb=DI*|d*!A7rm%SSFI%|P_uf|7MwaMHdV({KAy7t)cl zQKu8x&=p7=bMokqKGH+Wm8*fAxsLYYtD>|&et#Hsy7?y<^uq3HCgt%t8VSP)lD=pq zC{XiqNa%#OY=ZnhhS~`pNWJ~CM?hQ?kx6UwUzb|~c83#cM$bEz$s16&av7hdLws)8 zhUc-zB_+I{kY|=GiY^9v?b<;4#2AdJ_XR#+J6kcRD~>$Tx&TZxFVGq11rM~bR%3s^ z@Neq7xmV?UY{|yz;@<#U}q!yMk?0Qv|^0XrBKCp^%=a7>LEFX8TRDXljd&HOj(hj7V7g27`fOQ zm~P)%yw?43S>C2q3vE-4L_mh1ea7Fp0N014Nga3f$QNhiz|T`fzkT9 zWW46XLr&kv3>pLPiBW1%b$O-vEB`{(%VSeF4yo_29yp>a%XnFn9E*86qo(xJ;ZDhi zs1uY=V3ab{oATmhQu|cUP|$tMF2lY*QL*bwA*W2w>WZv#$iHR|=9lmxt!tUd*xlmd zH?h(FoR62NpgISs0ro1Nvz z^Kw6X6(#uUfOXB4WuK;roaI}ATE1WEh!`|OtYU@E+^UkKSu#~Bb;D|gdBp-x*1~hG zg+Bb}lA!R(@qZ?=>Cv#}HzuS6J-c2|SDv75jsn6o<`QzurMg};gW@}yYWdYRKXi#Y6+4&9({$_h z1ITRrKG&r-RufXzT`!!gbO8ir>GO^lG?{K~k~shQhEpwskVc;+DOHdsnny5B*~3F! z{EStvZR<`^NS0XWZei2(t5{yUqK&2F8lmkI>pd{>gB=PnuwtCYlN-cG`If%0h+C@9 z>BAhh#hsuKYN43>e+3vxJ4-uTjK-v8#qHMrYlp`pPO07}wyI!6I|kmPgUSTB-)1>Y zyzZb~=_j~S!q}Lop=99ovw+^KKgB{q4hi6*zqobsTjKia;C;F%e5JT+rAO$v%$_hb=A1VvB}>ce0at?BA`h`1e=P;I-?7z-P-=H`YV$R6fF9&^ zSbZCp<(jxv6h=SYoM!5_FF#;pd)fL0pEl4!UF^nJ|5dA4-GPCxw{SGHFkN#)xx)H0 zkM*v=q)pf%7hd;v%reRR3D{>gg69r?B)x5S(ZN5V?!b1}7c zX{Bpa+^1jXO2B|<)G9D3=1c)s#XC*)lpjerkU|9LyNJ@D^)hUU|DYJ#ej5fLtEUJ zaJR^NR>(r=2~y{4;9{l!5$l!wv?c}Y4B}EsV{hEJ!Tb@@48#sNS3TP%!51Na3jaHK z*``=8jAnp_cOo_ixHMtCPBI_pP3cmH($APCD zrw!aUqHC3S{gXk9^@&9}#d2sgKy^h+GX1GiwmXnM)n~UePurfKwcV1=K66P)vw4ZL zv+{nTHv3=FXCqCLKZaIQizA_vF@o#T(fRI*wcqD*i>4tvE(EhkNWxKgq`6zk^j%~z zt3sHyJS~KJ=O^to&kOs3E?B_{GgPr0@e_FMIboS?@t9xhIbS&9Y!~(koZigGbmbZ@ zeebYo6%6bhdAI^=yGw=c?MqKmj0p(fjlK$&R4OQR$1ucQ@ySm}niU6751uVNCq3CY zt;Yu_Mya`&Tz`a`D$wqobVv<{`P&<}aL>D4+L@iT>^1{4lv^v|Wi{f0;L*v`44=)G zM;Tcv-(%u0tGtxP@@Xv?Mlf$3O+zek4OG4GGvhc!T*YlywF?3k7(nIs_%~@tP3^rkQ z82uu1Z84FX0)+dGv9GnmJq^@fkSHM~C2@{l`k)mdX;?66HZ-R_iUIAe=IrI%qbuBJ zJ=g0X@vmxnsAjm7fNVR)sr5VhT9BB1=QFVzI8p5^g3%e~d%c(6C9a$*3XF}Sd=Vj?Urf*l)UQpv3ofDh*>T`3ZQ%`(MTU zE{-w`Z#88*<3g^~D{(ejxk1gSenRGHAHz^eKm|->&I#4?h2wBbn|=mYA?sVNt*?23 zyg>gO74KJ}d0OR*(}U}Evi@>Uav$s+^BNhUUK(i*e3~XH|MQz*R@<|+JGC4qdt(E) zFD*@R@e1*J@2=(+*=`buGa8n94RKOu8(Q&#U!TQz_kyh#l<4u0Y;HOFNNG*;IIRw3 zxF=e2H>&B(?@xbBpLR?NOK{nRs6DaXs5D&&)^`U=D=9X7k)2MvU^2F!&1E5&@jd$sf7w z`@JI2F!l`%0$g-=8Y>CnDLf@qrg5A}u%;<f-c195~-=Gp1)jc_Hln{tTQuK{rvn47Ye_o%8i|k`rBZAjcPX6PWWoeA5f{J zU2E<P5@bu~+@?uf*J=C~UaJzXk>-Ru zS-Cc4#2%5$W1*X-YR5O)lsJ2M`_WNpGbT>deV^f*Q5&L+PVO){CSF$>xMyp0Z%er5 z?-GzX@zx<=-&1B-|DwAbRm)X6UHv&yyQGmA0hi&4LVUZ^T1{-X=+a-s{{;+C&m=;r z&6W-#@-wo)a#`jFa5a19lYVXwE>5?*@kdOZ!Nhn};(UL(BKbM+N!G>MDY^xRhVI%b z)CW!AVpN$6MFRDOS4O4%5mL+#XE;O=^I0Z+sX`4tGEa>a93{JK0V+SmNb`-BSeDF0 z0-+x;!mWl4$G~eQ%sp+}Donks}AiAu>d7= zrvpqNf(b|`(yplD_>ZE+qjle9c0fLR8s3a)tWGaiE}Y6tlw<81YZ%!nWb(85jZ6b8 z>^Uxl+SCX|?!V{y1G7``dDOn6OIIha>Rw%aCXW_r)d7tefS*viWx6_tPc zdyTON z)I*~f@^BnpQ_at+OIBesB%l!4m!g&Phw97LM&&2sgy-!P6{$UemGPRAr=EdR`q({J znn-OHaidIjTI**@^m&J{yxmTV(wPdlw{$}Ff)^{K7WJmP6M+hNai1;zgW=l=!1L7# zLwSv&TxhRIE!E@myFL{AZ1Bv8*(ip39>nYP_J(epqGb3+7I#I}QYfLgn)hgGnpbNs z31rI%coM!R^?trEy)t7-FN`zq{&OC?`tqhG3%uQU^U+0%*c0Er;^i$f3!L(bKJjlU zYbi2HgQu^_lfxM5vEjfTRmz@W4NO|k|7Fm)RZ>hT2%9+LmN>Hztb(bA`ZqJ!D@bbN zw=Jy{Jzr*s6t+CQYyq>jp(aMdJx<*R} zt=u2+4ifG@Dk3^HPM_n|3Us%?=iYzrxHOjiN%^E;v+jin%~ahFDtv74?bA~k{qAE@ z>7M71RMw3|n$Epk!GC&PKE6u7HxLtM%qR#en>rWwZo>SW|AkWtE;#Q47PE6fOQ>R| zdDZS;n|reC-*i3>ag!-J%8frgeq;};!{v33XPqeL1}9(iujHrDqslSy4UbxFj0IT*is=9HH0!XFSM z+&a~T!F0%Snz(&h#|47ush+)3vbzLzNX~ENN6dNyLT+-%rlug}(!~3Vero~6(b-Es z-fQSj80q|wdj$Vgv23vu3bRD~d}v|Q%qOnCH*6WdVTI-KvZQj%#chV#tsy0I73M5` z1H_7dm%+dZb-h^kxHw_UE?R__A2wn^El_(`RtrD=^C%UnEz4f>ww5knK<`Bc8ZB<>N8LkA#7L_yXwa(ps*qd0w?9N(%@ga#8Yx$_T#fV(+ z&2z=iqmM0`y8$-4$a8ZM_fNB~Im7~O23XDiQE!2wfgWBMiY^W}NdKv3yFW`OE2D~h z&T3)>IXZd=L|96-@KCIZAwpVFcq#(pUi*QpX*T#UcIDtL@~h<#uR5C+ zrH753MvXHMDT)Ue9aK(0aW+{4QS?52(5|dS9G#}*==ZWex*v za22^(h0cseV@7fGO5J~ItT!*r)?N0P$07le>4bQ27jSq4l99+{Kat-v#Na9+(wonK ze9c2GI~N}WVmWH}uSqJ+d(|!;gP3qlOf|d!1}dS}@VDm|8LJLHt_D5KpncUPS%>V? zDly{_q`yygH4==DU7UBHWNY$8GvM4}*5F$xkg#m~uqo0pEYeasA#g7qW1z-P>Z_{E zDy7@Lqd$jddQiyH8I-x!>dno!QDR#$&HH2wdd`;DIp`2HsnI38E=HFSPILc3;kvm1 z;?FFkww8u{(Ok@CZJ=CQvTFxM{JYP7N0hZAg2Jp2OnA~J!v(v^np4$oF+dwU&Wlw^bFj~}TkwuF1>>@s?>V#+=b1kP?9!4^4`VFIkr0T{ z{j_=~+d(qWaC-d#&zX8@6|bYp`87nXvqp-MPT@Ie;89yog;vh!WDrN++3#U&{E5woUh8a_u1ex0&hZwHpfff2PY0bR46%){s*nw z@G^xI8fB5vH0mMMK+X-kZvaaBE7yHWV)J+-QEiye&mCDU?XXReew~=6*TiiUFNc3U z3|Gy9bE}!-PMaORbAJI}>?}Om&xkt!uAsVy#+!Ac+d-=A@mgJu&8R)K2`?3Ewy=X>tw2w6>Tnwl+*4)mgIT5 zBbBV7Ewyg9Om1_?~M z8?|jvR|B58HTR}IDqeujGwemKz;SP#`l;y*QU)Ct%dXY5Ek;>w?v!m<^1txMxHJ0K zSW=L?d!*G2Zzv?$HFLEvoTJAAw1h0B7xzVVHBU92@)BeZ11wVNd{-g`2QE6hPwh)| z4m&(R&Od8haDeqRCgmG&qTmoP0p_;-%*tG&%pLO7!2H-aaxLf* zInTYLD&c)G+;{&t@_r%My=xh2TUHI}E=Jzmg4L&I?A%t+Y{Geti* zm8=T+{rU$HM)jSCad1nhHet=h2r z_w${E5@dxvoc)fj$0I{4l#M}{Cb$| zFn~PSV+RH3QHrIU;v_TZ&VFXt^gf&u)rF8~gryuj(5I_WJM@HeBk{Z&ackgZ-?%3= zoYP_UWEe$HjN~It$tSw5_WTG)glvk%Wu5FF`^G;DJd4;j6+hC2-?o>pXg_zMbpF!b z5s~4Bbt3GJAZc4dsT(SIJ8DZBm+}@%79`zOK&cc?A4Sved0}$tet8m#2%-85E+&m$ zq;9J1U{{-cR?X@}%xPj9;t`i+L4^xmFHOH55r4aV8XlwX_vs1*ZTcp`T%|5;f92l{ zQ5_R^i31gmLw*Of0~9z2l6}JV8F>HO0mrA>EN*U~)-RRE;gOD4#S53dw!-(H-d=va z@4qZ?N6Kfhv9lhMGyafDSaCla&wC`ci6>rIXHQ7vgL`@dmMQ>#%Lqra9ly2A(!(CH$!(9y%v)kE!xR zo9v`Fd(GqLhY(|5ti}6C3c$E`!CQ6ShbE~RKg^&EA5Kem9}rqp2r(GI?2NR?4`#{^ z*<}{EX~9=43@jG2Q|Skf^MW^|+sD;~BnC4pE>t4`K+XzLs&k!tlTl$vt!q=iKTy(t zg-Q4pXl+{jQrGv_4Hl3*lkz4vKCBF9_`6;is(~0S;ccb!76RlJdW;ffHd5F6*;eA~ zNx1ip8ZLf^?grAigMb|hegL>*YwmsM=G(t)j<$?Vd?f2@)%>9XUS%!twU2o*tjRhE zFjfATHbqY06d6RdG!LM~>R`!f;?Ob5DSw^e?G?kF6*^YZjRkL&C9P(a5JjDa+Zs#f zu30TXzH}maLNq-DC#vg*)!}Sb`JXICp71*Ig2%=@Rabu^`zehSO9<52cm!V^1YH=J z;DyIa>gqotq+}9rg$pj`s!e{iyDpc_2wu^@bZd=%kY`7Ek9N@lTQZUbw|cMCS9^vLo7E-eSspQS+FD2L2`Y^#WkDozDCrmZcpC##?Hh%+`6rz5& zOA5Fu-xkM8XSwTA_7DS@dGHZRY}_JDY6p?OKA=?A#$M`VUdD{01o4?PD&gEj@b1?m zZ5?yP0gcA<@^XnkHqarLf!{igj_kgd(;YWib@uluJSA>mf?dM78e=I2Wm(wN%Qnrb z+v}a|QtfL$XHf3qW$r0AuTtSmR|84(jjS7mH*#!9-(!WWWx_MkzD~M*Du4t9=VQ@#y6%;{K9#^U z%42m11|Bo_KG=8M%_h1p-MD5Y2@`Y}w~P7MDC4a0rMz91P>PJw&vE=fc2(?jP?wvb z%)*T~$t5|E%tk1p0f>|UNqgmroU{SHfD_fLp$8;A>-yIj*BnzNFsUQAcSPg7-Fp?a zs@;D0UI8u<_+}P=_19I)dbW^1;%Dmf- zfH`Bk3lnS#koo@5I5idT;z$AusOVaAX(^hpd9}s~4=NoapUc^LZsn^1atTx$HE+FV z>!RMB8mnb7wov>Qj(KZ{aOHSSk4Wtv9BnJt#tbA&EiLOdvMoFxLEK9^y{M z+(EJ(cey-p#S)d#=Z(B)q*{@*w4S)MkUJI&oM1Y%dG+Ge1_O@29o5=|s9sfv1O}0~ zHLi}P(m$yx;FCBk>fP+y)_*m|S6gP+_ZJ%Ax7`pQhmbj)#CDceyQ}SnPi?DQg!w~NEmu}6Ks|1F<+;Hg*SjL8AdBlk|4D9}%t zRxl2vTsr;GGEJhu>W(e`yWp`Hv+u+;)eWXm(5X|2d;i+Ib@Yt$27VjzV-T>mwhQ+I zXICD~@<;4n9Fj(<4kpXZJT)jh@b2eoe^E5OILb>72l_2qJ9*e|^cBq~qk7X!%n-FG znp#RqTws^f0L9Pxz#}N+C* z5QEahU#h;M!(;8gTP6i~a$jJmkGn1fyKN{n$GR0xpJjZq&D~>yBXcs;fV)pPn?Kql z?WImKci;T;nBv5PsTZ?;HPa}mgCq9Try-E@$DiZ>7G&3CegE+Jzm#f^Aun51YM}=G zb8S&_4TCIc{0r@o$=!En+5CQKr~Iaoc7-1_5TI4`sndb;JBWFq=!%CMFkV>n_&)nR zIW%*b4h+Kv+R|7=rAHEo>`7JN=QOV(V+EobGb}=WX*r#U8x4zmYiQ)7zir0U|CD3x znoG&UuI?N>ICM!ssaugeyA5RQj~#-Lw_i3fR@hJ*dJ%_Edm_qAtb!_%6LA5V^N zD;=B?A3jC*tjeV^albVl#8G0b$)d}()7NDJS6l`rL$Cd_*qURWlGGjge>kogDcF9t z_kX}ZLPo*K5;0V>fevY2I<`3>Onm^i1yh9WLy%DpK7S?=V6zksASh(c-o;r_QtqtJ z#B6E~#HaNBd#Xsn^WJu8D8Wzlqwh4Ig>9%aafi!%B*$F(ki_b~gs4MBwgj+{nTQuUV*$0S?`@p&nu|Xo zXNq7McqoB3*|oxD0!MkTzE>Wh;xPF zs`PS(#6@zBvzq}#SziT%3BwDVhclr%uNvo<5Gs4yhj&=}zhiV!`w#DLny zO4fLYX82bV+h5A`=McO`C--*Ub3y z&zy-~NA80@gZh8>)L4JXgic%E@b8U;otigU&~l_ zi!xooe6vam-IBD=+DOZ(O>*>Ro=G&k>%ujsR(p~EF;H%9Zl%U6wh|3UT6rvzf{htBh;^W?;6!4lpv7jfLt9&y1fYQ?R*I@K)$=HM`Bl&g zn&}*X&z0d?lds7ogi^8WU(XEMY%^-Aq2%#LWos$Iri?XkS8?N?fl`WpNtyVzu->J1 zUIb0#6+vIeR^8c?q?%k{dql?zLS3n`S#H?c6U9y%TMF^RxBy*Dc;{&2K{fnOeD*sN zeW4lnI!G|OiYL`Uz6X*o(mD1=@~P>;Z=aF>#1Ox9cZycff*GNa!jObl_(au1A7CR_ zpfBcy1k%y=ZL{p_+(MdEZQa5XbG)1<#n`soI*Y)Brj57CHyHXUSrQizfmb^(kU`*^U!{CW}X&LL11=Ec z)x@ZWj^dny90^)z=P@}dR|g{DYn-%W((R@-5Pmc%zufTEG1gN7m-E5uVJH!k)se>1 zH?UB=Qzr2=8X-NCODpH5io4KZIgJUo(wga#CxPs%=vdXuXb`k=mgJSjd&_@ksE~CI42iQJ=_69_`{P`1Q)K2hmqL^;0GF_5VbG|3`+HNq0R8Ib zGP1u|V67-V6v*hZpA+SN^3<8yb^ncWiO19N$b?vN$Rd2RL7mKc6&`e`Ir?pX+-2|> zp>lcX-pLH%ShV|`a>7-5D5La#9=KfbxaQy)b~lS^HQ;$-3_ttQP)kW`#NLv4C=ZM~ zgES-YOd7*}UDqkEKJT%%86iC+p*Jd<Nsv z#=W)OTS1{(_TJL0i#k12d&fOmaXq}jr}OQnZ6UmXm4J_eQT$>*CurWUSmTLv(D)Ed z2IPsE^2To39ghLk_eM7PhEA&UfapG>+oo1${rT&?{fA(U%(L-~Osf6v{>qD&lqn;c;lY3S?ryu2OS9iMm zqrF`xa{^#Deu@~oowx0WbOXaAu*~=ML#!C@V;T&dvb_~kEyaQwolj2W#UBWDo`q+# z3}V~mat?d^=zO^}4O>5-j$wI>Tovli_9#=2&V)er$8mjD&*F!g&JLkpr#Xl<(VkYb z>U_DR zmml!H=N}=vkMoKnNl0A`VJKud?ajTFR*jKPd=sq>Gwux_pdzytsCg``-Nd$PwMks> zN|@T=MySvKx`IjN9GUx20pB;gq?*D-WTxm&zlUa#K*aja%YxV73CTq|#wzN&;MmSW z(%jNXJ5D>0C?3x-tY6}4c(H~&tLTNX6aMhHww<~eClH_-11;DYjNe%3o4Z`kcs(9c zrL$f+*)%mC845m5tnl%s=>DyGj#c?0YOQBhN0mqN5F zm+ElHZV{Kf{Wk@O?^M!iZsS;s%vfJr8y+=x{)b#Uw7wsUG$2>4Owqv#S#Ey)6MwzB zI^YJ;7^FKt`v*yzo?27rpKP~?F2Q&Af7I;{Q=V0EzusJ|N`|I$U+W8=eL0&h7VS4g z2`+qqQ^WM$WP{#~wpN^pd(sJK|F&U_+%`hKsrW}=o^yy5FjJZ?<08*RX|$kxi~i!< z&>D-E)!Y)9xHqW%kBd-NtVF?%%7?;x zlOD*hjNZm6jIl5wDt=y&n)4qw z=R>^@c!KL^j+o$|Q73@C=#J;@Ot=5vjBaH#6x%YMX>}nmnKEoX1d-fr z^0xrla#=;6it!7k5>G-{Bp$hnQ|>rr!{`E=H7z{N4G zIH!_#7ROAO$Ue^QVJKj@>kF%Vvg_PEFNcKsyugo24?7tjJqBA|Zr%P~cdL2wP9ucc zEjeLrfh3heUUnmA1NG;oCMFZE1*1SE#}7 zy8G`a{hlJKS7%XnrDFKBobAJSc5oL$ ze{uwHY{uNM@bEQqnwlc>WAQhXNyu8q^~vuXf-3YTCR>nE80*N0g1wF8=6gp zcu}%rQ0FuI5pi_0Nk25aVN|sN%2Q9!zx|T83J@v?c>rIEu5Z0UwLT1F**@%s!es+q z=-wG1Pxh;5-X4MIa{=d$y($;q_{twUFqi-=EUamU%M-b&cP?CzyDh(6gr#{*s*xJ| zd#<@3aJ>D^shf_sSmTc1>`KGO?xi-oba8AOdz8E~ePyK*Y)$5_A6;BodCt6ssfo4dtn+T1hMn)pvXVDP z%I~L$U*?8@%CW`__3Ey#;^^?v6CbcUulnMdiem}(qb1zn_>y;jQJXB&7s3gA2RM($n z?7vo-vi<8y5ScdsjWXhW40KW{s_3tq-51{DZ8IU6<{FOwV)#fqf;aPl6$^&w{Ve0q z=1Hz-x}lx@cKAN`1ZUc`XN@mHYPD}09Bqm%Ap|44W_H^@MxTV86px;Tw)b zfJn;M+z|@F1kx6Rl)y*{oxqQ*y0ib21NBV4k2lkfvV>#aQHmh<%X)d$5L%=&Ut;Q) z{1c6g(9O4i6Bd>jlBMv$9ak)Ur_KovO!^+BorVb<>y{(hR|A$z{OFp(V69+HxMiCF zqU!_nb0&HD9@6gFuGa4kd+0xQ`|r1|98`1MwJwWE0kl}B?Fr;EyYE@DGUwKjYE!>6 z#zbA&2tpxOFKre?7Ws#>$rne84rrE(=e}*YAIbW(t!wTpZGC!lYL>e6#ML!ypomiu znpbz6#J^+Zg0@a--@JOWz4puuY7(%%G%)|+DTrp&k9`~pQ_g3Pdj}USiTk`lc|#9J z6Y{*m#KzCTs#(Sk(On&Shz`(&OQ#ai-8ThpD&ZQ^r%U?9(PE(W6JF37j|Ua01>zGcPNvRAU(!n;{6VWwzSJ#GdS9rgCz6RFLQmyv5ys5=F7Qs%Q<+WEtyORCzNwLN z*X0|ZCu4akxq4etg81ZX;;Wm~!?z3h5whdu@~sQM*}WlxL2WDwyDFcUKIJ6Ml}dSZ zP{dcmnLDD6ctP_!TGMFceXXb!R7d4#=GMUk`}S5I2!opdl*so~5Ic$qrH}=`41iaf zs)XjveVoIg0o}%sHx~sbQDLZ1HC8$2Nw(@IN|{faJrRpS9JN^-RBbNND?@jsfpnFQ-oby@xYG`NpBUO82w3L9Z)-*5NxYE5V1LDc^?*ADY}UqB3PWJ9H49NH+l& zL>kXp9l4{H89si*JCj6TTwZw|(%!t^y?+=Ty*WSMfMJj4`6Y^l)>cc=oyKk;liak2 z;lv(lN(Maj?ZM^SW7lMYzghfZ07(~PrdyFrAckva9A4KVSCycaAa(r&*8I3vsKw?4 z9?S76wkDoAFyztm)UHGWWHbFx=4dP+;Q~qg^kI0SbI8VviXwWY?3NU(OsbTTxM0Wc zb;55?FH8=e>N?yWUGwv6)WcrmyTl&kfQWwYQ>P9VE}I&H63QKeg8>=R9AvhTVq@-? zcE#&bHh8)8`|<}o1^zb(aw&JZbvW;>c{7#3qbjQ~~sG;dN^Io;t@}`nPMQFkp7u^qY>)d}x4`wxH6Cn#PaM@L(<(8U$J;r&%-#7P*&;7# zo0pWhxz(xaM?i0jd48;rX1*wpfl8qV#iI@~sKD(-iC6QLz~n$i*aeJ2EShR&Ub!?I zLm%bJ;8iT8cZfOQc|+$d+>WkDcLa03YB?f0fRs}->Pel=&lUfIk1pLk$YE~4H}0Lu z!81GE+|?0<|3I%9>pNs9M~}_k_^MshW1};0=`5M}m)lf&vWzk>LI5%U^5Wa^7kZE0 z4mVgxFBe^(^M_VMv#2hMefO}GvtE(B#%uEO`O`lBqcK%QIwaSyFdpOIdm#0XnvY{^ zW;ca9QGX`R(pBPMPCCw$F2I<-ieO-)18s#tXJnheb?g7@R2ilbdiCqit?>WaD<4D9 zKS`j~Ua-(!yPGJu(@FgOJH`5b6qWzi-J7>TB}I?Ui>DbDE)vtvl`(9Vli$Kp459x@ zgT7cdA){m@Ph7%z9C~ceaC)x>n&`;c#XmmbSeFrBHkzPeGG>uE&fXJjF6~)0^FEK~ z(!1s7VB8u*;ZEIcbg4G%|8aEg@l5ys|G!kYN~jcatQ5I&K5UkmPIPdp%csbk&tir- zEgMNl4y%;Yu&aoxtK@7%&Ni|`tel2nY~(m|*ckim`}_C(=lk}4-)_&>H~KCPnI_<$>uc9KRUqL4U<~_|P7yL>33H*LMJt&)PdmOX>adaytD8|dAxFGl0 zuz=iW-2hRJFV=ayr z2uHIz}#ii6G5YT5gIV}5+EZaBj@6cZ)h-LWuxBR1U{qIGjf-lw81DPQ%$P95GkUxL}* z`rv_NYlX-^sbq;uefCbAm>B~@A$VkM_{Q;KO#MH#3uoH!(MMdWFU`zcD`E#;{Ux;s zSWP3OC|j1W9sj|0ic%Jqd?LSC$W>_p0sCxUpO@zx&Q1n1DesRKUCP#y?;muT&Ptn= zKM8=OST4~bwSD@i55WI~EbE61>opuoU2fpmNkY|kZ7_5}61Cb=E@8c@uUz-9Bqy%e z0`3qtdDq%J$}}u3iEo24#`|^VJ}~?7I`_2CohK6Ler5{AgByy zs7Hly-9$dUdIgz~HDyaBw~8vlgw8DOlbC*zlQh**fQNf zRgOeUDc`%u@9}0zR1VzOx6+C|9+Nfq>J;j_kyn|zI{#WzXu}oAOL#+4N3yv0j<$zl zcrYXu5}y;v>sNdey&gqYmrFtTvMaF_&Q7^gN=`R2=orZu?Ra{Ka9Hb4(8ItNkNu85IB9Ok zw0Fk7{y@#S;d(fuarZx-<`m2e=00*SJBJVe=^b;Df9_O*ZGop0Fqdd+ZH{+~S?qK9 zRQi48nf&fyUIYJML^tNL&5n|;Q`XqwjkNug07P{6r5gL!M&e)jw%3eAWDKZ(`Tr@) zDdF-f>sS*L^aaer4H40Zw~S+HTdH8=IZ~(xQ06Ny+u$DLZ)+)?EsMgg7O#KkC|HRx z9{tcsDeFy|lz-yDi}pf#WNG-#I|U5VVz}+^(+LHu^~ECruM+HS*XhY-`UdtrR)bSb zA^5C^S;iGGsVaGWXszBoOiepS&uMo|V)3`iW`;=82FT${%;i_l)+YcxUJBnRr{9Mz zg+!Epsd64+AtrsA%!@zNKQ*$X9iYL3wHPR=i|I$*{~007!|fa>mUqTyWBMmZnD&r0 z=h8E+?kaS>hwX?j*9-D;M{)yfq5n3x=IMu2>7Uidx{qRB3HM>Ki9wbuDdX<6mH=EP zWId45{KG~#_`*b5exW8406q9BeSpszB{w%Y`sqcKXIAb{%O>!2_hMAmfG~J=M@*3P{zQ}g<&lETe|rec zOe}?w><3oba}x3CgTi0$?KSfaFu{+1gm7;7l)PJb*cHXigpqCoLR0$95V`U!vzQ&W zFlc*R=aIS)d}80MjeY>_wf&X8r?Z4Ums%sC9fBdY}%z8cp0uGuH|2NwDE$i zt3ha;hc?4Mmi)v*HYlv!SZDHb-i_Exg2uH5(1^Kx(mE6MB?Txx$+E)@^?oYL?dU?> zD7QBXj+~G-QZ7zuB6HowSbwfeQ7&cIehPh^efx??100+EvMLtH{(H&BsCzb@3pCGP z1)F0IKR8j^J{hR&Jbu4FpwyP@U2$RR*()I!ue)=A0m*K~IL#~Xm-eeGJXdmnhCK@F zidp}Q0Tl!JWSaA*#6yy3Vd$JIcHoP$T3tGj>!DI@XD}wbVY#b)tFT^>=q{Ru!*yHn}Gow6^-bZ4ZOI%FasJ8ffRfm~rxrGxU zPh{5wSr**^Oa}LugGKTBVS7?@K?uoas|0pvd!$T3OIbS0uKJR@N&5JKwzY~i3oJHe|$a8R8K$Ip8n6?zw8exG-9K2 z4oqNCcTAIEU?-qyHUEKZ*(`_Q6@ND=PY!(O3uhigoP7p1k|regw6;%EI>FKYYCvQ2 z)z`zbL(m<~{%L!2j!@<^%Q2#5bHe*N_ny<%wi_0mu7A0{wLI1j_p<Mo`0xQ8doJ4a@u5W^FDtQzHPW|ls^)^!G+H4!r# z8B05VC1ky?+CYZ`i*s<1wNinAVIlj4&2fy4Yhke8E_XA(ae?rf=@bo2Jq zxXX#FU+q$-0X*p4YUBEN@SDI;F?RKN>jlfN#ZX`NqnV{vk)jF3k{>&{_PW%$Z1yli zk?5)N_XClRk7gntZwb>1K??o!HK zi3(HXSWJ;7HlQ(W6~QJu=ZuI*wBFq9989ul075zUVi9Ng@2C@q`` z<2xqI3y*4SO`uR~UiUg_KmT_20`u{6)FUg<;??vEqUo-u z47h^t%Zx;x9p@Fm2RoXz4g{n-lGR_yuWP_x)w?0GB=lR(WzEtAxSJ#rG?3l7)gsX4 zdqwhUsgSt1>$?1(F6OP9QMLPzm(o({EnCnm*=KW1vOX@d)|4`gx)9zrLt_QgSIZ7o zv>}HD--ndkSe0nvVNq@MkDHA_4V5{~VMoz$T4k9CZcvg5IZrJ7H1QTlY&IR2rta&l zH6ZQHj%i{{%|ig(v5ZuE+>O)i+;e&OXPHmep8jKW#)F)>Z}#kBcB2tBVR!C| ze#)^ip2Irq<`tpMoc5&2~xn-bdws}VWbo60^d z9~owz>m5`#nS5;DS;RWj$O+;0oK}BmqDBMeZRe+^Tg+JR*Twqoi`zqaN^01s9G-h$ zcjMRjDXGZNoDz26{!_EdE8UuQ&B(!6yN7qP%FVppO)f)8C6ti(h7Jw#Y|=9CO?LzH z8C>mK3yMB;IGw1tiya5LyU2naJb@ndeIFNA`f^+^YT1h1Th*j4@XbqArmld~7XbAE zUy5Hu@Eu%S3d4g<8viB2SrN-m4=mJXp7vmUZk@7noljT(f<=F|jLQD{C~lH+&*S+) zcD*X!ThY&IPjerOqYxFWM|h0=0PZ3S#)a!lfkI*H6swD@zZy0jgVDfImz6rXP7OFf zxwMGGkA!Nty@7EtU}AdY&+MFBKtlhfbM&}4WwsXq)^Er|A>$qH=~si`T`&~T4YKV< zXQhvgJE4)E`E&q$F`#)f4**%Oi65VHto^pV#{17w^p?x{7u4_*4`nSSh^&4j#fLvJ z8)N0v^^V*h>z!9Tyfxv?IF+evD}<24%R!KJ>`t7*B(!)iw8M957M6EAud(ad(d~m{ z7NccXPKxO5=L1G5tGV{RDlrebU#&}D3F^3jpAH|OLb*=^E*&9pwvM482uviP2XWW) z@9vpwznS;AxBuNI+?JH9`!RDVQg;nu&-|hCf>RU0{SUdrf8pf$8bI-Jwrw53g}Kzc zX-Z2+(&dYeo?s< zUmr7O%jhA-sgXx2V8>6Ys}veJAU5m>Lx;b=H81`s`AQmjV?QpOBz`TdH~HlEw`Pa3 zydDC(^a+1*iQFG;b1HLcmn|H)3a%!F^0Kocbp#>Zgn+N}?;oOWl(@qbpas-NBJgUk z&>`Mj>~>-hH!ATe|1}$`@=xX{kpt%YUKWf$VERL4z$~%Zv;20mH?GNKfREsL`Cb9+ z7vNUwSVAgf{Y%H$$qhI;_vJA3Gv3zj=Gq;`IAu(5U^-cNnkje#(w@8O>aWJSQH`Ct z!LW5-cXbcDY8lklp_tbL-t3LH5V}3rm{_(tsY1-PH3N*X1dVC!q>5*H2eNS)X{hQG z;boIt%c#!q+?@c6HNor${;+_-V$XNwG4AD*CNot$uE|D~^=PeY3$##OK}P2pBg5cX z6xUooX@)1yXwvjnyZ$w)JUnvzEC#@!K;9*p`41QDz2M*387qvJkB(&YJRY0Wgb(I2 zNcvj(S>V@NRH62Kj|VwutP(= zYPkp&o(Mp51iC`sV94$}GuGv2J^|ePZfblYjM>rGK!UDoRLogs?!#IzrW2@d2kTC+ zY3fM2Ho%GrhZH^)ypG+sZlt;m1m{Id5bAX=enx3Q%<>xIu_r>UzYdV$l2aM5bu_%W z`Nt+PJs9wvTBVi-Ht51(^`f@YLlWawWlNix09X#x+w$v%h zgKNGvI?hEQRnvnz&CgG@fQ4z0E_2iM$*-$ILi6Zz;&F`JB-vkig-mHU)G$4p*OZy> zZ;>(SP_klT_EYNnTb`NW#9C1D3$mVbmFP0zp_16~WqUs}Y7=T<03T;C)dvb53F}oPlt|!e4EJDe)9=^)S9Sfl z2{Z?)Uu=as)sCsEie(%<>T&*p1&N(dd6CN>e@ehXzcxGq>!j7qQr_muTkn9fmeKZS&U zCc~Y7&NY(_tBM#rp?h)D2ZtfG#M`{3;ibr~kJIpd1JN`|-p(I(YGqWMx}%&WjmzGn zeQ`(6QOWo38js#yjqcA%8VQ12ZX(&ZHdIHp7k)Z@O-e_mSZxtPFt;8LguNJkx@;|b zaI>!p&p+@<_sr_W{^(Xy^D-3PbM+9Nm%Sp9Aax>VBCU<3nk33FnvNo9nc3N)?A1fr zx-Yx^p9@bp*u%c`iohH0uCG*M5#r%rG&MQuij%Nk@*T9AgHN4K?;XZ*$=&lOuh>6k z_0Pa{lCP97Eb(`imI_w3{a2pEU!Gwz*^dE;kSw)%YZPlBe*EO1X8X}ot;I!`A)rL4g$q~{3nOQt&Kc9zF!#tW+ufdh1kFSnYe(e_cR7z_Sj87bft zVqvCjzGfsoR)iZQo$u0$}0wyzM$qJJ3kkhzUBqU-c@rQ!8Yx)LTjJaTGR2yP=c+}SR)JU z!U+j>l9{A@XV@MqoPDkDs#A?rxYw$TagbTOLF_xDs$yAYiVg+jLh5oKL_X^COJXQd zIp*RmU~cGZY0FhTbcIm#k@<(8U)NNNm#YYWubU0&4B0PTXhFV=Us_Dg#5BhSIlG^! z`=hRJ^0EJ(rm(PTwhhh+c=s1_Pc#_d^jO^V>6H0stlBe&*08 zDQFpyi055nG%T=LG`^jZ5y8+eX<({8?>IQKWEyz60G%&MNE1GE4d&mdEwRqs!ysAJ ztzp^xCTK?3lKxYAnfZcxEWILZh&^S~MrQ?DmB^;1zX+X;GA9~VwAc30(9R?(XjgN+ z4?yENOs?hp%{--85%_D3!Sfs03LZqo{4S3_KL*q&b|8(vM-u)wOgfZwlbz!$Dt#3*r-PtJ-s60B(y zud|jfScz$iYknJ@wbv)=y+LuKX}Q3kN)ChVa5W%W4KdiaMMt63B5)N#K&bhow=#92 z<1M#1WWxl|mh@@bq^*8bZFy;SmseyBg&TY+K$oENgB~??r=^sYv)bmYN9uOXP4W^l zC1&PFnmPJ_*3D+-B9LCU&)d%Ff+Jc(5A?=3PSt6hu*X=iMq1$P7;d_JKu)+u&j>@cg@vKhu{s9 zDVewq{ONiBS-USXKeWtXg8RWWEfI(V|9z%4bN&2;=(c2sZt$;VDPzZ1eT>)F@)w%!nkj@73mdd(a_-4gN^P%$ zIuliK@h3`V&Sqkpu9IdCr8Eax7gjjwTs*CAnP6Z*7ESCKN$C&hSw;RgLseE|2SOgF zV=*W6b7`^tZ zCZ!U0VD##VmOxMhc znZ^+1$F-=yb$qBBXVCFJEF5rJKV9ROe#h?IJosu=b0SYN&@Wg zy9fJ)h|Z@;teYmc!xFtl`bBiUX5hs!!im}7J4 z=TDZVocrk|4r@9jxrRrcZ~a9g$owA2k^fL}a-9kyk@k(ScTKeu02jBn{M z5qDY%^cqOt>n#zm(r^7+nW6ntO5QsS%Ds@d5D-+)umi@vdl6Bh;->R%@>l|wgbGJJ zGW4W*h=@ktZoPUHPXPy4pF!k#6ym-%@TUcnFJj_s4^A5QhU-yw`#kR?+0N=D68p<#GWn^9f zLxD4+1 z0Jq(|=ns-Xv%4Ruzxd{jt{tOcp~Q;a7|*fEFFRud<6JINu5f#*c{=j7U-QUSXDvo3 zqkg(-I#^iUQwwnVv~0q6ez5UDkWg;u1mCAL{s0sdjork>e&ejwOM6~9l3nrKweapS zK73~EeWBRI?IUtW^xqrB#9a@K510&piTqJ5cYKDp`am@lA7gSApivg_H}bQq`>lqj zIZ1`t)t~$eu`{rqzqY3F(wX8q@`fP;tf@iSM~QCvOHC@&qJZ zkg+%6ee3J_`ZY7^RUoaO3|bSOT+mF+n}~62#4-?4%jeZb6N$MR=SS7dvA#)C1@n>e zd-3~jv-3S4;8=riqPmg#4atN0ZKIVJ0?17)6upBmJ1F*i1Ng13rKpgt7@k%L{o4l2 z1DMLs&TD+!-C&ZpM+qdY!5d1pHk8_nH(N*D&ou|>{4buC_CVe|oO-EWiV;W3e+^nxxjrfZU{B>WnDu$TiL6@l z7nC@$F0q5tn`q}U+HOlmJ%eNXA>PVqxEcG_HB4ss1ohb5^&f8kJi7gHv$vwCoboaO zJRI_?g%aNRL1wgajo-(|G5EOsrmm-;hpY|m#u)a5TUCv1-*tNR9$>RTum&HyN7J2o z&0M;ESyl9K{*V-z?;9i7z&fugsLnn84?!kqDF8pW=>oDb89o{L$dUkpU+oo|1?9NF zIBO?I*kCg_2Z{xoC0o|{t;3ZzDd8PeA2nvF3!~x7meBOW0}FzH4ovv@#S0iR3VhQ= zDRbIt=ZF6UqvwBTs+g*?2$`xb_rgtVw`8?p%t zG|yMtunI=x{HMRcjG--2S`W*hvOcBV6qKL`$}9;J)ro9uR#h9Cq^YrUXa~+#m{n$% z*=5U6mh)bMp!+vYBkZ}od-jkZ=Hdg_qf5iNA7C;w4^I^8o(;HSFXb39_cMKf@Ww7r zrq?O4rz+x$_NVMa>cEOn_csqel0CRNhlkU?2)3Fe7<(fsg=Md(#ci2Xe3Eu}SXlJk znBc6;%gp%5f>OH7WQ55c859zsK_d8=U!nwnE5`^zIs42N=?5YPR_Da|leN2geT4H4 z?rZ+TZoJ9)fS0!o_0!$-o}}eU)nRqa$}#x%x0gzEc_A%FS1Mwe-IT=h6`+|BWOkqS zlzAUY?SNmfUc@Vk{Ol-R`~o!?*C=kdb7Y^&o9gRP4%eU_tz3}U9jjDK-PmMG>)a&1 z4tk}num`4u?=xnnZlvlO*u_A~=sw6V{LJjOSa2)atB)O0X{Qfz;^p`^$3eDx(x?yd zW@Xb?T|TFRaLKbKZOE76U}k^73!$-XBA(od_$V%0S>bD{z-kl*Q> zan4Caby*Ds$+aE4gp6J*k_t%#?cH(|U|~QXtbM_@?w8A&gAN0%>(}Rt;T~qef)8$` zpa+El7}Qq|g1lm}#X2zfrm3O+;AV3A{10!Bag-_*wlRv2V~3TDDrEnOH?@?^s|n;w zvkMvVCsUO9C-OS7iG|HSa9FjSSB{?z+$g)?EXaSO{sJjZzTj~*11;QT2wl{zg+xes zyPC>+ic9B_V!NA4`jsv;i_XgniR}8&dS(iK)Wh8W+k5>{0&c!)9Pf%j!!%Oh9zR&H zR_=dAyokXhJ2kAV*Jp2!PM`5u2jf=qKJObRtFaDII{ku3_)tNg)F{dRX5xa(V%U|z zK~9d16xNk|VKj+h_l0RdT0(u&*2Lw~n9#3<3j5U;B@n>%p^4W7(H z@29`VgF_n!XtxzL!}ChLMal%|UU^vVfnqt$vHukQ_YNZ#{vxJH8t-=7?rGP7;_M2? zVEb&Y@xu-A1LjMxFXS@lmB$yGjEi&PvQNqFNmn*Q{!?YlN8;GrCW#9atOy_2Z#K@+ zcKX^vJ`Mu%YmS#?N6M?Y6qd$wEEVFOErZY@m!8R`65tfNry{X1SmAlWk{ys}@|9HU z-_;;1Z{$q6%tv%qxn;K%=kge7$L&1wyG)A8)M8VAF*#;qzctfS@ILMGQnu8$y3J>X zzZ5tIj503wO@vMw=2!(Eu_vTLa(Aw&*w)4@k5NSi6m(rGta`-z<=#svXI2nXY@xtV z`(if4!z{}(Pjc2l4DJ#wB&q&I!(j+h0v(r!skeMyJS;`m#?S+fR1{uPfR)WXWe}Wp zJZPc2XF>@j{I_dQz(MAgdpLz~mF&I%ddF>jyX##=VE{C~Ewm!jl0T7~3*Uh*zJhJf z&0+b+r9=~}IX`G8USSG3i5l}h;I(T;{b1;Hp(QgwCAZm)wOq@MI}&xhOThB6Bs@U$ z!@9h%%;pAb;R5d?H3gczOa%1r_>8?pi}odOo`17P?Zr2T3Nq_>ZTu&?DQ*KkaqlR& zjoBkPbnO(^%y$Bujl18zi3)P*2<8$4T`tVAbcTdf%I6&Rdb06gzTpr52&>qZPLoW0 zZ(TdJwAAfXDUI<)!@%`o;D%d0pv>)~UqZ1~k@PTm02J=$A%vJ-BIf)#hf-2VdQ-jW zEA^xNhIbc+7m_mf$yJ9GCOW%3uHURR%+}PpFp%sx(BlJ&cWL$x>!DVxYF-*Ff(8U^ zPmCLxH?OV>nzbkAqLs&@LrBe+Li%a1-|#BFcc-W8>SdKDynei^L~BqDFsgG?g&6@L z}*5swbtoF3YEutPfOB`v6=UV?5MGE|H6969A;$olk@~S0C{bP+)uVA%guB% z>n0w|dwR(Gxsr^I;>Xp<^yi3vXqdN6h8KfZv_vV9l~ofoxN68USI=eg?QoqF&@G!n z`WCkHLF`HQvM0o%$NaXdt>QPodbpKMTAF<>KwA*vj$fkN2Duhikc6 z_Rv=hN&aQqrn$mRlHp4QF|h3PX$E=qC4)e03EF>cNUl<9 zJ4c&$Tk^(YqO-YMcvs_5q0yv&JXf0my+^iE+MeKz2*N4%v>G+?*YdSU)qS4=Bqu8q z_7-#X+XU+sw*vMGrGES1K$EEGUAuU$Ye~oD==Zb=ek+X+6HLSt-nO!3Dq^zWCda;T zV0>H@;p>eFcD0;-h^&ASW^Wk}2h@_|p2CGBt}>1eB3`G2Km8RL#H1BuD9h4&o?A;I ze|RESqOHLAB>Tvf{pi-i$Y7$NsQP> zd+>FDyVhkq*J%%^RR=O+HVkyER+rp9S9S|%zQTGm_5at^R&VR9OStHrClbkf zS|lN&+%LSVo=6ZJn^^RtR zUY)P9AFvGN$rT5kvo9Z+-`8R|fWpRE=?;c3QPo8)&-GZE6+981iDB2KF>E==Jq@ai z>fDGOuxWJn#SW#c-mfjLdVW)2i`j%TZ+2-Lq$TWgyC9Iz(Vd*`Y+E#Rj%D6hg|Yqn zXMg8oXghAEENZ{H`@yb&_io9cbh#Yv?Ym|`rNiBC;aKTQj-^;A7s8*-t_;stiJN>3 zf~jR2_K3OridGl}XIF+S*V`l5R%Y@Mqh*XKYvK26pONiMT?id-N`C~%tNyv1o7*b! z9klxlz=#%mxlvmgWQLY2N8x8InP1YS3C;ZesiDaCoGSix3UdYxaSY3{Q~pXI|UD!0{dU}L^H3Ui&h6X;D8;=eWqn=8QML>a0_e7;iZg7AUf?NSL$>p%```c zfN>&Q!c6VLMv4s=;kSSx%GgS*GmS4b_?6~YK5e0gmatJ8q$m6C*{f7$0fmEW^Ltk8x zcsEg~+?uJsf~7{^FCG1#`HGc~RH^IiAfv8xT7Jnz3ao&?NMlJMLu|aC0?|wq?!~uf zb_^znt_bM=$k$ObUdH0aA_d*byDm&(Pd(EksiXB-6Q^##3mRy3Z`VOfY6#lTxZF&J zDV1}QFJ%tfv0x&^P|6mg@$O{ia3OG~z}sdKKW%@y&Q-fDAMZ>d4*~hy!Ud6StTGc1 z(ZrvzLq$KNH01?&yk?++u9oyigvFg?P~xjC7j0`bc3pN6`ajUcR);NVRLE;UchhKU zvY*GvY7d-`;~%#|!O35>r|iz2Np2Dmi%oy#J)4 zUi!5y^$aXI75Ujm9DO$uNw-oS%f6l!`qk4k>>I6Oz>g908}StJXzQTLOysbyi5S>;{{v(AWw)q6l9-u3k)AXOG|N8Ikh2NLcV_*u_tkNgEt>Ww_MQ2{F zC>~ir4318X^^zQ@h^Kz>*=#~`+a7GLFGf^RJ3}wrOIc(ELL)lDTmO61a`@9gXdWG@ z6#^(&el)Dgu0MTtn%4~45`?Y+izW|D)#=>u$<4k(!d9}3)4B!J3R5+Q0GhlOt%loS zzS{VQ|2cfJtL_`(?Rv69@46x!dpwRz?0vr+o_eN32_x_c8%DS#oIaB~|aDx)Dmd_`P zVp*zZS(3Z#W(&sm{Z!$%H3Mm^tnuE!sEQ@Or%VKh{W=o+behqTW>VvsEq=lBjs7&h zk@}ELO6WIFcV9UWyfdly-DPXTO4KxaYgKY`Aq0v#EY67d4jS{;@M*e~p1!rg(NhEL z46O}_6G*sN--J#Emhw_7=PXBrf8-YwHH>(F`={-N%m`~lziCrvr~C=f>d8CZo+hNc z`;h~PV(}BJPwPT&xX&6c1S&+|PDheBIxqgFHZ2Ys)mIG49;YbhD=`K``0oV50_V)PJ^{lg*loTL;C9mBr9kq0V zIItS7)`dCRG&u#^&oNJcT3%G%^=5ssQ$SRMF5hUTO3kva?YRCA=N7B?h{hO|ec4us zN8|l>8|lSVgkC>0KcK5*PF0!^G_EQbgruD~srb94w5;FSgl=g~Z%ApBIxxbzi)rD6TMY-5m z^B(OK`rMsP3O;>wsW9!JTsm0To#yQbHcCv)V_$rh5ny!HIxf-Eb<~z7KcAt05JIi@ zO>QhGYsd?_BMOKRkI)Sb+BI|6VMUl*7!+8Mo+3yME*6E`NBPwMb7t?>g#7bo*TKZ_J%yBVbXauW!-R z{ZPs8j%N&Ip7l>W!CDk9<+p_PXaE)^Ia}g?XfDp`qno1M_W3~-M<9K{Km~i=G6$wM z7G4sg1V3e{Y8#<)zQ`H64GrE3bu)pz(b~isaPyN*nV#6LuYp3p)5=1W^Ze}79;sW4 zSD2zRJpZ9tq*!~+S=1uizdS3dF41~e`#3%9Lxm$lhdIRl(A%K^C`dT0HY+FP#wuFw z`kDi$QF}i5DEnP0s0kxA@{2n$9?ma2kE*|$8Yi{9%QA-twLaobs09f7&)tnXnaJrI z=`NJO0cuC(rMxH|g-oRfftp8W?DsBEMkjJ4C#c&?tv1!6-YXlo#o(Ud#Pdjc!Y%#y{J$ zZ!|%=_OT*Y9_cOalwEJQ)Y*7>DB?+({#G;Ha7S({&cWEV|4~xR2Mv|xId8J{d|d2! zd>og$#E9*MNEa_a2H+rV<3xU-BC+@WCvLiy2I{CRCVNQ~Lm8)Q39erljXr{gV z*lJ3p-+*u3f==5vA|YWgWc)30W@5Y{NV$;UrXTckJE)2LdcVB}N0|8& zaYaE9wm5wOrVUA4uT$4pMI6u9<+5OvLl(q1!rk4EQ~e6&hqTy+2Q@_Xk%!!&?+dw- zQ|!}`2vn9;B`ZcP+;A_V+AHgxYzrbA940DUp;Q^vyEl|FSoknq`BiL^@z z=7hWQ?~*RhUfarWQ0q3&B7I^V{K%%ebhT0*KiXL+DR9`V_@qJ?814SunuB3i7q6)( zBeYfykP;NGkrSxH0*&RUEWS*#|1NDt-SwX+@Vj{EP2(@8rpp~d!dkTyaKw?LtsW>& zPrv92s08R*EAOClWMAhzKK2S~r9qSXX=tPUaU(yTned^j5L4B_r8iaT>4EEJ!u!qV z`=$F$xOtqJp2N)cysIetHKk$|8*B|p8Ezzt{u=b{Q4Z%L>~ar+BvsH_h>|4&K-CWw zzH9{3CJ4raHZtxj+DB4NRW|15EGpQ#2DAwvbk@>pxh4Zz%s?setf0fOh`(a;R;@0u zt0RiD;^NimZ<4@146@m|0EIi)&!knm{D$fj+Rnq(F~M@9SE27)NKhnLMcp+bl;)#( zON;pHsUk5noq9=tkN#CYYR|eQrk~u5tl9)CXr(=RjU0PGU}2+s0_gYj5nw50dj5jx zxJrrph_#|8plGhMQ~V^wMllhTSrg}aDAOOO#x_iuD=kj$@n57@i&!8EKt?;)?k3hD zm>8sB`)G7{!vJEsOJ`k>b$4%VS}xwGYMZm$g(c=RA}8m;3aRcJ?hEx&f6-hs&S#u- zQqpe;t{r`Wp}CJ!QKg^xqo~NPfiS1Db2fHj94l}yfP7g^P@A_GH6Q| z!;)rhmIdhSi0pM7Fw(}OTctbRl-l8aTweh$x^fwPnA_zE0y~ku%L)gyMrh_lz$qn}8mPb3j3_>ep zGGq*Sm6n(-{a6NrMk1R&bkW>B+$lG>K2r~rls;9u9tY&V%K68-yeK}}zB@@K->Jc^ zC)%s*!fV2-#AE2dR33v_m?e*k`O>~_-Ewx{by}U zUEwJK-=3?D5Su)^y(vtNbGmn8|Egf?0L5hY%O8Wj9*n@2_t>x3#{j|=PMN+{b!N=Z z>9wX)7JoaxFXrdy(Owq0gDCjUF?N}3dgOGJ0GJ*l_~Ai>ID-Rh-zOZwEny0%_8z;3 z1GzTS%96q`9+XL8F&DT8JZA88y90vNQF3N`H^$* zBNNey_he>QQ);2ygSrG9%d7UYGz}!uv?~+|3h(Xub2GPSVGgbtl{J*2z<26t@H9r1 zoA1$KbI^(`%&WEhB?LA_N!PJ%V>?Ip`wy@3#uwyNL~RpI1byW`eacy8h0WA0QY1%?~_&fdtX0uJ&dXc*mA+}*Ml5IK%F)TgYV)%p<@wDA@!Rm9i zC_wll)HX(JFc#Qlvc%^#oij-xe?09WDZUL-ptc~6#8<2o1L*H`*qcH#hK`u4i(WfO5KqWF^ z0=MS(@s0m1dIxi%3ydkF{n|#Wy|3%K`>>HAKLtH!6K2W%vT(L4&hX|a96^J)#)jgL zNaDv`f@7ot`&qq#(&nacHqVuy83HMy^k4IAjgBE<^1H&$OC9KoC>erm{M zR}(N~d*u*d|6q+dUyK=D(6$K-g=Xw4es!@VO3?T3`y8bx4u%Sw2l^0Xtd(uz|dMScLJ8fAxL64O`pQIu-%&$TQvh)UqJ)@0{fgLMY-eGTk(gR^~w zCIb)UFVR`j>iF}w zZqJs-Zh!LF`@Q&ylj-oLDC(DZ8%f=b`RjjK8kW8IfZNZ<-k*)OE0WPyRfL9pPrwBE zpx-jU-xJi}6{Dxw=OMQzJAL#~UCc|WoP_>?*4oimuUh?4P8?*E?6nJXdJTfp?7kO8-?5OU=)^vxs@WV3 zFM<1H(NMehKhG$Bf1z-|x$67-ANYS+aT__*=cPq=x3cO-_tf|NIr)(i@RjJZYAnY! zybQ4T?r^7aarsfl$a7SIju~AOeHfN(_)}rKGZmFuJk4FIVsgLcNmgHcYlx(%E^Fw& z{VubseR3_crS&d2v*+iCS1s&&{yN?wK+U5)5TYN89iA407e&Q;;;h{74Y!!*ugl7m z`Sovd3p+9p18=s}`D10qL#=&QC;&Z@MfY|IB&oD2{t!5(du72F0-VbZLOi zGZyGa&1f7XwPo5(C7()#hi0~3tQxb~UV;|re59g=JUpq@O)nwMKBAZbPbzz239xIs z+I9tJ#jq~K`|}%oblul?e>U)PhKBab&Dg@2utxey_m3Pc81ryRk3fQZLvA^z^w*xF@P8E9>zROoQ>fZ6I`zA+jN$}&L=BY@}S&X4NM4(Vp&q5(qVa_9}jVg8ueH3tq4clNsKhJ^4p(dGv?R3-(xJ zqjlZ$DOQ%Yaeyzj5gz9iIxh(PclVD4G!Tq;?+=2=&9#YcHFi!@R|@n!9BtiEjCVtU5XlepBuYlm*M_Dn%+a#>hYydiUHc&?dN1NA^jrTcwIPn?@zASZyZxr z!FSx0$!#&XVpd(W(PuXHdd~CPdE3F57r>1RTbA9}ogu*=`lwQB!*jL(I$ndD(&8Nh z%D=JqG0QU2XzS&!=`}C3JSpn=Fa3Y5SNiEwo$B(o=W1ILO$}c(ItO6gP2we@cb+-8 zpNGdoc5Ichlh%_@>6mf0=HwR@rOIE!sEK&@=v2HAT6=G9unC;s0@TF8)mS|NrlB zNfI5DIZFrXaz3ACQlW!G<$L9PK4&vChm9eGgduVoRw=Ho62e9_IgXe)l+!RXHp(zt zV+=o^-~aG_zizMB^Z9t(@3*iv)R4Bhrr$_cw>hI(mwSXW#})yeIRIB%y2kwE6;nQc zDXJW1Om&#R!0X~9bs&Xf_TSS#Q^2^s?S)I#aFAWo%IN&uKbKZ1#^gm*4&1~#%r}0@ zE3YR@)7aW96oGYFAm~r^z2^f%4s$iDreDIRD&yjR-@{xA6JsqX~@ARt8lXH;X=IyqvV;F77zIo(eRV`(lngc8IvhDMxW%> ze^pvj7VIc4ClhqXh?ZItCGzKxTOLl*%zchDrPw|C&I;W1Ih*%SkU944`AjuT z9$_kYM-FM{{ucYp!!`Tk2kv3F+dwSU?#<+qr;W;T^t!Jn;BX1SUx{9Jl_!MRdtgSMQzSaKl+rD>yjQRGfG7W0!vdH)ogaVcz6cAL*M2f z?FEj{0PXu*q@4w#s2$&5g`$$^bkg|Qo*q}pd5CFy7S|!rX`w+gb1;mRV~kmQr#ZQ# zGs^}1NI~H`+y*D@oeE`b#T00##{<)u2bNYSIwWcy$8VL?oG~YLi}c7d)p+;@+im}C zz%OH1Ma{)Mt_0+3$n1on-b^s!^!~Y{!~o96VLrBuT*qp4(}-%H_}urtkN2OmW}iwt zzS&?~cTmef{&H*HCt1K0JcQLm!$yFZm^M8R+cq1;wzcm$B+wua$Npc4@il2LxPDpH zjdZZ%lHZSdoW=VPAQSAMf^4MoCLyJ)Mt0Yq&kc^p8V>oxzFYiwvO9Bjx99ri>sMQ> zUsv;lg`Woq9vPT8WpBR)0R%15~I)=_EUGtS2{+ZDKuB>WrFz`h(lC$DQ z!;~SAhYVPLC8C;yD+V0gyk%HjwIK?l=GKM$`|x9n?^;KyXd?^5UTkyX>9ot`(MfrE zmcP*CW~m9p?P<&!B;`jbzGjo3+O`|QfE-rc%jNo?jC@8kuGu{kJh9HbQO_?YwMj_s z%I#oLmwlh}8<*=NpGUmFlN9ycPn90Sh;EifC-orujY>N*`9Ypu&RdYC{A`$?b~5g9 z^FUhIvZzlso&33?U38fgzd^E8^4`IXNSYtV4_}`-xxd9qvUII=JtlzcUI69mFVErm zR+aK9!J{5}9Q*yx(-&PS)Ek4Ad^) zxg5wJ1fnD_(M=N^s**Il^;~Ne^k3WEOr%K#T- z>#iM~JPUpxNi4B(lru*t@wKTLo2+PEf}|#6g8W!X&GZE6dsc3wX~a8P{7IBfd|HNw4}&{;Fk#?IWet6lqE*=WkuB9xWv zfWznak8z$Wk_^qUX6B}ijO^JDRorTxwMtR6Uk_WQjp|2_hc=7JJE~4M&KW9dsy&-F zI_KeUrhV17Iggmq&;aqC$o%QM>?D87P&nMDHW+p$Un^McoSZ9sBdfAnd#H3ocGP{XZ&sUZUk zbMjP?JHlb0U%lbZ$&Tcu6Hx!VXY(luF6)nlo(5S`z41dr4hj z;MU&`%L^L_9JNv$dv3ehe-Vu&yFct{UR1YbKCIP24R#WZo$SU;f600qujbU0kL!FE zf1yB^5jgpsJP>wlUgXy|0cOL_tj#~A*HT+4^AFaaE4(Ot+6`}AEQw+i-E@y^JN3?J z3Sl4jRxm;YjFy<4MYGyTT!*pO$;7^Xl4eU&FeMcBUFWkq#t{M}Zp$Gp5#@Qz=|Zm4 zp4u1V^2xPOL9JX#wX`yEK{|H%w~?>MK^)El>zkWh&2Gm>GVPwMe8dP);OF>mX7kU3 zfcvuR8BL*;wD599V4n)bl749!Ot+7V`}n8r15+C69zt9ln2dmgWR>?2gI(h%Oa4Gg zM0*{Zq{+5pn6lWfglG%)XI;>`5rUyq=93AMatgtn&nVT4ABIu6w!n`|e z<5H%1MZr-wBK~i5{=$;iWZJsip=Vup67S^f;Jcrs8*)T0k@T2w9YOWvg=gahIj70E zocgoi!%z2jAuc-jqj!^Oho+`_J`{A7px23Th{>oIf3$S2#{n1Mrd~WzI@*T}J;+oz zbcXy+*v8hib`(+qIsa{M9a()?R1nyW`sY(6^b0(Ef$HZEz-zTw7-ZGpw%!^I+oe4{j zJfI8ACcQd1^y=2GO+qY}2B5CDIjaWf$i(NOGI(XrUli1ocsav9&LXAOs65IG^J=wz zjv)$N^)-H>EEzXlB0j0|(6F^P0EI*%`BpF`vOf2c5pH7Q#6S5*7bj1k$V|NGC|87} zFhPw^YlGa(I#nPN{1_DtL*u_&d8l2^_4uC5br$Y5WdrbyduQ>^F9_+k70XWK9LCL;@*6gM;FF zWjT4oalDL3)WSD9IxrQ@xQf?{gzx5=%srJxjp9dz^$1AbiDpH;P_)$>hOxgHG)6q>c z(wDmSm{Zwun=&VNei{&lN5H%Pks1Ay*toSp*nG;mr88n$YniD)gJMvYiCsMdPX_9Y0;&$ z0u-WdDk3GKY|GLavnQs~4}*`%!G)vN`y_X#edwxNlYQS7zK4U+x#{;0@DJ0VSLa!- zpU)XJ>@%c_!y1z+0Lol-)+5?P!n&4P$7biatqN28QzGSg-U8yqEt=BbG;L64hG1^w*5}9dOqs4UE>P0%g`Yx!fTE_e#a$1}}slx(aqoZsUkPqgJ zv+hN}Uu;3fg9!ECvRCSd0uPholX+tZ8TS*VBtplI+J^gt_k-l9!t7l&nAd|)0^C%E zO-5&M?Um9Hq{jVt>qg|(u{na1T zreMUEve8g&b1-{a;GdWq)roZaRx#5cm;a^9P{vvlq52q{vK`5_wghcN<;qyqspt`5W#pXEvXrjY=lEA1!=dS>u*#3FY8wd3u|J^g zIVR>xYR<9k(;Xb4uMI?okri`#dbcOQ0QBOCo`a^%JqBC79Vf&Tp#f-o{P?jtTJygk z_2?cHZ!%ERTtGWTCFHf)&w^6EZn;p;_!5N3J&xa(zLH{^#P*El2|YG1+3zur0P^G;A7cFeyVEsu?nvX5YqyGM@y&3E=UH7E#5mka0}vc;xOzotjOkw z1JK4?8CP1^u6Zjwk>zLJ>D)5T0Y5K+LzeY;1$A?LFhI6$!Vw~+7V923AQTn&QRd&hqBLyo*_`rBa#YojcHAB#zIZk~K9nkpeWvnfgxmpN z%^~m-7ho3y6n<@uMQHt5|< z=ck=bL+h3HCq4PcTqRRFRMA=J9h~DY-$50gRvS(CFILsHgkM5@s~Na;pjWAIJ7qC zzNah+a+v6JPautHI>_eOsv@lk$0V7`)RmTl%yXMR05Q-a(#gK8CGVJi%5!NERpG8i zgO@I=O8+kNt<>b(#a*#&52h>z$d^gB1c2u-4Q2Z=X)8;=&i#)6^TG3L98;|EV9T&M zJ7@D+Gis%1)y;QQa*|AVnPPl;@8k2Oq*EK!KVBG+1jr|r$#hQ6hnWT z{8~OQm@_@-CzXix_)XHT@eU5_)eqH2B>n5|x6jmQ&A-92wke&!*dI7B^}S z+)&2a#D++Myc^*P_rCNgnhvWUuBA7=#vfW83k%8OK1eeVCa0{*S4^B7AeIG5TXSe= z-HELZczZ=VXG@Zc$(v>@;3FyMIn{GL&A&B7pf5TNG+F_b{!t>B*tO9YR4$BZ1Ll*Q)<={)Ki1HC zYqjk7a6-?YO4S3Y@QuA@&5UzIYDS05}v=*pjgAQH-zZPCR(}lpBZC zCNC`4nJy}No+bh)PGpIyYPjI*;GpiZbABjU*4V`lk3PNyt`s^MyU<`8(DROxeMgsRco%hM)8@!S;&>B z?auglO}Uo-8Dw$26X>@w14dI^N$l6(u#g6ooo@_7sWkefQEV;Hx-&WaUMmBJJGWiw zZ#}yfzuAH>i$0q=(fvNl-{Dp0k)wjb#;{A%kmrU2beb)84NVa?<5i(+F4Su}{JZg5d_nax> zpWI_NO%Q*^Qt$QP{l;pI3hta>;vRzUhK2t)X_YTVh9)lkz;(TD98Kzjy9lFVMVZk) z-xx{iN7;;s+(35W*5~ZS{f&)>qVlLqSN#3TluyYFR>N#S)4`+9&1^j}q}Vz? zY7vFk)G}ZK+i>iYFQLvs=Vg&Pg`nbE*LKZ@9lN9R67fyntjr~Vm71J9 zIi`ADu`ZCY+VV(iW4dZl#{Gjt}rWH?ro)1XXPV7YN--d5v6rLAp_^% zUjmZlfYt1$+K@p`JFjaPuQ3W8fX;@J>w25NMiB$w|#8uF_R(iasRUs8zv zU>soH!LMGEBbL62dDT(ZvQ*tHC;idH7xbmJ?TS9kJ$S7vCbCwCp|^l>Yyn?@S7uw2^XP9U(T zjXp|sqsDPu6Jsm_gMj$PwJxu}S4?Pm^@}q$D)G_b)5sKV)l{DX!E|o-`^tt6MB@G| zh=}{<6Cr$$LC@jvLc`QLe#7RsRtl6;;TY3xwWlxbLBlT>??8D0p4SC&D~;E>`qn=)9SOM|1z)y3PldyRAJmwV%kaoa+^<-9`u||q&Z1SyE2M><|n!l7^v%Y zP-Eo}%maO(*zfN}B^`@fmD5>PoUS-qN6{OyYim-IWl<#*c+3EC{^t_m*S)Q}wCP9V z5iiqg0o|lw!#I+-(uieCCCktW7$D2s4A{>Sew!DwaAVM_f;f_DrkG(10m}eBYFsdI zb3JX4;ChHN{UhaAl~5c9HdQG>cwyU$TVQ;TPj}!H(wJiwAZ$xYUAJZC7xoVjv#H6N8Sik--ztF3MpstWUu;|Knl0*Z znOTyYfD%QvMZ$>BAnIXerTf#WADSB-fUTnJFGaR4OCez4Xt?G^)p-=>b*ppNWk~g_ zZ>LV)KCN|vmTt>;VCs830eBNrE89QaVE zR2A5K%mGlzVYwC?SDrVQsaBCTjAgU4JQ>y?iE+-z^Z#$D&VJgPQeaHwXxEti9S9%)_cQRXdBz&Z@*WVRt2n=63}K!-2<8n*v(hpyXTb{au68sk!1NIk@V7KKGk&IC~5^R6;qo> z^;XtGj}b?4t~vvLDr)~1V|vq2_%Z$Zm4GMFpXps`j!$j`!b@$N#P_lV;KmVA(?Q>J7*;G`Aat!(9VK|3BN6Dk% z+8u+%c9a$%P|@6Y?0MGM>w?oSR0^Ew`rg9@P2Uz^{WZgutt-h>N8YisP=;XgJ@X&y zK?26~(>|fY39^9{i!J66N#@1uio8~#vJ4lFI@}Js@^7T4N?SUNdq(YYLz9;|grFR- z;eRM|N5Pt)Z~S7sef-o8bI^9m4{;W>aYTu4bUz=)h^>g*kLA}vbf@s`w1?4}GiL2aoi-!w)oak&&|0N7l zRxJDdV9+%&GS8b~vp*2H(`QLrFA;i|2@$-`4&Aoi=8!rxmM;+E@4Wmo)G~IvM$_sR zfKwdbOd^y0{f1LamMH4MAKoVF6;prw10uub8es+JX=&JolqD?Yk8+%uB6(Q&G6)Px z`BHM@N@S<$+%r*@4@bLnTqr5P+_AyI{@*;z+DT6eM`N<8y9(D|-0eTBblv!c-AL_Z z(x0w4*H$mjLCVHol9x$^!J`QWsx76p>;w4>HGFeot7~^<2m^2jzO2&U)de|{;wK2h z8+SvR-$7z9_&TJ+)dVSW#RkJm4 zb}4MVF_eKY<&_(+&V_B{y6z1RN(Ao6Z*0r{&x|^9+H1b+8)f^fa<1QLv9l04vi26P zE~?AsNcbN5;c0Ud+rN*$R1-~(5?b;r4Ho|_UZN1V7>ZURQr^55n&g^YQ3SQg+w&$bT%Pe>+0BHW8G%h_r7Fjeo^=@2nia`*JX% zwZR@*HXM$(@%a9-<#jb37hdI+^^4@vOY!QAqEqSVsP>#VtDuU#`{vdAnKMB04GBJU z2CaaTYM1ZeI%e_<>JKiF;P}{4)u}TOC?_Rfg`>G~G3;M+4Uf0Ax!sDQHNb!=m%+l0 zI#Hk5YsmS-oQ7|gf!jvJsv)LtdClY@TH4@1$i5HXrK$|xp#9VuWMHbhl6opmP1GHKlHQpX+miIxpvTT-7AcbrLz8CH>Sp- z9)&2Xa*n0x04EjObT?=C_Pp3YaL>%}Kb(@ieo&fk+hFqUbc_1yfDDPUp0qK;Hxg>P z8h7a(6ONv7f3lc?-E|xi(niftxJmkOw&`K0MSr)_v3OyKW(oLsFy<(-z)x>K&R=7< z7$t?3%WT&MnJ5D1#L&8J$@y<-p<^4WW(?h>(F?lH7 zKfuw>eKGry$Y1q+2>M}wv2P%}F?1G$aW_S3X#iS=B>>{3y+zr57hjo<u*4mdDLzXI+BF0w%M`niNhxe}P_W_0RoscN(d3STve9IvY10bjN$uIs7lqaEo?@ ztMTd^S<%!~`SQT%YkZ3@$+Fnx5_hv!Bl*~qpVAY{sWJW2*{1tWQuINq{v6APzy9(c z@WJdxWa#4p83*ubc5$2!9fzE9oU=+5kUGj1u>?28oXtdw>EN4cL+eMt8Bk32+m+sX z+y6=yuIvZdGur+P84X$2!a|v67ldJV355?F6!HyrHLc zSuoJh%#q(5%q$6)8UNC7XEUTOPw;pH-}(%?9lLq?k0}9&=#i|11^%8GU0@l5=n32k z#jk&`8SHx9Y|_T#5EagF9qX>jo>p%Xhz-9nEPe#k65QVz9G`+Iv7)vyE%U9d0jJO(>6|IGlW4mQRuR|7VG zoY~p2!m_&J^S3+w;?eI8)$vV#9f{M6oVoK5{mz^guu{4SiON)0d%?b9tFbq6>TK1y z|GSL`a0^oYl#xsB=3W&t`>mBgsr)G6=7qP6smKO}gmHyL<}DOo?n4eQ`V{V}de^VZ zpn5%fO8BIdQoc<|Qd+cs<&$|+Ww2xMC7qI<41cw0zI5t>HY>;En`=Jgx8mL5qOBMU zXo3YHcdaKEg%^uyA9TIx{KR*48FiuIb7NAH|Br=0tfCXoj2D|9sH*Jb$f7^YsraNj zR#d>iRMgk;TTdsq_J$IcnT7A16s0(BhrYwr)!`!mmkz+-f&E*7BjmcEiM&D4GnY+3 zsOgoc)j%EneXpQ7KiZ)%`dzHgsL?7T}o zm0iXl8y}RE?TM31n{mUwm`!oJ=&;D)AM~uw@ds*-i!L26q00KCI}Mh2c|}V7W&bFg z&6nOTRsT@&x5nP_d4Ni)7AZ{m@d`BNSsqMTu4B$8Rm9UF>90^S?H1{C#H)}&aOWht zFMPomKQz7-JS(eAhFT%R&k9(6)wDa-af=JcR@xY1GwpGg{yr!6#gl8(B=J^$)bQ1| z;@gOJ@3P8P)_Q9%&1fDYbTayk^ro%i$-G^cH&cQK9Dqipznmz%eNwdHvfoqhgvp2t z@cU7TKT*N-6iATkRxQ+TasD;sTJ4wY;9!H%h2Mzl7`R1#+}FHZ%g?4!1==A; zZR^8(SHqk$={{&qUYc~^%=fgG*G`%Jhy#^KkjTyF(fNshAAB2g!eN6Je}tOW6#9h1 zB{zWol%4cQp;d8R7;!!mq9vf$zi@K%K1|l>n@4}?Z8_$4Awb(a?f_SP@iX-KmHL(> zo`Qlj(INM$;PR=ayj;A70rgCIWwtmi9e{fvE+Fctw@>r1- zdGq-guMM3$8bn;_FMWz2rDZG4m2$AqxAwqZIr!@T^f$B55gbXEnq33wsTv&B^%9r~ zs9vjFQ(#hU_rR5jIxQ77Rk*Ui!5d%fP)4Mm3tVkdR1Y1*fPuw&##X=SX#fGSrdbK( z=Fw^XemQ$|UULn{2$|xO6#lgq8;71>FFmfq=lXnA_X!_>)&qr(D4%W(KNElym&p{V zb%;oiEhrw5E0LBox#Q|!bE3PYSnV{~GVR+p%GskG(?=Y(8@e^TIf6>P9x{nhuDYkEJZEwMp%t8L5 zLALwG4%vrVm!`5OGfzX3YgmS~0jnY8oTtp-}a;>e~VP=ZkZ#<`1fh z@LNo2*-GP7r+qoa8?wk3lAyn4Gi^0$yN`@qpCk(3;tdC`I#ogzFBT%T_Bm>rJ<*ah zC$~z}yyr7)bdHX=akK$?W&gfFg@7{~xkb&RW7eKgFN>?APb*T-mcgDv&EBrn#gC{6 zAM@TQg7g6W_HnC0-Jj%CPEE;Vx0YV~95*m_vL6?+@9i<7IYrhoteaVI+WLk{H5q_4 z+>|5)I0SPvyk0XjTjrYnK z#yG?j!(1Nv#orA+8^MvvZae0!vK3)x=fnCJ7eE9rJVPBpvl3O(qq?AMZ0u8j1s{@dxwe-S`@eL zX^>24Ng_Ma+1bS(mZRWO4Z*V}6c3MfKNEVfz`nk$TuyZdLewFqYvK+o(AOmFX9DXd z18N`xaFNSyw_%2dl1tdP;T!kNOE|7dYNW%NJZQOo4A_ulV8;vED=yR!cRn_jCTHHR z2g!7mZdvxqNXW9!swpL}bFh6zap;||LjGT!^IIyPor1<;d$zih;9es=t}kwswEnAt zeP~l6gpyoQi*Z)q`?cSd_f1Gh^YlQ#>*S{S#}7?8JuelkU6d9L%6|u~hriAfeILbs zwX4FST@gK}c1);hy?Lf&T2KW`2j7sOF5HW6(obkNc6LiIy%=XiJM}N9LqXqim{40SI_(Mr@!s(;;Yo)m0PT7QX&pbLV=(1UG19Y|Z ziu#Yl>4$6Zaw>LjMa&8 zPQvQj;v=)rcn+q}{s8U3n!xT(V*e>KTy<;>rGHui$JuWql4iD{d&^G&%%)L0&`_Mq z$?r%G{V#H@EY!e!FAcmloc5tEntpnxT;PRBQWCW=fgDQZkbo-@x%&{bAi@J zB1r}vGf#}mlbjh)of8Ub_YqYU^s|w5%kMeq>sd|0o*P~GrWYy=BC}_u_wqi?eJd2d zPk5VXGOcj*8^x*f9wW`T9M&w934g%6raRvS%8vw>YKDZFPhH;C^OkU=7D(=|9AY^d>CN9c@$)5wyLXc8HpR}&iLO@P!WXMD)6k({9N;9cgnE`{SbA$ zY}Q{6_}+T#{apLZbDYR;08zIRX4ms!Nn_Chd$zSzR{-l(->TDqEA%%kJ9CWRVj3n5 zoNoD42$m>dY>!fegh#(;X+@F7jy>nO5#0I%pJ9}5h4BShng@S74Q;d+y1m9 z{VZ9Y2%6~O$6}JTTs%i7QNzT!I};$NEPJh*{C@4cx&1nVK(ll;CylO9b%F?M;^HjB zeSG8Kdx%a26>irHS~VvTQaD1rJ7 zY3Uh1X^227wX{zsX{LNJe!y$&40r`$q2J7E|Kf6rlpVe&iZV&<;BEZt8|EBY&+T~SLU7&B zEULPJmK5?#YvWkeGWyTJ{%AIr{pO*n9!7YKv_2yEy5ZTC?u+BNY3;a0&9H^U-uh=y z@?(S2?dM!gbW#emXFRFv`~*XbAW z90+3oM!whDr%FIwG^)B^cu^Os#Dx@9ddo!Hp7q=$!!}Y7MXOm=r8|BO3rA^BJz1zZ z*BVwu5WeSYACTU9^Cyo8i}yPUYuLpc>v=F$#-9)b*3+vtoG3?k9qJ`kf6*azyqm5z z7u-h?A3j94eKtD#rA$J?li0FOC{vlnbIDoPFYxDG`}j+rfmbeLeFx2R80Uta|&V zFG1hotwnm;SMkHj*;t=h>i#aZhVZp-%%mGe!p9645VCYphM!nVv1=Vu+@I{pC=_5# zb(d5W^^rEUjbq4h%^;W>TEx6V#XDNlALC+t=N~KeC^S*30Qaak%Ag@7ogae$7|5D@}KIz2^AliSeH%cE=NT$0>o& zqw8g%&tp&;3JHN8nkTR3t=IKw8f_K0t|E>TTHlaxeP8(UhJb{0-+N=~EtQ_}gJKeB z99(PH#x-aY0v9lj41JL)Zm^8M}3t0!14%>?wP6d@5JV6cf4@B<)ZYK~NENZTlUnw70Wplzl zZzT|*$P5r1A4D?#0gXzLzur_wJWN$XCtMZ!9yLH9$1H7irI(r4Dzjk8+NI@xirAW!tz-F|OVG-Z_H7q0xd>g#?$;+V5j^LTp! z1z;WTM@&S&8(!ToZ$jG5^5i_;-Y;>oHl~!XSi8c;VZ(%H#wVlE5A9^_!K#z(1@KI> zA9p&zsKD~L@6Z+3(u_t|ujJ_UcWVJ2q4A6Y*KLvSMTjtfx2n}tm4gR6q2Q=5Yl+0A zr3il?hm8r|ty%)^WU!d;1<9!TJwxoIU(5O1Hx+48W;SuKXT?hCEGO(6T%j>ttxa}3T z2^KN4jOvDT@>t@SoTI((fZ@o{p#ByM=&PIUdC-TmN#m%|Z3VJ&ly75Ge2M8`S8-~O zCp((XI#$t_6E`Jiiyn*SMPnrtS%D>rP}sqYxOGO@Vq>NVQHV})cTz^cdQnx zbmwJynTm!Egyyt6AOetwpE(M za=~;%xzfuA7`k*L>lU4vF#CHsmq3+$f*>^SZN@594iA_lwGY+S$mPJMN(*V&pr#X2 zVj2=Db7hv_|KeYpC8^g-tiW4V+#2ci4NkW&DSDjPwJnq__W&CQmC5msVYnqwvD7x% z^7i18-P1c@kWYz3vmT)1;KpzHmqPUXgn6EDSEq;>+xKuc6XUKYgCT!jr9jUp0*nk5 zuN%>>A&o@-hLSGE$<9^}`R^WFu*N_A)q)^Vm@c)8Zwj~GHGNBxg87D9v>KKLsAcR* zgn~;=dvA;S_XpN4cAsZR1B&z8xwIp=^Cu<^MPVBu74>~Zf<@V*`~lO|G4BUzZE)}Q z&!T0edGw}avdN7DI2;q8So@^V^`?FEiN#x<-SG>_qKUM$XgM8_urj2bFrD&X{(DNL zXcAB2$I*U_K@X?kaP*T0ip$o{uPUtH!sCJmmX}V zLwDb3Z6wxy3E24G%_XQZ`trIGgsDbuVH9 z_-6x|mq+*h1$MM!quhjuaVSnH!#c@+XW22%Kn2igGY zMEg{j&Zp2Zi)>xD(Ux{{vsm^qJZ;QxX0EZW3djDf0p>ieAjbbq+&aL(;bC>+`qM_x z{!MCytZN8=t#8(Ton%gd&p`xJ^N;DCXqede_QM3(&@A!2D$f%@y0=+S40q}YxypUn z|HjyJ=t&=&PtUY!x^hK|3r$7CfzVnV@qnS8t32w7xJv5bFWLtCHRsBzuSp~4p8hMO z@OPM3IP8mb-OHXZaD;OyuxhM(f2>?2$)6VO@{> zKA~LH_Qm9DQ7^uXSZ{$7wV9`M%FPL zZ>8s7^s+3YzN@cKSzhdi68Oj5HjG;%PlkuY9PF{=-(7#%T(6}+t;bNvb?3I5kkbB> zQ1INah>N74beVIa?r!J4Pb|6m0ZNIVlCm>ym1fjt1+G_Vj`SHXbyid@6O&RP zd(ImTL!C1g2SL7(l*)lS+ecJ@{hvm-k>EEq7sVUKzg5`Uaq6|4n+9Q>%;`i{U~6hL znmEb7J)5%6qYms$mv-XbT+vLL+IO;dS(#Y5%>8RE6}uA}b)F!*DTnQWcaa3O?hWy) zia-xZ!uG|8E!quG##@i0xqAVl3klmekhFc9#ZKs6NWTyYO*f!WqufWMHq4=^`+p8N zi5q+-HlY(#YVBv&pZw)}QIMOVi@n~IaIV6RQ>QVhvkrnzwN7T&L6W^om+7Nz%kG1d zd$?vp!f;w>Ezq8Bwu6IXTGtxH3jF(}xTyG8h+nK>9B*7!J=1VjzlgdAvpW#x3gXDxEySSlAsp^}^|K7=TJ1N+gTYZ=QJ>2*I1sLW=ViM)F()aB z2631t_9qVhCH2w_M4KGKvUIA|uB#Gx=1z%0;53@;cF*U|0gJkwwB^ChW}zP#&QQ38 zM&*plGx^q`c^K93dQNB*?H!`9&}G54fspc(H*(~oe89aU2A)36wG;MIa?F&c%&7>_ zdNp2doU7}LqzDJk^!ydTsY0eoM+YTzkH}`(k9J zdPx<`LZ0t5yO4OGGtp(`;_Z)#M{k~{&iP_TQLp%VbcFU~)IfY|kd@0vQw$WZc-bDK zFrryo^h@rEmYqp(OIYHtfaWxR580UEN^@8bgiWGq&ApW>+3D=3)$C#B)qeGW0hRdY zEh*`)$@WF)JFC!Xf08kH>bwrqeat8zMkqY3g?Q?imd6XYD097rVkKst~ zNNqO?pe8{C>oN7cVrvq)r3_6ZJOpQZDkAzg64tg%$9suJ+`2ZFc7z*ki31r_UbD@f zaw@OLu17=SXSL_vVoK>|5LLN6O%?1dDOrzpQk!hTk-!r8BThL-AJg_YdaJ3A@mPal zYO5*sflX}Mz;jwRzwbV6Gwk&nR98N&*%24__v`Q{$1f5#+V2!0Bxa*b`xp~dSDrEd zmOJ_mCSr3;QsQ3P)R8_$5o+N1sxc~5)P_}xv{l%dys<()@+A3@!*hs62eds?4{Q}0 zQ*u$cc}8aOcASY&TebE#eP$6T|99VYOeeirQcEFi;b}~`ij%(a1ILnCam7FjY+01V z5d1gz(-ThADQb@|MGw_~MF2*Ji{_-_+0A`DiJIx}0K}(wemOG*jxM{xrvcTZOfBYp zuBw{^7Z(R;bU+MGF1@ZF9^Ru6o1l4jIInqM#S7&6jll`7Pa3jeH*SIqunl~!_j>c5O9)t4hMZU``L8 z=EDYi5^C;&`x}J!l(9<={IAPp^utK#j34b&w+Z8sSf#&>Yg9in`$`)emF#a~Xco*l zhKoy}&!kuJ4(AtZ_CEN83!L}eC&S5sWQh{{KG@EW0@Jt6HNHmlh?XJ?1ee@}txZO3u_JBB%Y)ABX%ruZc8NB(*myK4q+f2fT{_#4TB zJnqM?rrtZit6GZWxsTdaeKCd{)1^aV)a-d7Toc3t!>s^kyaLHYQe?F(@Sd-TU z1-GlQXCQKSRLniD>nzipc#&@!+3(ad?ZhMV{uyOfYin&R0^Lpzlh0`GMZt3Vl>V^4 zXJbO?gMMSa2csBXx9m>&w@lWAeaqY!;tT)(Ixp@4?GRbQl!VTCC(VUr-3@HFobn{k zg5ePQAo7T;*=zIY)+@8|-aqvEt0oKmEu5{RzxuvbZz4t0e@{S*VF%99Xc=FR9aIpl zLk;-c?DIso6q(IM^7cvNi&C05QVV~)>s8VG^lauYtlsyZqDH^y^$Yh~&y$$XtW~wN z&<1Tb)6*poM)V0ci~`uCbB|VxT`OWwYkvor|0VfHDdw&VB18k)FDBm*-E$4_((Nk7 zJ`64Xq9$J?avBhK1F#DoJ-pLDO2nNjUrdR}PmZ(1{AZn$JRF~&4{62(6dD4JhF zgjOux%e4XcI&&t~HMLK6@S=Z1UA3`yII%K+DBJN#)~*Zt2Y!PD2uVwX7>*a0LNlW{ zCViY?$5AFMeg`er_68o3-}%yGNIX56t@P=2Rs;hT!a{K}N-rUcy~936lHuD$aSFi+ z`G~t7+U0S-uSnWoc^vWm4$$TmRj!-za0Ep`ADuvL0Z*wG$&1wd2SFFK)J&u~f<>~o z^p&(8+-;lwoWEcGL8u}%M4~niNbh``mVSRQ&HB-y4i(5#+e@E)ECX1N{$u1+KZ_r9 zp<^X-QlserI$g9)fJ*js^CW9R^SbRwDdR7t4RDOybje_vaQ-ElfeR~-GU&pqO4vvm zAfR=^X&0$9VSxM|>+OY%gD|yU+qqDkRP`@&H~tru;T&G~XsU1eCXd9FjTml3;emzO zdl!rx(v|@4TTlf*l~p%}3~spAfj{d$!=HvJbqb-QV}!`SXw|I|?69QMLNQ#eiGc`P zaC@r+%+~np6o9T{o&mh}s_FEtxaVIV5E8L+N%Tq0&*F+sx5Q5F(3TW-PsDj_{6CJ) z#F6R8|KpzyU9L)zBPvCG+}B*ox{$&?4HZ$J$k|3T_eRXH zat*`S$T@S3*?vC1KjMA7Ua#l#@vv6#n07kPB7i%S!5Y!XT>7I!i!M^R6os=(ef%-S zALV&P4&Xeu1Bp`evkZ_~Lc$t6&DOKB`g%>O?iPajV;UX83@u7${gYRGuQT82FkXI# z@R9hVyTD;tkb+AnFp$?5{gdl1m+7Bol*h0mLosc2AM&QmKwr;91?~ZIm^IDHY;f+a zKAOj4%q)-{yNa#*Y1)sxXOPKHsylJ7Ni6SCT-yiUY?5DBq@L6|Z?xPggaUBolallK zQ^a4I6AhU3_gs5mV4Q*JCX{j}WlDFsu2^@rSC70gG3!5G)1xuBsOK~x$h_(nJaClhd2Ta?b(sbv-2eOl1))$Pgq|0$g-&$Ls5-}Nz&;w z>6}G#Rc4i8?(F8e_q>%?YS7MkejacsZW)lV3gph=aw-Q&X8XERV8r#G6V^w6n@#@( zUcNep(72{gdp32o6g2%aRyyXM)yyv=&6C;^d1uw>{LrUWP63^s-I_TLJui?(-8&*& zGx$NfkZ)sV3iz!f)RI%w)@w?F8-$@sWT-As6V0~ADDM*xFF;WgQTRTln{*);c6q3= z&ivT&XGJe$XJI1^f+8T5$qH-QxpJhr>W-UQgiooMKU;i(8?VA4>nkTy<^1#<=@f$i zoIi&S;d}Rd?}mPvK`66)u4fDJmR|N+IF=t>=bxcPU#sSKKj3zNJxQ?MlAif@jJY=` zq$>5VtzUo)U%16GzOi4_y^Cq^jM@uz>e18fQ_g)OK{plSB6rr}_K@+e%?9&>`0ov^ z{?OdkuY%5K`7cefnoN$zp^U*1WjCj~16Jd9co26({*HX`l_!*s@2Knx`jcxOf39hL zH5f&x%9mY1YAuvsIx^(sS>O;!J;zsMr*Sqed4RJjCGPz!IUfHh@7Ml62Y8;lP6^8w zjL1HsV;Fnfb`z)4LEM?gOt#B|*i)X^e(?=tHItvuet_^jI>C57N%Amk5M2t(Bx_aM z`eEhXTn+i?p6Xu}xEx;|2k3gH$1^A%*fnDcQhCyL^=B8aKPZ-(uW;vr8uy@fupBY! z?yE}d@5x6lD5cENU4JrR+g`gWW(>Iqq?iI{9%3I@rG*BXrH223R-P95cb*a6-6;6s zB&#g`@edKkJCWkFuV=9Bl^)xx?&E_&&=j6(UNj>Kmcmt8q&vkAA2T5JIOgpjjPB`y zwg&0$qCcggKT}}w3i!*MJqTgAkiOV)leBB%;p5MebIs`D*1~;3%`DOK^Mn~g*&zb6 zX04Xj8MXN5#iPLuB4Un({r1SI%PAL@>?IW9MZX|9V#1_DlsOO83~6Q zNUJ;>P>0QllD@LlDe*lGPbs&#%)YO{Euy7{qDGqp@KBJGqo&655vkq~z&^s8yqGtT zng2D%j%A9&DE4RU7sClCV_?a<@M|ccza z`W;I=4BOz?zVR57Thv_M96*iA6$kqF3AF3H@ilSj^k%j*yIbBN7oX?E40~a0>}~*mC5CrWxIC{qaetAO% z1q1Ax)>wECvK$;R-7t?a(q1NzI8I;pSXy5ma*(&v9y?O1{h@}fiTZKQpdRFyiyU{z zb-j18Lx;*J@0>?JFB7c&GG1)D>9M(@!mhr%5(FHactF`}JCrMFf<@|Z56z8T#e3g& z+<4=}xU*0gRF!&daZPXSH*Mg=Gy_2=VImY@iG6DYNU1M2i( zfOA5FGvNGWex=@cFp?4Bn&B!1HP7EN1!~uesmz*HXPnB^<5jedR|>dIiWAm&{HR!5 zbV|3n>B@DR4Sgf4R*OXi*M5VT<&D0A+T+qivM*A;`Iv{>8@pJ zQDomAQ*OD57>g)-IDc15536gJBO1EdvZ!$U0h?NJko(_(K@B8m2dn-^5VtkA!_$TJ z>fGdDQXyDaKeGlXTvZ1<%)TA{X8wW+SdUMb2}D6xazkL@kA9c7hgY^Ts=w59A}JS0 z`+_PHwSbOfK^QvrDzmbr%DGGc;SUH|OF+R*QS_QC6?GiYP?0)z{FmP+{9z=PbQ_v9 z_6%=l(?vQP>LM>a!Ov`A0z;nX(%F)dBlq;`a{kJ;5fP#1BN&j;K^{GUx$Sx>WNdO>gFzwfpR6(e zU8OT9LuOFqciLL4AIE1oM)ll(-A1ojijkJ{E9d5Em8XvR`O}nmG2p8cr6gKhpR}vMH122Rkf+y%BK8yniaVovpBV~0CudN?6 z(+uP@+l^*-vvGm#5;ej#Y|@g>V>uPKC27^+M^x8hKXfp4yN^U(HIa?HshTH|DQdZB zO+KcGynJQ@!Np7mTRu3-eL;$Z>>#Zc_Sz%fZb*@b-(MAe-qLO`q^PNv@sDGEqd`^}&ZE)1=Kao;U!^90tY*(=9m6Qsid7S{P?FhJ)w5(o`|z3eOJlAFU4CvX-xJh3(R- z8y~SuQ%8PTF%fUrJdpp9#brh_`wg()gij;!NaV7)83PV8c*Qq#w;WB2Cln>sC=Vg} z9yd3YMY%BSezL6oUa1E0)+~y?X-F>T031Z$K4eq*Dk+v~W9Z4>i>ud*l6>ph3>IH# zl%B7TXWGQ_kdCbb4dBfoaSQoJkZ9*PixM(G+YI)iShUCr{y4Qcg!wIS?9jY^Gbs7% z`bxfZs@|_3a>L2>t{(J=qFYu#j^7ra_r*`dgy(UH4AO( ztU2a!cknqbAs+ENTh;)hX+AU>iB7y&P}8X4krcEE;{LSMsd-&;A+jyg2Fl?wn=KSBJop*mVZMSl2ZY}E{fBDqz8g96u9zbSm_1pV=h z1v_(+w_hZ33K){WrX{rI=wWeq@ywN*y|j#ETj3)2_KA%2z16ahK0KHXSe6!7pDGX; zWEJHOg}+pQnN}eh$0Xte(`-zi^rL5G&LLjBuDWk9oPR+~tGfKn2g5w%s`H6SxcrSh zK@`Vb`lJr5EHhWp4rNYhMJ0mUFPiy>s`obMq-jG1k&oRPaP_(&djSYfgW?&Jc`Dho z>b53qkM`HdBM+5AJL6s~#amncOvNy*+EOS>UEn|Gqm-t)(N7AEm2V;Gno{ zfF3Vr5yti0TmsFI98vDG&k|3?WVw<86Ve=NFL~B|cv2;iYa|_k_S4F|X4BZLCm9%L z!S+&xN@!F4*WcF{s;GbiErETW`_w>Rh$W|AsHfzFKShY-;fkir$lf4S$u~kgkAd9T zcDV=csk((3o~yKTMHf#gD34iGHp&zyrN|U+{Fnl3<{lZP?BN4=&uL^rkUKV~CRBO8 zco#;Mr5yZ5IEEN5hA+)$u{>w1!Z2R-XFZa!}EE@5&Xtr`#o3 zcG~c}RGRQt*P@oMx#BgP?JS!m^C_4A9KKogSD#eeHa>0eoy+T4xI)5$#U4f~gjUA9 za$y4|v7c?TK{2hpVi+;!89wIF7)%z}46TK1ja^mxdK4RP6PG9X{?TjxUy?rWSeVOJ5owIgvA9Zz$L8`MK$HUaVR=eL;%MZ10>&NX zno$=!^0;ZQ73LY~a4>KMSv;qt zv@%XtVWP$|EyNtW`Tcy$PV_a=49{A_W(|&Gtfi=Y6^T+=%daF|&S~$%c#9;A;Pm-w{57 z1_}>GC6CJK+~W>YH`%NicHPA=Q*^eDGn}ac!>}VhBuD0L&p66qebjqB-1ijr z6sgOikrd*hACU@waacp{;l4{6@EF>}nep1xj2eIq|IpDrH{?Rb_NgjtI2=)_vs0#4 zwT5Eonc6bhSCssaoznG|GF?jt6IbBaKeslxXFu>Ru(QeKphw9|ivPem!|cN|t^Y+HMr%usPQ~WS)Kc)T@EsZ{cGbVAY#=4j_Hhyl*S}+5C0c(bInN?kgapu@4e3B z$_I}~GDYBEFpLBWHE5Wqk1Cw^N_>yTA<^!^S-w1&h)Y{7JQw%9fmR-an^1#$O?t;! zG~{^kL3DAaPS#{lqH;?zox^8(#%g-Jx$GL&c%iCiF@(pFOj&CT<^>t~ZTyrpDtx)* zjH)c9Z}_oWVu8U1uQnOpd5=f}Tk?sP?Faw7lJfR%VaApEbwG6+U`RjHz?Jfg=?zx7 zh_mQIHDi`h>9&mIHSISH(@GB zS)X|dviwq)pWGbW`ToRKtR7t82R$fz2CoA)i7HGpGsPpZWiw~CWvAv&{A2~^W?+(t z3RVMpC+-F$CpB44WRd%9x!QAAqwti(%9XdAi@u)dL28ws)y`@;M<1V*Z_A60gznka z3zV%t%KZ>j>9p-3n(|QHNsvTuZzM!-B$(#;dI(p3=`9%#K9BG3-=6q3?u;q2>buWw z77_4K?eM$~)RqsR88{dR`}PeG&9-A87&oG!_@TMqb(5JTAmp8t`q%!ORV?NS_Tr;Z z_V1VRB}Cs7MFaMuNS$_3vg}SiB;u$ZcdI2aWKMl_BK)t-(T%{m?sWxe@@^(dWo`oa1t+|_q(O5$N^H5eH>Cs6W$$dcp2$+#E2g_ZAi25O(( z__e7oFA8Go!PZ^<{V57NKjv*^3srH?eVfiU0eKOO7-GPbTh&&)B(6|fWh6m_Ll<`C z%%!vv3MB0CD11uE9e!mFi1rnHSO9#Y=&)hMUeTc z*xHzxj9Wf#oO4|($5nA6U8oDDM0WKQvLf^5MdoYsE$lEc02NFVBOBFJIgAx@`_u3i zGjC8){~_TF_=idEFLllQ=Tu}@>nBp-qsj;>NBcR+`xj?xKIMYx&u1b$ zx*XJo;PI&2dQXNz-aNhLgoJl72N&YljYM-54hN{v( z+^;-Nzgjovifa5O=ok9Ct>^54Vvi@wa&{qDp-1Syp%3%TOU8%h`o+?8L@BK&beKr~ zu=ubHV4;&I|HUkN)7l@U6}{QBuQM7m$H>-uXts=U{Ss_2c1$_bQfk2iBbZ_;2iA+X z7wZKHH96_T@VH7?!^$Mn0?|u#;;Tr@@K~rcv4elHrYg6_Q4~uZ$b{@oSYIj-v`H5M zzE0^busJ9qZ|b69xKz+aut9C(clBDWNFv#_%SLV74b_Z@?e8*;3LRZO&%elxG>rY< z>ujO_>+%O_-(!oJ=>+J$rnse(zJa?kb~WxwIAoB#d-*syDd-T!)(e=y^YI|zZo`r8 zJQA&E35I=VeuEL()GRaqRdiTJy4pOZFQc827{0G+te&^@_kfAW?OS@P=?TZZa%BR2 z{+z}5ho|i}R>YM4tGhXSsnwGpfhkQwV{zY@vn5K?ZrG%mI5KfX9Wr`d z(wZeomd?~V_x4Nbts%W$t_*PI@}4<`zcE^8acMK0km8Om{pHayrlvIt+RoWDa(%#0Aqk<1@?A)-EYG(LS0YZb6t)WP2}p9 z-4{GF;!|Ow@XWM6Sd~;Wjf_>>me^wCR^U?03`vVFJA&gwQN{vmbbdw>r0^|jA86~u z)>i;vDXODHpx}Pr!><0()9>^QE9d@sC*sCY(JhZ{`x0aMcTo!V0WWj>92J^rtbrWg z>AEkxLEvfZPS%t?JgLt9DKF>z&qH26YI)+>4sA+?A4A9&O%h=FJVP!%ww9Ba%pDwyF!rNzTHH$f>3EONNUhfk8$Q#gLXR1F!l!XNglbl9I`l=`)W z&<6roz~;gi8U+7E>_{l#$PT$=ej*zYBzEB2^#8v_`(sYkNORkDk0({m@m+ zJ*((;O!GkN<+GowEf2~)+x%g)9eJr5eMU?jAp1D@Tp94F9{B-)#d2 zmjLZmbHu=k!qG}ITeT@G*k#HCK<9ol|8S|-aQEk=jp@uwnZ*5oKO^!^j>OB+Ar4~AN1#v|2BBA%MVv<({QT{;gy^ z*jGPs*M2Vqlx^a2uQCl$<^`FL;rF^rg7%#Kv+}G61cT_Eo1j&5<&r z^c`&^6(r_^>PK#D<*RK^D;s1P*B;TNj+ekI7w6pq%o}0Jk1GY~IK6s{U^8Zo90ry< zU+v49`&ZzY>kn#z2?vGq`$&S9@i+NKRv3TP3DoOE___Lg5GAj!(#pieROukQy!)Cn zO%3VB-+?W-3l08hjZE5;=_71;cX#aJZlm4d*WJy0-ka3(m$n5CO+Zte)=qry(QWv6 zRvP{_J_3s0Z3?M2ye`IoD?fx_l&y{A>0mQ}-~Q8Ul}#Rs4R_Q?8haSTWXR>W+d18N zOBOU5OMn`G!-*>l^gMb=Db)IH9rnj$@(#;BLtNl{)4kM(BxM$l%>R=nZ$;MCpj)0v_R3q6{9Sp%w)k5%XrS(3YI4y2K~ zhltgG5u?u#ra#Z;09TC$+9dy&!C1W5<&`ruUV<k78xFkP)V6_I!K zVR3Y-q=&ZU^3Es{v9HPvD{+QnNApw9SQ_2zK?UAFoYLK3?jrTBxXqtG1c-dN5;W=6 zVgAC1&MZs{N?g^(9C-K{}2Mjr^BhvqO-9k#WN6d?SZK z7zPV*|HXl`ukUA8O1hr?aHkdgszM^Q??h^5n~Co$zE_3g2EbX)!CB_H{V4z%|BSc( zb{tBJdBbu)ApAV^1aXn~(fp$vaJJ>bVc^JtqcgVV!PXpyt~VaY-iX~TcldV(IK?mN zFN>sED*lpsh2Y${j5xgrn^ZMedF`Mg0>VpzxCu{#lwf*#YKvi&xM0IWCE87C0F07a zRtV{gXFh(zNlYjp*VPqwSwx{b4_@UPCCdi79`-uLpWy!*ij!eK1eOXz!cwhenN+l} zQv)C_Qh5>KEfqU2r{ z<(GWd6g#7o%7(OwyYAZKyEP+yEh};-(ORPh8ij3dNI~EuddsxT>AR?A?~j2}y6yv9 z(9~t-xK2RdI4xzb%=RusAW7x+C`XZfBV+{qg?-kyww1TkAz{B>`NKC!Qcikb6sMhD z-S$&dSSmOKm<9P7l^lQFDMz^{PsvVl592igO~rc>S-8;&#%Orft z&yBt!o*7H0uL>Q986w&|&YrWctjEhHf$;p5Z`!>BV!qk@FXbcGZzhhs(b;ld&rKhI z;|<}!QK46`jq@DXm0dU9I6F&~P!N+G&HD}$XJ8fQx?Dk9DI5huD-5AEviUR})q&A6 z%+BD+DPMd(A|xXQCtEN*-YSnKe3V=3 zq#^A6+|Zfg`{xf^y)5!R!pc&=m$4mQ6QE^s99LBOh|#{ zPo`8~{RKUCaM9~amxb5!Bj5gIYjsp!VLT?V?z3$A$c3@JDe~3%_%Qu~W+~50>E4!x*Fcl4)-;e*)2X?CH8XKz+TeY@Q?`l-cToqKOMa-LPgmtdK zTlyc{jC_LvET;?>{`L;h7wH~FkSV6US2o-C^IwKXFYgC~fBZ8L5)#vgOapV2#d%A{ z(K|?K&?8Ml&&v%J#^B<-!jH!*+VE%FN=~$7PMe;&jpdx<-mvGZs~PT33?rnVo@*>W z=lUhFRD(Q@qqN(6BV0JLi~RKa^8R)TkVhhBxUg7j`GV;0l>GoBK*%A-lIFBHoyY^u@uvwvZG3S==4~7tbHm+#+pPNY2g4jrazGbF$O@ zpYmnmtHzpb<;*h5-ThQn+Yqr<@vRGN?wh)=VL5(4X7q#~o+$H;xN4w1duPYtg&5*1u52kF!b@+WBiy!+Ic)D8`W)wb{udcl;OI)JL@=hV`;5aJSI~Kre)YcVy=<`I z0?fVHu?Y{UIexBHQU30y2sg7r=QQgNc@A$WyKjfwNYkQj59?q);V<0&s1`Z?0Px;Y zqRAmWutq1Hjgr((e2ncV$U@+)FI$x|M6qPvx3jiHm(=5CfQ%&gPIZjatjulUwJLapG+ zkmbz!Lep3SL@9Zp%mBRI3x*n>bnL$Qxbe zqWDjg>BzMF?Krj>7gnD1*qU|RqwC74N2Jz(EuEilj6+2IuffKm?~%n*S1jSe0ySf} zhsV0G1E~n+=SEdiCJg9PezkDX*Tyl#*7+?tY^7uU-+G3$xuA;!8^2NgoYn6c8?JQD zZUs|n%Q{w9yhf^z60Q`1qW(kevX(j~mGQnXR(F7TPvo++6{g4pKZ-6?p5o_5;@!95 z2ova*4SjG4h7ldgbI`-JO64GGPa%p0S}Ve^pwn!$BB4b*a6dOGmzB@4wa0p~CCwXfb# z8RX4(+UsP;&XOf<(V?=4Bk z#kFan0Gqg%xqJ1QrCRn^i~BOH>V}P>8Fr*!;IFu|iIYa4z8Leq+>h6y-bIlLMlim7 zMQA((m<;05qvccG-b}#WUl{#(iPO^my?w$Zpo4iEk`Miru*3lR^>kR*cQ>6h;g5G6 zBd5k#=2us0ZEx7uqW1wjq)b@DY3aLJXduRu8|f7DTOO(jy81w}OS_@24$TjL^wSu) z&X@m8(xu#v*z-l8z|`ix7xg+GU{?63T8lzQr(>e7PdZroe0}>2OhGxSYO0~nWtuxD zDvrO6x|I0nrBjuI-g&2M20QQSd1|WyHDzw8Anyk671EEu@0~s*Xvn-Y-1}*d&SC}q zj1|WcRG_Zkes#zNT5$ZGc^@Vz>g4{y9&W+nnkRbVXq3qup-60;;xgws{+wFP&M=fs zep3#68_EiQct4&J$2IrgfG8un8|;jjewUmlbm_RdV@$EJJPB%bOJ2M5M3ykQnUzA;M?48< z(K@vMyC{J$8_jCuMgpnV5FAL3sovZXFvB$V6>9D#UXX+qCff5t$&InyR#R^sg**PE{Z zzWm6EUeqK}F$1nX;0Z?$a5{K$u*LUrFNe~XzCR85@Uo(e|B#)Hvrw$(whd?%m7ip- zz!@nVl$~TEIIUGXeY@fiBPu)kW>SEh`?Vc4!ZhSC9O-MNX-`S`9`^RcKjAt7v}nB* zojoF1R#b6vC3wfJ0$Mdl^0MSI5nI ziSE`Ddav`pkUu`OLdQrXKDzK?D*0bG^lMd3tv4x<{~anP*+DR>?HQfQK|EP{; zU3Ha~jf7hDlnn2ioj3rW3QJ2;)2q9x!1|xEdup`yD>ylIb86xiI_FVKqTKR@dQ;_h zrTHnmlLuoUBT#-7vQP16vUrE8S7$`4%gHc5IUcO%cc6Y6=@#-*#YJZ7*Ihh^W`2 zI?c37dPp+SLc4%CV)gzUq*-fuxmj%^jolYH;dmc?SWQ`arFGnECB}Gg-+)WZEB=zo z_))dZQxtIX87YPMOojXYb$vrn%6I7SK=Evq9haRfi%m;ct7o`X1q%b~425#;b4&`y zxx@S*%i;zmI5|{&O+hI%R}bu!n=X7SutyosJ`)HhH9?WW-yYk)*;_2J$aR;V{=BPQ zA|g1_jqwG?GSGAU{*5>DuZe(*e>@@5R7~>|kB0TJ!D1$&8D?QsB8c4=UCAvm5#@{_ zbEPxl#ZP!clca5KbzcPgEmE4lp(~>qWoa^zy6Asbs91&E;d+9AHv5O=>s-4F%Bg{q zrjjoyu@L4&`>P;ov!|b1GU;vDmop^S#H<6E!J4HM1}dajFwOjT=*qdW>5Y-OvVi}& zdP3uE6_-`Ued-V+1g)7774{Rt+Z0&5pILfTZ2y=sFexbZDiGiT;5J`Fx)Q!2sz@8L zHnqHJ*VGll^OcdP@b8lw*2zcCi8nq4T>yiQ8Sx+yjH+K~f|)0$UWoRWJ;> zmlffYS`^c)wd&ya=7E*Ak3nCYn6_?)z2@(>bdWZhLsjq$aa+k~{ik`!@h|yZdswKC zd8=rbjh`bBnz%5UVoKIfKnRnqYSQ-qDjAb|{OrjqUDsQlN|Kk~DDxg&PJMjMygV)M zSMxFDD|;ef)t|-)UF2tQZJ*%A-SUw)Sc-0(h~NZ(h^U}&5?@*lZ!=#g_6BVx-tA15 zn#r%bnL{J303N#_y|4zqjc>~|R`$pZI{R7W(5HPx_Z5T}& z@xyE#*gQ?uWtt0o2fx1?^a&Qp6-Gk03&G*#Wyg&_X%z|Z^?WL1xL@EPs=N-v`xFyl zO5k39H)$h?iqS}0vyB#4GdW$d-qq@1wVF&TV$+dwOyMzpB-F8KRnTWINi`nv6b6vU znlh6U*XEGAbJ05iYdAcAyS9F-minJF8Qx+u`-Bsg1UEav#ld~*ZTNTczbd6~nUG)0 z%r@HDXu1`eXONk5MlM#q!t*$e>w((As;w&GjF0k@W#5)&wi4YG6w(CYD=T-w+-FTA zZ`Phlq7~&W{Y1=`M-3lbG*$M$lB0z?I20Co?U`Lo&SIZS=+SC76bu`4nUbjAmGsHdVEFjvk?L^wkKOKtz{_)K9qgQr^xUAXqx7f_i*REedz?gcPC#i zWqtXD*}!;KytD?+wE3K_=KhE{bzU8F@s+%;U&21Ug0CCZ=IR}TA!fN2j~>pY|Ix!K$>H$OdGviQVa-LrPA+c2f0TUR3n> zg0Y^EY19x(Xx}aAikC@?UkZPs5)c2_!T+^8#Tqj~H89U8pIJQ7UOu1x`xxHQ;HM;n zBDyvo@Ok zhQIVN@D_2W)ZLc$molyZ*WRX6P5%L3A+3_8)QGF$Pfo7BHK2;7>;!wKT7=!0j8J{4 zTuAhCVe4ms6#NsiGtf1tMoHlq&~fCE$~)CUb5W*kNjLWy7*kui1tmXYyV#fI;Ka}K z5_JNJzO#KA@P%#w`~-g5DE3KWV_`py?9EPDP2Tj%a@XMu(hWmA{yg8lU3o805}Piu z9m3}ejm=tGEfh1AWp{TVox+piXkQ&>$gO-I-feY^O5 zYk@tBHE+Y+{S3GpsNMX&@BSVHh>ji%s42BPju>MeubW3N$=+^B&JYxO2KPZF`#6 zYDzxcP(G`|U{H$6nxA=0c6^{8o4MV92j@-!SToJcJ1TUSCXhICHYmiQQunq@5h?3- zf_u88eoJD#({sGl)f7qen>`-CF5|h5z}^Y2*3teta}(prcY^_^KOn4qYAT9>iZ=8F9&Y*T0IM}k<95O|_uV=LN}Ww=wj zzmC#ws0rXi0-~=~>!g$4oUuUK44vQ^jyTBwijBvqNgf^4SLM}CeV(+OS$QBS(6Fao zl;2|)#L1sG$r*EdlSut%2hFj2SNv)2MLUqC z5K=B6a!DA!{=_FbqyHCZYaXZu=+pzaZbD1RwOrv)K49S9&DI zRUhCnCSmtlwdwmI??!|q@i|?jeM5gRWNdljO&yy+9*JGy<2L|VRcEBR6}m@*wU&r} zvruSexaQ8Xq}P_I{ioo8VEm7_JZ z(6)plNen4C#S1{lw60?xwNvJVUS4r^@A9TTXmg8=-aqNkaV8+kO z%8Lo*><03em`FLgla!&ZIkoyt;w>F==>AWSvV?48-R)0dNmy)o$iPG(u6*8LGgL7%TQ~BES5-CJX5^jJ=Z+TKMzybs zSC4|m{_xX80iLs1*t6bS`n{A#94@@Y-BVezO3@jO-iFQv@~{%pUg z!67F*ZP=wnlO}00BJj|)?+;qW4QBVJ4A$UfW?yn20@s{p$4}-PtDTS5edy9Kq|$xo zp9-u=O+03~lj!9JOz>r58S&@+Q;@Ic%>%)-c4Le&IY;GKbUk_PuYSTKmr6x`MDq`t z^$F=xn|jFvp#RpApufLgU1Ze-?Uw>rIZ}wp2)u9#Xb*?%GWjN3z*=K|e?|Y%wZt9p7GU z#zOnaNBK@31~N+^WZFRO`m;oZ;x~4a5ASE%FmEI#6uJFe4kxEu?a`CG-s|Oh8Y6@~ z(7*uw(B@qdpE}!_WrK9mJwASitb>3elGwzPPj!d}rl&pJQd6vY%+820l{AE`<$caKU$YY|)T4fl%Dg-uTodEsJYa!A$ zx>zfZ*a?xmR~XB+ym7@ddUDJyWbYN)jmR-ovz%y)ddb9cI?Kisi`Cew930d=X6IQnLp5fcTZ)nrxEg z_llm;CBjj zJ#7B-b{0Tn6NFW~yBXQI)5cXN>S}I;YUav$j($%sCthZP^JgcI*|7>OTePSf4%=Z~ z&%-CboJ!_$Dq%F^O7YE_SKE&d?934ugz8pyvZh-|NO^e=bf_*sUyWp~7Ztn|Afh30 zYC5T#C%C~eJsXo|5fT*}@{dt(zY4ll=#}%!p|4gtV3k=J$j7!|AKStBedGhNaiFcI zGaw{!pk=QSaK*7XaM)Z-PsX_SkCnnrCn#dP{#ROwYv*iDANxpHwX{ zu_yP;cbqgriq@y@x2^>}uMu2QIKSbbW=j2Z)uC&+W^VOTHVX^0$X6)GHOSIR0`jcZ za$4a0l0b(DBC74#X{49ObHuIgvgz8Pn!<>l-+dtN4s1iV&#McPl?^Z29gqkvFsKhS z5{`N*k!Z5ejl(jLep^1#3Q3<6gVW&6(aoQaA3oWS7l&XcGlQLT`-A=+o8VF^&M)}; zkh~vtAPhF&#PEyz^j@s}RXlnmBY0kis3HkPMhg>_e)7W9xzLDZE8W-aN{( zpL0WOlOTpyz@vt0oGe#AmQJa>ai}~^q*0XsklB~(&!6-z%2~OJOY>r=Uw(!`uXWPj z4yt_0+39;mB&Sh3%Wzj1X@F{nNZ?}N_#Z3B|Ctqz55E4a(=((}5Xe-b@}nvDcPR7E ze=a%3^ifhdyLopY6K{AsC``W}XGQkQIfpIn#@(vkYPlsvZ&r;3oS?n;N!k-8;x?`c zyPmxUYHG6|=H!={es{?O_^~Aee@tk4@z>uWEg;Y|6KsY z{2pJ~&F9v=ue!IFjvUNdpE*+v4P$a(PlD5(7)8haz8!X>F?PvW7{;Eik3`&;C z^+#j^;OOf&DTDQ{s!6;RJLvnK>R^lRqs~-*A>6@sj(=WFRdbY3Kc(%edZqSU>5$I% zm>tC;U%3zw!0Wa$#ymIM6uuP`?X!j1bkFw`q?x<9%n@BaHz6Qw{L4%%v(RHwYc+ct z@O|D171P9$j^2qaoEBC2bHXX>tEpNhPr95th7k$;y|NQDBqva$xsXYQVJZ8YrsDoy zW1*lM%xIzwcci=}hZPU2<%!!^R+X(bR0AqRRJiza!0nRy!peFTlF_o!v+^OCH$VU- z*EA!WF<`Zhpv2gSF%t5gRVI63J0lXePa&0P8 zTCDZ`D=Nf#u`=frj<5Z<(rcNgbxL?qU3Mq&_{wxaDdCjD{kfYeS*M<;O2$DlPn4VQ zLOdN+si1!o&?MJK2*Yo^_VwAw`a0BY5Z=kDxXspe(DI|Z>vWn@=EuuMkdMF|V}`PcS>`G+k=K#~;ti^U$LM+xnhaTnzd z{mf|JJ)UVxsJ)mMSLcgdhCG07wz7zDJ<+_YQn9hese?Mt?JoNE`Vw@m(%&NN8$N+l z!00w3_g}okJua0g0h@#mzpL5^?CTLq9%U^GH_AYgis)cht$0UXa5xLWePD%lAE^Q& zX%aT0hV2QfPMR;kWIH2|;>%fS(b{z;qVG%W-OwjC$EM0=EV)E04oKh~2)>QwGeLq#EahfXDB>qZ2Z-bimH(`L z=&JI*Gg4c)V`mh+>c5JgyYAm*3(j`P_5Q-0$SipW5lvRFlE%AzY@M;OEex7PptvD& zxK!}3h7%T{YdvC;q7*%RJ%2TGX@eE=;wIx{S2OaLEtmD&VcR$NEqsC4QNHx&zmxcr zeeSPH(i^MB-i}O=LoSb+s=l`AAezh$+_4;_YdB%xX0CKc)PtQ5>Y%5|cHnmL{uU&D z{Z*c(JG6}9f`->K4fw<<-`p>)ALPJ}zyNZ*{CST7eBYt}t|8>TT7$=+7OmG}mjk5MW`QoRE3$d81hauR(cj zwz0zhHViH{CM1IS-QS_k+J~7bmGugD(ecN(OjVg&`1T8s!nmt`%2y8Fa!KWX_s_GR z8H*i*uO2n-|E3|7+usRL+D|!n>c{X;%YU=XX z+L2LdZuJ$BvB%q*`%sRi1aJuQs$)lFl`@qp%UaGx^6IsnZ@XvZSys>QF}-h^cZqfV zzA?)(uTG`eYJ`^c^)akf(^!NQu338WvOkDJUo(Ak5>W(oQ0DT5 z6eNbfJ9jmuii6)yhD;7(mFv3)bya+Y#5Ngk^>LO)NPs$Jv&zc7o_V@;1v zyx*o7dko}v;kofA>lAUf_xh`5Dcl$ScV6Tt$bm7X3U@5r;Ucm?HrMDR4Pd`NB~Rqa zbzE8m^fJOaF`@Yvx5b%|d&0?K&FUgQE5se9nu`<3J$`8y8hA2bVeQ z0XK-zoUlH>az>1n7{ETq>0eg&l$R?^yCs0$vr~RuHxaP^yF>)z(eLbhS&aKYq4@Kk zg=?B@M%{~dxXJY@?Q2kM3px-*4M#Ia6)%%BHGXQW5RPSYU5-+GULh^A4r-@J zce%BFe{l^pJaS11aMH4;^7wRhD$h(r48|oma^#*rsFE6~@lLm@Jg}K37UYo-_uu>< zN9W?tbpQYVPErY#GMYnC)a4wR<8-)6idI*jD@0Ut%x31eF_UxUoO0S&2T@l!vk{r| za+qOq8ivhAjx&di;kWPaU)bKa*ZcK;J|B@=?cj5c_lWw(nK;A;*vg&{?%G|>Vh$+lX4r9+HoDtqYy@^#zsOT)cl$D^A@|mY zc)0I9wWW96sF%3AoS)1$Z5VevNdSk(4b0fA>T@rFX!LqR z5Q}Xjzwt7_@43Y1o^bAW~J3g1}i?`MAK(kwW2&L z>{;WEo0e*K^P4x1D+!O<$e+Jv?GK%L!&|q`jux0iJi*+?v3jNDW1S3I&69qHC4{E) zo$_wrzmU4&kXqJ75cU^6qfr0uvU8hbA&e`sdpzQI&UFU&ssegI*en28i0!t4$>Uy^ ze5uwq$RnHj;g1r-(X%OT-n$Tynk73IZ8K`RA$WUnJe=1GND&t;cd@ml*;4=Gee3sb zy7g)4j4yC^R4raKK4DbTV~=0`cKMI{PVMDtX}!K4j^FOVx&D+(oz>|-J?pk_MWN29icerKXOo$>Cy?W@8TazrkLo}pGJ&!K{ut6HS0Xhchk?N_8zwV z`UhxwqA5Qip~O3I01k>vPtb7~{qSLJ_+-*m&3yYT#fE>rx=>=fJQL-CDo1@IyXT>67>S-aqdBJx`9C73>F{3fVI|3k5@ zUmko#4qq{Yn^<66#TyaX(ba@#(l7Tn<)V6>6D-^v(AF@0J|c85Axikeir$&ZM6ClnwJQdkZx>PPG6 zoBaHf1JjGw2^3}ZXM^ktD2z_h&{{n4T%x!ouB$coh2wldS?TbJeE`dL=EHN9gu|mm z6oMpRJ8KohP;d|`a_R38QT!y^VdiXizbxZwvlt_hEF@a#tv*^j1%5>CBJ~anlslq~ zhVgn6}};*iC1guF@tI&+zL3=*Jy+sC-~NO4BG zxE6bEx7oUFha>p~rvqM5pji9n5y0`~nkrp}{9*r-tR`0C@%-FYSML7CT!4L7%FKrZ z7;(cGaip>=2yn{v&ioxK?zVKq+<~C@SWwdhs_hQH-|RPrFzr9pnv0#U5IU@bTz^^7 zy9QSCw@F=2%!4IKXK5EhnqkWe_CY_ z5Vrjb{S`xAwUYZjNqikVaSO=m8>DmvZWua~3R*%=60TL!jq{AI(92Cb?a-(5fDv~^ z&qY2KA$~l}!-szc=H}46{u35h(1??{#Al5Str45dq`q>b+GKzX2PjhpVE#!fyErlZ zM{ocxzih%hygQNpZQS{bgseDC8uF#5TR1O9Rj(5~>RUdb2kq!#a~D$(>#(0*t=G-R zj48p1&}w~F6VqY}IR)J5i9e{KyxTr_j6hWI36u+AHASTc)z4m{AT1DcUA|_UJtvnO zP*c2;XqC<5oQrvikU2mE=|&}7eZ?E28R77fg`9g2C2gyR+`0*H$e)C_ux*|o7l}A6 zzXz#hv&$b>{H>}iUM3BR+d1_*1C+e}FGyq|}SNa$UsG&b^bEuOO= zykT&Lg#T8`5G=4AKq6w=&{LxBg-NO;%zVlw6HX5-jnM6`efcgyrLNQt_}u^SPCt*PbaK$j zZ3svq&U4!*aA>hu5Zu=oSHfT6$eqR)>?a0Ixr?^pCPf5zYLaO#*Oxa+WDA|lspR%I zeAHlg+hr?M)E!q=lxomK_5s(+2hHyi55J6a%XfP5vabh;1aEwP-&eOsBX7yu>D~%l z(f;7z#0j#T?}rqU`H#|?M#L^8vL%_xa%PXsV1FF)`(H;o=8K-tW5T;uW+u=$s|YR? znWQ^q9sR8QDr0C~>u{PFXye`7Y;3ZN4*NHFysSDi7p3D33YX?q{!-_^QPH&^-B5sA zQj}q@q}JX`G#I(GYGQ>RQB6F%l3Q{i7mtHFEm^qSW5wPZpzzdPxs2UfS0CvNgl5OC zMnXoZ0zkJ#5#wl!x>Zft*txhi;hr9&`RIDnO z=oLyfa_B~rR?{!^`t6i5Q)U{{mtL@BpsLKY)!Wu^cXOt4b>cr3eb!t0?$>KzX8V)K zWLk~;?exG1Y>U+GFIGCbX~s=uD(NAxWY?WkS|ryL1;zw0Fqfqm-p#uw#gw8i z6x}^+)N;8MBDjAwskJCEfmZ2KRbvAYuxd>%g=`um6Nd<h$A3jjKsZ8|s)L=NKeR zeMyAVfAlnZ=M}|7HU+md`IGByUM^iR?4A6egt1xNy4@DP4p(UDB=ZUSUK@5H)UDt| z!KHDKDu-7mleHxUmjqm&GMJt^ohL@+L3IV`a z{W8n?nk@^A=wf;7=WP5QZTrwp8V-)$RbjHgM3$9DavNzN1lMc^x9W!xe*=m+Re44~ z+S5feh0dRoL9vvtCDXlr6;`7n@u_LSD!@VigOi8D->A`bVsER3ik>XHM1TC?r}GSKazBVrcsP*e1$T|pMTAREP%zc^e3hfpv6MdqZPCJDL;nq zT6TvUqjYl!ZRJ(YoV%Z#E$b&Ig+zrkFhgOdaMwUacbxgTWU|$yixY&PAKv0&%-6vx zs$4am{euQE2?@I{_`iCmpivgPyk<&~Y%0T?maeZ(TMEYTAKP;u`2_M&bId2c#zU~L zt?_cnyX4a>{=WqI!LcPvzF9ED$ASn(V94~HEU`8@T@TJ0gL#U6HiCsO1`2i=PF^+P z+a3BV%Acq@$7-JC$s#nD12j>We|M)Pm;s-v*GpuG3ZD^M|MO;q|GdbPDjM98l@AE27YA|dpO(zl_tDO7_3Q=7;#8dJ$Zfb*U++o5EdXtamp;d;c zPpiKDw4;%}HN}CF-eDQeVq@rW1hJhIf5-e7sVNKngJ)%t_!weUfA~!TWF<}NdS8_# zD6&r7YJ@LpieKiOY^nYNmx6SAJFO;P8iBDg7v6@81$ba&*ZQ70`3sDYX7A|Vfzh$D zP0IoIi|Cc6n|UIxCaKduoLeg1*PmZ5n)uu7 z5`uGANfXf((LL?7v+tYGsfj-|cH{7~t+z-?ij3N_41xH8ve377f3_wh za&>;UG)ia#G8LO2B@(r5uKWFR{(#(}1b-RS?wYP??$_MBw_>?Tm;dzk9bc~_LG%)< zKS0&2ZCp9FiU^-`VwN7}gz|BEe_oDzP+VZq#+S(1g&gy6R2QPpQfO=}f3>-!0JIKx z3+<#|2;={*uWwClxCQ-yM@@(Ex2c5IgN`pbiza{=MaDuioypgSly&zNe7wWzcfw(`J>Hvr!)3ks?VoSZNw)1raS;L-BevVmPIO1v`i z&RU7;|M@#qtVENtsu6rp1pjz(;Wa!onRUB)*z}~{p{(wLP7BiT?mBa4VB0o+VIbT| zJ@J9nI+JrqMnt8|8ae0?2?8P&@+gau>&8Y)GedvXQISagztXxX!x6sJ@JBMHNj^^e zw@|0DqRAf7GydVC>G7GD+g;BDvHiPtTeWdj6*JIOf6(;D%v`1ZG0l7!(Dt~!^`E`V$V+pq2Y4?4h1$Ank9r#x+ zD=BQ{jMxCFrcR5={Rs!fwTtqh8>dOADFH>O16oO4`Ml6|F7hcyK>?-R#eF8_ z4#|mz%sji_Yc@L5iRLIZzM}qlLOjO3c4UP9%Rfp-oHOe1dz#Z5^; z0$GqilGxZ#=f`ZDF{0x9ro>b;SaT>Yj3Q&$T@%z?Mx86m zi>|K{-u`odl8b5e@R2Tn=0We{n)!vM@kF?j)qDj`Hkg%FfWRfUaexs~B>rnoiK}av z&db0b4|`Uz6{qsTf(!RdC(G;pJs)G-kaX*kN4?{PTf6$Hv}~mRv4hnHilya_JvenE zb)72*VoGf+ zXIdeg;v@{w%%%2|Z(pVAuM{6)#lLmhufNXWPDYYw|but_br5qD)Quo*>a_4a9bb!oN6NNnh6Y&BfTA|7-8 z`K_Ooc%2UAdMXj5S{9n#xKq)17W~rZoxe5Fb;5g7X{I*j+t>JWigzL?AJcgiGRGyk z$t|_QLzIIQlDEsuaB$Lo_nCyZoL&#YK%vo}IHCOLP$nSs0${VRK_5IzYL(*uqU0nq z4qlMs821Ax$N9~hzuC`K7*_u9nJM{M?glaVT(^!#nd=1MwQ50gu#IyLWRmyYo>Z$c zA|h_LV7e87RkpKtbO7A{5haqP7m2k>1j>AuZr%T(5)rL+;*NQ(tEz z>{l_KJ#Nk)&U;j$JMK*l0cB}cC)HaOq-uP| zK4glGx{*ap*I-Zw-MYR$p8hxPDjrzGsIKI~Pwe={U5%$T_+Jy>MXR*V)#uCzEtkGt zS`day#QGfqZHF)BH~5O)iFKlkMjB&Cw8;B7wZ^l6EG;k0Urfb+K%^+uX^P3~nq5-FyWQXG9M3TfWP+!|D}fLuF-h{!ad(xD5MPz&RucK zA@b)pUKM{Qg0q>iMw>r{-MY0xnleh8b6Lf$j`_EFQfy^`Q_{mGbp!MFj=Q~o; zXx@Qzn9G+ARQE9E-X7v(Xy*9I{D(iKZ$ zY#YWAR>v^Ka4Sl?{hzXg^rGRE10kwg_f+;jRrbI7JK$zXdFm8jbb(|SPX+zivvr){ zVIMiEHtVs${_MS?!x=y(!_nv6XZL|;OA+wkrWEhz0mJ}U@{NA0Ii1NgPKKrtISkGE_#RaP2=hq-QK4*+AcrF^pbVHO|X;>o{k zYE|_3%P&mg*|vC$cjy!4v&p!-wGdY8++2Ms6Bb#Gw7V|y*DVsBqtqqk1y8;Xe`N*a zU#Bc_K!$CB&Q&+VlI4o0yUfcjsBYQup?pufIKw69eu8rUgF0NMV^_s8zHszIFF@vH z3c6Pi@H_E5mLX}+!wFHyJ(u9zYvrG!?{;1 z6vW^wzQ#6jpUPTGtkxg%hzH_(eLe-{IFQI%eWm-{m>@57K-kd>d@`=<)@SLh%FfQQ znM@rl^6pkGhxF#t&o5_`@JB&9>$k`935P8Hyxsl}`kMA2cy_6pDJn)sY>s(V{H(4) z-552sPS53z&3F9pu64)20>qaeh?%%xtS#Q?^k7TpvX%v#A9LYn@ zE|_!5s((X6i|)qoYIkP$%R4O2G1>8iumQ}yKy$KFWXra))~~{uVg!_G3XV_4rqX_> zBWl8YwHz1+=YcpSrTEiUV}nMgGesJROB%0AX%E2K4|`OIY6d}hrOzO`Q)$-DMvyyY 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 k?q* literal 0 HcmV?d00001 diff --git a/events/eth-denver.png b/events/eth-denver.png new file mode 100644 index 0000000000000000000000000000000000000000..baa85f256dd808c6ec8711e3afe8cd0867707c1f GIT binary patch literal 641214 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%0A53mVMJg&9Y4;X^x8ScPFYqyv<;f`miLhEf$ADD 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


; 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

(Pa_@hWdf`P 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

+
event thumbnailevent thumbnail

Meet Waku: Uncompromising Web3 Communication at Scale

We are a family of robust, censorship-resistant communication protocols designed to enable privacy-focused messaging for web3 apps.
DateFeb 23 – Mar 3 +2024
LocationDenver, Colorado +USA

About

Waku is a suite of generalised messaging protocols aiming to be the communication standard for the decentralised web. It enables private and secure human-to-human, machine-to-machine, and human-to-machine communication without reliance on centralised intermediaries. Messaging through Waku is possible from one-to-one to many-to-many.

Waku serves as the communications layer of the Logos tech stack. Alongside the trustless agreement layer, Nomos, and the storage layer, Codex, it is one of the Logos Collective's foundational projects.


Motive: +Today's internet is increasingly controlled by a small number of tech giants. Google, Amazon, Meta, and a few others dictate what we see and with whom we can communicate. Their influence is almost limitless, and their actions shape global public opinion and even geopolitics.


To anyone that understands the internet's present architecture, this outcome should be expected. The centralised entities through which we communicate have privileged access to reams of data that we, as internet users, produce daily, presenting an opportunity for the kind of surveillance that was once confined to the pages of science-fiction literature. Thinking that the most powerful commercial and political institutions would not leverage this would be naive.


Yet, it doesn't have to be this way. Advances in cryptography, peer-to-peer networking, and decentralised technologies provide an alternate path forward.

Our Delegation

Reach out for the appointment.
/events/guru.png/events/guru.png

Kumaraguru T

Developer relations engineer
/events/aaron.png/events/aaron.png

Aaron Bendersky

Program Manager
/events/pedro.png/events/pedro.png

Pedro Lains

Business Development Lead

Logos Network State

Want to get involved with Waku? +Join the Discord community.

Newsletter

Subscribe +to our newsletter

+ + + + \ No newline at end of file diff --git a/events/guru.png b/events/guru.png new file mode 100644 index 0000000000000000000000000000000000000000..d510193c520ad119c6483e25c186a46ffeca4cee GIT binary patch literal 840125 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℞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

wO@Myhrw?jqA7{iAd;ElFutvs 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�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 _EH24rZv3YFQ3cu+R4~ZShj*%J1*3>wZ0y4s| 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 r|*e~Detu7Xvw!QQ8v%}2`P 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 + + + + +Meet Waku | Waku + + + + + +

$GewQ+q9K>ptZSP#vLl$bOn!Wue8_zKEjefthff^3 z>b#)m1xhle098PV-m4H@c_U_v^X6L!3XeP&v5jc*Ct?%eP6x$f1)l{1q~b~niflsSYcvT@?dNom79fS{j54j zS#`bK`9XL&4^-UWD@}TUt)wD9x+lmnM2sPG6IlJ%%bN>vou`gc4sqS2IS1pzi#Z|S zs^P7H#Z9VKIC!{>yP|&kgex%!ht}UEj78d{0Td2SoZ)D_)5WBIA)2Vm+^oDPYWKQ( z^(86J=o2$43<%ZCJ&@n)FO_y5#Ne zI+U=Ewbui|y1Ut#`FcUG10n?1{}Jv@`MYd!S|Cq;WsQBX@hKhMwP)cXR}I8q#38&Y zsZ}0i>)fODX|p1Zn&6~n^M($jw1lg`59Igan|W`^xtV4e;=wg)Dyv6egAI@YKd71p zbi*$&ik>_VJLCMvJRH-;CI`Vf5x`vftp^o$Q@>$x{?Pe=2mowMNp)X>sB~wDd@NpP z5zYsVSF$1rrV7nKQ31KYyJD`VO^Cso6DQrmDrqocFYH1RK*=O?%?C(U)>NAMGlu1T z#T-Pc1YElD!(!3R#lax9_W#0v2pSpp7@c1=ooQ-qG4kX4!=7k9e}yT+BfWg*+<2*H46_6#L7+lTkGiMziUi}l^7QTEni!T&-Y6;6PulXByg2b9KFd`4_k)3@zv94c*C`#O(!g&Pp;08Ub0fYKpJUE#_K z_;X@zX^NdHsRjsX^6Xwh_xW$Zf=8w!`TTZ6lG-Qv)vsEW%!zVd%W;tL6yQS z>|8b2E?)}JWkXMT7qywcS_7!2fJ5_o7kqTDeDxH6pVAu2A0t*_bw}#gzlE$B>pLq* z$+l5!_hp?kFaeD#=;>OR7$+HDRrOTu+*x4oAC2R+r22;bxl?YK{G+^m?8X<4YXS1? zh&)?+0&YCMS|etH_m!6^S33yyn*VX}J6|aTjd-H2D)l|Wm(xBh+=Fy^GH>E`dLi;A zCG05yw~Xl6(YD)s=Z~zAek4st1GO{ssJ=*58q`rZy^n1QI=Xl8#t|`vLV1 zaVE%QL0M%+O7(r(Xapxe=>f#S5B_6npDqq@#_X|7RPt2pV=nS6zngmUtA?$;ES6ucwcNeY}inMX4SZcgIP*ZL=fMTbRQ zw@3m^@~xoAXJ_>+sHZOrM^66n;Ev&GJjLcIWnT5vS0t#u@MdidLkx&ag6&Wx^cnpJ zJ=0qWAJNHF)t}aYvGIVtpN1LhRsqI&2xD(@P!0`sKMv2jTcP`49JYQ@8ju&V*yq=+ zP%Jz=XT+@Jn*61EvfAtLGM;;mAMyHtW2MB0lQLQCDNRl@zon-}_k!^bq|!k0(g zsJW#53Fc+=%$0K6PfJkJs`6XKr@fLM7y(sq%`zk*McPHl$E8Ozo`li*DI7(q3IZav z1otR5@!@w@y;glryB>TKU<#&`&nTEwnAr4w9EQ8y+@xM#+UYWx`wva6K>@v&HDs+O zg70n>dH3FzKlcfQo)h#?#co2){G)1=2TGXGO+m)95$|WGD2!seLgAI%TQcuj&&_t@ z>>$DE{81fl(+xM<$E9`E)dk8eH(}PvHeJ0+Tg0)Lx6)F$0op-|j=z*H{OJ?R!idkx zsqvA@D*7Rbb>%7(qi;XxMfDI&t=zTMR8ip7uIgWwWiK($c21&r6&Z!@i*-giKW5hc zA4li@$aMd|@wv55n*R?fvUKB-j=RFdAY8@AZ>wx!D zG!`rDiiS5CgJ9V3zR7qP2(0Cq;^Y%CCAQ~KaNWq(UBnc!2g>hJXtYvnLShYeWac84 z-jO3@;frqFG41=$DG}Ka9Gp3{BoVjOT83O`O9Sjq2&4ZeUwZayRrrS0uc(@UE9h&l zp>I{-%qgvz&d6T`e%nN29@MabGa6E<@b~f^!nz6b`B=cG6j$8$8gspIe7by4(4Q?f z#wFfkSZkTA?*xrN&6ia>5X2P+mpH<8Gp$HnBbTai3^Y}L0G&}7mJ#^pbyw$RE`qZlC&`<=CeA6oY{fS{-+%n*rXtXt2+ zzQpY8+swb)Fc-T}j;h=vm3hZ&ZXa9M>wKS4$9CIm5PD7(Sw)=iQ#J(KXXs{gJlbSD zf5dalC+cj)*Z9Fk3Wqmfq;^UA?R>3B`2AM+g1K|g)Rx<~u3e8FGEQ3} zU<+v488>etdVZMu7xs$|ccx-^L*_KP!rkQoK3%CyDu~hU+UF0qPloU_eKh`AjB7F8 zSB7kqkZX`t2UcIB3@F9hQun4FJ*>v_0Xs|Vs`C^K?n7D9l9s<_$wu-~iZ_2tgodf>LK8FmPCzO0yfThaKSeqI9`RrBp-l&!H9CEqz zzFmFi2Hg_ig_Rpib!sl|L{w>P!}sZAwD)UHeNq|>7Pff8mhikBS4mJnB9E+l9-^xdVnq*XD;!5Ou{ zyeYwq4Iey5E9N`!PAk(v``gjas%q>=%C$}=N+}IQUjXMCxw$-_aA>hsQfz5=;);i@ z;asEQTf3J|Cv{5`0lT(LspA*!?F~Fkb9jBpQz3x>-lachRtu=S=-Lcu(b!E0Oj{Y7 zWSnt(-okhzdZC%NmaSaW94%Y4<8l5QA3;$WdK#m^W2`uayz z6|0qvhw~X3q5b*rGrJCWn{884FVv9GB6DYLX3lD_H0(rd)z9#JQTY&YkB(U7tNI z!6FU+!)Om^JZ`G~(}zR`u|UyIB4XE`oE4k@vkI@Kf9=t^P;RqwcnK z81pru4R0~^P-wlZ2Z4)sXnEurC#Ssnl&aMp9&FIh)S?^*s8~)-ny3n`XO!w8^ka1u z@HLTgd++Eoqvx{>yz3-2`bJ*e=L4DWd=|rq^Ou#}Xk_VRgq{TN2>VIa_OM> ziGIVPKs3iKL=&0}db3z|Wl0#c-aaH%>+8%pNWL10H~KElq&Wx#%mwCM_H;n~+MW_k zbD{!6KejLa1zZ?JSkNFb0&NrCYblfapB6K0tRVnDEyP*cuHV>>vxb`t)L<>z3k=iX+0zV(S`ah zwd-}aeP2Zp_uf2B+kz$~@V(7@qAdVZ>>DhWmxSrET&T^Zd-h=e*pk;^aTl z9M{gJ_)ljn8UQrBwz$DUJ33QSb;N7>4qLIjxoYpF4f}>aryx`#DVHM*ji(>>G|AIM zPR)J~ox4SrP&bR7_h5fg6E9s{{QeWL{fsTQ(3OkGb=PmoB6HIFlpXbfuAGXJXsnDy zeqAr1_BE^SbD3BfI~HLAxh^;nCQ!JhJz2sKpN`^~u9^0V&<1z+{VdZgi)uQxxUWJD z3}8gr z|4OBsE%V=RUfq!k0TABJ{N=~p=TLGt)eUlBtm$*4v6L-rt#6H*yBqj*L+NlH3e^yHKpV4fiafNzpwBw+u;6 z2O(M5#M*U@vfDv{V(h{wElTj-UGxk=Z7cA4udwnQHV8v6x7#60(z93_-sETdWbQ?( z5hbA(l5EzD=p?3v!qNyN&Bz*`ZqYv(0V}L{rR0%`?lHNa31m@e#eU+&jrgi_j}3&q z*$*A2i`T2%|0p*n92^&CpWAyJ+4PVOJntjVOYlPvm@W}v6=?0r-49PuFT<+xgNebS zD+8)>6d(ttN(!cboT=*e5O43C1DJY&HTQyxvqN11fCqPCiau#lvvH*TNNf{HkN2Dot1`%m_$Rhe<+GJdEtOfmhgrrsZ@X+h7sFGT{Wv?oK!)|hq* zvshZavK)UMlo}Ykh6`A47iZqN759@JNG1HPdOaLGIW`f@&DfH2n6lp=DHE`%?)<3c zdoIgg0W+M~$~5Z6qN2X3vML$b&yL6d-9?bM`pQV#zZcDM-X;yJtKeVcssZqIYUXf9 z)%Cp9S_leNTsC9V5KSk#2894IIv!@@E^D8fp}-|Gx$Y9CNYRe_x|Uh-J~eWg#zf(K z`u637=@GL1xx6+h>*&&EFd{ngi33F}J%fk;sB|;bYp8T~=FgFVl!A;H7F>I(#MBgt z&`W7r^s>2oroM+X8Drf$x3%?t^k`)N ze&}|c^Dw4QCmO=}25=*m;{rROOBSZ*-3zXl%%x;V;AdOUE(y?b?|1kdoH=U!t7jup zpdK)hZ~rlC%TTHHc{*2zDX;-3{Xy=npWseQM(7$;^eUfHf(K@c6&JzOZ0<+p=^EZ) zb@^elAqLz()iPo=6sQFcj>np8yk}3R7`$Fy0?6j7cub&%T9O2L5{7ywUv@6U($LFkpn`DP=@YE?8L?ko-iQKFG!}nl`^U|J|+or9B&Q;JvbE^_AL^VFkTS16| zNv2JU-AG%BsZl&E(Qh_Ndhlh^rTN!7Tg0dz}(&RdVFG^K=gN5FOis}sd} zgwDnqN7c}7yl2<)?4?Cb96bH@)X3;x#%ApVGh9dzFhoy@Nma&?hoHkKF?4;*)qZ1x zdz3sn!L6r+Z#XrO3tCjk9G^6wn}qfe=6e6txv*Tb7nt(UZqva45{a5Q^10Q-zbUq5 z&y++1Em!+19qK>x69cPu&P>4+A4!Ds(3T=Lhp7pc`1hMyabR|*}O`t2v{86J^;CrD7h#PH{JH)xQy zrsgk?pIv+NJRJuX0ix7TB&&;?k)J*7yQx96;kA-^kbPgl6n~&qhJD+oK8z-I+n-eG zvO^CAfUuM%yDWIm_KUQhSwV|oDqf5;aSGc_PxX`b@3<~?Cz^(s43<7-w4+43JG^pf zg$bKw*fLn--Pu-*^aouWMeKM`Oplrq!z`CN#!r&ME=kE+%)qivT@(Z4_ zGrG`((MZ_?GA2yk-c630&JYd2V#+^TPp3n&!ow7P`?0Rh$h$0X7No;c(D%I-Dw$CH z$fN%tC3D$(mT5HylXtrE3O@yR>DoOvq}mB2o+u6b=pCh2qD&@@Ry08@Z<5v9;|q;vLtO z=#7>N!wp^K*HZ75!Qy5sa{?C-xs^8*aABbczGHa7^;wXj?kKx^@z&hMSxwg!u*lQA zzeQJF58vFjb=byR`0P7+sHgalN_zR+DA6$Bx8kc_!swI_3*E|ejvuMk6Lv%Ho0`q@ zNaG>-&1m#hjR5Ip{p4q=v@=iQ_U1j~_HzE{wm3aUuP{L;-9AJ2H7-EuVIUj7`D!}! z=6$SU(n(R#wX62v!)Q?<<-#0-kP;2>P`4=y%6vR^SeSp7*j=1aa$300%h(?l2c$zU zgr}=fR!5DMUyxsjPEWMl>eTH+`x5efK_2Om>L(kW)AFIWaVg5UDaAzzo&3&QJm#Fk z_-QM$krbpNDeQyko3e#La_~M?n$;}lDS_j9SyIejuO3ZXlhh3GW|*>It(>g{is8Wa>qIL8$U7Q>ylg&~ zY>#>dyM-$0Frxx*!TTcv%4jz)0C>jyQt7&7TByVM|(k zT?g}!YGo@18&rJ_{A=h2C^2Z%?nt2j$%)Yv$F}C6Z9D(|s7JrS$8FL~A(5kY+~D9( zV_}=u>jd9_#!4k1zsr>%2v|~ z6u*|DH7c%Y*b$(Wjk`YxfU9>66XOal%!((B%_N1Hj_Pf zr?_37`>TtaN2j`nORo*n9DTx8xX?5tdN+FMRq^?tV$Q_?&(Im;UBqX|rPJv_S@6U3Vxk>z-#eCfjowSMeG!^W3bU4+tBIQ~ z?QneBVMePc;9D|q{DrYFwOT^FD@y}v=Zy$5t81?)E}p*?PZ?$2xf&Y8oz}&zC&KnjRwP`tIoH0n*?mzAx<`(J83YWl~HYr$Qg@-buH{F-~@Rc zVo*~}QJk99`LY50))X)8^m0PPziqh#Kw~gV-@S9w??@EG?})1+PTsPNJbXLOTQfDY1!kPU_kII9>u&Kw51EyMU zF*}1WS>2D@^VDWX?}r)rE6Wyjbv}Ysw-u{phvj#k;#9`VZbp83caZa~R!c?G{&`UD zh=tY~yq9wQnVq`Ym+|ptPneXrel({N_%bp%?gOpdhp_;toxsyJM5?^`zyT5j8VsQ0g7BW<(EA10@sr<7xB zYh0a95{CaOU`E$iJS~gSH_u#_EFllqwoA1nBL_MDOx(QSWC2*D4q9Dp zi7)r~A%3Pm2X=nh2b8htcO`SDs2G^2R7HI<-ajHEowQJ`?=pl3*_u84j&b$nYz*^l zCxc1F?{UN!pM9cD77_E7QCbXzWd^6J_ubej zAYNN`oG=yoW21}j==~}r0B38HJqk0MSD)#TVnyvqCu>vnL(?3aHsW%nt=%+F=g)k% z07kT;fdM>i(r{uoZVgIOiPn|tAnXnNTXBs=6wT$GF23%f1C3_2e`JvZ5&h@P8W!i< zrX_^FNo~4Js;z-T+(YziTf^M0LJDz0xdU!KYlk~feV`#?`KJ1{KC1)C3jr}BD?UM_ zk8}EgADBTx%JUKwL1)9%C=F>qrgX%nX)%{4%IB&$_4O0yvo-2%?kMOa-Yc56Y^ZG$ z^=SJQ(>yTM5J%sfzEtx5)DTJLl!@CtF1D?gKAW=0pvw{vSo5AV__t1aB+X3OR4YXd z^$-m-DJhVbbNi;T4>g3wFm{1-J%xVrYMB8TH=aJi`^6vmOH*_FPC^lf>ghoZ?R$1? ze!76EDA5Y$LHGJ)=(xu3x-8k7w&F#%dv_Nu%H7-!Zq_?A>2uL6a@&Wr2Dz;(+%Q4^ z`rOd3p3S%uaa~>(pQp~%PGiUJ^ZtAvdU*lD^(*d?@`|+Djnh8s!DUH-(?rF@*~%{- zU3iSdd;NgDeaHfEM{|8`c3ne)>b(rYhg37E{tAC$#v)*t1t^M#A+)%kfWyEiqWia| zGEBbbAXa`E8b|cmdq@Hl7;l6}wjan8sXN+J&A@Wga{Qb+o{1i*{C$le)o-1t7myJmX@+~e4Wp^X`>ts>7xd5>?J6G{XMSxA!qD>@`uT9f*LF?5KMJfu zzgdW^ni$x1CC8eXZH*H+2Eq0$HNwDN8;D@%6c6yVBz8xQFaw?LVwgC#lTFrost`-+ zuBlmxd%386zcaWquH_~6VNdr~Cg(Kjdj6ZDM2*S&Q4l~N;sNW6UPCyql%f{(V@rzZ z0ONd;IuA13{^$^U>nTz#^aOGA<72rZWY2z1&?zO5$edCs_@|iJ^Y*5MYiAe*z-tc`OBp6*o8vper zFr_RCLx*{Qv+ z6=u6|fmdS(4g>EL2%$ zx(l)OfXO#)C&JldXSqco0)xARDyZ>0_z-EXaWTt?op-r}E(nf$H%Xbic%WoGef61& zbZ8rfw*$$w{paCJ?USrVzIfLVYa|X=VE0Dj?N>M!Z+O7Az9uKFe(lJnMA>47A+Yvu zvqT4kJx5R|yjN&g`LZmzL>GIqKl-Ry6i{n&{wKqOAjgaf3 zDd;FEy@MIXJr#h4?H32UGUX8Mf`@aWU75Z1B|t&d^I^oFGo#_jtL)`nrj+mkb72g2 zlzgsnBSH*1Uz7}3$RH0{IIjV)v1_K%LM^T%#@@M3$BOv$L(vqz}HeYsZh#|Kv@D-b&LiBb8g_M!}G*wR2QbY%Oq z6DnSgM_fsSCvm(yH#*&-r2oT5^u4nhy{7y-1(JtU^Jn5ACP3#zUi4bci@-{alT8*3 z_CYQk#Mp8$mmXUaT9T56Ymqm+M(s<6d-6h+of&n0ck#`U3#MDIrPZvJ&F12anA_Ne ztT6F?azXorb+w>2nkr)+v|lVF)FIdM5Cqp z5U{71_wtK?0tVkqX>So-2Yf@L1GT7U!u@Y&j2%C_OxBk z`p_z>^y5i`wo7l?9=Keie)XK&!tsuVjDpLm$2J9T-%~D45NsgqW(O;`3aA0JY+%)P zw~A#(U~7$^<{u3ItDn@q@Evnd#Z!l3^QOk+33+|Two=kcyaaTU47;P7nLWLpr=$Y! z;$~xLLZy=r$A*g=MHcx=G{+6`ZXtwTR_}n<08{) z=?6ph+WEH&dZYkW7@&szehBMMl{+tyZt%+1kZkmB;8FV({9NmplU?c4n{k#+ONQ>( zE|vV0?7s`Yr_bY-6uT{0*{k|smQ_DOpbxI@m;ABd{EpWRU~isX{$_r@%fi}+#o*L_ z4lu^7;-nA1bXW;8E?WRCpbr~s;^W^V6_7Twpzb2`!h=hyeE`F{m$&$DqSVIgoxwOd zcl35dW=Wuc_Fi$q&Sq0b(MXM#p%fy^-Wk1Do&Pl30;L_mCy97 z=m7LbznTC1HDM*AEQ<{NObr4AnfjT5n7?MJa2^E+-5nl8l})k@e(gpJe9C#8KnhM1 z{gD}}5Wvr0qt=HKYWDG%4EHeG+`$`arPzu5g{7nYVP@2b%4GAzrea=71D{ETXbMca z{@YP3hbpw#gZ}30CTary8F(A{iS88RV;l_nyu85cZi89&9qT^@PD(&&lL%zE~P3)yrv8d z?n1q7EjSP3hLgHDhuep` zOd@aB=AbJ@8sTRDq={i8cVL*fyCeONFr-h0fO&U;r&S$)Oq@TsU~Zy$;3lI3u@iRR zni*BKadwDrf}RfV?J)bHb%o>J151A)%rN8jTThCPC5BN{~;k>CGZs~ zB)ES{CLJZ_!4rNPSfw&GC!c`u0g!{$>%V#CU)NrWJPK4S606`{%JwI@lxjX@JX*{~VcVN+Rq+}oOy$TIaG6KmHvd_yWiK2~{ zSBQzs*@y!&-LdJx6CZP_f=)SJ88@BE9Y94?C5icET-eDGCp-Pt^;|uZ?MP%PMjsoP z*6d8G3lexDN214ddyCX`c+HE22ax?p8fsd6R7|*wR=tB=U;2w2HM?G$sNoGkVpJCt z?Rijb1{u$D+D~OJ9sKiXRfH|VJl3?=#OTJ^Ev4pX*xSVhD<4Qemhqs@P%LCqR!=o) zq)T`D2!Ov|Mo|V%GM9~tTD_a+ zk@ZLNwW8$qYyC2^e~&&kOWsl?w8<=aUGbD>0%c85s-rP)fN#?S3r#LK)J6xJ#CRm3 ziEs3!$e-z8iox{d{5d?}gneHJe0p?7mh+VoU#K-&? z9l(;sl~dB|SG|nAxqYjX^7RID`=j0ga>jGn$iS|7m(fr8)$MgN=W-s}H#-2h>=%uMEN{^l$Ev!EEgm2;{Mb< zKNIi}hQRAl+Zu=MFfSZ_)kuno#T6XTYB*9dO!u?*Po9i%dQ~o>QEmtl)oIH4HWb<$ z$PMsc{dh$mQQhuUu$Q(f*qAYvUcsNfy-}kQLCQcKgG*mNIoEY7YY;0_3#Bnm2PY1Y zH>3JOUA7Eth`;Kvw2Y$6@D-Q-`(28h<4(GUop(dkZ<;g41BGpOM?}Y{RT*;gUm_A4 zoG>XbH-Ed3gPO-_ubR`*z(jGW@ge%wtR!(Iv<0M)GYV-=sIIT=@$vS$PX-MML$qH3 zD#Ub|7Nc)NO9}1LbD#>nXj$yxOYq0-QnxVoQnlOl{fKKnePJ$YMDqV`8c_V@T?L4 zXpL6yH{LC}R|{##<6!Se!1Fn_ioAblM`j)en7vyK+JCqD5vo_R+?ARk*^@S_NWgI0 z#=awSu86VmU-I+*Z3QG3PxdBsvCMwBgdcWbFvGEf*BuE(+rG<`Z5P??%q9|3kx-#cU=30 zzniy)$UVkTVU#Zr+cjJkj*{QQDHFP+DPt6oss{S`Tn7h8?Q=wou&eBm}H;Vq*?)|%buI>mvp>1v!x#JW|O8|5# zI|MGH;Qv4|`Wtr}*w%ZO6e#gjim=NExSaW3>w%l7gDPUxCij|Te>K-H=U&`cn(jS{ zn4R^JwdTUFC8u3&S;SSNxyM?gz@<6}A|$OO>TTX!KsW(LeUZObMdcN2!C6JbZdm`b z60ZP0O=~}s3m!OARkYQMMy;(4`{R(y7cfZ$yZ+$$uYr}gpvvlnmqE`4P)E>ra!Vv3 zCjqI9MS_{r{^m5so>jE$>Jt{9m6e~xm8CxvmL(lVj zX)%l{%-?-c8<$Y6@++y6aFnUk28rEZAIfieyb;~f&;&B7Zhb+h?G5wZUA zzOUn)*otLukvwRc9TnIWuGUdV}eKn3WJ(=p)ZLxVOS?odQfU0~) z{{=ea`Yu)Gf{RRS^hvR|mZebL-l&k^VcIGfZ}8f@W9NUo^`F}%(mBFjPYJP#dg(t(8b2)Y927km8yD)6l zuGL|Fe(A>fmBU8$oh?efH;|yy29Vp#>4oOnc-0YS{d#*yk%p4sLUs{aI0+dfx{=X>zIBHQ6q)CxzR<-4udpy)8rJZneBvd*p?TXsOL zW(?|4+P-lQ{jUeZe4@(!s5E*}79Me+#E^7OOw7nbo-niI4MN+~%}m65{5|H3W7$)1p7dntoeu`7eo)t$d7>e{MdvmRmKGm0Ak17tV*ZNDdq` z6)6(RJ^F)vP2~@T<)b}RErY-*z3~|+$lwq}bO0!>9DnnbZibT46gIg+JMd~Mk$2O7 zJi4;^z8^MgLh}GZVq8WO4e#Njf{%`Lz1P3Wd?U0x!?d|q$KDN95(XcgkVT65kX zArjSym(lwE(W+nN_u;5(!*rkV#j@Eb3^m*Qw@*mOp}}z2NP@(M1T{xmIt-S|gFbZS zj09gBG2u^)vH`b{YTBY^QxWRTh!!v0?Y*d2^G9^PTu9n2*B~I7xsU-{wDefOd=_}R zLLrJj<(8+gbzP|%Qx$@JA_s*&V|=W3M{6UWlz*3T9P$cX4BXcS&R8|s8Be}IV$_7b zX{e#9chm4om&JVt5zX&B9&VU5)zma*0Cqyr%h(U8HFFZ2550upcu3>9+;34&@!vnW zJ!=^5^>bAoeuEnMD`;?Km3UwhANCleQ6L)_=Te)U%ILQrX3{|! zDhvqlFJeimH^$gAh_raZp<%$MymwD3zy#>I^T4Du2ywy=Pk(UKblu#YSO1u&rnYfv zu&4l%Vh4q*ne}Xy2#gZUQlXqu^nL)6yC5TXVigDQNkIqP+mi3ZYf1Y_U&b3IZ#` zKUU1`bxuNftS68Wk<{^{BSen6XtGGyDv9VL#^W03$LGk1-Tam>MNR>^b3~um~_r+^NyJ+}{tX97kpb zrKVYZodbt`RH!-Zo`DpNDamFade22K5jOwLMFRmFj7-JAjl8uE0T7m2YR{89(ENV+ z*bcR~;hA&C$g2i0Wj;rF`TL}pFy-UII4Al;UHg?TM&xpQg6MMZa&=CSLRT089bkMz zXV7CP#M`hEPw$GZI3gW9tD)o6cKSFK>p4H$N$6=xP|!GBf)SIZY(|j9=ItyD6{X?7xWnrSb`WhwAP~4ZuDrF z*KydVwSxb3qTEh*yj!0G?kdqgfcJUtE1?)Bl)w$A)#K#OqO+Adl>=|ShLUzX4KPlG(7J*2}qP>Ax z1krfV-fUTS$xk?H`gT*46RBkR3-woB1Ir`zS4duX$42bxo*Hw4`>F_-xmea~fvkp9 zUD#XW-D$QpIM@qStQ9It<&tmR#fOcB2Pei{m1ow_BGhjU4es${?}m+Q7#|;fpG;GUQ_k0>P{#4){^5n6WxEB5V6B^vqVa zwy!Qeb1drQkA4(Qu%gWIJxq>w4+y;vuDVWpx}IQsOcf?*?>Qk>9N&6OuEh1}*eV1~ z#*Gjf+Ndb!m$iR>(}U}ciPt{)6<%<&f4yku;R-{eB7`CozGH{j4-UZhJvx4gxFcT8 zDdrO!LLNH|L+S^173RVZg+CG9$I_d~s1whlNO7-VWME-}Xhf4RdK;)wC2p>=8~UOJ z@i*c`Tw1J&Hr~jprX9V*iD~GxHthFkQH(G^i)rBk(W*jD*H1=Q%s=wo-mdUCoLtd% z7a?CYbMz2BYDIXrqZ)ZHZ4vo5ReY2^7wGUAbHE50;;h7UiEW)oTjOM>c&b0hi852q z-E4=CkEKN$2zz*C6pBjIT#`Wdt88JF3?Ii!xpV*^}CCv zY(n#6$G=pmZN4`nzTF+%Z^5@r`7-W9%WdUxfjU&$=*Dz^*qYec-zP(Zwfcd7Daczc zw#q8dVw1ZD;{G?VDH{>Y7T@U&9ASTcdufial(8W>+AF>Da)7z5&3z6WL&UP%dzP{B1TRl3M9?rcWxE z-`J^+(CTo`S-J)bSwYI*A3EyNL@925_W?SH#~1Z#i|4scEx6$-o zvW+$QF>;7pf5-SDRXy5oVe99X)spOS=uz4cq~GiWOS@WmiTqJMqYZXb3J1olz*lKg zddzpxuewbBj!bKHbGzpc^c)GVcPEfS#d(cts1bP>%FWixTsjn{hM>@k^8mQ1rdL4I z5yS-uC`~6Z%By-K)!w7nvk+T0{gdXZ&xlz5?}J!*NN@C{%v*ivm2{_hvGtO3^^14E z;WDrDD#Ya`hWUDkMETl&ic?cJ zK&EZ6Ginca`#OJ5?iOU=B=`ahC?C)jkc_68W3TrDWS|XXEnow%M9o8zA~HlbtE|zJ zNG*c6jRZUa2Aba_s}talzZBfud?fgK6nCpWG??X4)1Whu#}7b^ zC$Ou4CULL2?L+j+)?gcOTKn=yRM1^HX!t1iOFm&DkFN79?^$9xSR_y}QYTEf4`>e> zNl-bqoOwe#fWfUc&IaQ`N68#HQ+5HDbEja+IXIKj*_p9C05!AixdvcX^4TN2Bv(Pp5c_^xhXKM~ADL^} z^~~wc3V7+GWvrW%bLil{Y#cz1@Cf=1fkI;Q4LtDbqug0&32Q()?cjOcdvwKqHuT5G zxv*_M`9^@A{rHORm>mvd{sC>w_voAD>r3<|_!%#vZ!8GQQnB+&tV8=ZPcU2r*Cw}G zS+D3m9Fgz`v#XW>hQhhbB5FQaNh6cPmg_4jkrRnR7*M+4W*=HN+z4>_c?aH+BWrgA z54pE7X`0Zqw>ackilHE%+|Q^%1B;{ z8%6?fy}UrLKlPd?BYS!)+ygxLCPMB5y;n>73BdRv}ww?0I>|EBfPP*-6HCMckff~NM{@(!Me1^*;CWuuC8&)A*b);#E3s@ zz4MgPP5Em zJl|Pbw%9$mw6K;1A5Zf*>PXtZKs=w^uxb#Ow4T-qllSb~?;NN|+^9WwH+N}dUj!pT zkQiEfRT;vC1x$m!69*RJVe}xxt-Ls;TYO1#>Cag7*4CP`SabS?NLTM)2`BrdLlmTA z+%?}X^+5~mGBA)N(mO#3V?;dcu18KXzQu7tE9Sger)Sme-y)E!;V!YUNj1<6Zb%;UKehGk?ylK$C0K}Z~Kp+E}GHShJtO(7oRRayAro{ zeOwP~SS>Mu;QxEIkg5GXRoh9zlvHsJ&WZK8)ieRm-B9VtIK~iJe`)qJ^!;%D;%7cp zc`n_zF|XJ>^jiq+rZL^QFm*NA3=GeJ{}nrbwygi4djI)An%VQ1x~K3iLxtf?5C=P_ z>6vNWm1Kwte}O{n9)kW3OV#A~<#B&Gd7AFEn(qoKD)$$eW_znyO}i^DV)XO;3eUhM zHJGPy=a=KTE;@?lGKn4OuE zNiYjHYf8=A`%gf99oT(~l;DjCXo>cGzJM2w*phb9*VH=sSm{Y~rO-Xe!R(Wobv}=R zhUDd&HB@U_s)gQAj%!YihOE+zm<_G-;kEXqo!5`NdG}wZCL}Lqod1b(u5a}chu+ZiF1 z%lP;U1jJeF%i+kr$O2V+#L7-&Y7@p`1l(}W{be$qUXjxcMm6@1kpGXQcX4F;{r~@q zP>Bu-NKYt>32^fc+Y`{F~HvNS5!^U}AB)!c!WPD!bmn zy|H+mZbpYG2HO|JU4h948!T|QMDiLcrT74D8k`-od+jD$SbYDD=+(SOC>gdqPW1e> zB1Q}+CslUBoljotPX_}Eu~OfWu%@rv!wVunhv@cVwrE^{_H^ z-~0Lfv(x})R8xD-Re=t8_gUYK#+#Q*tpr^LgA;rE<|FqHXc|1|HX*QfojN6UPw3CK zg+PSO2O|x;$&uFQdQDeEJOiL+NY{fW9-!mI%MmWtEQ-##hZ-e`JKokdN*bvSWqKEc zSN{Uzcn%bq%1W#{w90(L68xhH3o_X0u_GeC7v#@WwjJA%XG}X(_13%|D)HYyLMJRG zdPrxYAe3C>_oWO%i3;*9g}Ap%wC0b~`QwA0{6E4a$pjL)g(z6nMC?b30z`6=wjDtf z&q@qYSo~7{E*0vD_^@R>^s>BU>p`5AG-9=$2kT>YZa}Jtc`JaSKz{I_Z2Q6RbuG_i$GDL`z z)ZLCgi{mU=-3=s7U%qKhNHSQf^^|mjhRlk+N_<7fwO{h(MHblK`?qU8?H(~NTai8; zT%edsP;|PU#%ghVvh>p8C1mF#Keog)JCZhgXLR03te)$-WmfVc+cpA}YqNl0V8Oz9 zqOYvt>_fhT1zEq0lNSXZpMqoMq82stoa84(CV#E$lOsyGy<^s8rQcS@f?$N-Gk(f( zf;Z~UJ+O0uN#n@6%d9a&SoJpG*uT_IF1^WWffaZt$_foU2VpsX2%u+;U2 z0JE$}{?=qAIa+GgKECYUIF^+bc*sua{a4o^iD!@6BOR0?&=gBpbOhIr+%F4xu%!iX&U$lb_OaD^ zTCFZW6OBquyoCP{8<*3&3u8CJ!LXXY9QyXSD0 zaPNSi*fe$zz(HfG-s(_aJJc+NAB0BXfzzg`w(*vra^Sd>{#qS*cRh?^y~nn;=JV-$ z{GfUqf6-rs=MZy#u-#wVt#F3LweEa`tu85lU|P<*v2c^$xuW}gJ?cz%d>+Y3tm`}x z2@&JfOv32ULBVo3^|MOcXz9REu!~+P_xs{<%5bPtcN5oVJrHNU+Hfda6qoO|>v)!w z5tVRx7Wy;#Lda+{`CM(|wFa3djtMWLtYml1(t-Xf#lz&ye*)E2vi4&FS-(bk8WlCq z-fMXeN_eQPoQ|QrwXswjW=Xvf-7VNL4j_*=07(|jLgDljRoyVq6ufCq zuth|TcY)fhCO-Qawoh_D{Q7eKM80O%&(J{jpAB6V3os4m+xjyU)H*z$0qd?Z`wbxMvq}sz?hb>jc;h=bas~9&r?3|L?$bMB4AeF`N(wOdjR@ z%Fw*U8m6tKHxfx684e9J_rgsP^yG0onrrh0f&19JX{vVp;j*0Bs<;G;IC^>wNTmj; zFAlrL-+Dn&nVfE#DsJGN4rsHG>$_01`fK>aYP%xqMI3ZbbV<<{j`Pn8jb{Lf$b0E4 zncclQv^rn7N+)viJHTnlf-;IRPlGdnsC2=U2|qTKK3c*}&CX_<|6bRy=GeE7#=f2n z7|pR;xu`w?P+5jIT{n^(m`ZMoW{l4C4@Hzv0E=~x4g4S|!CRq#d5K;aFC0oE7Va$y z0e4-qz>l%69~d*jMwWejgEAbw~~&N zWBrQcOE@3t;gL00HqS}xf5`Fq@yUKN=F+^reD;}ieZ4FrWg2ucNqTlPtcx9_a(rA` zk8(NoIM^iIc!{=bN{EC^Dn;qvoxZsZ19clz8G#ls;72=9Oy9s(^}b)z?$w8=swu0+}vcpL724P_yD|98oqOVh341VqmY>;Y~Y83Ki@dw)9l8W?i%%M#SRl;Y- zW`XFmjqeJSjOxuE01FwxvtAop-^UIXVcpibo!Z#D%aTW#ibL7s^>JGze7gWggS1%t z@4Ip^(4P4XQ7Iv)9KIU#`4aj~vG&3UNAa8&7I*4HZ!MXZn}Fg9pDS~p7jBqs z28BV^!LAaRjxS;$jjNWh*!6~xv5+QBP3{NvZbSKzr(b2B+LcBs_Gs>zTi~=N9Nxn~ z)oj?SNEu6Zz>*sUJ%qIhyL6HM=6j}e4N#f=)7}(-J3iKabL>`go?4LkpD1AYQY^Wj zgs)81CV)Kv?wV3kHRZV;L`v87?{dDWOio;LeT56Q{U%mo=XFGDbK3!ZWhcWQ>kFL5 z-=BN+M^=12M$^!i11le1vvL`bs$%`~-}LsGkA8Q*6Mw5GZo=Zrbu}5-?#Gl&?qQ`= z*}-d`>C^itl~3}cevK#ox||1PpRU>O+rQBVu(ynr@KR{yUY}vrNx|sB*VoRYP6V(2 z?|_h)6xnf;Ttm_*Vz+cwn(0sQf5*}_oVv!Kz>ZC5@&($n`&|j_X3p;#ywj0hw_EkO zM=AZC5@I#{o>Q2mv6SB7M+dyEIjs#Lx2!Mc=M%HDG4KO-a6D%q-y~tf6cr%AK?4>z z(9;;RwtaE`3N~6QEdWEZ;P-8Sp^YxQe|)aOXxbo z1`Y5Rc50o$)0ik-NshtzoBiN7;N{MV|I@3=2Bj|ia}sP}+<+t^lOff+ zC+<=>Fmu@&p7Z_MtLVLL%-;4!CXP1~E-~?c9M_dzRLq7&E%sX_ba1#`vpiQHgB+ke z-_otK{i0tPh(e)FnMBmtj z$3;Qt|4|hCIwgf{`Q4R$&Fbl{%cJf4eT^pZYwmjHCQbC#Jx+Uw((M|rrKjL_=9T8> z=}PC9(u8rI-4(&Wb8=Rv{%(3&Z-R4wUjGRvqxNtUc6_SS6?xmDU>l(GG zK|81#KCq0DwEWfDW=Mmf1KK496kG~=+MG&tB~3Ue2co4DA+CFD`>QKq%`AG@?j0BW z*FEz%_gtYcC5l~6o80X9EvB`O6Fb4BNNIOb5b`6kg?c{DM8g%1J^Rsn^}VY3+9~(M zq5WiZWCQTDGtM$uQLWx4RTDglGheB0%h7Yto-jxNS0(I4_Wv#JC&*C<|=p7u@ zd{}BjTzdZF>L}vYf>H>f_V0r3(O@?t+@iwR*rB#9*%K;oaukFexI5u}J1np564igM z!}4BaDV1S%%KvD!maaL_{_{e}Ll6@aVYl;Qm@^1T}HngR3Xni}#h9^tOpqD!*6|<7LLHIiH$=d46nNYS|$yunC|3=+=bm&NP ze3U|_F*CaL`*(kpK^QG~ue}~YxtBtn3j)7(WQ>Lm;!y+C}j< zMDNsUtjIsyt}WfuQ{48O3f-}HG@1zWPJ^!G{Zgq_)~Sz_3_T`37W@i-6;WLcI~;NE zE0!@V9Jb%#GO=(EbX2t{CaGbAeWeF+%_@jox#m?s_pzE(M(FGP9eu60CM+FPial52jIpBielSW1k( z7N2_%7_DVZ8p(_cz4J)vnl;U0H^Xli18~ZU)YdV%rhH|`Z97EpGepAe897o;>r--z zjl~fG6Ru<3oy-^I(Dl51hGl#$o44*pOJh}F4HB5}H)3|XxJmH-O75e9NA(1r(#<7| zQ{9dBfbyeeZE1bsPkT`aJ=ccN{Mb8sKJj^wYx*GooG;32M@izeE5O6D)Ky`Ip1lOIYTd7+zZu6gft4FEgslWwf zQQhV!71mUo8YfozbG!uXfJ$i%gCe5NJ8|gk4T-JW0CVJqJp2#MDJk{AE|<&Cmw{as zK@>_J6OYpnX&-*!^=>0sQXOVR5B4a~T(*-yIjJ4Zcmz z>Wy`p(!=yH-LJ{0mi8)^-X@JlBJ!OgrhK;woZ)sDO}5?T ziAzo#X!p@8aWcqltMjwg)hOm~U+B8Pz}Fh8$gKcIAi~2l)}h*SuqxHxgBDBkvts>@ z69REGtvH^XmS=uAy^8IO`Sz{JNyohVUXt$lnX>lZEFAWn5HR{Ap-1eS3Uuw!86{D6 z0T2;~KN=(;a95dwPczYv27W8sLlN!cSen$py+ZtKU+H!>C>~-GeOYBtSqTanv>h-b zM8fmp1+XBACh@b)a1}{g*%6;fbjsBpM4C(tEvtjs z!?EKykzYWZzeVoQ#mjvyKgH|J4sq1T*(dS?SCPnwqHhlQxkma}wHfbM`$_wmAJt8D zN8$Dwzi!2+l%E!td+54<>hRY~5&ta#l_-8+LDc?{?WI1)v?u&!w|X$dK_cJn`@0T= zTLt0QXR&jCIYQ@Ja!)QWT?9SnY@6;Gws0S>QzAhhNMcgRU=fD56=`Pk z%hQoRV-RTG_;(*F=!4brWf#}x>8%opDcmqU+oHgX9#vU>7|JPa8e;OV)@;5G4YnqG zvT=12?Oxc)l31)muJUf;$n0ATjVHsR_PzR%WgYTNPWE;~$3@3(0e=_cxj3%ecD5`* zXF7CQVpgfr4U&Na_|G7;%SH+b2gYK3A%xCz=1CG=ghtj&}P5G?Vspr>lk^jqtZTU`+pVBncM10fN zT*;I6bEhTdGuKOXTb3%n-BUJFA$BG4YocJpzY#O%hm{6jd?_%RSe@jg!kDMV!aF$| zTJ3*ATTAvfGO=kjilhdkz4}*_-`1pey_&0*+%2>9!Qi`o#fgBcyJJz;T>pL}S#>@k zJz>ok6G1GuxFCP}9H75uwbfgj^~%)G!Ehn-|G-AAxQ8>Ifr+HL7jet(Ba7|k)thVF zd%VZNHSP*vFKzPo`2Bwu3Jea?>W#{$O=j!brU%`Otsi-YJ$SAFvAkyw4A>F6?v<>A zB?#La_Y2JX*Tyu`evT-*8MS8`^k>MF=C1uxzz_#Ba{UHo*Ahu$rV5Ip3EYv%V%{N< zBj=8M&05eX^?Re41PO&kK2yPX@E{H8ph9?p?n}8@ikQJX1P^yS$1pIhnd#dGjG6{O z#pz+SX2-iN_U4RHw+(D9mTS9l|Hf|qc~A~rr{IxpLz1>^#?Nyk%&kvBr6Q7YQu(3+ zzo-1#Yw9^C?>?VNj1I06Wpr+8WV-ohB!+r<|1{uxV4JUd2GY3WbEaZ4yQili4a^_2 z8Em)oXN8LzoRMA?05V#d)haUJ7n63%0aNqzuIPe2`jM`5@U241_UMufzc5KN&V*%% zUYYM!a9rss;LV+mEJpgP$~|!KuhTAI%kp9+q}G7$G#`eN%uG#Z22_zHVj~fmW5kgs zU78rLIbYl|ZvcEZL902o5}St`-_}6kAL&0a^oQ8fGvhZLiaR3;1>fFf)M+;TI<}M9 zjz;JA4q?j=S3H@9F02sbr#P{Yh5w-sfzx@2Y9M7`7>35Bk&@Sd*y0qQ!xQzsK-=w@oH zH^YgE0@d0%tRf=c)673G8fJxnk-$%q#z(C9Igx7y$v66Q!_0Bt z;w-0F4a-eENaW4xdrC%SVZp;$t$@Agf4u9;x#M2w2dTqS<+IiOk*B%=?^Yf!{6jXF zH_~6OE(nS>xBH=jz-m8~hu~0pQIac>A^1At;GVG@EGWRNCs0uMS^bVO(P#AP_h-HB zm+dJ&pZ4#Lv>0p~e=N!bxw8sxH#sF8x*V`Nt<`zabMg8ZZ6)RMMB_dm)yId-ks;~V zZ+|#~oVlV7HepRqE(!_mz5VNAJxc{X0B22eXn#5Z%F5kL-?qdtGp-*YLCmirgSW2i zW|!gBJQiXm)P!h@UbV_mWVTWySI$L1wy4;iNXr^AKfY!%aCJOTzteYJ5v1#+r=yds z+gE|g6z2X%=GX z71YsEq5;rso7W-F*q$Q?DcWhgy9VZ_ONPLNcMlEDR>%d8qJXACx`Ss z04lqzFGN0_jd}H=U#L#H@)A@)A_Rn2CbuQ@WrNWxdPBFf#|q60gnwZqIdKz&e{GkT zIqiUR|5|C~uS31Ly?V}^U$yY*RFV!(7v|2@WXhz1wo+kz5ALS*+T*$A1;C@cijHGv z@*H0ul|yt8=dbUI_h4Q$p7NOX$#M%Tmp1HbgTY z+=gLZOPC4(_3LAVg`U#IT^-3L$=3$mAsrw!{x`KZcb=3tA}yOde|>PQ%W36)&;g<* zLB$zC$+{XQ^^bHUk9w%xcI1MGp8&ZCTlYQ z@PmW)q2v@&$Pk!WA6_-8!D?ZJPSodMkKS;dhJ`$%2bSX7N-U&~VhUxZ$9AMv`*oR6PJ>_jtih7`19huVQhDexb#%2q4NX|>AzVa=fFt2Tr69KL!f z)8AvM>@;;>V(1yyJDR~h|O?9tT6wuNACkg;{`JenM6dXi#4ub_SV2Ubg}*2@Y!qt7?0gBi{43$V%}DPz z#d@gw2G@nBcu6|Y_6M(!a&mRM&_dioVDv^NKl{8^Wn(m~oY}Gs;ImA&Xo^z+eb*;5 zYR_g~^4Tv7?)X<9TnDcgTQ#Y2WCP;WS*hr_Yr~xnoTUS|)~nHp?g6gviU z_$3|x5GX;tf&t@gE#?C*jRW^)G@*_=P;94nA*=3%>Yf9paeMP;IEa_{N+VM5HE_2? z5F+=Ed$=%l3*Vh8LRCadV|lM7oHgs77(#~-K_vX<*qph8$k@4BkvATyFhtztCRh(iD=uq>|x$fxbjt;OGvY=R~N^JRE*m$gS=Y0Ru0YDsPKAZ>DuF$vgzH} zsl{)Q-x~RK)2!dWYDpG-MkV2-sJpy>VK!i+zaJ>4ckU=#MN#xy?a8s<)q_&zR4vJ% zp+9qoGKwbXRh56NpXWe-m^BnR6T5TtNoX(VJa~jC*GRQ;2#3gQStHGh^6r;j`y1|fnTX|z}FdAr~NP04-+~2z;(}I zIpwTo0e)#+5q^;T{bBj9!s?h20skMpvDpQ6bbV+v+EM|EbtC|2&bk^3fL-=jlPxfX zUP+vHXhp3{&^7^uk1|`c5D>rsk2$|1j&<^po?N4UP?2Jl{xnL>vv75}4LbD)FlB~h z6-TpeC;mPqJP$Y=@-jzB8@#zSLnNM}UkK!&{vu-QR0G5Dk1( z0g#%qi2SCpIvY}=HS^IK$a*-21q2QsRw%t%G*3WR!@7gs)KCV?J|9&E7isYWHSrSD zl<$NmlWXHs(*J{~f`#2|**|W${T}w~c0CdCvFO0`s(aV{eWN?@stRjL!7hL`Q#}>2 zdiEPvoEAH+} z+suM>Chd}iF_dGQ3m$B*?C>XB3_UC?B#P6{L?%Y`hV&S2W(Y1K%nWhvKVKrMW#G!W zO0N8QVK})Hh$^dI3q0fEN>Yfg!C7@CM7a=knFYZo2)rQ!AGW0CJL0Uo=mW!%C+4=E z2ssGpnVnNuU=SSF!xkvV!bkuf)Y{vV(0g+=r<`e{&>P8{)p~v!$3FM7`q29HlY`&` zsU3ulh~R*$yHweC^NMo;4)jA`d3PqKvae$_6Vsw4^KVsIO}#n3n^BS<)KYd{-lI7~ zw)=c-z}H(RdVr*@n^9Jzr93GTzCkP{lXX2Y{M+~O_T8F%TW~gHh*%wvLOOgW8UcJ15$baCa6jI4t+m5Ovib={& zEzK2NGa)st&D)+>d(F&0YFfD}GFW?%AV(~HwQ<|=8$4=qTaTOz>hi+^yHr`?&Tf8V z6}aL;@eelxZ|;t6z>4(k!bLYfRGV`UW)oA(&q+S4IY0owb)u1a4BFAE3V&=6<`&NTC<{Pb!eA#( z_@k>iW{GrLSC62&&Q7umZxT6}>EwFPWMc3+;+9G_?<_ww4qcGe&w~|=%s5PxH=DlP zoxvlx#HoasQ3{Kqeh*yKS?tBA5+OI_lGV?rj_8J3XPG?h|@b) zXu_CiHwTrYz;#@=)Q{~Y_BaY#Cwn)Am85$lq9bz|j0B;~6Q3H?6 zG;>^}{h;U9&a>)c&!CnX0UIX8qn5>Shd*L%;GLNHk9xRQrz7Tm7u+9tM>MkHe0&pG z)NSh2R;Pi!e@%@th+FA74BENc)n+TJH)#lviz%kX5r+7`z2+f# zjC(!BJj>^^$0qe6(prkvW?bqYML%u-vYAx3pKAySRdobqEnT@t3W%O)Hly3gy+2j^ zxf<(X+@OeE5eXCY2b;H-xbs}1EV!vD@Q2ZQCz6+L=G-hLMt*WxaV?W=3j8vauyRnn zOy{rWgGZ1X#O=5Hd`~E2;YXC4%%Aajc*o3Bh;wPS=Hf1TYfWQgWclA_18q5fLUl+Q zG%4^@r$)Z^2+_QdAYwQ>gFLH8$(;Aa=ELa)nmI?iNQN`v7z$D-b(z?a_*B%AN#OYM zma)@y6LXd2__Uhv4{=v_doeh5cKF|m&@`vl8TO=x7Hf+orcwP0GqY(F`Tuo@Z~ll} zrcs_r+px=_QXL%p@xto-<+&?mb?ytqDOP_7gps==h;ozTZ^xxUHP=h`F>WV*8Ouh{ zycOem0ZkzVKEx^Oeirh_>)f~@CjFL8D?(%tQ6!EUJCRQFGqS{AQ)g%RBc@D`1qO(&HXgD^WY$5|FD>XMyR9wy%$36*uC1D z$Mp{dM=)n2sVo>$Bq(AXngrDJV;Y1R)&(^Cq=zDc2@WvxzA|{I2GlV=uQ#_;HXv@o zuoCxZx~15si1rdAv#xuYIyVKMj=D*|XTiQn^fMJp+d!v@y9KY+&IkQCBY@tyO!SH# zSpGNoyc8DZte5IHaH8O&{z$C%JKZaJ<9+m*nn*8r8!ZLAcLStr%?R8uuETqaB8~L6 z;B>9-j`zBkKA@Q|fBdYqoFp0OW{MAW4h=DO&T!9_xoyP)t>u5XN>6f~Vg`ORss%Mi zkH!WwUS3j|F-r_5wgq>2VZXE+kv>{NMf+1{YBIE;w6J6O=-PA#&-ExvP&ChY*!7N9 zbnh0b-!ZY37Xs;eWl?i2nchNb$c%Vx@8x8{4e+l+dZFeNUzx#PMQK{7OOwlmPey4R zsfPVsQNzq!&R@k(x;u+E1K=g!_z`5VVsWC_{{|n`Aq!o;npk6(*!gi-aIx>>LckB8 z=Uj+Y#TLta`^1z&XjNr`Tu`3 zB#rY5O*-AM-V<)@`juNn@7H1mG}(pV`lc3FYSSr4f!46q3jBTP=nZU4>$m|Sf`GlG zeGO=iEEN0c-~mECaD?)-kqzO}j!~%=O9W*7nco=l4|sgWG^+1OegIy?ZpSo3 zH36!)V$3c$$Eoyo-iK{fIT%mGfbaFmjx7Cq4JBh52(Ic2fL2YXy>MVky)Z)GlFNJD zqkbK{ugfw=W4*m@;?*tPvw=$lFM3K+RX}J!%ikGi_BgoaS29oH6IN&1VG1S)iHI1E zD@EZ8L_C&ZA8(VMj^k&iN5J+3a+&fv^nA3WuQK<-e~v_cx$TucNdu z`9VJ>owNh)Jnvl@v4?;>67* zvn!U#{9G2_l^u=Wxjhg@qxczos-78(>Y>^B!K zcoQ`7huY3^15!ULq`lVz)maIB8C~fN0E*E08>*l;Kt1fKFmr}3nq8UqHGlA~GFj5G zt;x@Rk)@~(da@z_r{!`T5>mDoWtQMCaB)H`i+(Kee^gjJu2LVrqXf^@mNU%NhjRBP zR010Yh6g!d|9GcjFd+P$yC&)xpu9K<(HHx9_z|=c!VhQ~jZ)|<0TBCRrQ@K3voqhD zV6N7qe!;ng2@We?RemRJRP$U5=PR+&J7CX2CK;Tg-<2fTyJ43l#$~VhIB~7aP21`c zxP>AUvF#GS?0d@Uk;M^*qt>MGL4)+Lv+OHp7H^Kx*TaN3_s0LFrHb1WosUN-?4>yc z;Z69EXnMPP;m|U^jIxrcAL!M{gfINJTfl3zBe|olm=iuszohh%JU8Jy)>gX_%C*!~ zNEz=Btg7uR^6uB7CS+V{Dnj2%s^F6C<3d4^ss-ur4S;`3WzOUbP;BhL8PX32`Q3{d z)kcU*{vy*Mr{C4hV%OJ4vJ!ne>tMlo3KkjpH4w+HkpN@;)QIUoC`}$~FdjZK1jpFM zRpyIczs52chQQ#3H zGaVe|%rGhp$%<#RZfjNdCOZR$`0Y36RGo6Gzv+_@3V-X+^xvWqof`Uu-H|*0HVt=h zd{O*;vfpQA@?~f9kH&3XPkSSA7C@;x z8k~XqNtA5h7DUAE$v_+1WT`N}~DT#t+?BmOu`Frjm=%4S^aK^MT4QN;}_FjJ}(%(V;p+V*asY=PxB; z0;{5YQA~p~-!dMsGsvf?COe>YGImsppo#0q_o)H#rQt%8#?R`wldNpR3gSU!InW@$ zusYvVf2IKVPp-A|P;vIU5Eo&Ct&~Q1@B?cxY{Gt+h-H!Mc}zxi3G2qu&S54AtAyW<`012)OU*az z5Aibko@T9frmUPWB9T={rI`xid~urA!*e$wjgKisQ(bn?t;4DdV@0vFnt_VI^Z)%`aNg($P%QC%ACXbJw_7J4`*Lr&CjwJ!m?m-)WxV(pY!=UDT*FcX6BfX4pC=zE_rnxaqIYx&TWNz+a|_ZVF@ z#C2el=N0h&NP|L;;B|-&*e7-eu@ZemDJ}bbhV74y)CqRu$Nq=bOt5<(;DlmqLL8*f z_B=7D6TO{()KkZY$rO{@hb^pFO&7GZ$Uk~Wuz&3SZqjt)j*cqALoxEju)*7=-ypr_ zbC07wP^R3>U?(07`csf)cgjUM#F@dmK7tom;qU#O{0I}QCRLOamj7|jYzn%ToTN;3 zj(U&U6aqy^jsq*+pBZB4ke6S$ zWkhG7QVL2BSF!2Qg%R8()Apaf-I@e5vI$*BJ&u5YTdIE3m8Bk?G4Nxl;Qy4^=qbBo z>8RcVae52Yc0@@o1WoH9y2T|fB0hBan-^}(+i3W5M)}z#suY7D@K#tjwAlqBAp*`^ zgEPL(O3h%`-tcd+{dPhA6;>|5e0s`W&XsY+aK_#Zn93I?YJ<7CO5mw$8DxV-Crd1-Gib;21;Og?! z$r}#|ga_-7_Qksdz@@vOSdj{%3>NUY_cCH?q`itwRrD#!J#=xlQjEgX0oXQb7u{10 zdS2J-gz$3f!Oa;eJgbSP?JHLz<^S#54Rh_B2BEq(U97&w?JHxa%}I4WymwZel=C@0U5 z^gG6RuXhWc<{^u$jrQC=9UY-(0(Spc{BX>NO3#tF%UX%^0nt+&to|*L-tkipj{vUW zMuzXpe}ne6T4sRMJ5=*$Yc5A~icme^c7jS*o@9u{IuD z07-;GvWKj9GPkv#g2TyBz<_tl+p+C36FJKiEYZEg5k*F9?4Fd=$z-C($m^rtY)^)`SkHzS_e#>Fu3ZF=5NAAsU@YspP2x_AI*&2oO%JjWty?acf=PmOlB3|!mGv|1 zAM>VhCqnu$l;o!2x}(0oH>yvGJCNL!f_qF<0*SN69ttB9HBol&K*qUt<;oaRe+>*g zLde5SZI|~2^-fLiR*Bls_b&_WND~zWxB0&XAljJ6CKTkq zJ3fb3ktWwijI6r1*in?QrBbwP`J-UJR@;09sRux@#Jw)qnLd;$=c2gDctdObE|g96 z;Vw!S;^mFSE6E(jKvGtJj#@C!TwD~Q5q4 zaQ^GiF5Nh{xd6kUP7c$^(F+B}`JZvxuevnHzE;j^h;x$`oYN*gJk`om{s&cqYD-!$bBY0jS1 zI@C!1EViiCV#HEnLwMRs-KIXblG+ zQPtJ^`n~ciiHVKHvx_s3ll8uuQoBjgq~>;iw$*P@kI2O>Ufs9wk$4R{t*mo$OYhEL zuG(JQ+Xz!`b1c&>qQO9=C-yG=inS-Pg&se9DdI0TY2&>KxGF090czXnA8{AZ%_iMs z4pp&hZ09Dw%cLvUbX)Jyjx{+sPA?D^l3AtUAy+wC$g9AR!X2wO&-1wxue3^?19Ck_ z8!7i>za9JI)8{ic%{YZp#% zi2xaEaO3;047v7|o+3QEv#cRuG>(P6rLa_z8cP*?Qqg+>$cOSWZ{-!RA_sR%?3K~R z@TRYuL0*m4e{88{3sJkUJOuyo#8+*|?p^O0zrj>T9OJtNsn;IL9&4ZAxh6*38)c6- zg9~0ww66$C_@jyE=SO6trL;2f&G#F+O*F&{4-zC>Cf^GU+v0L-^my!bAD`%#6wFxwu62ev1HM&WPzg=Hej+?ZTLXYBwt{A>q-EIV@TJ#m zov6!J1HXCCHusEce%sJ$ko48tWf}YVwdl)=K+~MB;%*oHR3_BBHhU$EaT!SwWz`pF z4&(u_m0Z)fC?T|TqMd_)@$5aWSPe5HBbHYEQve!ml2pSdf zc7^M(i^u?>L#Pnt(O$K(Z?%5JYk6FOIZMHH%{ulOkV)et{+ikp+f)S&A|URM+1DFi zeRWBh7&@@Q9;$PL6K0;il}r^Uz23iDEsH&kay?>H0I|1V=2cu~7#IWIx!-d#+cTq} z>^J2(Nezw#75wr3ml5NPY9)lsVEf3B&n>fB{rB7n8Pkaz$0m#6$}nD=CCEZ(H|JF2 z;wnl{E^p@@BiT3In3Hx;DA!cXcS>Yru)fUi9U>iq0GAhBI!a;|Excl?$;XHkEKWvc zvAUD@8>Ilx46GjR>u;x#fn!Ux+$ATmh3KM$_^;o?%e)oI^gK%mQni>ZlfC=T8Z}2! zc{-q_u*>FS@$_J2G5v|$@vvaGxg3qd@A>3fx1QXldzaL79h8j&G~A_1rF!gwXo zBaDs-A_l6=3NkD2?5|lnBP>1KO3LS_reTP~j)I?bcU3E?4u9&cDlEw#Db(yj!C5$K zN8`E?`qOJWv-#YvZM>Ga7ek#==;=vkw#O$$(Aqr#WbI=W2r`$bsi)Ru&Wsg8 zL&sNasdGMi;&}b0%(RgIIE7L-uFMnw$G_gq>7@u)2 zc?Ek8zHw)YQuk!fATwf;OHdgtv(N)J!Yk{(!)qZ<4&@i_QE+k4sK=6@9h|I|U(y{k zX{Pvl3qR0=WuZtg<44{3_I|km=);c~#v9)y)HC>s3#5M3+kZo%(DknxtwKdIqSxAh zu1d_87+6$Pvot_)HYeZlXlh%_6y(`>>Nl1uxX&{b6w3ByKM)-YuN@6Vk9&l{%}_<7 zOIQp>nLw(4scA0@s1XB^z{fL<8qM-NMdxJR1io*m7qNH_rpouG+ zMvEFh{6&-;Ld$2xutRi9095D#&FxIbQBpW|`;=gG;^e~JNt|Z#PdM!E8Q>asH!zkx z4*5Ja5nR9=3ARte@}0|mi*eZ7ny1GS{1Qcb_Qr;S*OTBGK^AnMAH8Q$G-CcnKoO&B znEyGrsuAkpLbTIFJOMmMd}To>DgpY>Qm>eY6i@FoY8^4u``{bWY3)0i!zJ(QjgM${ zJcyhjt4qGZhrIWiy7S&8{c$b7APP7p?P#ncxV+!``i+N{!S4bOy^t~0km>E0Sow3M zT8yr3|6NQ*V)|QoIsBzcV3DJ1_S2#@yTZJp9Qu*?>h5J4oXB5whO~DSRW~4R?Kq#D zRwF1TA0n_IuGf<8Yc|IkGu2U=if_*Qb{xnQv+vFXHSfqM*TtlTR+fcWPM`C9f8KZ% z=nH8eoZ2y68F;U2z^xuz$F5gcYSoj#`d3+&lJf5}C4uCJ+LL#hvN8hUZAM)gZKtR% z%z`RSlxqUUe*IBgRf;KaDUaq0bXdNH(Cb~8^uDYYF=OrDk&K3Q$2~!TUi;+zXjM2` zSIDO6i7lwk0#zn%O>S-g_tH-NqF7(Ofm#5C_|=?XzhD+w-LJO!YrdDCfH^;)A_i31 zf26l3F&{Sq#770VC}CWWdksd$L+I}@JiLG-%*?&&?y(jnsFt@qI4T?Le9V{FzN(Uj z0J;6FOGBd?3-@}|C+5(M)5sDE=jk|*J;$&YPuWTdPXnfsV*Qe>5u(dKd(HONq*Q7g z7H5~6@AZV|e=M)@IMU}d(#{zETAkl&+0<)2ktfzHAzgkX4p?K(JLdl$&|P zHYjchd0|*}PBlMtmOX1m0t?0U$o}-g!(vlQC8Q+ z?Is9Y7*;9NSgWluU%^dh-TeCZ zrBLbKy`lrY>p_ibBZW?!imB`GdJBl^GE?0aN3U3rUVt?Fx5h%IuGI+{v=6qoyx%s! zyc9N^9Zjj*b?uY#I6DR5r94D|Pzo>BvkLTBOm=O4Tvddb{LsSrP^?>D z;LcpryXtv${Jj3!(Wwk}$8;Lnv4J~@ReBS+u03FO40n?^Z*yjSJfe2K)OY@z&;>hx z|4C?-r=c|2y1WL|vpYbXHEC}%D~*q{bia(m_i<>bu$;K24@h(oVk>447;cgE-~ znS4TXo!RJq{q<3Do3^<_8kP=nigvwS6oTFJJJ!UU@qQ;JmFA?V>zqN*K2IifK1)bC zzcpKX#H)C4<292*3xg*;Uy2mf@W(EG&1_1P7idi7$Pvjgt1oaru2DZ(=%&x+hv%+* zdAuX{L+brF!_BNLv$`e~VybgfBGHZwDB&lfS5o0mmDW17?h&8@f*_(tIjH(_;!@(y zqTab#v(2Z4-6Ru#2i6$ZtMoHJ%KhhSF6li!SD-mkgc#R4<$a4tKWxhQ_H<9?TyYj-wM&NRXw zAWOaluGiV1k9*%>exw&Peh6H+ljC3nl6bGitW1uGKexI0(74e|HF~t=xp4`&zAWa^ z#<#{PJg9XKpf=4LN=mR?jCc~&NrUmAVB5_$%I~D{AuD4BY9jzN7X$o|rde|QN+L4h z!9ZZ`t>NPcC>@22nsdVfowMXF!$$laaW>qmagq zaawg-E3B9>b@fpe>3cL^-XZv=B_q(?Y*P!_y;NA#I$yVX*$f%JcVP9^J4AmPC}t~g zVX1S!z_K~I9KUpGdFM-}`~}rB7IY|F=cUovOJzsJW_5;)W)!Ml!exI#Bc*Y(hw7gM z;VRIp*HUHHnV}Q%V`A{ywt^&n+s_uGsu%gEB1e2L9sn^z>p%{9 zxCc!`a^W)Fq+fQqb9JrN@CAcB}{E z#-mr;pLWJ2=(qiioxREoJX6i2zSY*xD#$h?*`N=lknqXZjB5hkMDMC9?rDi5r0y13-eMJUov%W_PCOhr)$4UD>ojh+-3nZtnU9SrvfNh6;Y6f27uIFC(cqGGK5o*D z{7-+$SFY}^BgS^EP$AkvrrkOIdy67?Iyg)@9!-p0De9=|=qo>Zsd0qiJYmwh%DFg% zt(~3pWc)k|H*zH8AiHt<9`iig=q^nG6!AfPpG=Eyy(c&BQ4=8W%DGzoY+VSTDGI}2z99d3P&8u3<&#^Ua+mSV!Mo+7u>wA0K%IT&1 zfylJ=WNB4843u>_cHXFU@E^g~3at@p;)_Rv%U@;qf|bz5OMO$yerwN_;Y&XUy@)BO zn>c3BYF_XOP_}6$-6|%$xpp>ys%aN}h_=h924pL$G!LRFqo`ZkK6D47bLGDMMDe%0 zE0Dd@3Sw=~D0|;^Vz-sU=PzBo^dY3#$I-tu#RKpF-s}T-++ZHhM8J^AnsobT!^+0q zaMhF+t5hb)*}s2k=;UL3K-YHhN3f+A*+J&tN_b+!+O#v|@Y-or9A-IgWRy1gFVRj! z7gtbP+6^6@Vj|g@F|of2^Qj)jy?nB)LJ4$mjfG35_LBBJ@bTrL!Fz$$7#^qu@qoLTI_J>2MV#kPqd40gQQ6 z%@V@NsXkTo@VRfygN`A1Fupvh6{oynoc?$+*~M@lPxrwT_VQ8&jbgP;w#3hPFnoNM zL8kQnSTEB)7LTt2>4ds=C4B6~JFPvQxzn-#MZ~Q4UxSL$3^?_ z;j4!;c74Kks3F-bKX$*kfZA7>Ee?G+G!^|6p1i{<@!e9DtT8~tkpsNpjGBrwsf9*|22MS zE4^Z=TxO_d#Zf8e6**n*NE{8{JS^hbv|DpGbR`v8pxc}jm+(Z)F`-c>*-9zocy`N* ziWzn;{E!}`(`bYT+p&q$rprZi(0wwLmN@-8fDfRX2!3EBD8GU2<b;+?=eYQy z8z9@igEcKErR2W0_H;TP7dgC|N)z^O_6omkjuCqBOK{h3xUqUX$mz|%>ku2?>@g*` z`JdICmV%i6HO^c_-d<;`6!RnZarzYsc*)dGWkR_M>EPb@>&d^pk89r0#hE$!e#Ro* zAs4@7Q7kSB^35ufXAFkNaMlgV2NuG7dn0C|Ac!5Q;E+x}*3_*e5%=K1NcDEjCZ_9@_3+~F)74xr@-u! zHMst0fsH4Ti`_l2^dA4v#PW*wL^DomrGL_pvbiE)*sILliLmdqYc`B`Wo^LP$k@)E+|^? zQ$%1Za>g*&HCt70DJ1QDb&dwF*S*gqb<)*z)e?)siqTj(%*`^UGdn^+HA&h!S*rwcWhM1XW@n4V+osn6S+14CUZG-~uM;)dxZk*43DSsv0KKdvv_g(P zN}7({iTOlW?`{AnjvZhs2PfNzmkcLjZrE5+@8&FPedXs~09pq=nOAbO71Lj@Jbo$U zlX(C(wc18jY=-i(_=J<)C2#8;Y8-PS^4iavZ*nEPb9tbxMWZ~U4V&hi(}d)Dg*$jC zfmX|ZQ_t-NESv)D?PUPanl43kz2>cYizY>tGpzs@eZD0!7nBhlBYG1uWca;fc< zcXv_q=tiY>VKeuQ_T-wn`qla%-V4yQSMF}0+EhO#!6&@{Di#Th;ZG25Pi>$3`6$`g z=LOA~HN)`K6ifn5w-vkI>Mw7IEE4(X(#YYGPbs2Qmg~yle5$F_VxMQDzhNdi-ArkW z0&^o~fv?{QG}4@{*n1PJDHC+Z_y=G*z;uWbT@(Deq5A={q49B4L40GyX+4&Wr3PVn zkVBVw27kEo5uGcQSh75fj*qPpaC4aQhLrZ7xMni%rqW|cclv_QMnOM0_~Q)8Ip<+g zw_U##(=oW$F4auaZEuqWVqSmoO2vP5gmmsT`7&YP#6w183^#JyAg=u-@%T)*l3Ip2 z-vKL~aYeqq@I9Zonrc`*?v*_w{{x39CpNboMOn?W(L+T;?<2~(W5|4(r9ZhkKj!{} zJlQ|mf=@QyWb!dWC{s1whP4h*HPEC>$orS?W;Kl45gurl@B4?nttnk1?JzR)*hM$T z1_H1iP8BJ}@@Myz0c9yG8jTBX=WJq|_MX9d6J0Lwst4q^57NpcLzIQ*6R$uz96Stg zbknzs@yg(zQs|MnKQOLb5%Dghx`j6Q@IpbL!4hn69sx0UCukFy=G1g&qJ4j(H)+*5 z72ojI!(jb!pth;2-3O^JcY5VJS*))x(cvqbi+5LjY=uk**ftPdes^}`ezs}XNG;5) z#gxW`xRDTae~j!q4c;*Q#s8)+&p6=y(E(m{>%DE@9CljOF+$@5@|6k3z!YbnW$OiNkiw-WR5r{U>Tx69D;s+5k4m%iILShZNaU#QrupD>K!b4_0FMl}2a zWar$%?0!L&S=&AVK@3@p@q&CC2h`rLJ?)ou@s}qega0m+{RqDfo~)X4T2X?j_dFzx z!_3`3&2+$;dlK99AmXujJMoj9@8ez)nIei+OJixO=J-1s0m#1P%b$Z_hTIy3ol}9$ zp83=E!GyNZwDT;dvq5q#Rv)r*%KfZrh|i`2e*4dfGw(VmDC1qz-1dTMX=Nk7cW+5j ztdFx2F7}t_2E=?m^*7$s;96<7c4ON`ijZ9WpQLdRH-Q*k&h0d%!dsIVVZ6c29ZegB0oqfmwqz zCypTZdB%cn6D7@{IDA<6TQMsB;^2KVw3yy9Gv*u@;s1LU1Sceu-}CDH@j9C3j2{h0 zI|R>o#HBwusK$QC50IXxIFbD^+s`l*UYT|zbEErmkX*Y_K`)O%(PZm11esJJNm*gJ zhE-*FDZ!}eq<2TIBJE-W$@6wT_hgl$+P0Y+|6xi=x*4W{RE@~3GW(pD_aw>WF1M&@ z|9^^?>bUpnVQ4AIwFSEdMV3;@Z#B{=THqhE*c193gh;_ctBYr9jl);$i$Xy7p%1NJ z%>Kc)_3z-}jnS;F+J!>d@YO|NH9~1nZ=NpQCg=`#>$#UXqoWmyms@6Am%pTCp6fh3 z{`Rl=0d&gJS3m9uJ^bwo9vyfyTW)54D4H80Y8!*4K1x5zH%)yJyu~>lckZNgW~L!~ zRGIk;UEk^-#6}=T7@+D&ZUOUqBbOORI?onGNd>6>mupvSa3NBpb;(3C%f^h=F|CK} zipBC(V)&0OGx%f2d$%6h;+>gG%VD?kzJxnSZp|B&N_(Yw5WE>qp3NW#Xn#1Y{qydF zRmNB|hvH=wFRxsfg;Y^7G&Hs{uV{AWKOcxRXDOiT5^0r_-G?NGEb_n=xfMl7sD^ zPr;o{)JvOgY*{vD8AJd#t3P6%d`vS|HTf8a5)YsMY!-cJzx{dG+kA{D4fY0^SVg{w zgMLpOwqcLtBm{NL@2{?6KQIdMM9GV=KOKw>fkz_I+(d0H!l}p zcfL3L#h{Mw2Q+?Xm${cK#Nt2RoUvzCig)|x+VuvlOkjHj?}y!X|2UM~H2GtIDjf-Q z;AEjBr`?BWvfSCoe*dm>q5jp;v?sEv=PkXN7LrWFlX91?qo6Cu#&m6vDhcGk4&vIf zs|10j*>E^lXaD0u-ZM0Wz+fP|Q`D+rC39AbI;I7yz)v=Z06&Zlsf?>|!xW3oFThuZ z3eOV}$5%Lp0{o6~dte)bkvaD6(hCQ+q)}-q>Ebjw6k8ZD7dt3q%MapZ{Y(@F6Sq6h zEcP&Fc)9(~T?d|pbA5yOOE&M0%S)&-k+;SK9l0a2frA|_|Ab83Hnm>9@ZWbG*(`qp z{l`x(yA8a)s!SKlAcmaHwNjO*I%l3f{Vn&!bmr7cuJ+OG@_uE5;{gd8IG9?uSOQ#Y z+#P=9X`Kb~4%#GE8R--Z-qswWnle$EV{p}5$jQUZy?HmQ3oK0PM94g%U~<4~yor^Wt@U;Jc%olNiS|zkY@1aDA>LRMkdu zEdyOUbaU(_v$btwX(Qb5a;%5(4Bc7T>spt7@U@mrd>|v``k!~(PGjQRU7ATbxMEU- zyr9TtD-ygj6V1iK=Tjjh(Xe1*xaL8|rvww? zvo~xf0E?Vi^w-in5qjH3bJmyf=F(jYD`5m63^CDsJA4|Qy`yNi2zwL-R2oa{f=AOL zN5(rvvKFaUq1M2L%%MI`W_48v$T(h?)#28L$(wTCN=iHjINTTWq;37p3wlh`tACl$ zw02168ywycl^WJrJ8U3%QMs#$KZS>teW%bLCbokH7ud;-0#i*Z*KTlZbw}6EUA1Dg zOGQ@F8{xtQ^yoeoLfM0?xLj7In2_89>ZNqnDX!xjWp1Y72?h)~6~AdMAsO37g@mE` zSnN1kW(%@HPp9)?k6 zz@s2n<{2hLZpdLMv0u~3h#rV=p32<;sm-dmQImqPr0V`j0}NwT3_DR+(OcijarO=B z56m^$tX(rOG?3%ADIuE5o`EeFGx(c7f9*giWlQcRK4nR<_pdqQT~`QK{Fhb%IcnEA z!F5_5W6oY@5E*8C<+(>~`FY!AjPW(a9|GC%8J`j17uvh0nMX+O^=g3(qZJUJ`jYHz z`+dXY9E0FRz=fjO)3dZq>23{FnVR8HB0L}HlWxj=p$g-J9ZcOT=Hv`aC_*RG-)bn3 z&bw1EU2jjtAzXsX9~0ON$2_H~gHmo7`+XU72~A(D8@WMXp)x>dG5PQTM^j;Sddn3! z88$z_dyKIm9I#n3N%U_}6ehKOD9SAh**Je>?E6AE&~XROu4QS;{;6sv-P%GobaV#X z!p44%6903GhagvFMuux+{Rydi>#_i|&1RWb8S)^%M6>jpFc1*fsqpPNuG+5Cu5H%6 z<}czU#`AAlZI}~B#37O?jo-idFNHwDkRMVCiT`8VTOZlU>G8uSb3hF(o+#pzXt_*iS0rsBz@tBXK2HBCyPBBBLQ2g;p zmraNug*qrjq*!PRAxlWONxy&nS*qG;8B;*?Xqx_k!S`!hLW5b}jSp5e1L0&kvCOJQl&SM@3 zH{GFh`(P9(t5v4W)45)0^=rddYio{8Q)1#Hf6e!C{b0i)Arg*I=EdkFOyGc|yuF)i zFEwwj=pe3+9beB_M z7epqxkiOm{CQ_5S=k@%S<%;SRWK`&y4#0PdeZPy{DjR=1)qe<3N3CkUnl*X6@;|6< z33u;*2+)=&7fz;Gh2PEp&YaV>!w%eyng$m`p#z}Y=_4rXQ*~4=gH}jkT`?_ zD(`^njGlj)YbpFr*l}l{5P0hV^cyWIi4ao}k3WPN9zhb{DU@eT{Ql6fkGfodv95hb;rl?R{UBTnP}wUD76Zv0>9^T zk|MJ0kRGqgNsAGAsL`cHq=;})idv5NSa#}=fts!^D^|#;%+sNkc)5pfIbt!oX~`Pu4<(oeIL}LZeTYDI!n0EM=i^KGBzdj~UKA zqN94rN9Ly+LwLWk;HIC6OkEPizLzdu?w1%&(%1C0Z~kT z^JXp!O}u$@`~9$8TBVIzve}>#kRPO0(fdRU9#q9+Zd}}QoDYRE;zBMHe(&62V}y_) z<5URSbN*fUsi{+P$XAGLr}p?OR1d)(6%tT>l65t0qbE79 zN~ss0W|cp7kLD<+_!uEZYv(zlx<+IpVV2Ag$kftjE-S|CEMb)dQ3v zkhEjYI%?y0wyi9qlJiV%YHB~Xby_5=FUsZTs2yw1j}~guRBO`vBOZR3a6VxfwW<$S z8q$U0J_X*ApH2;fAXHMM#GRiR9R1jW>k}e)LY^VrcW9>|u3?pLjxKiMHCVY_W%lC% zG4aONKTxYO%~}2pU+yTRLk}wWmJbzKFUTH<0i1#TwPvPYfaPg^*%gHo>UJV>pKKPU zPv0#^3U?mBS0S~~Sz z56HCQ5c5P_8-QX4`H+L$=R^ok1(V$5Vucr?qlx)qV*G&MOXC~Vuc&U>;{FKhV$J5R z$;cz&EHs}w7jgte)|jXGiBd%(MPRw^!Iv6;dN2;>ILP7f8gPEc`nx0qa8K@7e7}{x;GF88cf0dp)VMgzTn1FAk}0ivy>={by%4>X3*#maJfsEFuW`qEuG$hX!j)J&9KJl+?|7veVszAVw;4w%Q zez$M%vY7|8!WusK4#W0ts57JF=b=mk2jS6mA|Z@Mu-dgork6=Tx|z^XskS%d88(fo zpuGak)y__YGlKd5%)^`mSrMZ&FgkA=-pv6^WSY0qLu{#Raiy3piizu*ZxplKn}0v_ zTVm3J9s78d|L7`<=rVf`@5UdR+R$=$MA9s)Aiti^FI5etvXRK~?-wpxHp<5B+8!ux zc?y*cQ;d(xhiGBB8!Ndvp_{P#9U!G#e6s|F(>^?CG5Hf^px$Tufvn*E#xFRBssJiA zcx)AlAKX}K+%NvOU-?A#N4LuQP-nz!RmW4&vBNYKzA){$KHH_+h~E11Uy13mFmC&` zWN(VhZNGM&U=fQ{Hlf_mUHF>b78UyNJC)ReLEmNBkAEW6gm#Xow0hR$#-f#?bA;sW zzvk7M#O$1!LKjz%9cMPiZL`Rm&SEjn74U8HB|&x?3H zuYq_oaQ!|+x&3@omtA#R2H`b94;_4acb^rNY_87<~ky? zgc?+lcX3WO26xpZfuO_aISV(M??`**W~PDB;*@fTQA5~3;gg6@{o(glw6;q{Kw z!nn1k(x27v$fK_O-IND^(kUOhkyDdkSoQLFb)V-Ij7D;ti2QSn^0`^WkzV#^P-1JL&o*|8n6vNX6Bt6hVCDz_{*C?t2#T9oqiTjx`D z0PpX{g{X*8((GK?f6+;NaqLZ06xJHgHf#o2$GAMxFcTeVwXUh9gT}%}!3V!V3o)S{ zQbEFNIW`0vk1tt$x)BoS>BM~v9G@omCM69=|NkWa8eK=|9c?9(HDAV_?ssQLrJMUr zm(7}$*sK1JieD5|J5jdyoZBhJs2cYNP0lTi-5s%M{11sw5p26eF8oId`x)}){lcYa zlu5HoG?@vs>_ae=B~d|2N!4Jbh{|8T_1bnHh-n(#<)x|02idZR{Da`dn!VRvz@WkU z7wkP|re@r8F1=|?=YxnJ-qb{(1l6zYOk`AL5(8N$yAuOObV?0H>7$j>)(A426f?9PirfLsrJ^7Nz$1#VJlR|k8H{$HkD z#kiw?{Q7Z9KyAAz@FzJcJSJm|yVy=27i*N=)3$z;y!?rP8T|fIKFjOcZI(M^3c5Y5 zjGFw^q<=I9_%hd!3b^^V+$-yNHr?cQi=|_;Ikv4e}YbSNO`Fg)r ztlp>%cT|XjsIZP$Ro8uTFFZT;h>p!ziVuCGL#A74tpl^(CQCVs1Lm-(XBT2cSKltw zKMP;c#$JO?0DrGCgNl!7BmcO0l}?+j*Oaw5--%rro6p^JJnn(nN9|*m(&?%?*=>=$ zNmEDFoiLs?bcQg~pQrt%X1d-k9UVgr&Me!0?GIn?+5qVmP-Q@t#t_`w@zM_dR0f!# zV~`iH0QS?jyARpa?6KhmkqCA?ASMB|6KGm-fd(`IswcmH^-U1i+}3eel+ty!%mdn) z%OB*tftBA)GtH<`g1tM45kDcg^Qbz}&)L^1phA=d(LDh!w!p;+}WmPc?ZPP=7(z`p9RtrRyuO zuF2g|$N0SOCCq2+2chIuLn5UpqMc>ELo~i@ zw*N&P&AS}n%FQ4J4Y4n)(xw#Exy#IH_H$MKDcZd$kF7_ketK7+_bM9N>y{@qq&{Mx ziS<_tfz#lHGlQp>VCl4r%G~F=aDJU2xM7vRw@}ouq$kD2)J`V=oX)$9SP5$c@0Plx z3pibVNvj6Qy1=_xcG&*ax3yj|7xp*)-XTqr5HCI>E|w38mrNd+?%k2aw5EVa`QPtq zk}h|}ujmIcj;N*i?kB%>iRce{&FcTXgeDdbv*27NW0GgYO_CEJ34Z<$2xicc-8_7v%g0*SsC9$A68%JHj4cUDc0M->I4cJi2aFuEoj3EG0TA zFK%g}seHhpkFeBS7UaWAo6A0&7Bv{ZHz=o(xmo<=ZK0;|M^T`t|VvJD(O z`I8_5OjWXtDV7twDEz-7NH9U%w)PA7a0Wml(73Gk*N53fm1+!O!AeQ~ps2MBcjV+k zpU>;43ME~uyzPkQn@L#^AN>xtN_OrA_}0(?nq2oSy!Q{14L7F%6~YWsTn49i&crnE zqkTxzI#(YaMOS=S^Kb&>p_g#ebrS(GNzt|<*eCZ@MF6P-5`3?Eb|qDpqli2B2k}AR z+SL+T>UK_d%*I@`-l&6u$w2QM@|d9_x`ab@%5UHnJ_LnbId@bR>C@Y_F!`7C zIZTZ{kv}UrTv)g=xWU(bhCokdA8^bUuE1K>X;ld`4nqEatz~hs@7H zd5j**U${kz{QLIh?N?@DLP&Jd=HUYB6F#gIYpm*&M^xcD={RT{6)Zl#INgN||4<3n zJFCXJRW>^E(W8H^s0fGD>P+v0wU<@Zf~v0*a<)HS0DmD2S0Xz z$dXN=f=D33ZQKIiRvD>=i@kXVbN)rYG9t8Av1EehD3CGSHsXceOo!cSU}a&dw&b@O z6X&wpH?I%I!Ot$V-YEtQhd&FeWW7>))ur;XYnqa#9!U zToW|JqffTs%}JwU67QFurAZhonHm3REm=}Vy-_)%&J-7Vo7p3>y4(6jS#nSl2`9k0 zciz~7iI3-cSEMgJx}q@T^!!>t`c2-<$hkcGQoKrp5FEc2&0Vq(O5F) z)4$;d^*$nhc;gF#R*ZKOqgB*Cx?fW#-p$L1=W4~A;o9GwpdRaM^%Qw(5HV9?RP1f; znwi=Eo5{BRd2{bD@t?Nz`NTuP;B!2$3Aq?6%xr=4W|8_wjg@W{pUJ?wbP3BRT6zX` zxijpC=dzYy+j&lH7XTv3T`f+FuZwh9XTd~H;a}k$Ufr|c7+<+IzA65ruQ2Stmo4QU zqEdJG=tqOqf?MxvKA7`zcC+J*0 z8|S$juu)3C(`Sq0g(7a6)8>I~D*Mqt4mip?8>8#XNJ22!&iLHx z-E{&w>35aM38PC!Z2${1zbLG|)5o`=K2eksIkt^jbR3se1~EjADa=U?h%xuIN=YW_3|(Wiplbzi1rjR5$o@9$S7)nOZvmrS z&(_vZ&C=-O=&KD++;(dvQH{|Weag{o_dGB*Z0`ldv@fia z{WeCiJ0JGAAKYK(VmAAh!WjR>86L)5Lqvm{pO9S7fj{-pjr4^~k;3fGsjvs?fWk$7 z1R5>z!o*oYSM-LxE7TP@1}^m!$ToDBNUFM~*IEc0Q;}e7@m7;r%51&Dh~*_T=paMC|s~fuWOYnin{{N1D%nPX9Hcd|}q0 zzE`BG{>TH{*SFq>cRUmaWJRb}_XISL7nrZ=rQlX^%9$o_C`4Fa%MT6ImAI$*v;W2- zxQ_Za$TmkEj~fnNkYoq8re2I)FlvUFtodUCNM%^Q2{*-L#Rn^Ykh%m?TEE`i>IOIj zA%vk#at2rM7%=nfZtLa&AW{7y@P_E4)WleztEhbj-}7}H_d=2abg6RUfEIMAU1OGH zc1ur7tnwtL@7>lN6mm~=K#Nf(x$)>j`G>2~{E>3uCU>lc4G9-{*=hy|9=NyFD?Nkj z1Dl#{j_!rDql^HLMv8FJPRjylbo}&jg@fPlZ8zQU4b;LfN}QA)Rl!&j->i|j7_p)p z-AS%e?p-+}Ll>27(~=7bT40^7GLk5G&%Qf`cV5Y@o!jK(m>GSw1U{BtK0dI@FZN~V z`FCcLMXtJ}NO=_!CZ}~A>B?X ztX46HsIiq{DQ={ShH|srM)>PmTjR|wSy77nVyPgQzrMP<`~3X$Z**i+LURs=z*p=r z1V;R6>{xKKVt?nd%AN$_@!!7ieuN zA()8un#r#dtgT^0HA`HFerYU4b*@R}1FcH<_6xTi^IP5te))*x?@Sd!A;`g0+&Z9Qm`BkR9Eu;63%N`iyYU%Q?s`G|60?5}{@%+ag%Lu%v2x8;|= z43b;2%i=K+{qKyp&S81M_vi`kM}miEPdQ#UW1Vet0bB2|0o4JiE2NYY)rWk~8tOq- zKVQfy%cf6}14G{Mdjq@S&Ka6^3Y4&NfoGpwgH;mp4gBM+?7p^Ii$_q>Wz`E^9M(gl z%A7v>j(2gO{UTzts)W0tqiR%0+-%+)9b5Q~9{Oc3C9=3FMOfAOh}nDDXm-AB%DLZc zY;!#6rls5u16`gx)d!#FN)?Mf5pCdoRp9$RHN2{*9o)zjKd}Er9W5?_S(`{ln(v8b zKzX&x=2t>^EhIXMcqIz>YB03&n?FBKep|H@AXHqd{?}`XMi_0$RjraGU;P49-@o0SSf-+mSvM`u@#hgdEGqShW--#1d_7I(ackt{R8TZ(XMNv;>dbqFB& z#yOug`no5jq|i=gCyp}*-ka6vUy^Ydknf6r<>mD4u8a<_l)xP|!S5w6fqE~RsnYb2 zxuF3j!lz%QFrb0E8-`Y{67Wyw3-5cx5TR@A=A#|ESziy?#bQNmhGc`5})-}lTR3?q2hP7xQ!F-5YB0> z>NJ@R?$AJpnJt6!T)&Pj`m(5U^X()vRBt6COoa6ZK+Pxe2_Z&K_Pg&3GM-ZVl49pHd06H`JN>FGU8-S6X+V$MF*t-nXS#u4auxJaTix+@jZh^@D|D z`LkLbjZ|?7f4Ferx~M^^QVo(ROX+98Wm4g}+I2P!b(zY+JbZMOnC|R^(eIBB$n4X5 zi#N)}@V`rjgV<}>?-eSsRX5+2q%Vb~aIFcv%Vt&$GnPi-i+9Y}H6PsWn8_b|-omwx zdUO9eK0diC#z{NBF?VSv{nK*m^^5+aXupf&Aw?Ep|MGxFYnr(H$X@()$6%Wu)X}G+ zXn9vJYOH1VcF6s|x{W5FaGq6q)=zmU-mPIabT@Cxh)+7rz> zhfM!?$tK%$o6m}N1n@C!Ss~G5k$!pNWaux5G;h;5?g^A*h=S{@o0tpD*N^QLI+CIW}O#4-s#3# zKtxT}z!wiVAjgrUk8*Uo$XG@84Hl=U#OpVw6FIb82{D@hkK{7tHddnf%}RL|Ocy`W zd>NQY7Df0I$_S_;{pXVprsGIgCtg$ud74B1{fA|$kKn^srW}`pcMe7ajjWmPhNMeN zd!!0SwWK$1vPKempGQhY#)y1Zd7Tb!$jKn0czs)M0JoqfaY+B9=d*>u=#C=q7)3<-VGqf_e?zxAsXnNBo!gmL z)6{g0O{yBq1DxOC;peu7!p=!BupSJfU619$%_%4!btSy=`z zYssR5Zq1|AAXd{7oVH!%vTrrc5|<(}a&TLhxF^7yMfxPvBpvFi0E6G5E-BDCYN#>O zQXb+_rs`Inu(;2*h}Fk+PkSbbmf3Bep+)lz;^drWn9<+YP}+KkilU3vsB~hiZDNUZ zq3d)ZHI67|)m5gz`z!qf&SR?&+tEG~s7ml&fgT&>Lj7OTVT{8+Nf&%IOB`&Q*3C!9 z)rV`}6}&F@@eFjmuIp{7)VZX6>{~ubL&Bo7Ld=NyfEFUs?o~t;i5C|H)OsjXgYmf8Mti3>}^?q9NwwYqY2k?hVi=CAaH7Z!fs zuX%@~l1?k<9T=$Tq32@9j^9wY$r9Ykf?;6Um=pnx{CJs)_OX?ik$reX{ z_^Wb5VnWWY@$QxFn?PPat$wD3{N)3-XFs&pX21QDGPh*( z!aqOsgPz$XBHA)eW{B@B)%oL5MSCGZ_S#%!j>U7eqj_bUKx5VXSgmeflfL%TS?YI= zyyzBHu>UHt`ZdEQ=z4H?j=%LaeUb$$uc7ziANx(Z^sDw2DA`^wbj@tzgv44pfB6$x zxc|Dc)?{ZSfDUTwyf0fqHZ<*|^F5vHu7TOUKt;6z`ctT7!kk}ZKAdS@*y;TVMO+*qsrkn^@y10Af^0XtI@L!Ah2`^|0>_ZINB@bwu?<8 z)igJJgm)C)-DKgL{yx^;m!V8-0JsDNE5=7$*!OjFPyL`Lu9Yj5YsWB5n1m)&KP%@; zMug5Lk6_`+$hxjTv9fWML;7u?u&syhc5I#V4*vZ(zl_%&AhqIJI@F^a2;%x|4YLNN zO?`_R;!-~MTDnR(?*#3z#KiA1Ud(=OIA3 z@}~fY;qyTkyCb>}qPoZ(9Y*a@cRo}v`|tEhWI0Uw?^^ltA5qKA7PbU7m{UY^!W)S`OHX?!(E*GVJ zEECw@HhI$f_zp0TQN-o_1N3~@lcLt~@T0*d*&K_pT1lt47+JhFcFw#nPrZY$THW}R z(&MS=-F{U5=%WkXgW|i^UN(YYkIMut<-0g@44fHuTai%UAWFJPLh#;*DPt{%AIkjn zz*kv=V^8gdUh6nqEoqu(m&Z2(l2hNmdx_jL%6rl8>@)A3OUYU=4?*euwo3u*plN68N=82UwHlSdOn|z$Nhf0DIV%+dp~}`8Po?I zPYoeN_b(20Ldztk4opoqv|@OV(8g{p8;aM~ShFxbyU|<2__x+#Kf_;W=MM2m%wqv! zdjBY!K9vUIQVEmv$L7o>x0}x(i7!+EHoDf&pjraY{e^E7t3Iy|i* z`>?xT(XUX(j$_>7C1ydeW!?OUAQ$!?H7l#URGizeuBN0{9)nwJ}UYo#%yON^w6;ZtrfFT)ZJ*u`E6~2u{tcdJnilvJ3xp za_k_uitGb*y&drQlFY`(P9OJ?I`((KEDt|wF&Gj)1&(V@v)T_rOq30Ya%+Z;;XPA7 z0Xr?r`EGS}bWXC6jYcu1cun~_@dGW&r5X)u{na{OAjIX(ycA<^kXp6_Wm0g*dbim~ zb>!!V4m+KR#`_1y)N5M$HH$Ft*Jo$>CQ2=>5W`2Ym=kHbxUG%2cY;rbm7Y}1FfaVn zA;jG`H*ZAIriavkS0`>5FvL*lN7%Mkt&|z2VGly7&nZGsJi3ctU^}Hn;hu%3fACq) zw>r^}!tR*4H}Jg@x}C~M{kdTGOOFgA@fUVKPmj*3Ry$SBzCc&~d_3}^dIsJ4TVB@% z91~-0?8nW*YY&zHr3mjjN5 zdUyRAm7P!u1i7#CL z>>Hg_ZZIamSM>OCvwaSfQx21Qk@@@`4V=P;-m4|sB(1b&PY(k10cv1<_|74JIq-pDLR=QEjxbf5cFH4?S-UiKREiTC6#xWW_JiX$8NAS z0IGIH4e^!62zVLn_EJoKm<^XL7su=S$)}Q-WYrp>sNx%YY=Xj3U5>b-i?v?Nj{~C` z;8NxGR%-=&aD09Cmlldl-2TdT2zPcDJ{0g_{5)PXnkdWO%$tpP38Ig#taW31*KJq^ zvbH;Y{!{vhbMeO%@!+q@=rCj`jQs+H80S}p-j$lQ=84@#>3Dtgxtl60_RRFwUB~h< zNeRU3*h(!+O#pRcK~nuc7`Q}@ZmVk-*L^qo&X4G1=kQ0>quBSjo0)CX*h>MnhTsiU z4VH^Qmc0I+Dp*8dQcLcw7@b)Kl6H<$E4-#hWS=m2^r<h5?Kk?s242eB8`k0ja3tkL8 zv3igz`Z0uZbiaJD`{O_nf9ruLDl%7B&;2}BxQ%uFv>3fTpyLg$Cd7$+QUl0jgd@ry zsT_N4Bxbl9F_Fhthlh(KeV?1rA&tXYyFlp`T-NbGCju8Lg7h;$Pfv&!@cJz>!7pfElR*5++F!?t2RL@pMF|gLq@( zy#l+njSG`2x@C5yL!Wb+#NAu+ClCs7bEoRSfR;DG72#V9#3}5mKd`5_Gi^mhGO^Y{ILnsy!SC$3?Uh44f&HQ(Se-91g18>T`v35)1K6Z zIw)UaJ{xWPTRtZ3K%K3ax*$0+UfmVDkBxo4ceuZPwDq_Y6An96!Zg^AwZV}=!o9C! zOGkjlM2a(qi&8h>A&d!3Kj|15p%239?554XgfXd#X~JW@&k1*EuNnR+3>Q^!9p3$i z>FJc^re4$*qe%rVExbc%XkGO`xBa3Gu=eSKWq@_^gp#GHsd>96>#*XfU3coYq9Dbw zH@D4bk_@h7`(1+ndC<8)$fd_X?;7F~I|Tff_lzIDojQwg4nM{p*Y)hZCfMXgvq2sI zZ4>K>PPNk=aflt)a(2mnc;4^heE^MSI!t0Cm?7^{qOE^R7lY?^ozKG5{)#UJlq9`bSYu(8i);WiA5sno}pR;W@fVicch&;?8@_dk4POo z0kdHpc9Zi8mJ$prCcCnpt;X=d$z(=NMkzCC83tMnkKBoZi572V;IoM?`2LpEMd7xu zQ!jSw3ETNoWn4Pc>21A6-SlHoopQ37y1Qrgct;wpv}n?uYqMvJU43Eje|<7tZ4AaQ z16c7bPlT!t27>%J@(WS5T{}IRK~2vu`JexSaU|NRc5!&YI|gg(B=T19C|@a@^SGhC z{BYQSDpGz!!XqcTiC;hEJzT;KR^TH(gbw#j-z8k+x?b-8(_SDK9WHCM5YhrtFh%kx z<0PBmVL9rGf``R)I?!piMAg|k7_Sy~6@!{;TF&^6GEK#NlHbi(;LCf)aGYf#=IcVi zY#OUyCS5UP&o9L6n}Uxaw^7&NYp-h7ZyC5lLl+l)v#`M1i)fZu6!`E7%d4#n9H^VvTOB>)? zomxZD7A(HHgEn~vLW`0aheao^_qHsN|E)b{+ZYmq_Cp$K>cw0!bl#_>)=dXmy?DlC zBeCl5V{Lci^`i)&$Qs_rOlcwgna`BDs+dIV^Q`aJ)*xHf#fwrA(^Z!)N%O>g z3ob)^vfqDy{2d>)nDEUIkFs>dUG|Ud4ENNmbbw7qqRagW?cv>u1myr$)IYyTyS(KU zvgr{|e8XSa{VWXZWs8nknYUaXq}$e6uU{$>79nH)e)mh5K(&(5FuKpE>Hj+S(A2Zw z*3IXT7k)v{{LnP-@tEmC#XowTnpI7&KvsJ2xu&5YPNmz?`y%0m4DLJsVo8nBr~8*z zWg%Rqf#2+@D{4s9mM@L%^E}rd{_G%n-)?7KC}YRu%_(q1#SKcZ73Zyu-$Q}`snPds6*%}-9hF@@sWObrvHLmmaN5Kq z>~v+Wv7b3oEO!2)%K&`f9W2K|bpSrDyE?U5ol#3Pzy!@?VSfmXcH{IlyMm6L9csR| zleq1h&#a9;0JW2NfjwG#S2pz;CcU)|o^$~+7=GtcUL?HZY`Jl%^4<`5&j&S1(%HybRry_)I+DpfOCP{qM4v@8i;Ml~-SwEvrGiYAcBA-4>=h4~u)S z6IjZ6rs#)hs3}1$`lE){AyV{d$)Ezg&x?Uko*+*+6pE_F&N)(oxZqvvRSYB1$17eZ zEld}wBYLEUMB1faaO-R9hHNSl(X~siDPpLQ2J_;-XP&zZS~ZxsC~8n`w{Xd0ThSug z#2|Lk@})yrdc^+Ip??+E%Guy)S}^NcIZ=OidP7mf1(Sn$dVtax#6rX~1xNu3jGa+| z$FI2he*wq|@tV?iq$uJ%9(d6=+m|qKKfvA{WB0Lo&Z_rsR+Z z1+l(aRIkxzwS1t8myR(?r#@^`mKz$@OKbXLILZFK+mpBS!E^|sjz)hgDE1HkVYF|s17d(t zfSt5AO69%SCl`g)T~+mpH_CF_S{2n({;yNAg|sFjaphObYaRBrboI-=z!cL|{%(p! zdU3B@1foh_Vi2t%B(b*3@F`yqjmZVosFi;@&x(Fzwxj-J5#enZz4iTeJ0V!|NK)mC z;LKcmPnb9zkt`}PoIa=eKstKT1hN5T6Xo9icsTh9-og$0jbhvn^_9Qlh&E`xjd=(+ zoY9Z%*`0jj+ug%2Eb;rQ^6!e6CxaG_-@sagM8KpNye}hWxL0vtko_jHT1{k9)KCCm zx|lxOkTcG|Ff<37M7X9qow|0QItwr;SEuGK{dr|4|MgP_NqJqg?C@6fM|>u>o5%wZ z4e&Q5mZhtz+xzPiqVu$n^&gYR1>XXef;6qLV3e*)6|4wZ(?NE`r+1p_|{+AY3f z=n&potzWwy{la%E1|osp3BigO#CmA()7IIS6<;-0Wd( zy^@0mjkyJ&v~KI*i+w1JmgdpGwwH?ybFx$oVbAbaYFDf|Eq~{qSfF9HwvF!0TL+#7 z2Zwrh!oy(a)=JB7u7YqVF{N9r$=SC!<=0ay>V4^PUoTO!-^1cM8~B@r%hep+0UJ42 zr4_n%s-cHM?tEmt17dr-A(UNxGL+eW)pWg+aTUJjB96}cZfB&1g{I}Yn)36}oMl)& zxpVbBj$H+Ncb+wcPOd5Wee-*YIsa@56ZR^m`H{EW45A3`DGQ(3@oa8-rBuA~5dAuX z%~;VE;V~sTH?m_pesOGdLGdB=2o88R)pZFre z1lX_Drc=&(I5%^v3$~PqB(Wz`iBrMK&%MJt;&BSHZo}2W4FD_Us%q+6lf!(w(s(@S z`%TfkllzOk3i}_ATf}O~Ort`zWK8f|mnf7#Ze(tZ+`TDk#_q;c8ARPATYdh4@tX|z zTf|^gNXoTscJiITQ);x^Q z28N>RFigl`hZ$^Cg4S<4F|<7$O>Z?eAG}-4nwY-;rxeCuL7J5d?_3!1+sOx$2w9d^ z!(V$IqdtveubKNatXGk=R|8+r-oo=7i;{zgiXx-50EOQ|Z0ynEt&mzX^7OBuMhI|n zvKKqXO6Za^T(Q9YR;-JtvFX>J^}3-j_u;bh3#b>7zY>I`C$cxZd(I8;I+AUFkfzi4 zCFajJUTl8%T0;Q~rC7N@`}Vi=s*H2boO##EKQvb8)9=bV4A7-arl+MWh5#D%+@5Qg zST#<<1aGQ06r5P>8M4K{ihlU&vwdzAyEN^BfqOa0*H&pfYC$b)9?pm$7z7iK=Q&`P z!yWH8LRXa;=&lSqL(NQ$0#<^lglPu>Uon>jmu_>`#L};=Hhmr7-o59t0gm{Tv0bv1 z=XX(>`#DK0XtTX$NAU#*dPm)-$hAy^%za$ki;?9(NBc&Or%;6l))ATGwe24fff=r< zPzSfeFIg%7O5FceGUi4&L+O$1VEl@xwOC%JP*~5*-2ZmydW}<5p1&_2(vXMb=HYPb zgU^0TE}KQkzav%hr4xarwM%!RgpD%|YadO$dAnscLIHmCz183H#BvM3Y0tRv%u4|e zRlWvNnqFm_{Fe4{OPLNP70i>lyB~dWPzqNdI}ch(uDD*q^}F}G0M8hvgHphG)4t`6 zgk~?(&Y+1;xkXRo>?TGUbkd`Ai3WdD(Or@foM2CAa_}H(i88c&@n?1wrzo-`C&SD> z`HKspN)s+6&w1R|eP->(gAo;uQ}5f@8Ge8KBB}@8E5Q^Sn)_uhm*JXv8V?BJ-i^<} zr&r~QrfBGltv_uj9?p;^581W#Hu~+|u%|TlsFB8lTerPT{{Zxs^&@XJhFKVA^sA7G zhW+(U9K9L%(8*glX zZI}z1nnVNF>)XpRh-B&tPg-=4;#dNbcmgBgZ`@X^`F>d`AxFat-KO3LKk zXpHUZeU95SVnTg5f9-}$^quRc_W>SCmyua2V)`@xKIF_(&3~M|hT;UYgUzWgi$SxH zoh#}|OQP|>eaR@7_F&TBU)9(5yQ7WT07?x;51RF4NX+wV?SY}PLwy09_>8~LKT*Ny z%7$UlE&~URZj%j{y+*sjZ46w(yeDe4ZZuC6pVlCh{?s>fm4Eo6aak670-vTMAN7r> ztSc={*M(QpelbLfiRp6I@Q_-)z1K-7zq|6MqGv#hXmzB1v9#S_0kU!_i1Cg~365-G z!oU4Vs-7re1$>(;TD<5#RftLbHaY)JyN~CDBWb1BeYgqL6`Jl--2|^c_jYBZRa^|c z8h)hGAmQ@Ehyd-q*xQ0=3EbG5q<@m2A|)gaUZ8|>-&zEgwdwiVv z*`%7&CM4m{%IdD!mF>n{v&jSy+0gV%=ApX0u7|}l%kWxdiP)7OH&1;$bNQ!{k27?j z*>}(J+Hn|8Vw<)H`l%s`ZxBn0<`IrwL0mETPyabV(5Toh0Xm0v*OYxZ$ES&=J!nPsvD_3=0C?)o_MYw>Wp8!lWhM56F zB-*E}HiTnL)7okZ%Bsp6mZ(M5(S@L=O+8lXYDpgTxr2ZEqyC&dbVE*MjSB=YVJY9f zbYkCkFk7BK{`llGW17FS7Ha2{>HGIE-@|bIw1S9Y5xxt$bV_HC$p4bo6XV$r881O5 zI5G0&p6P#x#{(DsGzm4RH(UKXqP%eP>6U)tO!kW^P*jKm?1G@O#9KMBn;9)(z%h!r zDgcr_F`=e|xwu(Y-=ma51IP7u3XwU5+sWa&uB-3wVkAU~`b4pLYkBbMKQ9cqqL50o z0&CiLz^>&Xc~IEHUu6rJDq} z7pSPd3VNYW^QO$q1p`cQTd?|*M^)h`2lxdHeg_2(8Ez`S#vci1^Bb=5u2#h5l}?0N z-nEHg49=ZV5jubP@Y%1jZ!W>C7HngSN!=sCC5d=!4&oTWt8z9=M50V*91-r2CX|~M z1PeSM0TBl7gAYF&{rGE5_9Fz$?rD~Ddu82kF`&KSGM9!d0@fApQSn$dI&E)SoUip(kQ1v~$Om>Fd zt*ETEEh7B)O`lTkjQ5!X0f}ujjaNsZbLgr|RD_U0uj5=3bq6RumV3Fr`^EUmhK(}IM^p5il4Df9P4$FEFXUcCyOk+vbvCdZ`oFEO zV{fSu(^}`TYOjiWU6?3!v}|D{TSNi|uY@A2wo^#As7+2Gbrlv?0uAlfGnpB^)BF}5ZDAkdI(#d(ui(4Wj8ZGl z!pnOtZU8(&!@RC@pvfoL*GG-jgHw1@cXZ;OS8Rm!R@#8>y_20xL^Y~RV?lc-0 zVs-$((W?j4(QmsMz0=Q^Yh)!U=-O!YI5~rrd{`#Fbot@o~IL{@&zDY))}q96k$FV;ebDA^aydZj@{8Ks`DAp?ujCV zEZ>xw>y~$;PWi4lQqy$|4$f6cRYKFIaQ^R2vP`$M-lBZYLcxjp%ySJ^llNxB4|9Ye zX$O6R^Hc8swzJcN5(1nJXJAH3O>KnYU*8X;ZBaTg{r01aS`NI%&1A}Fox}U(jUWQ@ zWl!&rOq*s;%l{9(uhw5ej=mp>d773N9Wi85wvB-_bFr}@+ek{#JnB6(hcx2aE_Vcdn^ww6qN{8cbvSFBxo(`w&FDiQM#`F zk71*c6Zo%J5jrq~doU!@MB0)uJ@!pd*(_R1kKLtgUA7C;+ZlIoCP#Ju?jD^N0^C5L6t1@wYLFra-XgDW ztTm(saEdxDX6+P@P#U$<#O69+L zix>g-!}hCDrmuI~MGi}+5968@j0Yj&uQ|jXpv12_!ToHtC;QR9y?;Wv{#Os&q@yjE za(-JbQ`bA-lk*MS)9Ka0!2#)lsxLCh%)h`elU2-XgQHIFX$rf)8BTD3rMGVp1?DGt z=9NgGWBxo{xi7VX9o$T0L=j1$SFs=Nu7OEpsK(P5oZ zZO?il{<0{@Sdnmr%uNR{Q0v3l)1OG;s|JR#%#RtLivB)|QuImZ+F?m%R8#GzEo{CF zMp&>R$~d14Qg#9BKQyjSEmSxME;p1z^L0gqC`iaL>$%4_dCr~rYyg~+I9^yGn54j6 z;ELO)sYG@dgsqfJxqIxFbZu!6Lq?P7K>Ao%-AzIslQOa1m8=mB+(Y|lg8B^@i@ZZ7 z3Q~;RU&WRm<2;U#jQv0K*rSQb@x~BD@IfKj&UEkxK^EIlW86{{T7UT5x+}gBTRnya zALi1h(+X&kga2_+`n~v{5hF*zjrDM}Q2pfSSRlP)?ppZf^Z4g_9)ofE-06{)3i2g- z*lN$6nS$X3mgr+DG>^Yj;pR(kx?Z+8~n7JU!) z5jN0{%Jel|{-1P8c#}S2@GihA(*3Q?npJnmcEE6OpcmL3UJR4 z=wABJozyV&QD`o>qi>UmXfRN+Bvy_V`Y2WIT*28MG49_42JX<#-shdS+p{G>rdZ7i zgmZ|!Ut@h$W62!Bqida3%-vt!IZ`<=!kN)|8O5bRLa(cAxK{cGPhM&H#(}s*^9Y3+ zP3tg|T%tr2KEo`#W|DE-KOGgbAR0Od@xf@R3}F~DIprG&&FrZjvVbRwx;!SORjaIv zFTiMJ3^@`Pq@EG zr!M3m&?hkcn|wyA;jI6WMaw7N=OcGhsz`BG&Pd*{XlO9wPOqRlWq%AUmZcsdKG#A` z6Pwd{QVwT*9Z%hvi@Sqf;t)lPA?)_!swDml%kkl1<7au76nSeLcQMbS7=N%sGbpyv zg1CG&Ds!8g*t=lYHB}g1U|wG3R3@t+OKbj*Sa7%_u{0hC{{HRx8pDwp-b*0ZZLzUEKD1%DH%9QAF>Ync@ET-0<1mX$FTva%@X@) zyY`x(^avDY2M4%wdud`)NApc%DEUuL>nP{?^?_tBosBN~F4K)?M!AENJ<88AXqpOLNmd+t5MDAot6Qw+?J)1(f$sY|g(u zr_0@tPSIrw@84o?>-}M&c?ZSszb}PT#Ax{a=J%b|@?D9>61f!+POMC9+2ftJ1~J##oOr75UB%~VoNS}XR3CMN)GbuSLgJANg zjB-27jC|2z%X68^u?a9qTnACH)c3Cudzl1ZMg*bOx3OL_%rY7cU7g|YQhao(YxOKy z|1kYnUA~x_##9B$z!;=r3t3&b)|Nku)8yz7d39?unr{_=HL8zMZ{`Q6# zqnn{Zz=Re6I_I$g0;N^oAhq|{1~uHH1xJ88x)FXO8v_RD$)xD; zg#|^io0KucWp-^*7@}nSnO{Co>7071^mBuxIZdjCxPOl?q8=B{9Z=lN&siI~s&W)(aNeOvR#?FAC)^@JEMEq?;ipvk5Y> z@TuL1Y=%{v9pExy0lQtvy+`SAD^1l{P+$b-m{x^{AfKP(`sc3^@@@9DMfFVzl#AQ8 zW1q<1k#$oDJTP!B)YzF?Yt!57FH0$hD#J>be*F0{^KkG?5-5m8TUTk^DY98#+jZ!y zF>QLPd|;XesiU!UdAltgP@|<6tXQuXivLr(mY$zsef{*VmIVEdmCp;$Owa6NMP%9r zPEwoACHYuI=U319B6ux;T&cl|iD3O7N-zzP%D2d%2$70curO);^s%-1tlrBTUQI1a z=JNF?m<(bEPGUTD;$__arx$tCD)u;(8?1I4k>l63e=RR3Cs63Cc`_*ML_ehMVQR!C z5In=;_QOamm(I+{QjVszApJMzv@(mg>H(u=_A=*|XPHApmCbMb$^#Xb?$Lczy8Q}s z)Rj`zoaRZwqe}@tfI)}xKCe>X@JcH8;7UcuqX?5Cg3)BdNY>&V&hAj zf(e5ARH*Znoex{dOn?UUtT}N(9_t2BNAAgaE)hOT#g_m2-E(R6ZQ9Py;4a>zGzSZE z;Lp#U)sJPv&?y&z>8@czhd{`lYXl>GcSDsIjLe5-Ykkq1oO&G#jKbB~jI3`&YO6Qs z9$A^*mR%vcR1$;I>nk*(Cn?JIkaDPntb!dg$FLx|$7oa4q$di^&Z=dJuFhTOb~uV5 zEaUwwjg%mUg0y#)G<|2Ii9S$eSsIvBTTIT}I|gVFrHw=x?RDt={4#8gcKjg< zS&enc%8JmX`x%{%UA33xEY-S7aug?)a^S%jk{(X{lZXqxfO42`qJ%m>x*0LDCDl?` zpXP^n(`5shI#x49ebP{dp^k2K0497={P4)mFLQxSSaXG+yp1y%Vh2ZU(&1{9U%;nb z<4_po3p4!8*KOJ!MjDDQ8UKJyQyen4@6s4|pSpPte0$POQ@}vM<^17yJwYkfD$?e0 z(Xl+7y{B(i@)}3I_?k6}UMM$Zowi+w&w+GN(Pld7HjfL?`HQ=H>I&W*eoMGaNGd>}MntG;sE7&}+|rd{@-l%sM1 z6)meLrm!!^35mCx)>kuW>(3*a#cX1W46OJ1auf}URvSlhph+FbiooA5zp?|7+1j4k zQdDAF@f&^=z1pu=)O(lFK=EiE! zbn<%Y$J8%fH!VjrU<5~J@tV0W^zrRSB%eadAetYjfT}^24=-xryD3Jpb5Dv*ATw5# z;#Yk+&yjXDAnz-zfAC>I@C$(ZuPYd5L z0JOK@oXPOotc=okJZe~={&DP}%55SrMYN)Al@xYWL0@X02F=o%1}+M#?4M=D*yO3Q zcEP=O-E}Z16G+U&tCNHRL8dWd@8YrvlDEsMU&rsSt&&xk&*Z;EdetvQba5WfclyWL zSQt#oR5`Ca#cvuDIl~^{usWc=i?Bdvm_=- zyE`wRn5f?s{B?PN@WSU2-iLX67=7!c<=@~x0X27ACynkRlzYR$R;h9liwov+n7{e| z$;z>7__q!JXzP*7Al5y{ADP)J9~gH?}yUb z;tlo<-%n(X7LS&XbOi;wzSnIMb9eC_u51drUZEykNG#N-n65YGQ1I`$cLY^2e*nd8 zw?b-ktLzRvAMP5MJQi8V@^T5_fE$T|c0w8;d!&?+sp~Q9=I3sE{yT{mwW2B4-g4R> zqBp0*mu*6orVu!)H=UVt55q1_pfyXn?j~y?5V^cXALAMLU8f{vULALn2#{NLY^3oh zR;K!gWp-OHHbd{cg!gT6p5vrf(BbS{-N#QBOuZ~jPmJ(qRgL2!7yzK6~10yQ@y&7Zzi-k9%U;t*pw#F zdu~}_bx_+|(e$1K+^)@QmnSzBtf7Yeq@fp5w`~LYRfPq{Z-6XzZf4oM8Q_pAC#>!_ z76jlq@*$MyA=$fA(Cu{MR1T(u-akxcnfMB!KNgH9TA#xr|; z$3aarpSk-$HdT}i(HdzC-U`7@`1(2~1R(3R#$3oCH$OU)QQR%Vs3CSiDL9$!QXQT? z{WXMPUugtMoqiq=CZiy!%yXChKY(W9X#ucOrtbskqW`tz=+kHX$^6gGmuz%Kh;HGMGqccaCoOxAjmg;m(k# z082bU+TGy}5jRsS^zQF2Epg2JWg}n`&-*YA*FFo!W?L&gKDYA3k~uZT z0I>dic_d+D5djYGM#Vq)U_!?k^-tfjR;9@uCMjpoOjrHn4_mJJ^}Wmj1>H%vQURCh zEvJjs`(rw85`xw57t0zS{1tOQ9nR_gZkY!Oqx!?{C8d1Wcp7ixB(}cNYl#`^d152qRL=MIP%X2tGt?_Gw=7pd>dJ9xluslh_V-e#t`1Wy4IKks8g8 z1w|7>_uR8IKx&mP^cthUjncyn51pkypQDEciSffa3Wqu0xw-h%uJq+4R+{L7flEpb z+H^O$VTe_foUs1#TMBI`$eHBZxRPZ$9*&)4&ebisVnrs% zT7Rzca%-!p{w|;(gXKpgxcuJ8?9bpVPJngo5`bV@qJ6ZKVVS|zZ!6zD=n^#r9{hjE zCM_M;o@ScQr!a2*_QQ4((WH#~ARUXB5n)Brd^^|0%g+tMoqE}{-8x(drK4zAsd+E}W7qUeiWcCXzJhUHa5Zl^+CpDY0+y}rlP{>%1`gjvA0+$q z3BC683>=Ca^_nlMene;|o*0q5kWf~Axz9q!_TRxjb^6gI@dxPpi!EnfzL`0-u#l=9 z*lSh}b{(Z^>|&gC{+3aQKl!fk!O!0FOb}^yBDHDmp}U@ZXuAKY;(+)$|GgW3#Pd<^ zQ;Q>CM&M8cr9|N9;uc!6I!j#namDxZF!0E*XEV7>NZA4;ADYVA_HNk*-}%g@|MjJ# zwCFfi5!^cYvfm2xZ9n%?3{43VTj&95wmb;b)irc^6o3n?lVTaEg-_X>XuZ+e84nW^ zKY2?c82mUJ>3TlPq9aJ0?eq<@(Pg@SL+MYQpm?%tqwR3D?-j2q`x^W;@woOl?mx{5t?WgsJ_#e# ztBq1>TCOnMrdxyFTe-{f!tj7?foPTVY$PQ(-{y(Pd7HJSwbEfkOLodq({EN(SaIAP zM~7Pzp&!4+q`g+;PB2YI=7Vf((X=os^Sdk7%-?q@(O`Y2VcJD1sI}hivU<4|ul4%3 zgvft2YM!LR&6kNNNfn6vR zf>CNt*!>k!X){M&e=%rink$8?VWb$AnL)UfxA^IKyWLW)A8e;n!c>AJ{jh^JKtH5BKlSVJ_!ARl?^vg zsG>Y6Sx+^s(-8mdoKV|+<+Xh`@d=euP0H%+jJl0JUz{!H{Vye^kQRA6{<}NS@4+3xI#ip=qiEycis!wSuf z!bTE!Phb0mQr`g9$WX9I7b&?}qUAEalx*dabI*v?DeEQH_DeQ$>aW~rQJt~o5O_`o zNS40)D>0Y*Tg%;gcIxnt_-9A^5KcGtTC!&RMo= zAy306d+)g{=k&1K3kVL3=Yhv$8Hxdx@6&-j=igKplEV&#}JtE(e%mp1NCunYM+ z)1ZOIV@h{LJc?4^JdfG(Nk2cc@cQy^LFl|Jg$D~rVK?~ck81ifaVYF=PTkd-$6;CXwX*;&hy3Bjs^&;3DI6!3C>A_F z-yw_vdS*6Km{o4JB$sp|715o0Vl9{M)3P-4Oc`>Oolomi9p`oCF3pF-Q< zTNATpkksfm%1piOB(>d^M?WUtxt~w=SDZ1MudZmkEsq+TRWN~l@Y|*7?SbU6z8L)= zV*nS#$fR3^_RFl@P5}z5a7wSM6FYNLX6!pu6g2jXlXjaO@5g#0IBPfe6-h-}aIyqF zi-5SSyQejwig=l!V5e)$j19{5+m+&dmbj^OKk04cSw!5D+~DzB#_$&-v~`UU38!|Da6oilaEyC9QzIWN0j8nb@W@?XIqU)S~6uN{tC7=+@u-B z%3gcz;PQT0it1?KjGe97X1M~fH=ByA7G`Ec4AJP_Bu@VcY`9C1NLCwsI_0rOH+yY}RR7y9V^*SpTS!#1Z zc-1YVYGsJ(aep6Qe)lv>$quaC-OmX#p@hwkGkt9ACZAjkIt)BMcuH*_wY8oAoAhmd zItMovQZ1&z8ta)40gyoGg)u{&xKGokMCjyqJ-c;4WM^qX#`kRX-rP3cA}2OYs8xM3 ztL)<8XS=Bm3zJdoaB*RVHoooyDHpTywcG%c#FdL`o!g9u>ahewxXbx>jjya9?0%0q&pNBH>d@!2snZ7P>W+)*${+Ui z#Oq=}@+quODN$E&I|9-6E8yajg~+80wkN}wtlUK(z{Y%mI%w!@gTPB3JT4%TC<)_cGR%_`~j zLUk#3iqU?$je12JG(^`?yu#^^OYGoM!m?Yjo{5wM?MM!Xg%_e%U5*Q3EE)J+6yrZS zh|~hpGd*_P!z@v^xas;#*vqIA zwQ#+zu;HCZjbclCvGgKgq44AU*-LY8O9IKJ?W)%9Bh-|Q$ibgyypKIj7O<@f_taq)lZq=Pjgphb+JiEda?F2sJ-K#SL?&akoMo_D zf4zG_Ipr_cOn%$FXA;8DYqn`)E1QLE_&KunP_@EM#aOA7m7teFXD<<17aZ2__NBjX zIPt+_mhZCA2fEic<)Iw<&c}o;et9A3gpTr2E(Em(v6VN2SzV^19g--w ztRx~rWrI_!d_>Wei8OAOdnOg{tToycw>TLluz7tPZw&wJ!IXb(T8q! z@>9HAIM|8vMZFjjUi)}m$_4BYGGrBaQuV6f;fBtUufmj%>B#buP9iR@f4&*TL2};k zv|CYCp0#Ukddr5av-l*i+;y~hbjcOgstdrMGAMu@spFojy4k=~7O*@?JCg*Zht5=j zzgwXgWP$Z-$ttaIb@uDf3W_`{zjiLNv#Z&BH(2Aoul+`pNfP}Pl#h}*B{_3$>NtrZ z{lWeJ^gGb9l`K)?hy+2t@IgT}v; zjaUsYR(%HEihLhYfXSpKjfb-NNSl^N#5F3;^NP(_5%a}Ih|_1?780<+QJdht5%vvC ziJ*+vom#9u)uUuDs6vZLe@$bYH#`<9?X*J}OZP`Zg~KToMET&VTsOw+_$L(1P`|GU zF9^uUSHh&ZQ$i*uA>yAthtsA#_MywinhvmVumNy5$w1CSoAVoxa&@; zoxLZYl&)5`f952ECchNanC-6qU$6@iV}J^2x=*Uke{irPqA5PNv~P0~@|0b>7_0iR zXp&iOs2oc(H%?~He$~+DHs)JQd~YQ36-(F>4`nst6`*<|-I$%;#(U4NuQJVM%i6ZD z!|$pf3)V{ukXqpzg)!+V-x7!xP$C(0bFJPnPR6S*oK)-4&6D_-Tf(N$vK-jSiQtvKXXPi**AOajdw7}-x zeELG~j0@S#@C1_`hRi6N@RZMK6xlFX){Ja5`$|SQ138m=@1)b?Tx#+4^2=8rP(jSv z1MsZNN|B=U_ad5Ot%zC39NWep#3H6=7Gi1mi*t}Pa#>L5UXlBlKS6iEkbbbxD^j)u zjSI@(5np?{7a>cHf@=dEC&xpehm--A*5=>7O2aQFwO1OBr_k2OzNNnH?9NmeO1G7_ z@X+F0+&kVL$|dMl)9A^k7~dcn3V-}DK938!J$-)c{woEqJ+8~laF^tK#~)-oL}li6 zusyDB^n9^_Er5I$vEF{Q^oGA0v_yg+hkDx2f06Lxq73%o{2aUB zubJvw{Gdb{Tiw5@IrW4l;{G^$Zf1+<6uOj?b0>2Yn5;X507bEM<5S@4JfQ(@$%QAlp?g4~I@8(Ye_RLpfIk_9l;>w38Z!##{laljO&&E|d$2`35 zZ|1S{3|(D%3!Zdj04q~-B1y~3%)?K8+}~|b+2Bk_f5;2t%T8HG#10ujd^etQ#jKK2 zF8chYgQmZT#N@k_pD~2#4RaOmW)8f1q$ZPVZAQLLYkhiNoAm*XfgtV`)}8gD%q+qpkx<#)ADwMh z1UwdYb1Rr$5X29O9s^a_quV)6aC&n(FmD=$9w>sgHvXFQfucG0YSURQ-t>n0Q4!wn zJ;4`x-(_)DHa4UXH>y%(W=`Z(R=W5xp#$%3$90|_XfFxTowU*xUrV4p<06f$TTX&a zLOezLnrBys9<*@`HWCBpr{9eN?y9&-g{;5#}7)9 z;ncflDvzweXiZy1qL$zSuXEshToTK}KAU8~!)+q!VMZTS6ksu<{uV9(G7~9X-L>z2+^gJJ3YTg?`a}#!XdtipI-e^rr(Aq& z`-P+Y@2Jmwf9Sfw0W6#uW_l0?kv`fd)RSnmb2B?7f?hk<&yF#V9-X0$Zsy>xq_j2_ zetJ;>$JftwnC-edo1A>07!lxO&|xjqE9^?0BiamGJ3s-rA>#68?TEuR)qepP`Lnc` z(OOEay;-pBzYyI9aOpKdPFb9Ae_N$mPX?N#?RENqf4OQC?j#_ zuc7w?GzaEz9+aOVlt_>{(SKlF2UkP>mAfkML2C1fyXYjYRouYEe+&MsC#ABJdToN&n=i=z*q`tES?!*X=)uFW=D{VQfzi=eqp7EFN71NcxhIu z6)#u*8xrp;eoW{y{Jk$ElflxnH0xFX3CHK)nVswF5r2eyo=C|m)P_SD< z92lt6bwV<@Z+md&v{%$)>9T;!?Xd~cB+M8%;BrTJ#{7F}pBvr*Uj66SL2!S@m2^|+ z{J!nHFibV-&G%{2{eJ&ytrqxODcObvDixNceW#V0;E1`y_F=tu(o*VT z=H`9&s?PM`(qL*GlNI@XH4k6Dm{Z$N*?qy?rbAmZfvN!HMn$ER+Lx~%O%7Xn@g>Uq zQ(AdywK}YI#||{)zfRTp98UsJo2xZE6|=xsVLC!5kao4Iy!j{hf-Vo>a1@ZzY7tmP zVwlxI5>O}M+B(S(*JUw5!uFUE%HAi~OfmTlTOdJiGALa*el+k|U z4Go~-XJ?DL(xYN_?e^H7cD>TzBKC)=$=p8b0Q_YG$A!|C8FKIga35?h9{9hy2#LOO z32MYTZ4c1&LsZnIn2&$r$!h)8BVApI-p5C00-qvloE-agR^zQpu3Z=3fVDC1P0?a{ zECMtSJdgJL;Z_Di9_0xn$q^7$^OyoB33vaBfU}(ecq96s8~3%jGHlNrQz^@PNSu1ICTtvhg-}*K_@L3!ewc$_WxB37pP1FMDvXEF+;n+bakt^Ys8triW?@+$8KD~&BQpJ$cb0?x^)u>;3p^nnweUVoFMkJGXr%YhraW}%F5e4{3Xdmo9DnDnAML>V*$64XAoCy(lLYlA$;cl%>mlcUE|PWP$SqZ!!D zG}1hU@_M5Lg_@iG;=@p4&5Lkap!iyG}yL-?oBrsUwk?#V5;pV z1sT&lCLRMOOvn5RUz^K0w-z*=5!_@?#du8r^-ZZ+kaUI92GaNYPZPN~?&-Z&>?kk| z6_aMeuqy`AoGA;qRSNb64@XJj37R~o`3XUB4Xq{97fW4p%g}i2uDrCIOSw?l=-xvu zxr6NBV)8yXolFs#0?5E1JJhf>1Dg$?pO%B_71w)V0|_+wOTtx`Jv}bfynGjOv&_?c z#@_$Mkt|RdOT-OLZQL6dXQFg{%^0BzdJxq{ou>Oivj#T?|CR8tlCL}!OH$o$Jo#S- z=P&c5X!@2)oadq?w+wOH%s>|b-K<+!Stya&6hepg+1ifFr@=ZyzhpkN{IDJSu{*!{ z0KoH~A6^*RET2f*?W-=SoIuTGmPVTyEj?V8oc6{Jp;lG9&9}_Fx+22HW8Ex$c zp6zj_DG74Sg$AC7rW77bJmEyzAwg}gJBn;$T+2m9dj$IyNpLo^$Fq2c(>8&)}Yg4^1uYSLuQ)m*#@7;ZqDj7IdL z#&UxmF`ZrpxS_mcVM;?@YnwsQq_rnm7~&@l_NL6dM^W}crsy%zy@<&V`zHhDz#S>v zFzJ&0H@gKU$~y3*#JPtv7tOzaqiH^ya9N=0ybYt0hoYQ73*c-kPOD(1zx{O0Yuo`c zdyrZzr|4k9q4Iq}Sk;PrS`E}Vnl2Z4FLMVV>X4Fxk|4t3tPUr_x^=c;eg6Y7vBawc zpHK=B8>X8R#_{Y=7FBJ6ha(#bR%TICLUFV*#J58^$KFq^_=thkH>hR}whl?Paa#?H zE&4#4_NFm(Qq`u%`G3t$`y>o4O!`kO%9!SPcO3I0|Dnia82(M#8*I6&? zkH#zbJRp|oEMo6n_n)xe${BmdAG)lv^x_aXc1~5-a6d^h1w@@Tpr!fs+)5;eUM%q_ zoVxvhV3mR6UXmzx3<(RtF@#y)LCL?68dXz1SwquTKhBxk=er7zX*`2B>L4utUcQ=! zm2BETk8lsd#z~)F3i?DcytfambhLP(2L;gh z5H{5RUpIk-*W2^k2S={Nx1k?C$y!ZPcna`)t|{iGw28W-RWGmjXk3af5jamI+2^lO z61sGkl@Nx_G2^6a6ZVouYYT5;WBO!lYOwmS`_MD$vw&WM1dqH>u^Jn9GstV3g!i;f z);2mrH&{~}rZwSez-*#t?yV`DbG&*M5=_=XAy3NB`|g*zL}a-S)%5NTcE>JAnI{*g zWM;wry-l0>+eId44j4}@GJ^*|nVR!N#+56fseT6&fjz3*s|MZ6399s)JR@tYuK|`U z_RTS6t<1u#;1l_ZOBbupqlgLx(bT*0{HTrl!u$SQ$uJmcwN!Pj9ZYRH&ACMDvvPyH zpcQ&L0bEuH%D~^PQtjOjDkv88uWzagDF;(rHZ@uhlJASJjJo!kK9C*Fy%8fQlZk0+ zBT=|nFiN+i=({ThF)$`0d1_1pR9|1()#CAIew??5))-dXi`&_t>3AQ! zBx7;#8195WVo6Q9+R}dY*pET~4?CC>i+MXegAKQeSfyyihJuFap^&m6)O}^iu4DUG z5!O#~*9Scv-zpatHVln#zAP>nla)YLEKLw2q>cX-@*6qLi%sy|bmyq9!DsZ)rQ`r5 z-uUc`amVp{=|7BK>ovsJOAF+J!e96O!stg65pMhw)b-jw*h(kQF!_(-SxK2Dt??%y z0WdI-zyK=+ZO!LzQ-}$Q!xl}PYK&AvP(i1Z6xTvmtQp53O?oTiKeh`W=OsK@lRBB| zSc|WEXm+uWl_BTzNkdcw?yVCQA2Po-e{px-{A>eW{kgliR0_rM;RbxZhqhn>&$3nO z25zK;ylCua$w)_WAx6UwrhN@P4L4v8lY0#c<^5wiSObxT++7ufMIQ9vTj!;{6g|!B z2;CS6x~k2Aq5iScz$|3mAI~-Z4GHdqT-DySP;+xwFOw*C`X~0y0#S-Hr=XELQ7n7K3$Z6-gif{{u_$c1EnQCMfwD^RRNrV`2ggEGuHGWUSamz zsZ)R5Tl_CzZsCtbNcy#lH^G$KWu~p;x8+I|IGb=I3sB@`Gp_D z>4v`GxO5Xu#i1f21lGw@r+epqeTND7x#g_iyQNGg|I%wW=Ld{f_*!dGb7Hu3>Ufc< za@6&R`JOPjy`uu_avK*IntP z6=0wAMwX!`ci~YAEDg>m3wof5i7c!;I`dT zw7YpTRl=kFll`8Z=14lG7}dG`x9#QtVfMa#L!$!U?ov(p-=iJ9e5>jM<6W(Q7m&Kn zP=+}!gm6#I6pA%AjJ{J+*ZJ}n`-^GskNibKA#JDjGKN|H_ZmS z8fNS5f<$LoD($C5nT`XGzw~Y=kN#W?4>R#aceHhz;CC75hAT7wU;h&(LvnYQw5rC}pKIOd9yemhN{|(@Mh8sbgLcu;^ zw2#aYZ>^`0-$goQyZ4=IY$&@TiEb{Z-kMn!m(~K`W(E|#opZYUr|Dxy)n8At%o-&X zG%tO-il@4%G{l#&FB9@J7ZkKmUM*#r*PKobVh9E+46sG9tK&uc0eFnNm>J6_RDSwI zqSQJd&Rb-G22FIZ)D zrv*_KIK+9E|qM*?|P#mKn0AZr@9I{FfH`6x39+`x66_B-g0B7xqDZ}ghN zIbXUnt1gPk>*m##!Z}v2J@R2YCGFrUl>S8!QBNL=Ut-C}FF%_}&F?=cz|3(RjJ+vOSNK4si-?$Dl}P8B&Nlq=;5XgU#|WK1B5kXNQC}sgY=Vyv)Pj; z^W{U!>_QO-uX)L|gz8R?RSxLD7)GCVD%jepleQk5X$ZL!iz+)p`1_^WdjZ08Rr74} zrha-s_NC5+{)FY`s6sVbe;(G9h_x7yX{R4eNojqu=o8Zl_Fo5*(XM_Q^I%P>b4o@n zYUbYDgiiQ&@Q3e0hfT*;)oja6(zL?$QyAx01N(N$*Q+J9USh7-wY)gMmca8_Tsx9M z0!Qb*FRSND<)ZRRQmU3%0P$y#zd$((K|9`kka^iPgRIH7lkO96feVgL!#X}MeS+zO z=lPp15IFwtvDE0ziKyZWEU1>lsj9v}RD3f-A~{D)GoyCDLb?hW{jZzYzRbQo-AJ0( z5f?8rd3Nb!c~okT>F3ew@ItiB!3mu)3W=}hWF@u4jQ{4A6r7sIP6`2nRj#_yr!4$WXT0s zoA4Z#OPSrD@*#K1tt*8aSMJ_ImpU#*GaWYySB5V~4rt|4;0Fme^$6Whcj!QP zI8)^WENgpFP8)WhcYuX;s@jTZgjUZO3{VR-B-_jU#s^Y^)c!K`105Vg5ey&@RUlMG zG%02O{l3;OugEHv_dy}>+?}tX5%~not^n)Fbhjsz_|sm_@U-xSquG&SyrHqgs3I!& z=f-YKcUcmMHqJf2&M5L`8ixsz-4tooWq!V=y&N11!4{Mjmq&ZQ5Ww9hX8r1*I!k{k z9j6<^GMge35gqt4H?ju}&G;0x*TBX~4@AswjmoZ_9%Ild-G6gb1(cUg{`~7+Gx#13 zG(K28k<6?3GlTis>QQ9hhnZuts_$BQpD~{WUBS3D9rxxUszXnn&ucf$Obv}T@+=IE zJ_!sx>rjRJH0=+{;Q^w~goqs@nr!L|H3lAYw$-1?uV9BYk5)uD@BDbNU@SD<(!18| zNT)w3Y`(_j%qeK8$Xh3+Qo8MASdR4Ao8O0H4N1a>v!havM;`#FLMgJ=v8C15L&_|q z$5jh_nE8qY@8XzD{Ns1!?6(ljMnJfu_Z66+8zOa>RGabwtI?iz%29ixVIQ-VqSKKQ zJX|Ln2pp~v<~-4>HBr^%1f0E&Jp<h>^mTvSPYceAoDA!E1@2NN zN0Ag)uZ`J!U){y#-rN6-i=5v5gE?DFf%e4!XqFIc&n9JgLrEUs~#Iiw($c`$sKRAK4`)MUr8uOHeZ-aRCjEOK$m&?c~{u zPS=XMm;3r1l>xm|38tUGhSZa){Sw;nXCHG8;`W$9V0e_hS!-GAX`7WqbhIvH!N?)P z>(eibDJzQ9@;B8&N?p)F>NGzyU~8}MyEV?i5*6i-al67B@&hz(hn|KPavUj>ng5(N zq0f#lE~i0=vXd9)-7zYL(vX2j(_V&+DH<-)Vp8sH#`2F)9&OVB=EP-}) z)UOU4xBf^0dvB;{HGEj6jcOP!Bvg8QXAh<&SmEm-mew_c+XQdZ!{MS6uy*CJK-YT^ z_tv(~(>$(er#v;xRh9S}Okjev80qB=&tJLL4*BGhLrSemSAmF&d6J1=UlHRUSJ;u{ zVB&YO$^vF>MRfrinPMLjBwS@Q$z^PjB-aJUu*Dt1_|xzDj*WvJf%g?SUypI4@-##; z%=6;X3mKEis&=*kUd|P|yM52EH%~1-pk8U3a9n%UeCU&?98eZrf=Sh7wdk68K%qI1 z+BsRgy_6%)FDhlPv$LmVqd+iM9p4Sbo&O^hKJQOVw3hCbU;Z+dwT1N^iVxiG@7=ur zHRUh$a~!kd^hd<1>*kSU%^&N@Y!iZyxu%F|l%{)aJ@`hQh>J9}tCEp!@5liySJK7Z zmR8oQXr)%Q-mNr8&#x>o&W za*jOtjaNmb)TbOEL^PZJBfzJBti0A>j4|bYe-eEtz~^0J-YlxvjBhkrlWAbstkpFe z4*NgX?eAC~Ikns=w(ZlOJf0jh%xGDeMaSM8wELKxp7~t0Lrw_MelwV)+EPJMU>+ZJL&)xC=>0ad|+=PMYu_e>1JB_nTO$6dw08ZBG z>42}V!@KEsGChT2*H!*IwU^g?O}pRD&L#h#&a}U773EJi&irS1u1VI||%?;vNT_SA0mzG-Vm{0S; zn&!XzmQU(1it^!9W7YN^AKt%3^t}CZW&Ix{3iW+`^v&7QBJ4CDCwY>in=-m6Lx1jY zz3z@GObgrvq~($D+Xfijut(0C$Z#DSp4F+1df1V>2F=2ri*r`-FrDsDj4*zG{fTxj zh;alvCZ&duOgj`11`mXzyQ(j6EyPl+pxZ;Cl3|dj?s+&z3)36!Qvfibq;uHK{Q^Ic zkA-i*NLrJeoBjF=ggcsi5S`*Qs>BQXjY{DTTwWw?^dGEBPJJ@L1#~%P)%~*H+bDfR zR3UhXpDj#C?AG-HT5rCz@6E6b4LQdtXq9iC*w&jYMU&jiD#t(z`jHWP9V+=seoZ*K z$bJO1^RJ7thYL4LjncT)8SvLu)9$Gs3hHE9@FV*3-Nap7b3|>#p7HYW;O2>qQl(9w z8HGZFw49(4DbeoY?5E?ZfC)dOzeyY09uen}FY~xNuHR2RVmMFVeG@qo2aE?ZJHb)T zflAvG-XQ&D4gj@LGqcA};9L;*ap3D0cBrk2_aF9o5~>Ow)S6U_`>jtEK^o_3=knY( zmQbncE|Z-FIzA3gDnU zQ%jSKb(lLV;H0YYroQO+JYb5uX5X-hkrl>vXepyozPFRr4S@zFM4wb#b@X=ST)9RY z@=+}x`Dvw8fNQF1fe%~o`$*%ioQn=EGcP@Y7OW(?jdpx+sHH-6KR36o0O^h6)s?|GI&L(We%29qI4$K??rk-( z!M|}|N8B05G4!!O22I_Bmt7m$LCLn292hu@NVk>n<7_yh+xocfj!sa3>+N@yCP@-r zx4-YM&*reBcBGga)(<&vaTuG3@;j7dhE|sw)mrUnW3{*B4`_Aigg=ETiNYF7J(7jn z7gszYDQJCLX6J3+PN-eF;wHrY0I}DSBd;XF(ub6YGmD-f_3R=$yTMKQj$}yR?n%=3 zXE5Wdg=n0v&707udy%zqWv2LYmjNa@@~Fu^RzGd^YU8_XM&iGjD>P^)JEmMC&;jfh zf3eWZuaj}WNb!MlGN1g`^EsutomUq7H!sTge2|>WP2yOXWGuZ&3RcuN_D1}5ZKp0t zXIa%%|NCmYEib+KTo!+X@1sg2M&XZ@Xt&0J97 ztSwWZTB^VhDETa)x>EDS#OOL0#1qY2o1)s18~SNP87(T?u?nC~K!UZQzlBx*O9}iPQ#y$d+ zO$fhtX88BTqDI(62hkt> zPa8&K-!1v@H*|Q{d|sZjDI6@UG3o`?lU^su`PjIal=gla)`LiOvRZo9D!22K>$ZO% zpTBQ%dmNK;BBVG2@>#?F1UYi$u6+7+$)2#qHyUuAmhiS*<}?}_ofTRVpVKcrxD#&v zZdENs8ej1$ol?`Zet-XRf4?fw;Zxf8hcBY)M_=}FfO0=xXe4sR7ZD74Me|DC^Xi{b z0>KgrX(MZbxHlwxgfj*K(t!p#ShkCl(;wd4n}=@(K5KE}T7uMlwnt7Xj+in(4AIh< zK7GmUUQ{(VT;!t)1aPX9mi?ZYf&`Hn%J#~HWMwkt$>WksMRY9%2bei(ZYrPe=BQKUTaQWh8Nl)-S}Nyu6olUwSU10h11}y!Z~aoh9rrz|{Hs z_xpg56*8hHMw>+wJc<~A+4_1gsSMey?kvr2a--N^#=;$CJ?@O z_y%pmsCR%LgMz?xffq9x z9kEEx(V`wx{P$@MKiyN9P~4bN(VV(6pYWB)%*Wf>|fUV?xUO?hZD)=RY63 zsFzSfD9|PwS;%QFJ!fk)0!kx3wl`mewcg=|de2R*^a_6rfNnrr8=QiwLTEn!^f0vL zPN#)34A?$y6|wq=Ti<2BNh0MMcy_=qkNN!yQkF>$uTD>8%Pbfnfp~NuqWogC*i}^{ zXrxeF%IndF`X^J(ZHe1=4ZF~3&TX~gLEi$pb`wO?jlINV}m41^Uj99L?NADzue zd>UvxaRWi&-YVFU*+>%p!gy><)T2rV9BH{DG^djM85QvH1<#LLHQ4b~HaBPFe!6cw z(qua~tmRV{;_ZRYHc;I<{A10og7o7ys=6TP)gf4t(OC<^uVM1eE<1M?qz)U4zwC+) z`$Yiz*>nuK%Aq<&+pcO>KC9WIizwU-^Q%So6P)UaYGmJu43xSE$F_P&g*DtTx7c=W ztH|G8eKz!@L#jhbn%EB3+Y675O0`O}*}l!0i;#G{;9f+G*ysTi7;Mv$c)`3oAv6-`QUkTVhdzGssKdJmp3* zHr@Q-cETnUGueh*%W3a$SL#jU)X&>T=o@?|1EOnlRA`>$G6Q+(e68=)=k23Zvt?os z`Nxtrdzx4SZ=dVDGbR5A0d^fZr>5$gS)+5dv{=9O{y(~&lmBxaJbDRVnv5#HpqF>c zy^r`%)LJBt!T)!pB-uZepb+l=(k+l|^wKIB$6+t5TO_hx|Jq?#0)?6bvsUxTXVXIt zdXn=zDYMmn8dVI(h|QizAPyiaj|1fCBW!$Ac26f1zz5jZ`e$xSHg*(op~BryMt}v* zQ;dA(Y`YH1H5s^h<&_VPb3&orj~iJXX{U ze=AB=pfl(zCR7eC6Mpn~BcUwUoMm+|K&4ZFr z?n6sEHg@=|&+x%&c-Xrfug7bzO$)U5QQcV|gD->5lm;tkHjjEZyockPOy3i0_nx_-uS!>G=e`{(z`F`PaNs%4U`kZ%C3jXwNxIBy(y{tjMLqe}nNa6wP~#P40qUqE9bJ9ns zFrlohOiTW`b7=vBFXM8q=_&-Vnb`fmb0{Aihj{7b*oiQ8o^CP*5X9JjfsT#PnUMPS zkF_dKPNLz}y}XPuMRR0p_O*-FKVkE{YKHEIM3V~Hgs0zU~shSF7K#_*s@YUjWtxSakkAs zt`cy#fzuZ;ot}YrFI#X3U$}pRrl1p%0Oj-cB>NRiqYg4vB5_rq!sF%e%>z zO=Qcl_=(3>gOBCGp&3!(_956hVS&_6{h9CiomNl7#vv6hW>yg?qU zY4z>bsqg&H%!TVsQ?z^Rg|NIRDefAO8k`Z8h_fg@Jf*22o+&;&`s}q0ZYFH`&ZSD7 z?4~dtpYIWnMvIy7)*t8?Gl*_(o${_vE!B6L-i!rU?Z1G$J}~5PfgXj?t%U)2*Lx;P zhWAZixlI=;(=lAtfB42U-NXM!0BnvC4z`v|4ml==9Uhb8p~$1;%rS`hL53H0!jph@ z%B*|}lZ$?Vx88kBd>W*`*I|(+Y|L7bKy$?li)8(|} z(o_`z+=OY=#jlIL)-S8dqn{7G1>Hz1h&yowEY>4Ftli)%_h^OQ5#KXB%S1jH=u0sp zC*+U<#HIhj&YD61jf{HsvvuXdm9f;6{k6rTOPdA*uDJ}~;v9k%X_V#$#$R~fmx+8_ zcJ719TaUA57;t4kwK^8NWb0pN4gcO!onUjZx&Ff>v~h{ueFUMYqVRMeu$hrA`D~+) zqdf;*{bv)9CRdcE%G+xvULxMp(z}MBw*gjPmgRaAecc2Y= zW2p4WP4>2r-9Mbqeex9VN%xNU3tKU!?vx9dA0Wo*&x==oy*0>9l1%R-g=&4)z6H9G zbPpI9iMQ+EJb#0aH~fWm9U`=x(#$?9D9v%F7>U;@%s*@%;#P$kS zxiu0|>QQz!KuF*k5l%EoSC!y4U+}yyCZ<*A>jK1-HVsuoQQfS{Jd}`b-Xa=sajwXkiOzQE>N=s;NaYehmW-hWIT!z`y^~~n}?Y-Cc`c)dX=S|}k z&ZGpCzXSLGHJJKyKUpSPS4Z0q;6C3g01#td=x&0v=#w*!a=?c+8-*wKZMr0Z>_#gC2S2RuO(X>#T=_ysbKf|o`^FHQ~d+8 zQl`H#ETB)DMB;RZ_Bt5x#!To5(+9HZJDa|tvH3xD`0gr|BlAxt|r#fjt2g#0<(z)?H!=xlF(DN)jUrEJUvJKTMHi}f6D)PTcxcbv@a(A1(FQb?_eX^o_J+SSk>9OHuTnwG7qoE=0 zKK3kZB|4?vB?SMXsE-q+{{Cg7Ei5myFuTD|TcAif^{IE8qKPRX?6+ckO}qPv7U^^- z#cg=NtT~WRcic{U4U?fvp1w!|;I)3@^O*|m`GhN4^6C39nlHqGB}6{BS@lhAdQanzY&)D!chLQ;uK6(L;MY%mt|~<(ErXG`{z~p%hi&q5g(t=gzL~}hhhoR_g)^T z9_V#mCd-^LjtU~8GqjKE?K-E`R)7`_Zq+Ru>^5not|m?6Kumtqz$?-R($(-{63KxY zdkeL+?hxQkSLR*4-9&GZr5%lkY2;q|3$1 zGm+2a%2xgMESyRm4T=ID6k}Ft_JM!U>jCZhk)MEkFT3p>%z~Zb zzF47ihaq6FXs8fConUXNBQ*|pAshm1~SuBrH=Ju4^YkN0(WImr+f_-SeT=i}=^stT--KnMD@C=ILpYIh_q{(W44JKU{133v)u}rv z5xN@m5yHyMXCW>liKTBJOrMHwb0dzg$09FHm#Tq3NjxK%tp66F{x^5VMLPLY(W*U1 zdBklpjdO#@V?6kxG+>&qGyrGpYKWVu2Kwdi>jd<|qjatJ$Y~6W5-)U0k0o%x-&Q~= zsiL+O7C!UF(}(;fX#TOHzlJyKc0~@bsP%}7fQCO|#IUz6F|G#s+=c4Mqa-*ac0E>X z>xzvSKPJ>Q;py(`Q_xxKu-SSevFN3Cehk-NyI0k1GgJy5%O3n=V78bAi&q#_}nRoM=%UkF4+u@`Y zU;KFKm&};j?yRUDor<{tbD(@?s@$9m@W9hiphu!4V$Syt!964-D)F7`W7VYE;OrttCeoXtNFf%);(g%Z z@=+xck@eEz+d`_-J*<`maGJDyujyxm+kO`UubTSZ3~7lD4kiY+`r@m8VR-eUE7^7a zXYV+<)$|#l#V5179`K5q1okUUagK3h-WY4;azzx_a6{Y0cB)Gs&!W^+MPHF;W!Dwf z+nPs;qZpTe8iqO^1QG2Rg*ilTRkBUrUn0eZn>Z{aB5BDb&}tnA|7ZwD>JFjLA7X;5?Bt#b<`4Y0`d+Bogl9Zp8sRbIs}}yy6KoUh z7pZKsB6)o$TS8KVoN4A33JKs@14rwUEVKm?DgeRH<4j zqSpvipX+t#Gvi<`FKVY<@A9JaG)cE7V~0#(NoyR}8ZN~2b~YG7C?Rpa z&@ryw4}IfSoham}evB>&Nm>R2{vWhNusPgvIot|aBPm5A)#me*M$amm+eFTMN6s6$ z?mF^*bbHE$$_5E9kEj>J{I&_-XQJSngV9ifgMWu|>UFl?I}`!%yF!!j_I47KI#s6Q z5Z$g^1iT0(um+}ygfo8-XvHl8jG5&dU|8sEp=_M7tDP(6AMURYs>MY*_fP$6sbM>K zqTw0SAZ#XCQI3_MSKK^b#O^i_{J@5|3w7ttz5tzOspJrq>D$inDyKx>sEG!}b_(B8 z6N%4WshhiF5L$Y?xVwexeC-c>NX^8i>+Mdr<2lI%Jh_}F-0^idYHdWm#9Ewu3iX<5-kzC47+0a!nyR&3BgW_NRB))wR8@L33Ruv<0&2!gA8fud zRpms|nG6>}T}axvKK;sC#|>^cX_^sA`Qkv?SPW5fzDSY>&iu_R{rrL4WI;hrRy^uK zGvg@9hacOwEu1W)v}reH^o>uzpNn<~WPZ$RqQ^1k6L*b}a|8J+f7Dc}DEdG`-$lw% zPX^^t43fp3bm;7Z0WXI|Yts>hckZW@l?2qX2H(>LhG4x`o*I>9TH+epyLC<|uenK` zh+5@k^<7Ux3`NwMj!s8Mhh|I#kO5~dCIT03ME;LMz-4d8(c*~!dAya+QuR&mBr2JW`p)3Lr;r?UtkP03#q0%Zn>GF$pE0PWs1y$IZHjlo)}G`dF4%ekTOErGbd z00NZVn#Rt+tlya8rtEg+i@*<#N|pIWJydacm%(0$+s)$i>zpaW9^ZkdU$eGUFX%A1 zVZjm4Tm0nXV+hCBOaOn$SHi^`cgxLm6%cB~A?JcDeG_l_e%-Y}pQ!5Y^vKl)bj4tq zAHWB{E)T?|`CuCUH|0HX_aG5_^QY zEZz?^-ENJ+&c%8jT$>5%lQFpi!|kFE2S7?|2`4L0P?5AismWuNkEOAlPP1GbdLP2H zQ13%+a_>s}buTk~DV7fF4BO?L;6T*lZ{m;z33ezrKnc~0(G25m$>wDqhWPH^r^URV zm!)e|0tuF&rnA$Ec}&|i87l$cXFAHy!5=e^T18{)j16U-dFh}pMcb0wzcdo94+jNS zv;dtSsVtPy_FU@atf1$os3Ix+Vy)onn)3HGnQxdk@!gfb{1{51XM>(H1c%rzc?7FA zu=Vl00ivMklbcScO7p`!xS~--K6ABUl>(Xj6Kf#7rTL7P&Q+yhiXBg=HQkzZSGZI3 zyZ+h|6rdpQY3_9J$oRXy5i3xjvOLQY?3g2r4p#+_m@PP z(Yip#JzD4VHg-$Lks91S#!pS-<-6(@)vW2^8UjjT#Y16m!%%1F5Tf_SN(Ozb3cp{vUag0 z1%KV2!(~4&VQ=WXZ$FY3{q9yHQFp9MLd6^cXO5@VbdQnxALS86I13*v$2@VXIH5t} zjtKK4Gjk>(+FFzHB_g4Lo!*@(iAvz8R1%jBm>t+_TDW2#Q5ZP4F<`8v_^Jw;pQPmD zjSO%Za4VAr;mi!f3dX?E^q`=1$G5o^Dxs=6{iVh;e4m>$_8g)9(8u4m!fdv4CvJcFwz1{q$$_jOz%lP%ovPe0;jFyv&eHjxPkpJCP9+r|OzL%sCa+6s@c)^)KAvE~fYYUI)wZYiA ziOp^|s~v`J+Jj8^q7VP`svjhAyF(ux&|NWRw6S0?OeN~cSmneO!8*puO+LnBy$aXO z`btS@B%(2vxRWhn!<%AzJZ?dg&#z+(s;OXVeMlduA#H-uEHDG=*{?08!>=JjqC@p}slW+-qDqP%e7pw5jqBw1PcoOpt~nvd9Oo5e_V zaOdq*fFa{(I^^n6+5%J-fJq@3 zjGidW+&u04pw8x?!*F=>eN@MhS`EfV^EH0?Vhf^6s4z5;^{Vs#I6C)mrvLx{m)=q- zI$93V;T@Ipapo|cP&w7dyBy{$A!eAvutO5cVJhW(=tw1JHit2X7_lu@PQx&^9EUk= zX8Za6{(b%Ryk6J!x~|vr@wne_H#qutzaB1XR%y2)Ipo&`;;i1uJL|S+A=c``zCh^A7d8E63d9zuP=Vmz^k|piCXvX1h$m z1y3abo%!Midd4Dl10d^UWNx#*DG=5*&vN*p$upJAQl=Y}ORDsqU^z$VXC>@5nd2B{ zY@{;#xgCotB{~0g7w;QjgZ&+UvLv+E?ApPU#8B0dU?u>5k76Tqj+j2-PgQBGC<)Jl=eAPyGNW$P#Q)7&`$V|(rT>NzN4iqlh@`oMVtQJPEVEAf4KWcW~K4BuEprQ1Qg14pMW zb9>16{>~%CD;I)w$1BqeZJ0-tS;XGB;lIhxRnvCK%FJ#mO)fq7h4i3X;KpRJNs<2C z^QioJ7l}?wd}M#W8PxcCJA6Bo4p}YXSzn_V!=vCB!7ss!4uT{n7uFmV^F2bb7`ppw zD3WuZEgu?W8pMnu(BFZX z6}=$v(p97_IYCB%_qb(3Hr#&X|+63Yl)d+=YJ@@G)Fh z3tM^o1jdXqv7$nX{v&$$kc==$L`X=eC@0MR(AGrQtmddM9}N4Ue(g<%uCk*F|3D&Q zD4|Ol;OV^Q{RLRE`F?GQ^UB}J8Fq$1XBv?w--8wZWx%%Bynl2!uXr04JAZN^*A%Y7 zPijOqc&o5xBd`sehru6*5&4v3n-9)1+fo{>bRx>Ql^rKjLz`x$!ZX;XF;8y&sqR*_wO za%yN8S@?>%v?YcE*ipPCJnX8(i)GYIES+EfXz_HH2UAsoXGS{j?oa7_r~XU(^7wJ4 zKN4fEa3#IbIN=t1RM8=B%hbl8OY7+e5P5ll>$clM1Gd<<*CTJn;|JDIJic zVsx;bl5-BhkGZclUqwBAmyYeFMc{LQQh^!m39ygxCe>wyYZL41g!GH4qCJndj>w$w z;qTc?w{HckY+DcIX zxPJKJYz1YQ5_qF#whP}KFNnO>g3em=LHFnhLXYkC&WClQ>_ok%J)7apYo7NScuULw zuBhmR-pg2lV>R2PniT;2Ey{hFeN9hTUgx#`xA4#;^i{kLUOhpyv9mBJh}|*We(hW8 z1S8Z{ry5{-xf^?JNZ%c5l;-A;j#-t^nWo+F1K*yzG#xN9)zJNw_ahZgOKXIFfe0fb zxUUhF6|bg(du9UdI>}WYlhf<#+{_93=7@wA1?hMQ@#gZ(Ri)de46k7B*xE(4J2P_0 z`O_HYD|Uoud_$`t)D=jq%YB7}Rh>hti;7deTu`gA4QTw_L`yY%9f?)Nz+K}DDcA5ICw%qzLb!^+m`TlEylz?zVO^-Oz}^Z1LWn=MFP z@46rM+R_pRv-+OCWD_ssfmm(vI|mxYn+HQ3LMXnO*V<=(Kqw?eklXW@BxFr1p@s|7 zqxBgS#4nLSMVL7MXhlHxul)=ra7%%)w((DSKJ_%(+3Rgo-bvelWPN#o%tWq9ZW%B? zlxs4;^so7<{-yRhQ%~b}y%tv?FA)xnfHfRwTXM^155pA^i~>y^3b z&{{^Wq9Y9G5)}l|3)GW~lnL|Or}W?RK*2@zg7&nrX=IEZN^bENx-I%qgNvgrbE;rj ze%vi3IJVQ(yfxnVNN6gzR))_7tJAXVrs5(Y%XIPXUo)ExuY6n64f)bW{e{T~D4yUU z?65&hS8d9Bsb5MjHCe~lk1*RG$#%ek|5>a#4ZF6V;r~d}JS2@-h`Cfa(Yx}a-TXwM zih@SUZT#$o@=NX<9lJu4M;#c*=N;<{`I9evez?X^f6{V}RQb5|Fi4+Xt$nha_T32! zKUfcEq+EzH>^l$}S#xaU9)x+*HY05(i1k^z zmYUZ|>c4Htytd0eVev{C^(Y$;ZuM*E1ThEb8%e?{N5#T7o_zHr% zxCZl{x3B2gJh`@d<=u~>%X1wnG~&NX{@SmR+D!v#GMjQRJHbcAdd;2twBmux;IhEq zaQETb@?-c;O+|ZrZzT5*w~{iMmF~U$vlG}3HKGSj1dO~TJhwE4p$Mua>MR%>T1DTw z?kJBLb946HKjq@v|KkNB|HY+a??3u7y)L65uRT?|u4ZY=+e!slQx>wiB{c>Pq{Sz- zaJTm^AbZm-Ae}(c%?pQ=>UAIGurKcT7jIhU9d6w_w3n)t6PpDnt-V z@Q^tm7KHfwkHL%5kS6C81EgW|>@x`5x-+KQTf=!6=B)ZAI^-xy51dfh*Ts;Ml6t6u z)@z<2r1wG#Qo@<_EZygEiv;m%XhF&RZjVl42jD;EA#11k9T*ed+eK=oNy<<Tj)1&3;Hn?lIXXOP3eESs7bG9 z8i{9)sy#n5B=IZlSYk_<+AU1y;bvde8VhtUJQW@`^@fgT%v#BND*8h3N|g2N+;W@A z(<61vV@m6v7l){y(iWc*!qn(tF>>L*%eN|*Ac;W5Ar*ZTOMm{wY%S+d*;)wHI`|^d z`COa#WeFM#jR%3og{i`#ZhfdKOGlXwBxK}XE^3@5hNm0Pb5Hi2oG+TOJH^&z>l8;sL{sJZU%yU-lM@41 zf-d_hT2ggx_2bZ0?e%=z^mU+TrPA!QSJCi2)uTZK?ZWR$skSuVL?}|uUCxCmSFgJ_ z@@kE#992fa`L3=MM2rQ34%Sobn50f!&6|dq<+6;<3)>*gzx{qptgP)VWWmPIj$Opi zrYv)7YdBHby;<}7u)-`$jHE=gPc+F3xgFi)SafDsnWh=Gf>pwK0gLj@^eB zV6I910uNpUJhhWV?e8k*s?q_U0&G9eJ{ZQ#|`q18FZ?!q=>gH@S zC*NZpQ8RewBn=vydQJFmKiaG2Yp)sVS^F0B1c1?Sl`Mu+Am=XPO8)&)Zyf7#zY%NcLZKLtlw=phbwh;ZRk6Gpc{5Fl zlRz2!;@aZ9?q7xT8xo5*2n0w{SV-$J`o@`XgKeds@mn+a1yB+=^?N}+7`Aw!#f>3 z_X*lG6ZFh7T216qn9+8{EE_&OxcrGMAv5z(;p+)CovKTn!f9PIJG(;CIPN7%1BCT~ zf%A}e0t+Jkg7XI1mu_q~4y0-2X!IvK7G=j7R8V z*i^L-%oBxdJJm~?{C${S>Lcl(fszvL5`3!BX91Tw#?n!DSVlE>KS!r9anV-E@g|rL z;oO}g1FU@J#zc|6U&YlABMWd7`7je z!Qy6yBFbc`MKuZ}p&;m>=8E_E9}|6t^!%rfvAsO98;|=(B_0s(d2-t%u+HVBQTK*x zcISzoE&Xt3P(kUm+ zpMQkvqn|TR#~Bp1cv)7PjeLu&sIl0lxQut4sP{>{MM-?XxBeMhHFc!-Zxbwuf6U_N zXfjICUK*sda-eMBRmE72AFMJM!Sl0+a1@@$B z?v)yvne|BsD{?evvRP~Jt(9&JsK#n@+0`;qR&E?g>c>}5y>S1i2 zNfj0(?GeCUET&NfW5{E>0%Gn;Aj5I(2&mt#sWK0t5zOUO+Y`2DiwnmOA!w^;!dA<| z4|xnw3yk8gv5Np^76DDLReg7P*yYTD!jL~YX9#5c{`Td90)9h+A#1xv<8xYFPMWtI z%wPnf{(g2Ufx$iJUSSt}VNpIm*K`+I%huZ*q;M4-S$$vgy%Iuxa_kui)I5womL!$Z zY3a?5w8AY^9FDwDq5T5Ox2>L{1@olD(OjeaCr6&gvYy#3U15)%ruUfI7!z;6kAL}B zZ!rk85`aZY`uRtmOea?vUoKb)@jjZ*`X`T+`w=!MpVpha-#Z6DCMzHAIT*+fg2MBP zpUpgjGgnSgclVo;wuf5=CNl&zUMl`b6FN4YH{bKBo>5I7yWSq(QE@Fk#UaUTe98}BEGG*24=UtcScSe$HCFG3-)G5tw zXB<8j@wU?ts$eVLKVU$t)8|6dU-6o{1GvBfPT7&rGF8W1sl4fj4F|Uaf&SE}Lp zjj_iKUE&}71F9~<#&F_&3GmLk@_lvXxwa$6w(k|*vj2OQVPLt?QZu|~yCzD`^tU|I zQt9`WM{Z!%-%AD6ZQn7 zrY(4k9suWrB%~4kCzTCstT|02$F-~+v6(kQW$vVeYwftUj3-@sW5*pky(FXvaBb z-wT;IHP~)Pz_)$STR}btoC^d6iEuVf{hH8VZ+ZWP02B;4QCDPdqP&!GVlsU^BClB` ze~4c!9dce8q+zt+U~gEQ-Rb4byjIp{$J%*q-?F_6j$$a5!4&qaQFyE0^$*ZB+RL&?n3(v^FSbTUX6zub*Di|}hu+{h4IE_7pL84?PMxD%Mj|q#Y3cz5e|DrFw z3han4qK|%l4Hsr*;D&5<)fcKyne^^6bE7}}BV)P3q#M66%#_TOofk(_e3wd3Pa9Sa z*DvZA;#@DjK>Y^M0?^9@Sj&*KGi&-7QQoC9{qH?z#oP}HIT}atdETSN1!T_jd3C9~ z%GHKF7v6VYb0l0ul@8sM|9M&l>!J-*hMt&$u7SiVGRDdxO$9f2)3gmY?7I^@SxN<)(bo0}{q z5LIBY{eC<<2wUxPIGqr!p>53Mq4>`vCXYpFL22}5RW3r1p-TAXXC>!+kNsxzb0H>1 zoux1ma>3*l2CI)v^&QyDzN6w!g#j6ky7^=Sc?J+t1wY@T2>?rDn>cuXS5etrO1=rN8x~_) z&=@Y5_thTn!p=_QH~U*3Kkk_IulAnTb-g#P&we3IsP`Iv`{$oFX5+Q~Oxs_~^ejWi zT3Fi)Zzj^o+Lrk5^@IPrVQJ;Zqrde(q()NP(9-^-3siq2ekL&ZqK$uRM_QD5^X-53 zHD2_!*27(84z5a{P8{6 z*XTP&9(p@CwQ$8h;;|$3qNl&Ok@B}6^xcIe_jOP^49DRXz-i*t?oEE6&RUj&?!Dx~ z$KH?%!&(2_WW8!93h%COy)l#2cdzlM9Pn`lxj^2Gm;cPzFk5D>+5JQd`1a5C$fX0f!M_ge6!kS^%E!L2 z9IyvmJwRJ|Y4rMfX1PAYd}x<)S;Nc6IX6`qbMSmci>vqlVaH zIA{*&Y{;qt8F*sz*Mj5lA=NeA$=wcq)N1}4cz&8-B$M`_>0`R#J#NM~8PA`bA zF!Rt+)~c`r^o6<`2r@-q65n1lgm15G45T$?85%Hbu%GBrhq%8x9Y&6O>#qB$CN)6O zV@3fC4`JwFCTiD0n@e8}s97aQ8vVE!s&n|~nBGgNd7}^@nxgU-wrKU2co1mBl()z$ zgWdYWVZVTLpd4F4c232mLTdA=S zHELqmd~C^bY{EM>BP#G$nnPfnvvlDh_0rErTU%^RtE7V9 z(|iNp>YgJB>0i^C(9p+hdgbC6O3tOHReaT0SlSo!c~G8%jGJ1@+vr%k=W=v(h0*+i zhPZ`DbqCoRo3_!zRJB|9j~QKJcV0UJc2id`!rEjFM_1Chyk!leIK*G}$Hv2J8-QHV z!NbB3ac`E$ducI3*&oXtiAscDzwzl7Z6MZjO9<V2^D1uB>*fj+?)?VU5z}D1E$k>TObb>Z0Ayg zHQLD~kU8+GvqLvysw9$;y_vFm?2Yh%O;^<16|vf1)B96V2e0qA`7eGvZWv_Nm{g>} zf&c|5$V(X!e*}D?-)O?ozcElvoAC2Bn8LMf921U#DD1UbjR!0{@mDYaQ5c5o;GI%& z;MPHqD+)b~`oc6#MpZC(^fTuaMUpDs4tfS%Vltbha5ftG^9lvTio?}m?_mocjFk$Q z<9R;-#wMJ;`f7V>2eH3$Yc_nLbPVy>IcVcS<0@~aI7mkX8F|XP3ES2i4_-QRdQIPM z4l|HvMSK7;k+9{K=Z>8mKjBtBlD1V&CjgCIP$1Er&hqKnq~#q>6bs^){4QN`v+>}^ z)}=>35>O+hd)n&UplXvqQs>s&1;gj+oefF{*Ll=a2VSeINa>eNQB3fvma0#_ceIiH zWK93nY5F|ii;Q}+N4XcWMhd*#1bBGlE>j%BH zA$s)u!iQ9$+C&P~zvb`gzn99*h;?%d|1zREV4G3*m0?334R-=2>1Klopz*PT8JacG z4nIH)`oFR4jt0-W%lo7|9q`nrM_i|FoSR75l#=Ag{7YQ6HD-J}2y?mVYyx-3zg05n z$Xj|A(3cESvr~-mGHj_*C~Z{7u019B7n+G?azBHp;vStbo2k6%^Yme|7vCZ8i3a0= zB?hqkO_eOE*3%i?Q@s*!$^tnK&=J(V<#*7{<1c=sw3eM^HjY$vx0Tuj6J-vcnI9CF zXTws%g=(4@zFE?#8l+mO^p z3b9T=BL~QO|B*2_!=|Uzh^T;$^&Z+DdHQj!{VO1cP8fErQ$c=9)x7Dl&zUQvJ8_V5 z15MH)*Rg}XY^MUl5P~fEL-|2PX5K?NscUq^=G>!Xb7bC0eNc#4M-(@_&qbpDq14tH zHgld3$GL-)(QvJa0E;xg3(-@rR<2V8Eh|PZ#(zEp$pXWC$DZO2NdkR661@u4oCc(< zH~SOY8iqehh6S`%1bXpeRfv<^+E;Y!hyMHZWl{2o1<^O@lDqduAL!;$Tm{LDDZB0e znv)af>&);`0}4Gd*7iQo!tnM~p-E6|{AFTO+z@&nCdygzKtYeViThgJWT5+?xOy|e z`~j6S_Fu}n223*)#LBYj!=`x;U%9R!=*4jB<7;Rx2rcON+Zxv1BHp;_dM^_asVW+Y zmdqJ2rHR=Mp7)x?E!IX?1od1g5WonI;AD_YP)4IqOZ~1i64l5%#zpbM=CSUFS}WUN zo)WS~8TC(UMyg0O0pTL|M`QIu;(Ya`$ELjBtDg|}6YzDu^6R|fe0Yj+qXPvf=@k@J zs%c6>7@Q-cU&72>(8EnDvrMHqs+tn(Lw&^(Xy8MF$w5<8G#WrcLf-Eb?1-T3Mf<*q zh|#JA3}Pnv>PDjK#vkI_!hwC$zV%`1_fBtg#}At#Dl`vNSb@F9_CKm_Bh{>L2lnraWiRcn&br) zI_wm#ZOEhr8ETGSXG52K-~qOU)rHP%D^fb)Tj2m%e7>`s|Dt%M$Dlya)>iFZ@KAWt zy?|fp;=97_IdV2(?rLyA^Vr`Sm$h0z&p9Km&(RWe~YnKZ|^KlsR_(T;=={B;>n)s|}Y z5k*t?ox%FI8*9ek$*yHWmzdHsrBw)vYW{rve-*3DKcX2(Yd~sL@lKw00oRh^P+WlQ zPOFJrP5!gFf8NzBJZ}9bOoI`fKG|4j(i&Je5=A!-D8WTe<2;0;5g#{uXlIQl_AhJ% zG#>mDJ3{)oKv%eLD4{(u^{nAS%R%4#T9USV{%&3%whP9(c<*n--~ACxe{{V_Mx@gOM%Zc_3zxY-%X%RgJWH6&uuq8~Z?K={3)xnk&7hdpG= zz_jyEp#w&J5Sq=top{z36Pyx zLQ$G|srQR;amTJU6AQarKjd?Fh~lYBtSIN3ahb648tWW~EXKgS`P3*^msWi8@pkv< zps3Nc#hA8#-TLvy7&&=sO(n)$;2CYZf$DjIQ^+5FaA&2}hkESHLxGgrIB(|6yMgM@ zB(nA;#oBlGa(b=iZ6crjk%3j#2OB3KNt&>$xUuym#P3J4n19*JQf^y)iRv0yz312tKa)!dsE}Z zxw1r}sKf{npnfYyG01FFVZ)r2$*#a?DyD+s?+d-!$uodbAgJuL`{|y7dApKG^05YQ zX}3R_8enZ0JdEj)mz+s8&R`7GWXG2E(p&g2zgEXb^JKh-x&wB5(`9V%HTY^`iv~ z3~tjL1Mz322hdome|=JLYd(uk06UCDKW#)lfqvuT*QPodQ{M8?ZQUqSGXm76(;y~p zcyxRRW`fGxOcp{4IUuXOAO2es+;MvFp4!@$0*USFJoLO1{M=uY+Z9Zm67ucHqdO+^Kf zc#DgFn)_=zApp5LB6^H!;%KOm$ZTPouaRGZA`zBVWSL0tNu3EeY+vZ=2(RU%)Q9M) zA0KzNMcu8qmw1JF=fG?D$^T$biTSOZ!BD5$_ooG+u- zHk>E)q_i@_(H+g5_Gyu?$jJbtrOyws$Wvc(S~3PUE-w{P3IBo(kEtqn#9bgSD~L)| zh0;sHp&%IVMR+ATv^!Spl*m=#33|H&T>ZTx{by1LE0=A6o)~f!Z8^}-!W*OTc&@~j zkI`j{y3$O@Oou-TUV%#RY=`)LGn*f!L{8k6yv6b?G_RYAU(8O zp3~IKw&Dt(W&X`&DEF4a6(x5TC{Dsxk_x_&X*-H_jh8%JS0JH_ncpSW<=53WAY5jlau-G_1R1J*YE{7;}=u_(f*RnA$l60*^knLSRbLG zNs%OFX)t@h5!pc$^bnDoz+w&$Gm(!jruM1MBNu-nYtyu-t<~DCI$`cT z@lijGsgN<(Xf`vS3O_Bu7D^Vw7{X{2ZC%W$uilE&R=zlfejCf)29+9AVF%qZ%NW7C zHRZ6$H^mC`gm|aia^z3Uc8-G}Lf~#lXopc(eD*qt%O7xh8ZqHaiIEKk9FkeRo`Fj` zkldQ*iwz$=w0!cv#YO z`E5<9)cn`6WyI&+@G1RIM*m6to@y2&<&>1}A7}i#rFO_UMgNFKnH(18Sr3xHlwY0R zQ@56j#$Uxx5AW&3FTM*Nz*e;BOFx$UToPt@%{>@Uif^gf>hu0wUbr#O4Gb#P8q1mB zZ8^WoAGi(ywC2NGzcIATdV7RHlL_%R0XNsQH8%WJ(THQ-#zbBuzU^C@ZUL@QF)|ct zc6d=Oc*nYT>Gv~>@wH(`kF4En^myP7>J$|Km5^o2i_+?w{A~W*)ZOUb!Ko3XLiU?N==#ByHGVp56ZO=o z4r~7Tv#`L8 zn^BtCdYyb1fAzFiHakl{oes4VGi~skMML(8Z(oH#vPwH|qiK>WGT)BAJlaGT%9!M& z$&9CNf=RIL<5+dGdj240L~;BxZ1%}wRYOQS_w7;+tQh5#wDIrnnTIfk_@)Yjr)%oz zazhMH5ApGbKTsKGtpIC?VhP)#)&@z9yi>NnC5zLCzPI_ssUl8q?w{ z7###JGw+@?>KsItlsa8#mUgtWxE0{ zu1$E2RV!5=ZbqZf*!$}<19N7X!mZ6J2s27GIG^SEXt^ienm$M_9tu*YpR#&4R;NDx zXHXC8WRXmofDY%ltCnR;Cs-qsx2gZIfW!hoFZZ0UIU_eavh|;8MX)$7x&Jb>F z0}b=V#)tR9WyT2CR*{7vXysFqYo8-O7c$0eSb2+UAb5r9FKW|yVo8uQrPmv|eEXz| zbnlHpULJEa!^Ry!S}d8aY&zhrjo99CKx$Umi&L^C3K{IMA0i&(_u_O|x02b+!9X-v4+j5*Nk z=jQ6|EjZm`HhAyuV-d(ktr;znyZfHiD~_uAakWEM+b1!R;? zZs5HWMGi`^Ri+6$dO<{m&ftpHYa)?jQ#*~!$0`Nz* z+j^a|OpZAwjy){u(mbF0Up?kbEPGMp^UJns;6vBm0S6tIEIzydHKp2Gj_7|fH(iPt zJh(NNog5mDn31m2pCpna;ZWK9iwoV@1X$t%ms;ilEEBu@znn7U%^1CgwNcagqdebSp%<6Jz zgNPP2zrUiXO9T74m;{jit_e<1dhFF2;v90>cFfhro%>GsvjRp~@k)+bE*}3XzR&?+ z{=SLj;v@k9w(XWNk?E2;bC zkhqe(8g?p|a92%JfjI|pxwSiy;X*{;V>)LeV#8LD9R|T`*td|$9}&a#f!c+Ey*u)_F1fYq z2G=BR8k_3@`j?p*(xvFfv&HbUT)_m&4}_O4q-K-w{3-k^SSp!~Of^Gg=Ys8!w9|g9G${d_s)S%q?ZJ0PqvDj7 zb6cn)W@OThs4B#R>^&cKzNuO3Y6S@qym<$M$61sM8HW#Z4hFH8v&`A0qQ)>m>Efvc zzGWJOWH;Y1u(5qp^wb@sh73Y~)*D@R4Gt0pwX!i$tDk^&6}BnAi5|NSQjk)w=oA0N*fU&QR2R-bf=t`6oSUgfDP^xA1Yd~j8J^giJq2hF@e zWXD)*A2Om-!*HBW|N%14ce|e-0W?&pdy% z>A!JVk%8l%ekAE#K&vbF@Ix-_bEy1+)Y<_SIFJ_isnh$Z^=?{~=q$==Q!(1!UCTyaXftfj`Sj*fFtQ<;wnY2M-B{R2zvJ`{#DFD|$k zSho6`TCIFN8sLKJfugFT-0N$!9%tdAwmjtV1=%X8(DC<=AaO9${Zhs2V&B3uE76Z~ zBfpl`{fcty06p|*{OW?(hB3{ksoVcwRugD9iFFMx{$lZdej$tZf0G{ov&FONbcspm zxo027{C%4l0v50kz1he>nQfBHgex@BmXe6M?Xsb=rNc=GzKlaOpW-INT{o6F}=Zt?6_)P4s|PN~8CXz7Y@|F9QI8zm z?Uv1sw3Q$T`=sTsXq0c!9Q!~HO>8Ua{yv5f`Wa%&uzlifw|HAS!&CpR-gDVB3hh(> z-uC#+@wucM&|jb({={DzQZ+WN9&k1A+~$opvG$`;>9Zr(JQW>f1a6_u$SY{O{k0>; zwx8o2RUDwK^>h;$g?o?)S@{;d_Rrwne!`~L=lDx1B}-J8%CcQTprwyV-r1(~Uegu- zmB9vB-Jg>FZ9S2y?@!SPZ^|ab^`PEPL0Hh_6lczRTd$7JK0P>>xNY30b(mVe;C1mI zXo8Qcld!Q)cH@LV!&=7lbGGYA6gYWt`f_lL(8q3V-PURIT14up45h8pZUCRo623G2 z-wgyQBFb0rgbDOB2+B@lD^&Un$B}gKY#&9U{vSM{Ro6_W1>K~LH@^<}9UU{Cj?D%v z!4w`W)TU&VF<363{&XQ=Ac@X0M#(u)NO&;BcP{eGVBn3H z7wn@!yfk&YQ<0Mfe=(EpZ1VUXyu*R=D%Xh`z^$Ekh< zpk*>UAvHDiLNV{Dg;^K#=@1lx6mKYxY{ktR!c z6<(I8o7`fR>=;4_Y_f!1vMo$)&Q)Xs(AqBCef;P$;iJ6u-@;KFT7Gq&xkoi$S;wGy+Hh{>W(GMx(6dwNvb%SVdo>FQbT>&CdZ#o_%WLu;RO zCCm9)`ob~q5~^`!SSu`5cR_zV$`vs&*8f}G1lf2m{kFE zvBjSMeRJCzdOqp~?oho#@AY5SUr)Hieubwa)f8Ob>8AdZqpYY=G@9inuro^v5MZXx zAw#@s--s#XZI$k#1){fq>inF^>W$PaNGhK!ed@e#-X5}(6uH6`?SjN_DtH&Px!u0D z(jYtZ?Mr$5m58=Kp=nKhuF<{Q_q9~r{&4yqLkJho4|GG?BYsw!L+Dl9&*??m`)NBF zl!ih;)Z3k^L5IE5v!Wx3{3frXV%}BBTh9om7O@S1|pTyCpi~bw=c_j>wG8vp~ zkkW29166okOLhkls_MQybiGbE$JB_-WwaAe7RS#Q7$0FS( zoXd?ee4!ugET~XQJaG)@wsr!pdEW zgkS3Dno(|ttTd|hm4aQ?qPTO)(mi}VFWHWBfPesRjYsb!vEEi2MP%YwafeY4h3{Zg zQmnWSJhU%fn|WR61A1Wlwvs7HSStflZ7zta#+C&QTo8NMpHy1yo0-fw?7w5WDqbi3VcO|t;SuNhRqaZfocUU<;h{RQPVYaRj#%fLdUnEEA}(Y0wl z429^9+Rh=qc0^49-7lZ0rAciu5weHqJhCovUbRG}Siqg&AXN4UfG81on-?t*Ueow66});IUT6tKiEN`efQwKw-dqEj#%e zhq(D0)9&b>6d;S>ggOr-_@0p_`M$HsDviWk@%weT*{|Ht|OF+Q`8GYHDQOeAz?@~Rv>9)@->RqE_fIX? z0$cYGmCsp?hogZ)$Bbm(0aSY_^{;}JMNvr&BlwGOEH9cDEA>Z0udkG`y|EbHHajg{ zKlT?Qn9Kt>{C#$!W<#^g^)Rpke}E>b32Y4Bn*z6a+#{iB*rN;3NGbRKyTWA{|3d+3 zzMhX+uv#$tOWnt8jQgq=bqq~exf{ce1bDEW!BS{$iab6S8d7H9NEegV9Dy=>V2CBR z?@SY&5+!2CAB_*CO4ECb$c9-`K<=n?gS)UdtlU>i#&Tj^reDSVnn=D>BT0K4@7TZ- zK@%-!xrF3QMSJ&$5FbVQ6PPK4PpX&6vf0f(Bfg~mDIN@(rJW~`jA8R)d1r#z?U0AV z$4Eg0duwCH&_@(d(+1v`pG;ng!EzN;4@GT#XX;Ww2sk$X{CMn6p^%2*qvaQed66=k zYHK}QdC`KeI_GEBBVsC8tZ>Xd&kT`wU1bN6;edJ~0>I|?6CKWdK=&eQ+~t!rTy0Oe(?S&SRL87iYJDsh zj?~-(6%|m#(rmd-nOdpPluB`=f)gAm<^cCXK_S5nhyzsQ=lAjZoB!Xu?)$!;*VCom z0QZI!Wv2MW(rnPDa^Q<{iZ!{L$W9J4!llY=HCOAod_oDzX#~ma{hw+2FAYz!uI$Hh zH@OEhT>a2z?|MXtI)pKlA49|CBix(~HJQJ7D_5s{F>i;0Ls8{A3Ba(|B%lT|2v`?Z zR!kkL9=$PC0(75;tq*P+yGwkgCi|+=tMh?O2zi~dbh@N9OAEUexcTv0%;t9kWWW8e z)-il?q0rsuU(VVvNp38a`~29}_^#O};rmNfhJOALJ`e87Gc(D{;5Gh|s5-SG>oWB* znfu<@oAU0-InydqsOdTh6Q2-v4@t`L!TY4`{y6CF;Nh4ek6m}kDzs!?Ytz6@A~Y#9 z`g`&e+g6TCVRV58Cd6dWCGDRA=7IXl^iG^v@x5K|$5pR1xLcLaMxq8W19t*E6#W_!zK0zu_rrXkb$%bhAmzbN6F(s;#kSS?x%tKuerB_CJs{N= z<2M6P2GAAn-u30r{IJd*G1bWXa4iB{j2SU16Sl2STMaHLw&Z|90KvL7i`7AK^?RJL z10EW4(EEvgg4JYOhFld(~aS_v(FqBi0XxDi4#Y{(r>9)Bf@P}zv`D2t+! z2z_)&OB93L>9m}lkH9;(^5%)=q|WsiSC4r)_21D-82`ro7@EDKILbk`@g&q#N6LRmfT z3E72Osy3&$;0P8^0FSggPyF);9CFqW@%mUmND=>%tvg?gfU7~o&U5;!jBR~@ z1>H&JDRa>rdb&zNIeDn!TJa@0JA$WT-YE~S=%ugd{QwO{5!~`?dP1eis&j?D|K{=7 zTI6(4zVRRaRTFXx>8I0x6Mc{h?w9NcuQzMiDX6>VGN@}reDvbwgsJ84gt|roXxRa} zy7YZ~9U|O;9?O=lZ0=voXe+CB@B$W)GI$ksdihWYa*`}wgCp0!$Qd;aRI9MBpNO}) zMKPzf27T--g5>&!&RsH|vANygB3Emd^!VukCm`yCfZdhZcit1s4|3GiK3X{PVZcb= z7abX!jF|KEAYg#j-3^#bNmJK#@$Y~zyZ02>(pO``q3WL6bkJLb_YZEYYunKr?a`FE z$iJ}En^$H(tCf;o>Tb|0WUw1TTOJgT&a#aT46Q5#}ad-s~?AyFL5|m{{@tr7_@EU7HY-1 z_0x|IFeC1}Ny|J~N^)*T)p>` zwC0qvpVDjfv;xN7H^;l4SzvFWSuv9XDuZb00Xmi~4>k`yqSh(WSM5@!F^Zw{W`q>b z@%84b1oI9;iUw=PLxk)l%%Z1C-0VzsCflSeFin@(d&FfS#R^Boa?I6}Hi)!Cq*EK- zfJiy5nBjc1XiPIsDF%;3DEZB|iWUl<_?V$+c&U69GGf0Jvzw_svyb#sc<$d#6@c7e zi!=4j`W$`-c4I_yMvH_{|eeB|o_w^4{h{uFOW{3VAO3T2MnH*j~o z%p7)B53;WRFIa0i;@6SUr`1qH-G!Et3N_jVIn|O&_6zYXhvo);P^Vx}K}Ci~MP1S- z$&G6UL&;g}iV**vd*IH@Rd-C6YVZ_b7Y{brF8z;<}Fhtlzvn9 z(}?JYPiobvY>ut4rfpgMOf#2}wl?>#2QShyT$I(iG%P+^GEj4<<=+m(&aWGi3$~db zp%=@Rhj>mbtL^Sh@e;eC?tBRi2#eCOb5pRoT;I->o2?F0!Q*@#qE*{^AJs(e*5Z4( z%g>8=8+v>4fR=hrbkdeVZY=Qceth&;*JZG*Zvmop;7Z&$(@RX0kCA)JWXI?FOR!lJ zs3C!#SJ0hb(zxVda#KroZ>^G1OQ__@6x>e7PX7(zDiY>jPTzq=AgYEZuewRxxAI_s z%2YV7Vyq*WyKHw=^opD(x|&6vBYaLn%)!^IZ*cq@Mj#SCBdE(Bkk&weeJS6U!$gLx zG@6c~;PZD>?U2C1-zIf5(6Q0pw!++^RhZDMNrgs|fbPF49tIt3a z?x^i_VkHjk_+R`NltXPyxyGQ1I24-)nYJi(J@b=RX7IoTeH>6b9DU29c6?)7-%gkO z1W{=rQaAWJ0Zk zSlR$;OXD&{>8^lQ7f$|-Y5S%%_iTl3W@RK2EC`;GLXArdTA>E}84KqxN83(rj>&?7 zUHfe|YV?GD+EaS6IUWJt)irBb%bi27bm=d6F(_Xz|bm|V5!=`cjC|?So_V3+f9jz*P+Sp z*kxQ3ht4zFioQ2WRC5L|Jkr=tn?0jr_x@i?>3){z!(Sf#ujz%;&i-g+*DsULVXYBe z^@7S<$Hg!KBm1C1tlA#)0w3FJNupVQG)&ZAm7ABPY4CT|K=XR{F4nJI^2E*H|Hw0i z^tCkt=$Y%&PA!AFg`au-Sum39Ne8me|Cr(8IgyoT=v0A^GJiH)h-vA_CFogjDI0pV z=keHSRJ6*B+z+~L413Q`R)#7u80b_{NAg@Q;Sr;G(Nt-yY}JN>a4~? ztX7pa3*161KLJtr9$lt7zC^2o(*XHp{x2RYa?eNQi~OmhpajfLmWhTb4}_>gt*%jI z(zQg^`RRO?|K@^SlBVZYo7KG+lx0iau#n?U>4qPNeYN2Ig>(g=JBkeCYOCtJ`Rg!N zBGbuJ%{(}F<(vKz2=NV4f-FVLa|q?cE@wtC)ve29m;Up4-_znU3H zLMh=_%O4C0QwE*j^*=1>h$I)(@)&!hx7;a8pKPFxv6~a;rc#dn@;Fv?&}B!^>yGEl zR&vd3w;Y=s^CtT5MgL)yEp_cS#z=S`X?{3RKQG5PV#BPspZGD3bFyj$wYO04gL|0| z{R*YgsX3{E9=}0Pa{iF$I`d0yG~t-83Yx5WGW0A8G5IF??>vT z8z}PjFHP{n=^L?N-XK~%t~a{xfrU=j{{LD#1i1lmJ$3i<2d(fv&!=3+frP^F@&^$q z_lTC*mEUmYNa^ot{oMC#PWP2yI5{B`Mi=ATEVPLDGTt(B*@`z%FYw zWt+7w+)>uL9Or@BZ;JFOuYsid?!w&cLu!?aCK1&fSv(}}HvcqBwQHt@CUL)n5~>JQ zq)0X~i-I?_`bg=3Y}~OfcF~&AOT|~GHNPlH7N#e_S*!dqwhPt?k!!8G+UEuw zo3q5NkBv4xjp$IUGmcp?&Rcr05-nSQvMRmWu=Wr3y>gWHg%}SFzIS?ldCBKL{=@G1 z@G@lOLW*T;`Q8t7lzC}>E&$^uHUFjLv=*S^3Z}}%en>Mi{lmap{XOMu&v(wHah32G zKTLWeO2o62q0TMY+(Z}2*VIKP-g|2Snqnq$C603CAy@&CZ2D-TcDIX9O}@`TZ*W=; zp!&=+?MGmz4mxnJs5+6hGm8#Xp548J4#R#jUMLTMsx*iGQXvoA%$3;^*F*C%>}T%T z1EWOQx3aXll;~lwB5&GR$%~Wthw95{Sjo+ zP303hasc{LWlBb6cSMq+?q}ybNA5(w`<=F=-(@Z4t!t<|E#EeM>QX$#&5JSO)lkce zA5F}eRTBa6BHAC}K}|5`F{qg z$$k%D!jRZEHwm)bSa%IlADXRm3<6|=|wD31y$LesW>*79|=`7z}Sh6NF*@gJ3&$`$Xm!T0m6E#-nGW^*YEW08eh zE{K{wfl1ih<26D0M@_L{dY8xjh_GA>dOe3wLX-b+0FqzFu7JxH%gGG9r zJag%YJc0}wa_>qz*@h?f=OqFj{GFNdOy49AgTH^n=#Yn|+tvbWYXM(3D@gQTIYv9i z8|z3u%y3&6O3qk6_n>h9^1&|973Q9Hn-#K*bIp_A8Y<72~q{ZQCcn9EY>#$)DxLArn$^^=Q6 zK&<8Dug#V+PHJB-iC_K39Psk^<3oBoA^Y(Whq^)uMuYWg_O_r?C!^6O*l*8amfa`))isL)0{Oc}8YCGKw8 z!AZH6>6-xHH-*@bO5m zZu_CCk$qG7oyVKlwJLfNG;~zVpl^tKH`<3cqZ<2s=2_|_r9ScwW{ITM(8x0_(+dd^ zPba#FlGW(7H(WOBFHNuI%jpO8``>dUyZ`zztN+K`bpUc8gWT{q1CjVhIr*@X1ra3b zx;$lNUhT-SU7;b>@L8hQS}Wsv-Zjp*r86BGHMNDcE<$&=P7(Bf^tF+Dh;&?a)s0U0 z7!opmeoR;}w0Pp@Q1zQ=?owz4xKJfldOe68o$|5rTl>NIY0<8i1peQK2^xiiZu)sp z{DcPSipbAh|L(&MiMl2h8ZTSMTgLPKS<>G=)zU$7OMF+xQhQyQ9q4iu;msJb>c!R6 z(6QjcjId5aDXlLQ`lSSPYjTCM5HfYBZOw#wp6+w(k@e8=m9&=f)%3c#oPSd!6>MC@ zmjjW(WQKEeCRF-H7-ktYK=jM^$phNtaj(YsgbcM7lmN_2Z39{c1Gi+KlemXiI#f=c z6r+s6HHl`!R-}XK{B5K6>Sr5!YId>yn-1W3BM z;ZhfGHT2!4Xe+BHbWv@*bt8YZpMRZauK+fS`rv#Lb!vTB5J$dR4JyGLROI|FsXPMeG{6$UTAXiT7^7nard?`W8zwASpNM?b&# zAu+^zCVf(Gq<@gXTyRj&rdvo|&lsoDYkFC~>!L<6f)C{3Ub*^dPaZ&{t%d`AXlP&m zeg#PSkjG`r=aA#p>?OZBX*T%k0E8-WB6th5dxUALWiF}HS=wGIOvq>YKit9EOG$C? zFJgrR9(N5`_(*^>FS!!P9TlfDMwgbZ*qe=2-=cRFZy4EabKEU>UzahLsOU9=DCG9j z@_kQYL(Q9s>y{MLh6Ts3U+IyMA*f}Cy{nd|7kWNvG9{yS!U^I8(6a`3jKtIU4$dNm z1Dy{Ko9M6WZD zd6K#63zSQPR&Mn1s(ExXq=>M+-&-p76bD*Vps`_64-$tV(}TPNYBh`JdiPW^`owF;CB|LZ2wFmc2z9 z19R*ooi|YGZ9e+4M-oZi#8rjkB4s~j~e$RQ*=e=~uGA#T8 zTt?)t(spm+Hcb9Lf;&?54t=k+fs0((1<@UD?eIx0-*}7d4Nt!}xQfD-6Rghk{T`1R zbW(cJ&2u-a)Q0HIUWH}GW)yC{(d14s3@xYzOGt(Lx1&TINL|umRQc9_KM(D6fA$c^ zb&qa~_)e}=$U1UpT~;u(6*@+6SoGH%^LEJ~bx%PWJeBde5XLz(Er15BrI#BurZJH? z6vVwblk|jnE+uSb&?iCHCQ=>H&=_c<-x~mm(Yc%g&vCir~6cW z^z>|mC7xzw;o&H+p9Ykk*txm+C_)KI*%;?zUUbQp?Pbe=4Au9ge&i8g^$n+7V|rZ2 zU$rA4vek&T$KxqsgYc-#obc|d{l}P+k8Qucy>q$;)bXFomZCX=O!9{e@`*d1)k+tC zKhSSQ>T?`w=gbXRz=l5@r(=uD{6%-nk=uNwLE>b1}c|qA^E{w zp>LB?41%(mj64gzEPGBza->yHQ6S0H8z0@jwmqUHa%BAJzodgzjIl0vSUmGByzAaD z@VI%5#C%kT;*>BGQOOzD_9xaZRaF|O9A)Z5Pp=+XX=zjav$O5^?4jNmN4tkMNM7k_ zw@2-}`TwM|;%z>ZxE8gLHT+Z5bc`yx(@J>ogbd^Q&KXqgHhOxTo%v&B)Ac@J?VNFk zxM;h{1Zms=tvyob8h}w8bPx@k>r ze>Prqbx~Hv_76?@j04`R5(*SF^*j-x@j3S2RM0_B@k0lIj8~_XJvRJ9sfN;4o;~O` zmk?hbSZp70l4hz_qJMNU33n+DQlg2U*pUZw+Nnw3b5Z4IUwcc%pWA&M#q7 z;U5Gq;$V{1CMp|Xo=y`c0cw4RHFl*9Dj0;!?R4F&mT0W6g08OWttfvP;bmJ+IY)np zC^s8+`&99|Rlh9=!Tp4|=n}(~R{+1`8I4a-t52+i{@%f~+G{a*$KZB{ai7yR9sm$$ zKSCTDM7+tFuEBK-j4hbVk6E4UC|aMo`q$+tKJ#DYbRLlINF4We>hxy{Ht)^%lLVU1 zROVK5g7|=?aBb{=?d97(sct`s1Vm}LdSJpH_BLAcg?imwF{!t*v_J78>o6a=p)10o zX9a&G!0&5Gmh~#T@Q!w{4Hu&SIGRV?T)9=2D=pda$#?S7W1m~fhARkcuH(DBwWuK^ z{9Jelc0rOhV_zdouI~Dc}T$y{&YuktJ_}Oy;VDn@9e0ayto@+R|8P=hX;Lq>6XDD^BNbW}noxj&9y~PIG!9{*1GI=lHk6 zlal{wtkVaUKjmmwgL!rb=}r{MqH&TE>1I00WBi-Gm?LM)GSit`dv)Z89xR9A46kyb zn+-XHugRS3s;FTGV>Ye67E7&hB(;X&U;`XA)cjH{{8s?uW>|~S*fGMEYXP6e zoW$u4v?!6@Bd=Z}Ky~BO(L|I3?oO?VflY^A>sv>LqR*`Vz77o4N@uP|ay{o3 zjJLGy=A62No&$!Y1iJ->r3SDvGU6gitgLY&{!~ZTr?dEUBg+dp+cyg-l{(k5)ih!_ z^pSiqym7yJq48=Ggee=w@PZ>sF|WAM#>sVG3>rd1zT+m=*twj>kKaOneUfb0`g=BB z2qO{a3whFUmc5ThV@P?Jc=!;-oJv1`YfG=IbXIG0Fz<^bi>CYL33MGMil*gSZ2qNh zSMm-j^+=Hg0M(CEG?v<^}xjk)LYgOHW(bx#Ks%|7jk7+q@bG zxmKP5?_8fBZh~BsJGg@fkJ%}_rH>UxuWNXs zUc@S%JCJW_RsVl^E*8%e(*t2{{=`Vpm-xpc<%g61oFfIUcKokTyRX*lstX&Lp(q04M*!gg+JEU6tXlDCy-cA*k z)Px;dKUEOjM7*!XB>i_eN3MWXFwJP*)UBL7BocKUwVYebrhkB^C-6*b+v-kdz{mA` zQLiYcH;fmDN42&DPx+6o6qhBu^vD+kNf}|$xLGOlTs3L z?6WiJ1O74ddL^OhK^i(4A?8?kV`w4vE-%PQS>JSg^oKicXGSvP9YP8$wvPv3f$x;~ z=R|50Se5F54jO!r*)yU*5{nts9GE;Y;+wwSXj*e9jYewSc5rCJZd|@mossr2Ge_Li zd~@KK(+!U^h^^!2so2+C?qSDLZta@b3FUa=F}bDr(i6@Wr0aRpM_x?GugNUq3(N%$ z_a{}V%UFu4%tBYmEf-%y4!rQsAe`uV+}4;bni$z}eD8`&X{6e*+NEha+#~3{jblff z+CM>f!H*gq2wYq@W6E)I_lOanS<{bljQhd4M7PE2Jg=41o?B@ZebbYoW}TiUs11?r z1%x>K5kyBH@fQrx=kd$0s~(f1a=%z%W63H7a=+-|Ec*@Ml(H7UAv+=BgGyahS~sWD zKYU{FPgT#Ygi+yX|2s-(%FQ)Z{xhq#D)8C2s|)0A`i{5bx`#0Vo$)V_cE})>_7#4U zhPuk8gF09%VCR9DUgXJ`R#Abi08AQ+jp&Nl7+Nn%)+Ug?jg$cFR*KAaZ_ZA4UGJo- z^25XiTA`9E*$n4uVT#uZYr24^Z;-RUJB;_1uC**em&=*3+#Z(4>y724>IP4Y@P!NR zC({{Ol?ETnPWKz+f4F3AMCr)kDj$w|FRd_EjG^lVO&1!pPgphx(S4+gpw+0bPZlxg zkQsHvNrhpWyK@_m^-V<>5m5p--|qPU3H|$;7K}YLbp(^m{E%h+U!KunXQ7Zha7^7j zAYjZ~n%5EMp9$YRXOplo?2ziV39Z`!WDh0Yk=@7LFp819X1i4tCio7eeAQnEV?)G>@Gn%dxJXn1grVz*5i98CIh33}0Isdnwy-#B!4SyN^?ebE^9*-Cp76 zJ>9saXdBNkFbc2t&P{o#`mB9=^es9AU+g+qTNh8F&+uQWV z0^c%6~@^NS9-B3`XI|6 zuks66&G|s5l4s3&qMJmmpfID z(aV_EVJ_JPON~*;Jou&X%UHY=L?6D!`b*_4Kwn&SG&ms$+(<{2rBCh3bqwjbg|9}6@m$P*Z7+K1ZgYjZH4Z-K?mUe{;Y8zj-Wj7jHF$|;hL`Zd` z#Qxxcw*+_h!%tI^gtPqhtbs5|%kgF->K4)YQ_bx2q9#QC}Ao(KL@sPxK(p}Ej^r?zCOe? z6~AjWUn?|#Mmeu)KlQTq@X_0nWw~2)t(@7}SGmsEE*Z|$B!C)1S5Q>X3Vxx{oS2{| z_1s$2Fddk40)JCsaiekDmi5%+j;@l?#r^&x90y@KC~OI7y*5}^LZkFb45EU5l)li{ zyIvTeRg)vu7uWu^#`I5u7u<|yh3ZQvy5w{W$4)CWic;N z(<_ORW}8A3YOVVE5HrrAwWBq?(B&~aTo*LPH5&I&k6bL^Z<3GP_@29ZZ1s-)rvARQ znZ2J&@Q#6;C?@8hxo+H+cf2H#gX92WYO|^Adv1W zF?8Zopaz?sMSp_7W?3YNUTUtHSo4D5w<<0Eo(|BZkqw@miRnpOz(4nm`_ldtW zHQ=12ZIOhO8CV(2UVdTOJzN#Zd6Y4}95BPr#PnakAX-Hom)Sw3tbuWD(=-jKR6h@2 zmfm774HK~5&S~T>l`%Hct(W6^)3}=a(Wyen!bUrAWz!s98SiqB3JreAEqGsYls0@^ zU6$juv6gnT}KniWkk=N=ITmSK`MfWVUOt4&n3(~_a*MjQ;-+G`d#EL3_SB@KI8)qk*!;|{h7Wq z79w1wEcdI5Sqd4F-#^#3aURC8G=31akQ(G;GZbKd#ZO_G;Y?CBgb5l4;_Ih@dRjTV zrp|i>AFPYKSOT*uW`_<#cnSnd;@l{5;c(TL`ikhXImv~c8&hn*&A2guyyK79+R?D1 zV+Cx^PbJQb!f{xB)OJee?8HRNKp?&Z#t_loL+i>mdurFuP}Njd!5K93-?T;ZiEWww zu5BAXZ!yGct^0hPFty&H&Kw?*tII*DsA`32L(o?#MRX6OSc$TdNbc~vmFat69=dpY zJY0U^JPnyQ)%}sTSdbKK$0+cPS~+DpeC@ShZP@IuKwnFg055Td4$C zJs(yuuADw~I<#DWPo`Ro|H2DIR*&^ku4=Z9^0d%u_xfd$04{5I%C3yA16M9;P$D69 zZ-=Zt_n}YrnC-5EsHO0yO2(;ZlAE4A|Mq3dKG{TjKRBn zQT6RRqu-sReDQ6q{&9Z3)>wzl99wT|sJO_p>&mS5!?g5D)4Qf74|weKl+D(jn!uVg z{*N^^T>hGg-8-V{Z`%|}u%+i)7EO<`-!8d_1tAWGaI>Njjk+01!IJ^Vu4M9AJ2Tbp zZe`|h7yRO{omFyPsGK$KP~oNVLl#@{g@LBlRlgcVMUa7{^`B5nx=_V7Uv%^7pbRk) zTeLFf<6Z@XC_jmB)gd2^5n^6-?SJaDTyG}pFM&*0PmTw;qAyX3d`Q(46S<-Q{Bs!GzlVmz?fJta-scM+*vk94mU-+6wfn6&P zbWcHsT3O|UAuBu6Q$TS~9MXYM=6-`=LKo$^-LDZVO9eXi z;5vn3?cpcQFrYz57{?qI9VQ9dpjc7${?m28z+9OE%6w!q&R)>-8MAN=e;NXJ&{~VT zD4N{YOp^4B4H>*F8yBEKs$a$*At3(Nu2S%U6rRE#;M4FCG^)QP4^{E%fmtg^j8gS6R95Nz}O z--PW@X*c_kGH6hNPYc5Cu}C8kfuh}L;i2)fH_Jvz;9PCqhVH`=Bc6Lr>m$a$2h=H5 zPpp2xO+z|hjVm_8FW|ndYq7slq=uUbOUg7p-H3IWuaPhyKYarCkB5%^HxG#fU-@=@ z&z%0&)L;;ToIGqO4VCqK=X-rD$s>U!`Y>AuPO@jfJ(;6=Lr?7NNB`&!Os~*;vUWPE zXW{waY!Yt;);B3>2d)oaH!ntC&uV~Ws0^7Pmjo{`{4qo*JB zB+Vllar)aGqdXTRFL46(h!#8Jv2qag2AEYAPb(xokk~;Z<6dQDFg&Ya(yslhI(bZu zxaNq;|I;(@K1eFLn4BC9gxbb~Lmf^>fOFKQk*NA4&bv?4U>kk~?%Ia=g7WkIt!2gP zC+;fJR13mx0A89UqzlJM`SMglkiS>;*Q=*NkMtES`lkO52HV45&2hT9I}!5y$2RVQ!gHS5gHzb)TT7k2AuqEJaISq+PmT7rVc*J%YPcJ ziyacLuGVdlK@WZZ^9VPM5VAiifGjhTTaqZUJYMA+6@x^*IDvZ|yx}W>@YDCKhR(^L z2{*y4X^;HIlhta8vPgn<{B!*C=SXiAF5)D0IpzZlQz;9a{s1seAx(XYx6NNZ-oa=7 z2^$ye2ribOSJ>orAdQ9KozLfjq9Ua9xVa3ER_UT8aGhhfp>ipWn zdL_TsB%}Df9*m^%O5J-8)Gu6ZCr_SNiO{tCtzlD8sT?UDdt;kG zsUO;Eg0vbQB_X@L9U?q87n{0`sImSYBia{t*X!D?@Pf&`KN*wpwKGeTTx*=r36w|g z@nX^TVuugJ#4cl-NG!($nuhF=W|B^AynB?<{^hBwiHI*(a+EU)M0t2|KwTkaD^wbB zXS{64pg~Bj{xA9)0O=OuOm0UL$By;om0ea$Uo9I%QCnLzXeI1?sN|kzv|g)(du+gS zdI9|8n#d}ZMwuUu_=aha)}41@*Lw)>q-^V7o8u(wC1Ng;(eS5{D}~a5H5yT zQbPj@wSe?O&t#IgQt+b)-6_4m-`?$6_|5dCZQUz39Je={T@?z2e`YwDP?Fa4u8TK= z(n@UX9c8`uj*W+-gLEtf!dcpJN_a3%4YxhvuWfq1=nnKSTp!LLsvS}v)rOoF4DpNtphJATjZbF>48eklv4!CF571t!;F54bYsV4+`kr{s>Z7fYEq(F z>U0(hLT4UkX0y?1B9o^ZuZt@UJ)@itU?1?eq!a~d*d9@qg zXQ=3eO^#N=1zl_my63B^}O@E)9K@t(Tvm#q1LdVGr3MxA=qcti}q60T^%oYt}>c1 zOv(i`EL|-U9D_lk7rE!3uu^Uh&SlxFlGgQb!Se>PaS}&&XE>>=A26&kkFR_91!us< za!H*yG85!q%g#1dVjfmN$qzpIWjs;!-_MkATFWD!4v#9hjyY*+qv>hM5ODflY2Be$}qdC za0XUgP|bUF*$bEa&%-T+8T zN6*rFJF+Z%45d0@N*;*MlxJj6JS_Ebjvo0k&meHjaV%1yiCDQu1X7#0*lMP2UabA) zD~ChE(f?-MyIbmGv{h(v3?e$DK0y$=iZ(#mh3xTzSY04$N0;AVMED(^JX-ybmCg( zg6ijewW9dc&!4IcjxE)0A_uUWqaQQ5I~v%NL8QlB;j?_zu~{{0%`=af(WW#6_L1`C z5X>mOGMpNA^pztv&RU+XT)s2Y{o-L!5YE01Hu>d8P+4XS*L-VQ-CS9g)OWr@Nc>ln zT&90l)0GyA$v#w@<-Ez+Nq=KZeH1axQ&kh+^eRc-&vh~SZNf)JzHE%>#i_o`^As%j z1mDVC7~6^%F|1&lhXLG+;@Y|mQ%{o&8lUoijme(tU{Vl1A5gAn^9-*ySiJLnY|T-0 zZeh4n92I|fu!{#Ja-Rwb^OGerUyJrJK!;*%6P7oZg?e25>k_>Re_iug!O8ji+X}Rv zx9X4biTM98t*Z(etm|8TP?FR+q22sY>(?f0i@=J(Lbyz{1wW4R`=nm?jtaVLu z<0YH~8s&e>%1Ft^!|j*!x_}_C7GX`X7BS&Ks#837sVaLuB z2>1EB6#N%He_n3lm@QwDy`nb#G7HcAv_ZOLs{3w+X9N^?+#G&%mnm4-W$3}j9Ji{^ zyuB90x^SEI>Vl$#-8R;-S6C~*#odQn=BZY^pl=_+YT{^Mf%;(I)Z?5G8(=(Cu6kSX ztjE%|=1fD|Lakc}M2zwY+dZla_UOMln_PZ9$-I_P8FGPxP^&{gjgl~fnWI+HLl@o2 zRmtXa(lkG%#W>lb-D%i z^87Q5>=fRTu@v2*Y0e$i8`>dn{-31Op|ggfL}?uYWaz^9kFTo?XDM5U={M}8S1hTG zjZc>^55>R#CAGmJs)|edp~H+rBR7Ok6=uw6Oa+v!80 zSvTRQMC9e=9m?pkl8UkEKId|8Bz#{VrwaZ_VOUCTu@SqGFR^|k=;v4Bvl7gUvxm0Z zi4-+1bq(as=E+!MzhfnvqoFO=n=fr`0%Z$BdG--Bh2q|B@m&{PvZ@x{WmMHO+ujwG z8@L03?hh1W;aGRE&1IYGU&ej1Wk6cWb;e2f^00YmOGPwI28g#0A9U{UZghvhdJv+t zP-VPkAq7dY5PsV#5RCPXeh_>_!@dWGM|hiv5u;DU0i7o2_efBLmRx?1{= z)94X5>{WgTjyY)cNs9YSL(k8%VRV9w8zHQbCIIE96aEY}IBf47U;KFO$Xu#u;2Tu% zjT19bHyP!cGMSRjsBWr^zYALkw@`^I3>}!sYRx^3vChbLkHKD|_L9=;HDm{+i+TCA zzlwP-6hPgoUV2`kY}rnJc|{~^jbrvlFr?56+cwlN^t*U)~Y~c6gEbT+w28#8T6VH79?)I2BO>g zWJdA^r{3? z*AYB9AojGp_Gn36^a&Ni5iY^G-?s)9!(+JPv)RjP;R@v;S4?ZHFvEB zjk`#lz}}i12TZSj3t+AWVRQ_@`#A4*$zA`9Gw}STSBXA2&j&A;p_0evIMALl*pC8P zY~FnW^qNI0S=CeUGp>*Ay&Ln)O8RKZ`@Kk*Y2G+A)lqN!Lzs_pKUy&E{fBAJ>QoY7 z!6vLEa*trL3NMurhu1ej<_!S=GqMOy#wL1tj5)E;Lb)g%9!{T^@KXLQ;Bmud>0T5h&L zdusj;jjT=#0-R1Q*96`nZ2|Yh7Qy0;a7>qHZ_jDtY*$@NgUcw(1KI6bq})8Srx}(r z)4c@WzQLT!YsO)E?Iv&5>t>*_=s5((KHh4hxUiZiWz%--Wm+h_Yk8V%6W`tCSzRK1 z1?bkjbs&!cfA0v_{VQLvSF#>dKKV{@{xHbsw>t03K5r0ip=90bLNWIoQ*bL5sUi^lo~ya1q!d{`p=Tj}=?C_h z>12&!c436BVC2%v6zeC_u)+`}QfU|}i*BLeS>5?jnnlYaZgNAJG?o~nw(;dTwd(^I zlCmS}n+z3s(6;YkdBg7nNvzUr0SLx6Izd3?CE0Llp4$+@{Bt z5f@8e?_gfOVrV&50xk>5eG~Qat_uY8_^cDh%?u$2ipTFRF zPl-4UJvRw=7)3lx|1hKfes-hF>#|Yp_$luFA>rWAfa8gIbs#>Z&K4Kww&{Ku3PH!+ zc>QASLIdcgv)x+3wZ%TGEdnm%9zFzEc!b}S(EGGK{{L}wE{;t1|NE~bmE!JGA;;>z zOXU8mwhg4kAuC}#~ zG_@Zl*VMb}xSXy>zN;B|bp4&pC>33N?43C3W@x)NFLQar5y+Qr?d^sM z>#cM<6YCcocc1$36T(MX@4=Fxc@7I5R{h@eVD}zV-LgEWI{p`AcGRQd8y>gu96z|q z33D7^Hk)Sw>6ySxJ1g++2XI_}OVrR;sAA+`f+G5dlV$nte+;XBv(W`LNdVUC%%9{3 z$oFm~CZI}}o!5N(kqDrdNNocDY>A|!`L$A@z@^EUM(_qbR6X?vVfqz(cDEXS{#E$6 zL9kSO@B)UJ2IwQuwKHAD^hWM$2u~y+5#tG?UhgQidJfBhK*JW+G!fif4MA}FZS75v z%TXdw)0^^MghKK49Ofs2C2~Ax;*s9rsq`Ixi?K}2Qe9|0DeC}&kTGvNR6^xF zS^E!bj-ir;UZjy4DdU;YlpI*I>xal?j>A)bgvqflDT0xG6ioU%MvT^JZANCjK4Q6ObaoWS@AZd_o#tG4~TBxT?=NkAFEhjN=_dCo4b=c zQmczwPjySu#;Y^F*K%BJ-X^P=L^$}`Ix=uNU#7jJ&v3pW-W_^HoL(Kj}^XE&@0or9Wgxp}^mgS^F9xm8ox7(MPH&aUPfZbs#1YO$3@$|Jr(B-6=hiPjj{% z(zN{wTh;eMK#d@~1pHm0^px*(1u8#{t7xk00cB(^MeI$#Hr2iaYq@-OfOW@#E}<68 z_O}gOn^Q~l_+g$!-aC1ZShU(g{mFOXO@IwB;6tBD#LPE0_x{AznCh&5)9clk+3Xd1 zKwM4iWA3#Xd?S6Kc*qK9+aAAaw1MAIvzI^PGyz`tq=D{5r&zSZ9(gjt*Pd~Cebpr* zntkn8%Wq>SXAJi*@Sq#?Pkt!C9ciXnUzq%P$&ixb1K5G=o~dptGY^5yg1?mMSaYA?=YZ^Kb}eDa7fbW^y~}*J72e9iuAQwHsSIRrbvxc>H!7U%?>tFO zoK9?gc%6H6x}w)JDNoOVzl;UBDY*!WrYd(oaqF)C-I>rAukM3CfmYY6vd!<+*m8vz z3LpbH$BHc0D<=nd$?i<1vtgz9_w;Zs*|ZR9FIU^`LkcY&;QebJGiGe-n@Pd|>`3fh z+buO9qBVpTJ}-DfHpBDdUI! z8B!UeP`uz>vJ99~R4mDOkc0lzxpyGtQ+K${496%)CE#t%vl_?C1Jlc#p3C`CF{vZc zDz|#wVog(`fzlVuowXdKJ=`Vl^wXk9m!aSBBKlSB5!%jdFq&`l)#uLf)a)j}hjL!u zx{9s|F~EF-ct}hBo#ec3e=LUtxWO7oOwAsGnJ*LnNge#~5X!)h#tZ-sB`vh~1LCrs zUV=d~9m_7kSiqb@t7UokPlmm6l3n3o@Bf_6)Zx+P{Crm7!ppoujCAEs43l&|hcT4m>Wr8Rc z52QJxbej)0Y@$U|ySB$K17B8NGtX)y z7R#9m^xEUuczei;qYrzv!}{eHO*HtpG=QJqOu9m;(IGk7Kbfz3(Lj@pbFD{5`SRh7 zL%{c^;O>oXfTp$|#M)Z>0xwKlpXe7qbgD8*O)9&K6dQ|YkBc7hGXC*zSZtmY9(PdA zQC#!lC>5N{x%1C%mO#&HJiTL^_UDSmVj$3MGck-&p>YMjb-atrpXzWU#SBC)IRzRI04u+QPc-GdEDpk!k6zpI)Wn$4DSV2}a zC-~oVdRBByo7RDC2ENZG4it*x4KP{f>*{ zR0~tYn9NtU4Wi^M!C0i#ZruC2>SDNuG-e# zElyY0ZaZ(2_VyNS-#;fZB;l>=AbJ-f-u&Y>tQ0mURD=?|%GyNd)E3m zLB!oAtxI5z>uJ3s+dFqS$7YME77rhJ_Gs_BRIp6xw{fAPcEV0!H+mL26aCnEBDqKctI#X^+y=PG%Oss}P${9e3Rmd``!7ZtU>Oj2w3B1g7>% z=lN|=#={70GtY`T`C7eAo!7tjAOha_Oq7OZZb-64k(4brs6h<&5oIAj?|_jy5d5xl zbNEv4mF$*@9kePr3Qm)9(9aNKCc={AMo=n8K;AJH&6E3^eUe(b?ouHi(Z(yjIu8I| zk8y+*Ouk0! zBXOjJ+>!9rj7dw;vKSR*yQY@(IHBmH81!@N5OFlZsvWQH+W0tOmHX3p4CWA7sIfCG zRt%qy%arM&*+lK!f24JnO(CP~S_HZ_cl{hV9gBuC|L_6rP=oJgn+AT;U1rY|PMQ~- z>^G0f?p*j*zVyvkhtxyRbzLnkK3Fgi7y7H8XQcFY+XULKLWRd@m()Fl%7$TLtV29( zHHXNyh_iwU^*b1?|y27lLGidij()6ltiz8#Tn|p0y!_DH} zO>^SLDY|FE1K#Zf>OKycRFu5h=Zh)Pc$lNXj>&EtmG$thC99bRV&*R{?nO7tTkY5{ zd?5j=X7>iQvd+qhw1MFfg9~58)=clEH1zoor4rW#$z``fm<8m<@B}9{T;!y(H~vTr z()sW!`P5c_{Dt8pmP6@-WGA=RYcvKD#$7DyOHuE)c)mE^sZUtpzM*dh4yBzj) z;FrVrQ_CC0@J%th`?1p+ykjkh zh(|S?B&XAEH>R%nLlZ6hkl~LT*23p*iPkVXfgNaOE;5IBvN5^bNAzfmnPGWO1 zoH{ESL%=+-$Pfmv$(q}XaARG=^Yn%z+5DpTk5_qoXyZX zVL4I5h*@3LLbm4xE~$y1%Ud!g(gKsofm8Yz^u}YftWhJ6hH8HN1u-P+Gq?F(wB}pd zq|~smU0XmK={KP+h_YzvGFC7>SDJiurPzv)9MzOZ!FOaLs32r>v>BCdl?MtI#{WE* z5$HqC_SlS0X4{bbJubeeiR88*v?BECr*wy?{D1lGXZjXX4UkEcha!If4Mp@LY!{%M`Jb}=|+G})lB zUVDntHO|ab`;xZo9TvE#<>qj`&@9y~S6#~3x8$Z1wislJY}^Q8ljF@1Q|&3JaUr<2 zdEYbWz4YIHpKu2hJnamWk{^dpE6Qh44rh1Icjv~*5vToP8~mSmp3s>tRo#f*Q6D)S z8}o91j41a}w9&56O1imj$8R3?yFL4VrO62jpWvP9viGfvWIRfDp6X8XC$e#We4VZ= zk2~E9a3Yl!4`9F)bu~w+f8qwh&kgmy&Ce;JSbPDwVaGuY4r+p|+2QOp??2PrybLeb zKXWSCa>dUOgsWIDi+2u1^NKEWv0=2mmOHiQXJ$M-PHh}PDjaeB;~(Ob<;adB;EjXM z=P81U91)UvDJClA3E7tkY)+ChWmsR=C*(CW@6mxnT6`Z1hJ{Z}VYi_HZbq{PrTb2U zD=kUw<`hJ>2889BGJ^Hr%8^`S9rXBs-5fm{CP6bM^K5OkgXeYq-fuOnn}t;h`$M$2 z1(!I%=pF4Tom-E*EE02}e@7P4KmC&}%M`WzQ#$UY5FtyfS^qwU2qwlzcKm3^v z?pAur-27>+RIo51E+JzlU65lXg^ii)2FQ%CTx??Xmd+07UvHX{pDwU7BD%6ZH03e$ z&^qMqAo4FF5&xqJ76|ostMs55yTnwpBigrE!^2iv!RZXmHL)OByl%a_OObGSD6QV} z!VjVk^^%W3+`WFtnG`1h&G?pv_4y*{_;wJ{Ow0$(v}SR6n&J&Pt6rHZaqqge8t&)r z`SiHe&m)+CB&|}d1b2jYKht9bQ5AENQY4%mD%ZB;Tlt8}g{&g(C)50`jv(t^+19N}d|F_+A7O5css*jC)Kj5*_y=J# zjWu&3Mo;#}p8Te8#GN@Lo36>2CLh=(%U&kmWChBMH}8JUyb%_{I%F0S8bQAW9oQL3 zG*{Sh$pP=3C+zw;?ojX41kpqU(Fi zi?ex4PmD{m7{onq#ywnX?a^oV8@iRxy^@q&OR6BUzB0rYrvTlX&K;a-+{pTg#T_`^ z67dQ!(b{)C`%i1#_#No`Zj!V`{L(0*PX-d1gv0nc_=1_;iQYSl^06s7%-PF7WWKF5 z8o{E&dul^lxKSfA;$;=Q*Wnv8Sxf7*f)sy`T?)@3Q=a}-R-qR>4ZEMP;i~5{treD2 zQvs9Z*UEGnQ3^=!{~)P+b!iE)sO_7=MB!OsGXqU*y#Y6|tl$N8Ul|Q(J^RqKdIbjn zTh=)wAg}0&zF3VRyWKe_@D=;2p{Y4h#nsvbIGKlL1f_g1^G}LwS*luzP^eamhx?d? zht37_fqp1CH_bxiRA~tHsUt+x`tUzSy|znT&K_f8>!FV8gXHE;?7MW-&2e64U2r3E z%Y$1!w_+9E-!xOuvViO$-jEk>?4H6B z*WDQX9~)-V6C{OL>tF$%-D)7Ylk;1ylmfsUUF(II(CLvkTez-8vTB--GAt~si3OdH zo6`AA*=T8?FQRk^bwT1|R+E9`SxY3mDF)fS(S_5T_F^$@sA_ZPIp!}yQ!mmlni6V zBRajkx|Ke&*k=Rg>G(YA{WT+!Bkt7Bal&mz@L$=w*phg^@8SA?*_YSYK1sWvSJ(FC z*2aK-L=^FL&{iH>MO z`-4GnE5v#4%=ocMPL{O^+H4@Y>E!TW`r6{zz@Ti$=J}((C3l;}Q%-(LKk}d(K%GCD zC)(5A(H*)e@nNRDIVlvj57!~w%g?M)o3MGpM&}=@V{)}HIIe&N8|xUsrhs>`+^@CP z8quWXFVH~9%GuYPEWYN{3?#`;ZNh?itm zs#sfK!n;AMuZp+8iOv=(iZc~SUA?<2AUI<3YFxllRt)>xIA4Cje*K8I1WwU))a(0b z$Mn)a9_jgfOHP@7d{;R;{AZ`InZ=Z(b6fd=1Xj?p#WylAGKoTxEN} zx7zN=!Z>F!Ehvky%MQ^V12I`Bd&3EpwZaj&IU~ful)`UW#{Ks&euiayJtKB=``Qd{ zI-=XN)D47;XPd0u*T1fUmQ}Sz=QM@kph}C=35t8Bs=NJu6Mhxu?WI``*{WFnKAg6=K+qR?w z#->r?50wVYKNVYMxo@N;E{Px$q^-5}f1UVsVW8b_kD#SRJ4~O(NYhUB4mHMB#=J3B z840weE;*Zl4XXg-Vx!OXEwbw~JaG7u#8qN6-R~tNG^ppSPXK|4oh9*cL_Pg#W_hT` z?wlhfVMT+JtX(uR6Av20w`RLkeL3NTk#K0emU;0 z$S(ftEylid<#c;*i(lA0^bTVYJk?w{f3-JU9knpi6r{B`Jaljc18qM1)Yi&Dt~YV( z_aHf;p(n4zpj)HWZ+?kvwb)s8%5O5fu^UtGPVfSJP|=HMTogMPY)+4ToI;UY(qS*G z>=ME4&)1i?bFHAl+*N^qgH^_FxNiZ)-id%Q;78|&KA`4eVU~l|+Z0lGW-|A=UHp+E zyl%t^5?8DMbD4$^F|UbRZd*lVA8+mJ|M{NfE{rTTblBk9JCoAS9o za=nt1zyRR2MGug7q+*Qanr@D|y1aE=qaC$)cYy&}ymnC0Lde!AJ+!O_q1PpBZEgLU zIs!4yp5EycPZj%zdSNejTFf>Lr2(iFe|o(zmeY2n5#|fByUQ2WKhP_6MB0LF7=4@< zukMtXxy@d3V3Bvp1=1C9wP{3l1aG-3f$EDW)NA!zRS3P^+oORhpl^?(1vM&bIWwby z?*kjDBh8ts^$P8kA9eV1lnXtWM|GP6e1ulWRL-L!&>m;uN@t(#ik>01GE-uskL$uS z6=ZY@db$~43zjgiKSalQioR-F@=;lY!@p&p4Qc<)i6{0s?w< z?yC;3Wm$~rO9;)f#!%K=;P6p}BVsXO#*24+DvLPEacOjagLY@K6;>$oybPe$Q^`ga zw*3{pGmQy=xokLpyt#1pATgyiBdIG;Iw#J5n6xiCa{J-DDm5!{ ze~9d7*xy&>#%2xN5XMRh&IwKxrx#9RimfT}9Y-6xX^o~!#r9__^=SR~MZmKJNa9Bf zHKH9wJdBQUmTxOKYtXz9XdEYKeq1JNVt1*JFkJh;lOpu*ju^_oNrf#e#1&SN+1*Ph zdP1N+J4}tQf<@r~;xb#$H+pKDVzaHDik8-)ohM1*(YxK~=?xDEH77)d#`y3)TAxy3 z!)@oD()jb@70a#U%^LgJ&B}U6ficx{6HuAyJ7-h{k=rILEnW)QNrrz1blV%PYcEIC z&0YiX(BH9$N01E3A40IVQ@VcY26w`gZ#>uYmIwLuX!o-$bmN=od#w&kcu9E0I_%1z z|0I%v$REtG&5PUB1pFH}6;)6D_GcfX<7!kTh`aFBYWY0cA5F_+MO{&spyh98p3bKZ zmv?DW-OV>m6+)S7WTuR$**D7jiV0+UpiM$|a zj^)@JZzWGjCK)U`qC{&T;s|l%l|?K1f+0iQYnN>;rS zl8*UY_jd|l2$KyYxTJb3S8C8cl5{M__i=6!T7J}5x+>6D+=GTz&4nxvObxA))ieYI zB;5(`qtF-&t-E|ZbuX{IFHXKxfX}jqq!Cic`41o=xMHJ2^i$)6W+%uzui4b(Mcxh{ zlaTL&R0U!_jf%4Vk-fijy3}*LBU=`-BNK6~vTCL(pR(|X6ZJ30owFt%uI3b zgO1Fgl;)H?;9K?|y8+((t?vW!s?>c)a_TIW1rb*7jF0MSRXHp6X7~b$zb1auk8{XDZbpVYY9w74G70&cE@46>|d z-;4x^{ic+YLtO^LU~TXDLl$t}Lq5>qk-u79pQ=s8M=dV{G;bcjV>-9a*NrI*=v%nJ zH#*98UTZoq;1w)f{cJa3q%iaWsW92a-V=${nd(`|u~prEQ`SjKVQ7jP9?5tt?7?my zJG~azGTtJ=BU4a$dZBAYGuA(GR2N_i2+k~5l`_+STdsYzqm^-nlTxz>`m-lBCxIa-YIilFaEsp9W-U%J>tp;gNoq`rV3yeDnF(RQdt!|5P*` z<$l;bvrGm{M|Q9o7J6TfY+Pw>f#^pJ`aZoz3DKHAI~jG&29(Xc6pR)byMeogX1^n=C9 z`BRFdadJ#w&NO1Mk&`@#EUpn@Y5sAtPsz1Qqh?`cQb#22Ww=o7Sig`2jCG z*%Fg?*&)+qg8pIh=(MW5aJ6}so}oQJUI@{^yZQsU(g(eFpe77cj9@`Sr>MItrV7WL zbELjwG_C{s>+e-61lXXf1jeNs!3`56+QDhuc`A#l1f4=>O}V} zXl|Kn;6fq6sxvW2g)O9I`Hw0ZIpwHW+y9e%1cm6(Q0#f}m=@?Z^sK%6XS0h&V9CaH zGT)qz@=}rG@H&vb&!JR{!@FUtTV%)GmOCVjpY*Kc?aL`k9?U6eK1gheJ2RfR2R=}; zxa}kjQaq`wp<r82h(Atng97`>z30Z0mecTvDT-N<3@O z>LcQ%s0(vlk?ha>zKQvRfv26aBFDpf<*U`m{GMZpvyI-nH69A0ykr5((=+IZ8~#Hh zCiXeE^ILKW20OVfz`{4)GJb6Qe`T(mvb&aG-I{{1R6z^zllQm{ zI|>6#S0Zl$WyLM|EH;*hgDa!@sr=SC30s=rV*fKCxT?g8RmZ6m*Yo#eS0XZRFv>Aa z%eLUk&Dpt=3H)C<=7>tbs_a56>@=z6y-|@>e(Uh0_OWjx6?b_0(-iu~e0j!HH zx;Ft4GOTP?-l?|pEOyl;r3n;97?6;!29mun2rLg$e=9yZWp{yjWM(XNXro|cb0V+8 z`qUH?5;vbGiRXd!tcuDSz35YQjs~a zGH0v5Z7w6DoT9H= z##GAwg}1}Dpaxh>MW9n)i^?9)x|Woc4`H0cgt^Y>c_oOsv*0br1T;7^wPiy$sl0x+ zcVeRg)vw~AipY@Z;@$X%Sh2G#$|osz?t9r7U!OF{Lzn#ZK!Q6sGIyn$W8+8?R5jSkX~`wE}sep>oYS;{YACD@EA-aVqHYD*G1^ zY(+6u(&Kzf#OQXQcP652F`?F<%OkC=wo;?p8z|`tt4YkeTgd|Tpt!JL3xAI#qpV&< zCE{`o(~nhaQE}At>2?d37=KqOvz+M&@+yLlI!6pifDfBL`Cu$}h`Y4$KAdLgl~n&$ zrLF_Wh=~J{R9Pf6KZ6lq9|4gmf|0CAd#C zymDc7BTJLU$8Ix@ItTNbA|*c45QmL?4Oh|p7$qjMRIDmMVFnZD=ibeG@42kmTH0ry z|L9@*pq6Pl&*Ii&20uG2-imu$3Pb-xQpajADA$!8Ed2)+cS0sGfaqUpdK0ehVrsGe zKNzpiBY!UuhGX{MtGbR6yjgSE3F z$8DWdJ34GDa)_-Gd9D^5=&bA4BhOE>Wqu5p-wDB#e)P>G#C2mxI&WX+`&!92W`$WpMm0A)TS~;-Sq_|yyLUfHYk(#(H^tBY*YZAo z#m4giX{^%f^Kr-~E4)p&crQlULeQ;%QF58m37zA`pWCM5%(2dY4_XA5%7k@(>u-!4 zZW&~ML12EwAYyzfGI`67#6<_FEsJ48BvGU3HI2mmUR!Y(SUP@9zGbv@fteBanbqc} zxvK0?SEWA?9}b!M+6fWZXqX^FG$x+N+BIf%nJ-4YAIQt|@a8{7^Z?E7p&eJ7JCucE2q{yFE-wu(NzCgg7@&8* zNNUvn&dD1{+g`X1y${0DtE^ow4{>^a@!AWCcv^k;k%yxna4iWQp3OeV;YkbPpC$+{ z3IylV^pbgw_IsMiFN&yVsYC(A;6_f>$OPY zm2ta#`}jC3?uqHM(gY4vlyq!}eEu+TAasa{@@aLM&L(De-YO6Na>d}tfMD|6Qxb3Z zAtde@=20y@K)sV)Y?Nw*kI{LnLxs}*paeTa_BvpU%6Z6cdVS7uEc2n6!B^96USckTZ3jr)Wc+lA4GtEuB{0kHg5cjAiq zlvh7)b<}DE|J&GwSoLAfyb_O-{>1jv-QoR=8DQ4Y zY?&E=j8&e~Zhh1y(^H*#y=orXJ}mpdOM94NKH7su+(Cl7P%nCV`2{p!bL3Ov=K9$u zP0gL%^=^zKby(iSFlA~qBafB>-(|)>>i{DBCWUNF8WGCD;d@%#5NmXmRjC)?nA9?B z^rAGfWBwX2e6|*7eu&515pc6IWiZ_UkYwzMR^P~wSxMpsSGn=QJA_=RUpG{&zsYV% zF}8c4{h{u%I$WT-uZFCLq9ipVUUBF*>Gh>4@5m@luE@SYH;wn4iQqdG>A%RID9StpSL*#TqPeIe3c6Z0zr|Xf@D3V1!HkrfEf8y!APRlkg@DS$Rv2$& zLZgI{Cl(Af?y$4f4f0u_;z+WqOZ7Iu9F?c4w}15}!1+7uB#AV5=HRv)(6su1MQ7OA zIn=Oe0f&`JyjAqrBX{@wISWUb=`6HbrJ{$|_sEt*nP_+8i4K#Ixh`)W;kSDeU=gA2 zGI?qI0NQ^ibT8%Vyr^ra@+Us3DGMmpA)S1Abfngo$bjN!#3G7VATW^+ur^=cVSZ4@ zNE8Rjo$O@!a~In5r`1s>sgXeFzR)FN_})lrXm0l?aidgJ5U=-O$yfPJ^8AYL=Sj{~ zfWm+!esjU8*2NP{Ir;j|dWg>5*ZIRx^KPspRle-&?_E?&F{1SLc706C?R5%;^S^r?uZ0D?@nD>0I?b@r5G#N=rHJZ{7HIbOVt0uJao*hH3yMh4xJIvLrP8{ zphf^W?)`A|2Mvn~k&9wJK`Id6`qIOAuN7SlvX$?J1Vz{5-O0jFkb?Xo2+A$?Ty0in{?!y{qsY8^Oc zU=$Lo3~qf2YAtDLyx%e=TqFC^Fw~Nqq&w92jB-on{gq-al7YK^FB`aBvfUooo8z3M zkG_NSe+XbPJ;qJno=3OmuLtY*;o?HCyuhsM_6-y0p7>Uwm*|JZCG?p4H`B4LFulf6 zg;iC`62r5aQFOKm8Y*f$D5w7WD)-df51{|^at5!NL7mxXGm$HwU@**qn%{CTjSHM* zN41s)w)g<&P=SiaN@fn4wLZX$A>)KWVxy{9og^@Bl0G6t^YMSyHQ?RgaM+M@QYF$0 zVx&=n#?My=t+4d${-^qy`2^e0o?U2#Q15&A1l+nI^H<@9NzK~C;odH-h*RtCz3|)rt`f~=uX6val&$45nv# zk+0YDoZ#mD=0>5~as&Hsg0EO#Z%W=BPu}%vqaI$bIUd%PnbMVG17yxCQgv{9 z{ls~AO4rU=ftUA}h?y}9)LRG3#>J#mR)hwBhVJHDAP=hD<_#o-I+zLMB9Q8Iv<8e_ z?zti?ZVc<^ShN#(c$dn?p$U-b`Ua+%Nln{+q7{kX^g{{CUm2RWM_=_bm+Wk(+abYn z1Mvs!BVS0_ckKNI$!$Y3CX6on)!Yxbc0A2c^OV<@7%hEj@v{e}tsx_R;hx;Zg^#uR zpcxVsd#S_ea*i8G&J0->+GmJ3+B}d+%hci!nq<7h*uGG9e$}-z^ zc91jPZc^l1MR6ZC25J^YM03MYhMGEKQJ_|%Ds{$n8+eG~l~M{`wwZv~T`BqBn!r!K zpu>g}9D1hcRIH}KdZWjs||mOtQR{zYzltzV^g4|IW&WQ!bEUku62&0FsY zMhYj`K3Ru;O!0SLYq+XsX*GBXt}6SE^E8z$aS0aClg18z|z85s3L& zD&1yV_CV87g`?}YD4~MzF-qFw`HC2Bu-Z7@#G|LP3nTL4JHFL5bwCjK^}%YWuk4DDN+3EKGVcuu<{eUqQS}0|1KPcy~<6%e1 znxvOO@0X>?po<%#>a=ewno?eW=x*=}*Yr~DlNxd3-xeP|&kl{$LTin%$98Q)a~rw} zR7&!WN}r@$O4{5KT4P2QlvG|;md~wv|NTEVy45=7LHepW7q!W@jDL|~oUWr2Tldg~++VwJ*!&crI7qK_95h)Fhl!_6 zUHc9_pT#nzwEWx2j)^A3eiItmZOwm90V~eD!z^HN4@0$Ysc>UW?VZsz!yd`^r#b6@rn zvnwM{);XXwmtLGO?>5a3Z{?J?7+5((DO&Jx)wVe??}5iiifOMr;W?Q$qizg+I*AR< z^ACp%&61%WWp2kgs59;! z)|?9S=}MF)6q@8|wC$UHj$+tLRApL0L#VFQM=t+uk!Cz_s4J!-C61ngmJxUW8uv=wF_G4CAqoVuON zn@od}4?kE@g*_={6MhCtnbZRMum4T*SDq=vy2jh>dqF&`n3 z3&Tl#1?PV($6s6WOu+NMU%6<{k=1FdfnBh-D+V{m+5UA0xRexvPMx^D2+l6&%od-3 zH5>)huxh%}MWFcV)MRFL<9^Z8pRDr$&lVjo81Aor?!|S}81J3@-19((_D+tZX7bj0 zsw2RSZo9R<*sO@^wYR`<8)96M)u2uec4SO0n$#d6<&CkrHHmMoXp-)PQ{T`+C;>%Z z*B(@jjq;@zxlts~5>QR{RyLY<*S=ce9&OU`N~`DZedD5OTtg3X>RjTaZ0suHipR)s zlTJc!onl(P?wA~zkoKQ{?~726&j9&op9w>4WC$Q7a2J@+px{FOByhK}K>EB1EJGO& z@p^H~w|wjMR+Z3GL+ts{d%t~((${~#?H7HXkJ-x7xCIB6RAGxWkrIDtR0iHKSxUVnU%r|fz z(+cu6LaA5~o{obw`wlg>V;I2{$uv=(T{HuoPKeigr z?`hP-@KAW>Qh4ZYaN+Gh2EHMIFD!Pp+L<7w)GfleV$X>*P;zHY0*f%;u4;11I?F9e z5G&f`dt0&3F*=}9tSHA9BIop42@$7r-3Hhnpx3%6WB-sBsxKJ@o z`YDrLmhq6teQk)l5MUE-D(bGOeHVJHCc5dImWj>c@1Nuf2Tpi99e%t`g+RVUI@!`& zSKd_AqAO)w0b~*Rz+xp#(3YzG`IMv#Nckg%Nq_CZplZ}?qlQE`i{HDGccrSXc^4!p zW{JB4#l_-p@f?8+TXG>KHhxudsKcwz~*q%yB1>(uV3_!{Lvm zb=MDgJB{~Ddx)|pDUxAxEh z7~U2s>CtrNxwT%g*Ye`I-J@yl-dSho%{7Bh4oh|MWXy|XYBrQ9 zjqoQcH3|Kp_sJXE#D9cg_ePrLKEPQKTp&bOe2oGu_JG@=nQewM3+D-n8tz{>Ji2*X zou|&*im|2&+0XqgEIF;@J17aetgW_Er)rF&>pBaAknO+`zF=ZO)@!s$Ng@Wimf$OG z-tV@ax?)E>N{%+`mu61wO(3zxCaCbnTY#J?+Q8?@!MgOLp= z5!g)SY^`H^woXQ@FE-APng~p57U>D48@d*Fq~BqY^)~^gcuozWR8HU9%?wr*yC7Y} z;OO|()~@`7-z?e~@AFmTjjgZL8@EC{o>KNlG+cimRdezcDm<=gZcy=nsVg@;$}0%{ z`<36%*qx&N&1uS-4;3y{zoE{>&|RNT=jJBem!L(SjvyQ|TK+37i*=CexOG5$=t%dF z?9J_udFMykrbqkpg7y$y9C`5{_AmpF-DzV>^_CR3M7w`Rw+Eg4)h9S-j$GH@c{q9M z#&KQFB(=a2N9n())BFl4pgRy1%T4NWU>-F7p4=eX6ZKDMc*pKA@D01Vwj-lw#ITdWNE0h-l2zePV|O z-Skb8mX8cp-Pq=vmMWQW%6Z>E{EV)ppqQgiAJyoFp_Qf|BEzZqq@-0HFYn_Gf3BpB z9~~{COIbxUUkc>ZS36HvT1->m3i4rsG7|H7I!&V=VAxN3&$)g8iMH1kH^aJWJsE|5MAH$FEQs>TNT6qn%uV36A4A6E@yDuZ_rStFG1W)XL zo6UQEbv;u<9p|4P6y7MM>kIkG&&+XZlUaXCUL@s>7meLi6@pmHy*8{(?|9F43%oW`K21n(51e-^kq369)erXG|$z z!*pCD5^o|{g-fNOb=0+TBqEW=B5EYVW5@J5`fD`i=i-#n(C)TiE9nBm*o_UgG-5CI=SS&6Ewk2x4#$FV_G&+=BOb2NYa0?)7^mBM*!V~8kLE4~a#7U7npE~# zkCkt{0L#y$!>u~q_YaWc27)J(e0o1kCqKA4G1jC5jp{pVM=xQ-?LA}oMjVVlzY5+^ z;>VF6QC{VX#(LZQkM#mvcJLvG8@X%bv4258Y>m1M=% zgBiT|LD^c2q65QT82TTH`k=j#Nj9&yIB&3(CB?x`)^Ib%-R92dEcLcbHW_Ff3gg^G zPLPCA1p1X=T)j?D&ia`K!bg1FWqYNg+n+mV;fAJTVWvvsV+n=3N2vg642QXS=xAwp3cE~wLgCa$`v0{E z$io6WPbh)#Fy19E+EaJ$Ka!W>x%WDYh;|D74vgsoE3s>op)ef4rm6U0k&oxnZ$ti+ zM_}L72Gs<8Mc$0pMLO}-*i1?}xw1R6H)FiNyYY|x_y0IL7e}TS|NkGA zR6^zCeyJ4oaldVbrW;bBa!%yVwk{>bInUh20u)dny?UTcrji;%}$DKiNZ&E{eKbA9G|yQ~yJ zw0;4kbH?d^_0kvAi||B*O}rNjeL=B;R4nW9p}B?`>^^R~+Jb4eMYf*u8avrw{7^wQ zojn`1826#L9sd|ZV}Z=h_f?ST(OC>hZ!+qeGc*3tek#=pLX)NWU7na5J(f)z7*PP1 z|3b{Rgxa2&;04mBkWU5l3Xg?)uZ$!>Hh|Iv$zOiG`@S8v4FzS`Z+@AZFCE!$&^s(1 z;Ayd)Y@2fpt^hg7hk-~rZ_xW~LJT<9KJ}v#dvu7$@HdEk`I6)*b6WOf1XO2brM4?%nHyn7ZjJQMY@yKrNl;`ZhEf)TD}BNBbUs(wvupU~ZjY~K3_ z`UR@-zXfA-Kv~z9)8(agNJ(*fa^Kj&iWXQy5gsYZ)^0CYuR zIED9UNqO(4MJ6gWO~PW)qqDcEX&?u5zl2#oAMo&g8P9f9QFqC~IdFrKK_C9M!770} zhQx`3HO!S3gWyqfzu_+Mr9gvVxX)5yq!=rSuIyCmMf(ESvPy|F{AR@XF%3|f8mFk6 z-7%YY?4~=b1XRzt??p4raaxSaw6)aW&UK+-!N*X?&UG zm>Ecsmg0`4_@xI(GLY&kQ~6Xx%ZbqEZNqO~OwV7l9>;a+8*S_O+*T;i8?--BwDUd` z7dxl0`T%!ss;{qJ{I6N-!trBI84IGL!8$lV%lno$NgIDvC=in=Mc&>URp z6HHh+1BU@TcOC4-sRNTBuMOceb}+V!**aDcA-m% zB>VJx$ad9hTF7J3;e2CH`rP|i>oqn_F;!wfbY-(%f>Y}JYu-F79x*bThsdv@ z+ui6R8%%3Dn)_j}Y~?RK2f2mZ7?Nwqz9iR04xH)OUkt@St@T}qcUpVnKa+&spI<_+oLo#NpXq2Ei`QO6gZ%uEPl!+q{6*v>+UdEm+kX3Av}!5QKIxeZW!1 z%G=A|1#Do4Y`LE~G#-sq`Px5s(~m557uLJQ`zo`j4f+0dL_wmYlSCklY4L9$aE&+j zWJUlyJh4uX{U<*exf%R$6JC@TN_m^t>IB%N8#2uA3-$v+acybTTqekZplNxTpz>dD zTJ%6Y5S5|QQPmo}J6au8GZl-w$Dq5WsgRtRvv8b;N1u6+J9d;v=VdEqrcV?{7I zP8p^18K-r_U2lfnEp_mD-c^zuU7vW3*Kuh08EuC)U43BWu80<5a1%1Qig=l3wa#DooranG zsFmh@Kr@3SS_;Y95#jjViOw?VFKF8jbK@2+KDtSWru2Ba{DOa*?&9`8a?yGe2%PC< zmU|YCeowp%EdZyipCRCGFLniZ`67eVvdT#C^eTkl@n+T60M-7yvN}@M(VQw>6GpG~ zOSFf56^9hAkR5B8LJCg9YD-3|d^c`3b-P<#&PC2mPa=mjnVu%4?WR;XHf;;D7apV+ zoJ5OWLGAuP0mp%3LEOT%Bf3h>V(77+*Q7^m9UpY@SqEc!Rc{Z>qG<>M-PKJ=X~Q?5zbRBs579sQoN2 z>cB&v+h@X5_5NroIh$!87`^6~FM9?=;@pvQzg;(BWOy>**o05uyt)LkRcgLk-pXO< z%kb1f8$TZ&(Ta=SF!^l}b-->G*xk(M!3GQa?dqDstAM@tdvs^>6LlFqt~Nj+NA`!vd` z*M9cOL`BeB@T||5QhL+P!pL{^NaAqr#dXV((moTwl(VBVlZOi#owk;}gsxrk4dC5S z$vO%xvb@4g*|ap#Xt`<8YBmU*%vUb-m-;$=9hI@Vuz27L6Fxnd-D5_bM0%zGOP>MH zzpPKOAG-d3Pq_Fkx(ipNw>+%SV6Aw#k<)`oD&-7m>CQ$fz%{-#^%NnLU?8H2$GjrN z9-D0b3YEO}%P^>Bt1yoUvI0a#0Sp!sP17%(&< zt|Le58QS(L<2@QQzjz%lv@T)Zz|?D&~^46^jWOxOKMn53EK-Je@D%t zNeUyGOTg#^db&$YT$~4|hqoz^bSHi;gt6@q8%b2ZP(i9rJ)*)BMkxJrd8T<@JBs&Y zU6dR*xYt^DgMZ84E(q{w{P~HDwF%eUN9OTIq;F7|U1lj@b^j&$shD5dB1$nnmR z{_BGzA5RRHEI!xfzxVpBeavSNKTvII!w)W*9Yr(55f@7}pcC0`a?}SmMyJ=2OEqIn zp}kRDW34CAu9^)eeJP=mi)pX}(V@|%00~=3jonif*-P`C)`GC|KxQ?g* z;|XVGG!_l+BC;^z+S^x9HT;ven8P9Sp)?Otj;mkBg`IKc2Sv$L!;P(>UJym18rdLF zj}`6*yB@;$_f!gKmY~@s9u1jCYPj1&x>o4t$_Fo2#KzS4$)1+aR1Er__9OuRtMvd{ z6caGpyKxd5sn)e_HkP+g*FQ-Wz5d%IKus4B55#?c{=L*1JSBs`iG8QxR81GI z=eq^40X=_0>v3{BaCs&-*RWaMlC|X_+Eec$3Y&u$PO#C0)C;?g+ zwiL$v<1orA7T ztF{7>(7?2~1jF)fg>(iHbr`m|_*qv_i+@L^Bd=@^!d%IVe0%V3ov&0J8GD#e(ZYEy z@*{)(lGM)e$m;*Z<`&GcU0L6eNX9eSzVId`*hDFUJyq+l?k{Kb*Wo!6jl)4x_j>Re zXY2U5Yl$gu+sD{DJ6i2;*xX4O*_j$P2Pgolo!7l=QDOGtzEzY`Q2aa}u9TlDP7j z!|FaYuV1B}a_rHh$Rfbl*ptJrEXO*jBPxm5N31FPJVHCvr zvq%AQr8!%nD9!gblqL)O-NEHUpCR)Z4tW!%JN|+$wG^*TTMyR91nWX}J@bETHA$^; z+_}w|#(~uWH3ZzV^66EViMcDec;DE^)!sEznX+l>iIL`l0+}-H##i)S9lLM2BS{ z_NIte&oJO zMHp18f;mTXc@kyVBv)yIpAQn+CKP8p~Yj*@p=W+Ygs5yg2Cj4H3$` zLa}PhqbiZCZ%&xl!@m}_f*zq@b{Xtt4ID=T%__^M1#@9x!po*DGgX}GnFZX;P*BO( z@bLJ=5JOsLE%55pangStM+Vi4%?l`JtPQQ#KtLFtn(7E zh+FucgRA{|>9(uRf$NV$Q%vg49mPaEheRK2Z+wfmuH?)ip}R$WRZd1A_Z2`^59<#E zuGzr7qM7gEuOfp$#srPB4QzW5;`ASF!~UQZGI2n&00?HU<#FkP_Tk^8|AO{2 z+No8)>Lw5&PY+C(2S-3gw z=4f_kNTt?Su{n+nWm99Loey>WrFe0x{78GEm#~U)_4dS(5fejqz3hh;AcFRr0O_IY zgSW<&xUNc%mI|}u{tGm5iYpD>5+y~G-tQ=Kj_lSR9n8D7SkM<7IM~5cF~g;5xfIz$ zM6|dWV(n&?9cEx+mQ^c-bY9WoC3eSdADd3A3QX6q+fEeBg)WVQGGpB-e3mNYeC$&8 zNOz>u-_(fJh9}ttF9>hpQ2aY38}XUU)eVSn6q~!Zkp>4hMzWaA`2qGpL@GOg+WYcD z6wP0DsMxjd56>6eDD6RYyqpUQqPXzh!yu3)5I=Y@DCRtR!9rdmT1|buc*^iwVaORu zZA;s`og~$<8z*AxsAqPnG=4i$(5e1v=~5DYM8oyu$fZD9K{L(chsqe*9vu2L*2$UM zs#VG-+V%;~UGIc~uKK42nX$m80bU*k@_S;EIYLEHv(qI@=9na6b=n$UcM!W?RpPE( zXOFMJj@8La{&_cWn5#4L5(yp6{_qkk@nQH(VZ?vBDxA z7a6G-D>xsR_vza9PiBLb|Heq>CflykM#2FuXSDAa*j-)!KJ#$1pjb3!@i1qmQ8U(H z^*H+&TU!pXD^Wx`0bsAWO2|^-AF5_(!oLuXa|YFVqv42Zk$ zc|^qpSw(#hyYp-uc(ESGzcv`C99Dxua89@}CB(lsb>{%exMshf{pk;pEZl5WGWmS4k*s|RHNw9$3eGSF2L^VcMM+{4~1 zh82YA2z16D)M#=)@pU&f%JD1b##q4PWtIvUxYR?YhUB#QG*?ytL0ytz1fT$A=j4A`$_=6gg~xu_IPWD!&<|a>LYi~2X1X4%Ni$&sO&OIJ)h41!YKngK0!U!-UjH{azBB_(xmXgg^z7cKbma| z#OE_>i-MUdw+$-EBuHP}Hp|0L!^Bp96}u;7JKE$*pu;u`>@S>4p!swR^AKSVpmx6% z*z^KR-pCx(B#BKdnKZ)KcbyFj2(Q~eH4w4dXMU8D*(|AE*e2QU_8KDiHg7O_M51CW z1;e-Ws5>pKV7?ws@Q~`Zq5Rw+nIEy!IRHhaFh8Yq(FjkNd9c57536RT1JI!nGbW5i zNMRr*YOf;HXyTZG_*$nnD)3zR*-@5hBZdN#gQdcXSXZ zOh4OCC|{S)E$z3Rx|4!m5~zuH=%sI*P1w6p1evNDSbd|b5!Z$6!rAQ+9Y5po;mzXa zt6#~+tLN%%8=dYn41fG`peXj`qXC{(Uak)FlzYh5xe6?A+&@OA@ko@2m4{(43QoEZ z5RKrE4|{ZpgHe+~Moc+0EypsdZy@qDekAU{PRHRjb#Z>~q$k1VB+AH5Ut&`*_i-nL zcsTC&L4=v=%C`%XxZX%gET%~B@F7*=&AwsN5#c}6^y~@0l>OR(eTT5P#bl4);M}Ym zH&p(*d!5NG!XOO)cRt;9>3XZRJB&~=@Yuu_T&1y+i_j*-qJAhw{05*SU z368Frd=E7P6qxP4GI9UY{8%G)g2lfB-|D{rzn($Fxy?~V!<_tl^-+%EmW zH>?CC21IFmD@YL_2x|=kKUS>d)iH&W%o9K89p4)ct0PY3)rWTdOwTZa@tUDliUgjW zP6QOL?h=Spyet&#JJvb;g)*%B?q+>!?7vPFH3pP3I2Y8^Z@o^b4u3N;x9F29JiD69 zGr9Db-Cx$GzLFL<7cV_A-Jwj7@S`zgqA`+pJ$635`GbAZ&0vYl)Qc9tPK?UaaQ5PU zi#W7xjr891$VThwF*3Dn=D;mcDS`P!#hU~n+*wljaVc7c>T>x;!g2r-vx0hn_Y zirA%Qz5#;UlfqsbF}2^#+wF&d$2^>TyOQH>zP0?LzV)TCA8js)6^$kGPajBNACQ%8 z9(u%9tmVk4X+^$9ET3ho?{JC`rB-HTL-v+VQ2$Kxc`Na+KO+^ayq7*pt zH$JT@&HPwlznC&xP7wsaDY|%Oj8?T7sIMw`Ope!q>X+X{adcvF_@6ji`g_-l=*<@f zh%SQp>H%*a_1r_&M)T(b@f95bDKW&8tcNoaj1dxVFdU7au5*=I>D|iPf)M}>bnvHo zj8tVoPar95+rCpniRm{P(V8uO7d&h>+rbbrKjEh|w!IreWO+u!%UraH19~ifrTL!U z!~XdQx}n$piV{d-W+K3Z628cGGFgn9tDn?hlC(}Y0rGL7tolEsrb%RWgvJKK&Bnao z%c%8e)JdJae*tEkQ(ssn`j3Wh!*}~~bQu$WPw=RbgPK4RT?q!B{-67a2hrDdU+;S- z{$(7d5z_as-70jUTTl~yV`**_~Pv4f15%)+7D#tGdrwNW=HZa+2)yB#F>F+4zwN3nt5Z5esd>D zs^n+NS?=3d7s1zzlNAL_W7DjO+mxe$U4{aywxK;!18hYtK505cuQ z|C4#NXt}1n+793vO(DO06A#WTb+}e3D!Ujhm`X2~b}Z-g>W$AflLzMf_uy|!jGnlJ zUV^xsL~G+Z6Gg=@*`|Z7!EpWFM8i(O)@ z?qX@pYbEm z>({w3VkZd6?M|}U2?!DPEX#;5K@dgeddeRh}f+Lq2=}pg{n2-2rcNyPbLMIYs>@iborUCxA zPS&-!eZrvoT?c%biJ>L;8t=-vGJUweq*v4BDa5{h`vQY+oI+-g{rZ?By0YR} zL5U&K&|J(~@sNexIxs%eGpub&Nmt;P+>NwIH5BI+M@z9g`H}!alLz;- z5(eRVqE?cl^k)($>!IS|jXEq7LEjE&#ALTk$M`!rjn3j+Li(d=-wOfo^v!w8Pdm8~ z35ctUP*GBLXETwk>+}F;x!$)+UG0Xr|GoRVtP7YZy({qbJfyQcY$W|4dd~YX>x})) z%ts>|&E#IUT$%w9{D#DbANbzBir7HT81fa1IF{^TnBb{7u>j%WA<#Smu<-P-L^WWc zS=+rZ!H(8rHQ@L7#1F%EVQ_GkuiH_jsgif72HxZRQBqUx0TnMxk87)aeIxw4OHa4= z_ce&=`#={wn;+SkWcn5zK@S(8!#|7+TQX_FcUMm(JPN!dnSEqS(j1p< zuK?Wj4P@JucdK<)+i{U8UmQ2w$XA`pR{=OqcPqxjv`%7w-TWB86H9^Cm1u%bO)0AY z7&Bbl(JjFX?A2U!MZzc6@j;*!InJ;k`tBPQgg%7f=Bf(VgiN&&4~Q;f@{pB9`U$_ zn^A+;P!Aa&iUId&r%?B)wuXZ3+@{&5UFaD^#tnDY6V~JE5ChYr|C4RBC5?9^!ku*U zVgApEFP{sX?LXCb^*!kdM4kV!O)&m#O*_4LRwCOCQz5F*G3Lq6waH`1UKh;rHZHiA z0;@M-Y&_hXTEm`wAloa^E%L)sJ&t;zOu=F1v89Yh#%X9LXLY{v-r@(-(BQ;8Ti;FT ztbdnMcT=jNAzw53YYZuynA=ZW-k;$;1U6iGkCIklev&P$y(-(->%dkYxGDf|AC%F( zB*sNI-SV)FrIK$E{L+B85jBa8`OxP^rYcT;OO9VPaZ=j^UYx*v1t(sp<;*tSx%`L{ zH*QohD(86V;CeT~U_;N((_Nuq_$1A~$Y|nbYf8Pl+**DFJ?y>C4?mtdAf=^1lQ9u+ z%h^Ar)^_m?M1RKTPV>F1`TXSYXBn<%5*gDLpnv&;PfZRa6wu+vWvqnM94}zJ8Xq3w$(ab7 zw#DOJz!mbh_Eb^4nfd?o1c-gzY!Xqa=WBb++BF)PWaY#PKi?Zp@{3*1UBl0K8+ z@a@}_qf?3B5jy$(;GSBt0EP)OW^L$zn!|kK%R#={l|j3YovMgYJ%u3xiyPfaWh@%|ymf zAMc#(VZ0|j|KJ1SI1C|zAA^ktWO(ne`DtQW`2(tzQmw@#4h{Nj(D~Ti^t@U))y6c< z+6<>MM&%8BWyN2L`<^V`qZxbK>@>H7qk748$P0Ad$+JrUel z|IrAc#jNM5vYu@&6xDF12;?U=$|0#hoov1`b{g?{PiHnma{C%Hutnb%C-yrQSsGC2 zW~R}!qKgt|Fg4ng~Ijlv21%cH}g0@|YOt_7hBfx9#ut042`(uQC`A8e**}9Qhni?6$l+*ojbBUapV$ zc46LVdg+>Nm1)BhSqbr8!a?G@TT`d3)%EA%5gi>@nMeQhwqh@cR4NVnJK7};Vl7=M z*Pk@}f?KEu<;7R)2TQO^Q|2DhB#Iz!ykaSMoliiE`2@cj`z;C8Fv7y&g<6Yf@RsNJ z0l((q=PyHpxOMNIJa+Yjt&Oc7^W~-$RSZB{hg6J<%R_V)-R7Y9!B5FUF#^@~r1Aml zCURdX<{8YRdMs(@dbH2pm8tb;u4q+V*LadcXEHqOeV}Vi@p(N}G)%TLyO_W9{5sc> zs9{nSM{DfQL@l3;0_S;7R=L`nDj|gpf0IC)>n03B`}CG&sVCFCr}^(?jgCOpt@6rM zjZ;UyEIdWn=H>f#7#{x}<+HrslOwnfRCyKHA9sXqdExi4uM`n$s%<@~%!JSJ1A6v$=`*U!(>4|bD8^uxYzvfAbqS^KHKafZG zzRK!Q+*{iuGI(KYG^i};=X4@)NSbP$e_d_w;wMh+0*-w_>N2(>bVA0SZdM7z`d|mv zUuPEs8bBn>#eQYE9FRTA%zYmJ$2fX)YwhrnJ-4D=M6}`F-T#l`m_Ja=Yt2?XYzwwc z54L5|O$5KqLh2)B>wQz`b(&7{t^9VghM;iyis988QkW6SFuSy`fO#lpF(zuMcf>7i z(zDPzFg{=xC;Sl$^w?oFiyz;|q0+*YI?Z<#I{V>k$A@kV-6-P(CnzgN8Rh;Z%ar@k zb6oxGom^JuhrZH=P%yrD=3Ze^;C@EVe3hZ4M;U#bPnPh{vH{FoA; zh07gI9XkLKe=6Z-dV zFSYVz8Gney^2@}AKDO&K@K67GT8ie{gC&xt0*bXiS5hh;T9Bo%bbmEv_jjQazEWw) z=8SMt{Lwg^<+Ggt!v1tY&i?d4HCdUj&!kD!lf?j|+MmNMHerM~OwMMel`>uE89#F_ z(pxm*r)cDMhA=GERm{A5BgmP_a?^h>i7T$LUEAPx;$>Igp-9O45eA@Y^SNx0c-EQs13h63HZ ziO|n(Zq87=RqM#Vo6GyaY>Ms3*vR&*$yC_!K`#|!>>$!Q5KXE_Fpx{S^352q zqOYb(o!n`Z98t#5g%Sj6x|_QnCg;z|6a-n|RY3pO%+0oL4;~*nSo$Kz+dL(OUNFR< z0v0VZ>zO*tUz3qy^_c|YNy0%o1jht?TUZ?)X~0Fk$%w$a(ZiP$98zfIFz%{jLlas+ z-$Q7{0k>l(gg1&mw%f-TR%RawmV9^NF!xiy6x3SHI|9rtxsPR)WOW#H&i-?>6;w|= zG59wrbE~z^EcMPWxU4}p#+rAtBHLSAU3y0`7Sh}qu$iC_c?uB4SZn)Xj7pJjK1<>ZGqG|Cb z{=5@aS3ilf1^&LZ_F?6&N&)*;+$9TL;pbwdz9`pFFYCM-n91WYKD4wDpujgDh8}C8@YB?rJwR(`kUf&eZ%~xoZ0(qR=`ntHcW2<9XTU< zB6Q|<4-`X?_avCz+o}q!bIYwrxa#KL4PMj~|M)V>c6GsJJ)rvxMYX9so@`NKe0f?( zWfPbKmRMK&J0BPUW=oif9XcdcHa3)}XnxT`(8uTP1YuHb%^r0{55HPaQq1Q|PFQKi z!2sl{xlXNV??tU+W9a6m*1G`Y(wAS{g1{uJ`d=FCN)Py*DwT%}Wk@D4Kbv<8eDBKT zAXGLRBPB;qo3Oz$te2yHjg6REl$ARWh0-TC>(bblqiQ8&9y^Py&Pm%fgC_6SMlPLo z-3`FT_HI5oD2xBBA#W}8$ocbcA7ml30_kUF4O+v)FLg#O1wZlMeyJEyvk(!M5HR(y zpOcY<*j#u<9)i=I;`oyO}MRk{?&XasVz0UA* zm9F3=YdKVk7d!)@2Yd({`N2+4^RkQTr-0QRnif&;j?ZS z!LeXZj9&q_1S^5Xp_(3J=SKo0D%-=A$edo3BA%$Z#jX1?@pkP6RWU82olME5d)U7A zNFbm8A%f9cO1S>lL9Ie7$Y07|#M7oI_EwK{(1x91OIPlg^Um5Dxzc`Sy`lU0t<$%@BS6*LnLwbK{Q^lSm(skyuhhC*>@+wxR{Tc`v3tImBrrm~E95xOy7M~DcFd=hi<&YE?!^qunt$-FZbrW`~sN!Ocl z&>@15DXR9z?U4*&5Yjp*85IWr`0Tb}0APs9dx_)VFnUN}IbVN$5Qp1mwPYPUU3G}&~v0I?+ZZG%tSS~N*i96;5pPS{S0qMycM_CS9$bkdUfsKAus zzs-a_-pvr%c<2EpMP7_;k|1X+F?H17pvhkB%P3O+Aq}hJPmk}m{}kVMeRafd%v+55 zf@f{ad9eG>maTmopI$y{il3Rt%ONQ-&&cH)Vh@&_&ToJAGWj&xE`wooV-~8?yh==t z-1>Rc_FH`-m{g@Yf4k*ai}WYo{-BdsGg~euycU!y{RjQ>0)lm=zq=MQlPrtcdyUBF zyG4h*x#E73s;)tyG88?8EvJ_c(k!2Bi%@Kpw~+Xi*-Ebv6x{^zYgh4WQfvHe*1Nq6 zaVACK^LWKrS6;X1nVrA9oMexr0F242u3oQ^Cs(1mU6Z`?_coklaJ`w!_hh$M($K>W z+n-s%ek#K4$)JQF{3%7jM@ZpWah4+<8B0?HS;x{umE{swvRxa zUx0;-V)2psXI5QnP~BGhIAguG6YqsR%7GP7zV>(w;5>eBq<%G-lx6(dzaCcx!Z{)e_X z+W}(zgN=808Xzy8Om}3kKT^pi-!GD;mPgl5)RT&J&$*xmHt0Akmt2wW$nqj4rOy#T z_SgW1<)j*gLnUJ2(j*Y+LqTln$hS0WBF#Q?)bZirjc1h8J>mjg?%*bU&BtR2ZFO|t=#KKe)Ank&+CBhGr~T?cne4tX(Y zs2DrJ$s%Tf3KpVs(Zr)O9v||x2d1mV)J05f`Vht(0SKs3^Ua_lluTW%km zee4#Jkwxmw%V&^bOg}_!6sCWPx*&U9YDByw!+dh~NCj=g)c3LqBUti?MNmp@a_N`S z!UkG$jZ{=3TypT|x(lq{q3LbP9@z&}RNv0y9XGiy3V&i~x`GtV z=qUE(I%pBu@zemD-v5L$JeIZb` zr?k6G-KH-Xe`pl|l9kQNwK@8-XAU9srBEUAaMZDL6Lo&2Cco@FV7<`(n+%gWt-DTV zHVV64`_9Ej$p!s0=c4p8`v#wG6z1r0EFW2$9Cf7pPCKS~Pw8n(<$Fj}*x-Tkg~@0Y zlLt;3#}!j+aUt(%fszyv@=Kri`R-4$--C+F9J(;8{C>Ameo?mahoqC3km-835kpO| zc@Zi;(LPd{?_k0~i7VB%8!?v>lDN{l>e7R^q9q@YGm^fsmhx3i{ig<<^Z9dpgxt?w~YvWNE zTK>YSDK^cZc*+51=lL?8ZMf9-qVY@E0)vT0mOw#%Nlx&98zw2_lw!#69ncT#S*6TAI$yTzf}tZiX%$Qb(RL38q~Z zm~h9dQmXq_xSReL*;1&Xb{Ur-SeD0n(PpkI{lf5uCVcJWeL>uMQgl!xt3VetVYIzA zJz3OrQRjY>EvOj66VT(LUlJ4zk|*o--t)4*w3?jq#JcJz%t@?N%qjoP8;LbJM3F2+M&LJJAPAtq-X=?#gh zD221kvhFFRsB<2qL+fW&@qLHI2J_=Sv@|VPV{vsd^zn%GjYF&9(8aiF7_%x3wq3U{ zakz|(5JQuLaVAs3PCyx?cNMDfu$~}6l2E4)W4VlvY(xefhuE3)e1og_pNGDy0!Vrw z?UHnK%ZpmL-UmCQQjcSZ$W5ag>M{$Y1fody%XK~R_lsu`wuyVY~&$<&bpwvlO!+OdGr?#eLux$ydHHfFo2wsrcfv(ggZ>-Z^c z1;j#yF8wrosfST8R4Jlzpk4HGK&30-VT}d-twgmd;w>xDFTLgyTL@x#r>CK-o$C#< zj}rJ@iJGwc^Oh?c58Kr$@dq!PYZSV`g&tM$jV zbjNUWY&ru#u@&?qSRPTln^W^9$XwzFV^T@oAx7x)hG5VeYG@HF$~lPcbHm-qK5sQd zQl^eZGQ0PgTGZEMJ5|E5ulf{K3N-f>d9`sLJR~|hCPeh{dt?Q77e(i5=esx>c$5n-+`6G|It-kk7$Dy}~VPsiA0y8nJFu9K&>BY*ImS!)t8 z(l$2iP6^lwh1(&jeiH{de#>}3PeCAl20>;X(&V>e1xD0nWo`j;;B)K9Czh9Ya0+}w zUI@2jL(`;c+5L+Rey!JI*G&dH%+K;IDFXzXGDJ8DH(0@`Yd7wP27N1J1+@a5puz5e zt@aHMOI09Et3QI31D21KQER0q%TOA4a7yRl6fUlzq5DvJv!QiyM5aUY*+0JLcie$f z|8Br}@|oA<_Kj_FtdfM6XS_b1=t-24eSW8?py%~j*DC`9-H3jPxQ8ET6P$pt4fuVzBn7!u^}_dZPjp zfher5<2c08EX;GCPvWy8j(s6uEHR;f`P^ls4u}j~%@sC($T;e8z%2Cf(StM1x_`za zuR7oSA~0F-H(f(+&boN!*6$}Dp3D4D*n8t?WbS+gKgc9swU24JI2Ed*VO5%@2U_t_ zb@6)7$NK`86)J$J`r(alGpD!nb$jYcU2N?OUVDrUFDS((unnb_t~Z($uJ+Hyc;&q& zO>mW%pz@)yNO(y=j4$PQ0m47aydosid4$mVs4*!}Fh>X=Qh;a;TX}nL)DSY`w*G`_PWLX0bVV6Jm^YS4LyKKwi$;Ff7Eandl7}nfdF9>4VldBPz;Mi?|6ZMVt5055ekDgEoFvk-MmF)C18yMUU9>JklVy(0- zyTB)RkQKk8vy?oURh&Pe@hvm>nME*n=U)-D?x$L&-}#TW*SY%hY zj3i3Z==^B=^Q&VbZ}-0|zExci`3EUu$_+iRbmI$$O37#+zM74EFAaOfXitGdk%r*8 zF;@6zr|?ZY>TQ-0vd1DFDmjFVx>7=bA^Sn;HrR)Alr620RwRFY@f-vt6<1aXY;{Pr z^PHcUyVvYu<*b-S*103A`~YV&=@lMkh<)-tTbkZcnpSo3b=TRJwI!zmk)J-RUm)(ib;3~ z4$%vlih?nsP0q5mk8iBAXvMihbw7Tv+ethTimj? z2(OV4M6t2i@~^;t3+|(uK$%t-ohwSu{b+qc^$OYtLI1z5JdU(jmYR6da_D3m3~!{J zou{f;M@WSAuJRQMebHTciH@_^3+y(jMEs$em zQ|_U_JReYI3yAx%oe3^NYd;}*V3>1Tm(zEaNU`PoA(=ja0!BB@{HDczQWcX}gZ&)oIYR(Xj$rR%n>luz=L2F+-L94zDgzWAm6`n|uM*>?Carf57fEl+l$e)!z4jd}T$G&B)%CD2_$f15c81lFKsu?z zIc{s42g1ruVDw?g@aK7rHPQx0+2*EwTavp%F12+^L{VUKFW+>rqk^yEas=)2R3kl0 zL-tUK8O}!|nBaoGjQ-PhG1Y5a1HyRfym=>DU1{W@#%Foao5g@yo>02ZB# z+GjFJ8#e9FgjJHKMzl}7k=f#`K(-qKTu#2f5DIma=P;wWiSX!?Z6r`>oiZTn-&5bo z6{q|tirdl^a%xUp)de&;Galtqhj&o%QoKgg=D-TbdJgdaC^{E^CiMT0cS9vq%AFNO z9rsI{yHZFoNvC8kA-85`hLM@%mR#miZgVL_eakJ(ZOwfnW);VsVQlVf6Xr5Mzdz#h zczho3*X#9s@_N^5dStTG4UR3`w|`VT@k^-~&X9@dGQGrI==?F)&X>DuYiupI8H2NS zAb)?b(RPIc-9=( z8OeFkJyqPA?R#=MP8vi~j2?f5HQiL7Bl_6;gL-!rT*JP?ahXX_d)BDoZM;44k%CR# z%2o$mFVn7Kp$&#=R!Ufg1^+vBMm$1B`np|29FRS^=iMkt=z5Z@ErieXiodQ$o+(?n zBupH+o!i?yByDESC{Xe2FZJ>Ts_PuouwEhS96Nvm&-~Et1^6&Zb2tSXqhnZA)Q=h8#HxU+^)a1xE0l6N;R!4W!KJ3H*ER^FztPyKl#5yT9C^O*}hC zQyzYT#Pi<8Fs%S%{{d~%Iq?>TsLah+7a}MOm{i6;#Z$HL)7;vsAtl%~3k?OY{;V68 z)1q49g;u}7FmW0qlUa@tx!VV%9)lN0fz8~{Uyf@FY$WY5#(k*mK^b`9>+WZLslkhH#5;Y3fvwlq--J!RHU17 z%dprdm}W-Q6Au@}aztu5V8Z-+S_IQ`Vl>y4?k@O{axTVC=>$=1+mM{O43a|%_rY^? z^UdDP8#G&rM_CD4{k~X0zp<$0qqElK&beB)a2AH=yTgv$9}A+AV?OSuCR~O*p!v_( zx9hg%i@j_>8ZdD*5jpEp%go~i?zhmF$T?e2jvD(%6~G@2Z!ry}|Gq{2u!a-&$(AL* zS*bOZ&u+^#rkv$2il$y=?a-7{IdLEANRPGioJ zOVYE$5{wwI`66Q_V*Rkyu$n$gO3;MB4f$s7~8`%YRW z*ZTK@i)1Ukq1=>GE-d2C-U9Yb6vy!A8{~Rjke9OQckEv*dt|1bJ2+oRNi9fR>&ULU zJS401x#yi1J!V1apuxD%isN;$;c4a&ayVJa1T=EC;;VhNleSPYpEN-za}b`OU6w5l zN%oVGw75&nLzMikQm2no8`O7St}1G~Agkp-j-!qRk>NKgs5kNqT4D9Wn1Iz{DE`nc zI%;vHxF~?VGSxLR5PwslWmX=^;-E2*djCuA{?mo2$!}Y~U#$!71LM1nt1WMzw>3H6 zYVj(*DAbi{g+{B<9UkCcBhCnVtNQy!{@!Ne;?0o2jOHjsrnYnRnt|^bps&@<Lj{59PH4t1*I8Q6p*OJdC;8Ib!-%c}Ml~A39<)dNj&LWX@zc?lyx1cv2 z40@37Up3x^WgPF;rdK=BLwkPGzu_Rz?^CaLoH`>my*?(ys4KpUwuZsCR0 zT9$;U+Vn&vJo|~o%B7a*>>B?p9J$#(!UReyn6M296M?U|BGgpuw2*5`W<%d=%aER7 z>wQ<}KRK++VAbF&o_d~aT;;JSvy+_R4JkFOQ7rGu&h+axb5z0*rCAjIbG>iXvd_X` zIBE5vx9ToGeXtC z9XjA(yGrh~u^K^o(lS;Wz+KU;PJ;8Q7kr}b8&aD3bNwh($E0cdAz@!ZEV%(#-TEV; z{opZ_0B-toacndAM`w&RskHWy0d3<&f<>vOl2LdOi<9gk6SsEr$5NjS(m6j175*B{ zLjc`Bd#kM?j8|_Os4nKXmwxYO*|Pdy!_TK(@E}|aIWMVyn{$QPFh6Y?g{-^O1>1r- zK1*M{aH+kyWd=-GkGjX=@mACf^O?0W5GCDYK^uYFeKuL+dcUORauI3{0k)a1M&ABU ztqXYjvN~J%{j~e(kcfj_n#t?Iy{gVBR$cS{%Fvcc@86O5A(t1z~r2(F!W ztZKTXw(Y{o3gYB5)i=6#4d0(+388G?at;tUU4E6XK)1WCXRQpxP)3s~T ziu2Y2gl9r3V%%STKhKciRx>u@&m>E|>X$-SoqhgcMV+b^u}mYR7>^oglzIVsv%!(P-PUfM^YEVsEcd4=FH`Yd$+ z*9Ll*LM*Li>-5oskWeL_E?k=yuzI3^eo!&iO$6_Q!%J@*wv}btzZHz-D7xnmfldvJ z{r-j4qU5@3kti8kJwn&XOUhQruEOsJL+!)at1U(laZ)2FZ}`g5VgkCa27{OOc3iCa?h>MNN~i>HsZ>->5$3l7{! z(O7|Jg;a~MUT9J^uW>rW6qH+9$f~X9hY)t5hWKeph`BR55~x6d37t$1w9mQk7`?H@P>QrG_?;S}#uvOL}oNZZU2szQGym`u7JD zQkeDqg~9iIrD#rvU&Vto#IO(uuxokg2%4UuFmLlPQzx@^%C1B^MJD3R{7f4zwb{$C$~D}apA}5 zLhcIT&v!z}2#$ykSKPPxfOM+)?=J%iSc_VixW=5WZ-Ejiy7d}Nd7DFpM~ws(p>{Lv zu-arQh;lz~(k2qo@a(eDK;{(FUN+a#;4idjEFo+Y{{3grlJrW-%S^` z`_HFTt>FsCXXfP9-T(f}QFiII%db8Yu1bbX{+>C-R51A_kdaN+!uE1KkE741Zp@;R zx#xG*<8;%&WAfpO;SYVID^65R^wlowcv=+;MT2|>_}ZY2y)wNu5AZ&FlnKucimH44 zWTkVHI!XuRJkMos$L=z2w_A+;V2&B%FK%ub?lBxQ04vJ-?hzyV=3@%#^+ZKpDTR-ut>L+^ zZF9vV?$ccAUQWdc|9k>>$F9#ut`>t^4IpsdtvE(O9mWjztoJ!LmU_(7ef-ai4_=oh zl=Lf2VuBO*yBN)DI-3)FbxeZb!My?p@b`soA28NO|9SZED9&Zkw^XMY>6KU}IcRwc zIgy}pUW*bVU?8ammU2{jsM;`bA-50KM{&Q?n&f^mLgrI~b;tX@*q>$szH-~cIya7g ze|TlYeP*HfJzd3J>4LE7Yy-F33?&V9eqgIW>v|2Q#YEyyx*i?~nw|s`NeO~#%?FXE z?#h&|86x76WaIO)=h}#S)+6lgf7Wj>rx5RA#B*ow`(FiEW#Ymk=lrsP2knU1x{*{E zh5XJv2k?cq-h6tV#05763`9;mpIkoBq53TQ^zv{0;j#(gq7cM8u=--F}F7C6d3)p$vY?911yeOHp!tOKDK}F zZ7{chJOWCUK{f@|j#PTzIe-r%%T;^3qo$@z(1r?mJSshUjCj$cZ{aj{e$rnO5teAk)Z4JklW7^kjqS6X(A|J zhiK;+-OkC?=E^2i<6&d`)A`F8jW54@U`x^8nj>##Loh4mf^#)ov7I5& zkh(12!{fFAxQ2BI6H$^m-fu7qQTxt4;D>Xdhy0HvBa+|ZESfE#y#Uz%kc1eL*>B=t z{-koQcUk*sb~gQgbNp-2Sr%4BZ!i#OB)_7ReM2s9#zJ}w9TW6%`WIRN;WuQ2UuXxq z?7)YBMti6_>(bDDKbjbFt%icFGe$Y|2pRVS^+AB&%Y?bXns$&>FuxUU=HIj!-7n*L z)-yfN)%O4RrhMu1%9Ig})6L@c|)D;Wqt=eWw4aR6>Rmy>|%-DxB9Fgi& z_sLRSRAC7XYr@-JGQGTh`zuXba?e-P2lA|F*}?xq_{)zYlM1&>&+bo~W?4q17vj%; z;OVB=qF!Uu`8VNwU?p>I{oR`a5=QI0{kitF$kc2^g2`zku%k+*CuG(rf`h9$5uu(1 zgXboMu+)^feOHoC9qx#NZcv&!ze~4k(VNftQ9w?*E^asHKfv#rj-uPekO2bO?p-!B z1>$x6aSv7_Q~9oONu7Aw?RN4JdeOt0>u| zC$yZd_%30yhZ&;$Gxov_y>Z!p8HJa=qJkcIQWN9HC^RYTI~N?1llK-!{a*0Q@MjOH zy~#(V5@9Pl?r9Zrcb{!{=Hu^15ItA=X~jN{`zlm(Ln*kw&VqVvX?;9mz{9XeX+V#c z0N-YeU)i6L{%nyrG3&MNvFB;n-9RWxVo#+@4XA?H(Z=budZ-2M&N5GzAkt0QY^ct>! z|MY<N729Ce+$1JqQ+~mHDjC;00N@k>u3svI0)XeQS0HhRKJMavprpnx%p>(i7 z0|CtB&MSt?hl4RqCem|1b9+J`Z0FnGEqFGpO08L~rg;{quEm$xmBxoXU&~F}A1+|~ z6Wi?X>Cd<*`e~ES_{DE^leZfIKe1JM7{x|R}OPzZDYJ(OK(Zn*XH@{37ZpD!p4Vv^L^K(y=au`Je3kLPe+Po0d|3y{(1I;b@f@~n- zf2@?3?tm0B9^#C6p$hV*w_%x_u^Fp!%@SN4$;WtrCFC{JNw^%Ya(p$m+R6F%ykS)> zGwr@)#V@AG6(3Gr*6o6|&>X)9#v49Q*h2Id4Q|X7I->;k3xIf{Msa4j^Yb}iWL8@jy z`;y4K$QoWXB9zmiX>Tw&KEa&H6E3{krY9aksBYK0JAfZP!&c3%(Z2HA$NBk<+rHh$ z(%}V7=Z~cKq3ckWxK(_0c3OUBf&c1)veU%GR7rmDJ}(ZpouPhUrJadmszKOB(BUJ4}WBw zxcl)c(46>ZFt14i!v@TEOHZEc$r?%2!v5;>3Z~CFh0K0+WjXqe8>bL_S@Piy#NT~& zETU&#shR|8bowHAwQi(|>9dr>Ps3OL-jW;->CNkEWQk`ISj(uWe{l(YDVi5%jQ(Yq(n+DN$wh89j^sb8VORDc42C z>+qG8`DdFm?jV=f|1)a}oxRqa{)l1Q*Z}M#%Gez2abr-d7;|ws$SZHcx?2u`8v2Lc z>9*s0>+`~y(AiEkT#(N$EQ^vqhJeh6VCdG;BgS#tQ&1` z?U)zUAAP_;q+e0%tuNhbH1JE1W4xfKc`^){7x;&muTL)ggZ_?G}FR)d+{WB{}Kw- z8Udje1+99Y*OEmdGuQaz3^#IK#bi(2HSo{>?=7G~ZWmV7*C5LsTK;hH=$E>U>y)*# zCYW@rs@%g0tz>4e0Je@0kfhT=)Du9ANd=`E$8i5Am?s0(-AwJb|4>v>&ldPt#8q%X z?tv&9Bl%P2U z@q>!jZ_`FMer*N@O;9%RtuGoG4R}4^wsbxuVv$i&{X~~|p%I9dy%V7)w+D_YqrEunLA6Ps@NJ=0(WllxZibl(cHn6h00SnKi-R&&fcV|Q(qdHqeL z2w?Yxp%;?f$+6Cs9sXmVIPvyDMk@9?O7R@S;+c_LSnKt`!*24!10d0SsMJP`qB7&5 zB8cL2yP52>r<;dj<=C|E^-J~MUyJA7%|-(tEzf3dqB*XACVVTe5}w4rU%) z%_}YNOXw=_t(|0hw0ksEto|7=m zOJu^=UOftvq}?y>(##h|TzZ2@!Zx0D5w{2CdHhb`;gFtftREk9o}2Ey{j_oZTT^(EocD?@u`!UmB^&vRZTsc9q<0ZT`r>>(05-l`$?&; z6k3-`g3eeufs4jZQomQOiYm3m%L1K;GjXI}Fq)SU6s;*DO`RVa6H=r1y9ozjYpmV- z?&h@J{_|_kljD;g1!RnO@_Ju}m1euN8ZmQm56ubJTUb8H1=9ixfk!C@7oVd0?Ae3t z_;1z<5E7*hpak2Ts)F3VRlK0LyWJRcZCh6?)uuyF0}|P%BM_&v_W2WS&YpbjkaDp0 zLRW|8Ck1H^rWk+dPOcomzPzI^t28|HvWGh_V51i-4Ug#GNzc#qBIxXAT&ze9CLJjU z$co-}_p8^;u%;KylaT3l0V1RFoZ>`Ws3M?S+2FgVdT0AOu~VPpL0|f>ma+RqWW})w zgUWY=zpSAwv0&x=NQhksI-%3LPKpTYo!G9awJw2_2h0s6(R|7`=v${I#j1s%QB3qy zvK$64DZs-(EzK0?+MXr8S2t#eJyR-v^wSVZwRo%YppTN7TX%vq7GmU*bNnAf;2%?q zd5dVvuM53dj1$seM;UhVrD^?!D^?(ZO-4$d@Qc}gCEOCoWdT>(QUrVgWUA^llIy%c!+{J_Skp2B4U4uOt0qMeh<6l6J9Iq*Vn7% z>VE!CxZBLktWvjax(N4$Qx0P*aCX$^K3)cC+v_Mh#z zIO60^{n=m3-DNE9odWJWG}^hZT`3aT+5|aPgyE3E30v6mg394m%;tH~3 zcKRk>NSkEOdiANq)@Qva8;JsRvISR03YY;(hK7N?f)&+Gpoj}8POYq4tl!Ug4g6ZufwtAOL4nr>!82?u*PHJ9|w*EW+ecbr%U37oDvIj<>5aELWLIK znB0W%B(a~b^c%R#iPHtyBiI|^phU)fpM=dH(uVl?dozHbL9GwyZd98Oua|w*@3)ch zPp{^)x+=O)@ynSA$YoLke`tqE#a$Q1g;ZDXPtI&}lfO+yuGQVfyx73p06FosKQs_@ ze(W`1I&ZINzaHV8#CuKf-A`%`4{1+_O6{H#e^->iJ$`fP(%<9_NmTz(NadW@pv@)< zBbnt02!*|ukdr9BLE958`_OlkonA+~N*rp6 z0s!_EJn8isygPV~)5_XTCIaQ)<@{%RTPiDlbZ&3P`J~n5?14auuR9 zg9v=blJ6r;UBh0qW&o`viW4{n@m`U+oX}L?oV+9HepH_w8}NTe-vr;x3F(VWA-2*_ z_7fB;#tLy7s-R>FO3)d+v(W4tF>Yq%*d4~s#d;}r7aeRkb|B~#;^G-k=;sid(BqD0 zi;`2FS4WeRSrf?XHJ>U0E-6>C^>2+`uJ}_xXT03&&P9$}8z!S?yx2S`^<$ngv@J$N zYAF$6Yw^RUDg~3DaDGwJ!_=u)q9;+mlQn2JiiVuj4%X4{J^nKvFPU{%>NDqQVjvZJ zrB4QI*<%T+)OJj-9Xc;0T7hv$>6-bK8jB+oCE+b`|k3|iAfiU9d+9$N9!$@9LE4o&44{RE6y5XVPo$Ox6jWCu) z4V*z!aSTOihUW$48Nbp(fX(zeJyn+0)A0*#mn&HNsSVxd0HXo#r({gPyxsWB+#;j% z`5tCX#cPGwPv7?a9YQ6~y*3oK?RUmp(x!f7!d2hlflY+^Hb^QyDm`A(B(n8X z6#~ZZE3ni=76K?PJ)QMH^`MnbSw*fg3nF+SPbT+xhdv*Z!!NsozhAev)e#{yp=`HBDVL_AI76l+vb|*pwLlE@pbn##f)%-Ln_3u7zF%F1XrK z1GZ#VKnsOJ#`oo>H9LA>)ukmgg8A-u_?7aHNP2BS8+#nLa(F49Af;n^8ntQF2Fabv zv(lmv&NXFsO*;B*OT*wy-QS`)Ah-YRa-%{-Z}VPBKF-SzXSlXeP5Yi$&H#S1PFC87 zVNm^cGu{UqZ1%(OjOpANVW#G?BUCSv+d?awm|N1>wc#{O`#aR3@lP$JZEOPb4=r`@ z+*0R-iU0ICi?I771`eez>+Sp5I5^E;za;&|TMMt5sXlX$5=6avjJHMSrS|BKcq@M& zK7&;`Z&TOTYZk#P%k}lHXHS=NF;1s}&W@>1mY1%uf1b6e$(Ebxf2Q*^hTH&YTma{+ z-IdIk(;cc;9{8S5>SW2-ApDX!UA`eClZq*P5c|yzUhmk}RoPYK+`2Tjj(Y|Q@%5vZ zhO(xY`oT4#)F$EGpRCFMT*vzP<6gG$s%(@{8)lG{#wdlArV-fvhYlaMOdCf;Srh^; zBAd}^8zpXVk0YU$A+0K7AqA9Xzy3{Z-?v1C?G<3&8I~3>3dx(B55{|wpY8B!SeIL) z3KG3o@d;%cJ<7`UoYd`X0dS!%_7JA5l-#~i%E(%j-cWnb zNIzELgltU>^pq37g`C`>Sj^3bjT9gf1ue&}_*_1azt8UauGvf}P(3L6VGV7Xh1eFV zN(s?0K;%d!!dNVNMNp`Y>-$HBFuH0)AKP}*E&ieEy)s5I`7`7&^%C@LziMuwL3ZeK z-F15bQuo?Z@do8AotJg0b8U_(gp&l-(*F;9Q8E1G+&i*by;D$qd9NMc#cLjuZmC1S zJx^q6!!#MwPq2)luaMi6W@LDyB~nzRYT3w%piX?qf1hy_;Y4Wi#6k3Z=(3G0jO~lR z<7BwtJM%dRqs)J&&guE5eciZiz6!?OzO#F6rSrYB=Xy2W4nkGMK-JO4_+PFO)vRya zJ3Vucj!)H>X|C2Hgs6k$s#!lIO;mPu$l>b^9Ue)nd}F^{6^~FNfc8d%utu#1XD|@w zRvHA#y+e|&Gp8}s!Sy@C>$H%#3Q4yUeFpQv3|PSVAJ?&h|7L^0ajj8EwqM%@MSF`& znYrhGQq|^a1o5jkKOC$F{-t|fk-NAu39h_r5Csi`n>*as$k9s0Yz6@YvSY=W;Ik*G z)fz9fvPgHDr!AyJCGa0Sav*N4WXrB09iQ=-KC z3Qx}#kI)3qj2(Ke;<+JSB`i&%ArPLZz0%otNb)7)Y5dKH2DGb!E!T&0;#kKqrEh%v zv`_}!NiQu!vT5C)jt@H8w0RnL2CHs)3i7}vKVNUIS#&`Pz2t5fcwMFte(s5W1p>Ss zr6VNM?}GM!%Jf@kcEivGVm~Y+)XkYVUeU!h->Gr+@M%;uR`w=@#nhvSaZ*09n!x$&q*Ql z3-x`P{f>q&&1`YJv_0TTE;U3W^QF9awMcP=Wduo7ER^sjXwu5ax3glSR%G^AK2bqO z7vMU6iWo^XDerD-_@hMEgL?YXj^$jO6-K^(5d?Cp% z%^FptO-@@Gr-2URO_=j{Y!D7xUR?pZ5w67R2>!CxJF&MTycp=KTd{pAS8pxigSA>` zgEzT@ib%shHwN-*?FZ4&U5cJfco|ga@sfL<{@+jI|4$Yz(^G@*cdIX@?0yoVKkNZH zjBOl7n+AhuV*47kcY@)K#MdtmF7pN)$-^%$$42n&wx3_w(2L9teR8xPY$<&1xmE^U z_cX7nQ%8Ji)Geiq&k>}ilV?S(C8#TOpOnQw9@U1@L-qp@{TF$^LO~dg-xi&cn7LDPRkx#wHMt({*EIN?7IFs{2yn(?pFJ4fyF+gXKf=_fFg>N^Cu?G+ z7PnrdOeU#Av=d29))+tGb-e8u`;qhK^wEDk&I=J2JO4ZzIllkWEZ}hK{*0MrI7=T*Hd|c3GFjU*tw;G=Eq{syRa&FQV-Ot0qH) z`+vEW&;3Sww+{u-LuS&JR3s{oR9>x?1{{kDsoL(IN#WueETdq_>$)OyYr}VPrKq6h zCEm)*B@{aOpQ!OUwG;MMl3Yyr^-SM!b;5t|tEIXM&*^_o9kUDdyefp_$uJLm|NyUZeJ# zq3+KrKP;T6|NN|g@<3t$=%(c*V0psdXW1h~d6%3edlp3Sbdc}jpy zvm8s*1;LK99SHIlRyn`x;a-3{bRkAJ)Yf{EUB{)qO6AVyj*yRHW19Bx$8xZ^sLFER z7zvQR0>1+2&@iFUs;nMK1z`PI2F<1RWRvD5WXoIt_J4WV~J9?XU}77*_ov1E~6pm^xTry=6Znk%o={^$QO$8AK1XDcM0 z3W0WC5|q)Sa58kmXYUOq}@Uh>uz? zpD+r*f6x)To|dragZ_y2pOMcB@G2@V!J^8Fufo@b#5h_teEA7C`@MG;Zkt%_msMu^&jjqdx}E;%$Ip=ghTyABYQF3rC&hIp%NQIKRx=H?d3K&!`a!=pP%OO3XH z&8=o>?RzCJ^QOlK!vDBJ1YPDqZQ_i26sy>#hL5mz|^#t&xUJ+NI&M)_l4Ze=~q{@!W#q!RKL3~UlA&y8G_WM{RSleyl}~Z zZk*~Bm+hH1Ii|2fQHLV=>L=6{|7Mz$EP2bT~+iK z8i0;KjCSb@Bz_ys$EhxBy-dxixFV+%{`2owE||T6enQdTG(YmZoDXojPg9nV9+k*4 zy?m#p?MNQ+kn))-xqREpJZ?VknIyGSlv%4`DL~_!isAFQG^ulfzHIP57leGUuKFNF z{eu6Lu7swBr%Jl4xJZ8-T{oYZjZV!RPcj`zYc5;&3fF<>S?R8WoU+|%ER@2x6JPce z`Y)`1ziVX+H{PS4KG;=(MG>x8cidq5xcDh~-Fz9&y91>^iE2lxIr#Q{TcCV_6O%IM zpcBxtzqDD}YeX{F+f2FqY5AZnP+e^#v&Jyv$jf{BS;ZrLOm2ovY9mjg+3uCB89 z!Mlq-m*B6}S(R&noSDpc6Cdgg=CVR}(g@RU6C zS=dCU@Xx7t@EYC!NGXcsf1Kgixlm2+{|e<7E>WeDqrIMH^Rr*+^5cWB8s0;ghgY?* zM8(oXLnnGCQGXMf?PtJHHY;uja{2>BmW?eHr`7*!0b zK3txYv1XV5?kk`G7E<8bik}E9plB-V-_99pEFaN8xXImSq%VLkgsL*@_;PSOjv`4=`R3eaW_ zGPm$TCeF=i-1ld2CKC*ws<(7$xxqUA%;p97WXZNh($OJdA7qKJVelp=EI0l@3fHZ^ z_Q8Ma=6OJ0_mP`z&Mq#^_f~TULR@`F=OV_UM_hlo=r>%|f7DiVW-wzElFX(T4k~2yZ@p zm$>Xz>J&U@24Hss?AKYfE%2BNyx{fZWt_~4#CT3R?Ywxq0<{a;J}P5G2E}=Vv&L0Z zbQ-0M#!P{PE90ss9V)&pNy|EW`-aTo_Ix6X^!(dy97w4Sgl^T!JrJo_uM!#E77qar zszeRa(5HM;1W0D>R2L5gtf;FjJNg;Q1*FSjj z8PI{l#0C^4Y9*giMIE&@o|Qyp2MDuMFke+;qeOQ{Y>$MrZ#PI&i=Yq@i2EEERw_hkHeu~(x?X)7lU`JObJ=sARc{KYPwvRo2 zb;B>iHOj_tUR;I--1Vw9?1Iv26qYY6*V89z5UcAt{wpF`?GI6HON1S7A}3oG_5aG= zZ7Y@!?Ic4)%0pwg*HaO=*Kgx!YC z5j+=X*Ieerb!aa1u@RfDI}}E(Ii^u3vk8I+@M}>j`}B zx&qd_H+|D)5`9ue{d|6>Tho|zsP8E||KY^QJ@=`{w)e=~ugS zK5jj&vvCBGNp?Tj8EWP=9#=o?phjjIqf4Xbeoka$xVO^`{0|xXHzadqGV*Y{{z^7T zFy!*P&HIzz)g#iC@CViv--bF^1K-Aoj1$Wj&O&V43@^ci`mPVx7-#(3FUV#yPh?-s@pSakhT@_{LoSX(Gb7fYyd z-m^7N?2M&OsLaLzR_MoK!XdfUPPX}d(ru;dEt*)3ME4yNIhxwp&-V|3{kO-wFh->j*ey{+xqdFXJN$f3D`?@ubN$*(L}82MHu z7!QK(gwkIHY_{R2CmGZB>H`a7ukZUm!}OqbNCkI9w31`K{W=e+8|O&Sy31AE`+c%g zfV(Pn{i0$j@;Z|b3$m3T9#{=MwlATiJn_M6w=wF%D}tzo9?1N|y}EoRCw3ics5>I& zIxJq7)i8HDKW@`JZzinxM|TnH9VR<)G-H_N{!RL0_qH@<>X-U+JHdnfAP2w6tDAVI z&$AXB$;60h5!67cIpbO4r^p_QOo5^J-9xJaZ+FeaIAW*2!1#2?^>sZpAmpQnkBykl z#Kw)C^}&i-iZC$y#(}Akch!5n$sRs%hu5f2(gcH64%c-VsUX+D+w0pScCkW(!F}u3 zLCFoGyGi}Q`)avV;LlcL;`D8!;xbWe-3dkg*vH=S=L94m+R1yKm-_6bs-}lOFC+p> zetrC;`AgHku6XBAz#=`{_Lg}VcZlZafyi|+N1|k+CeTdUp>8!j_EtXp9*meKB7849 z)6$caE!VDO?F-H=&lR6eQ_H8j`QD$UJXxgItOp*mdK+L@xyxl1m|zYz`fUJYPG8eT zkEvn7W{8L&KS@DH!}ijF^#Li9q~rp<#h$&}Jydc#gYF}@Xnp^~Fg4(^b?K4cQu|3O zt;oD%Wv)`>ua`VsymxE@5!ocT>s�^?A}}Z<|1rLQ9mS{R7!X`;&|%@WVMWO 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